diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2015-12-02 16:57:36 +0100 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2015-12-02 17:08:21 +0100 |
commit | 9eecd99e940a2579be64b79791337dc5048cabdc (patch) | |
tree | 848885bf4be2438ea5aaaef22b119214523c1e95 | |
parent | a0717ad8c078c07ea9d10aed385d30198fd24b03 (diff) | |
download | libgd-9eecd99e940a2579be64b79791337dc5048cabdc.tar.gz |
tagged-entry: add default CSS style for tagged entries
Instead of having to copy/paste this custom style in every application,
install a default style provider.
-rw-r--r-- | Makefile.am | 17 | ||||
-rw-r--r-- | libgd/gd-tagged-entry-default.css (renamed from libgd/gd-tagged-entry.example.css) | 2 | ||||
-rw-r--r-- | libgd/gd-tagged-entry.c | 18 | ||||
-rw-r--r-- | libgd/gd-tagged-entry.gresource.xml | 6 |
4 files changed, 40 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am index 4a1be27..51d719a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -193,13 +193,28 @@ test_stack_LDADD = \ endif if LIBGD_TAGGED_ENTRY +tagged_entry_resource_files = $(shell glib-compile-resources --sourcedir=$(srcdir)/libgd --generate-dependencies $(srcdir)/libgd/gd-tagged-entry.gresource.xml) +libgd/gd-tagged-entry-resources.c: libgd/gd-tagged-entry.gresource.xml $(tagged_entry_resource_files) + glib-compile-resources --target=$@ --sourcedir=$(srcdir)/libgd --generate-source --c-name gd_tagged_entry $(srcdir)/libgd/gd-tagged-entry.gresource.xml +libgd/gd-tagged-entry-resources.h: libgd/gd-tagged-entry.gresource.xml $(tagged_entry_resource_files) + glib-compile-resources --target=$@ --sourcedir=$(srcdir)/libgd --generate-header --c-name gd_tagged_entry $(srcdir)/libgd/gd-tagged-entry.gresource.xml + tagged_entry_sources = \ + libgd/gd-tagged-entry-resources.c \ + libgd/gd-tagged-entry-resources.h \ libgd/gd-tagged-entry.c \ libgd/gd-tagged-entry.h \ $(NULL) nodist_libgd_la_SOURCES += $(tagged_entry_sources) -EXTRA_DIST += $(tagged_entry_sources) libgd/gd-tagged-entry.example.css +EXTRA_DIST += \ + $(tagged_entry_sources) \ + $(tagged_entry_resource_files) \ + $(NULL) +CLEANFILES += \ + libgd/gd-tagged-entry-resources.c \ + libgd/gd-tagged-entry-resources.h \ + $(NULL) noinst_PROGRAMS += test-tagged-entry test_tagged_entry_SOURCES = \ diff --git a/libgd/gd-tagged-entry.example.css b/libgd/gd-tagged-entry-default.css index 1c7cade..f11fb80 100644 --- a/libgd/gd-tagged-entry.example.css +++ b/libgd/gd-tagged-entry-default.css @@ -1,5 +1,3 @@ -/* This is an example of a snippet suitable to theme GdTaggedEntry */ - @define-color entry_tag_bg #3465a4; @define-color entry_tag_fg #ffffff; diff --git a/libgd/gd-tagged-entry.c b/libgd/gd-tagged-entry.c index 47b3c5e..b94fe85 100644 --- a/libgd/gd-tagged-entry.c +++ b/libgd/gd-tagged-entry.c @@ -912,6 +912,22 @@ gd_tagged_entry_set_property (GObject *object, } static void +gd_tagged_entry_add_default_style (void) +{ + GtkCssProvider *provider; + + provider = gtk_css_provider_new (); + gtk_css_provider_load_from_resource + (provider, "/org/gnome/libgd/tagged-entry/default.css"); + + gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + g_object_unref (provider); +} + +static void gd_tagged_entry_class_init (GdTaggedEntryClass *klass) { GtkWidgetClass *wclass = GTK_WIDGET_CLASS (klass); @@ -957,6 +973,8 @@ gd_tagged_entry_class_init (GdTaggedEntryClass *klass) "Whether the close button should be shown in tags.", TRUE, G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS); + gd_tagged_entry_add_default_style (); + g_type_class_add_private (klass, sizeof (GdTaggedEntryPrivate)); g_object_class_install_properties (oclass, NUM_PROPERTIES, properties); } diff --git a/libgd/gd-tagged-entry.gresource.xml b/libgd/gd-tagged-entry.gresource.xml new file mode 100644 index 0000000..10b530c --- /dev/null +++ b/libgd/gd-tagged-entry.gresource.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<gresources> + <gresource prefix="/org/gnome/libgd/tagged-entry"> + <file alias="default.css">gd-tagged-entry-default.css</file> + </gresource> +</gresources> |