iconhelper: refactor some code into a single function

https://bugzilla.gnome.org/show_bug.cgi?id=705443
This commit is contained in:
Cosimo Cecchi 2013-08-04 16:56:37 +02:00
parent 19c5a00f3a
commit 417d6666e5

View File

@ -178,6 +178,36 @@ ensure_icon_size (GtkIconHelper *self,
*height_out = height;
}
static GdkPixbuf *
ensure_stated_pixbuf_from_pixbuf (GtkIconHelper *self,
GtkStyleContext *context,
GdkPixbuf *pixbuf)
{
GdkPixbuf *rendered;
GtkIconSource *source;
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
/* FIXME: use gtk_icon_info_load_icon? */
source = gtk_icon_source_new ();
gtk_icon_source_set_pixbuf (source, pixbuf);
/* The size here is arbitrary; since size isn't
* wildcarded in the source, it isn't supposed to be
* scaled by the engine function
*/
gtk_icon_source_set_size (source,
GTK_ICON_SIZE_SMALL_TOOLBAR);
gtk_icon_source_set_size_wildcarded (source, FALSE);
rendered = gtk_render_icon_pixbuf (context, source, (GtkIconSize) -1);
gtk_icon_source_free (source);
G_GNUC_END_IGNORE_DEPRECATIONS;
return rendered;
}
static GdkPixbuf *
ensure_stated_icon_from_info (GtkIconHelper *self,
GtkStyleContext *context,
@ -210,28 +240,9 @@ ensure_stated_icon_from_info (GtkIconHelper *self,
}
else if (!symbolic)
{
GtkIconSource *source;
GdkPixbuf *rendered;
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
/* FIXME: use gtk_icon_info_load_icon? */
source = gtk_icon_source_new ();
gtk_icon_source_set_pixbuf (source, destination);
/* The size here is arbitrary; since size isn't
* wildcarded in the source, it isn't supposed to be
* scaled by the engine function
*/
gtk_icon_source_set_size (source,
GTK_ICON_SIZE_SMALL_TOOLBAR);
gtk_icon_source_set_size_wildcarded (source, FALSE);
rendered = gtk_render_icon_pixbuf (context, source, (GtkIconSize) -1);
gtk_icon_source_free (source);
G_GNUC_END_IGNORE_DEPRECATIONS;
rendered = ensure_stated_pixbuf_from_pixbuf (self, context, destination);
g_object_unref (destination);
destination = rendered;
}
@ -653,26 +664,9 @@ ensure_stated_surface_from_info (GtkIconHelper *self,
}
else if (!symbolic)
{
GtkIconSource *source;
GdkPixbuf *rendered;
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
source = gtk_icon_source_new ();
gtk_icon_source_set_pixbuf (source, destination);
/* The size here is arbitrary; since size isn't
* wildcarded in the source, it isn't supposed to be
* scaled by the engine function
*/
gtk_icon_source_set_size (source,
GTK_ICON_SIZE_SMALL_TOOLBAR);
gtk_icon_source_set_size_wildcarded (source, FALSE);
rendered = gtk_render_icon_pixbuf (context, source, (GtkIconSize) -1);
gtk_icon_source_free (source);
G_GNUC_END_IGNORE_DEPRECATIONS;
rendered = ensure_stated_pixbuf_from_pixbuf (self, context, destination);
g_object_unref (destination);
destination = rendered;
}