diff options
-rw-r--r-- | docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt | 1 | ||||
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf-core.h | 1 | ||||
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf.c | 36 | ||||
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf.symbols | 1 |
4 files changed, 39 insertions, 0 deletions
diff --git a/docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt b/docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt index 17da421c1..823a5c819 100644 --- a/docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt +++ b/docs/reference/gdk-pixbuf/gdk-pixbuf-sections.txt @@ -36,6 +36,7 @@ gdk_pixbuf_get_height gdk_pixbuf_get_rowstride gdk_pixbuf_get_byte_length gdk_pixbuf_get_option +gdk_pixbuf_get_options gdk_pixbuf_read_pixels <SUBSECTION Standard> diff --git a/gdk-pixbuf/gdk-pixbuf-core.h b/gdk-pixbuf/gdk-pixbuf-core.h index b152aa911..b131255a1 100644 --- a/gdk-pixbuf/gdk-pixbuf-core.h +++ b/gdk-pixbuf/gdk-pixbuf-core.h @@ -465,6 +465,7 @@ GdkPixbuf *gdk_pixbuf_apply_embedded_orientation (GdkPixbuf *src); const gchar * gdk_pixbuf_get_option (GdkPixbuf *pixbuf, const gchar *key); +GHashTable * gdk_pixbuf_get_options (GdkPixbuf *pixbuf); G_END_DECLS diff --git a/gdk-pixbuf/gdk-pixbuf.c b/gdk-pixbuf/gdk-pixbuf.c index 6ea8a1bf7..b17190bd7 100644 --- a/gdk-pixbuf/gdk-pixbuf.c +++ b/gdk-pixbuf/gdk-pixbuf.c @@ -926,6 +926,42 @@ gdk_pixbuf_get_option (GdkPixbuf *pixbuf, } /** + * gdk_pixbuf_get_options: + * @pixbuf: a #GdkPixbuf + * + * Returns a #GHashTable with a list of all the options that may have been + * attached to the @pixbuf when it was loaded, or that may have been + * attached by another function using gdk_pixbuf_set_option(). + * + * See gdk_pixbuf_get_option() for more details. + * + * Return value: (transfer container): a #GHashTable of key/values + * + * Since: 2.32 + **/ +GHashTable * +gdk_pixbuf_get_options (GdkPixbuf *pixbuf) +{ + GHashTable *ht; + gchar **options; + + g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); + + ht = g_hash_table_new (g_str_hash, g_str_equal); + + options = g_object_get_qdata (G_OBJECT (pixbuf), + g_quark_from_static_string ("gdk_pixbuf_options")); + if (options) { + gint i; + + for (i = 0; options[2*i]; i++) + g_hash_table_insert (ht, options[2*i], options[2*i+1]); + } + + return ht; +} + +/** * gdk_pixbuf_set_option: * @pixbuf: a #GdkPixbuf * @key: a nul-terminated string. diff --git a/gdk-pixbuf/gdk-pixbuf.symbols b/gdk-pixbuf/gdk-pixbuf.symbols index 4117f0286..1532535c0 100644 --- a/gdk-pixbuf/gdk-pixbuf.symbols +++ b/gdk-pixbuf/gdk-pixbuf.symbols @@ -31,6 +31,7 @@ gdk_pixbuf_get_byte_length gdk_pixbuf_get_rowstride gdk_pixbuf_get_width gdk_pixbuf_get_option +gdk_pixbuf_get_options gdk_pixbuf_copy gdk_pixbuf_new_subpixbuf gdk_pixbuf_fill |