mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:52:57 +00:00
[EXPLORER] -Fix a parameter of OnCreateTaskbarPage(). Fix by Mark Jansen
-Implement showing the notification area preview images. CORE-10560 svn path=/trunk/; revision=70102
This commit is contained in:
parent
ca255520d6
commit
b59d06fa1d
1 changed files with 100 additions and 22 deletions
|
@ -2,6 +2,7 @@
|
||||||
* ReactOS Explorer
|
* ReactOS Explorer
|
||||||
*
|
*
|
||||||
* Copyright 2006 - 2007 Thomas Weidenmueller <w3seek@reactos.org>
|
* Copyright 2006 - 2007 Thomas Weidenmueller <w3seek@reactos.org>
|
||||||
|
* 2015 Robert Naumann <gonzomdx@gmail.com>
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -24,20 +25,19 @@ typedef struct _PROPSHEET_INFO
|
||||||
{
|
{
|
||||||
HWND hTaskbarWnd;
|
HWND hTaskbarWnd;
|
||||||
HWND hStartWnd;
|
HWND hStartWnd;
|
||||||
HWND hNotiWnd;
|
|
||||||
HWND hToolWnd;
|
|
||||||
|
|
||||||
HBITMAP hTaskbarBitmap;
|
HBITMAP hTaskbarBitmap;
|
||||||
|
HBITMAP hTrayBitmap;
|
||||||
} PROPSHEET_INFO, *PPROPSHEET_INFO;
|
} PROPSHEET_INFO, *PPROPSHEET_INFO;
|
||||||
|
|
||||||
|
|
||||||
static BOOL
|
static BOOL
|
||||||
UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
||||||
{
|
{
|
||||||
HWND hwndLock, hwndHide, hwndGroup, hwndShowQL;
|
HWND hwndLock, hwndHide, hwndGroup, hwndShowQL, hwndClock, hwndSeconds, hwndHideInactive;
|
||||||
HWND hwndBitmap;
|
HWND hwndTaskbarBitmap, hwndTrayBitmap;
|
||||||
BOOL bLock, bHide, bGroup, bShowQL;
|
BOOL bLock, bHide, bGroup, bShowQL, bShowClock, bShowSeconds, bHideInactive;
|
||||||
LPTSTR lpImageName = NULL;
|
LPTSTR lpTaskBarImageName = NULL, lpTrayImageName = NULL;
|
||||||
BOOL bRet = FALSE;
|
BOOL bRet = FALSE;
|
||||||
|
|
||||||
hwndLock = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_LOCK);
|
hwndLock = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_LOCK);
|
||||||
|
@ -45,33 +45,42 @@ UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
||||||
hwndGroup = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_GROUP);
|
hwndGroup = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_GROUP);
|
||||||
hwndShowQL = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_SHOWQL);
|
hwndShowQL = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_SHOWQL);
|
||||||
|
|
||||||
if (hwndLock && hwndHide && hwndGroup && hwndShowQL)
|
hwndClock = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_CLOCK);
|
||||||
|
hwndSeconds = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_SECONDS);
|
||||||
|
hwndHideInactive = GetDlgItem(pPropInfo->hTaskbarWnd, IDC_TASKBARPROP_HIDEICONS);
|
||||||
|
|
||||||
|
if (hwndLock && hwndHide && hwndGroup && hwndShowQL && hwndClock && hwndSeconds && hwndHideInactive)
|
||||||
{
|
{
|
||||||
bLock = (SendMessage(hwndLock, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
bLock = (SendMessage(hwndLock, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
||||||
bHide = (SendMessage(hwndHide, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
bHide = (SendMessage(hwndHide, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
||||||
bGroup = (SendMessage(hwndGroup, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
bGroup = (SendMessage(hwndGroup, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
||||||
bShowQL = (SendMessage(hwndShowQL, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
bShowQL = (SendMessage(hwndShowQL, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
||||||
|
|
||||||
if (bHide)
|
bShowClock = (SendMessage(hwndClock, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_AUTOHIDE);
|
bShowSeconds = (SendMessage(hwndSeconds, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
||||||
else if (bLock && bGroup && bShowQL)
|
bHideInactive = (SendMessage(hwndHideInactive, BM_GETCHECK, 0, 0) == BST_CHECKED);
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_LOCK_GROUP_QL);
|
|
||||||
else if (bLock && !bGroup && !bShowQL)
|
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_LOCK_NOGROUP_NOQL);
|
|
||||||
else if (bLock && bGroup && !bShowQL)
|
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_LOCK_GROUP_NOQL);
|
|
||||||
else if (bLock && !bGroup && bShowQL)
|
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_LOCK_NOGROUP_QL);
|
|
||||||
else if (!bLock && !bGroup && !bShowQL)
|
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_NOLOCK_NOGROUP_NOQL);
|
|
||||||
else if (!bLock && bGroup && !bShowQL)
|
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_NOLOCK_GROUP_NOQL);
|
|
||||||
else if (!bLock && !bGroup && bShowQL)
|
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_NOLOCK_NOGROUP_QL);
|
|
||||||
else if (!bLock && bGroup && bShowQL)
|
|
||||||
lpImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_NOLOCK_GROUP_QL);
|
|
||||||
|
|
||||||
if (lpImageName)
|
if (bHide)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_AUTOHIDE);
|
||||||
|
else if (bLock && bGroup && bShowQL)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_LOCK_GROUP_QL);
|
||||||
|
else if (bLock && !bGroup && !bShowQL)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_LOCK_NOGROUP_NOQL);
|
||||||
|
else if (bLock && bGroup && !bShowQL)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_LOCK_GROUP_NOQL);
|
||||||
|
else if (bLock && !bGroup && bShowQL)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_LOCK_NOGROUP_QL);
|
||||||
|
else if (!bLock && !bGroup && !bShowQL)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_NOLOCK_NOGROUP_NOQL);
|
||||||
|
else if (!bLock && bGroup && !bShowQL)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_NOLOCK_GROUP_NOQL);
|
||||||
|
else if (!bLock && !bGroup && bShowQL)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_NOLOCK_NOGROUP_QL);
|
||||||
|
else if (!bLock && bGroup && bShowQL)
|
||||||
|
lpTaskBarImageName = MAKEINTRESOURCE(IDB_TASKBARPROP_NOLOCK_GROUP_QL);
|
||||||
|
|
||||||
|
|
||||||
|
if (lpTaskBarImageName)
|
||||||
{
|
{
|
||||||
if (pPropInfo->hTaskbarBitmap)
|
if (pPropInfo->hTaskbarBitmap)
|
||||||
{
|
{
|
||||||
|
@ -79,24 +88,86 @@ UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
pPropInfo->hTaskbarBitmap = (HBITMAP)LoadImage(hExplorerInstance,
|
pPropInfo->hTaskbarBitmap = (HBITMAP)LoadImage(hExplorerInstance,
|
||||||
lpImageName,
|
lpTaskBarImageName,
|
||||||
IMAGE_BITMAP,
|
IMAGE_BITMAP,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
LR_DEFAULTCOLOR);
|
LR_DEFAULTCOLOR);
|
||||||
if (pPropInfo->hTaskbarBitmap)
|
if (pPropInfo->hTaskbarBitmap)
|
||||||
{
|
{
|
||||||
hwndBitmap = GetDlgItem(pPropInfo->hTaskbarWnd,
|
hwndTaskbarBitmap = GetDlgItem(pPropInfo->hTaskbarWnd,
|
||||||
IDC_TASKBARPROP_TASKBARBITMAP);
|
IDC_TASKBARPROP_TASKBARBITMAP);
|
||||||
if (hwndBitmap)
|
if (hwndTaskbarBitmap)
|
||||||
{
|
{
|
||||||
SendMessage(hwndBitmap,
|
SendMessage(hwndTaskbarBitmap,
|
||||||
STM_SETIMAGE,
|
STM_SETIMAGE,
|
||||||
IMAGE_BITMAP,
|
IMAGE_BITMAP,
|
||||||
(LPARAM)pPropInfo->hTaskbarBitmap);
|
(LPARAM)pPropInfo->hTaskbarBitmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (bHideInactive)
|
||||||
|
{
|
||||||
|
/* FIXME: when the customize button is disabled, enable it. */
|
||||||
|
if(bShowClock)
|
||||||
|
{
|
||||||
|
/* FIXME: when the seconds checkbox is disabled, enable it. */
|
||||||
|
if(bShowSeconds)
|
||||||
|
lpTrayImageName = MAKEINTRESOURCE(IDB_SYSTRAYPROP_HIDE_SECONDS);
|
||||||
|
else
|
||||||
|
lpTrayImageName = MAKEINTRESOURCE(IDB_SYSTRAYPROP_HIDE_CLOCK);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* FIXME: when the seconds checkbox is enabled, disable it it. */
|
||||||
|
lpTrayImageName = MAKEINTRESOURCE(IDB_SYSTRAYPROP_HIDE_NOCLOCK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* FIXME: when the customize button is enabled, disable it. */
|
||||||
|
if(bShowClock)
|
||||||
|
{
|
||||||
|
/* FIXME: when the seconds checkbox is disabled, enable it. */
|
||||||
|
if(bShowSeconds)
|
||||||
|
lpTrayImageName = MAKEINTRESOURCE(IDB_SYSTRAYPROP_SHOW_SECONDS);
|
||||||
|
else
|
||||||
|
lpTrayImageName = MAKEINTRESOURCE(IDB_SYSTRAYPROP_SHOW_CLOCK);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* FIXME: when the seconds checkbox is enabled, disable it it. */
|
||||||
|
lpTrayImageName = MAKEINTRESOURCE(IDB_SYSTRAYPROP_SHOW_NOCLOCK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(lpTrayImageName)
|
||||||
|
{
|
||||||
|
if (pPropInfo->hTrayBitmap)
|
||||||
|
{
|
||||||
|
DeleteObject(pPropInfo->hTrayBitmap);
|
||||||
|
}
|
||||||
|
|
||||||
|
pPropInfo->hTrayBitmap = (HBITMAP)LoadImage(hExplorerInstance,
|
||||||
|
lpTrayImageName,
|
||||||
|
IMAGE_BITMAP,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
LR_DEFAULTCOLOR);
|
||||||
|
if (pPropInfo->hTrayBitmap)
|
||||||
|
{
|
||||||
|
hwndTrayBitmap = GetDlgItem(pPropInfo->hTaskbarWnd,
|
||||||
|
IDC_TASKBARPROP_NOTIFICATIONBITMAP);
|
||||||
|
if (hwndTrayBitmap)
|
||||||
|
{
|
||||||
|
SendMessage(hwndTrayBitmap,
|
||||||
|
STM_SETIMAGE,
|
||||||
|
IMAGE_BITMAP,
|
||||||
|
(LPARAM)pPropInfo->hTrayBitmap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return bRet;
|
return bRet;
|
||||||
|
@ -136,7 +207,7 @@ TaskbarPageProc(HWND hwndDlg,
|
||||||
switch (uMsg)
|
switch (uMsg)
|
||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
OnCreateTaskbarPage(hwndDlg, (PPROPSHEET_INFO)lParam);
|
OnCreateTaskbarPage(hwndDlg, (PPROPSHEET_INFO)((LPPROPSHEETPAGE)lParam)->lParam);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
|
@ -146,6 +217,9 @@ TaskbarPageProc(HWND hwndDlg,
|
||||||
case IDC_TASKBARPROP_HIDE:
|
case IDC_TASKBARPROP_HIDE:
|
||||||
case IDC_TASKBARPROP_GROUP:
|
case IDC_TASKBARPROP_GROUP:
|
||||||
case IDC_TASKBARPROP_SHOWQL:
|
case IDC_TASKBARPROP_SHOWQL:
|
||||||
|
case IDC_TASKBARPROP_HIDEICONS:
|
||||||
|
case IDC_TASKBARPROP_CLOCK:
|
||||||
|
case IDC_TASKBARPROP_SECONDS:
|
||||||
if (HIWORD(wParam) == BN_CLICKED)
|
if (HIWORD(wParam) == BN_CLICKED)
|
||||||
{
|
{
|
||||||
UpdateTaskbarBitmap(pPropInfo);
|
UpdateTaskbarBitmap(pPropInfo);
|
||||||
|
@ -178,6 +252,10 @@ TaskbarPageProc(HWND hwndDlg,
|
||||||
{
|
{
|
||||||
DeleteObject(pPropInfo->hTaskbarBitmap);
|
DeleteObject(pPropInfo->hTaskbarBitmap);
|
||||||
}
|
}
|
||||||
|
if (pPropInfo->hTrayBitmap)
|
||||||
|
{
|
||||||
|
DeleteObject(pPropInfo->hTrayBitmap);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
HandleDefaultMessage:
|
HandleDefaultMessage:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue