updatechecks function for checkmarks

This commit is contained in:
freedom
2023-07-22 03:35:03 -06:00
parent 98de8a67c8
commit 0eba0d96eb
3 changed files with 59 additions and 16 deletions

View File

@@ -57,6 +57,7 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
LoadString(hAppInstance, IDS_PMCLASS, szClass, ARRAYSIZE(szClass));
LoadString(hAppInstance, IDS_APPTITLE, szAppTitle, ARRAYSIZE(szAppTitle));
LoadString(hAppInstance, IDS_WEBSITE, szWebsite, ARRAYSIZE(szWebsite));
GetUserNameEx(NameSamCompatible, szUsername, &dwUsernameLen);
// Register the Frame Window
wc.lpfnWndProc = WndProc;
@@ -75,16 +76,17 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
return FALSE;
// Perform Registry actions, close if registry is inaccessible.
if (!InitializeRegistryKeys())
if (InitializeRegistryKeys())
{
bIsDefaultShell = IsProgMgrDefaultShell();
LoadConfig();
}
else
{
return FALSE;
}
bIsDefaultShell = IsProgMgrDefaultShell();
LoadConfig();
// Add username to window title
GetUserNameEx(NameSamCompatible, szUsername, &dwUsernameLen);
// Add username to window title if settings permit
StringCchCopy(szWindowTitle, ARRAYSIZE(szAppTitle), szAppTitle);
if (bShowUsername)
@@ -104,13 +106,12 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
hMenu = GetMenu(hWndProgMgr);
hSystemMenu = GetSystemMenu(hWndProgMgr, FALSE);
// Use our configuration to update our menu checkmarks
if (bAutoArrange)
CheckMenuItem(hMenu, IDM_OPTIONS_AUTOARRANGE, MF_CHECKED);
if (bMinOnRun)
CheckMenuItem(hMenu, IDM_OPTIONS_MINONRUN, MF_CHECKED);
if (bSaveSettings)
CheckMenuItem(hMenu, IDM_OPTIONS_SAVESETTINGS, MF_CHECKED);
// Update our menu checkmarks
UpdateChecks(bAutoArrange, IDM_OPTIONS, IDM_OPTIONS_AUTOARRANGE);
UpdateChecks(bMinOnRun, IDM_OPTIONS, IDM_OPTIONS_MINONRUN);
UpdateChecks(bTopMost, IDM_OPTIONS, IDM_OPTIONS_TOPMOST);
UpdateChecks(bShowUsername, IDM_OPTIONS, IDM_OPTIONS_SHOWUSERNAME);
UpdateChecks(bSaveSettings, IDM_OPTIONS, IDM_OPTIONS_SAVESETTINGS);
if (bIsDefaultShell)
{

View File

@@ -45,4 +45,5 @@ BOOL RunFileDlg(HWND hWndOwner, HICON hIcon, LPWSTR lpszDir, LPWSTR lpszTitle, L
BOOL ExitWindowsDialog(HWND hWndOwner);
// WNDPROC.C
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK CmdProc(HWND hWnd, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK CmdProc(HWND hWnd, WPARAM wParam, LPARAM lParam);
VOID UpdateChecks(BOOL bVarMenu, UINT uSubMenu, UINT uID);

View File

@@ -120,7 +120,32 @@ LRESULT CALLBACK CmdProc(HWND hWnd, WPARAM wParam, LPARAM lParam)
PostQuitMessage(0);
break;
case IDM_OPTIONS_AUTOARRANGE:
bAutoArrange = !bAutoArrange;
UpdateChecks(bAutoArrange, IDM_OPTIONS, IDM_OPTIONS_AUTOARRANGE);
goto SaveConfig;
case IDM_OPTIONS_MINONRUN:
bMinOnRun = !bMinOnRun;
UpdateChecks(bMinOnRun, IDM_OPTIONS, IDM_OPTIONS_MINONRUN);
goto SaveConfig;
case IDM_OPTIONS_TOPMOST:
bTopMost = !bTopMost;
UpdateChecks(bTopMost, IDM_OPTIONS, IDM_OPTIONS_TOPMOST);
goto SaveConfig;
case IDM_OPTIONS_SHOWUSERNAME:
bShowUsername = !bShowUsername;
UpdateChecks(bShowUsername, IDM_OPTIONS, IDM_OPTIONS_SHOWUSERNAME);
goto SaveConfig;
case IDM_OPTIONS_SAVESETTINGS:
bSaveSettings = !bSaveSettings;
UpdateChecks(bSaveSettings, IDM_OPTIONS, IDM_OPTIONS_SAVESETTINGS);
goto SaveConfig;
case IDM_OPTIONS_SAVENOW:
SaveConfig:
SaveConfig();
break;
@@ -144,6 +169,22 @@ LRESULT CALLBACK CmdProc(HWND hWnd, WPARAM wParam, LPARAM lParam)
return TRUE;
}
/* * * *\
UpdateChecks -
Updated checkmarks for a menu based on input
RETURNS -
Nothing!
\* * * */
VOID UpdateChecks(BOOL bVarMenu, UINT uSubMenu, UINT uID)
{
HMENU hMenu;
hMenu = GetMenu(hWndProgMgr);
CheckMenuItem(hMenu, uID, (WORD)(bVarMenu ? MF_CHECKED : MF_UNCHECKED));
return;
}
/* * * *\
ChildWndProc -
Program Manager's window procedure.