[EXPLORER] start reworking some code for loading/saving settings implementation CORE...
authorRobert Naumann <gonzomdx@gmail.com>
Fri, 14 Apr 2017 18:08:34 +0000 (18:08 +0000)
committerRobert Naumann <gonzomdx@gmail.com>
Fri, 14 Apr 2017 18:08:34 +0000 (18:08 +0000)
- 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

reactos/base/shell/explorer/explorer.cpp
reactos/base/shell/explorer/precomp.h
reactos/base/shell/explorer/settings.cpp
reactos/base/shell/explorer/trayntfy.cpp
reactos/base/shell/explorer/trayprop.cpp

index 5e654d1..f392dc2 100644 (file)
@@ -132,7 +132,7 @@ StartWithDesktop(IN HINSTANCE hInstance)
     hExplorerInstance = hInstance;
     hProcessHeap = GetProcessHeap();
 
-    LoadAdvancedSettings();
+    LoadTaskBarSettings();
     InitCommonControls();
     OleInitialize(NULL);
 
index eeb646f..99d5ac3 100644 (file)
@@ -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,
index b5cafb1..de75406 100644 (file)
 
 #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,
index 4696ae3..00015fa 100644 (file)
@@ -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;
index f10332f..3316762 100644 (file)
@@ -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;
             }