From: Mohamad Al-Jaf mohamadaljaf@gmail.com
--- dlls/windows.ui/tests/uisettings.c | 4 ++-- programs/winecfg/resource.h | 1 + programs/winecfg/theme.c | 31 ++++++++++++++++++++++++++++++ programs/winecfg/winecfg.rc | 5 +++-- 4 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/dlls/windows.ui/tests/uisettings.c b/dlls/windows.ui/tests/uisettings.c index bd1e7a02d20..9711d93d051 100644 --- a/dlls/windows.ui/tests/uisettings.c +++ b/dlls/windows.ui/tests/uisettings.c @@ -152,14 +152,14 @@ static void test_UISettings(void) type = UIColorType_Foreground; hr = IUISettings3_GetColorValue( uisettings3, type, &value ); ok( hr == S_OK, "GetColorValue returned %#lx\n", hr ); - todo_wine ok( value.A == 255 && value.R == 255 && value.G == 255 && value.B == 255, + ok( value.A == 255 && value.R == 255 && value.G == 255 && value.B == 255, "got unexpected value.A == %d value.R == %d value.G == %d value.B == %d\n", value.A, value.R, value.G, value.B );
reset_color( &value ); type = UIColorType_Background; hr = IUISettings3_GetColorValue( uisettings3, type, &value ); ok( hr == S_OK, "GetColorValue returned %#lx\n", hr ); - todo_wine ok( value.A == 255 && value.R == 0 && value.G == 0 && value.B == 0, + ok( value.A == 255 && value.R == 0 && value.G == 0 && value.B == 0, "got unexpected value.A == %d value.R == %d value.G == %d value.B == %d\n", value.A, value.R, value.G, value.B );
done: diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h index dd46bc71b40..b1ff904101c 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h @@ -176,6 +176,7 @@ #define IDC_SYSPARAM_COLOR 1416 #define IDC_SYSPARAM_FONT 1417 #define IDC_ENABLE_FILE_ASSOCIATIONS 1418 +#define IDC_ENABLE_WINRT_DARK_THEME 1419
#define IDC_SYSPARAMS_BUTTON 8400 #define IDC_SYSPARAMS_BUTTON_TEXT 8401 diff --git a/programs/winecfg/theme.c b/programs/winecfg/theme.c index bbc4d3cc11f..980bd7b65b8 100644 --- a/programs/winecfg/theme.c +++ b/programs/winecfg/theme.c @@ -43,6 +43,10 @@
WINE_DEFAULT_DEBUG_CHANNEL(winecfg);
+static const WCHAR *subkey = L"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize"; +static const WCHAR *name = L"AppsUseLightTheme"; +static const HKEY root = HKEY_CURRENT_USER; + /* UXTHEME functions not in the headers */
typedef struct tagTHEMENAMES @@ -1083,6 +1087,26 @@ static void on_select_font(HWND hDlg) SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0); }
+static void init_app_theme(HWND hDlg) +{ + WCHAR *buf = get_reg_key(root, subkey, name, L"\0001"); + int state = (!wcscmp(buf, L"")) ? BST_CHECKED : BST_UNCHECKED; + + CheckDlgButton(hDlg, IDC_ENABLE_WINRT_DARK_THEME, state); + + free(buf); +} + +static void update_app_theme(HWND hDlg) +{ + DWORD state = 1; + + if (IsDlgButtonChecked(hDlg, IDC_ENABLE_WINRT_DARK_THEME) == BST_CHECKED) + state = 0; + + set_reg_key_dword(root, subkey, name, state); +} + static void init_mime_types(HWND hDlg) { WCHAR *buf = get_reg_key(config_key, keypath(L"FileOpenAssociations"), L"Enable", L"Y"); @@ -1131,6 +1155,7 @@ ThemeDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) update_shell_folder_listview(hDlg); read_sysparams(hDlg); init_mime_types(hDlg); + init_app_theme(hDlg); init_dialog(hDlg); break;
@@ -1256,6 +1281,11 @@ ThemeDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) update_mime_types(hDlg); SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0); break; + + case IDC_ENABLE_WINRT_DARK_THEME: + update_app_theme(hDlg); + SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0); + break; } break; } @@ -1275,6 +1305,7 @@ ThemeDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) read_shell_folder_link_targets(); update_shell_folder_listview(hDlg); update_mime_types(hDlg); + update_app_theme(hDlg); update_window_pos(); SetWindowLongPtrW(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR); break; diff --git a/programs/winecfg/winecfg.rc b/programs/winecfg/winecfg.rc index 8775b3b691b..76e0c2f5c29 100644 --- a/programs/winecfg/winecfg.rc +++ b/programs/winecfg/winecfg.rc @@ -298,8 +298,9 @@ BEGIN EDITTEXT IDC_SYSPARAM_SIZE,157,75,30,13,ES_AUTOHSCROLL | WS_TABSTOP | WS_DISABLED CONTROL "",IDC_SYSPARAM_SIZE_UD,UPDOWN_CLASSA,UDS_SETBUDDYINT | UDS_ALIGNRIGHT | WS_DISABLED, 185,75,15,13
- GROUPBOX "MIME types",IDC_STATIC,8,95,244,23 - CONTROL "Manage file &associations",IDC_ENABLE_FILE_ASSOCIATIONS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,105,230,10 + GROUPBOX "Misc",IDC_STATIC,8,95,244,23 + CONTROL "Manage file &associations",IDC_ENABLE_FILE_ASSOCIATIONS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,105,100,10 + CONTROL "Enable WinRT &dark theme",IDC_ENABLE_WINRT_DARK_THEME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,126,105,125,10
PUSHBUTTON "&Font...",IDC_SYSPARAM_FONT,190,75,55,13,WS_DISABLED GROUPBOX "Folders",IDC_STATIC,8,120,244,94