Skip to content

Commit 590622a

Browse files
committed
Uncheck group menu items optimization
1 parent f70ae41 commit 590622a

File tree

1 file changed

+46
-42
lines changed

1 file changed

+46
-42
lines changed

SmartSystemMenu/SystemMenu.cs

Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ public bool Exists
3333
{
3434
get
3535
{
36-
var windowMenuHandle = GetSystemMenu(WindowHandle, false);
37-
var existsWindowMenu = windowMenuHandle != IntPtr.Zero;
36+
var menuHandle = GetSystemMenu(WindowHandle, false);
37+
var existsWindowMenu = menuHandle != IntPtr.Zero;
3838
return existsWindowMenu;
3939
}
4040
}
@@ -173,77 +173,81 @@ public void Destroy(bool restoreMenu = true)
173173

174174
public void CheckMenuItem(int id, bool check)
175175
{
176-
var windowMenuHandle = GetSystemMenu(WindowHandle, false);
177-
User32.CheckMenuItem(windowMenuHandle, id, check ? Constants.MF_CHECKED : Constants.MF_UNCHECKED);
176+
var menuHandle = GetSystemMenu(WindowHandle, false);
177+
User32.CheckMenuItem(menuHandle, id, check ? Constants.MF_CHECKED : Constants.MF_UNCHECKED);
178178
}
179179

180180
public void UncheckMenuItems(params int[] ids)
181181
{
182-
var windowMenuHandle = GetSystemMenu(WindowHandle, false);
182+
var menuHandle = GetSystemMenu(WindowHandle, false);
183183
foreach (var id in ids)
184184
{
185-
User32.CheckMenuItem(windowMenuHandle, id, Constants.MF_UNCHECKED);
185+
User32.CheckMenuItem(menuHandle, id, Constants.MF_UNCHECKED);
186186
}
187187
}
188188

189189
public bool IsMenuItemChecked(int id)
190190
{
191-
var windowMenuHandle = GetSystemMenu(WindowHandle, false);
192-
var flags = GetMenuState(windowMenuHandle, id, Constants.MF_BYCOMMAND);
191+
var menuHandle = GetSystemMenu(WindowHandle, false);
192+
var flags = GetMenuState(menuHandle, id, Constants.MF_BYCOMMAND);
193193
var isChecked = flags != -1 && (flags & Constants.MF_CHECKED) != 0;
194194
return isChecked;
195195
}
196196

197197
public void UncheckPriorityMenu()
198198
{
199-
CheckMenuItem(MenuItemId.SC_PRIORITY_REAL_TIME, false);
200-
CheckMenuItem(MenuItemId.SC_PRIORITY_HIGH, false);
201-
CheckMenuItem(MenuItemId.SC_PRIORITY_ABOVE_NORMAL, false);
202-
CheckMenuItem(MenuItemId.SC_PRIORITY_NORMAL, false);
203-
CheckMenuItem(MenuItemId.SC_PRIORITY_BELOW_NORMAL, false);
204-
CheckMenuItem(MenuItemId.SC_PRIORITY_IDLE, false);
199+
var menuHandle = GetSystemMenu(WindowHandle, false);
200+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_PRIORITY_REAL_TIME, Constants.MF_UNCHECKED);
201+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_PRIORITY_HIGH, Constants.MF_UNCHECKED);
202+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_PRIORITY_ABOVE_NORMAL, Constants.MF_UNCHECKED);
203+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_PRIORITY_NORMAL, Constants.MF_UNCHECKED);
204+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_PRIORITY_BELOW_NORMAL, Constants.MF_UNCHECKED);
205+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_PRIORITY_IDLE, Constants.MF_UNCHECKED);
205206
}
206207

207208
public void UncheckAlignmentMenu()
208209
{
209-
CheckMenuItem(MenuItemId.SC_ALIGN_TOP_LEFT, false);
210-
CheckMenuItem(MenuItemId.SC_ALIGN_TOP_CENTER, false);
211-
CheckMenuItem(MenuItemId.SC_ALIGN_TOP_RIGHT, false);
212-
CheckMenuItem(MenuItemId.SC_ALIGN_MIDDLE_LEFT, false);
213-
CheckMenuItem(MenuItemId.SC_ALIGN_MIDDLE_CENTER, false);
214-
CheckMenuItem(MenuItemId.SC_ALIGN_MIDDLE_RIGHT, false);
215-
CheckMenuItem(MenuItemId.SC_ALIGN_BOTTOM_LEFT, false);
216-
CheckMenuItem(MenuItemId.SC_ALIGN_BOTTOM_CENTER, false);
217-
CheckMenuItem(MenuItemId.SC_ALIGN_BOTTOM_RIGHT, false);
218-
CheckMenuItem(MenuItemId.SC_ALIGN_CENTER_HORIZONTALLY, false);
219-
CheckMenuItem(MenuItemId.SC_ALIGN_CENTER_VERTICALLY, false);
220-
CheckMenuItem(MenuItemId.SC_ALIGN_DEFAULT, false);
221-
CheckMenuItem(MenuItemId.SC_ALIGN_CUSTOM, false);
210+
var menuHandle = GetSystemMenu(WindowHandle, false);
211+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_TOP_LEFT, Constants.MF_UNCHECKED);
212+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_TOP_CENTER, Constants.MF_UNCHECKED);
213+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_TOP_RIGHT, Constants.MF_UNCHECKED);
214+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_MIDDLE_LEFT, Constants.MF_UNCHECKED);
215+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_MIDDLE_CENTER, Constants.MF_UNCHECKED);
216+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_MIDDLE_RIGHT, Constants.MF_UNCHECKED);
217+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_BOTTOM_LEFT, Constants.MF_UNCHECKED);
218+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_BOTTOM_CENTER, Constants.MF_UNCHECKED);
219+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_BOTTOM_RIGHT, Constants.MF_UNCHECKED);
220+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_CENTER_HORIZONTALLY, Constants.MF_UNCHECKED);
221+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_CENTER_VERTICALLY, Constants.MF_UNCHECKED);
222+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_DEFAULT, Constants.MF_UNCHECKED);
223+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_ALIGN_CUSTOM, Constants.MF_UNCHECKED);
222224
}
223225

224226
public void UncheckSizeMenu()
225227
{
228+
var menuHandle = GetSystemMenu(WindowHandle, false);
226229
var windowSizeMenuItemIds = _menuItems.WindowSizeItems.Select(x => x.Id).ToArray();
227230
UncheckMenuItems(windowSizeMenuItemIds);
228-
CheckMenuItem(MenuItemId.SC_SIZE_DEFAULT, false);
229-
CheckMenuItem(MenuItemId.SC_SIZE_CUSTOM, false);
231+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_SIZE_DEFAULT, Constants.MF_UNCHECKED);
232+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_SIZE_CUSTOM, Constants.MF_UNCHECKED);
230233
}
231234

232235
public void UncheckTransparencyMenu()
233236
{
234-
CheckMenuItem(MenuItemId.SC_TRANS_100, false);
235-
CheckMenuItem(MenuItemId.SC_TRANS_90, false);
236-
CheckMenuItem(MenuItemId.SC_TRANS_80, false);
237-
CheckMenuItem(MenuItemId.SC_TRANS_70, false);
238-
CheckMenuItem(MenuItemId.SC_TRANS_60, false);
239-
CheckMenuItem(MenuItemId.SC_TRANS_50, false);
240-
CheckMenuItem(MenuItemId.SC_TRANS_40, false);
241-
CheckMenuItem(MenuItemId.SC_TRANS_30, false);
242-
CheckMenuItem(MenuItemId.SC_TRANS_20, false);
243-
CheckMenuItem(MenuItemId.SC_TRANS_10, false);
244-
CheckMenuItem(MenuItemId.SC_TRANS_00, false);
245-
CheckMenuItem(MenuItemId.SC_TRANS_CUSTOM, false);
246-
CheckMenuItem(MenuItemId.SC_TRANS_DEFAULT, false);
237+
var menuHandle = GetSystemMenu(WindowHandle, false);
238+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_100, Constants.MF_UNCHECKED);
239+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_90, Constants.MF_UNCHECKED);
240+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_80, Constants.MF_UNCHECKED);
241+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_70, Constants.MF_UNCHECKED);
242+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_60, Constants.MF_UNCHECKED);
243+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_50, Constants.MF_UNCHECKED);
244+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_40, Constants.MF_UNCHECKED);
245+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_30, Constants.MF_UNCHECKED);
246+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_20, Constants.MF_UNCHECKED);
247+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_10, Constants.MF_UNCHECKED);
248+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_00, Constants.MF_UNCHECKED);
249+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_CUSTOM, Constants.MF_UNCHECKED);
250+
User32.CheckMenuItem(menuHandle, MenuItemId.SC_TRANS_DEFAULT, Constants.MF_UNCHECKED);
247251
}
248252

249253
public bool IsMenuItem(IntPtr menuHandle, int item)

0 commit comments

Comments
 (0)