diff options
author | Benjamin Otte <otte@redhat.com> | 2012-04-03 11:49:46 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-04-17 08:59:17 +0200 |
commit | ca17270187ba93eed687cbb223e23a1795736e08 (patch) | |
tree | f227b6d31224eae471a55a50a7c104ae37e39838 /gtk/gtkthemingengine.c | |
parent | c5878e8f6fe9931e2241ffe9eb501b8305d1bae4 (diff) | |
download | gtk+-ca17270187ba93eed687cbb223e23a1795736e08.tar.gz |
cssvalue: Make GtkCssShadowValue only hold one shadow
All the properties now are a GtkCssArrayValue of GtkCssSadowValue.
GtkCssArrayValue already does everything we want, so no need to
duplicate its funtionality.
Diffstat (limited to 'gtk/gtkthemingengine.c')
-rw-r--r-- | gtk/gtkthemingengine.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/gtk/gtkthemingengine.c b/gtk/gtkthemingengine.c index 27d290ccf2..cd7ecad9df 100644 --- a/gtk/gtkthemingengine.c +++ b/gtk/gtkthemingengine.c @@ -28,6 +28,7 @@ #include "gtkmodulesprivate.h" #include "gtkborderimageprivate.h" #include "gtkpango.h" +#include "gtkcssarrayvalueprivate.h" #include "gtkcssenumvalueprivate.h" #include "gtkcssrgbavalueprivate.h" #include "gtkcssshadowvalueprivate.h" @@ -2100,10 +2101,11 @@ gtk_theming_engine_render_layout (GtkThemingEngine *engine, PangoLayout *layout) { GdkRGBA fg_color; - GtkCssValue *text_shadow = NULL; + GtkCssValue *shadows; GtkStateFlags flags; gdouble progress; gboolean running; + guint i; cairo_save (cr); flags = gtk_theming_engine_get_state (engine); @@ -2132,11 +2134,14 @@ gtk_theming_engine_render_layout (GtkThemingEngine *engine, fg_color.alpha = CLAMP (fg_color.alpha + ((other_fg.alpha - fg_color.alpha) * progress), 0, 1); } - text_shadow = _gtk_theming_engine_peek_property (engine, GTK_CSS_PROPERTY_TEXT_SHADOW); + shadows = _gtk_theming_engine_peek_property (engine, GTK_CSS_PROPERTY_TEXT_SHADOW); prepare_context_for_layout (cr, x, y, layout); - _gtk_css_shadow_value_paint_layout (text_shadow, cr, layout); + for (i = 0; i < _gtk_css_array_value_get_n_values (shadows); i++) + { + _gtk_css_shadow_value_paint_layout (_gtk_css_array_value_get_nth (shadows, i), cr, layout); + } gdk_cairo_set_source_rgba (cr, &fg_color); pango_cairo_show_layout (cr, layout); @@ -2750,10 +2755,11 @@ render_spinner (GtkThemingEngine *engine, gdouble height) { GtkStateFlags state; - GtkCssValue *shadow; + GtkCssValue *shadows; GdkRGBA color; gdouble progress; gdouble radius; + guint i; state = gtk_theming_engine_get_state (engine); @@ -2763,14 +2769,18 @@ render_spinner (GtkThemingEngine *engine, radius = MIN (width / 2, height / 2); gtk_theming_engine_get_color (engine, state, &color); - shadow = _gtk_theming_engine_peek_property (engine, GTK_CSS_PROPERTY_ICON_SHADOW); + shadows = _gtk_theming_engine_peek_property (engine, GTK_CSS_PROPERTY_ICON_SHADOW); cairo_save (cr); cairo_translate (cr, x + width / 2, y + height / 2); - _gtk_css_shadow_value_paint_spinner (shadow, cr, - radius, - progress); + for (i = 0; i < _gtk_css_array_value_get_n_values (shadows); i++) + { + _gtk_css_shadow_value_paint_spinner (_gtk_css_array_value_get_nth (shadows, i), + cr, + radius, + progress); + } _gtk_theming_engine_paint_spinner (cr, radius, @@ -2937,11 +2947,18 @@ gtk_theming_engine_render_icon (GtkThemingEngine *engine, gdouble x, gdouble y) { + GtkCssValue *shadows; + guint i; + cairo_save (cr); gdk_cairo_set_source_pixbuf (cr, pixbuf, x, y); - _gtk_css_shadow_value_paint_icon (_gtk_theming_engine_peek_property (engine, GTK_CSS_PROPERTY_ICON_SHADOW), cr); + shadows = _gtk_theming_engine_peek_property (engine, GTK_CSS_PROPERTY_ICON_SHADOW); + for (i = 0; i < _gtk_css_array_value_get_n_values (shadows); i++) + { + _gtk_css_shadow_value_paint_icon (_gtk_css_array_value_get_nth (shadows, i), cr); + } cairo_paint (cr); |