From 5ddb8e023b83e555bf58917d136937b014ade545 Mon Sep 17 00:00:00 2001
From: Bruce Cowan <bruce@bcowan.me.uk>
Date: Sat, 2 Jun 2012 01:51:51 +0100
Subject: [PATCH] Start to use GResource

---
 .gitignore          | 1 +
 Makefile            | 7 +++++--
 rugby-application.c | 5 +++--
 rugby.gresource.xml | 7 +++++++
 4 files changed, 16 insertions(+), 4 deletions(-)
 create mode 100644 rugby.gresource.xml

diff --git a/.gitignore b/.gitignore
index c88cc81..eb15d0b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 *.o
 rugby
+rugby-resources.c
diff --git a/Makefile b/Makefile
index cb9448b..6891e57 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,10 @@ LDLIBS = `pkg-config --libs gtk+-3.0`
 
 all: rugby
 
-rugby: rugby-application.o rugby-cell-renderer-score.o rugby-score-store.o rugby-scoring.o rugby.o
+rugby: rugby-application.o rugby-cell-renderer-score.o rugby-resources.o rugby-score-store.o rugby-scoring.o rugby.o
+
+rugby-resources.c: rugby.gresource.xml $(shell glib-compile-resources --generate-dependencies rugby.gresource.xml)
+	glib-compile-resources --generate-source rugby.gresource.xml --target $@
 
 clean:
-	$(RM) rugby *.o
+	$(RM) rugby *.o rugby-resources.c
diff --git a/rugby-application.c b/rugby-application.c
index ff66154..087590e 100644
--- a/rugby-application.c
+++ b/rugby-application.c
@@ -137,7 +137,7 @@ rugby_application_startup (GApplication *application)
 	g_action_map_add_action_entries (G_ACTION_MAP (application), app_entries, G_N_ELEMENTS (app_entries), application);
 
 	builder = gtk_builder_new ();
-	if (!gtk_builder_add_from_file (builder, "interface.ui", &err))
+	if (!gtk_builder_add_from_resource (builder, "/uk/me/bcowan/rugby/interface.ui", &err))
 	{
 		g_error ("Error: %s", err->message);
 	}
@@ -161,7 +161,7 @@ rugby_application_activate (GApplication *app)
 	GtkCssProvider *provider;
 
 	builder = gtk_builder_new ();
-	if (!gtk_builder_add_from_file (builder, "interface.ui", &err))
+	if (!gtk_builder_add_from_resource (builder, "/uk/me/bcowan/rugby/interface.ui", &err))
 	{
 		g_error ("Error: %s", err->message);
 	}
@@ -202,6 +202,7 @@ rugby_application_activate (GApplication *app)
 
 	/* init CSS */
 	provider = gtk_css_provider_new ();
+	/* TODO load this from resource */
 	gtk_css_provider_load_from_path (provider, "rugby.css", NULL);
 	gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
 	                                           GTK_STYLE_PROVIDER (provider),
diff --git a/rugby.gresource.xml b/rugby.gresource.xml
new file mode 100644
index 0000000..1c7c2f8
--- /dev/null
+++ b/rugby.gresource.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/uk/me/bcowan/rugby">
+    <file preprocess="xml-stripblanks">interface.ui</file>
+    <file compressed="true">rugby.css</file>
+  </gresource>
+</gresources>
-- 
GitLab