Sync with trunk r58033.
[reactos.git] / base / shell / explorer-new / trayprop.c
index 00ec3a6..28853d0 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);
@@ -140,7 +142,7 @@ TaskbarPageProc(HWND hwndDlg,
             break;
 
         case WM_COMMAND:
-            switch(LOWORD(wParam))
+            switch (LOWORD(wParam))
             {
                 case IDC_TASKBARPROP_LOCK:
                 case IDC_TASKBARPROP_HIDE:
@@ -161,7 +163,7 @@ TaskbarPageProc(HWND hwndDlg,
         {
             LPNMHDR pnmh = (LPNMHDR)lParam;
 
-            switch(pnmh->code)
+            switch (pnmh->code)
             {
                 case PSN_SETACTIVE:
                     break;
@@ -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,
@@ -207,7 +259,7 @@ StartMenuPageProc(HWND hwndDlg,
         {
             LPNMHDR pnmh = (LPNMHDR)lParam;
 
-            switch(pnmh->code)
+            switch (pnmh->code)
             {
                 case PSN_SETACTIVE:
                     break;
@@ -224,7 +276,7 @@ StartMenuPageProc(HWND hwndDlg,
 }
 
 
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
 NotificationPageProc(HWND hwndDlg,
                      UINT uMsg,
                      WPARAM wParam,
@@ -242,7 +294,7 @@ NotificationPageProc(HWND hwndDlg,
         {
             LPNMHDR pnmh = (LPNMHDR)lParam;
 
-            switch(pnmh->code)
+            switch (pnmh->code)
             {
                 case PSN_SETACTIVE:
                     break;
@@ -259,7 +311,7 @@ NotificationPageProc(HWND hwndDlg,
 }
 
 
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
 ToolbarsPageProc(HWND hwndDlg,
                  UINT uMsg,
                  WPARAM wParam,
@@ -277,7 +329,7 @@ ToolbarsPageProc(HWND hwndDlg,
         {
             LPNMHDR pnmh = (LPNMHDR)lParam;
 
-            switch(pnmh->code)
+            switch (pnmh->code)
             {
                 case PSN_SETACTIVE:
                     break;
@@ -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);