[gtk+/wip/resources: 3/3] Add gtk_css_provider_load_from_resource



commit d0c53fe8ac17284696d50a76f9ddd1c3384fa65f
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Jan 12 19:14:33 2012 +0100

    Add gtk_css_provider_load_from_resource

 gtk/gtkcssprovider.c |   38 ++++++++++++++++++++++++++++++++++++++
 gtk/gtkcssprovider.h |    3 +++
 2 files changed, 41 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index 280cd55..571e029 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -2741,6 +2741,44 @@ gtk_css_provider_load_from_path (GtkCssProvider  *css_provider,
 }
 
 /**
+ * gtk_css_provider_load_from_resource:
+ * @css_provider: a #GtkCssProvider
+ * @resource_path: the resource path of a file to load
+ * @error: (out) (allow-none): return location for a #GError, or %NULL
+ *
+ * Loads the resource data contained in @resource_path into @css_provider, making it clear
+ * any previously loaded information.
+ *
+ * Returns: %TRUE if the data could be loaded.
+ **/
+gboolean
+gtk_css_provider_load_from_resource (GtkCssProvider  *css_provider,
+				     const gchar     *resource_path,
+				     GError         **error)
+{
+  GFile *file;
+  char *uri, *escaped;
+  gboolean result;
+
+  g_return_val_if_fail (GTK_IS_CSS_PROVIDER (css_provider), FALSE);
+  g_return_val_if_fail (resource_path != NULL, FALSE);
+
+  escaped = g_uri_escape_string (resource_path,
+				 G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, FALSE);
+  uri = g_strconcat ("resource://", escaped, NULL);
+  g_free (escaped);
+
+  file = g_file_new_for_uri (uri);
+  g_free (uri);
+
+  result = gtk_css_provider_load_from_file (css_provider, file, error);
+
+  g_object_unref (file);
+
+  return result;
+}
+
+/**
  * gtk_css_provider_get_default:
  *
  * Returns the provider containing the style settings used as a
diff --git a/gtk/gtkcssprovider.h b/gtk/gtkcssprovider.h
index e1d0cfa..f46e7c8 100644
--- a/gtk/gtkcssprovider.h
+++ b/gtk/gtkcssprovider.h
@@ -83,6 +83,9 @@ gboolean         gtk_css_provider_load_from_data (GtkCssProvider  *css_provider,
 gboolean         gtk_css_provider_load_from_file (GtkCssProvider  *css_provider,
                                                   GFile           *file,
                                                   GError         **error);
+gboolean         gtk_css_provider_load_from_resource (GtkCssProvider  *css_provider,
+						      const gchar     *resource_path,
+						      GError         **error);
 gboolean         gtk_css_provider_load_from_path (GtkCssProvider  *css_provider,
                                                   const gchar     *path,
                                                   GError         **error);



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