diff options
author | Benjamin Otte <otte@redhat.com> | 2012-01-14 04:18:29 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2012-02-02 03:13:38 +0100 |
commit | 25affd47661a4b4a309ac314a1a2c4f94bc3795c (patch) | |
tree | cb3cb619bd5353db5ac1f885289341b04403d11e /gtk/gtkcsscustomproperty.c | |
parent | c2fb3158784f092782dbcfc09a4338299be64922 (diff) | |
download | gtk+-25affd47661a4b4a309ac314a1a2c4f94bc3795c.tar.gz |
css: Create SymbolicColor fallback properties for colors
Diffstat (limited to 'gtk/gtkcsscustomproperty.c')
-rw-r--r-- | gtk/gtkcsscustomproperty.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/gtk/gtkcsscustomproperty.c b/gtk/gtkcsscustomproperty.c index 266544be48..fcb8a0f9c7 100644 --- a/gtk/gtkcsscustomproperty.c +++ b/gtk/gtkcsscustomproperty.c @@ -77,21 +77,32 @@ _gtk_css_custom_property_init (GtkCssCustomProperty *custom_property) { } +static GType +gtk_css_custom_property_get_specified_type (GParamSpec *pspec) +{ + if (pspec->value_type == GDK_TYPE_RGBA || + pspec->value_type == GDK_TYPE_COLOR) + return GTK_TYPE_SYMBOLIC_COLOR; + else + return pspec->value_type; +} + static void gtk_css_custom_property_create_initial_value (GParamSpec *pspec, GValue *value) { - g_value_init (value, pspec->value_type); + g_value_init (value, gtk_css_custom_property_get_specified_type (pspec)); if (pspec->value_type == GTK_TYPE_THEMING_ENGINE) g_value_set_object (value, gtk_theming_engine_load (NULL)); else if (pspec->value_type == PANGO_TYPE_FONT_DESCRIPTION) g_value_take_boxed (value, pango_font_description_from_string ("Sans 10")); - else if (pspec->value_type == GDK_TYPE_RGBA) + else if (pspec->value_type == GDK_TYPE_RGBA || + pspec->value_type == GDK_TYPE_COLOR) { GdkRGBA color; gdk_rgba_parse (&color, "pink"); - g_value_set_boxed (value, &color); + g_value_take_boxed (value, gtk_symbolic_color_new_literal (&color)); } else if (pspec->value_type == GTK_TYPE_BORDER) { |