\r
RECT rcDialogButton;\r
\r
+ LPTSTR lpInAct;\r
+ LPTSTR lpAct;\r
+ LPTSTR lpWinTxt;\r
+ LPTSTR lpMessBox;\r
+ LPTSTR lpMessText;\r
+ LPTSTR lpButText;\r
+ LPTSTR lpMenNorm;\r
+ LPTSTR lpMenDis;\r
+ LPTSTR lpMenSel;\r
+\r
LOGFONT CaptionFont;\r
LOGFONT DialogFont;\r
LOGFONT MenuFont;\r
} PREVIEW_DATA, *PPREVIEW_DATA;\r
\r
\r
+/* HACK: fill the caption bar squares due to NULL text */\r
+static VOID\r
+FillSquare(HDC hdc, PRECT rect)\r
+{\r
+ INT x, y, i;\r
+\r
+ x = rect->left + 2;\r
+ y = rect->top + 2;\r
+\r
+ for (i = 3; i < 12; i++)\r
+ {\r
+ BitBlt(hdc, x, y + i, 10, 1, hdc, x, y, SRCCOPY);\r
+ }\r
+}\r
+\r
+\r
static VOID\r
DrawCaptionButtons(HDC hdc, LPRECT lpRect, BOOL bMinMax)\r
{\r
HDC hdc;\r
PAINTSTRUCT ps;\r
RECT rc;\r
- static NONCLIENTMETRICS NonClientMetrics;\r
- static TCHAR szInAct[32];\r
- static TCHAR szAct[32];\r
- static TCHAR szWinTxt[32];\r
- static TCHAR szMessBox[32];\r
- static TCHAR szMessText[32];\r
- static TCHAR szButText[4];\r
\r
pPreviewData = (PPREVIEW_DATA)GetWindowLongPtr(hwnd, GWLP_USERDATA);\r
\r
{\r
case WM_CREATE:\r
{\r
+ NONCLIENTMETRICS NonClientMetrics;\r
+\r
pPreviewData = (PPREVIEW_DATA)HeapAlloc(GetProcessHeap(),\r
HEAP_ZERO_MEMORY,\r
sizeof(PREVIEW_DATA));\r
pPreviewData->MenuFont = NonClientMetrics.lfMenuFont;\r
pPreviewData->DialogFont = NonClientMetrics.lfMessageFont;\r
\r
- LoadString(hApplet, IDS_INACTWIN, szInAct, sizeof(szInAct));\r
- LoadString(hApplet, IDS_ACTWIN, szAct, sizeof(szAct));\r
- LoadString(hApplet, IDS_WINTEXT, szWinTxt, sizeof(szWinTxt));\r
- LoadString(hApplet, IDS_MESSBOX, szMessBox, sizeof(szMessBox));\r
- LoadString(hApplet, IDS_MESSTEXT, szMessText, sizeof(szMessText));\r
- LoadString(hApplet, IDS_BUTTEXT, szButText, sizeof(szButText));\r
+ AllocAndLoadString(&pPreviewData->lpInAct, hApplet, IDS_INACTWIN);\r
+ AllocAndLoadString(&pPreviewData->lpAct, hApplet, IDS_ACTWIN);\r
+ AllocAndLoadString(&pPreviewData->lpWinTxt, hApplet, IDS_WINTEXT);\r
+ AllocAndLoadString(&pPreviewData->lpMessBox, hApplet, IDS_MESSBOX);\r
+ AllocAndLoadString(&pPreviewData->lpMessText, hApplet, IDS_MESSTEXT);\r
+ AllocAndLoadString(&pPreviewData->lpButText, hApplet, IDS_BUTTEXT);\r
+ AllocAndLoadString(&pPreviewData->lpMenNorm, hApplet, IDS_NORMAL);\r
+ AllocAndLoadString(&pPreviewData->lpMenDis, hApplet, IDS_DISABLED);\r
+ AllocAndLoadString(&pPreviewData->lpMenSel, hApplet, IDS_SELECTED);\r
\r
break;\r
}\r
DrawEdge(hdc, &pPreviewData->rcInactiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);\r
DrawCaption(hwnd, hdc, &pPreviewData->rcInactiveCaption, DC_GRADIENT | DC_TEXT);\r
DrawCaptionButtons(hdc, &pPreviewData->rcInactiveCaption, TRUE);\r
- CopyMemory(&tmpRc, &pPreviewData->rcInactiveCaption, sizeof(RECT));\r
+ FillSquare(hdc, &pPreviewData->rcInactiveCaption);\r
+ CopyRect(&tmpRc, &pPreviewData->rcInactiveCaption);\r
tmpRc.left += 4;\r
tmpRc.top += 2;\r
SelectObject(hdc, CreateFontIndirect(&pPreviewData->CaptionFont));\r
SetTextColor(hdc, RGB(212,208,200));\r
- DrawText(hdc, szInAct, lstrlen(szInAct), &tmpRc, DT_LEFT);\r
+ DrawText(hdc, pPreviewData->lpInAct, lstrlen(pPreviewData->lpInAct), &tmpRc, DT_LEFT);\r
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));\r
\r
-\r
/* Active Window */\r
DrawEdge(hdc, &pPreviewData->rcActiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);\r
DrawCaption(hwnd, hdc, &pPreviewData->rcActiveCaption, DC_ACTIVE | DC_GRADIENT | DC_TEXT);\r
DrawCaptionButtons(hdc, &pPreviewData->rcActiveCaption, TRUE);\r
- CopyMemory(&tmpRc, &pPreviewData->rcActiveCaption, sizeof(RECT));\r
+ FillSquare(hdc, &pPreviewData->rcActiveCaption);\r
+ CopyRect(&tmpRc, &pPreviewData->rcActiveCaption);\r
tmpRc.left += 4;\r
tmpRc.top += 2;\r
SetTextColor(hdc, RGB(255,255,255)); // FIXME: don't hardcode colors\r
SelectObject(hdc, CreateFontIndirect(&pPreviewData->CaptionFont));\r
- DrawText(hdc, szAct, lstrlen(szAct), &tmpRc, DT_LEFT);\r
+ DrawText(hdc, pPreviewData->lpAct, lstrlen(pPreviewData->lpAct), &tmpRc, DT_LEFT);\r
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));\r
\r
/* FIXME: Draw the menu bar */\r
FillRect(hdc, &rc, pPreviewData->hbrWindow);\r
\r
/* Draw the client text */\r
- CopyMemory(&tmpRc, &pPreviewData->rcActiveClient, sizeof(RECT));\r
+ CopyRect(&tmpRc, &pPreviewData->rcActiveClient);\r
tmpRc.left += 4;\r
tmpRc.top += 2;\r
SetTextColor(hdc, RGB(0,0,0));\r
SelectObject(hdc, CreateFontIndirect(&pPreviewData->DialogFont));\r
- DrawText(hdc, szWinTxt, lstrlen(szWinTxt), &tmpRc, DT_LEFT);\r
+ DrawText(hdc, pPreviewData->lpWinTxt, lstrlen(pPreviewData->lpWinTxt), &tmpRc, DT_LEFT);\r
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));\r
\r
/* Draw the scroll bar */\r
DrawScrollbar(hdc, &pPreviewData->rcActiveScroll);\r
\r
-\r
/* Dialog Window */\r
DrawEdge(hdc, &pPreviewData->rcDialogFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);\r
DrawCaption(hwnd, hdc, &pPreviewData->rcDialogCaption, DC_ACTIVE | DC_GRADIENT | DC_TEXT);\r
DrawCaptionButtons(hdc, &pPreviewData->rcDialogCaption, FALSE);\r
- CopyMemory(&tmpRc, &pPreviewData->rcDialogCaption, sizeof(RECT));\r
+ FillSquare(hdc, &pPreviewData->rcDialogCaption);\r
+ CopyRect(&tmpRc, &pPreviewData->rcDialogCaption);\r
tmpRc.left += 4;\r
tmpRc.top += 2;\r
SetTextColor(hdc, RGB(255,255,255));\r
SelectObject(hdc, CreateFontIndirect(&pPreviewData->CaptionFont));\r
- DrawText(hdc, szMessBox, lstrlen(szMessBox), &tmpRc, DT_LEFT);\r
+ DrawText(hdc, pPreviewData->lpMessBox, lstrlen(pPreviewData->lpMessBox), &tmpRc, DT_LEFT);\r
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));\r
\r
/* draw the dialog text */\r
- CopyMemory(&tmpRc, &pPreviewData->rcDialogClient, sizeof(RECT));\r
+ CopyRect(&tmpRc, &pPreviewData->rcDialogClient);\r
tmpRc.left += 4;\r
tmpRc.top += 2;\r
SetTextColor(hdc, RGB(0,0,0));\r
SelectObject(hdc, CreateFontIndirect(&pPreviewData->DialogFont));\r
- DrawText(hdc, szMessText, lstrlen(szMessText), &tmpRc, DT_LEFT);\r
+ DrawText(hdc, pPreviewData->lpMessText, lstrlen(pPreviewData->lpMessText), &tmpRc, DT_LEFT);\r
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));\r
\r
/* Draw Button */\r
DrawFrameControl(hdc, &pPreviewData->rcDialogButton, DFC_BUTTON, DFCS_BUTTONPUSH);\r
- CopyMemory(&tmpRc, &pPreviewData->rcDialogButton, sizeof(RECT));\r
+ CopyRect(&tmpRc, &pPreviewData->rcDialogButton);\r
tmpRc.top += 6;\r
SelectObject(hdc, CreateFontIndirect(&pPreviewData->DialogFont));\r
- DrawText(hdc, szButText, lstrlen(szButText), &tmpRc, DT_CENTER);\r
+ DrawText(hdc, pPreviewData->lpButText, lstrlen(pPreviewData->lpButText), &tmpRc, DT_CENTER);\r
DeleteObject(SelectObject(hdc, GetStockObject(SYSTEM_FONT)));\r
\r
-\r
EndPaint(hwnd, &ps);\r
break;\r
}\r
DeleteObject(pPreviewData->hbrDesktop);\r
DeleteObject(pPreviewData->hbrWindow);\r
\r
+ LocalFree((HLOCAL)pPreviewData->lpInAct);\r
+ LocalFree((HLOCAL)pPreviewData->lpAct);\r
+ LocalFree((HLOCAL)pPreviewData->lpWinTxt);\r
+ LocalFree((HLOCAL)pPreviewData->lpMessBox);\r
+ LocalFree((HLOCAL)pPreviewData->lpMessText);\r
+ LocalFree((HLOCAL)pPreviewData->lpButText);\r
+ LocalFree((HLOCAL)pPreviewData->lpMenNorm);\r
+ LocalFree((HLOCAL)pPreviewData->lpMenDis);\r
+ LocalFree((HLOCAL)pPreviewData->lpMenSel);\r
+\r
HeapFree(GetProcessHeap(), 0, pPreviewData);\r
break;\r
\r