[gtk+] image: Make gtk_image_new_from_resource() load animations
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] image: Make gtk_image_new_from_resource() load animations
- Date: Fri, 1 Feb 2013 16:47:34 +0000 (UTC)
commit d1c642d1f54e5b3045ffdd7e5fb2b24bf3cb18ec
Author: Benjamin Otte <otte redhat com>
Date: Wed Jan 30 16:24:39 2013 +0100
image: Make gtk_image_new_from_resource() load animations
Requires new gdk-pixbuf APIs to load animations from resources.
configure.ac | 2 +-
gtk/gtkimage.c | 19 ++++++++-----------
2 files changed, 9 insertions(+), 12 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 6ccae17..6b9e4ac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,7 +46,7 @@ m4_define([glib_required_version], [2.35.3])
m4_define([pango_required_version], [1.32.4])
m4_define([atk_required_version], [2.5.3])
m4_define([cairo_required_version], [1.10.0])
-m4_define([gdk_pixbuf_required_version], [2.26.0])
+m4_define([gdk_pixbuf_required_version], [2.27.1])
m4_define([introspection_required_version], [1.32.0])
GLIB_REQUIRED_VERSION=glib_required_version
PANGO_REQUIRED_VERSION=pango_required_version
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c
index 5b0ae66..d373b51 100644
--- a/gtk/gtkimage.c
+++ b/gtk/gtkimage.c
@@ -815,8 +815,7 @@ gtk_image_set_from_resource (GtkImage *image,
const gchar *resource_path)
{
GtkImagePrivate *priv;
- GdkPixbuf *pixbuf = NULL;
- GInputStream *stream;
+ GdkPixbufAnimation *animation;
g_return_if_fail (GTK_IS_IMAGE (image));
@@ -832,14 +831,9 @@ gtk_image_set_from_resource (GtkImage *image,
return;
}
- stream = g_resources_open_stream (resource_path, 0, NULL);
- if (stream != NULL)
- {
- pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, NULL);
- g_object_unref (stream);
- }
+ animation = gdk_pixbuf_animation_new_from_resource (resource_path, NULL);
- if (pixbuf == NULL)
+ if (animation == NULL)
{
gtk_image_set_from_stock (image,
GTK_STOCK_MISSING_IMAGE,
@@ -850,11 +844,14 @@ gtk_image_set_from_resource (GtkImage *image,
priv->resource_path = g_strdup (resource_path);
- gtk_image_set_from_pixbuf (image, pixbuf);
+ if (gdk_pixbuf_animation_is_static_image (animation))
+ gtk_image_set_from_pixbuf (image, gdk_pixbuf_animation_get_static_image (animation));
+ else
+ gtk_image_set_from_animation (image, animation);
g_object_notify (G_OBJECT (image), "resource");
- g_object_unref (pixbuf);
+ g_object_unref (animation);
g_object_thaw_notify (G_OBJECT (image));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]