From 2d2e4fe7dd2deb0cf762b3bcbde1ed0447ef917c Mon Sep 17 00:00:00 2001
From: Bruce Cowan <bruce@bcowan.me.uk>
Date: Sat, 2 Jun 2012 13:06:51 +0100
Subject: [PATCH] Get CSS from GResource as well

---
 rugby-application.c | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

diff --git a/rugby-application.c b/rugby-application.c
index eed9573..88c9b4b 100644
--- a/rugby-application.c
+++ b/rugby-application.c
@@ -170,6 +170,31 @@ rugby_application_startup (GApplication *application)
 	g_object_unref (builder);
 }
 
+/* From Web neé Epiphany */
+static gboolean
+_gtk_css_provider_load_from_resource (GtkCssProvider *provider,
+                                      const char     *resource_path,
+                                      GError        **error)
+{
+	GBytes *data;
+	gboolean res;
+
+	g_return_val_if_fail (GTK_IS_CSS_PROVIDER (provider), FALSE);
+	g_return_val_if_fail (resource_path != NULL, FALSE);
+
+	data = g_resources_lookup_data (resource_path, G_RESOURCE_LOOKUP_FLAGS_NONE, error);
+	if (data == NULL)
+		return FALSE;
+
+	res = gtk_css_provider_load_from_data (provider,
+	                                       g_bytes_get_data (data, NULL),
+	                                       g_bytes_get_size (data),
+	                                       error);
+	g_bytes_unref (data);
+
+	return res;
+}
+
 static void
 rugby_application_activate (GApplication *app)
 {
@@ -234,8 +259,10 @@ 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);
+
+	if (!_gtk_css_provider_load_from_resource (provider, "/uk/me/bcowan/rugby/rugby.css", &err))
+		g_error ("Error loading CSS: %s", err->message);
+
 	gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
 	                                           GTK_STYLE_PROVIDER (provider),
 	                                           GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-- 
GitLab