mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 20:50:29 +00:00
Add the appearance preview control. Right now it doesn't do much but sitting there and looking great. ;-)
svn path=/trunk/; revision=25279
This commit is contained in:
parent
88784c27ec
commit
f3908f6d83
19 changed files with 379 additions and 52 deletions
|
@ -52,13 +52,15 @@ BEGIN
|
|||
PUSHBUTTON "&Gestion de l'alimentation",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Apparence"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "Vide pour l'instant....",IDC_STATIC,66,
|
||||
90,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -46,13 +46,15 @@ BEGIN
|
|||
PUSHBUTTON "&Alimentazione",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Aspetto"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "Questo spazio è stato intenzionalmente lasciato in bianco.",IDC_STATIC,66,
|
||||
90,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -55,8 +55,10 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
|||
CAPTION "外観のデザイン"
|
||||
FONT 9, "MS UI Gothic"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "ここは意図的に空けたままにしてあります",IDC_STATIC,66,
|
||||
110,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
|
|
|
@ -49,12 +49,14 @@ BEGIN
|
|||
15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX 0, 0, 246, 228
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Îôîðìëåíèå"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
LTEXT "Íàñòðîéêè âðåìåííî îòñóòñâóþò",IDC_STATIC,65,87,114,8
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "Íàñòðîéêè âðåìåííî îòñóòñâóþò",IDC_STATIC,65,150,114,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX 0, 0, 246, 188
|
||||
|
|
|
@ -54,13 +54,15 @@ BEGIN
|
|||
PUSHBUTTON "Ïàðàìåòðè &æèâëåííÿ",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Îôîðìëåííÿ"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "Öå ì³ñöå íàâìèñíî çàëèøåíå ïóñòèì",IDC_STATIC,66,
|
||||
90,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -50,13 +50,15 @@ BEGIN
|
|||
PUSHBUTTON "M&ožnosti napájení",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Vzhled"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "This space is intentionally left blank",IDC_STATIC,66,
|
||||
90,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
|
||||
|
||||
IDD_BACKGROUND DIALOGEX DISCARDABLE 0, 0, 246, 205
|
||||
IDD_BACKGROUND DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Hintergrund"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
|
@ -15,12 +15,14 @@ BEGIN
|
|||
COMBOBOX IDC_PLACEMENT_COMBO, 188, 149, 50, 54, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_SCREENSAVER DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_SCREENSAVER DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Bildschirmschoner"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "&Bildschrimschoner",IDC_SCREENS_DUMMY, 5, 7, 238, 136
|
||||
CONTROL "", IDC_SCREENS_PREVIEW, "Static", SS_OWNERDRAW, 80, 10, 83, 57, WS_EX_STATICEDGE
|
||||
|
||||
GROUPBOX "&Bildschrimschoner",IDC_STATIC, 5, 7, 238, 136
|
||||
|
||||
LTEXT "Installierte Bildschrimschoner:",IDC_STATIC,13, 24, 150, 9
|
||||
CONTROL "",IDC_SCREENS_CHOICES,"SysListView32",LVS_REPORT |
|
||||
|
@ -46,28 +48,19 @@ BEGIN
|
|||
PUSHBUTTON "Energ&ieeinstellungen",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Darstellung"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
|
||||
LTEXT "This space is intentionally left blank",IDC_STATIC,66,
|
||||
90,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDR_POPUP_MENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Konfigurieren", ID_MENU_CONFIG
|
||||
MENUITEM "&Vorschau", ID_MENU_PREVIEW
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hinzufügen", ID_MENU_ADD
|
||||
MENUITEM "&Löschen\tDel", ID_MENU_DELETE
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Einstellungen"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
|
@ -88,11 +81,22 @@ BEGIN
|
|||
PUSHBUTTON "&Erweitert",IDC_SETTINGS_ADVANCED,306,165,56,14
|
||||
END
|
||||
|
||||
IDR_POPUP_MENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Konfigurieren", ID_MENU_CONFIG
|
||||
MENUITEM "&Vorschau", ID_MENU_PREVIEW
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hinzufügen", ID_MENU_ADD
|
||||
MENUITEM "&Löschen\tDel", ID_MENU_DELETE
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CPLNAME "Anzeige"
|
||||
IDS_CPLDESCRIPTION "Passt die Darstellung des Hintergrundbildes und des Bildschirmschoners an."
|
||||
|
||||
IDS_NONE "(Keine)"
|
||||
IDS_CENTER "Zentriert"
|
||||
IDS_STRETCH "Gestreckt"
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
*/
|
||||
|
||||
#include "desk.h"
|
||||
#include "preview.h"
|
||||
|
||||
#define NUM_APPLETS (1)
|
||||
|
||||
|
@ -114,15 +115,20 @@ CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
|
|||
|
||||
|
||||
BOOL WINAPI
|
||||
DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
|
||||
DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpvReserved)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(lpvReserved);
|
||||
|
||||
switch (dwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
case DLL_THREAD_ATTACH:
|
||||
hApplet = hinstDLL;
|
||||
RegisterPreviewControl(hInstDLL);
|
||||
// case DLL_THREAD_ATTACH:
|
||||
hApplet = hInstDLL;
|
||||
break;
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
UnregisterPreviewControl(hInstDLL);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,5 +27,6 @@
|
|||
<file>appearance.c</file>
|
||||
<file>settings.c</file>
|
||||
<file>dibitmap.c</file>
|
||||
<file>preview.c</file>
|
||||
<file>desk.rc</file>
|
||||
</module>
|
||||
|
|
|
@ -46,13 +46,15 @@ BEGIN
|
|||
PUSHBUTTON "P&ower Settings",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Appearance"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "This space is intentionally left blank",IDC_STATIC,66,
|
||||
90,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -57,13 +57,15 @@ BEGIN
|
|||
PUSHBUTTON "Energía...",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Apariencia"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "Este espacio se ha dejado en blanco intencionadamente",IDC_STATIC,33,
|
||||
89,181,10
|
||||
150,181,10
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -50,13 +50,15 @@ BEGIN
|
|||
PUSHBUTTON "&Ñõèìßóåéò åíÝñãåéáò",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "ÅìöÜíéóç"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "This space is intentionally left blank",IDC_STATIC,66,
|
||||
90,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -42,12 +42,14 @@ BEGIN
|
|||
PUSHBUTTON "E&nergiaellátás",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Megjelenés"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Ez a terület szándékosan lett üresen hagyva",IDC_STATIC,66,90,112,8
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "Ez a terület szándékosan lett üresen hagyva",IDC_STATIC,66,150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -50,13 +50,15 @@ BEGIN
|
|||
PUSHBUTTON "Inst&ellingen",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Appearance"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "This space is intentionally left blank",IDC_STATIC,66,
|
||||
90,112,8
|
||||
150,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
|
@ -51,13 +51,15 @@ BEGIN
|
|||
PUSHBUTTON "Z&asilanie",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Wygl¹d"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "To miejsce pozosta³o celowo puste",IDC_STATIC,66,
|
||||
90,112,8
|
||||
1590,112,8
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
282
reactos/dll/cpl/desk/preview.c
Normal file
282
reactos/dll/cpl/desk/preview.c
Normal file
|
@ -0,0 +1,282 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Timedate Control Panel
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: lib/cpl/desk/preview.c
|
||||
* PURPOSE: Draws the preview control
|
||||
* COPYRIGHT: Copyright 2006 Eric Kohl
|
||||
*/
|
||||
|
||||
#include "desk.h"
|
||||
#include "preview.h"
|
||||
|
||||
static const TCHAR szPreviewWndClass[] = TEXT("PreviewWndClass");
|
||||
|
||||
typedef struct _PREVIEW_DATA
|
||||
{
|
||||
DWORD clrDesktop;
|
||||
HBRUSH hbrDesktop;
|
||||
|
||||
DWORD clrWindow;
|
||||
HBRUSH hbrWindow;
|
||||
|
||||
INT cxEdge;
|
||||
INT cyEdge;
|
||||
|
||||
INT cyCaption;
|
||||
|
||||
RECT rcDesktop;
|
||||
RECT rcInactiveFrame;
|
||||
RECT rcInactiveCaption;
|
||||
|
||||
RECT rcActiveFrame;
|
||||
RECT rcActiveCaption;
|
||||
RECT rcActiveClient;
|
||||
RECT rcActiveScroll;
|
||||
|
||||
RECT rcDialogFrame;
|
||||
RECT rcDialogCaption;
|
||||
RECT rcDialogClient;
|
||||
|
||||
RECT rcDialogButton;
|
||||
|
||||
} PREVIEW_DATA, *PPREVIEW_DATA;
|
||||
|
||||
|
||||
static VOID
|
||||
DrawCaptionButtons(HDC hdc, LPRECT lpRect, BOOL bMinMax)
|
||||
{
|
||||
RECT rc3;
|
||||
RECT rc4;
|
||||
RECT rc5;
|
||||
|
||||
rc3.left = lpRect->right - 2 - 16;
|
||||
rc3.top = lpRect->top + 2;
|
||||
rc3.right = lpRect->right - 2;
|
||||
rc3.bottom = lpRect->bottom - 2;
|
||||
|
||||
DrawFrameControl(hdc, &rc3, DFC_CAPTION, DFCS_CAPTIONCLOSE);
|
||||
|
||||
if (bMinMax)
|
||||
{
|
||||
rc4.left = rc3.left - 16 - 2;
|
||||
rc4.top = rc3.top;
|
||||
rc4.right = rc3.right - 16 - 2;
|
||||
rc4.bottom = rc3.bottom;
|
||||
|
||||
DrawFrameControl(hdc, &rc4, DFC_CAPTION, DFCS_CAPTIONMAX);
|
||||
|
||||
rc5.left = rc4.left - 16;
|
||||
rc5.top = rc4.top;
|
||||
rc5.right = rc4.right - 16;
|
||||
rc5.bottom = rc4.bottom;
|
||||
|
||||
DrawFrameControl(hdc, &rc5, DFC_CAPTION, DFCS_CAPTIONMIN);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static VOID
|
||||
OnSize(INT cx, INT cy, 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;
|
||||
pPreviewData->rcInactiveFrame.right = pPreviewData->rcDesktop.right - 25;
|
||||
pPreviewData->rcInactiveFrame.bottom = pPreviewData->rcDesktop.bottom - 30;
|
||||
|
||||
/* Calculate the inactive caption rectangle */
|
||||
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;
|
||||
|
||||
/* Calculate the active window rectangle */
|
||||
pPreviewData->rcActiveFrame.left = pPreviewData->rcInactiveFrame.left + 3 + 1;
|
||||
pPreviewData->rcActiveFrame.top = pPreviewData->rcInactiveCaption.bottom + 2;
|
||||
pPreviewData->rcActiveFrame.right = pPreviewData->rcDesktop.right - 10;
|
||||
pPreviewData->rcActiveFrame.bottom = pPreviewData->rcDesktop.bottom - 25;
|
||||
|
||||
/* Calculate the active caption rectangle */
|
||||
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;
|
||||
|
||||
/* FIXME: Calculate the active menu bar rectangle */
|
||||
|
||||
/* Calculate the active client rectangle */
|
||||
pPreviewData->rcActiveClient.left = pPreviewData->rcActiveFrame.left + 3 + 1;
|
||||
pPreviewData->rcActiveClient.top = pPreviewData->rcActiveCaption.bottom + 20 + 2;
|
||||
pPreviewData->rcActiveClient.right = pPreviewData->rcActiveFrame.right - 3 - 1;
|
||||
pPreviewData->rcActiveClient.bottom = pPreviewData->rcActiveFrame.bottom - 3 - 1;
|
||||
|
||||
/* Calculate the active scroll rectangle */
|
||||
pPreviewData->rcActiveScroll.left = pPreviewData->rcActiveClient.right - 2 - 16;
|
||||
pPreviewData->rcActiveScroll.top = pPreviewData->rcActiveClient.top + 2;
|
||||
pPreviewData->rcActiveScroll.right = pPreviewData->rcActiveClient.right - 2;
|
||||
pPreviewData->rcActiveScroll.bottom = pPreviewData->rcActiveClient.bottom - 2;
|
||||
|
||||
|
||||
/* Dialog window */
|
||||
pPreviewData->rcDialogFrame.left = pPreviewData->rcActiveClient.left + 4;
|
||||
pPreviewData->rcDialogFrame.top = (pPreviewData->rcDesktop.bottom * 60) / 100;
|
||||
pPreviewData->rcDialogFrame.right = (pPreviewData->rcDesktop.right * 65) / 100;
|
||||
pPreviewData->rcDialogFrame.bottom = pPreviewData->rcDesktop.bottom - 5;
|
||||
|
||||
/* Calculate the dialog caption rectangle */
|
||||
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 + 2;
|
||||
|
||||
/* Calculate the dialog client rectangle */
|
||||
pPreviewData->rcDialogClient.left = pPreviewData->rcDialogFrame.left + 3;
|
||||
pPreviewData->rcDialogClient.top = pPreviewData->rcDialogCaption.bottom + 1;
|
||||
pPreviewData->rcDialogClient.right = pPreviewData->rcDialogFrame.right - 3;
|
||||
pPreviewData->rcDialogClient.bottom = pPreviewData->rcDialogFrame.bottom - 3;
|
||||
|
||||
/* Calculate the dialog button rectangle */
|
||||
width = 80;
|
||||
height = 28;
|
||||
|
||||
pPreviewData->rcDialogButton.left =
|
||||
(pPreviewData->rcDialogClient.right + pPreviewData->rcDialogClient.left - width) / 2;
|
||||
pPreviewData->rcDialogButton.right = pPreviewData->rcDialogButton.left + width;
|
||||
pPreviewData->rcDialogButton.bottom = pPreviewData->rcDialogClient.bottom - 2;
|
||||
pPreviewData->rcDialogButton.top = pPreviewData->rcDialogButton.bottom - height;
|
||||
}
|
||||
|
||||
|
||||
static VOID
|
||||
DrawScrollbar(HDC hdc, LPRECT rc)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
static LRESULT CALLBACK
|
||||
PreviewWndProc(HWND hwnd,
|
||||
UINT uMsg,
|
||||
WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
PPREVIEW_DATA pPreviewData;
|
||||
HDC hdc;
|
||||
PAINTSTRUCT ps;
|
||||
RECT rc;
|
||||
|
||||
pPreviewData = (PPREVIEW_DATA)GetWindowLongPtr(hwnd, GWLP_USERDATA);
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
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);
|
||||
|
||||
pPreviewData->cxEdge = GetSystemMetrics(SM_CXEDGE);
|
||||
pPreviewData->cyEdge = GetSystemMetrics(SM_CXEDGE);
|
||||
|
||||
pPreviewData->cyCaption = 20; //GetSystemMetrics(SM_CYCAPTION);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_SIZE:
|
||||
OnSize(LOWORD(lParam), HIWORD(lParam), pPreviewData);
|
||||
break;
|
||||
|
||||
case WM_PAINT:
|
||||
hdc = BeginPaint(hwnd, &ps);
|
||||
|
||||
/* Desktop */
|
||||
FillRect(hdc, &pPreviewData->rcDesktop, pPreviewData->hbrDesktop);
|
||||
|
||||
/* Inactive Window */
|
||||
DrawEdge(hdc, &pPreviewData->rcInactiveFrame, EDGE_RAISED, BF_RECT | BF_MIDDLE);
|
||||
DrawCaption(hwnd, hdc, &pPreviewData->rcInactiveCaption, DC_GRADIENT | DC_TEXT);
|
||||
DrawCaptionButtons(hdc, &pPreviewData->rcInactiveCaption, TRUE);
|
||||
|
||||
|
||||
/* 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);
|
||||
|
||||
/* 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 scroll bar */
|
||||
DrawScrollbar(hdc, &pPreviewData->rcActiveScroll);
|
||||
|
||||
|
||||
/* Dialog Window */
|
||||
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);
|
||||
|
||||
/* Draw Button */
|
||||
DrawFrameControl(hdc, &pPreviewData->rcDialogButton, DFC_BUTTON, DFCS_BUTTONPUSH);
|
||||
|
||||
|
||||
EndPaint(hwnd, &ps);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
DeleteObject(pPreviewData->hbrDesktop);
|
||||
DeleteObject(pPreviewData->hbrWindow);
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, pPreviewData);
|
||||
break;
|
||||
|
||||
default:
|
||||
DefWindowProc(hwnd,
|
||||
uMsg,
|
||||
wParam,
|
||||
lParam);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
RegisterPreviewControl(IN HINSTANCE hInstance)
|
||||
{
|
||||
WNDCLASSEX wc = {0};
|
||||
|
||||
wc.cbSize = sizeof(WNDCLASSEX);
|
||||
wc.lpfnWndProc = PreviewWndProc;
|
||||
wc.hInstance = hInstance;
|
||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH)NULL; //(COLOR_BTNFACE + 1);
|
||||
wc.lpszClassName = szPreviewWndClass;
|
||||
|
||||
return RegisterClassEx(&wc) != (ATOM)0;
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
UnregisterPreviewControl(IN HINSTANCE hInstance)
|
||||
{
|
||||
UnregisterClass(szPreviewWndClass,
|
||||
hInstance);
|
||||
}
|
4
reactos/dll/cpl/desk/preview.h
Normal file
4
reactos/dll/cpl/desk/preview.h
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
|
||||
BOOL RegisterPreviewControl(IN HINSTANCE hInstance);
|
||||
VOID UnregisterPreviewControl(IN HINSTANCE hInstance);
|
|
@ -36,8 +36,8 @@
|
|||
|
||||
|
||||
/* Screensaver Page */
|
||||
#define IDC_SCREENS_CHOICES 1010
|
||||
#define IDC_SCREENS_PREVIEW 1011
|
||||
#define IDC_SCREENS_PREVIEW 1010
|
||||
#define IDC_SCREENS_CHOICES 1011
|
||||
#define IDC_SCREENS_POWER_BUTTON 1012
|
||||
#define IDC_SCREENS_SETTINGS 1013
|
||||
#define IDC_SCREENS_TESTSC 1014
|
||||
|
@ -78,5 +78,9 @@
|
|||
#define IDS_COLOR_24BIT 2924
|
||||
#define IDS_COLOR_32BIT 2932
|
||||
|
||||
|
||||
/* Appearance Page */
|
||||
#define IDC_APPEARANCE_PREVIEW 1500
|
||||
|
||||
#endif /* __CPL_DESK_RESOURCE_H__ */
|
||||
|
||||
|
|
|
@ -53,13 +53,15 @@ BEGIN
|
|||
PUSHBUTTON "Ins&tällningar",IDC_SCREENS_POWER_BUTTON,165, 162, 73, 15
|
||||
END
|
||||
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
IDD_APPEARANCE DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Utseende"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass",
|
||||
WS_VISIBLE | WS_BORDER, 7, 7, 232, 120
|
||||
LTEXT "Det här utrymmet har avsiktligt\nlämnats tomt",IDC_STATIC,66,
|
||||
90,112,20
|
||||
150,112,20
|
||||
END
|
||||
|
||||
IDD_SETTINGS DIALOGEX DISCARDABLE 0, 0, 246, 188
|
||||
|
|
Loading…
Reference in a new issue