From 1950c903e3408db0c004c5b7e4a60ec9fae07c99 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Fri, 15 Feb 2008 19:22:55 +0000 Subject: [PATCH] - taskmgr improvements by Carlo Bramix See issue #3075 for more details. svn path=/trunk/; revision=32380 --- reactos/base/applications/taskmgr/about.c | 2 +- reactos/base/applications/taskmgr/affinity.c | 24 ++-- reactos/base/applications/taskmgr/applpage.c | 106 +++------------ reactos/base/applications/taskmgr/applpage.h | 7 +- reactos/base/applications/taskmgr/column.c | 8 +- reactos/base/applications/taskmgr/endproc.c | 33 +++-- reactos/base/applications/taskmgr/procpage.c | 5 +- reactos/base/applications/taskmgr/taskmgr.c | 134 +++++-------------- reactos/base/applications/taskmgr/taskmgr.h | 11 +- 9 files changed, 90 insertions(+), 240 deletions(-) diff --git a/reactos/base/applications/taskmgr/about.c b/reactos/base/applications/taskmgr/about.c index 7ff3f9911a6..d444babbd21 100644 --- a/reactos/base/applications/taskmgr/about.c +++ b/reactos/base/applications/taskmgr/about.c @@ -1,7 +1,7 @@ /* * ReactOS Task Manager * - * about.cpp + * about.c * * Copyright (C) 1999 - 2001 Brian Palmer * diff --git a/reactos/base/applications/taskmgr/affinity.c b/reactos/base/applications/taskmgr/affinity.c index b13380e6f58..c2bb40538b4 100644 --- a/reactos/base/applications/taskmgr/affinity.c +++ b/reactos/base/applications/taskmgr/affinity.c @@ -1,7 +1,7 @@ /* * ReactOS Task Manager * - * affinity.cpp + * affinity.c * * Copyright (C) 1999 - 2001 Brian Palmer * 2005 Klemens Friedl @@ -24,8 +24,6 @@ #include HANDLE hProcessAffinityHandle; -WCHAR szTemp[256]; -WCHAR szTempA[256]; static const DWORD dwCpuTable[] = { IDC_CPU0, IDC_CPU1, IDC_CPU2, IDC_CPU3, @@ -46,6 +44,7 @@ void ProcessPage_OnSetAffinity(void) ULONG Index; DWORD dwProcessId; WCHAR strErrorText[260]; + WCHAR szTitle[256]; for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++) { memset(&lvitem, 0, sizeof(LV_ITEM)); @@ -62,8 +61,8 @@ void ProcessPage_OnSetAffinity(void) hProcessAffinityHandle = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_SET_INFORMATION, FALSE, dwProcessId); if (!hProcessAffinityHandle) { GetLastErrorText(strErrorText, sizeof(strErrorText) / sizeof(WCHAR)); - LoadStringW(hInst, IDS_MSG_ACCESSPROCESSAFF, szTemp, sizeof(szTemp) / sizeof(WCHAR)); - MessageBoxW(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP); + LoadStringW(hInst, IDS_MSG_ACCESSPROCESSAFF, szTitle, sizeof(szTitle) / sizeof(WCHAR)); + MessageBoxW(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP); return; } DialogBoxW(hInst, MAKEINTRESOURCEW(IDD_AFFINITY_DIALOG), hMainWnd, AffinityDialogWndProc); @@ -79,6 +78,7 @@ AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) DWORD dwProcessAffinityMask = 0; DWORD dwSystemAffinityMask = 0; WCHAR strErrorText[260]; + WCHAR szTitle[256]; BYTE nCpu; switch (message) { @@ -91,8 +91,8 @@ AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) if (!GetProcessAffinityMask(hProcessAffinityHandle, &dwProcessAffinityMask, &dwSystemAffinityMask)) { GetLastErrorText(strErrorText, sizeof(strErrorText) / sizeof(WCHAR)); EndDialog(hDlg, 0); - LoadStringW(hInst, IDS_MSG_ACCESSPROCESSAFF, szTemp, sizeof(szTemp) / sizeof(WCHAR)); - MessageBoxW(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP); + LoadStringW(hInst, IDS_MSG_ACCESSPROCESSAFF, szTitle, sizeof(szTitle) / sizeof(WCHAR)); + MessageBoxW(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP); } for (nCpu=0; nCpu * 2005 Klemens Friedl @@ -196,18 +196,13 @@ void UpdateApplicationListControlViewSetting(void) { DWORD dwStyle = GetWindowLongW(hApplicationPageListCtrl, GWL_STYLE); - dwStyle &= ~LVS_REPORT; - dwStyle &= ~LVS_ICON; - dwStyle &= ~LVS_LIST; - dwStyle &= ~LVS_SMALLICON; - - if (TaskManagerSettings.View_LargeIcons) - dwStyle |= LVS_ICON; - else if (TaskManagerSettings.View_SmallIcons) - dwStyle |= LVS_SMALLICON; - else - dwStyle |= LVS_REPORT; + dwStyle &= ~(LVS_REPORT | LVS_ICON | LVS_LIST | LVS_SMALLICON); + switch (TaskManagerSettings.ViewMode) { + case ID_VIEW_LARGE: dwStyle |= LVS_ICON; break; + case ID_VIEW_SMALL: dwStyle |= LVS_SMALLICON; break; + case ID_VIEW_DETAILS: dwStyle |= LVS_REPORT; break; + } SetWindowLongW(hApplicationPageListCtrl, GWL_STYLE, dwStyle); RefreshApplicationPage(); @@ -265,7 +260,7 @@ BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) if (hWnd == hMainWnd) return TRUE; - bLargeIcon = TaskManagerSettings.View_LargeIcons ? TRUE : FALSE; + bLargeIcon = (TaskManagerSettings.ViewMode == ID_VIEW_LARGE); GetWindowTextW(hWnd, szText, 260); /* Get the window text */ @@ -521,13 +516,12 @@ void ApplicationPageOnNotify(WPARAM wParam, LPARAM lParam) if (pAPLI->bHung) { LoadStringW( GetModuleHandleW(NULL), IDS_Not_Responding , szMsg, sizeof(szMsg) / sizeof(szMsg[0])); - wcsncpy(pnmdi->item.pszText, szMsg, pnmdi->item.cchTextMax); } else { LoadStringW( GetModuleHandleW(NULL), IDS_Running, (LPWSTR) szMsg, sizeof(szMsg) / sizeof(szMsg[0])); - wcsncpy(pnmdi->item.pszText, szMsg, pnmdi->item.cchTextMax); } + wcsncpy(pnmdi->item.pszText, szMsg, pnmdi->item.cchTextMax); } break; @@ -591,12 +585,7 @@ void ApplicationPageShowContextMenu1(void) hMenu = LoadMenuW(hInst, MAKEINTRESOURCEW(IDR_APPLICATION_PAGE_CONTEXT1)); hSubMenu = GetSubMenu(hMenu, 0); - if (TaskManagerSettings.View_LargeIcons) - CheckMenuRadioItem(hSubMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_LARGE, MF_BYCOMMAND); - else if (TaskManagerSettings.View_SmallIcons) - CheckMenuRadioItem(hSubMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_SMALL, MF_BYCOMMAND); - else - CheckMenuRadioItem(hSubMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_DETAILS, MF_BYCOMMAND); + CheckMenuRadioItem(hSubMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, TaskManagerSettings.ViewMode, MF_BYCOMMAND); TrackPopupMenu(hSubMenu, TPM_LEFTALIGN|TPM_TOPALIGN|TPM_LEFTBUTTON, pt.x, pt.y, 0, hMainWnd, NULL); @@ -649,7 +638,7 @@ void ApplicationPageShowContextMenu2(void) DestroyMenu(hMenu); } -void ApplicationPage_OnViewLargeIcons(void) +void ApplicationPage_OnView(DWORD dwMode) { HMENU hMenu; HMENU hViewMenu; @@ -657,78 +646,13 @@ void ApplicationPage_OnViewLargeIcons(void) hMenu = GetMenu(hMainWnd); hViewMenu = GetSubMenu(hMenu, 2); - TaskManagerSettings.View_LargeIcons = TRUE; - TaskManagerSettings.View_SmallIcons = FALSE; - TaskManagerSettings.View_Details = FALSE; - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_LARGE, MF_BYCOMMAND); + TaskManagerSettings.ViewMode = dwMode; + CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, dwMode, MF_BYCOMMAND); UpdateApplicationListControlViewSetting(); } -void ApplicationPage_OnViewSmallIcons(void) -{ - HMENU hMenu; - HMENU hViewMenu; - - hMenu = GetMenu(hMainWnd); - hViewMenu = GetSubMenu(hMenu, 2); - - TaskManagerSettings.View_LargeIcons = FALSE; - TaskManagerSettings.View_SmallIcons = TRUE; - TaskManagerSettings.View_Details = FALSE; - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_SMALL, MF_BYCOMMAND); - - UpdateApplicationListControlViewSetting(); -} - -void ApplicationPage_OnViewDetails(void) -{ - HMENU hMenu; - HMENU hViewMenu; - - hMenu = GetMenu(hMainWnd); - hViewMenu = GetSubMenu(hMenu, 2); - - TaskManagerSettings.View_LargeIcons = FALSE; - TaskManagerSettings.View_SmallIcons = FALSE; - TaskManagerSettings.View_Details = TRUE; - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_DETAILS, MF_BYCOMMAND); - - UpdateApplicationListControlViewSetting(); -} - -void ApplicationPage_OnWindowsTileHorizontally(void) -{ - LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL; - LV_ITEM item; - int i; - HWND* hWndArray; - int nWndCount; - - hWndArray = (HWND*)HeapAlloc(GetProcessHeap(), 0, sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl)); - nWndCount = 0; - - for (i=0; ihWnd; - nWndCount++; - } - } - } - TileWindows(NULL, MDITILE_HORIZONTAL, NULL, nWndCount, hWndArray); - HeapFree(GetProcessHeap(), 0, hWndArray); -} - -void ApplicationPage_OnWindowsTileVertically(void) +void ApplicationPage_OnWindowsTile(DWORD dwMode) { LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL; LV_ITEM item; @@ -755,7 +679,7 @@ void ApplicationPage_OnWindowsTileVertically(void) } } - TileWindows(NULL, MDITILE_VERTICAL, NULL, nWndCount, hWndArray); + TileWindows(NULL, dwMode, NULL, nWndCount, hWndArray); HeapFree(GetProcessHeap(), 0, hWndArray); } diff --git a/reactos/base/applications/taskmgr/applpage.h b/reactos/base/applications/taskmgr/applpage.h index 1d6674a37c5..893e682ab61 100644 --- a/reactos/base/applications/taskmgr/applpage.h +++ b/reactos/base/applications/taskmgr/applpage.h @@ -34,11 +34,8 @@ INT_PTR CALLBACK ApplicationPageWndProc(HWND hDlg, UINT message, WPARAM wPara void RefreshApplicationPage(void); void UpdateApplicationListControlViewSetting(void); -void ApplicationPage_OnViewLargeIcons(void); -void ApplicationPage_OnViewSmallIcons(void); -void ApplicationPage_OnViewDetails(void); -void ApplicationPage_OnWindowsTileHorizontally(void); -void ApplicationPage_OnWindowsTileVertically(void); +void ApplicationPage_OnView(DWORD); +void ApplicationPage_OnWindowsTile(DWORD); void ApplicationPage_OnWindowsMinimize(void); void ApplicationPage_OnWindowsMaximize(void); void ApplicationPage_OnWindowsCascade(void); diff --git a/reactos/base/applications/taskmgr/column.c b/reactos/base/applications/taskmgr/column.c index 4534c642b6a..c063b3009ed 100644 --- a/reactos/base/applications/taskmgr/column.c +++ b/reactos/base/applications/taskmgr/column.c @@ -1,7 +1,7 @@ /* * ReactOS Task Manager * - * column.cpp + * column.c * * Copyright (C) 1999 - 2001 Brian Palmer * 2005 Klemens Friedl @@ -24,7 +24,6 @@ #include UINT ColumnDataHints[COLUMN_NMAX]; -WCHAR szTemp[256]; #define DECLARE_COLUMN_PRESET(_name, _size, _state) \ { IDS_TAB_##_name, IDC_##_name, _size, _state }, @@ -57,7 +56,7 @@ const PresetColumnEntry ColumnPresets[COLUMN_NMAX] = { DECLARE_COLUMN_PRESET(IOOTHERBYTES, 70, FALSE) }; -int InsertColumn(int nCol, LPCWSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem); +static int InsertColumn(int nCol, LPCWSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem); INT_PTR CALLBACK ColumnsDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); void AddColumns(void) @@ -79,7 +78,7 @@ void AddColumns(void) UpdateColumnDataHints(); } -int InsertColumn(int nCol, LPCWSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem) +static int InsertColumn(int nCol, LPCWSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem) { LVCOLUMN column; @@ -107,6 +106,7 @@ void SaveColumnSettings(void) HDITEM hditem; int i, n; WCHAR text[260]; + WCHAR szTemp[256]; LRESULT size; /* Reset column data */ diff --git a/reactos/base/applications/taskmgr/endproc.c b/reactos/base/applications/taskmgr/endproc.c index 627f78195ca..33f297cf02b 100644 --- a/reactos/base/applications/taskmgr/endproc.c +++ b/reactos/base/applications/taskmgr/endproc.c @@ -23,15 +23,13 @@ #include -WCHAR szTemp[256]; -WCHAR szTempA[256]; - void ProcessPage_OnEndProcess(void) { LVITEM lvitem; ULONG Index; DWORD dwProcessId; HANDLE hProcess; + WCHAR szTitle[256]; WCHAR strErrorText[260]; for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++) @@ -53,9 +51,9 @@ void ProcessPage_OnEndProcess(void) if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0)) return; - LoadStringW(hInst, IDS_MSG_WARNINGTERMINATING, szTemp, 256); - LoadStringW(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256); - if (MessageBoxW(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES) + LoadStringW(hInst, IDS_MSG_WARNINGTERMINATING, strErrorText, 256); + LoadStringW(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256); + if (MessageBoxW(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES) return; hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessId); @@ -63,16 +61,16 @@ void ProcessPage_OnEndProcess(void) if (!hProcess) { GetLastErrorText(strErrorText, 260); - LoadStringW(hInst, IDS_MSG_UNABLETERMINATEPRO, szTemp, 256); - MessageBoxW(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP); + LoadStringW(hInst, IDS_MSG_UNABLETERMINATEPRO, szTitle, 256); + MessageBoxW(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP); return; } if (!TerminateProcess(hProcess, 0)) { GetLastErrorText(strErrorText, 260); - LoadStringW(hInst, IDS_MSG_UNABLETERMINATEPRO, szTemp, 256); - MessageBoxW(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP); + LoadStringW(hInst, IDS_MSG_UNABLETERMINATEPRO, szTitle, 256); + MessageBoxW(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP); } CloseHandle(hProcess); @@ -84,6 +82,7 @@ void ProcessPage_OnEndProcessTree(void) ULONG Index; DWORD dwProcessId; HANDLE hProcess; + WCHAR szTitle[256]; WCHAR strErrorText[260]; for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++) @@ -105,9 +104,9 @@ void ProcessPage_OnEndProcessTree(void) if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0)) return; - LoadStringW(hInst, IDS_MSG_WARNINGTERMINATING, szTemp, 256); - LoadStringW(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256); - if (MessageBoxW(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES) + LoadStringW(hInst, IDS_MSG_WARNINGTERMINATING, strErrorText, 256); + LoadStringW(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256); + if (MessageBoxW(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES) return; hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessId); @@ -115,16 +114,16 @@ void ProcessPage_OnEndProcessTree(void) if (!hProcess) { GetLastErrorText(strErrorText, 260); - LoadStringW(hInst, IDS_MSG_UNABLETERMINATEPRO, szTemp, 256); - MessageBoxW(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP); + LoadStringW(hInst, IDS_MSG_UNABLETERMINATEPRO, szTitle, 256); + MessageBoxW(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP); return; } if (!TerminateProcess(hProcess, 0)) { GetLastErrorText(strErrorText, 260); - LoadStringW(hInst, IDS_MSG_UNABLETERMINATEPRO, szTemp, 256); - MessageBoxW(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP); + LoadStringW(hInst, IDS_MSG_UNABLETERMINATEPRO, szTitle, 256); + MessageBoxW(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP); } CloseHandle(hProcess); diff --git a/reactos/base/applications/taskmgr/procpage.c b/reactos/base/applications/taskmgr/procpage.c index 8d91de0915d..1ec6eeeef03 100644 --- a/reactos/base/applications/taskmgr/procpage.c +++ b/reactos/base/applications/taskmgr/procpage.c @@ -413,7 +413,6 @@ void ProcessPageShowContextMenu(DWORD dwProcessId) WCHAR strDebugger[260]; DWORD dwDebuggerSize; HKEY hKey; - UINT Idx; memset(&si, 0, sizeof(SYSTEM_INFO)); @@ -460,9 +459,7 @@ void ProcessPageShowContextMenu(DWORD dwProcessId) dwDebuggerSize = 260; if (RegQueryValueExW(hKey, L"Debugger", NULL, NULL, (LPBYTE)strDebugger, &dwDebuggerSize) == ERROR_SUCCESS) { - for (Idx=0; Idxbottom - lpRect->top, clrTopLeft, clrBottomRight); } +static void SetUpdateSpeed(HWND hWnd) +{ + /* Setup update speed (pause=fall down) */ + switch (TaskManagerSettings.UpdateSpeed) { + case ID_VIEW_UPDATESPEED_HIGH: + SetTimer(hWnd, 1, 1000, NULL); + break; + case ID_VIEW_UPDATESPEED_NORMAL: + SetTimer(hWnd, 1, 2000, NULL); + break; + case ID_VIEW_UPDATESPEED_LOW: + SetTimer(hWnd, 1, 4000, NULL); + break; + } +} + BOOL OnCreate(HWND hWnd) { HMENU hMenu; @@ -537,26 +543,15 @@ BOOL OnCreate(HWND hWnd) else CheckMenuItem(hEditMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_UNCHECKED); - if (TaskManagerSettings.View_LargeIcons) - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_LARGE, MF_BYCOMMAND); - else if (TaskManagerSettings.View_SmallIcons) - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_SMALL, MF_BYCOMMAND); - else - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_DETAILS, MF_BYCOMMAND); + /* Set the view mode */ + CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, TaskManagerSettings.ViewMode, MF_BYCOMMAND); if (TaskManagerSettings.ShowKernelTimes) CheckMenuItem(hViewMenu, ID_VIEW_SHOWKERNELTIMES, MF_BYCOMMAND|MF_CHECKED); else CheckMenuItem(hViewMenu, ID_VIEW_SHOWKERNELTIMES, MF_BYCOMMAND|MF_UNCHECKED); - if (TaskManagerSettings.UpdateSpeed == 1) - CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, ID_VIEW_UPDATESPEED_HIGH, MF_BYCOMMAND); - else if (TaskManagerSettings.UpdateSpeed == 2) - CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, ID_VIEW_UPDATESPEED_NORMAL, MF_BYCOMMAND); - else if (TaskManagerSettings.UpdateSpeed == 4) - CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, ID_VIEW_UPDATESPEED_LOW, MF_BYCOMMAND); - else - CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, ID_VIEW_UPDATESPEED_PAUSED, MF_BYCOMMAND); + CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, TaskManagerSettings.UpdateSpeed, MF_BYCOMMAND); if (TaskManagerSettings.CPUHistory_OneGraphPerCPU) CheckMenuRadioItem(hCPUHistoryMenu, ID_VIEW_CPUHISTORY_ONEGRAPHALL, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, MF_BYCOMMAND); @@ -569,12 +564,8 @@ BOOL OnCreate(HWND hWnd) TabCtrl_SetCurFocus/*Sel*/(hTabWnd, 2); TabCtrl_SetCurFocus/*Sel*/(hTabWnd, nActivePage); - if (TaskManagerSettings.UpdateSpeed == 1) - SetTimer(hWnd, 1, 1000, NULL); - else if (TaskManagerSettings.UpdateSpeed == 2) - SetTimer(hWnd, 1, 2000, NULL); - else if (TaskManagerSettings.UpdateSpeed == 4) - SetTimer(hWnd, 1, 4000, NULL); + /* Setup update speed */ + SetUpdateSpeed(hWnd); /* * Refresh the performance data @@ -669,7 +660,7 @@ void OnSize( WPARAM nType, int cx, int cy ) void LoadSettings(void) { HKEY hKey; - WCHAR szSubKey[] = L"Software\\ReactWare\\TaskManager"; + WCHAR szSubKey[] = L"Software\\ReactOS\\TaskManager"; int i; DWORD dwSize; @@ -690,12 +681,10 @@ void LoadSettings(void) TaskManagerSettings.Show16BitTasks = TRUE; /* Update speed settings */ - TaskManagerSettings.UpdateSpeed = 2; + TaskManagerSettings.UpdateSpeed = ID_VIEW_UPDATESPEED_NORMAL; /* Applications page settings */ - TaskManagerSettings.View_LargeIcons = FALSE; - TaskManagerSettings.View_SmallIcons = FALSE; - TaskManagerSettings.View_Details = TRUE; + TaskManagerSettings.ViewMode = ID_VIEW_DETAILS; /* Processes page settings */ TaskManagerSettings.ShowProcessesFromAllUsers = FALSE; /* Server-only? */ @@ -735,8 +724,8 @@ void SaveSettings(void) { HKEY hKey; WCHAR szSubKey1[] = L"Software"; - WCHAR szSubKey2[] = L"Software\\ReactWare"; - WCHAR szSubKey3[] = L"Software\\ReactWare\\TaskManager"; + WCHAR szSubKey2[] = L"Software\\ReactOS"; + WCHAR szSubKey3[] = L"Software\\ReactOS\\TaskManager"; /* Open (or create) the key */ hKey = NULL; @@ -819,7 +808,7 @@ void TaskManager_OnMenuSelect(HWND hWnd, UINT nItemID, UINT nFlags, HMENU hSysMe SendMessageW(hStatusWnd, SB_SETTEXT, 0, (LPARAM)str); } -void TaskManager_OnViewUpdateSpeedHigh(void) +void TaskManager_OnViewUpdateSpeed(DWORD dwSpeed) { HMENU hMenu; HMENU hViewMenu; @@ -829,45 +818,12 @@ void TaskManager_OnViewUpdateSpeedHigh(void) hViewMenu = GetSubMenu(hMenu, 2); hUpdateSpeedMenu = GetSubMenu(hViewMenu, 1); - TaskManagerSettings.UpdateSpeed = 1; - CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, ID_VIEW_UPDATESPEED_HIGH, MF_BYCOMMAND); + TaskManagerSettings.UpdateSpeed = dwSpeed; + CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, dwSpeed, MF_BYCOMMAND); KillTimer(hMainWnd, 1); - SetTimer(hMainWnd, 1, 500, NULL); -} -void TaskManager_OnViewUpdateSpeedNormal(void) -{ - HMENU hMenu; - HMENU hViewMenu; - HMENU hUpdateSpeedMenu; - - hMenu = GetMenu(hMainWnd); - hViewMenu = GetSubMenu(hMenu, 2); - hUpdateSpeedMenu = GetSubMenu(hViewMenu, 1); - - TaskManagerSettings.UpdateSpeed = 2; - CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, ID_VIEW_UPDATESPEED_NORMAL, MF_BYCOMMAND); - - KillTimer(hMainWnd, 1); - SetTimer(hMainWnd, 1, 2000, NULL); -} - -void TaskManager_OnViewUpdateSpeedLow(void) -{ - HMENU hMenu; - HMENU hViewMenu; - HMENU hUpdateSpeedMenu; - - hMenu = GetMenu(hMainWnd); - hViewMenu = GetSubMenu(hMenu, 2); - hUpdateSpeedMenu = GetSubMenu(hViewMenu, 1); - - TaskManagerSettings.UpdateSpeed = 4; - CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, ID_VIEW_UPDATESPEED_LOW, MF_BYCOMMAND); - - KillTimer(hMainWnd, 1); - SetTimer(hMainWnd, 1, 4000, NULL); + SetUpdateSpeed(hMainWnd); } void TaskManager_OnViewRefresh(void) @@ -875,20 +831,6 @@ void TaskManager_OnViewRefresh(void) PostMessageW(hMainWnd, WM_TIMER, 0, 0); } -void TaskManager_OnViewUpdateSpeedPaused(void) -{ - HMENU hMenu; - HMENU hViewMenu; - HMENU hUpdateSpeedMenu; - - hMenu = GetMenu(hMainWnd); - hViewMenu = GetSubMenu(hMenu, 2); - hUpdateSpeedMenu = GetSubMenu(hViewMenu, 1); - TaskManagerSettings.UpdateSpeed = 0; - CheckMenuRadioItem(hUpdateSpeedMenu, ID_VIEW_UPDATESPEED_HIGH, ID_VIEW_UPDATESPEED_PAUSED, ID_VIEW_UPDATESPEED_PAUSED, MF_BYCOMMAND); - KillTimer(hMainWnd, 1); -} - void TaskManager_OnTabWndSelChange(void) { int i; @@ -933,12 +875,8 @@ void TaskManager_OnTabWndSelChange(void) DrawMenuBar(hMainWnd); } - if (TaskManagerSettings.View_LargeIcons) - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_LARGE, MF_BYCOMMAND); - else if (TaskManagerSettings.View_SmallIcons) - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_SMALL, MF_BYCOMMAND); - else - CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_DETAILS, MF_BYCOMMAND); + CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, TaskManagerSettings.ViewMode, MF_BYCOMMAND); + /* * Give the application list control focus */ diff --git a/reactos/base/applications/taskmgr/taskmgr.h b/reactos/base/applications/taskmgr/taskmgr.h index d04e0b4d76b..45950fab202 100644 --- a/reactos/base/applications/taskmgr/taskmgr.h +++ b/reactos/base/applications/taskmgr/taskmgr.h @@ -68,12 +68,10 @@ typedef struct /* Update speed settings */ /* How many half-seconds in between updates (i.e. 0 - Paused, 1 - High, 2 - Normal, 4 - Low) */ - int UpdateSpeed; + DWORD UpdateSpeed; /* Applications page settings */ - BOOL View_LargeIcons; - BOOL View_SmallIcons; - BOOL View_Details; + DWORD ViewMode; /* Processes page settings */ BOOL ShowProcessesFromAllUsers; /* Server-only? */ @@ -115,10 +113,7 @@ void TaskManager_OnRestoreMainWindow(void); void TaskManager_OnEnterMenuLoop(HWND hWnd); void TaskManager_OnExitMenuLoop(HWND hWnd); void TaskManager_OnMenuSelect(HWND hWnd, UINT nItemID, UINT nFlags, HMENU hSysMenu); -void TaskManager_OnViewUpdateSpeedHigh(void); -void TaskManager_OnViewUpdateSpeedNormal(void); -void TaskManager_OnViewUpdateSpeedLow(void); -void TaskManager_OnViewUpdateSpeedPaused(void); +void TaskManager_OnViewUpdateSpeed(DWORD); void TaskManager_OnViewRefresh(void); void TaskManager_OnTabWndSelChange(void); LPTSTR GetLastErrorText( LPTSTR lpszBuf, DWORD dwSize );