From c45f8b1a25c4ef06773c06d30c30199097d29d96 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 19 Nov 2016 20:13:54 +0100 Subject: cssshadows: Reengineer API This way we have an API to query extents per shadow and I want that in the next patch. --- gtk/gtkcssshadowvalue.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'gtk/gtkcssshadowvalue.c') diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c index eb8fc9e658..a17b213e3d 100644 --- a/gtk/gtkcssshadowvalue.c +++ b/gtk/gtkcssshadowvalue.c @@ -605,23 +605,21 @@ _gtk_css_shadow_value_get_inset (const GtkCssValue *shadow) } void -_gtk_css_shadow_value_get_geometry (const GtkCssValue *shadow, - gdouble *hoffset, - gdouble *voffset, - gdouble *radius, - gdouble *spread) +gtk_css_shadow_value_get_extents (const GtkCssValue *shadow, + GtkBorder *border) { - g_return_if_fail (shadow->class == >K_CSS_VALUE_SHADOW); + gdouble hoffset, voffset, spread, radius, clip_radius; - if (hoffset != NULL) - *hoffset = _gtk_css_number_value_get (shadow->hoffset, 0); - if (voffset != NULL) - *voffset = _gtk_css_number_value_get (shadow->voffset, 0); + spread = _gtk_css_number_value_get (shadow->spread, 0); + radius = _gtk_css_number_value_get (shadow->radius, 0); + clip_radius = _gtk_cairo_blur_compute_pixels (radius); + hoffset = _gtk_css_number_value_get (shadow->hoffset, 0); + voffset = _gtk_css_number_value_get (shadow->voffset, 0); - if (radius != NULL) - *radius = _gtk_css_number_value_get (shadow->radius, 0); - if (spread != NULL) - *spread = _gtk_css_number_value_get (shadow->spread, 0); + border->top = MAX (0, ceil (clip_radius + spread - voffset)); + border->right = MAX (0, ceil (clip_radius + spread + hoffset)); + border->bottom = MAX (0, ceil (clip_radius + spread + voffset)); + border->left = MAX (0, ceil (clip_radius + spread - hoffset)); } static gboolean -- cgit v1.2.1