[gtk+] Add a function to load css from a resource



commit a00842fa9981a9fab90f435f81b71cdea1aa08f4
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Oct 4 15:52:02 2014 -0400

    Add a function to load css from a resource
    
    This is common enough that we should just provide an API for it
    - we already had a function for this purpose anyway.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=672946

 docs/reference/gtk/gtk3-sections.txt |    1 +
 gtk/gtkcssprovider.c                 |   25 ++++++++++++++++++++-----
 gtk/gtkcssprovider.h                 |    4 ++++
 3 files changed, 25 insertions(+), 5 deletions(-)
---
diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt
index de04e7f..c7d5375 100644
--- a/docs/reference/gtk/gtk3-sections.txt
+++ b/docs/reference/gtk/gtk3-sections.txt
@@ -6158,6 +6158,7 @@ gtk_css_provider_get_named
 gtk_css_provider_load_from_data
 gtk_css_provider_load_from_file
 gtk_css_provider_load_from_path
+gtk_css_provider_load_from_resource
 gtk_css_provider_new
 gtk_css_provider_to_string
 GTK_CSS_PROVIDER_ERROR
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index 8d6b216..62fde1c 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -2883,12 +2883,26 @@ gtk_css_provider_load_from_path (GtkCssProvider  *css_provider,
   return result;
 }
 
-static void
-gtk_css_provider_load_from_resource (GtkCssProvider  *css_provider,
-                                    const gchar     *resource_path)
+/**
+ * gtk_css_provider_load_from_resource:
+ * @css_provider: a #GtkCssProvider
+ * @resource_path: a #GResource resource path
+ *
+ * Loads the data contained in the resource at @resource_path into
+ * the #GtkCssProvider, clearing any previously loaded information.
+ *
+ * If there is an error locating the resource or parsing the CSS,
+ * then the program will be aborted.
+ *
+ * Since: 3.16
+ */
+void
+gtk_css_provider_load_from_resource (GtkCssProvider *css_provider,
+                                    const gchar    *resource_path)
 {
   GFile *file;
-  char *uri, *escaped;
+  gchar *uri, *escaped;
+  GError *error;
 
   g_return_if_fail (GTK_IS_CSS_PROVIDER (css_provider));
   g_return_if_fail (resource_path != NULL);
@@ -2901,7 +2915,8 @@ gtk_css_provider_load_from_resource (GtkCssProvider  *css_provider,
   file = g_file_new_for_uri (uri);
   g_free (uri);
 
-  gtk_css_provider_load_from_file (css_provider, file, NULL);
+  if (!gtk_css_provider_load_from_file (css_provider, file, &error))
+    g_error ("Failed to load CSS: %s", error->message); 
 
   g_object_unref (file);
 }
diff --git a/gtk/gtkcssprovider.h b/gtk/gtkcssprovider.h
index 4cf2f51..8181731 100644
--- a/gtk/gtkcssprovider.h
+++ b/gtk/gtkcssprovider.h
@@ -103,6 +103,10 @@ gboolean         gtk_css_provider_load_from_path (GtkCssProvider  *css_provider,
                                                   const gchar     *path,
                                                   GError         **error);
 
+GDK_AVAILABLE_IN_3_16
+void             gtk_css_provider_load_from_resource (GtkCssProvider *provider,
+                                                      const gchar    *resource_path);
+
 GDK_AVAILABLE_IN_ALL
 GtkCssProvider * gtk_css_provider_get_default (void);
 


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