GtkStyleContext: Add gtk_style_context_set_background().

This function replaces gtk_style_set_background().
This commit is contained in:
Carlos Garnacho 2010-11-09 21:24:41 +01:00
parent d9664021cc
commit 3f12fc2bd8
3 changed files with 46 additions and 0 deletions

View File

@ -5419,6 +5419,7 @@ gtk_style_context_push_animatable_region
gtk_style_context_remove_provider
gtk_style_context_remove_provider_for_screen
gtk_style_context_reset_widgets
gtk_style_context_set_background
gtk_style_context_restore
gtk_style_context_save
gtk_style_context_set_direction

View File

@ -2743,6 +2743,48 @@ gtk_style_context_invalidate (GtkStyleContext *context)
priv->invalidating_context = FALSE;
}
/**
* gtk_style_context_set_background:
* @context: a #GtkStyleContext
* @window: a #GdkWindow
*
* Sets the background of @window to the background pattern or
* color specified in @context for its current state.
*
* Since: 3.0
**/
void
gtk_style_context_set_background (GtkStyleContext *context,
GdkWindow *window)
{
GtkStateFlags state;
cairo_pattern_t *pattern;
GdkRGBA *color;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (GDK_IS_WINDOW (window));
state = gtk_style_context_get_state (context);
gtk_style_context_get (context, state,
"background-image", &pattern,
NULL);
if (pattern)
{
gdk_window_set_background_pattern (window, pattern);
cairo_pattern_destroy (pattern);
return;
}
gtk_style_context_get (context, state,
"background-color", &color,
NULL);
if (color)
{
gdk_window_set_background_rgba (window, color);
gdk_rgba_free (color);
}
}
/* Paint methods */
/**

View File

@ -362,6 +362,9 @@ void gtk_style_context_state_transition_stop (GtkStyleContext *context,
void gtk_style_context_invalidate (GtkStyleContext *context);
void gtk_style_context_reset_widgets (GdkScreen *screen);
void gtk_style_context_set_background (GtkStyleContext *context,
GdkWindow *window);
/* Paint methods */
void gtk_render_check (GtkStyleContext *context,
cairo_t *cr,