[gtk/matthiasc/for-master: 3/8] cssshadowvalue: Add a parsing function




commit 1857f0f7bdaddafd47efe687a94c47468e2c2e53
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Feb 5 21:36:22 2021 -0500

    cssshadowvalue: Add a parsing function
    
    Add a variant of the parse function that parses
    just a single (non-box) shadow, as required for
    the drop-shadow filter.

 gtk/gtkcssshadowvalue.c        | 26 ++++++++++++++++++++++++++
 gtk/gtkcssshadowvalueprivate.h |  2 ++
 2 files changed, 28 insertions(+)
---
diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c
index a4fce1609a..3afc9592a0 100644
--- a/gtk/gtkcssshadowvalue.c
+++ b/gtk/gtkcssshadowvalue.c
@@ -327,6 +327,21 @@ gtk_css_shadow_value_new (ShadowValue *shadows,
   return retval;
 }
 
+GtkCssValue *
+gtk_css_shadow_value_new_filter (void)
+{
+  ShadowValue value;
+
+  value.inset = FALSE;
+  value.hoffset = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
+  value.voffset = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
+  value.radius = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
+  value.spread = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
+  value.color = _gtk_css_color_value_new_current_color ();
+
+  return gtk_css_shadow_value_new (&value, 1);
+}
+
 enum {
   HOFFSET,
   VOFFSET,
@@ -498,6 +513,17 @@ fail:
   return NULL;
 }
 
+GtkCssValue *
+gtk_css_shadow_value_parse_filter (GtkCssParser *parser)
+{
+  ShadowValue shadow;
+
+  if (gtk_css_shadow_value_parse_one (parser, FALSE, &shadow))
+    return gtk_css_shadow_value_new (&shadow, 1);
+  else
+    return NULL;
+}
+
 void
 gtk_css_shadow_value_get_extents (const GtkCssValue *value,
                                   GtkBorder         *border)
diff --git a/gtk/gtkcssshadowvalueprivate.h b/gtk/gtkcssshadowvalueprivate.h
index 6cd26d3a37..21efac1908 100644
--- a/gtk/gtkcssshadowvalueprivate.h
+++ b/gtk/gtkcssshadowvalueprivate.h
@@ -35,9 +35,11 @@
 G_BEGIN_DECLS
 
 GtkCssValue *   gtk_css_shadow_value_new_none         (void);
+GtkCssValue *   gtk_css_shadow_value_new_filter       (void);
 
 GtkCssValue *   gtk_css_shadow_value_parse            (GtkCssParser             *parser,
                                                        gboolean                  box_shadow_mode);
+GtkCssValue *   gtk_css_shadow_value_parse_filter     (GtkCssParser             *parser);
 
 void            gtk_css_shadow_value_get_extents      (const GtkCssValue        *shadow,
                                                        GtkBorder                *border);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]