From: Paolo Borelli Date: Sun, 5 Jul 2015 21:24:49 +0000 (+0200) Subject: css: add shorthand text-decoration property X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~24^2~9134 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=180a378a073d24339dbec53874cf53e082cbb831;p=gtk4.git css: add shorthand text-decoration property Note that for now we take into account only text-decoration-line and text-decoration-color --- diff --git a/gtk/gtkcssshorthandpropertyimpl.c b/gtk/gtkcssshorthandpropertyimpl.c index 9bc780dc6e..61afcc6946 100644 --- a/gtk/gtkcssshorthandpropertyimpl.c +++ b/gtk/gtkcssshorthandpropertyimpl.c @@ -823,6 +823,38 @@ parse_animation (GtkCssShorthandProperty *shorthand, return TRUE; } +static gboolean +parse_text_decoration (GtkCssShorthandProperty *shorthand, + GtkCssValue **values, + GtkCssParser *parser) +{ + do + { + if (values[0] == NULL && + (values[0] = _gtk_css_text_decoration_line_value_try_parse (parser))) + { + if (values[0] == NULL) + return FALSE; + } + else if (values[1] == NULL) + { + values[1] = _gtk_css_color_value_parse (parser); + if (values[1] == NULL) + return FALSE; + } + else + { + /* We parsed and there's still stuff left? + * Pretend we didn't notice and let the normal code produce + * a 'junk at end of value' error */ + break; + } + } + while (!value_is_done_parsing (parser)); + + return TRUE; +} + static gboolean parse_all (GtkCssShorthandProperty *shorthand, GtkCssValue **values, @@ -1170,6 +1202,7 @@ _gtk_css_shorthand_property_init_properties (void) const char *transition_subproperties[] = { "transition-property", "transition-duration", "transition-delay", "transition-timing-function", NULL }; const char *animation_subproperties[] = { "animation-name", "animation-iteration-count", "animation-duration", "animation-delay", "animation-timing-function", "animation-direction", "animation-fill-mode", NULL }; + const char *text_decoration_subproperties[] = { "text-decoration-line", "text-decoration-color", NULL }; const char **all_subproperties; @@ -1281,6 +1314,12 @@ _gtk_css_shorthand_property_init_properties (void) parse_animation, NULL, NULL); + _gtk_css_shorthand_property_register ("text-decoration", + G_TYPE_NONE, + text_decoration_subproperties, + parse_text_decoration, + NULL, + NULL); all_subproperties = get_all_subproperties (); _gtk_css_shorthand_property_register ("all",