summaryrefslogtreecommitdiff
path: root/gtk/gtkthemingengine.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2012-04-03 11:49:46 +0200
committerBenjamin Otte <otte@redhat.com>2012-04-17 08:59:17 +0200
commitca17270187ba93eed687cbb223e23a1795736e08 (patch)
treef227b6d31224eae471a55a50a7c104ae37e39838 /gtk/gtkthemingengine.c
parentc5878e8f6fe9931e2241ffe9eb501b8305d1bae4 (diff)
downloadgtk+-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.c35
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);