[gnome-control-center] datetime: use a GResource for GtkBuilder UI definition and icons



commit d2ce735f12f572a78f5eb7f4ae915e591b8c1819
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Fri Jan 4 13:45:05 2013 +0100

    datetime: use a GResource for GtkBuilder UI definition and icons
    
    https://bugzilla.gnome.org/show_bug.cgi?id=691132

 panels/datetime/Makefile.am            |  111 +++++---------------------------
 panels/datetime/cc-datetime-panel.c    |    8 ++-
 panels/datetime/cc-timezone-map.c      |   21 +++---
 panels/datetime/datetime.gresource.xml |   90 ++++++++++++++++++++++++++
 4 files changed, 123 insertions(+), 107 deletions(-)
---
diff --git a/panels/datetime/Makefile.am b/panels/datetime/Makefile.am
index 19fed7c..d9b9821 100644
--- a/panels/datetime/Makefile.am
+++ b/panels/datetime/Makefile.am
@@ -16,94 +16,6 @@ dist_icons256_DATA = icons/256x256/preferences-system-time.png
 iconsscalabledir = $(datadir)/icons/hicolor/scalable/apps
 dist_iconsscalable_DATA = icons/scalable/preferences-system-time.svg
 
-uidir = $(pkgdatadir)/ui/datetime
-dist_ui_DATA = \
-	datetime.ui \
-	data/bg.png \
-	data/bg_dim.png \
-	data/cc.png \
-	data/pin.png \
-	data/timezone_0.png \
-	data/timezone_0_dim.png \
-	data/timezone_-10.png \
-	data/timezone_-10_dim.png \
-	data/timezone_10.png \
-	data/timezone_10_dim.png \
-	data/timezone_10.5.png \
-	data/timezone_10.5_dim.png \
-	data/timezone_-1.png \
-	data/timezone_-1_dim.png \
-	data/timezone_1.png \
-	data/timezone_1_dim.png \
-	data/timezone_-11.png \
-	data/timezone_-11_dim.png \
-	data/timezone_11.png \
-	data/timezone_11_dim.png \
-	data/timezone_11.5.png \
-	data/timezone_11.5_dim.png \
-	data/timezone_12.png \
-	data/timezone_12_dim.png \
-	data/timezone_12.75.png \
-	data/timezone_12.75_dim.png \
-	data/timezone_13.png \
-	data/timezone_13_dim.png \
-	data/timezone_14.png \
-	data/timezone_14_dim.png \
-	data/timezone_-2.png \
-	data/timezone_-2_dim.png \
-	data/timezone_2.png \
-	data/timezone_2_dim.png \
-	data/timezone_-3.png \
-	data/timezone_-3_dim.png \
-	data/timezone_3.png \
-	data/timezone_3_dim.png \
-	data/timezone_-3.5.png \
-	data/timezone_-3.5_dim.png \
-	data/timezone_3.5.png \
-	data/timezone_3.5_dim.png \
-	data/timezone_-4.png \
-	data/timezone_-4_dim.png \
-	data/timezone_4.png \
-	data/timezone_4_dim.png \
-	data/timezone_-4.5.png \
-	data/timezone_-4.5_dim.png \
-	data/timezone_4.5.png \
-	data/timezone_4.5_dim.png \
-	data/timezone_-5.png \
-	data/timezone_-5_dim.png \
-	data/timezone_5.png \
-	data/timezone_5_dim.png \
-	data/timezone_-5.5.png \
-	data/timezone_-5.5_dim.png \
-	data/timezone_5.5.png \
-	data/timezone_5.5_dim.png \
-	data/timezone_5.75.png \
-	data/timezone_5.75_dim.png \
-	data/timezone_-6.png \
-	data/timezone_-6_dim.png \
-	data/timezone_6.png \
-	data/timezone_6_dim.png \
-	data/timezone_6.5.png \
-	data/timezone_6.5_dim.png \
-	data/timezone_-7.png \
-	data/timezone_-7_dim.png \
-	data/timezone_7.png \
-	data/timezone_7_dim.png \
-	data/timezone_-8.png \
-	data/timezone_-8_dim.png \
-	data/timezone_8.png \
-	data/timezone_8_dim.png \
-	data/timezone_8.75.png \
-	data/timezone_8.75_dim.png \
-	data/timezone_-9.png \
-	data/timezone_-9_dim.png \
-	data/timezone_9.png \
-	data/timezone_9_dim.png \
-	data/timezone_-9.5.png \
-	data/timezone_-9.5_dim.png \
-	data/timezone_9.5.png \
-	data/timezone_9.5_dim.png
-
 tzdatadir = $(pkgdatadir)/datetime
 dist_tzdata_DATA = backward
 
@@ -112,7 +24,6 @@ AM_CPPFLAGS =						\
 	$(DATETIME_PANEL_CFLAGS)			\
 	-DGNOMELOCALEDIR="\"$(datadir)/locale\""	\
 	-DGNOMECC_DATA_DIR="\"$(pkgdatadir)\""		\
-	-DDATADIR="\"$(uidir)\""			\
 	$(NULL)
 
 noinst_PROGRAMS = test-timezone-gfx test-endianess test-timezone
@@ -157,7 +68,20 @@ timedated.h: Makefile.am timedated1-interface.xml
 		--generate-c-code timedated			\
 		$(srcdir)/timedated1-interface.xml
 
+
+resource_files = $(shell glib-compile-resources --generate-dependencies $(srcdir)/datetime.gresource.xml)
+cc-datetime-resources.c: datetime.gresource.xml $(resource_files)
+	$(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir) --generate-source --c-name cc_datetime $<
+cc-datetime-resources.h: datetime.gresource.xml $(resource_files)
+	$(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir) --generate-header --c-name cc_datetime $<
+
+BUILT_SOURCES = 		\
+	$(dbus_built_sources)	\
+	cc-datetime-resources.h	\
+	cc-datetime-resources.c
+
 libdate_time_la_SOURCES =	\
+	$(BUILT_SOURCES)	\
 	cc-datetime-panel.c	\
 	cc-datetime-panel.h	\
 	cc-timezone-map.c	\
@@ -165,7 +89,6 @@ libdate_time_la_SOURCES =	\
 	date-endian.c		\
 	date-endian.h		\
 	tz.c tz.h		\
-	$(dbus_built_sources)	\
 	$(NULL)
 
 libdate_time_la_LIBADD = $(PANEL_LIBS) $(DATETIME_PANEL_LIBS)
@@ -186,13 +109,13 @@ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
 CLEANFILES =					\
 	$(desktop_in_files)			\
 	$(desktop_DATA)				\
-	$(dbus_built_sources)			\
+	$(BUILT_SOURCES)			\
 	org.gnome.controlcenter.datetime.policy
 
 EXTRA_DIST =				\
 	timedated1-interface.xml	\
-	$(polkit_in_files)
-
-BUILT_SOURCES = $(dbus_built_sources)
+	$(polkit_in_files)		\
+	$(resource_files)		\
+	datetime.gresource.xml
 
 -include $(top_srcdir)/git.mk
diff --git a/panels/datetime/cc-datetime-panel.c b/panels/datetime/cc-datetime-panel.c
index 6f8ef09..84fe007 100644
--- a/panels/datetime/cc-datetime-panel.c
+++ b/panels/datetime/cc-datetime-panel.c
@@ -21,6 +21,7 @@
 
 #include "config.h"
 #include "cc-datetime-panel.h"
+#include "cc-datetime-resources.h"
 
 #include <langinfo.h>
 #include <sys/time.h>
@@ -959,6 +960,7 @@ cc_date_time_panel_init (CcDateTimePanel *self)
   GError *error;
 
   priv = self->priv = DATE_TIME_PANEL_PRIVATE (self);
+  g_resources_register (cc_datetime_get_resource ());
 
   priv->cancellable = g_cancellable_new ();
   error = NULL;
@@ -974,9 +976,9 @@ cc_date_time_panel_init (CcDateTimePanel *self)
   }
 
   priv->builder = gtk_builder_new ();
-
-  ret = gtk_builder_add_objects_from_file (priv->builder, DATADIR"/datetime.ui",
-                                           objects, &err);
+  ret = gtk_builder_add_objects_from_resource (priv->builder,
+                                               "/org/gnome/control-center/datetime/datetime.ui",
+                                               objects, &err);
 
   if (ret == 0)
     {
diff --git a/panels/datetime/cc-timezone-map.c b/panels/datetime/cc-timezone-map.c
index 7ed830e..3e127b0 100644
--- a/panels/datetime/cc-timezone-map.c
+++ b/panels/datetime/cc-timezone-map.c
@@ -35,6 +35,7 @@ G_DEFINE_TYPE (CcTimezoneMap, cc_timezone_map, GTK_TYPE_WIDGET)
 #define PIN_HOT_POINT_X 8
 #define PIN_HOT_POINT_Y 14
 
+#define DATETIME_RESOURCE_PATH "/org/gnome/control-center/datetime"
 
 typedef struct
 {
@@ -343,14 +344,14 @@ cc_timezone_map_draw (GtkWidget *widget,
 
   /* paint hilight */
   if (gtk_widget_is_sensitive (widget))
-    fmt = DATADIR "/timezone_%s.png";
+    fmt = DATETIME_RESOURCE_PATH "/timezone_%s.png";
   else
-    fmt = DATADIR "/timezone_%s_dim.png";
+    fmt = DATETIME_RESOURCE_PATH "/timezone_%s_dim.png";
 
   file = g_strdup_printf (fmt,
                           g_ascii_formatd (buf, sizeof (buf),
                                            "%g", priv->selected_offset));
-  orig_hilight = gdk_pixbuf_new_from_file (file, &err);
+  orig_hilight = gdk_pixbuf_new_from_resource (file, &err);
   g_free (file);
   file = NULL;
 
@@ -374,7 +375,7 @@ cc_timezone_map_draw (GtkWidget *widget,
     }
 
   /* load pin icon */
-  pin = gdk_pixbuf_new_from_file (DATADIR "/pin.png", &err);
+  pin = gdk_pixbuf_new_from_resource (DATETIME_RESOURCE_PATH "/pin.png", &err);
 
   if (err)
     {
@@ -584,8 +585,8 @@ cc_timezone_map_init (CcTimezoneMap *self)
 
   priv = self->priv = TIMEZONE_MAP_PRIVATE (self);
 
-  priv->orig_background = gdk_pixbuf_new_from_file (DATADIR "/bg.png",
-                                                    &err);
+  priv->orig_background = gdk_pixbuf_new_from_resource (DATETIME_RESOURCE_PATH "/bg.png",
+                                                        &err);
 
   if (!priv->orig_background)
     {
@@ -594,8 +595,8 @@ cc_timezone_map_init (CcTimezoneMap *self)
       g_clear_error (&err);
     }
 
-  priv->orig_background_dim = gdk_pixbuf_new_from_file (DATADIR "/bg_dim.png",
-                                                        &err);
+  priv->orig_background_dim = gdk_pixbuf_new_from_resource (DATETIME_RESOURCE_PATH "/bg_dim.png",
+                                                            &err);
 
   if (!priv->orig_background_dim)
     {
@@ -604,8 +605,8 @@ cc_timezone_map_init (CcTimezoneMap *self)
       g_clear_error (&err);
     }
 
-  priv->orig_color_map = gdk_pixbuf_new_from_file (DATADIR "/cc.png",
-                                                   &err);
+  priv->orig_color_map = gdk_pixbuf_new_from_resource (DATETIME_RESOURCE_PATH "/cc.png",
+                                                       &err);
   if (!priv->orig_color_map)
     {
       g_warning ("Could not load background image: %s",
diff --git a/panels/datetime/datetime.gresource.xml b/panels/datetime/datetime.gresource.xml
new file mode 100644
index 0000000..9b55358
--- /dev/null
+++ b/panels/datetime/datetime.gresource.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/control-center/datetime">
+    <file preprocess="xml-stripblanks">datetime.ui</file>
+    <file alias="bg.png">data/bg.png</file>
+    <file alias="bg_dim.png">data/bg_dim.png</file>
+    <file alias="cc.png">data/cc.png</file>
+    <file alias="pin.png">data/pin.png</file>
+    <file alias="timezone_0.png">data/timezone_0.png</file>
+    <file alias="timezone_0_dim.png">data/timezone_0_dim.png</file>
+    <file alias="timezone_-10.png">data/timezone_-10.png</file>
+    <file alias="timezone_-10_dim.png">data/timezone_-10_dim.png</file>
+    <file alias="timezone_10.png">data/timezone_10.png</file>
+    <file alias="timezone_10_dim.png">data/timezone_10_dim.png</file>
+    <file alias="timezone_10.5.png">data/timezone_10.5.png</file>
+    <file alias="timezone_10.5_dim.png">data/timezone_10.5_dim.png</file>
+    <file alias="timezone_-1.png">data/timezone_-1.png</file>
+    <file alias="timezone_-1_dim.png">data/timezone_-1_dim.png</file>
+    <file alias="timezone_1.png">data/timezone_1.png</file>
+    <file alias="timezone_1_dim.png">data/timezone_1_dim.png</file>
+    <file alias="timezone_-11.png">data/timezone_-11.png</file>
+    <file alias="timezone_-11_dim.png">data/timezone_-11_dim.png</file>
+    <file alias="timezone_11.png">data/timezone_11.png</file>
+    <file alias="timezone_11_dim.png">data/timezone_11_dim.png</file>
+    <file alias="timezone_11.5.png">data/timezone_11.5.png</file>
+    <file alias="timezone_11.5_dim.png">data/timezone_11.5_dim.png</file>
+    <file alias="timezone_12.png">data/timezone_12.png</file>
+    <file alias="timezone_12_dim.png">data/timezone_12_dim.png</file>
+    <file alias="timezone_12.75.png">data/timezone_12.75.png</file>
+    <file alias="timezone_12.75_dim.png">data/timezone_12.75_dim.png</file>
+    <file alias="timezone_13.png">data/timezone_13.png</file>
+    <file alias="timezone_13_dim.png">data/timezone_13_dim.png</file>
+    <file alias="timezone_14.png">data/timezone_14.png</file>
+    <file alias="timezone_14_dim.png">data/timezone_14_dim.png</file>
+    <file alias="timezone_-2.png">data/timezone_-2.png</file>
+    <file alias="timezone_-2_dim.png">data/timezone_-2_dim.png</file>
+    <file alias="timezone_2.png">data/timezone_2.png</file>
+    <file alias="timezone_2_dim.png">data/timezone_2_dim.png</file>
+    <file alias="timezone_-3.png">data/timezone_-3.png</file>
+    <file alias="timezone_-3_dim.png">data/timezone_-3_dim.png</file>
+    <file alias="timezone_3.png">data/timezone_3.png</file>
+    <file alias="timezone_3_dim.png">data/timezone_3_dim.png</file>
+    <file alias="timezone_-3.5.png">data/timezone_-3.5.png</file>
+    <file alias="timezone_-3.5_dim.png">data/timezone_-3.5_dim.png</file>
+    <file alias="timezone_3.5.png">data/timezone_3.5.png</file>
+    <file alias="timezone_3.5_dim.png">data/timezone_3.5_dim.png</file>
+    <file alias="timezone_-4.png">data/timezone_-4.png</file>
+    <file alias="timezone_-4_dim.png">data/timezone_-4_dim.png</file>
+    <file alias="timezone_4.png">data/timezone_4.png</file>
+    <file alias="timezone_4_dim.png">data/timezone_4_dim.png</file>
+    <file alias="timezone_-4.5.png">data/timezone_-4.5.png</file>
+    <file alias="timezone_-4.5_dim.png">data/timezone_-4.5_dim.png</file>
+    <file alias="timezone_4.5.png">data/timezone_4.5.png</file>
+    <file alias="timezone_4.5_dim.png">data/timezone_4.5_dim.png</file>
+    <file alias="timezone_-5.png">data/timezone_-5.png</file>
+    <file alias="timezone_-5_dim.png">data/timezone_-5_dim.png</file>
+    <file alias="timezone_5.png">data/timezone_5.png</file>
+    <file alias="timezone_5_dim.png">data/timezone_5_dim.png</file>
+    <file alias="timezone_-5.5.png">data/timezone_-5.5.png</file>
+    <file alias="timezone_-5.5_dim.png">data/timezone_-5.5_dim.png</file>
+    <file alias="timezone_5.5.png">data/timezone_5.5.png</file>
+    <file alias="timezone_5.5_dim.png">data/timezone_5.5_dim.png</file>
+    <file alias="timezone_5.75.png">data/timezone_5.75.png</file>
+    <file alias="timezone_5.75_dim.png">data/timezone_5.75_dim.png</file>
+    <file alias="timezone_-6.png">data/timezone_-6.png</file>
+    <file alias="timezone_-6_dim.png">data/timezone_-6_dim.png</file>
+    <file alias="timezone_6.png">data/timezone_6.png</file>
+    <file alias="timezone_6_dim.png">data/timezone_6_dim.png</file>
+    <file alias="timezone_6.5.png">data/timezone_6.5.png</file>
+    <file alias="timezone_6.5_dim.png">data/timezone_6.5_dim.png</file>
+    <file alias="timezone_-7.png">data/timezone_-7.png</file>
+    <file alias="timezone_-7_dim.png">data/timezone_-7_dim.png</file>
+    <file alias="timezone_7.png">data/timezone_7.png</file>
+    <file alias="timezone_7_dim.png">data/timezone_7_dim.png</file>
+    <file alias="timezone_-8.png">data/timezone_-8.png</file>
+    <file alias="timezone_-8_dim.png">data/timezone_-8_dim.png</file>
+    <file alias="timezone_8.png">data/timezone_8.png</file>
+    <file alias="timezone_8_dim.png">data/timezone_8_dim.png</file>
+    <file alias="timezone_8.75.png">data/timezone_8.75.png</file>
+    <file alias="timezone_8.75_dim.png">data/timezone_8.75_dim.png</file>
+    <file alias="timezone_-9.png">data/timezone_-9.png</file>
+    <file alias="timezone_-9_dim.png">data/timezone_-9_dim.png</file>
+    <file alias="timezone_9.png">data/timezone_9.png</file>
+    <file alias="timezone_9_dim.png">data/timezone_9_dim.png</file>
+    <file alias="timezone_-9.5.png">data/timezone_-9.5.png</file>
+    <file alias="timezone_-9.5_dim.png">data/timezone_-9.5_dim.png</file>
+    <file alias="timezone_9.5.png">data/timezone_9.5.png</file>
+    <file alias="timezone_9.5_dim.png">data/timezone_9.5_dim.png</file>
+  </gresource>
+</gresources>



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