[EXPLORER_NEW]
authorThomas Faber <thomas.faber@reactos.org>
Wed, 26 Dec 2012 15:14:41 +0000 (15:14 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Wed, 26 Dec 2012 15:14:41 +0000 (15:14 +0000)
- Add Advanced tab in task bar properties to support ReactOS-specific options (currently: show seconds in tray clock). Patch by Edijs Kolesnikovics.
CORE-5410 #comment Patch committed, thanks! Awaiting the updated save-to-registry functionality.

svn path=/trunk/; revision=58011

23 files changed:
reactos/base/shell/explorer-new/lang/bg-BG.rc
reactos/base/shell/explorer-new/lang/cs-CZ.rc
reactos/base/shell/explorer-new/lang/de-DE.rc
reactos/base/shell/explorer-new/lang/en-US.rc
reactos/base/shell/explorer-new/lang/es-ES.rc
reactos/base/shell/explorer-new/lang/fr-FR.rc
reactos/base/shell/explorer-new/lang/it-IT.rc
reactos/base/shell/explorer-new/lang/ja-JP.rc
reactos/base/shell/explorer-new/lang/ko-KR.rc
reactos/base/shell/explorer-new/lang/lt-LT.rc
reactos/base/shell/explorer-new/lang/nl-NL.rc
reactos/base/shell/explorer-new/lang/no-NO.rc
reactos/base/shell/explorer-new/lang/pl-PL.rc
reactos/base/shell/explorer-new/lang/pt-BR.rc
reactos/base/shell/explorer-new/lang/ro-RO.rc
reactos/base/shell/explorer-new/lang/ru-RU.rc
reactos/base/shell/explorer-new/lang/sk-SK.rc
reactos/base/shell/explorer-new/lang/uk-UA.rc
reactos/base/shell/explorer-new/lang/zh-CN.rc
reactos/base/shell/explorer-new/precomp.h
reactos/base/shell/explorer-new/resource.h
reactos/base/shell/explorer-new/trayntfy.c
reactos/base/shell/explorer-new/trayprop.c

index fb5f30a..7c0ad4a 100644 (file)
@@ -124,6 +124,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 6a4c26d..018d15b 100644 (file)
@@ -128,6 +128,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 8dded5f..a239410 100644 (file)
@@ -122,6 +122,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 66ca5d2..7615992 100644 (file)
@@ -122,6 +122,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 2d534ce..5768358 100644 (file)
@@ -131,6 +131,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 084bb5e..3343f96 100644 (file)
@@ -131,6 +131,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 336a865..9c578b1 100644 (file)
@@ -122,6 +122,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index d5e94a0..e855945 100644 (file)
@@ -122,6 +122,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 3c05a34..ce6179a 100644 (file)
@@ -136,6 +136,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 94b04d0..9203d47 100644 (file)
@@ -126,6 +126,14 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Rodyti s&ekundes", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 2d0aa99..5f301ec 100644 (file)
@@ -122,6 +122,14 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 95acbb7..0b9da8e 100644 (file)
@@ -131,6 +131,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 0e7c4d0..e4b4aa0 100644 (file)
@@ -131,6 +131,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 0c38024..e0e319d 100644 (file)
@@ -124,6 +124,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 865dd92..166d4d7 100644 (file)
@@ -123,6 +123,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 813e26b..675c612 100644 (file)
@@ -124,6 +124,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index e6675d4..a88cb68 100644 (file)
@@ -127,6 +127,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index f17f8a0..2d16e46 100644 (file)
@@ -130,6 +130,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index b19a1f4..d09a0ea 100644 (file)
@@ -130,6 +130,15 @@ BEGIN
     CONTROL         "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
 END
 
+IDD_TASKBARPROP_ADVANCED DIALOGEX 0, 0, 252, 218
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+    GROUPBOX        "Advanced options", IDC_STATIC, 6,6,240,121
+    AUTOCHECKBOX    "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10
+END
+
 
 STRINGTABLE DISCARDABLE
 BEGIN
index 66db62d..4c9ddd2 100644 (file)
 #include "initguid.h"
 #include "undoc.h"
 
+/* Structure to hold non-default options*/
+typedef struct _ADVANCED_SETTINGS {
+    BOOL bShowSeconds;
+} ADVANCED_SETTINGS, *PADVANCED_SETTINGS;
+
+extern ADVANCED_SETTINGS AdvancedSettings;
+
 /* dynamic imports due to lack of support in msvc linker libs */
 typedef INT (APIENTRY *REGSHELLHOOK)(HWND, DWORD);
 #ifdef UNICODE
index 7890d13..60b6f13 100644 (file)
@@ -80,6 +80,7 @@
 #define IDB_TASKBARPROP_NOLOCK_NOGROUP_NOQL 2056
 #define IDB_TASKBARPROP_NOLOCK_NOGROUP_QL 2057
 #define IDB_TASKBARPROP_NOLOCK_GROUP_QL 2058
+#define IDC_TASKBARPROP_SECONDS 2059
 
 /* Taskbar properties, startmenu*/
 #define IDD_TASKBARPROP_STARTMENU 2100
 #define IDC_TASKBARPROP_VOLUME 2205
 #define IDC_TASKBARPROP_NETWORK 2206
 #define IDC_TASKBARPROP_POWER 2207
+#define IDD_TASKBARPROP_ADVANCED 2208
 
 /* Taskbar properties, toolbars */
 #define IDD_TASKBARPROP_TOOLBARS 2300
index 9e0bbb9..ad67502 100644 (file)
@@ -688,8 +688,6 @@ UnregisterSysPagerWndClass(VOID)
  */
 
 static const TCHAR szTrayClockWndClass[] = TEXT("TrayClockWClass");
-static LPCTSTR s_szRegistryKey = _T("Software\\ReactOS\\Features\\Explorer");
-BOOL blShowSeconds;
 
 #define ID_TRAYCLOCK_TIMER  0
 #define ID_TRAYCLOCK_TIMER_INIT 1
@@ -724,27 +722,6 @@ HRESULT RegGetDWord(HKEY hKey, LPCTSTR szValueName, DWORD * lpdwResult)
     return NOERROR;
 }
 
-void LoadSettings(void)
-{
-    HKEY hKey = NULL;
-    DWORD dwValue;
-
-    if (RegOpenKey(HKEY_CURRENT_USER, s_szRegistryKey, &hKey) == ERROR_SUCCESS)
-    {
-        RegGetDWord(hKey, TEXT("blShowSeconds"), &dwValue);
-        if (dwValue == 1)
-        {
-            blShowSeconds = TRUE;
-        }
-        else
-        {
-            blShowSeconds = FALSE;
-        }
-
-        RegCloseKey(hKey);
-    }
-}
-
 #define CLOCKWND_FORMAT_COUNT (sizeof(ClockWndFormats) / sizeof(ClockWndFormats[0]))
 
 #define TRAY_CLOCK_WND_SPACING_X    0
@@ -965,7 +942,7 @@ TrayClockWnd_UpdateWnd(IN OUT PTRAY_CLOCK_WND_DATA This)
         if (ClockWndFormats[i].IsTime)
         {
             iRet = GetTimeFormat(LOCALE_USER_DEFAULT,
-                                 ClockWndFormats[i].dwFormatFlags,
+                                 AdvancedSettings.bShowSeconds ? ClockWndFormats[i].dwFormatFlags : TIME_NOSECONDS,
                                  &This->LocalTime,
                                  ClockWndFormats[i].lpFormat,
                                  This->szLines[i],
@@ -983,11 +960,6 @@ TrayClockWnd_UpdateWnd(IN OUT PTRAY_CLOCK_WND_DATA This)
 
         if (iRet != 0 && i == 0)
         {
-            if (blShowSeconds == FALSE)
-            {
-                This->szLines[0][5] = '\0';
-            }
-
             /* Set the window text to the time only */
             SetWindowText(This->hWnd,
                           This->szLines[i]);
@@ -1051,7 +1023,7 @@ TrayClockWnd_CalculateDueTime(IN OUT PTRAY_CLOCK_WND_DATA This)
     /* Calculate the due time */
     GetLocalTime(&This->LocalTime);
     uiDueTime = 1000 - (UINT)This->LocalTime.wMilliseconds;
-    if (blShowSeconds == TRUE)
+    if (AdvancedSettings.bShowSeconds)
         uiDueTime += (UINT)This->LocalTime.wSecond * 100;
     else
         uiDueTime += (59 - (UINT)This->LocalTime.wSecond) * 1000;
@@ -1117,7 +1089,7 @@ TrayClockWnd_CalibrateTimer(IN OUT PTRAY_CLOCK_WND_DATA This)
 
     uiDueTime = TrayClockWnd_CalculateDueTime(This);
 
-    if (blShowSeconds == TRUE)
+    if (AdvancedSettings.bShowSeconds)
     {
         uiWait1 = 1000 - 200;
         uiWait2 = 1000;
@@ -1403,7 +1375,6 @@ CreateTrayClockWnd(IN HWND hWndParent,
     PTRAY_CLOCK_WND_DATA TcData;
     DWORD dwStyle;
     HWND hWnd = NULL;
-    LoadSettings();
 
     TcData = HeapAlloc(hProcessHeap,
                        0,
index 00ec3a6..426ed6b 100644 (file)
@@ -30,6 +30,8 @@ typedef struct _PROPSHEET_INFO
     HBITMAP hTaskbarBitmap;
 } PROPSHEET_INFO, *PPROPSHEET_INFO;
 
+ADVANCED_SETTINGS AdvancedSettings = { FALSE };
+
 
 static BOOL
 UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
@@ -38,7 +40,7 @@ UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
     HWND hwndBitmap;
     BOOL bLock, bHide, bGroup, bShowQL;
     LPTSTR lpImageName = NULL;
-    BOOL bRet = FALSE; 
+    BOOL bRet = FALSE;
 
     hwndLock = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_LOCK);
     hwndHide = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_HIDE);
@@ -188,8 +190,58 @@ HandleDefaultMessage:
     return FALSE;
 }
 
+static INT_PTR CALLBACK
+AdvancedSettingsPageProc(HWND hwndDlg,
+                         UINT uMsg,
+                         WPARAM wParam,
+                         LPARAM lParam)
+{
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+            CheckDlgButton(hwndDlg, IDC_TASKBARPROP_SECONDS, AdvancedSettings.bShowSeconds ? BST_CHECKED : BST_UNCHECKED);
+            break;
 
-INT_PTR CALLBACK
+        case WM_COMMAND:
+            switch (LOWORD(wParam))
+            {
+                case IDC_TASKBARPROP_SECONDS:
+                    if (HIWORD(wParam) == BN_CLICKED)
+                    {
+                        PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
+                    }
+                    break;
+            }
+            break;
+
+        case WM_NOTIFY:
+        {
+            LPNMHDR pnmh = (LPNMHDR)lParam;
+
+            switch (pnmh->code)
+            {
+                case PSN_SETACTIVE:
+                    break;
+
+                case PSN_APPLY:
+                    AdvancedSettings.bShowSeconds = IsDlgButtonChecked(hwndDlg, IDC_TASKBARPROP_SECONDS);
+                    break;
+            }
+
+            break;
+        }
+
+        case WM_DESTROY:
+            break;
+
+        default:
+            return FALSE;
+    }
+
+    return FALSE;
+}
+
+static INT_PTR CALLBACK
 StartMenuPageProc(HWND hwndDlg,
                   UINT uMsg,
                   WPARAM wParam,
@@ -224,7 +276,7 @@ StartMenuPageProc(HWND hwndDlg,
 }
 
 
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
 NotificationPageProc(HWND hwndDlg,
                      UINT uMsg,
                      WPARAM wParam,
@@ -259,7 +311,7 @@ NotificationPageProc(HWND hwndDlg,
 }
 
 
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
 ToolbarsPageProc(HWND hwndDlg,
                  UINT uMsg,
                  WPARAM wParam,
@@ -315,7 +367,7 @@ DisplayTrayProperties(ITrayWindow *Tray)
 {
     PPROPSHEET_INFO pPropInfo;
     PROPSHEETHEADER psh;
-    PROPSHEETPAGE psp[4];
+    PROPSHEETPAGE psp[5];
     TCHAR szCaption[256];
 
     pPropInfo = (PPROPSHEET_INFO)HeapAlloc(hProcessHeap,
@@ -349,10 +401,11 @@ DisplayTrayProperties(ITrayWindow *Tray)
     psh.nStartPage = 0;
     psh.ppsp = psp;
 
-    InitPropSheetPage(&psp[0], IDD_TASKBARPROP_TASKBAR, (DLGPROC)TaskbarPageProc, (LPARAM)pPropInfo);
-    InitPropSheetPage(&psp[1], IDD_TASKBARPROP_STARTMENU, (DLGPROC)StartMenuPageProc, (LPARAM)pPropInfo);
-    InitPropSheetPage(&psp[2], IDD_TASKBARPROP_NOTIFICATION, (DLGPROC)NotificationPageProc, (LPARAM)pPropInfo);
-    InitPropSheetPage(&psp[3], IDD_TASKBARPROP_TOOLBARS, (DLGPROC)ToolbarsPageProc, (LPARAM)pPropInfo);
+    InitPropSheetPage(&psp[0], IDD_TASKBARPROP_TASKBAR, TaskbarPageProc, (LPARAM)pPropInfo);
+    InitPropSheetPage(&psp[1], IDD_TASKBARPROP_STARTMENU, StartMenuPageProc, (LPARAM)pPropInfo);
+    InitPropSheetPage(&psp[2], IDD_TASKBARPROP_NOTIFICATION, NotificationPageProc, (LPARAM)pPropInfo);
+    InitPropSheetPage(&psp[3], IDD_TASKBARPROP_TOOLBARS, ToolbarsPageProc, (LPARAM)pPropInfo);
+    InitPropSheetPage(&psp[4], IDD_TASKBARPROP_ADVANCED, AdvancedSettingsPageProc, (LPARAM)pPropInfo);
 
     PropertySheet(&psh);