[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
This commit is contained in:
Robert Naumann 2017-04-14 18:08:34 +00:00
parent 71817abc60
commit 8bf97b3a3d
5 changed files with 45 additions and 17 deletions

View file

@ -132,7 +132,7 @@ StartWithDesktop(IN HINSTANCE hInstance)
hExplorerInstance = hInstance; hExplorerInstance = hInstance;
hProcessHeap = GetProcessHeap(); hProcessHeap = GetProcessHeap();
LoadAdvancedSettings(); LoadTaskBarSettings();
InitCommonControls(); InitCommonControls();
OleInitialize(NULL); OleInitialize(NULL);

View file

@ -176,16 +176,25 @@ TrayMessageLoop(IN OUT ITrayWindow *Tray);
*/ */
/* Structure to hold non-default options*/ /* 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; BOOL bShowSeconds;
} ADVANCED_SETTINGS, *PADVANCED_SETTINGS; BOOL bHideInactiveIcons;
} TASKBAR_SETTINGS, *PTASKBAR_SETTINGS;
extern ADVANCED_SETTINGS AdvancedSettings; extern TASKBAR_SETTINGS TaskBarSettings;
extern const TCHAR szAdvancedSettingsKey [];
VOID VOID
LoadAdvancedSettings(VOID); LoadTaskBarSettings(VOID);
VOID
SaveTaskBarSettings(VOID);
BOOL BOOL
SaveSettingDword(IN LPCWSTR pszKeyName, SaveSettingDword(IN LPCWSTR pszKeyName,

View file

@ -20,16 +20,23 @@
#include "precomp.h" #include "precomp.h"
ADVANCED_SETTINGS AdvancedSettings; TASKBAR_SETTINGS TaskBarSettings;
const WCHAR szAdvancedSettingsKey[] = L"Software\\ReactOS\\Features\\Explorer"; const WCHAR szAdvancedSettingsKey[] = L"Software\\ReactOS\\Features\\Explorer";
VOID VOID
LoadAdvancedSettings(VOID) LoadTaskBarSettings(VOID)
{ {
HKEY hKey; HKEY hKey;
/* Set defaults */ /* 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 */ /* Check registry */
if (RegOpenKeyW(HKEY_CURRENT_USER, szAdvancedSettingsKey, &hKey) == ERROR_SUCCESS) if (RegOpenKeyW(HKEY_CURRENT_USER, szAdvancedSettingsKey, &hKey) == ERROR_SUCCESS)
@ -38,12 +45,18 @@ LoadAdvancedSettings(VOID)
dwValueLength = sizeof(dwValue); dwValueLength = sizeof(dwValue);
if (RegQueryValueExW(hKey, L"ShowSeconds", NULL, &dwType, (PBYTE)&dwValue, &dwValueLength) == ERROR_SUCCESS && dwType == REG_DWORD) 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); RegCloseKey(hKey);
} }
} }
VOID
SaveTaskBarSettings(VOID)
{
SaveSettingDword(szAdvancedSettingsKey, TEXT("ShowSeconds"), TaskBarSettings.bShowSeconds);
}
BOOL BOOL
SaveSettingDword(IN LPCWSTR pszKeyName, SaveSettingDword(IN LPCWSTR pszKeyName,
IN LPCWSTR pszValueName, IN LPCWSTR pszValueName,

View file

@ -867,7 +867,7 @@ public:
if (ClockWndFormats[i].IsTime) if (ClockWndFormats[i].IsTime)
{ {
iRet = GetTimeFormat(LOCALE_USER_DEFAULT, iRet = GetTimeFormat(LOCALE_USER_DEFAULT,
AdvancedSettings.bShowSeconds ? ClockWndFormats[i].dwFormatFlags : TIME_NOSECONDS, TaskBarSettings.bShowSeconds ? ClockWndFormats[i].dwFormatFlags : TIME_NOSECONDS,
&LocalTime, &LocalTime,
ClockWndFormats[i].lpFormat, ClockWndFormats[i].lpFormat,
szLines[i], szLines[i],
@ -939,7 +939,7 @@ public:
/* Calculate the due time */ /* Calculate the due time */
GetLocalTime(&LocalTime); GetLocalTime(&LocalTime);
uiDueTime = 1000 - (UINT) LocalTime.wMilliseconds; uiDueTime = 1000 - (UINT) LocalTime.wMilliseconds;
if (AdvancedSettings.bShowSeconds) if (TaskBarSettings.bShowSeconds)
uiDueTime += (UINT) LocalTime.wSecond * 100; uiDueTime += (UINT) LocalTime.wSecond * 100;
else else
uiDueTime += (59 - (UINT) LocalTime.wSecond) * 1000; uiDueTime += (59 - (UINT) LocalTime.wSecond) * 1000;
@ -997,7 +997,7 @@ public:
uiDueTime = CalculateDueTime(); uiDueTime = CalculateDueTime();
if (AdvancedSettings.bShowSeconds) if (TaskBarSettings.bShowSeconds)
{ {
uiWait1 = 1000 - 200; uiWait1 = 1000 - 200;
uiWait2 = 1000; uiWait2 = 1000;

View file

@ -240,8 +240,14 @@ OnCreateTaskbarPage(HWND hwnd,
pPropInfo->hTaskbarWnd = hwnd; pPropInfo->hTaskbarWnd = hwnd;
// FIXME: check buttons CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, TaskBarSettings.bLock ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, AdvancedSettings.bShowSeconds ? 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); UpdateBitmaps(pPropInfo);
} }
@ -313,8 +319,8 @@ TaskbarPageProc(HWND hwndDlg,
break; break;
case PSN_APPLY: case PSN_APPLY:
AdvancedSettings.bShowSeconds = IsDlgButtonChecked(hwndDlg, IDC_TASKBARPROP_SECONDS); TaskBarSettings.bShowSeconds = IsDlgButtonChecked(hwndDlg, IDC_TASKBARPROP_SECONDS);
SaveSettingDword(szAdvancedSettingsKey, TEXT("ShowSeconds"), AdvancedSettings.bShowSeconds); SaveTaskBarSettings();
break; break;
} }