[gnome-flashback] add Adwaita and HighContrast theme
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback] add Adwaita and HighContrast theme
- Date: Sun, 29 Mar 2015 16:12:16 +0000 (UTC)
commit 56ca8c70b26836a553a08f5dcfdcff988df50534
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sun Mar 29 19:11:35 2015 +0300
add Adwaita and HighContrast theme
gnome-flashback/Adwaita.css | 4 +
gnome-flashback/HighContrast.css | 4 +
gnome-flashback/Makefile.am | 21 ++++++-
gnome-flashback/flashback-application.c | 72 ++++++++++++++++++--
gnome-flashback/flashback.gresource.xml | 8 ++
gnome-flashback/libend-session-dialog/Makefile.am | 14 +---
.../flashback-inhibit-dialog.c | 3 +-
.../libend-session-dialog/flashback.gresource.xml | 6 --
8 files changed, 104 insertions(+), 28 deletions(-)
---
diff --git a/gnome-flashback/Adwaita.css b/gnome-flashback/Adwaita.css
new file mode 100644
index 0000000..362ec9a
--- /dev/null
+++ b/gnome-flashback/Adwaita.css
@@ -0,0 +1,4 @@
+FlashbackOsdWindow
+{
+ border-radius: 20px;
+}
diff --git a/gnome-flashback/HighContrast.css b/gnome-flashback/HighContrast.css
new file mode 100644
index 0000000..362ec9a
--- /dev/null
+++ b/gnome-flashback/HighContrast.css
@@ -0,0 +1,4 @@
+FlashbackOsdWindow
+{
+ border-radius: 20px;
+}
diff --git a/gnome-flashback/Makefile.am b/gnome-flashback/Makefile.am
index eacd19f..df1e9e3 100644
--- a/gnome-flashback/Makefile.am
+++ b/gnome-flashback/Makefile.am
@@ -21,7 +21,8 @@ gnome_flashback_SOURCES = \
flashback-application.h \
flashback-main.c \
flashback-session.c \
- flashback-session.h
+ flashback-session.h \
+ $(BUILT_SOURCES)
gnome_flashback_LDADD = \
$(GNOME_FLASHBACK_LIBS) \
@@ -34,4 +35,22 @@ gnome_flashback_LDADD = \
$(top_builddir)/gnome-flashback/libshell/libshell.la \
$(top_builddir)/gnome-flashback/libsound-applet/libsound-applet.la
+flashback-resources.c: flashback.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)
--generate-dependencies $(srcdir)/flashback.gresource.xml)
+ $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name flashback
$<
+
+flashback-resources.h: flashback.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)
--generate-dependencies $(srcdir)/flashback.gresource.xml)
+ $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name flashback
$<
+
+BUILT_SOURCES = \
+ flashback-resources.c \
+ flashback-resources.h
+
+EXTRA_DIST = \
+ Adwaita.css \
+ flashback.gresource.xml \
+ HighContrast.css
+
+CLEANFILES = \
+ $(BUILT_SOURCES)
+
-include $(top_srcdir)/git.mk
diff --git a/gnome-flashback/flashback-application.c b/gnome-flashback/flashback-application.c
index d21ca38..07ff159 100644
--- a/gnome-flashback/flashback-application.c
+++ b/gnome-flashback/flashback-application.c
@@ -36,6 +36,8 @@ struct _FlashbackApplication
GSettings *settings;
+ GtkCssProvider *provider;
+
GsdAutomountManager *automount;
DesktopBackground *background;
FlashbackDisplayConfig *config;
@@ -49,9 +51,59 @@ struct _FlashbackApplication
G_DEFINE_TYPE (FlashbackApplication, flashback_application, G_TYPE_OBJECT)
static void
-flashback_application_settings_changed (GSettings *settings,
- const gchar *key,
- gpointer user_data)
+remove_style_provider (FlashbackApplication *application,
+ GdkScreen *screen)
+{
+ GtkStyleProvider *provider;
+
+ if (application->provider == FALSE)
+ return;
+
+ provider = GTK_STYLE_PROVIDER (application->provider);
+ gtk_style_context_remove_provider_for_screen (screen, provider);
+ g_clear_object (&application->provider);
+}
+
+static void
+theme_changed (GtkSettings *settings,
+ gpointer user_data)
+{
+ FlashbackApplication *application;
+ GdkScreen *screen;
+ gchar *theme;
+
+ application = FLASHBACK_APPLICATION (user_data);
+ screen = gdk_screen_get_default ();
+
+ g_object_get (settings, "gtk-theme-name", &theme, NULL);
+
+ if (g_strcmp0 (theme, "Adwaita") == 0 || g_strcmp0 (theme, "HighContrast") == 0)
+ {
+ gchar *resource;
+ GtkStyleProvider *provider;
+ gint priority;
+
+ application->provider = gtk_css_provider_new ();
+
+ resource = g_strdup_printf ("/org/gnome/gnome-flashback/%s.css", theme);
+ gtk_css_provider_load_from_resource (application->provider, resource);
+ g_free (resource);
+
+ provider = GTK_STYLE_PROVIDER (application->provider);
+ priority = GTK_STYLE_PROVIDER_PRIORITY_APPLICATION;
+
+ gtk_style_context_add_provider_for_screen (screen, provider, priority);
+ }
+ else
+ remove_style_provider (application, screen);
+
+ g_free (theme);
+}
+
+static void
+settings_changed (GSettings *settings,
+ const gchar *key,
+ gpointer user_data)
{
FlashbackApplication *application;
@@ -98,6 +150,8 @@ flashback_application_finalize (GObject *object)
g_clear_object (&application->settings);
+ remove_style_provider (application, gdk_screen_get_default ());
+
g_clear_object (&application->automount);
g_clear_object (&application->background);
g_clear_object (&application->config);
@@ -113,14 +167,18 @@ flashback_application_finalize (GObject *object)
static void
flashback_application_init (FlashbackApplication *application)
{
+ GtkSettings *settings;
+
application->settings = g_settings_new ("org.gnome.gnome-flashback");
+ settings = gtk_settings_get_default ();
g_signal_connect (application->settings, "changed",
- G_CALLBACK (flashback_application_settings_changed),
- application);
+ G_CALLBACK (settings_changed), application);
+ g_signal_connect (settings, "notify::gtk-theme-name",
+ G_CALLBACK (theme_changed), application);
- flashback_application_settings_changed (application->settings,
- NULL, application);
+ settings_changed (application->settings, NULL, application);
+ theme_changed (settings, application);
application->bus_name = g_bus_own_name (G_BUS_TYPE_SESSION,
"org.gnome.Shell",
diff --git a/gnome-flashback/flashback.gresource.xml b/gnome-flashback/flashback.gresource.xml
new file mode 100644
index 0000000..363697a
--- /dev/null
+++ b/gnome-flashback/flashback.gresource.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/gnome/gnome-flashback">
+ <file>Adwaita.css</file>
+ <file>HighContrast.css</file>
+ <file alias="flashback-inhibit-dialog.ui"
compressed="true">libend-session-dialog/flashback-inhibit-dialog.ui</file>
+ </gresource>
+</gresources>
diff --git a/gnome-flashback/libend-session-dialog/Makefile.am
b/gnome-flashback/libend-session-dialog/Makefile.am
index f6ea2a0..9d3ba3d 100644
--- a/gnome-flashback/libend-session-dialog/Makefile.am
+++ b/gnome-flashback/libend-session-dialog/Makefile.am
@@ -12,9 +12,7 @@ libend_session_dialog_la_SOURCES = \
flashback-end-session-dialog.c \
flashback-end-session-dialog.h \
flashback-inhibit-dialog.c \
- flashback-inhibit-dialog.h \
- flashback-resources.c \
- flashback-resources.h
+ flashback-inhibit-dialog.h
libend_session_dialog_la_LIBADD = \
$(END_SESSION_DIALOG_LIBS)
@@ -27,20 +25,12 @@ dbus-end-session-dialog.c: org.gnome.SessionManager.EndSessionDialog.xml Makefil
--c-namespace DBus \
org.gnome.SessionManager.EndSessionDialog.xml
-flashback-resources.c: flashback.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)
--generate-dependencies $(srcdir)/flashback.gresource.xml)
- $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name flashback
--manual-register $<
-flashback-resources.h: flashback.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)
--generate-dependencies $(srcdir)/flashback.gresource.xml)
- $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name flashback
--manual-register $<
-
BUILT_SOURCES = \
dbus-end-session-dialog.h \
- dbus-end-session-dialog.c \
- flashback-resources.c \
- flashback-resources.h
+ dbus-end-session-dialog.c
EXTRA_DIST = \
org.gnome.SessionManager.EndSessionDialog.xml \
- flashback.gresource.xml \
flashback-inhibit-dialog.ui
CLEANFILES = \
diff --git a/gnome-flashback/libend-session-dialog/flashback-inhibit-dialog.c
b/gnome-flashback/libend-session-dialog/flashback-inhibit-dialog.c
index 05f59d4..8d10848 100644
--- a/gnome-flashback/libend-session-dialog/flashback-inhibit-dialog.c
+++ b/gnome-flashback/libend-session-dialog/flashback-inhibit-dialog.c
@@ -30,7 +30,6 @@
#include "config.h"
#include "flashback-inhibit-dialog.h"
-#include "flashback-resources.h"
#define IS_STRING_EMPTY(string) ((string) == NULL || (string)[0] == '\0')
@@ -794,7 +793,7 @@ flashback_inhibit_dialog_class_init (FlashbackInhibitDialogClass *klass)
binding_set = gtk_binding_set_by_class (klass);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0, "close", 0);
- flashback_register_resource ();
+ //flashback_register_resource ();
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/gnome-flashback/flashback-inhibit-dialog.ui");
gtk_widget_class_bind_template_child_private (widget_class, FlashbackInhibitDialog, main_box);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]