stylecontext: add gtk_render_icon()

This commit is contained in:
Cosimo Cecchi 2011-05-24 20:59:50 -04:00 committed by Benjamin Otte
parent 0cd810ff7c
commit 514e77581a
4 changed files with 48 additions and 0 deletions

View File

@ -5642,6 +5642,7 @@ gtk_render_option
gtk_render_slider
gtk_render_activity
gtk_render_icon_pixbuf
gtk_render_icon
<SUBSECTION Standard>
GTK_TYPE_STYLE_CONTEXT

View File

@ -2230,6 +2230,7 @@ gtk_render_focus
gtk_render_frame
gtk_render_frame_gap
gtk_render_handle
gtk_render_icon
gtk_render_icon_pixbuf
gtk_render_layout
gtk_render_line

View File

@ -4366,3 +4366,44 @@ gtk_render_icon_pixbuf (GtkStyleContext *context,
_gtk_theming_engine_set_context (priv->theming_engine, context);
return engine_class->render_icon_pixbuf (priv->theming_engine, source, size);
}
/**
* gtk_render_icon:
* @context: a #GtkStyleContext
* @cr: a #cairo_t
* @pixbuf: a #GdkPixbuf containing the icon to draw
* @x: X position for the @pixbuf
* @y: Y position for the @pixbuf
*
* Renders the icon in @pixbuf at the specified @x and @y coordinates.
*
* Since: 3.2
**/
void
gtk_render_icon (GtkStyleContext *context,
cairo_t *cr,
GdkPixbuf *pixbuf,
gdouble x,
gdouble y)
{
GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
cairo_save (cr);
store_animation_region (context,
x, y,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_icon (priv->theming_engine, cr, pixbuf, x, y);
cairo_restore (cr);
}

View File

@ -745,6 +745,11 @@ void gtk_render_activity (GtkStyleContext *context,
GdkPixbuf * gtk_render_icon_pixbuf (GtkStyleContext *context,
const GtkIconSource *source,
GtkIconSize size);
void gtk_render_icon (GtkStyleContext *context,
cairo_t *cr,
GdkPixbuf *pixbuf,
gdouble x,
gdouble y);
G_END_DECLS