diff options
author | Benjamin Otte <otte@redhat.com> | 2012-03-26 17:24:02 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-04-17 08:59:11 +0200 |
commit | 9b7640b898c61eb4ff49140880f2bb2b70eb9f0b (patch) | |
tree | 8549d2c0d73a7a70859210283ade4802e4d2f41e /gtk/gtkcssvalue.c | |
parent | 718ceaec450947b77a52318647a972591d183b5c (diff) | |
download | gtk+-9b7640b898c61eb4ff49140880f2bb2b70eb9f0b.tar.gz |
styleproperty: Make _gtk_style_property_parse_value() return a CssValue
Also split out initial/inherit handling into a custom GtkCssValue class.
Diffstat (limited to 'gtk/gtkcssvalue.c')
-rw-r--r-- | gtk/gtkcssvalue.c | 82 |
1 files changed, 69 insertions, 13 deletions
diff --git a/gtk/gtkcssvalue.c b/gtk/gtkcssvalue.c index 7bd1a55e45..a797f65534 100644 --- a/gtk/gtkcssvalue.c +++ b/gtk/gtkcssvalue.c @@ -183,6 +183,31 @@ _gtk_css_value_new_from_int (gint val) } GtkCssValue * +_gtk_css_value_new_from_enum (GType type, + gint val) +{ + GtkCssValue *value; + + g_return_val_if_fail (g_type_is_a (type, G_TYPE_ENUM), NULL); + + value = gtk_css_value_new (type); + value->u.gint = val; + + return value; +} + +GtkCssValue * +_gtk_css_value_new_from_double (double d) +{ + GtkCssValue *value; + + value = gtk_css_value_new (G_TYPE_DOUBLE); + value->u.dbl = d; + + return value; +} + +GtkCssValue * _gtk_css_value_new_take_string (char *string) { GtkCssValue *value; @@ -193,6 +218,17 @@ _gtk_css_value_new_take_string (char *string) return value; } +GtkCssValue * +_gtk_css_value_new_take_strv (char **strv) +{ + GtkCssValue *value; + + value = gtk_css_value_new (G_TYPE_STRV); + value->u.ptr = strv; + + return value; +} + static gpointer g_boxed_copy0 (GType boxed_type, gconstpointer src_boxed) @@ -236,6 +272,17 @@ _gtk_css_value_new_take_image (GtkCssImage *v) } GtkCssValue * +_gtk_css_value_new_take_binding_sets (GPtrArray *array) +{ + GtkCssValue *value; + + value = gtk_css_value_new (G_TYPE_PTR_ARRAY); + value->u.ptr = array; + + return value; +} + +GtkCssValue * _gtk_css_value_new_from_number (const GtkCssNumber *v) { GtkCssValue *value; @@ -323,6 +370,28 @@ _gtk_css_value_new_from_background_position (const GtkCssBackgroundPosition *v) } GtkCssValue * +_gtk_css_value_new_from_border_corner_radius (const GtkCssBorderCornerRadius *v) +{ + GtkCssValue *value; + + value = gtk_css_value_new (GTK_TYPE_CSS_BORDER_CORNER_RADIUS); + value->u.ptr = g_boxed_copy0 (GTK_TYPE_CSS_BORDER_CORNER_RADIUS, v); + + return value; +} + +GtkCssValue * +_gtk_css_value_new_from_border_style (GtkBorderStyle style) +{ + GtkCssValue *value; + + value = gtk_css_value_new (GTK_TYPE_BORDER_STYLE); + value->u.gint = style; + + return value; +} + +GtkCssValue * _gtk_css_value_new_take_symbolic_color (GtkSymbolicColor *v) { GtkCssValue *value; @@ -434,19 +503,6 @@ _gtk_css_value_init_gvalue (const GtkCssValue *value, } } -gboolean -_gtk_css_value_is_special (const GtkCssValue *value) -{ - return _gtk_css_value_holds (value, GTK_TYPE_CSS_SPECIAL_VALUE); -} - -GtkCssSpecialValue -_gtk_css_value_get_special_kind (const GtkCssValue *value) -{ - g_return_val_if_fail (_gtk_css_value_holds (value, GTK_TYPE_CSS_SPECIAL_VALUE), 0); - return value->u.gint; -} - const GtkCssNumber * _gtk_css_value_get_number (const GtkCssValue *value) { |