css: Create SymbolicColor fallback properties for colors
This commit is contained in:
parent
c2fb315878
commit
25affd4766
@ -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
|
static void
|
||||||
gtk_css_custom_property_create_initial_value (GParamSpec *pspec,
|
gtk_css_custom_property_create_initial_value (GParamSpec *pspec,
|
||||||
GValue *value)
|
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)
|
if (pspec->value_type == GTK_TYPE_THEMING_ENGINE)
|
||||||
g_value_set_object (value, gtk_theming_engine_load (NULL));
|
g_value_set_object (value, gtk_theming_engine_load (NULL));
|
||||||
else if (pspec->value_type == PANGO_TYPE_FONT_DESCRIPTION)
|
else if (pspec->value_type == PANGO_TYPE_FONT_DESCRIPTION)
|
||||||
g_value_take_boxed (value, pango_font_description_from_string ("Sans 10"));
|
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;
|
GdkRGBA color;
|
||||||
gdk_rgba_parse (&color, "pink");
|
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)
|
else if (pspec->value_type == GTK_TYPE_BORDER)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user