[gtk/matthiasc/for-master: 1/3] cssshadowvalue: Add a parsing function
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/matthiasc/for-master: 1/3] cssshadowvalue: Add a parsing function
- Date: Sat, 6 Feb 2021 02:38:45 +0000 (UTC)
commit de24b4f91b26627e01bb0c458cc5a229e85e2e51
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 | 31 +++++++++++++++++++++++++++++++
gtk/gtkcssshadowvalueprivate.h | 2 ++
2 files changed, 33 insertions(+)
---
diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c
index 126e9af8f2..b7b409ca72 100644
--- a/gtk/gtkcssshadowvalue.c
+++ b/gtk/gtkcssshadowvalue.c
@@ -326,6 +326,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,
@@ -497,6 +512,22 @@ fail:
return NULL;
}
+GtkCssValue *
+_gtk_css_shadow_value_parse_filter (GtkCssParser *parser)
+{
+ GtkCssValue *result;
+
+ result = _gtk_css_shadow_value_parse (parser, FALSE);
+
+ if (result && result->n_shadows != 1)
+ {
+ gtk_css_parser_error_syntax (parser, "A single shadow is required");
+ g_clear_pointer (&result, gtk_css_value_unref);
+ }
+
+ return result;
+}
+
void
gtk_css_shadow_value_get_extents (const GtkCssValue *value,
GtkBorder *border)
diff --git a/gtk/gtkcssshadowvalueprivate.h b/gtk/gtkcssshadowvalueprivate.h
index 5784dfa516..3f49963b5b 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]