Eric's cute control made me smile, so I've added some text to the windows.

Note, as we can't use SetWindowText for these caption, the text must be drawn on manually (which makes for some icky code). This 'should' mean we can remove DC_TEXT in DrawCaption to get rid of those squares. However, removing these removes the gradient.
Eric, any ideas other than painting over the white squares?

svn path=/trunk/; revision=25297
This commit is contained in:
Ged Murphy 2007-01-04 23:03:38 +00:00
parent a0320a1bf7
commit 9b2c97c827
16 changed files with 242 additions and 18 deletions

View file

@ -122,3 +122,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "Images (*.bmp;*.dib)\0*.bmp;*.dib\0"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -116,3 +116,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "Immagini (*.bmp;*.dib)\0*.bmp;*.dib\0"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -120,3 +120,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "‰æ‘œ (*.bmp;*.dib)\0*.bmp;*.dib\0"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -142,3 +142,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "Êàðòèíêè (*.bmp;*.dib)\000*.bmp;*.dib"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -124,3 +124,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "Ìàëþíêè (*.bmp;*.dib)\0*.bmp;*.dib\0"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -114,3 +114,13 @@ BEGIN
IDS_COLOR_32BIT "True Color (32 Bit)"
IDS_PIXEL "%lux%lu bodù"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -118,3 +118,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "Bilddateien (*.bmp;*.dib)\0*.bmp;*.dib\0"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -6,7 +6,7 @@ CAPTION "Background"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "", IDC_BACKGROUND_PREVIEW, "Static", SS_OWNERDRAW, 80, 10, 83, 57, WS_EX_STATICEDGE
CONTROL "",IDC_BACKGROUND_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_NOCOLUMNHEADER
CONTROL "",IDC_BACKGROUND_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_NOCOLUMNHEADER
| LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 8, 114, 174, 78
LTEXT "Select an image to use as your desktop wallpaper:", IDC_STATIC, 8, 103, 180, 9
PUSHBUTTON "&Browse...", IDC_BROWSE_BUTTON, 188, 114, 50, 15
@ -23,7 +23,7 @@ BEGIN
GROUPBOX "&Screensaver",IDC_SCREENS_DUMMY, 5, 7, 238, 136
LTEXT "Installed screensavers:",IDC_STATIC,13, 24, 150, 9
CONTROL "",IDC_SCREENS_CHOICES,"SysListView32",LVS_REPORT |
CONTROL "",IDC_SCREENS_CHOICES,"SysListView32",LVS_REPORT |
LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS |
LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP,13, 34, 170, 69
@ -71,7 +71,7 @@ BEGIN
LTEXT "More",1816,93,130,21,8,NOT WS_GROUP
LTEXT "",IDC_SETTINGS_RESOLUTION_TEXT,10,150,100,10,NOT WS_GROUP | SS_CENTER
GROUPBOX "&Colors",1817,125,120,115,43
COMBOBOX IDC_SETTINGS_BPP,131,130,103,80,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
COMBOBOX IDC_SETTINGS_BPP,131,130,103,80,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
CONTROL "",1813,"Static",SS_BITMAP | SS_CENTERIMAGE | SS_SUNKEN,
131,148,103,9
@ -90,11 +90,11 @@ BEGIN
END
END
STRINGTABLE
STRINGTABLE
BEGIN
IDS_CPLNAME "Display"
IDS_CPLDESCRIPTION "Customizes the desktop display and screen saver."
IDS_NONE "(None)"
IDS_CENTER "Center"
IDS_STRETCH "Stretch"
@ -116,3 +116,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "Pictures (*.bmp;*.dib)\0*.bmp;*.dib\0"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -121,3 +121,13 @@ BEGIN
IDS_COLOR_32BIT "La más alta (32 bits)"
IDS_PIXEL "%lu por %lu píxeles"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -120,3 +120,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "Åéêüíåò (*.bmp;*.dib)\0*.bmp;*.dib\0"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -108,3 +108,13 @@ BEGIN
IDS_BACKGROUND_COMDLG_FILTER "Képek (*.bmp;*.dib)\0*.bmp;*.dib\0"
IDS_SUPPORTED_EXT "*.bmp;*.dib"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -114,3 +114,13 @@ BEGIN
IDS_COLOR_32BIT "Ware kleuren (32 Bit)"
IDS_PIXEL "%lux%lu Pixel"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -59,7 +59,7 @@ BEGIN
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "To miejsce pozosta³o celowo puste",IDC_STATIC,66,
1590,112,8
150,112,8
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
@ -115,3 +115,13 @@ BEGIN
IDS_COLOR_32BIT "True Color (32 Bitów)"
IDS_PIXEL "%lux%lu pikseli"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END

View file

@ -39,6 +39,10 @@ typedef struct _PREVIEW_DATA
RECT rcDialogButton;
LOGFONT CaptionFont;
LOGFONT DialogFont;
LOGFONT MenuFont;
} PREVIEW_DATA, *PPREVIEW_DATA;
@ -173,34 +177,63 @@ PreviewWndProc(HWND hwnd,
PAINTSTRUCT ps;
RECT rc;
static TCHAR szInAct[32];
static TCHAR szAct[32];
static TCHAR szWinTxt[32];
static TCHAR szMessBox[32];
static TCHAR szMessText[32];
static TCHAR szButText[4];
pPreviewData = (PPREVIEW_DATA)GetWindowLongPtr(hwnd, GWLP_USERDATA);
switch (uMsg)
{
case WM_CREATE:
{
NONCLIENTMETRICS NonClientMetrics;
pPreviewData = (PPREVIEW_DATA)HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
sizeof(PREVIEW_DATA));
if (pPreviewData)
{
SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)pPreviewData);
pPreviewData->clrDesktop = GetSysColor(COLOR_DESKTOP);
pPreviewData->hbrDesktop = CreateSolidBrush(pPreviewData->clrDesktop);
pPreviewData->clrWindow = GetSysColor(COLOR_WINDOW);
pPreviewData->hbrWindow = CreateSolidBrush(pPreviewData->clrWindow);
if (!pPreviewData)
return -1;
pPreviewData->cxEdge = GetSystemMetrics(SM_CXEDGE);
pPreviewData->cyEdge = GetSystemMetrics(SM_CXEDGE);
SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)pPreviewData);
pPreviewData->clrDesktop = GetSysColor(COLOR_DESKTOP);
pPreviewData->hbrDesktop = CreateSolidBrush(pPreviewData->clrDesktop);
pPreviewData->clrWindow = GetSysColor(COLOR_WINDOW);
pPreviewData->hbrWindow = CreateSolidBrush(pPreviewData->clrWindow);
pPreviewData->cxEdge = GetSystemMetrics(SM_CXEDGE);
pPreviewData->cyEdge = GetSystemMetrics(SM_CXEDGE);
pPreviewData->cyCaption = 20; //GetSystemMetrics(SM_CYCAPTION);
/* load font info */
NonClientMetrics.cbSize = sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &NonClientMetrics, 0);
pPreviewData->CaptionFont = NonClientMetrics.lfCaptionFont;
pPreviewData->MenuFont = NonClientMetrics.lfMenuFont;
pPreviewData->DialogFont = NonClientMetrics.lfMessageFont;
LoadString(hApplet, IDS_INACTWIN, szInAct, sizeof(szInAct));
LoadString(hApplet, IDS_ACTWIN, szAct, sizeof(szAct));
LoadString(hApplet, IDS_WINTEXT, szWinTxt, sizeof(szWinTxt));
LoadString(hApplet, IDS_MESSBOX, szMessBox, sizeof(szMessBox));
LoadString(hApplet, IDS_MESSTEXT, szMessText, sizeof(szMessText));
LoadString(hApplet, IDS_BUTTEXT, szButText, sizeof(szButText));
pPreviewData->cyCaption = 20; //GetSystemMetrics(SM_CYCAPTION);
}
break;
}
case WM_SIZE:
OnSize(LOWORD(lParam), HIWORD(lParam), pPreviewData);
break;
case WM_PAINT:
{
RECT tmpRc;
hdc = BeginPaint(hwnd, &ps);
/* Desktop */
@ -210,19 +243,40 @@ PreviewWndProc(HWND hwnd,
DrawEdge(hdc, &pPreviewData->rcInactiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
DrawCaption(hwnd, hdc, &pPreviewData->rcInactiveCaption, DC_GRADIENT | DC_TEXT);
DrawCaptionButtons(hdc, &pPreviewData->rcInactiveCaption, TRUE);
CopyMemory(&tmpRc, &pPreviewData->rcInactiveCaption, sizeof(RECT));
tmpRc.left += 4;
tmpRc.top += 2;
SelectObject(hdc, CreateFontIndirect(&pPreviewData->CaptionFont));
SetTextColor(hdc, RGB(212,208,200));
DrawText(hdc, szInAct, lstrlen(szInAct), &tmpRc, DT_LEFT);
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));
/* Active Window */
DrawEdge(hdc, &pPreviewData->rcActiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
DrawCaption(hwnd, hdc, &pPreviewData->rcActiveCaption, DC_ACTIVE | DC_GRADIENT | DC_TEXT);
DrawCaptionButtons(hdc, &pPreviewData->rcActiveCaption, TRUE);
CopyMemory(&tmpRc, &pPreviewData->rcActiveCaption, sizeof(RECT));
tmpRc.left += 4;
tmpRc.top += 2;
SetTextColor(hdc, RGB(255,255,255)); // FIXME: don't hardcode colors
SelectObject(hdc, CreateFontIndirect(&pPreviewData->CaptionFont));
DrawText(hdc, szAct, lstrlen(szAct), &tmpRc, DT_LEFT);
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));
/* FIXME: Draw the menu bar */
CopyRect(&rc, &pPreviewData->rcActiveClient);
DrawEdge(hdc, &rc, EDGE_SUNKEN, BF_RECT | BF_ADJUST);
FillRect(hdc, &rc, pPreviewData->hbrWindow);
/* FIXME: Draw the client text */
/* Draw the client text */
CopyMemory(&tmpRc, &pPreviewData->rcActiveClient, sizeof(RECT));
tmpRc.left += 4;
tmpRc.top += 2;
SetTextColor(hdc, RGB(0,0,0));
SelectObject(hdc, CreateFontIndirect(&pPreviewData->DialogFont));
DrawText(hdc, szWinTxt, lstrlen(szWinTxt), &tmpRc, DT_LEFT);
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));
/* Draw the scroll bar */
DrawScrollbar(hdc, &pPreviewData->rcActiveScroll);
@ -232,13 +286,35 @@ PreviewWndProc(HWND hwnd,
DrawEdge(hdc, &pPreviewData->rcDialogFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
DrawCaption(hwnd, hdc, &pPreviewData->rcDialogCaption, DC_ACTIVE | DC_GRADIENT | DC_TEXT);
DrawCaptionButtons(hdc, &pPreviewData->rcDialogCaption, FALSE);
CopyMemory(&tmpRc, &pPreviewData->rcDialogCaption, sizeof(RECT));
tmpRc.left += 4;
tmpRc.top += 2;
SetTextColor(hdc, RGB(255,255,255));
SelectObject(hdc, CreateFontIndirect(&pPreviewData->CaptionFont));
DrawText(hdc, szMessBox, lstrlen(szMessBox), &tmpRc, DT_LEFT);
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));
/* draw the dialog text */
CopyMemory(&tmpRc, &pPreviewData->rcDialogClient, sizeof(RECT));
tmpRc.left += 4;
tmpRc.top += 2;
SetTextColor(hdc, RGB(0,0,0));
SelectObject(hdc, CreateFontIndirect(&pPreviewData->DialogFont));
DrawText(hdc, szMessText, lstrlen(szMessText), &tmpRc, DT_LEFT);
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));
/* Draw Button */
DrawFrameControl(hdc, &pPreviewData->rcDialogButton, DFC_BUTTON, DFCS_BUTTONPUSH);
CopyMemory(&tmpRc, &pPreviewData->rcDialogButton, sizeof(RECT));
tmpRc.top += 6;
SelectObject(hdc, CreateFontIndirect(&pPreviewData->DialogFont));
DrawText(hdc, szButText, lstrlen(szButText), &tmpRc, DT_CENTER);
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));
EndPaint(hwnd, &ps);
break;
}
case WM_DESTROY:
DeleteObject(pPreviewData->hbrDesktop);

View file

@ -82,5 +82,13 @@
/* Appearance Page */
#define IDC_APPEARANCE_PREVIEW 1500
#define IDS_INACTWIN 1510
#define IDS_ACTWIN 1511
#define IDS_WINTEXT 1512
#define IDS_MESSBOX 1513
#define IDS_MESSTEXT 1514
#define IDS_BUTTEXT 1515
#endif /* __CPL_DESK_RESOURCE_H__ */

View file

@ -117,3 +117,13 @@ BEGIN
IDS_COLOR_32BIT "16,7 miljoner färger (32 Bit)"
IDS_PIXEL "%lux%lu Pixlar"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INACTWIN "Inactive Window"
IDS_ACTWIN "Active Window"
IDS_WINTEXT "Window Text"
IDS_MESSBOX "Message Box"
IDS_MESSTEXT "Message Text"
IDS_BUTTEXT "OK"
END