Change the size of caption and scrollbar in the preview window.

svn path=/trunk/; revision=25661
This commit is contained in:
Eric Kohl 2007-01-29 23:35:31 +00:00
parent d330ef46ec
commit fe7ce99eb1
18 changed files with 324 additions and 34 deletions

View file

@ -62,6 +62,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -55,6 +55,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -59,6 +59,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 228

View file

@ -58,6 +58,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX 0, 0, 246, 188

View file

@ -63,6 +63,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -6,24 +6,102 @@
* PURPOSE: Appearance property page
*
* PROGRAMMERS: Trevor McCort (lycan359@gmail.com)
* Eric Kohl
*/
#include "desk.h"
#include "preview.h"
typedef struct _GLOBAL_DATA
{
INT nItem;
} GLOBAL_DATA, *PGLOBAL_DATA;
static VOID
OnInitDialog(HWND hwndDlg)
OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
{
TCHAR szBuffer[256];
UINT i;
UINT i, idx;
/* Set the item names */
for (i = IDS_ITEM_FIRST; i < IDS_ITEM_LAST; i++)
{
LoadString(hApplet, i, szBuffer, 256);
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_UI_ITEM, CB_ADDSTRING, 0, (LPARAM)szBuffer);
idx = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_UI_ITEM, CB_ADDSTRING, 0, (LPARAM)szBuffer);
if (idx != CB_ERR)
{
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_UI_ITEM, CB_SETITEMDATA, (WPARAM)idx, (LPARAM)i - IDS_ITEM_FIRST);
}
}
pGlobalData->nItem = IDX_DESKTOP;
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_UI_ITEM, CB_SETCURSEL, pGlobalData->nItem, 0);
}
static VOID
OnItemChange(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
{
INT nSelection, nIdx;
nIdx = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_UI_ITEM, CB_GETCURSEL, 0, 0);
if (nIdx == CB_ERR)
return;
nSelection = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_UI_ITEM, CB_GETITEMDATA, (WPARAM)nIdx, 0);
if (nSelection == CB_ERR)
return;
pGlobalData->nItem = nSelection;
switch (nSelection)
{
case IDX_SCROLLBAR:
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE), TRUE);
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE_UPDOWN), TRUE);
SendDlgItemMessage(hwndDlg, IDC_APPEAR_SIZE_UPDOWN, UDM_SETPOS, 0,
(LPARAM)MAKELONG((short)SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_GETCXSCROLLBAR, 0, 0), 0));
break;
case IDX_MENU:
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE), TRUE);
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE_UPDOWN), TRUE);
SendDlgItemMessage(hwndDlg, IDC_APPEAR_SIZE_UPDOWN, UDM_SETPOS, 0,
(LPARAM)MAKELONG((short)SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_GETCYMENU, 0, 0), 0));
break;
case IDX_INACTIVE_BORDER:
case IDX_ACTIVE_BORDER:
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE), TRUE);
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE_UPDOWN), TRUE);
SendDlgItemMessage(hwndDlg, IDC_APPEAR_SIZE_UPDOWN, UDM_SETPOS, 0,
(LPARAM)MAKELONG((short)SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_GETCYSIZEFRAME, 0, 0), 0));
break;
case IDX_INACTIVE_CAPTION:
case IDX_ACTIVE_CAPTION:
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE), TRUE);
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE_UPDOWN), TRUE);
SendDlgItemMessage(hwndDlg, IDC_APPEAR_SIZE_UPDOWN, UDM_SETPOS, 0,
(LPARAM)MAKELONG((short)SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_GETCYCAPTION, 0, 0), 0));
break;
case IDX_CAPTION_BUTTON:
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE), TRUE);
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE_UPDOWN), TRUE);
SendDlgItemMessage(hwndDlg, IDC_APPEAR_SIZE_UPDOWN, UDM_SETPOS, 0,
(LPARAM)MAKELONG((short)SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_GETCYCAPTION, 0, 0), 0));
break;
default:
SetDlgItemText(hwndDlg, IDC_APPEAR_SIZE, _T(""));
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE), FALSE);
EnableWindow(GetDlgItem(hwndDlg, IDC_APPEAR_SIZE_UPDOWN), FALSE);
break;
}
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_UI_ITEM, CB_SETCURSEL, 2, 0);
}
@ -33,24 +111,76 @@ AppearancePageProc(HWND hwndDlg,
WPARAM wParam,
LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(hwndDlg);
PGLOBAL_DATA pGlobalData;
pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
switch (uMsg)
{
case WM_INITDIALOG:
OnInitDialog(hwndDlg);
pGlobalData = (PGLOBAL_DATA)HeapAlloc(GetProcessHeap(),
HEAP_ZERO_MEMORY,
sizeof(GLOBAL_DATA));
if (!pGlobalData)
return -1;
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
OnInitDialog(hwndDlg, pGlobalData);
OnItemChange(hwndDlg, pGlobalData);
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_APPEARANCE_UI_ITEM:
if (HIWORD(wParam) == CBN_SELCHANGE)
{
OnItemChange(hwndDlg, pGlobalData);
}
break;
case IDC_APPEAR_SIZE:
if (pGlobalData && HIWORD(wParam) == EN_CHANGE)
{
int i = (int)LOWORD(SendDlgItemMessage(hwndDlg, IDC_APPEAR_SIZE_UPDOWN, UDM_GETPOS,0,0L));
switch (pGlobalData->nItem)
{
case IDX_INACTIVE_CAPTION:
case IDX_ACTIVE_CAPTION:
case IDX_CAPTION_BUTTON:
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_SETCYCAPTION, 0, i);
break;
case IDX_MENU:
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_SETCYMENU, 0, i);
break;
case IDX_SCROLLBAR:
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_SETCXSCROLLBAR, 0, i);
break;
case IDX_INACTIVE_BORDER:
case IDX_ACTIVE_BORDER:
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, PVM_SETCYSIZEFRAME, 0, i);
break;
}
}
break;
}
break;
case WM_DESTROY:
HeapFree(GetProcessHeap(), 0, pGlobalData);
break;
case WM_USER:
SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_UI_ITEM, CB_SETCURSEL, lParam, 0);
OnItemChange(hwndDlg, pGlobalData);
break;
}
return FALSE;
}

View file

@ -59,6 +59,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -56,7 +56,12 @@ BEGIN
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 228

View file

@ -55,6 +55,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -66,6 +66,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -59,6 +59,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -51,6 +51,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -59,6 +59,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -60,6 +60,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188

View file

@ -1,5 +1,5 @@
/*
* PROJECT: ReactOS Timedate Control Panel
* PROJECT: ReactOS Desktop Control Panel
* LICENSE: GPL - See COPYING in the top level directory
* FILE: lib/cpl/desk/preview.c
* PURPOSE: Draws the preview control
@ -32,7 +32,11 @@ typedef struct _PREVIEW_DATA
INT cxEdge;
INT cyEdge;
INT cySizeFrame;
INT cyCaption;
INT cyMenu;
INT cxScrollbar;
RECT rcDesktop;
RECT rcInactiveFrame;
@ -76,13 +80,13 @@ typedef struct _PREVIEW_DATA
static VOID
DrawCaptionButtons(HDC hdc, LPRECT lpRect, BOOL bMinMax)
DrawCaptionButtons(HDC hdc, LPRECT lpRect, BOOL bMinMax, int x)
{
RECT rc3;
RECT rc4;
RECT rc5;
rc3.left = lpRect->right - 2 - 16;
rc3.left = lpRect->right - 2 - x;
rc3.top = lpRect->top + 2;
rc3.right = lpRect->right - 2;
rc3.bottom = lpRect->bottom - 2;
@ -91,22 +95,23 @@ DrawCaptionButtons(HDC hdc, LPRECT lpRect, BOOL bMinMax)
if (bMinMax)
{
rc4.left = rc3.left - 16 - 2;
rc4.left = rc3.left - x - 2;
rc4.top = rc3.top;
rc4.right = rc3.right - 16 - 2;
rc4.right = rc3.right - x - 2;
rc4.bottom = rc3.bottom;
DrawFrameControl(hdc, &rc4, DFC_CAPTION, DFCS_CAPTIONMAX);
rc5.left = rc4.left - 16;
rc5.left = rc4.left - x;
rc5.top = rc4.top;
rc5.right = rc4.right - 16;
rc5.right = rc4.right - x;
rc5.bottom = rc4.bottom;
DrawFrameControl(hdc, &rc5, DFC_CAPTION, DFCS_CAPTIONMIN);
}
}
static VOID
DrawScrollbar(HDC hdc, LPRECT rc, HBRUSH hbrScrollbar)
{
@ -160,7 +165,11 @@ OnCreate(HWND hwnd, PPREVIEW_DATA pPreviewData)
pPreviewData->cxEdge = GetSystemMetrics(SM_CXEDGE);
pPreviewData->cyEdge = GetSystemMetrics(SM_CXEDGE);
pPreviewData->cyCaption = 20; //GetSystemMetrics(SM_CYCAPTION);
pPreviewData->cySizeFrame = GetSystemMetrics(SM_CYSIZEFRAME);
pPreviewData->cyCaption = GetSystemMetrics(SM_CYCAPTION);
pPreviewData->cyMenu = GetSystemMetrics(SM_CYMENU);
pPreviewData->cxScrollbar = GetSystemMetrics(SM_CXVSCROLL);
/* load font info */
NonClientMetrics.cbSize = sizeof(NONCLIENTMETRICS);
@ -196,16 +205,10 @@ OnCreate(HWND hwnd, PPREVIEW_DATA pPreviewData)
static VOID
OnSize(INT cx, INT cy, PPREVIEW_DATA pPreviewData)
CalculateItemSize(PPREVIEW_DATA pPreviewData)
{
int width, height;
/* Get Desktop rectangle */
pPreviewData->rcDesktop.left = 0;
pPreviewData->rcDesktop.top = 0;
pPreviewData->rcDesktop.right = cx;
pPreviewData->rcDesktop.bottom = cy;
/* Calculate the inactive window rectangle */
pPreviewData->rcInactiveFrame.left = pPreviewData->rcDesktop.left + 8;
pPreviewData->rcInactiveFrame.top = pPreviewData->rcDesktop.top + 8;
@ -216,7 +219,7 @@ OnSize(INT cx, INT cy, PPREVIEW_DATA pPreviewData)
pPreviewData->rcInactiveCaption.left = pPreviewData->rcInactiveFrame.left + pPreviewData->cxEdge + 1/*3*/ + 1;
pPreviewData->rcInactiveCaption.top = pPreviewData->rcInactiveFrame.top + pPreviewData->cyEdge + 1/*3*/ + 1;
pPreviewData->rcInactiveCaption.right = pPreviewData->rcInactiveFrame.right - pPreviewData->cxEdge - 1/*3*/ - 1;
pPreviewData->rcInactiveCaption.bottom = pPreviewData->rcInactiveFrame.top + pPreviewData->cyCaption /*20*/ + 2;
pPreviewData->rcInactiveCaption.bottom = pPreviewData->rcInactiveFrame.top + pPreviewData->cyCaption + 1 + 2;
/* Calculate the inactive caption buttons rectangle */
pPreviewData->rcInactiveCaptionButtons.left = pPreviewData->rcInactiveCaption.right - 2 - 2 - 3 * 16;
@ -234,7 +237,7 @@ OnSize(INT cx, INT cy, PPREVIEW_DATA pPreviewData)
pPreviewData->rcActiveCaption.left = pPreviewData->rcActiveFrame.left + 3 + 1;
pPreviewData->rcActiveCaption.top = pPreviewData->rcActiveFrame.top + 3 + 1;
pPreviewData->rcActiveCaption.right = pPreviewData->rcActiveFrame.right - 3 - 1;
pPreviewData->rcActiveCaption.bottom = pPreviewData->rcActiveFrame.top + pPreviewData->cyCaption/*20*/ + 2;
pPreviewData->rcActiveCaption.bottom = pPreviewData->rcActiveFrame.top + pPreviewData->cyCaption + 1 + 2;
/* Calculate the active caption buttons rectangle */
pPreviewData->rcActiveCaptionButtons.left = pPreviewData->rcActiveCaption.right - 2 - 2 - 3 * 16;
@ -246,7 +249,7 @@ OnSize(INT cx, INT cy, PPREVIEW_DATA pPreviewData)
pPreviewData->rcActiveMenuBar.left = pPreviewData->rcActiveFrame.left + 3 + 1;
pPreviewData->rcActiveMenuBar.top = pPreviewData->rcActiveCaption.bottom + 1;
pPreviewData->rcActiveMenuBar.right = pPreviewData->rcActiveFrame.right - 3 - 1;
pPreviewData->rcActiveMenuBar.bottom = pPreviewData->rcActiveMenuBar.top + 20;
pPreviewData->rcActiveMenuBar.bottom = pPreviewData->rcActiveMenuBar.top + pPreviewData->cyMenu + 1;
/* Calculate the active client rectangle */
pPreviewData->rcActiveClient.left = pPreviewData->rcActiveFrame.left + 3 + 1;
@ -255,7 +258,7 @@ OnSize(INT cx, INT cy, PPREVIEW_DATA pPreviewData)
pPreviewData->rcActiveClient.bottom = pPreviewData->rcActiveFrame.bottom - 3 - 1;
/* Calculate the active scroll rectangle */
pPreviewData->rcActiveScroll.left = pPreviewData->rcActiveClient.right - 2 - 16;
pPreviewData->rcActiveScroll.left = pPreviewData->rcActiveClient.right - 2 - pPreviewData->cxScrollbar;
pPreviewData->rcActiveScroll.top = pPreviewData->rcActiveClient.top + 2;
pPreviewData->rcActiveScroll.right = pPreviewData->rcActiveClient.right - 2;
pPreviewData->rcActiveScroll.bottom = pPreviewData->rcActiveClient.bottom - 2;
@ -271,7 +274,7 @@ OnSize(INT cx, INT cy, PPREVIEW_DATA pPreviewData)
pPreviewData->rcDialogCaption.left = pPreviewData->rcDialogFrame.left + 3;
pPreviewData->rcDialogCaption.top = pPreviewData->rcDialogFrame.top + 3;
pPreviewData->rcDialogCaption.right = pPreviewData->rcDialogFrame.right - 3;
pPreviewData->rcDialogCaption.bottom = pPreviewData->rcDialogFrame.top + 20 + 1;
pPreviewData->rcDialogCaption.bottom = pPreviewData->rcDialogFrame.top + pPreviewData->cyCaption + 1 + 1;
/* Calculate the inactive caption buttons rectangle */
pPreviewData->rcDialogCaptionButtons.left = pPreviewData->rcDialogCaption.right - 2 - 16;
@ -297,6 +300,19 @@ OnSize(INT cx, INT cy, PPREVIEW_DATA pPreviewData)
}
static VOID
OnSize(INT cx, INT cy, PPREVIEW_DATA pPreviewData)
{
/* Get Desktop rectangle */
pPreviewData->rcDesktop.left = 0;
pPreviewData->rcDesktop.top = 0;
pPreviewData->rcDesktop.right = cx;
pPreviewData->rcDesktop.bottom = cy;
CalculateItemSize(pPreviewData);
}
static VOID
OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData)
{
@ -315,14 +331,14 @@ OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData)
SetTextColor(hdc, pPreviewData->clrInactiveCaptionText);
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcInactiveCaption, pPreviewData->hCaptionFont,
NULL, pPreviewData->lpInAct, DC_GRADIENT | DC_ICON | DC_TEXT);
DrawCaptionButtons(hdc, &pPreviewData->rcInactiveCaption, TRUE);
DrawCaptionButtons(hdc, &pPreviewData->rcInactiveCaption, TRUE, pPreviewData->cyCaption - 2);
/* Active Window */
DrawEdge(hdc, &pPreviewData->rcActiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
SetTextColor(hdc, pPreviewData->clrActiveCaptionText);
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcActiveCaption, pPreviewData->hCaptionFont,
NULL, pPreviewData->lpAct, DC_ACTIVE | DC_GRADIENT | DC_ICON | DC_TEXT);
DrawCaptionButtons(hdc, &pPreviewData->rcActiveCaption, TRUE);
DrawCaptionButtons(hdc, &pPreviewData->rcActiveCaption, TRUE, pPreviewData->cyCaption - 2);
/* FIXME: Draw the menu bar */
DrawMenuBarTemp(hwnd, hdc, &pPreviewData->rcActiveMenuBar,
@ -351,7 +367,7 @@ OnPaint(HWND hwnd, PPREVIEW_DATA pPreviewData)
SetTextColor(hdc, pPreviewData->clrActiveCaptionText);
DrawCaptionTemp(NULL, hdc, &pPreviewData->rcDialogCaption, pPreviewData->hCaptionFont,
NULL, pPreviewData->lpMessBox, DC_ACTIVE | DC_GRADIENT | DC_ICON | DC_TEXT);
DrawCaptionButtons(hdc, &pPreviewData->rcDialogCaption, FALSE);
DrawCaptionButtons(hdc, &pPreviewData->rcDialogCaption, FALSE, pPreviewData->cyCaption - 2);
/* Draw the dialog text */
CopyRect(&rc, &pPreviewData->rcDialogClient);
@ -491,6 +507,54 @@ PreviewWndProc(HWND hwnd,
HeapFree(GetProcessHeap(), 0, pPreviewData);
break;
case PVM_GETCYCAPTION:
return pPreviewData->cyCaption;
case PVM_SETCYCAPTION:
if ((INT)lParam > 0)
{
pPreviewData->cyCaption = (INT)lParam;
CalculateItemSize(pPreviewData);
InvalidateRect(hwnd, NULL, FALSE);
}
break;
case PVM_GETCYMENU:
return pPreviewData->cyMenu;
case PVM_SETCYMENU:
if ((INT)lParam > 0)
{
pPreviewData->cyMenu = (INT)lParam;
CalculateItemSize(pPreviewData);
InvalidateRect(hwnd, NULL, FALSE);
}
break;
case PVM_GETCXSCROLLBAR:
return pPreviewData->cxScrollbar;
case PVM_SETCXSCROLLBAR:
if ((INT)lParam > 0)
{
pPreviewData->cxScrollbar = (INT)lParam;
CalculateItemSize(pPreviewData);
InvalidateRect(hwnd, NULL, FALSE);
}
break;
case PVM_GETCYSIZEFRAME:
return pPreviewData->cySizeFrame;
case PVM_SETCYSIZEFRAME:
if ((INT)lParam > 0)
{
pPreviewData->cySizeFrame = (INT)lParam;
CalculateItemSize(pPreviewData);
InvalidateRect(hwnd, NULL, FALSE);
}
break;
default:
DefWindowProc(hwnd,
uMsg,

View file

@ -1,3 +1,10 @@
/*
* PROJECT: ReactOS Desktop Control Panel
* LICENSE: GPL - See COPYING in the top level directory
* FILE: lib/cpl/desk/preview.h
* PURPOSE: Definitions used by the preview control
* COPYRIGHT: Copyright 2006, 2007 Eric Kohl
*/
#define IDX_3D_OBJECTS 0
#define IDX_SCROLLBAR 1
@ -17,5 +24,17 @@
#define IDX_CAPTION_BUTTON 17
#define PVM_GETCYCAPTION (WM_USER+1)
#define PVM_SETCYCAPTION (WM_USER+2)
#define PVM_GETCYMENU (WM_USER+3)
#define PVM_SETCYMENU (WM_USER+4)
#define PVM_GETCXSCROLLBAR (WM_USER+5)
#define PVM_SETCXSCROLLBAR (WM_USER+6)
#define PVM_GETCYSIZEFRAME (WM_USER+7)
#define PVM_SETCYSIZEFRAME (WM_USER+8)
BOOL RegisterPreviewControl(IN HINSTANCE hInstance);
VOID UnregisterPreviewControl(IN HINSTANCE hInstance);

View file

@ -84,8 +84,14 @@
/* Appearance Page */
#define IDC_APPEARANCE_PREVIEW 1500
#define IDC_APPEARANCE_UI_ITEM 1501
#define IDC_APPEARANCE_PREVIEW 1500
#define IDC_APPEARANCE_UI_ITEM 1501
#define IDC_APPEAR_SIZE 1502
#define IDC_APPEAR_SIZE_UPDOWN 1503
#define IDC_APPEAR_FONT_NAME 1510
#define IDS_INACTWIN 1510
#define IDS_ACTWIN 1511
@ -120,3 +126,4 @@
#endif /* __CPL_DESK_RESOURCE_H__ */

View file

@ -62,6 +62,11 @@ BEGIN
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
LTEXT "Item:", IDC_STATIC, 7, 159, 26, 9
COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:", IDC_STATIC, 142, 159, 16, 9
EDITTEXT IDC_APPEAR_SIZE, 142, 169, 38, 13, ES_RIGHT | WS_GROUP
CONTROL "", IDC_APPEAR_SIZE_UPDOWN, UPDOWN_CLASS, WS_BORDER | WS_GROUP |
UDS_AUTOBUDDY | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_SETBUDDYINT,
172, 169, 10, 13
END
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188