From 78b88e10633443c62bf26178085e7ae6f2fd3c80 Mon Sep 17 00:00:00 2001 From: Matthias Kupfer Date: Sun, 1 Mar 2009 22:55:02 +0000 Subject: [PATCH] - Show the currently selected color scheme in combo box instead of default "Reactos Standard". - The value HKCU\Control Panel\Apperance\(New)Current isn't used yet. - See issue #4164 for details. svn path=/trunk/; revision=39838 --- reactos/dll/cpl/desk/appearance.c | 17 +++++++++++++---- reactos/dll/cpl/desk/appearance.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/reactos/dll/cpl/desk/appearance.c b/reactos/dll/cpl/desk/appearance.c index e696d129f7a..373ef13482d 100644 --- a/reactos/dll/cpl/desk/appearance.c +++ b/reactos/dll/cpl/desk/appearance.c @@ -131,7 +131,7 @@ LoadCurrentTheme(GLOBALS* g) static BOOL -LoadThemeFromReg(GLOBALS* g, INT iPreset) +LoadThemeFromReg(GLOBALS* g) { INT i; TCHAR strSizeName[20] = {TEXT("Sizes\\0")}; @@ -139,6 +139,7 @@ LoadThemeFromReg(GLOBALS* g, INT iPreset) HKEY hkNewSchemes, hkScheme, hkSize; DWORD dwType, dwLength; BOOL Ret = FALSE; + INT iPreset = g->Theme.Id; if(RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Appearance\\New Schemes"), 0, KEY_READ, &hkNewSchemes) == ERROR_SUCCESS) @@ -332,6 +333,14 @@ ApplyTheme(GLOBALS* g) RegCloseKey(hKey); } + /* Save ThemeId */ + Result = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Appearance\\New Schemes"), 0, KEY_ALL_ACCESS, &hKey); + if (Result == ERROR_SUCCESS) + { + lstrcpy(clText, g->ThemeTemplates[g->Theme.Id].strKeyName); + RegSetValueEx(hKey, TEXT("SelectedStyle"), 0, REG_SZ, (BYTE *)clText, (lstrlen(clText)+1) * sizeof (TCHAR)); + RegCloseKey(hKey); + } } @@ -436,7 +445,7 @@ AppearancePage_OnDestroy(HWND hwndDlg, GLOBALS *g) INT_PTR CALLBACK AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - INT i, index; + INT i; GLOBALS *g; LPNMHDR lpnm; @@ -472,8 +481,8 @@ AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) PropSheet_Changed(GetParent(hwndDlg), hwndDlg); g->Theme.bHasChanged = TRUE; i = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETCURSEL, 0, 0); - index = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETITEMDATA, (WPARAM)i, 0); - LoadThemeFromReg(g, index); + g->Theme.Id = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETITEMDATA, (WPARAM)i, 0); + LoadThemeFromReg(g); } break; diff --git a/reactos/dll/cpl/desk/appearance.h b/reactos/dll/cpl/desk/appearance.h index fc902cc18af..e01cdb4c25c 100644 --- a/reactos/dll/cpl/desk/appearance.h +++ b/reactos/dll/cpl/desk/appearance.h @@ -35,6 +35,7 @@ typedef struct COLORREF crColor[NUM_COLORS]; LOGFONT lfFont[NUM_FONTS]; UINT64 Size[NUM_SIZES]; + INT Id; BOOL bFlatMenus; BOOL bHasChanged; BOOL bIsCustom;