mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
3d74da6622
Instead we have an alternate code path for the appropriate API entry points in uxtheme.dll. This is not the best organizational structure. We should probably have HTHEME handles resolve to an object with its own function table, so then we have an MSSTYLES backend and a GTK backend and what have you. It would also be better to avoid having GTK controlled with its own registry key like this but rather to have it be selectable using EnumThemes()/ApplyTheme() [presumably through a fake theme file, as was used in the original implementation], so that we don't have to have special handling for those functions and everything can just be part of the HTHEME backend. However, time is currently of the essence, and this will have to do for the moment.
97 lines
3.5 KiB
Diff
97 lines
3.5 KiB
Diff
From ad78908234abc43ef56b5d005e22abde445f8760 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
|
Date: Sun, 9 Aug 2015 18:01:11 +0200
|
|
Subject: winecfg: Add option to enable/disable GTK3 theming.
|
|
|
|
---
|
|
programs/winecfg/resource.h | 1 +
|
|
programs/winecfg/staging.c | 29 +++++++++++++++++++++++++++++
|
|
programs/winecfg/winecfg.rc | 1 +
|
|
3 files changed, 31 insertions(+)
|
|
|
|
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
|
|
index f8c2fdf8..96f24290 100644
|
|
--- a/programs/winecfg/resource.h
|
|
+++ b/programs/winecfg/resource.h
|
|
@@ -218,6 +218,7 @@
|
|
#define IDC_ENABLE_VAAPI 9002
|
|
#define IDC_ENABLE_EAX 9003
|
|
#define IDC_ENABLE_HIDEWINE 9004
|
|
+#define IDC_ENABLE_GTK3 9005
|
|
|
|
/* About tab */
|
|
#define IDC_ABT_OWNER 8432
|
|
diff --git a/programs/winecfg/staging.c b/programs/winecfg/staging.c
|
|
index 2e305a2c..b573db71 100644
|
|
--- a/programs/winecfg/staging.c
|
|
+++ b/programs/winecfg/staging.c
|
|
@@ -99,6 +99,27 @@ static void hidewine_set(BOOL status)
|
|
set_reg_key(config_key, keypath(""), "HideWineExports", status ? "Y" : "N");
|
|
}
|
|
|
|
+/*
|
|
+ * GTK3
|
|
+ */
|
|
+static BOOL gtk3_get(void)
|
|
+{
|
|
+#ifdef HAVE_GTK3
|
|
+ BOOL ret;
|
|
+ char *value = get_reg_key(config_key, keypath(""), "ThemeEngine", NULL);
|
|
+ ret = (value && !strcasecmp(value, "GTK"));
|
|
+ HeapFree(GetProcessHeap(), 0, value);
|
|
+ return ret;
|
|
+#else
|
|
+ return FALSE;
|
|
+#endif
|
|
+}
|
|
+static void gtk3_set(BOOL status)
|
|
+{
|
|
+#ifdef HAVE_GTK3
|
|
+ set_reg_key(config_key, keypath(""), "ThemeEngine", status ? "GTK" : NULL);
|
|
+#endif
|
|
+}
|
|
|
|
static void load_staging_settings(HWND dialog)
|
|
{
|
|
@@ -106,10 +127,14 @@ static void load_staging_settings(HWND dialog)
|
|
CheckDlgButton(dialog, IDC_ENABLE_VAAPI, vaapi_get() ? BST_CHECKED : BST_UNCHECKED);
|
|
CheckDlgButton(dialog, IDC_ENABLE_EAX, eax_get() ? BST_CHECKED : BST_UNCHECKED);
|
|
CheckDlgButton(dialog, IDC_ENABLE_HIDEWINE, hidewine_get() ? BST_CHECKED : BST_UNCHECKED);
|
|
+ CheckDlgButton(dialog, IDC_ENABLE_GTK3, gtk3_get() ? BST_CHECKED : BST_UNCHECKED);
|
|
|
|
#ifndef HAVE_VAAPI
|
|
disable(IDC_ENABLE_VAAPI);
|
|
#endif
|
|
+#ifndef HAVE_GTK3
|
|
+ disable(IDC_ENABLE_GTK3);
|
|
+#endif
|
|
}
|
|
|
|
INT_PTR CALLBACK StagingDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
@@ -151,6 +176,10 @@ INT_PTR CALLBACK StagingDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|
hidewine_set(IsDlgButtonChecked(hDlg, IDC_ENABLE_HIDEWINE) == BST_CHECKED);
|
|
SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0);
|
|
return TRUE;
|
|
+ case IDC_ENABLE_GTK3:
|
|
+ gtk3_set(IsDlgButtonChecked(hDlg, IDC_ENABLE_GTK3) == BST_CHECKED);
|
|
+ SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0);
|
|
+ return TRUE;
|
|
}
|
|
break;
|
|
}
|
|
diff --git a/programs/winecfg/winecfg.rc b/programs/winecfg/winecfg.rc
|
|
index 469ae101..33f2642e 100644
|
|
--- a/programs/winecfg/winecfg.rc
|
|
+++ b/programs/winecfg/winecfg.rc
|
|
@@ -323,6 +323,7 @@ BEGIN
|
|
CONTROL "Enable &VAAPI as backend for DXVA2 GPU decoding",IDC_ENABLE_VAAPI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,55,230,8
|
|
CONTROL "Enable Environmental Audio E&xtensions (EAX)",IDC_ENABLE_EAX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,70,230,8
|
|
CONTROL "&Hide Wine version from applications",IDC_ENABLE_HIDEWINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,85,230,8
|
|
+ CONTROL "Enable >K3 Theming",IDC_ENABLE_GTK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,100,230,8
|
|
END
|
|
|
|
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|
--
|
|
2.20.1
|
|
|