Skip to content

Commit

Permalink
[EXPLORER] start reworking some code for loading/saving settings impl…
Browse files Browse the repository at this point in the history
…ementation 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
  • Loading branch information
gonzoMD committed Apr 14, 2017
1 parent 71817ab commit 8bf97b3
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 17 deletions.
2 changes: 1 addition & 1 deletion reactos/base/shell/explorer/explorer.cpp
Expand Up @@ -132,7 +132,7 @@ StartWithDesktop(IN HINSTANCE hInstance)
hExplorerInstance = hInstance;
hProcessHeap = GetProcessHeap();

LoadAdvancedSettings();
LoadTaskBarSettings();
InitCommonControls();
OleInitialize(NULL);

Expand Down
19 changes: 14 additions & 5 deletions reactos/base/shell/explorer/precomp.h
Expand Up @@ -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,
Expand Down
21 changes: 17 additions & 4 deletions reactos/base/shell/explorer/settings.cpp
Expand Up @@ -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)
Expand All @@ -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,
Expand Down
6 changes: 3 additions & 3 deletions reactos/base/shell/explorer/trayntfy.cpp
Expand Up @@ -867,7 +867,7 @@ class CTrayClockWnd :
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],
Expand Down Expand Up @@ -939,7 +939,7 @@ class CTrayClockWnd :
/* 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;
Expand Down Expand Up @@ -997,7 +997,7 @@ class CTrayClockWnd :

uiDueTime = CalculateDueTime();

if (AdvancedSettings.bShowSeconds)
if (TaskBarSettings.bShowSeconds)
{
uiWait1 = 1000 - 200;
uiWait2 = 1000;
Expand Down
14 changes: 10 additions & 4 deletions reactos/base/shell/explorer/trayprop.cpp
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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;
}

Expand Down

0 comments on commit 8bf97b3

Please sign in to comment.