implemented the "Go to process" feature Modified: trunk/reactos/subsys/system/taskmgr/applpage.c Modified: trunk/reactos/subsys/system/taskmgr/perfdata.c _____
Modified: trunk/reactos/subsys/system/taskmgr/applpage.c --- trunk/reactos/subsys/system/taskmgr/applpage.c 2005-10-01 15:11:31 UTC (rev 18191) +++ trunk/reactos/subsys/system/taskmgr/applpage.c 2005-10-01 15:30:25 UTC (rev 18192) @@ -48,6 +48,7 @@
void ApplicationPageShowContextMenu1(void); void ApplicationPageShowContextMenu2(void); int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort); +int PerfGetIndexByProcessId(DWORD dwProcessId);
#if 0 void SwitchToThisWindow ( @@ -936,9 +937,18 @@ */ TabCtrl_SetCurFocus(hTabWnd, 1); /* - * FIXME: Select the process item in the list + * Select the process item in the list */ - for (i=0; i<ListView_GetItemCount(hProcessPage); i++) { + i = PerfGetIndexByProcessId(dwProcessId); + if (i != -1) + { + ListView_SetItemState(hProcessPageListCtrl, + i, + LVIS_SELECTED | LVIS_FOCUSED, + LVIS_SELECTED | LVIS_FOCUSED); + ListView_EnsureVisible(hProcessPageListCtrl, + i, + FALSE); } } } _____
Modified: trunk/reactos/subsys/system/taskmgr/perfdata.c --- trunk/reactos/subsys/system/taskmgr/perfdata.c 2005-10-01 15:11:31 UTC (rev 18191) +++ trunk/reactos/subsys/system/taskmgr/perfdata.c 2005-10-01 15:30:25 UTC (rev 18192) @@ -345,6 +345,26 @@
return bSuccessful; }
+int PerfGetIndexByProcessId(DWORD dwProcessId) +{ + int Index, FoundIndex = -1; + + EnterCriticalSection(&PerfDataCriticalSection); + + for (Index = 0; Index < ProcessCount; Index++) + { + if ((DWORD)pPerfData[Index].ProcessId == dwProcessId) + { + FoundIndex = Index; + break; + } + } + + LeaveCriticalSection(&PerfDataCriticalSection); + + return FoundIndex; +} + ULONG PerfDataGetProcessId(ULONG Index) { ULONG ProcessId;