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