#include "gtkcssshadowvalueprivate.h"
#include "gtkcairoblurprivate.h"
+#include "gtkcsscolorvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkstylecontextprivate.h"
-#include "gtksymboliccolorprivate.h"
#include "gtkthemingengineprivate.h"
#include "gtkpango.h"
}
static GtkCssValue *
-gtk_css_value_shadow_compute (GtkCssValue *shadow,
- guint property_id,
- GtkStyleContext *context,
- GtkCssDependencies *dependencies)
+gtk_css_value_shadow_compute (GtkCssValue *shadow,
+ guint property_id,
+ GtkStyleProviderPrivate *provider,
+ GtkCssComputedValues *values,
+ GtkCssComputedValues *parent_values,
+ GtkCssDependencies *dependencies)
{
GtkCssValue *hoffset, *voffset, *radius, *spread, *color;
GtkCssDependencies child_deps;
child_deps = 0;
- hoffset = _gtk_css_value_compute (shadow->hoffset, property_id, context, &child_deps);
+ hoffset = _gtk_css_value_compute (shadow->hoffset, property_id, provider, values, parent_values, &child_deps);
*dependencies = _gtk_css_dependencies_union (*dependencies, child_deps);
child_deps = 0;
- voffset = _gtk_css_value_compute (shadow->voffset, property_id, context, &child_deps);
+ voffset = _gtk_css_value_compute (shadow->voffset, property_id, provider, values, parent_values, &child_deps);
*dependencies = _gtk_css_dependencies_union (*dependencies, child_deps);
child_deps = 0;
- radius = _gtk_css_value_compute (shadow->radius, property_id, context, &child_deps);
+ radius = _gtk_css_value_compute (shadow->radius, property_id, provider, values, parent_values, &child_deps);
*dependencies = _gtk_css_dependencies_union (*dependencies, child_deps);
child_deps = 0;
- spread = _gtk_css_value_compute (shadow->spread, property_id, context, &child_deps),
+ spread = _gtk_css_value_compute (shadow->spread, property_id, provider, values, parent_values, &child_deps),
*dependencies = _gtk_css_dependencies_union (*dependencies, child_deps);
child_deps = 0;
- color = _gtk_css_value_compute (shadow->color, property_id, context, &child_deps);
+ color = _gtk_css_value_compute (shadow->color, property_id, provider, values, parent_values, &child_deps);
*dependencies = _gtk_css_dependencies_union (*dependencies, child_deps);
return gtk_css_shadow_value_new (hoffset, voffset, radius, spread, shadow->inset, color);
}
else if (values[COLOR] == NULL)
{
- values[COLOR] = _gtk_css_symbolic_value_new (parser);
+ values[COLOR] = _gtk_css_color_value_parse (parser);
if (values[COLOR] == NULL)
goto fail;
while (values[HOFFSET] == NULL || !value_is_done_parsing (parser));
if (values[COLOR] == NULL)
- values[COLOR] = _gtk_css_symbolic_value_new_take_symbolic_color (
- gtk_symbolic_color_ref (
- _gtk_symbolic_color_get_current_color ()));
+ values[COLOR] = _gtk_css_color_value_new_current_color ();
return gtk_css_shadow_value_new (values[HOFFSET], values[VOFFSET],
values[RADIUS], values[SPREAD],
cairo_paint (original_cr);
cairo_destroy (cr);
+ cairo_surface_destroy (surface);
return original_cr;
}
cairo_save (cr);
pattern = cairo_pattern_reference (cairo_get_source (cr));
+
+ cr = gtk_css_shadow_value_start_drawing (shadow, cr);
+
gdk_cairo_set_source_rgba (cr, _gtk_css_rgba_value_get_rgba (shadow->color));
cairo_translate (cr,
_gtk_css_number_value_get (shadow->voffset, 0));
cairo_mask (cr, pattern);
+ cr = gtk_css_shadow_value_finish_drawing (shadow, cr);
+
cairo_restore (cr);
cairo_pattern_destroy (pattern);
}
cairo_save (cr);
+ cr = gtk_css_shadow_value_start_drawing (shadow, cr);
+
cairo_translate (cr,
_gtk_css_number_value_get (shadow->hoffset, 0),
_gtk_css_number_value_get (shadow->voffset, 0));
radius, progress,
_gtk_css_rgba_value_get_rgba (shadow->color));
+ cr = gtk_css_shadow_value_finish_drawing (shadow, cr);
+
cairo_restore (cr);
}