mirror of
https://github.com/reactos/reactos.git
synced 2025-05-19 09:10:56 +00:00
[EXPLORER] -implement showing the start menu preview
svn path=/trunk/; revision=74243
This commit is contained in:
parent
73dff0f128
commit
b295df005d
2 changed files with 75 additions and 10 deletions
|
@ -51,6 +51,7 @@ IDB_TASKBARPROP_NOLOCK_NOGROUP_NOQL BITMAP "res/bmp/153.bmp"
|
|||
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"
|
||||
|
|
|
@ -28,17 +28,18 @@ typedef struct _PROPSHEET_INFO
|
|||
|
||||
HBITMAP hTaskbarBitmap;
|
||||
HBITMAP hTrayBitmap;
|
||||
HBITMAP hStartBitmap;
|
||||
} PROPSHEET_INFO, *PPROPSHEET_INFO;
|
||||
|
||||
|
||||
static BOOL
|
||||
UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
||||
UpdateBitmaps(PPROPSHEET_INFO pPropInfo)
|
||||
{
|
||||
HWND hwndLock, hwndHide, hwndGroup, hwndShowQL, hwndClock, hwndSeconds, hwndHideInactive;
|
||||
HWND hwndTaskbarBitmap, hwndTrayBitmap;
|
||||
HWND hwndAdvancedButton;
|
||||
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 @@ UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
|||
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 @@ UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
|||
|
||||
if (bHideInactive)
|
||||
{
|
||||
EnableWindow(hwndAdvancedButton, TRUE);
|
||||
EnableWindow(hwndCustomizeNotifyButton, TRUE);
|
||||
if (bShowClock)
|
||||
{
|
||||
EnableWindow(hwndSeconds, TRUE);
|
||||
|
@ -130,7 +139,7 @@ UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
|||
}
|
||||
else
|
||||
{
|
||||
EnableWindow(hwndAdvancedButton, FALSE);
|
||||
EnableWindow(hwndCustomizeNotifyButton, FALSE);
|
||||
if (bShowClock)
|
||||
{
|
||||
EnableWindow(hwndSeconds, TRUE);
|
||||
|
@ -174,6 +183,49 @@ UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ OnCreateTaskbarPage(HWND hwnd,
|
|||
// 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 @@ TaskbarPageProc(HWND hwndDlg,
|
|||
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 @@ StartMenuPageProc(HWND hwndDlg,
|
|||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
OnCreateStartPage(hwndDlg, (PPROPSHEET_INFO)((LPPROPSHEETPAGE)lParam)->lParam);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
|
|
Loading…
Reference in a new issue