GdkPixbuf * _gtk_icon_helper_ensure_pixbuf (GtkIconHelper *self, GtkStyleContext *context) { GdkPixbuf *pixbuf = NULL; GtkIconSet *icon_set; switch (self->priv->storage_type) { case GTK_IMAGE_SURFACE: ensure_pixbuf_from_surface (self, context); break; case GTK_IMAGE_PIXBUF: ensure_pixbuf_at_size (self, context); break; case GTK_IMAGE_STOCK: G_GNUC_BEGIN_IGNORE_DEPRECATIONS; icon_set = gtk_icon_factory_lookup_default (self->priv->stock_id); if (icon_set != NULL) ensure_pixbuf_for_icon_set (self, context, icon_set); else pixbuf = NULL; G_GNUC_END_IGNORE_DEPRECATIONS; break; case GTK_IMAGE_ICON_SET: icon_set = self->priv->icon_set; ensure_pixbuf_for_icon_set (self, context, icon_set); break; case GTK_IMAGE_ICON_NAME: case GTK_IMAGE_GICON: ensure_pixbuf_for_gicon (self, context); break; case GTK_IMAGE_ANIMATION: case GTK_IMAGE_EMPTY: default: pixbuf = NULL; break; } if (pixbuf == NULL && self->priv->rendered_pixbuf != NULL) pixbuf = g_object_ref (self->priv->rendered_pixbuf); return pixbuf; }
GdkPixbuf * _gtk_icon_helper_ensure_pixbuf (GtkIconHelper *self, GtkStyleContext *context) { GdkPixbuf *pixbuf = NULL; GtkIconSet *icon_set; switch (self->priv->storage_type) { case GTK_IMAGE_PIXBUF: pixbuf = g_object_ref (self->priv->orig_pixbuf); break; case GTK_IMAGE_STOCK: icon_set = gtk_style_context_lookup_icon_set (context, self->priv->stock_id); ensure_pixbuf_for_icon_set (self, context, icon_set); break; case GTK_IMAGE_ICON_SET: icon_set = self->priv->icon_set; ensure_pixbuf_for_icon_set (self, context, icon_set); break; case GTK_IMAGE_ICON_NAME: case GTK_IMAGE_GICON: ensure_pixbuf_for_icon_name_or_gicon (self, context); break; case GTK_IMAGE_ANIMATION: case GTK_IMAGE_EMPTY: default: pixbuf = NULL; break; } if (pixbuf == NULL && self->priv->rendered_pixbuf != NULL) pixbuf = g_object_ref (self->priv->rendered_pixbuf); return pixbuf; }