From 6faee56f86be39350032ca322b54d083dde700b5 Mon Sep 17 00:00:00 2001 From: Whindmar Saksit Date: Wed, 23 Apr 2025 18:32:45 +0200 Subject: [PATCH] [DESK] Preview the color on the background color button (#7916) Note: A bug in the classic button prevents it from sending CDDS_POSTPAINT if the button has no text, the button resource has a space in its text as a workaround. --- dll/cpl/desk/background.c | 16 +++++--- dll/cpl/desk/desk.h | 4 ++ dll/cpl/desk/lang/bg-BG.rc | 3 +- dll/cpl/desk/lang/cs-CZ.rc | 3 +- dll/cpl/desk/lang/de-DE.rc | 3 +- dll/cpl/desk/lang/el-GR.rc | 3 +- dll/cpl/desk/lang/en-GB.rc | 3 +- dll/cpl/desk/lang/en-US.rc | 3 +- dll/cpl/desk/lang/es-ES.rc | 3 +- dll/cpl/desk/lang/et-EE.rc | 3 +- dll/cpl/desk/lang/fr-FR.rc | 3 +- dll/cpl/desk/lang/he-IL.rc | 3 +- dll/cpl/desk/lang/hu-HU.rc | 3 +- dll/cpl/desk/lang/id-ID.rc | 3 +- dll/cpl/desk/lang/it-IT.rc | 3 +- dll/cpl/desk/lang/ja-JP.rc | 3 +- dll/cpl/desk/lang/nl-NL.rc | 3 +- dll/cpl/desk/lang/no-NO.rc | 3 +- dll/cpl/desk/lang/pl-PL.rc | 3 +- dll/cpl/desk/lang/pt-BR.rc | 3 +- dll/cpl/desk/lang/pt-PT.rc | 3 +- dll/cpl/desk/lang/ro-RO.rc | 3 +- dll/cpl/desk/lang/ru-RU.rc | 3 +- dll/cpl/desk/lang/sk-SK.rc | 3 +- dll/cpl/desk/lang/sq-AL.rc | 3 +- dll/cpl/desk/lang/sv-SE.rc | 3 +- dll/cpl/desk/lang/tr-TR.rc | 3 +- dll/cpl/desk/lang/uk-UA.rc | 3 +- dll/cpl/desk/lang/zh-CN.rc | 3 +- dll/cpl/desk/lang/zh-HK.rc | 3 +- dll/cpl/desk/lang/zh-TW.rc | 3 +- dll/cpl/desk/misc.c | 82 ++++++++++++++++++++++++++++++++++++++ 32 files changed, 155 insertions(+), 34 deletions(-) diff --git a/dll/cpl/desk/background.c b/dll/cpl/desk/background.c index 6079d67ee89..b13729c1e9c 100644 --- a/dll/cpl/desk/background.c +++ b/dll/cpl/desk/background.c @@ -12,6 +12,7 @@ #include #include +#include #define MAX_BACKGROUNDS 100 @@ -570,6 +571,7 @@ OnColorButton(HWND hwndDlg, PBACKGROUND_DATA pData) /* Window will be updated :) */ InvalidateRect(GetDlgItem(hwndDlg, IDC_BACKGROUND_PREVIEW), NULL, TRUE); + InvalidateRect(GetDlgItem(hwndDlg, IDC_COLOR_BUTTON), NULL, TRUE); /* Save custom colors to reg. To this moment key must be created already. See above */ res = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Appearance"), 0, @@ -1240,14 +1242,10 @@ BackgroundPageProc(HWND hwndDlg, case WM_DRAWITEM: { - LPDRAWITEMSTRUCT drawItem; - drawItem = (LPDRAWITEMSTRUCT)lParam; + LPDRAWITEMSTRUCT drawItem = (LPDRAWITEMSTRUCT)lParam; if (drawItem->CtlID == IDC_BACKGROUND_PREVIEW) - { DrawBackgroundPreview(drawItem, pData); - } - } break; @@ -1277,6 +1275,14 @@ BackgroundPageProc(HWND hwndDlg, ListViewItemChanged(hwndDlg, pData, nm->iItem); } break; + + case NM_CUSTOMDRAW: + if (lpnm->idFrom == IDC_COLOR_BUTTON) + { + return SetDlgMsgResult(hwndDlg, 0, ClrBtn_CustomDraw((NMCUSTOMDRAW*)lpnm, + g_GlobalData.desktop_color)); + } + break; } } break; diff --git a/dll/cpl/desk/desk.h b/dll/cpl/desk/desk.h index a4c4dfd9c5f..8cb2886e4e9 100644 --- a/dll/cpl/desk/desk.h +++ b/dll/cpl/desk/desk.h @@ -61,6 +61,10 @@ INT AllocAndLoadString(LPTSTR *lpTarget, HINSTANCE hInst, UINT uID); +UINT +ClrBtn_CustomDraw(NMCUSTOMDRAW *pCD, + COLORREF Color); + ULONG __cdecl DbgPrint(PCCH Format,...); /* diff --git a/dll/cpl/desk/lang/bg-BG.rc b/dll/cpl/desk/lang/bg-BG.rc index e296e24bf24..66c1bddfaa7 100644 --- a/dll/cpl/desk/lang/bg-BG.rc +++ b/dll/cpl/desk/lang/bg-BG.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Изберете изображение за украса на работната си площ:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Тапет за работен плот:" for the backport, because that doesn't overflow the length of the IDC_BACKGROUND_LIST below and therefore looks better PUSHBUTTON "&Обзор...", IDC_BROWSE_BUTTON, 188, 104, 55, 15//I used "Об&зор..." for the backport to have the &O free - PUSHBUTTON "&Цвят...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Разположение:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "Расп&оложение:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Цвят:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/cs-CZ.rc b/dll/cpl/desk/lang/cs-CZ.rc index 15f10c8103e..28e86e028a2 100644 --- a/dll/cpl/desk/lang/cs-CZ.rc +++ b/dll/cpl/desk/lang/cs-CZ.rc @@ -28,9 +28,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Vyberte obrázek, který chcete použít jako pozadí:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel, I used "Vyb&erte obrázek, který chcete použít jako pozadí:" for the backport PUSHBUTTON "&Vybrat...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Barva...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Umístění:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "&Umístění:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Barva:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/de-DE.rc b/dll/cpl/desk/lang/de-DE.rc index 54d9676e168..b2dd37e09cd 100644 --- a/dll/cpl/desk/lang/de-DE.rc +++ b/dll/cpl/desk/lang/de-DE.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "&Hintergrund:", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "&Durchsuchen...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Farbe...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "&Ausrichtung:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Farbe:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "D&esktop anpassen...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/el-GR.rc b/dll/cpl/desk/lang/el-GR.rc index 1b056ad08c9..a714a86897c 100644 --- a/dll/cpl/desk/lang/el-GR.rc +++ b/dll/cpl/desk/lang/el-GR.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Επιλέξτε Φόντο:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Επιλέξτε Φόντο:" for the backport PUSHBUTTON "&Αναζήτηση...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Χρώμα...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Θέση:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "&Θέση:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Χρώμα:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/en-GB.rc b/dll/cpl/desk/lang/en-GB.rc index e96327aac94..3ddd1d6bffa 100644 --- a/dll/cpl/desk/lang/en-GB.rc +++ b/dll/cpl/desk/lang/en-GB.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Select an image to use as your des&ktop wallpaper:", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "&Browse...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Colour...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "&Placement:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Colour:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customise &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/en-US.rc b/dll/cpl/desk/lang/en-US.rc index bcaceaab124..d16090755e2 100644 --- a/dll/cpl/desk/lang/en-US.rc +++ b/dll/cpl/desk/lang/en-US.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Select an image to use as your des&ktop wallpaper:", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "&Browse...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Color...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "&Placement:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Color:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/es-ES.rc b/dll/cpl/desk/lang/es-ES.rc index 21855b67a58..4b678fad17a 100644 --- a/dll/cpl/desk/lang/es-ES.rc +++ b/dll/cpl/desk/lang/es-ES.rc @@ -33,9 +33,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "&Fondo de escritorio:", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "E&xaminar...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "C&olor...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Po&sición:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "C&olor:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/et-EE.rc b/dll/cpl/desk/lang/et-EE.rc index 13754f02dc1..e32b39d9405 100644 --- a/dll/cpl/desk/lang/et-EE.rc +++ b/dll/cpl/desk/lang/et-EE.rc @@ -30,9 +30,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Taust:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Taust:" for the backport PUSHBUTTON "&Sirvi...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Värv...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "&Paigutus:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Värv:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/fr-FR.rc b/dll/cpl/desk/lang/fr-FR.rc index fe822da4d2a..8b22ab7690a 100644 --- a/dll/cpl/desk/lang/fr-FR.rc +++ b/dll/cpl/desk/lang/fr-FR.rc @@ -25,9 +25,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "A&rrière-plan :", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "&Parcourir...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Couleur...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "P&osition :", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Couleur :", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "P&ersonnalisation du Bureau...", IDC_DESKTOP_CUSTOM, 8, 194, 100, 15 END diff --git a/dll/cpl/desk/lang/he-IL.rc b/dll/cpl/desk/lang/he-IL.rc index bbea7c114b0..10dc27b53ce 100644 --- a/dll/cpl/desk/lang/he-IL.rc +++ b/dll/cpl/desk/lang/he-IL.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "בחר תמונה שתשמש כרקע שולחן העבודה שלך:", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "סייר...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "צבע...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "מיקום:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "צבע:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/hu-HU.rc b/dll/cpl/desk/lang/hu-HU.rc index 4f5b116c373..b557fc5d231 100644 --- a/dll/cpl/desk/lang/hu-HU.rc +++ b/dll/cpl/desk/lang/hu-HU.rc @@ -25,9 +25,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Válasszon ki egy képet az asztala hátterének:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Válasszon ki egy képet az asztala hátterének:" for the backport PUSHBUTTON "&Kiválasztás...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Színek...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Elrendezés:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "&Elrendezés:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Színek:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "&Asztal testreszabása...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/id-ID.rc b/dll/cpl/desk/lang/id-ID.rc index 9852d28971c..5c1e8fcfc5b 100644 --- a/dll/cpl/desk/lang/id-ID.rc +++ b/dll/cpl/desk/lang/id-ID.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Pilih gambar untuk dipakai sebagai desktop wallpaper anda:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Pilih gambar untuk dipakai sebagai desktop wallpaper anda:" for the backport PUSHBUTTON "&Lihat...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Warna...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Penempatan:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "P&enempatan:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Warna:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/it-IT.rc b/dll/cpl/desk/lang/it-IT.rc index 077e51d5d5d..109bb6d2ffa 100644 --- a/dll/cpl/desk/lang/it-IT.rc +++ b/dll/cpl/desk/lang/it-IT.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Selezionare un'immagine da usare come sfondo per il desktop:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Sfondo del desktop:" for the backport, because that doesn't overflow the length of the IDC_BACKGROUND_LIST below and therefore looks better PUSHBUTTON "&Esplora...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Colore...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Posizione:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "&Posizione:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Colore:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Personalizza &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/ja-JP.rc b/dll/cpl/desk/lang/ja-JP.rc index db60062d25a..bc1ff95684f 100644 --- a/dll/cpl/desk/lang/ja-JP.rc +++ b/dll/cpl/desk/lang/ja-JP.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "デスクトップの壁紙として使う画像を選択してください(&K):", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "参照(&B)...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "色(&C)...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "表示位置(&P):", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "色(&C):", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "デスクトップのカスタマイズ(&D)...", IDC_DESKTOP_CUSTOM, 8, 194, 125, 15 END diff --git a/dll/cpl/desk/lang/nl-NL.rc b/dll/cpl/desk/lang/nl-NL.rc index bd1c9407f63..ae4f77c1341 100644 --- a/dll/cpl/desk/lang/nl-NL.rc +++ b/dll/cpl/desk/lang/nl-NL.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Kies een afbeelding als bureaublad achtergrond:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "Kies &een afbeelding als bureaublad achtergrond:" for the beackport PUSHBUTTON "&Bladeren...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Kleur...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "&Weergave:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Kleur:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/no-NO.rc b/dll/cpl/desk/lang/no-NO.rc index 6529683406b..01b6048aca2 100644 --- a/dll/cpl/desk/lang/no-NO.rc +++ b/dll/cpl/desk/lang/no-NO.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Velg et bilde som du vil bruke som skrivebordbakgrunn:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Velg et bilde som du vil bruke som skrivebordbakgrunn:" for the backport PUSHBUTTON "&Bla gjennom...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Farger...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Plassering:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "&Plassering:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Farge:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/pl-PL.rc b/dll/cpl/desk/lang/pl-PL.rc index ce7b2e9f39d..c4b14100ec8 100644 --- a/dll/cpl/desk/lang/pl-PL.rc +++ b/dll/cpl/desk/lang/pl-PL.rc @@ -34,9 +34,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Wybierz obraz do użycia jako tapeta pulpitu:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Wybierz obraz do użycia jako tapeta pulpitu:" for the backport PUSHBUTTON "&Przeglądaj...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Kolor...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Położenie:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. Attention &P is in use atm. I used "P&ołożenie:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Kolor:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "&Dostosuj pulpit...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/pt-BR.rc b/dll/cpl/desk/lang/pt-BR.rc index 49c739e417e..9760fe9cc5a 100644 --- a/dll/cpl/desk/lang/pt-BR.rc +++ b/dll/cpl/desk/lang/pt-BR.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "&Plano de fundo:", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "Proc&urar...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Cor...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Po&sição:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Cor:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/pt-PT.rc b/dll/cpl/desk/lang/pt-PT.rc index 7e452f54c23..9ce704fc617 100644 --- a/dll/cpl/desk/lang/pt-PT.rc +++ b/dll/cpl/desk/lang/pt-PT.rc @@ -30,9 +30,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Plano de &fundo:", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "Proc&urar...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Cor...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Po&sição:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Cor:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "&Personalizar...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/ro-RO.rc b/dll/cpl/desk/lang/ro-RO.rc index c2e69adbbdc..9b67d64a334 100644 --- a/dll/cpl/desk/lang/ro-RO.rc +++ b/dll/cpl/desk/lang/ro-RO.rc @@ -32,9 +32,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "&Selectaţi o imagine pentru a o folosi ca fundal de desktop:", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "&Răsfoire…", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Culoare…", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "&Poziţie:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Culoare:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Personalizare a &desktopului...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/ru-RU.rc b/dll/cpl/desk/lang/ru-RU.rc index 537dc346363..06330720928 100644 --- a/dll/cpl/desk/lang/ru-RU.rc +++ b/dll/cpl/desk/lang/ru-RU.rc @@ -23,9 +23,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Выберите изображение для рабочего стола:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Выберите изображение для рабочего стола:" for the backport PUSHBUTTON "Об&зор...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "Ц&вет...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Расп&оложение:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Ц&вет:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "&Настройка рабочего стола...", IDC_DESKTOP_CUSTOM, 8, 194, 116, 15 END diff --git a/dll/cpl/desk/lang/sk-SK.rc b/dll/cpl/desk/lang/sk-SK.rc index 47df14dedbb..bb691d8d60b 100644 --- a/dll/cpl/desk/lang/sk-SK.rc +++ b/dll/cpl/desk/lang/sk-SK.rc @@ -25,9 +25,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Vyberte obrázok, ktorý chcete použiť ako pozadie pracovnej plochy:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "&Tapeta na plochu:" for the backport, because that doesn't overflow the length of the IDC_BACKGROUND_LIST below and therefore looks better PUSHBUTTON "&Prehľadávať...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Farba...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "&Umiestnenie:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Farba:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/sq-AL.rc b/dll/cpl/desk/lang/sq-AL.rc index a543b246278..634c25bfef4 100644 --- a/dll/cpl/desk/lang/sq-AL.rc +++ b/dll/cpl/desk/lang/sq-AL.rc @@ -26,9 +26,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Zgjidhni një imazh për t'u përdorur si sfond tuaj desktop:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "Sfond i des&ktopit:" for the backport, because that doesn't overflow the length of the IDC_BACKGROUND_LIST below and therefore looks better PUSHBUTTON "&Shfleto...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Ngjyra...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Vendosje:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "&Vendosje:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Ngjyra:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/sv-SE.rc b/dll/cpl/desk/lang/sv-SE.rc index 3aace5bef5d..d1d404c7a8c 100644 --- a/dll/cpl/desk/lang/sv-SE.rc +++ b/dll/cpl/desk/lang/sv-SE.rc @@ -25,9 +25,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Välj en bild du vill ha som skrivbordsunderlägg:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accelerator. I used "&Välj en bild du vill ha som skrivbordsunderlägg:" for the backport PUSHBUTTON "&Bläddra...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Färg...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Placering:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "&Placering:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Färg:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/tr-TR.rc b/dll/cpl/desk/lang/tr-TR.rc index f8c81d9b726..96dfc05600f 100644 --- a/dll/cpl/desk/lang/tr-TR.rc +++ b/dll/cpl/desk/lang/tr-TR.rc @@ -25,9 +25,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Duvar kağıdınız olarak kullanmak için bir resim seçiniz:", IDC_STATIC, 8, 93, 230, 9//FIXME: add accel. I used "Duvar &kağıdınız olarak kullanmak için bir resim seçiniz:" for the backport PUSHBUTTON "&Göz At...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Renk...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "&Yerleşim:", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Renk:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/uk-UA.rc b/dll/cpl/desk/lang/uk-UA.rc index f7336e4e016..1690f4f12d6 100644 --- a/dll/cpl/desk/lang/uk-UA.rc +++ b/dll/cpl/desk/lang/uk-UA.rc @@ -30,9 +30,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "Виберіть зображення для шпалер робочого столу:", IDC_STATIC, 8, 93, 238, 9//FIXME: add accel. I used "&Виберіть зображення для шпалер робочого столу:" for the backport PUSHBUTTON "&Огляд...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "&Колір...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "Розташування:", IDC_STATIC, 188, 128, 55, 9//FIXME: add accel. I used "&Розташування:" for the backport COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "&Колір:", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/zh-CN.rc b/dll/cpl/desk/lang/zh-CN.rc index 933aa9f0616..a4655168761 100644 --- a/dll/cpl/desk/lang/zh-CN.rc +++ b/dll/cpl/desk/lang/zh-CN.rc @@ -33,9 +33,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "壁纸(&K):", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "浏览(&B)...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "颜色(&C)...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "位置(&P):", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "颜色(&C):", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "自定义桌面(&D)...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/zh-HK.rc b/dll/cpl/desk/lang/zh-HK.rc index 07d4101d455..58a14bf2ffc 100644 --- a/dll/cpl/desk/lang/zh-HK.rc +++ b/dll/cpl/desk/lang/zh-HK.rc @@ -31,9 +31,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "牆紙(&K):", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "瀏覽(&B)...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "顏色(&C)...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "位置(&P):", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "顏色(&C):", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/lang/zh-TW.rc b/dll/cpl/desk/lang/zh-TW.rc index f3b8a67fbc2..4c1393bd14b 100644 --- a/dll/cpl/desk/lang/zh-TW.rc +++ b/dll/cpl/desk/lang/zh-TW.rc @@ -32,9 +32,10 @@ BEGIN LVS_NOCOLUMNHEADER | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 8, 104, 174, 86 LTEXT "牆紙(&K):", IDC_STATIC, 8, 93, 230, 9 PUSHBUTTON "瀏覽(&B)...", IDC_BROWSE_BUTTON, 188, 104, 55, 15 - PUSHBUTTON "顏色(&C)...", IDC_COLOR_BUTTON, 188, 167, 55, 15 LTEXT "位置(&P):", IDC_STATIC, 188, 128, 55, 9 COMBOBOX IDC_PLACEMENT_COMBO, 188, 139, 55, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "顏色(&C):", IDC_STATIC, 188, 156, 55, 9 + PUSHBUTTON " ", IDC_COLOR_BUTTON, 188, 167, 55, 15 PUSHBUTTON "Customize &Desktop...", IDC_DESKTOP_CUSTOM, 8, 194, 90, 15 END diff --git a/dll/cpl/desk/misc.c b/dll/cpl/desk/misc.c index db61bac65e3..3362be5cdea 100644 --- a/dll/cpl/desk/misc.c +++ b/dll/cpl/desk/misc.c @@ -1,4 +1,7 @@ #include "desk.h" +#include +#include +#include static INT LengthOfStrResource(IN HINSTANCE hInst, @@ -61,3 +64,82 @@ AllocAndLoadString(OUT LPTSTR *lpTarget, } return 0; } + +static void +DrawEtchedLine(HTHEME hTheme, + HDC hdc, + int iPart, + int iState, + LPRECT pRect, + UINT uFlags) +{ + if (hTheme) + DrawThemeEdge(hTheme, hdc, iPart, iState, pRect, EDGE_ETCHED, uFlags, pRect); + else + DrawEdge(hdc, pRect, EDGE_ETCHED, uFlags); +} + +UINT +ClrBtn_CustomDraw(NMCUSTOMDRAW *pCD, + COLORREF Color) +{ + enum { MARGIN = 1, SEPLINE = 2 }; + HTHEME hTheme; + HGDIOBJ hOrgPen, hOrgBrush; + COLORREF clrOrgPen, clrOrgBrush, clrWidget; + INT nPadW, nPadH, nHalf, nArrow; + RECT r = pCD->rc; + POINT pts[3]; + + if (pCD->dwDrawStage == CDDS_PREPAINT) + return CDRF_NOTIFYPOSTPAINT; + if (pCD->dwDrawStage != CDDS_POSTPAINT) + return CDRF_DODEFAULT; + + nPadW = GetSystemMetrics(SM_CXFOCUSBORDER) + MARGIN; + nPadH = GetSystemMetrics(SM_CYFOCUSBORDER) + MARGIN; + + hTheme = GetWindowTheme(pCD->hdr.hwndFrom); + if (hTheme) + { + MARGINS margins; + GetThemeMargins(hTheme, pCD->hdc, BP_PUSHBUTTON, PBS_NORMAL, TMT_CONTENTMARGINS, NULL, &margins); + r.left += margins.cxLeftWidth + nPadW; + r.top += margins.cyTopHeight + nPadH; + r.right -= margins.cxRightWidth + nPadW; + r.bottom -= margins.cyBottomHeight + nPadH; + } + else + { + enum { FOCUSADJUST = 2 }; /* From comctl32 button.c */ + InflateRect(&r, -(nPadW + FOCUSADJUST), -(nPadH + FOCUSADJUST)); + } + + hOrgPen = SelectObject(pCD->hdc, GetStockObject(DC_PEN)); + hOrgBrush = SelectObject(pCD->hdc, GetStockObject(DC_BRUSH)); + clrWidget = GetSysColor(COLOR_BTNTEXT); + clrOrgPen = SetDCPenColor(pCD->hdc, clrWidget); + clrOrgBrush = SetDCBrushColor(pCD->hdc, Color); + + nHalf = (r.bottom - r.top) / 2; + Rectangle(pCD->hdc, r.left, r.top, r.right - nHalf - SEPLINE * 3, r.bottom); + + SetDCBrushColor(pCD->hdc, clrWidget); + nArrow = ((r.bottom - r.top) / 3) & ~1; + pts[0].x = r.right - nHalf + nArrow / 2; + pts[0].y = r.top + nHalf - nArrow / 3; + pts[1].x = pts[0].x + nArrow; + pts[1].y = pts[0].y; + pts[2].x = pts[0].x + nArrow / 2; + pts[2].y = pts[1].y + nArrow / 2; + Polygon(pCD->hdc, pts, _countof(pts)); + + r.left = r.right - nHalf - SEPLINE * 3 / 2; + DrawEtchedLine(hTheme, pCD->hdc, BP_PUSHBUTTON, PBS_NORMAL, &r, BF_LEFT); + + SetDCBrushColor(pCD->hdc, clrOrgBrush); + SetDCPenColor(pCD->hdc, clrOrgPen); + SelectObject(pCD->hdc, hOrgBrush); + SelectObject(pCD->hdc, hOrgPen); + return CDRF_DODEFAULT; +}