[SHELL32] SHChangeNotify: Use tree for CDirectoryList (#6784)
[reactos.git] / base / applications / taskmgr / optnmenu.c
1 /*
2 * PROJECT: ReactOS Task Manager
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: Menu item handlers for the options menu.
5 * COPYRIGHT: Copyright 1999-2001 Brian Palmer <brianp@reactos.org>
6 */
7
8 #include "precomp.h"
9
10 void TaskManager_OnOptionsAlwaysOnTop(void)
11 {
12 HMENU hMenu;
13 HMENU hOptionsMenu;
14
15 hMenu = GetMenu(hMainWnd);
16 hOptionsMenu = GetSubMenu(hMenu, OPTIONS_MENU_INDEX);
17
18 /*
19 * Check or uncheck the always on top menu item
20 * and update main window.
21 */
22 if ((GetWindowLongPtrW(hMainWnd, GWL_EXSTYLE) & WS_EX_TOPMOST) != 0)
23 {
24 CheckMenuItem(hOptionsMenu, ID_OPTIONS_ALWAYSONTOP, MF_BYCOMMAND|MF_UNCHECKED);
25 TaskManagerSettings.AlwaysOnTop = FALSE;
26 SetWindowPos(hMainWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
27 }
28 else
29 {
30 CheckMenuItem(hOptionsMenu, ID_OPTIONS_ALWAYSONTOP, MF_BYCOMMAND|MF_CHECKED);
31 TaskManagerSettings.AlwaysOnTop = TRUE;
32 SetWindowPos(hMainWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
33 }
34 }
35
36 void TaskManager_OnOptionsMinimizeOnUse(void)
37 {
38 HMENU hMenu;
39 HMENU hOptionsMenu;
40
41 hMenu = GetMenu(hMainWnd);
42 hOptionsMenu = GetSubMenu(hMenu, OPTIONS_MENU_INDEX);
43
44 /*
45 * Check or uncheck the minimize on use menu item.
46 */
47 if (GetMenuState(hOptionsMenu, ID_OPTIONS_MINIMIZEONUSE, MF_BYCOMMAND) & MF_CHECKED)
48 {
49 CheckMenuItem(hOptionsMenu, ID_OPTIONS_MINIMIZEONUSE, MF_BYCOMMAND|MF_UNCHECKED);
50 TaskManagerSettings.MinimizeOnUse = FALSE;
51 }
52 else
53 {
54 CheckMenuItem(hOptionsMenu, ID_OPTIONS_MINIMIZEONUSE, MF_BYCOMMAND|MF_CHECKED);
55 TaskManagerSettings.MinimizeOnUse = TRUE;
56 }
57 }
58
59 void TaskManager_OnOptionsHideWhenMinimized(void)
60 {
61 HMENU hMenu;
62 HMENU hOptionsMenu;
63
64 hMenu = GetMenu(hMainWnd);
65 hOptionsMenu = GetSubMenu(hMenu, OPTIONS_MENU_INDEX);
66
67 /*
68 * Check or uncheck the hide when minimized menu item.
69 */
70 if (GetMenuState(hOptionsMenu, ID_OPTIONS_HIDEWHENMINIMIZED, MF_BYCOMMAND) & MF_CHECKED)
71 {
72 CheckMenuItem(hOptionsMenu, ID_OPTIONS_HIDEWHENMINIMIZED, MF_BYCOMMAND|MF_UNCHECKED);
73 TaskManagerSettings.HideWhenMinimized = FALSE;
74 }
75 else
76 {
77 CheckMenuItem(hOptionsMenu, ID_OPTIONS_HIDEWHENMINIMIZED, MF_BYCOMMAND|MF_CHECKED);
78 TaskManagerSettings.HideWhenMinimized = TRUE;
79 }
80 }
81
82 void TaskManager_OnOptionsShow16BitTasks(void)
83 {
84 HMENU hMenu;
85 HMENU hOptionsMenu;
86
87 hMenu = GetMenu(hMainWnd);
88 hOptionsMenu = GetSubMenu(hMenu, OPTIONS_MENU_INDEX);
89
90 /*
91 * FIXME: Currently this is useless because the
92 * current implementation doesn't list the 16-bit
93 * processes. I believe that would require querying
94 * each ntvdm.exe process for it's children.
95 */
96
97 /*
98 * Check or uncheck the show 16-bit tasks menu item
99 */
100 if (GetMenuState(hOptionsMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND) & MF_CHECKED)
101 {
102 CheckMenuItem(hOptionsMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_UNCHECKED);
103 TaskManagerSettings.Show16BitTasks = FALSE;
104 }
105 else
106 {
107 CheckMenuItem(hOptionsMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_CHECKED);
108 TaskManagerSettings.Show16BitTasks = TRUE;
109 }
110
111 /*
112 * Refresh the list of processes.
113 */
114 RefreshProcessPage();
115 }