mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 06:05:48 +00:00
Show custom colors in the preview window.
svn path=/trunk/; revision=26060
This commit is contained in:
parent
d400691f1c
commit
7ac91cf037
3 changed files with 43 additions and 29 deletions
|
@ -29,7 +29,7 @@ UpdateButtonColor(HWND hwndDlg, GLOBALS* g, INT ID, INT nButton, INT nColor)
|
||||||
if (nColor != -1)
|
if (nColor != -1)
|
||||||
{
|
{
|
||||||
/* Create a DC to draw on */
|
/* Create a DC to draw on */
|
||||||
hwndColorButton = GetDlgItem(hwndDlg, IDC_ADVAPPEARANCE_COLOR1_B);
|
hwndColorButton = GetDlgItem(hwndDlg, ID);
|
||||||
hdcColorButton = GetDC(hwndColorButton);
|
hdcColorButton = GetDC(hwndColorButton);
|
||||||
hdcCompat = CreateCompatibleDC(hdcColorButton);
|
hdcCompat = CreateCompatibleDC(hdcColorButton);
|
||||||
ReleaseDC(hwndColorButton, hdcColorButton);
|
ReleaseDC(hwndColorButton, hdcColorButton);
|
||||||
|
@ -294,6 +294,7 @@ GetColor(HWND hwndDlg, GLOBALS* g, INT nButton)
|
||||||
if (crColor != cc.rgbResult)
|
if (crColor != cc.rgbResult)
|
||||||
{
|
{
|
||||||
UpdateButtonColor(hwndDlg, g, ID, nButton, ColorIndex);
|
UpdateButtonColor(hwndDlg, g, ID, nButton, ColorIndex);
|
||||||
|
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_SETCOLOR, ColorIndex, cc.rgbResult);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: lib/cpl/desk/preview.c
|
* FILE: lib/cpl/desk/preview.c
|
||||||
* PURPOSE: Draws the preview control
|
* PURPOSE: Draws the preview control
|
||||||
* COPYRIGHT: Copyright 2006, 2007 Eric Kohl (email?)
|
* COPYRIGHT: Copyright 2006, 2007 Eric Kohl
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "desk.h"
|
#include "desk.h"
|
||||||
|
@ -15,19 +15,11 @@ typedef struct _PREVIEW_DATA
|
||||||
{
|
{
|
||||||
HWND hwndParent;
|
HWND hwndParent;
|
||||||
|
|
||||||
DWORD clrDesktop;
|
DWORD clrSysColor[COLOR_MENUBAR];
|
||||||
HBRUSH hbrDesktop;
|
|
||||||
|
|
||||||
DWORD clrWindow;
|
|
||||||
HBRUSH hbrWindow;
|
|
||||||
|
|
||||||
DWORD clrScrollbar;
|
|
||||||
HBRUSH hbrScrollbar;
|
HBRUSH hbrScrollbar;
|
||||||
|
HBRUSH hbrDesktop;
|
||||||
DWORD clrActiveCaptionText;
|
HBRUSH hbrWindow;
|
||||||
DWORD clrInactiveCaptionText;
|
|
||||||
DWORD clrWindowText;
|
|
||||||
DWORD clrButtonText;
|
|
||||||
|
|
||||||
INT cxEdge;
|
INT cxEdge;
|
||||||
INT cyEdge;
|
INT cyEdge;
|
||||||
|
@ -148,19 +140,16 @@ static VOID
|
||||||
OnCreate(HWND hwnd, PPREVIEW_DATA pPreviewData)
|
OnCreate(HWND hwnd, PPREVIEW_DATA pPreviewData)
|
||||||
{
|
{
|
||||||
NONCLIENTMETRICS NonClientMetrics;
|
NONCLIENTMETRICS NonClientMetrics;
|
||||||
|
INT i;
|
||||||
|
|
||||||
pPreviewData->clrScrollbar = GetSysColor(COLOR_SCROLLBAR);
|
for (i = 0; i < COLOR_MENUBAR + 1; i++)
|
||||||
pPreviewData->hbrScrollbar = CreateSolidBrush(pPreviewData->clrScrollbar);
|
{
|
||||||
|
pPreviewData->clrSysColor[i] = GetSysColor(i);
|
||||||
|
}
|
||||||
|
|
||||||
pPreviewData->clrDesktop = GetSysColor(COLOR_DESKTOP);
|
pPreviewData->hbrScrollbar = CreateSolidBrush(pPreviewData->clrSysColor[COLOR_SCROLLBAR]);
|
||||||
pPreviewData->hbrDesktop = CreateSolidBrush(pPreviewData->clrDesktop);
|
pPreviewData->hbrDesktop = CreateSolidBrush(pPreviewData->clrSysColor[COLOR_DESKTOP]);
|
||||||
pPreviewData->clrWindow = GetSysColor(COLOR_WINDOW);
|
pPreviewData->hbrWindow = CreateSolidBrush(pPreviewData->clrSysColor[COLOR_WINDOW]);
|
||||||
pPreviewData->hbrWindow = CreateSolidBrush(pPreviewData->clrWindow);
|
|
||||||
|
|
||||||
pPreviewData->clrActiveCaptionText = GetSysColor(COLOR_CAPTIONTEXT);
|
|
||||||
pPreviewData->clrInactiveCaptionText = GetSysColor(COLOR_INACTIVECAPTIONTEXT);
|
|
||||||
pPreviewData->clrWindowText = GetSysColor(COLOR_WINDOWTEXT);
|
|
||||||
pPreviewData->clrButtonText = GetSysColor(COLOR_BTNTEXT);
|
|
||||||
|
|
||||||
pPreviewData->cxEdge = GetSystemMetrics(SM_CXEDGE) - 2;
|
pPreviewData->cxEdge = GetSystemMetrics(SM_CXEDGE) - 2;
|
||||||
pPreviewData->cyEdge = GetSystemMetrics(SM_CXEDGE) - 2;
|
pPreviewData->cyEdge = GetSystemMetrics(SM_CXEDGE) - 2;
|
||||||
|
@ -354,14 +343,14 @@ OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData)
|
||||||
|
|
||||||
/* Inactive Window */
|
/* Inactive Window */
|
||||||
DrawEdge(hdc, &pPreviewData->rcInactiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
|
DrawEdge(hdc, &pPreviewData->rcInactiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
|
||||||
SetTextColor(hdc, pPreviewData->clrInactiveCaptionText);
|
SetTextColor(hdc, pPreviewData->clrSysColor[COLOR_INACTIVECAPTIONTEXT]);
|
||||||
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcInactiveCaption, pPreviewData->hCaptionFont,
|
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcInactiveCaption, pPreviewData->hCaptionFont,
|
||||||
NULL, pPreviewData->lpInAct, DC_GRADIENT | DC_ICON | DC_TEXT);
|
NULL, pPreviewData->lpInAct, DC_GRADIENT | DC_ICON | DC_TEXT);
|
||||||
DrawCaptionButtons(hdc, &pPreviewData->rcInactiveCaption, TRUE, pPreviewData->cyCaption - 2);
|
DrawCaptionButtons(hdc, &pPreviewData->rcInactiveCaption, TRUE, pPreviewData->cyCaption - 2);
|
||||||
|
|
||||||
/* Active Window */
|
/* Active Window */
|
||||||
DrawEdge(hdc, &pPreviewData->rcActiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
|
DrawEdge(hdc, &pPreviewData->rcActiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
|
||||||
SetTextColor(hdc, pPreviewData->clrActiveCaptionText);
|
SetTextColor(hdc, pPreviewData->clrSysColor[COLOR_CAPTIONTEXT]);
|
||||||
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcActiveCaption, pPreviewData->hCaptionFont,
|
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcActiveCaption, pPreviewData->hCaptionFont,
|
||||||
NULL, pPreviewData->lpAct, DC_ACTIVE | DC_GRADIENT | DC_ICON | DC_TEXT);
|
NULL, pPreviewData->lpAct, DC_ACTIVE | DC_GRADIENT | DC_ICON | DC_TEXT);
|
||||||
DrawCaptionButtons(hdc, &pPreviewData->rcActiveCaption, TRUE, pPreviewData->cyCaption - 2);
|
DrawCaptionButtons(hdc, &pPreviewData->rcActiveCaption, TRUE, pPreviewData->cyCaption - 2);
|
||||||
|
@ -380,7 +369,7 @@ OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData)
|
||||||
CopyRect(&rc, &pPreviewData->rcActiveClient);
|
CopyRect(&rc, &pPreviewData->rcActiveClient);
|
||||||
rc.left += 4;
|
rc.left += 4;
|
||||||
rc.top += 2;
|
rc.top += 2;
|
||||||
SetTextColor(hdc, pPreviewData->clrWindowText);
|
SetTextColor(hdc, pPreviewData->clrSysColor[COLOR_WINDOWTEXT]);
|
||||||
hOldFont = SelectObject(hdc, pPreviewData->hCaptionFont);
|
hOldFont = SelectObject(hdc, pPreviewData->hCaptionFont);
|
||||||
DrawText(hdc, pPreviewData->lpWinTxt, lstrlen(pPreviewData->lpWinTxt), &rc, DT_LEFT);
|
DrawText(hdc, pPreviewData->lpWinTxt, lstrlen(pPreviewData->lpWinTxt), &rc, DT_LEFT);
|
||||||
SelectObject(hdc, hOldFont);
|
SelectObject(hdc, hOldFont);
|
||||||
|
@ -390,7 +379,7 @@ OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData)
|
||||||
|
|
||||||
/* Dialog Window */
|
/* Dialog Window */
|
||||||
DrawEdge(hdc, &pPreviewData->rcDialogFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
|
DrawEdge(hdc, &pPreviewData->rcDialogFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
|
||||||
SetTextColor(hdc, pPreviewData->clrActiveCaptionText);
|
SetTextColor(hdc, pPreviewData->clrSysColor[COLOR_WINDOW]);
|
||||||
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcDialogCaption, pPreviewData->hCaptionFont,
|
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcDialogCaption, pPreviewData->hCaptionFont,
|
||||||
NULL, pPreviewData->lpMessBox, DC_ACTIVE | DC_GRADIENT | DC_ICON | DC_TEXT);
|
NULL, pPreviewData->lpMessBox, DC_ACTIVE | DC_GRADIENT | DC_ICON | DC_TEXT);
|
||||||
DrawCaptionButtons(hdc, &pPreviewData->rcDialogCaption, FALSE, pPreviewData->cyCaption - 2);
|
DrawCaptionButtons(hdc, &pPreviewData->rcDialogCaption, FALSE, pPreviewData->cyCaption - 2);
|
||||||
|
@ -407,7 +396,7 @@ OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData)
|
||||||
/* Draw Button */
|
/* Draw Button */
|
||||||
DrawFrameControl(hdc, &pPreviewData->rcDialogButton, DFC_BUTTON, DFCS_BUTTONPUSH);
|
DrawFrameControl(hdc, &pPreviewData->rcDialogButton, DFC_BUTTON, DFCS_BUTTONPUSH);
|
||||||
CopyRect(&rc, &pPreviewData->rcDialogButton);
|
CopyRect(&rc, &pPreviewData->rcDialogButton);
|
||||||
SetTextColor(hdc, pPreviewData->clrButtonText);
|
SetTextColor(hdc, pPreviewData->clrSysColor[COLOR_BTNTEXT]);
|
||||||
hOldFont = SelectObject(hdc, pPreviewData->hMessageFont);
|
hOldFont = SelectObject(hdc, pPreviewData->hMessageFont);
|
||||||
DrawText(hdc, pPreviewData->lpButText, lstrlen(pPreviewData->lpButText), &rc, DT_VCENTER | DT_CENTER | DT_SINGLELINE);
|
DrawText(hdc, pPreviewData->lpButText, lstrlen(pPreviewData->lpButText), &rc, DT_VCENTER | DT_CENTER | DT_SINGLELINE);
|
||||||
SelectObject(hdc, hOldFont);
|
SelectObject(hdc, hOldFont);
|
||||||
|
@ -608,6 +597,28 @@ PreviewWndProc(HWND hwnd,
|
||||||
InvalidateRect(hwnd, NULL, FALSE);
|
InvalidateRect(hwnd, NULL, FALSE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PVM_SETCOLOR:
|
||||||
|
pPreviewData->clrSysColor[(INT)wParam] = (DWORD)lParam;
|
||||||
|
switch((INT)wParam)
|
||||||
|
{
|
||||||
|
case COLOR_SCROLLBAR:
|
||||||
|
DeleteObject(pPreviewData->hbrScrollbar);
|
||||||
|
pPreviewData->hbrScrollbar = CreateSolidBrush(pPreviewData->clrSysColor[COLOR_SCROLLBAR]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case COLOR_DESKTOP:
|
||||||
|
DeleteObject(pPreviewData->hbrDesktop);
|
||||||
|
pPreviewData->hbrDesktop = CreateSolidBrush(pPreviewData->clrSysColor[COLOR_DESKTOP]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case COLOR_WINDOW:
|
||||||
|
DeleteObject(pPreviewData->hbrWindow);
|
||||||
|
pPreviewData->hbrWindow = CreateSolidBrush(pPreviewData->clrSysColor[COLOR_WINDOW]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
InvalidateRect(hwnd, NULL, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
DefWindowProc(hwnd,
|
DefWindowProc(hwnd,
|
||||||
uMsg,
|
uMsg,
|
||||||
|
|
|
@ -39,5 +39,7 @@
|
||||||
#define PVM_SETMENUFONT (WM_USER+10)
|
#define PVM_SETMENUFONT (WM_USER+10)
|
||||||
#define PVM_SETDIALOGFONT (WM_USER+11)
|
#define PVM_SETDIALOGFONT (WM_USER+11)
|
||||||
|
|
||||||
|
#define PVM_SETCOLOR (WM_USER+12)
|
||||||
|
|
||||||
BOOL RegisterPreviewControl(IN HINSTANCE hInstance);
|
BOOL RegisterPreviewControl(IN HINSTANCE hInstance);
|
||||||
VOID UnregisterPreviewControl(IN HINSTANCE hInstance);
|
VOID UnregisterPreviewControl(IN HINSTANCE hInstance);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue