Author: rnaumann
Date: Wed Mar 29 18:37:06 2017
New Revision: 74243
URL:
http://svn.reactos.org/svn/reactos?rev=74243&view=rev
Log:
[EXPLORER] -implement showing the start menu preview
Modified:
trunk/reactos/base/shell/explorer/explorer.rc
trunk/reactos/base/shell/explorer/trayprop.cpp
Modified: trunk/reactos/base/shell/explorer/explorer.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/explor…
==============================================================================
--- trunk/reactos/base/shell/explorer/explorer.rc [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/explorer.rc [iso-8859-1] Wed Mar 29 18:37:06 2017
@@ -51,6 +51,7 @@
IDB_SYSTRAYPROP_SHOW_SECONDS BITMAP "res/bmp/154.bmp"
IDB_SYSTRAYPROP_HIDE_SECONDS BITMAP "res/bmp/155.bmp"
IDB_STARTMENU BITMAP "res/bmp/158.bmp"
+IDB_STARTPREVIEW BITMAP "res/bmp/171.bmp" // We don't
have a proper preview image for the modern start menu yet. Use the classic one so far.
IDB_STARTPREVIEW_CLASSIC BITMAP "res/bmp/171.bmp"
IDB_SYSTRAYPROP_HIDE_CLOCK BITMAP "res/bmp/180.bmp"
IDB_SYSTRAYPROP_HIDE_NOCLOCK BITMAP "res/bmp/181.bmp"
Modified: trunk/reactos/base/shell/explorer/trayprop.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/traypr…
==============================================================================
--- trunk/reactos/base/shell/explorer/trayprop.cpp [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/trayprop.cpp [iso-8859-1] Wed Mar 29 18:37:06 2017
@@ -28,17 +28,18 @@
HBITMAP hTaskbarBitmap;
HBITMAP hTrayBitmap;
+ HBITMAP hStartBitmap;
} PROPSHEET_INFO, *PPROPSHEET_INFO;
static BOOL
-UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
-{
- HWND hwndLock, hwndHide, hwndGroup, hwndShowQL, hwndClock, hwndSeconds,
hwndHideInactive;
- HWND hwndTaskbarBitmap, hwndTrayBitmap;
- HWND hwndAdvancedButton;
+UpdateBitmaps(PPROPSHEET_INFO pPropInfo)
+{
+ HWND hwndLock, hwndHide, hwndGroup, hwndShowQL, hwndClock, hwndSeconds,
hwndHideInactive, hwndModernStart, hwndClassicStart;
+ HWND hwndTaskbarBitmap, hwndTrayBitmap, hwndStartBitmap;
+ HWND hwndCustomizeNotifyButton, hwndCustomizeClassicStartButton,
hwndCustomizeModernStartButton;
BOOL bLock, bHide, bGroup, bShowQL, bShowClock, bShowSeconds, bHideInactive;
- LPTSTR lpTaskBarImageName = NULL, lpTrayImageName = NULL;
+ LPTSTR lpTaskBarImageName = NULL, lpTrayImageName = NULL, lpStartImageName = NULL;
BOOL bRet = FALSE;
hwndLock = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_LOCK);
@@ -50,7 +51,15 @@
hwndSeconds = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_SECONDS);
hwndHideInactive = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_HIDEICONS);
- hwndAdvancedButton = GetDlgItem(pPropInfo->hTaskbarWnd,
IDC_TASKBARPROP_ICONCUST);
+ hwndCustomizeNotifyButton = GetDlgItem(pPropInfo->hTaskbarWnd,
IDC_TASKBARPROP_ICONCUST);
+
+ hwndModernStart = GetDlgItem(pPropInfo->hStartWnd, IDC_TASKBARPROP_STARTMENU);
+ hwndClassicStart = GetDlgItem(pPropInfo->hStartWnd,
IDC_TASKBARPROP_STARTMENUCLASSIC);
+
+ hwndCustomizeClassicStartButton = GetDlgItem(pPropInfo->hTaskbarWnd,
IDC_TASKBARPROP_STARTMENUCLASSICCUST);
+ hwndCustomizeModernStartButton = GetDlgItem(pPropInfo->hTaskbarWnd,
IDC_TASKBARPROP_STARTMENUCUST);
+
+
if (hwndLock && hwndHide && hwndGroup && hwndShowQL
&& hwndClock && hwndSeconds && hwndHideInactive)
{
@@ -112,7 +121,7 @@
if (bHideInactive)
{
- EnableWindow(hwndAdvancedButton, TRUE);
+ EnableWindow(hwndCustomizeNotifyButton, TRUE);
if (bShowClock)
{
EnableWindow(hwndSeconds, TRUE);
@@ -130,7 +139,7 @@
}
else
{
- EnableWindow(hwndAdvancedButton, FALSE);
+ EnableWindow(hwndCustomizeNotifyButton, FALSE);
if (bShowClock)
{
EnableWindow(hwndSeconds, TRUE);
@@ -174,6 +183,49 @@
}
}
}
+
+ if(hwndClassicStart && hwndModernStart)
+ {
+ if(SendMessage(hwndModernStart, BM_GETCHECK, 0, 0) == BST_CHECKED)
+ {
+ EnableWindow(hwndCustomizeModernStartButton, TRUE);
+ EnableWindow(hwndCustomizeClassicStartButton, FALSE);
+ lpStartImageName = MAKEINTRESOURCEW(IDB_STARTPREVIEW);
+ }
+ else
+ {
+ EnableWindow(hwndCustomizeModernStartButton, FALSE);
+ EnableWindow(hwndCustomizeClassicStartButton, TRUE);
+ lpStartImageName = MAKEINTRESOURCEW(IDB_STARTPREVIEW_CLASSIC);
+ }
+
+ if (lpStartImageName)
+ {
+ if (pPropInfo->hStartBitmap)
+ {
+ DeleteObject(pPropInfo->hStartBitmap);
+ }
+
+ pPropInfo->hStartBitmap = (HBITMAP)LoadImageW(hExplorerInstance,
+ lpStartImageName,
+ IMAGE_BITMAP,
+ 0,
+ 0,
+ LR_DEFAULTCOLOR);
+ if (pPropInfo->hStartBitmap)
+ {
+ hwndStartBitmap = GetDlgItem(pPropInfo->hStartWnd,
+ IDC_TASKBARPROP_STARTMENU_BITMAP);
+ if (hwndStartBitmap)
+ {
+ SendMessage(hwndStartBitmap,
+ STM_SETIMAGE,
+ IMAGE_BITMAP,
+ (LPARAM)pPropInfo->hStartBitmap);
+ }
+ }
+ }
+ }
return bRet;
}
@@ -191,7 +243,18 @@
// FIXME: check buttons
CheckDlgButton(hwnd, IDC_TASKBARPROP_SECONDS, AdvancedSettings.bShowSeconds ?
BST_CHECKED : BST_UNCHECKED);
- UpdateTaskbarBitmap(pPropInfo);
+ UpdateBitmaps(pPropInfo);
+}
+
+static VOID
+OnCreateStartPage(HWND hwnd,
+ PPROPSHEET_INFO pPropInfo)
+{
+ pPropInfo->hStartWnd = hwnd;
+
+ CheckDlgButton(hwnd, IDC_TASKBARPROP_STARTMENUCLASSIC, 1); // HACK: This has to be
read from registry!
+
+ UpdateBitmaps(pPropInfo);
}
INT_PTR CALLBACK
@@ -228,7 +291,7 @@
case IDC_TASKBARPROP_SECONDS:
if (HIWORD(wParam) == BN_CLICKED)
{
- UpdateTaskbarBitmap(pPropInfo);
+ UpdateBitmaps(pPropInfo);
/* Enable the 'Apply' button */
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
@@ -286,6 +349,7 @@
switch (uMsg)
{
case WM_INITDIALOG:
+ OnCreateStartPage(hwndDlg,
(PPROPSHEET_INFO)((LPPROPSHEETPAGE)lParam)->lParam);
break;
case WM_COMMAND: