From: Robert Naumann Date: Fri, 14 Apr 2017 18:08:34 +0000 (+0000) Subject: [EXPLORER] start reworking some code for loading/saving settings implementation CORE... X-Git-Tag: ReactOS-0.4.5~126 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=8bf97b3a3d6b2ad90a8f276d603bc6cf12461bb8;hp=71817abc606b9239dba5a8c9ad3bcfc8e5281a3d [EXPLORER] start reworking some code for loading/saving settings implementation CORE-11498 - Rename the settings structure to something more meaningful for using it for all taskbar related settings - define some default settings - check checkboxes with settings values in the properties window - move saving the settings to an own function which will be implemented later svn path=/trunk/; revision=74307 --- diff --git a/reactos/base/shell/explorer/explorer.cpp b/reactos/base/shell/explorer/explorer.cpp index 5e654d199f3..f392dc2e114 100644 --- a/reactos/base/shell/explorer/explorer.cpp +++ b/reactos/base/shell/explorer/explorer.cpp @@ -132,7 +132,7 @@ StartWithDesktop(IN HINSTANCE hInstance) hExplorerInstance = hInstance; hProcessHeap = GetProcessHeap(); - LoadAdvancedSettings(); + LoadTaskBarSettings(); InitCommonControls(); OleInitialize(NULL); diff --git a/reactos/base/shell/explorer/precomp.h b/reactos/base/shell/explorer/precomp.h index eeb646f0dc2..99d5ac3de8a 100644 --- a/reactos/base/shell/explorer/precomp.h +++ b/reactos/base/shell/explorer/precomp.h @@ -176,16 +176,25 @@ TrayMessageLoop(IN OUT ITrayWindow *Tray); */ /* Structure to hold non-default options*/ -typedef struct _ADVANCED_SETTINGS +typedef struct _TASKBAR_SETTINGS { + BOOL bLock; + BOOL bAutoHide; + BOOL bAlwaysOnTop; + BOOL bGroupButtons; + BOOL bShowQuickLaunch; + BOOL bShowClock; BOOL bShowSeconds; -} ADVANCED_SETTINGS, *PADVANCED_SETTINGS; + BOOL bHideInactiveIcons; +} TASKBAR_SETTINGS, *PTASKBAR_SETTINGS; -extern ADVANCED_SETTINGS AdvancedSettings; -extern const TCHAR szAdvancedSettingsKey []; +extern TASKBAR_SETTINGS TaskBarSettings; VOID -LoadAdvancedSettings(VOID); +LoadTaskBarSettings(VOID); + +VOID +SaveTaskBarSettings(VOID); BOOL SaveSettingDword(IN LPCWSTR pszKeyName, diff --git a/reactos/base/shell/explorer/settings.cpp b/reactos/base/shell/explorer/settings.cpp index b5cafb106ca..de7540655ef 100644 --- a/reactos/base/shell/explorer/settings.cpp +++ b/reactos/base/shell/explorer/settings.cpp @@ -20,16 +20,23 @@ #include "precomp.h" -ADVANCED_SETTINGS AdvancedSettings; +TASKBAR_SETTINGS TaskBarSettings; const WCHAR szAdvancedSettingsKey[] = L"Software\\ReactOS\\Features\\Explorer"; VOID -LoadAdvancedSettings(VOID) +LoadTaskBarSettings(VOID) { HKEY hKey; /* Set defaults */ - AdvancedSettings.bShowSeconds = FALSE; + TaskBarSettings.bLock = TRUE; + TaskBarSettings.bAutoHide = FALSE; + TaskBarSettings.bAlwaysOnTop = FALSE; + TaskBarSettings.bGroupButtons = TRUE; + TaskBarSettings.bShowQuickLaunch = TRUE; + TaskBarSettings.bShowClock = TRUE; + TaskBarSettings.bShowSeconds = FALSE; + TaskBarSettings.bHideInactiveIcons = TRUE; /* Check registry */ if (RegOpenKeyW(HKEY_CURRENT_USER, szAdvancedSettingsKey, &hKey) == ERROR_SUCCESS) @@ -38,12 +45,18 @@ LoadAdvancedSettings(VOID) dwValueLength = sizeof(dwValue); if (RegQueryValueExW(hKey, L"ShowSeconds", NULL, &dwType, (PBYTE)&dwValue, &dwValueLength) == ERROR_SUCCESS && dwType == REG_DWORD) - AdvancedSettings.bShowSeconds = dwValue != 0; + TaskBarSettings.bShowSeconds = dwValue != 0; RegCloseKey(hKey); } } +VOID +SaveTaskBarSettings(VOID) +{ + SaveSettingDword(szAdvancedSettingsKey, TEXT("ShowSeconds"), TaskBarSettings.bShowSeconds); +} + BOOL SaveSettingDword(IN LPCWSTR pszKeyName, IN LPCWSTR pszValueName, diff --git a/reactos/base/shell/explorer/trayntfy.cpp b/reactos/base/shell/explorer/trayntfy.cpp index 4696ae336f5..00015fa3ba0 100644 --- a/reactos/base/shell/explorer/trayntfy.cpp +++ b/reactos/base/shell/explorer/trayntfy.cpp @@ -867,7 +867,7 @@ public: if (ClockWndFormats[i].IsTime) { iRet = GetTimeFormat(LOCALE_USER_DEFAULT, - AdvancedSettings.bShowSeconds ? ClockWndFormats[i].dwFormatFlags : TIME_NOSECONDS, + TaskBarSettings.bShowSeconds ? ClockWndFormats[i].dwFormatFlags : TIME_NOSECONDS, &LocalTime, ClockWndFormats[i].lpFormat, szLines[i], @@ -939,7 +939,7 @@ public: /* Calculate the due time */ GetLocalTime(&LocalTime); uiDueTime = 1000 - (UINT) LocalTime.wMilliseconds; - if (AdvancedSettings.bShowSeconds) + if (TaskBarSettings.bShowSeconds) uiDueTime += (UINT) LocalTime.wSecond * 100; else uiDueTime += (59 - (UINT) LocalTime.wSecond) * 1000; @@ -997,7 +997,7 @@ public: uiDueTime = CalculateDueTime(); - if (AdvancedSettings.bShowSeconds) + if (TaskBarSettings.bShowSeconds) { uiWait1 = 1000 - 200; uiWait2 = 1000; diff --git a/reactos/base/shell/explorer/trayprop.cpp b/reactos/base/shell/explorer/trayprop.cpp index f10332ff01c..33167628c42 100644 --- a/reactos/base/shell/explorer/trayprop.cpp +++ b/reactos/base/shell/explorer/trayprop.cpp @@ -240,8 +240,14 @@ OnCreateTaskbarPage(HWND hwnd, pPropInfo->hTaskbarWnd = hwnd; - // FIXME: check buttons - CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, AdvancedSettings.bShowSeconds ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bLock ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bAutoHide ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bAlwaysOnTop ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bGroupButtons ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bShowQuickLaunch ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bShowClock ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bShowSeconds ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bHideInactiveIcons ? BST_CHECKED : BST_UNCHECKED); UpdateBitmaps(pPropInfo); } @@ -313,8 +319,8 @@ TaskbarPageProc(HWND hwndDlg, break; case PSN_APPLY: - AdvancedSettings.bShowSeconds = IsDlgButtonChecked(hwndDlg, IDC_TASKBARPROP_SECONDS); - SaveSettingDword(szAdvancedSettingsKey, TEXT("ShowSeconds"), AdvancedSettings.bShowSeconds); + TaskBarSettings.bShowSeconds = IsDlgButtonChecked(hwndDlg, IDC_TASKBARPROP_SECONDS); + SaveTaskBarSettings(); break; }