diff options
author | Benjamin Otte <otte@redhat.com> | 2012-01-02 02:33:56 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-01-09 18:37:54 +0100 |
commit | 13aac54d19962121df5166f439547f8887357697 (patch) | |
tree | 321410c25bb1c471e1dcbe703e71184ea464bcda | |
parent | 148d8fbca87f435140b3bd6f6a94e590b3d7b782 (diff) | |
download | gtk+-13aac54d19962121df5166f439547f8887357697.tar.gz |
shorthand: Implement border parsing with new parse func
-rw-r--r-- | gtk/gtkcssshorthandpropertyimpl.c | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/gtk/gtkcssshorthandpropertyimpl.c b/gtk/gtkcssshorthandpropertyimpl.c index d303643018..7d627cb7a1 100644 --- a/gtk/gtkcssshorthandpropertyimpl.c +++ b/gtk/gtkcssshorthandpropertyimpl.c @@ -37,6 +37,40 @@ /*** PARSING ***/ static gboolean +parse_border (GtkCssShorthandProperty *shorthand, + GValue *values, + GtkCssParser *parser, + GFile *base) +{ + GValue temp = G_VALUE_INIT; + GtkBorder *border; + + g_value_init (&temp, GTK_TYPE_BORDER); + if (!_gtk_css_style_parse_value (&temp, parser, base)) + { + g_value_unset (&temp); + return FALSE; + } + + border = g_value_get_boxed (&temp); + + g_value_init (&values[0], G_TYPE_INT); + g_value_init (&values[1], G_TYPE_INT); + g_value_init (&values[2], G_TYPE_INT); + g_value_init (&values[3], G_TYPE_INT); + g_value_set_int (&values[0], border->top); + g_value_set_int (&values[1], border->right); + g_value_set_int (&values[2], border->bottom); + g_value_set_int (&values[3], border->left); + + g_value_unset (&temp); + + return TRUE; +} + +/*** OLD PARSING ***/ + +static gboolean border_image_value_parse (GtkCssParser *parser, GFile *base, GValue *value) @@ -648,6 +682,7 @@ _gtk_css_shorthand_property_register (const char *name, void _gtk_css_shorthand_property_init_properties (void) { + /* The order is important here, be careful when changing it */ const char *font_subproperties[] = { "font-family", "font-style", "font-variant", "font-weight", "font-size", NULL }; const char *margin_subproperties[] = { "margin-top", "margin-right", "margin-bottom", "margin-left", NULL }; const char *padding_subproperties[] = { "padding-top", "padding-right", "padding-bottom", "padding-left", NULL }; @@ -667,21 +702,21 @@ _gtk_css_shorthand_property_init_properties (void) _gtk_css_shorthand_property_register ("margin", GTK_TYPE_BORDER, margin_subproperties, - NULL, + parse_border, unpack_margin, pack_margin, NULL); _gtk_css_shorthand_property_register ("padding", GTK_TYPE_BORDER, padding_subproperties, - NULL, + parse_border, unpack_padding, pack_padding, NULL); _gtk_css_shorthand_property_register ("border-width", GTK_TYPE_BORDER, border_width_subproperties, - NULL, + parse_border, unpack_border_width, pack_border_width, NULL); |