mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-07 01:00:28 +00:00
GtkCssProvider: Parse alpha() symbolic colors.
The "alpha" symbolic color modifies a passed color's alpha by a factor, the syntax would accept things like: background-color: alpha (@bg_color, 0.8); foreground-color: alpha (shade (@fg_color, 0.8), 0.5);
This commit is contained in:
parent
ca44965f33
commit
51b742044a
@ -1583,12 +1583,19 @@ symbolic_color_parse_str (const gchar *string,
|
|||||||
|
|
||||||
*end_ptr = (gchar *) end;
|
*end_ptr = (gchar *) end;
|
||||||
}
|
}
|
||||||
else if (g_str_has_prefix (str, "shade"))
|
else if (g_str_has_prefix (str, "shade") ||
|
||||||
|
g_str_has_prefix (str, "alpha"))
|
||||||
{
|
{
|
||||||
GtkSymbolicColor *param_color;
|
GtkSymbolicColor *param_color;
|
||||||
|
gboolean is_shade = FALSE;
|
||||||
gdouble factor;
|
gdouble factor;
|
||||||
|
|
||||||
str += strlen ("shade");
|
is_shade = g_str_has_prefix (str, "shade");
|
||||||
|
|
||||||
|
if (is_shade)
|
||||||
|
str += strlen ("shade");
|
||||||
|
else
|
||||||
|
str += strlen ("alpha");
|
||||||
|
|
||||||
SKIP_SPACES (str);
|
SKIP_SPACES (str);
|
||||||
|
|
||||||
@ -1629,7 +1636,11 @@ symbolic_color_parse_str (const gchar *string,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
symbolic_color = gtk_symbolic_color_new_shade (param_color, factor);
|
if (is_shade)
|
||||||
|
symbolic_color = gtk_symbolic_color_new_shade (param_color, factor);
|
||||||
|
else
|
||||||
|
symbolic_color = gtk_symbolic_color_new_alpha (param_color, factor);
|
||||||
|
|
||||||
gtk_symbolic_color_unref (param_color);
|
gtk_symbolic_color_unref (param_color);
|
||||||
(*end_ptr)++;
|
(*end_ptr)++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user