[libgd] tagged-entry: add default CSS style for tagged entries



commit 9eecd99e940a2579be64b79791337dc5048cabdc
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Wed Dec 2 16:57:36 2015 +0100

    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.

 Makefile.am                                        |   17 ++++++++++++++++-
 ...try.example.css => gd-tagged-entry-default.css} |    2 --
 libgd/gd-tagged-entry.c                            |   18 ++++++++++++++++++
 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
similarity index 91%
rename from libgd/gd-tagged-entry.example.css
rename to 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>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]