summaryrefslogtreecommitdiff
path: root/demos/widget-factory/widget-factory.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2018-04-10 12:43:28 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2018-05-08 09:16:53 +0100
commitbb54bc7d1412d65d29cf0ccf6910db83a5b33496 (patch)
treea771482361350ded987741f84a6e484a37501f3f /demos/widget-factory/widget-factory.c
parent772c994fd08d02bd0eaab5e8adab0b14578a8a4b (diff)
downloadgtk+-devel-theme.tar.gz
Add a "devel" CSS theme for our demosdevel-theme
It's useful to know if you're running the demos from an unstable version of GTK+, so we should use a CSS fragment that updates the visual identity of gtk-demo and gtk-widget-factory depending on the version of GTK+ they are running against.
Diffstat (limited to 'demos/widget-factory/widget-factory.c')
-rw-r--r--demos/widget-factory/widget-factory.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index 8b8e852dd5..acc8abd450 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -1606,6 +1606,27 @@ adjustment3_value_changed (GtkAdjustment *adj, GtkProgressBar *pbar)
}
static void
+settings__notify_gtk_theme_name (GObject *gobject,
+ GParamSpec *pspec,
+ gpointer data)
+{
+ GtkWidget *window = data;
+ char *theme_name = NULL;
+
+ g_object_get (gobject, "gtk-theme-name", &theme_name, NULL);
+
+ if (g_strcmp0 (theme_name, "Adwaita") == 0)
+ {
+ if (gtk_get_minor_version () % 2 != 0)
+ gtk_style_context_add_class (gtk_widget_get_style_context (window), "devel");
+ }
+ else
+ gtk_style_context_remove_class (gtk_widget_get_style_context (window), "devel");
+
+ g_free (theme_name);
+}
+
+static void
activate (GApplication *app)
{
GtkBuilder *builder;
@@ -1680,6 +1701,13 @@ activate (GApplication *app)
win_entries, G_N_ELEMENTS (win_entries),
window);
+ g_signal_connect (gtk_settings_get_default (), "notify::gtk-theme-name",
+ G_CALLBACK (settings__notify_gtk_theme_name),
+ window);
+ settings__notify_gtk_theme_name (G_OBJECT (gtk_settings_get_default ()),
+ NULL,
+ window);
+
for (i = 0; i < G_N_ELEMENTS (accels); i++)
gtk_application_set_accels_for_action (GTK_APPLICATION (app), accels[i].action_and_target, accels[i].accelerators);