[gtk: 18/31] Add gtk_icon_paintable_get_resource_path()



commit a772bf75178f886c324ce48dfd1e2616ec7bda82
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Feb 6 17:33:19 2020 +0100

    Add gtk_icon_paintable_get_resource_path()
    
    Also, return NULL from gtk_icon_paintable_get_filename() if the path
    is really a resource path.

 docs/reference/gtk/gtk4-sections.txt |  1 +
 gtk/gtkicontheme.c                   | 23 ++++++++++++++++++++++-
 gtk/gtkicontheme.h                   |  8 +++++---
 3 files changed, 28 insertions(+), 4 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 3316829a80..aa7726bb53 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -5010,6 +5010,7 @@ gtk_icon_theme_lookup_by_gicon
 gtk_icon_theme_list_icons
 gtk_icon_theme_get_icon_sizes
 gtk_icon_paintable_get_filename
+gtk_icon_paintable_get_resource_path
 gtk_icon_paintable_get_icon_name
 gtk_icon_paintable_is_symbolic
 <SUBSECTION Standard>
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 65459be8e3..5c4ce8160c 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -3130,7 +3130,28 @@ gtk_icon_paintable_get_filename (GtkIconPaintable *icon)
 {
   g_return_val_if_fail (icon != NULL, NULL);
 
-  return icon->filename;
+  if (!icon->is_resource)
+    return icon->filename;
+  return NULL;
+}
+
+/**
+ * gtk_icon_paintable_get_resource_path:
+ * @self: a #GtkIcon
+ *
+ * Gets the resource path for the icon.
+ *
+ * Returns: (nullable) (type filename): the resource for the icon, or %NULL
+ *     if the icon is not represented by a resource.
+ */
+const gchar *
+gtk_icon_paintable_get_resource_path (GtkIconPaintable *icon)
+{
+  g_return_val_if_fail (icon != NULL, NULL);
+
+  if (icon->is_resource)
+    return icon->filename;
+  return NULL;
 }
 
 /**
diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h
index 2a3366b7d5..afc79e5a18 100644
--- a/gtk/gtkicontheme.h
+++ b/gtk/gtkicontheme.h
@@ -137,11 +137,13 @@ GDK_AVAILABLE_IN_ALL
 GType                 gtk_icon_paintable_get_type         (void) G_GNUC_CONST;
 
 GDK_AVAILABLE_IN_ALL
-const gchar *         gtk_icon_paintable_get_filename     (GtkIconPaintable  *self);
+const gchar *         gtk_icon_paintable_get_filename      (GtkIconPaintable  *self);
 GDK_AVAILABLE_IN_ALL
-const gchar *         gtk_icon_paintable_get_icon_name    (GtkIconPaintable  *self);
+const gchar *         gtk_icon_paintable_get_resource_path (GtkIconPaintable  *self);
 GDK_AVAILABLE_IN_ALL
-gboolean              gtk_icon_paintable_is_symbolic      (GtkIconPaintable  *self);
+const gchar *         gtk_icon_paintable_get_icon_name     (GtkIconPaintable  *self);
+GDK_AVAILABLE_IN_ALL
+gboolean              gtk_icon_paintable_is_symbolic       (GtkIconPaintable  *self);
 
 G_END_DECLS
 


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