Compare commits

...

20 Commits

Author SHA1 Message Date
Matthias Clasen 4f6ea7c418 wip: static values
Determine whether a css value is 'static' at creation
time. Static values don't need to have compute() called,
since their value is always the same, so we can just
ref them.
2020-01-10 14:50:13 -05:00
Timm Bäder ba8f39a90a Remove GtkCssRgbaValue
The differenciation between a literal color value and an RGBA value
caused problems in various situations. Just treat the two the same but
don't allow access to the rgba value of a non-literal color value.
2020-01-10 14:50:13 -05:00
Matthias Clasen 6d17e74d0e Fix up css parser tests
Some css parser tests were relying on the parser preserving
some units. Update them. The numbers look uglier this way,
but they are the same numbers the css machinery was using
anyway.
2020-01-10 14:50:13 -05:00
Matthias Clasen 9ab78cd215 css: Do more computation ahead of time
The computation we do for angles and times does not
depend on the context, and can be done at creation
time.
2020-01-10 14:50:13 -05:00
Matthias Clasen 8ae8fe9e4c update css parser test results
We now print colors differently in some places.
2020-01-10 14:50:13 -05:00
Matthias Clasen d63a729ab1 css: Make the common font size singletons 2020-01-10 14:50:13 -05:00
Matthias Clasen 444323244c dump css value stats 2020-01-10 14:50:13 -05:00
Matthias Clasen ce44bd7fa4 css: Simplify compute for font variations
Just like font features, font variations are stored
as a hash table mapping strings to pure number values,
which never change during compute.
2020-01-10 14:50:13 -05:00
Matthias Clasen 3568a591f1 css: Simplify compute for font features
Font features consist of a hash table of number
values, which will never change during compute,
so there is no point in recreating a new value
with a copy of the hash table, constaining the
same string->number mapping.
2020-01-10 14:50:13 -05:00
Matthias Clasen 1577db0092 Add opaque black singleton 2020-01-10 14:50:13 -05:00
Matthias Clasen ea7ab799ad dimension: Improve the coverage of singletons
The values 5px, 6px, 7px, 0.15s, 0.2s and 0.3s
all show up in high numbers.
2020-01-10 14:50:13 -05:00
Timm Bäder 6535af8424 cssshadowvalue: Treat one shadow like multiple shadows
If we create a GtkCssShadowsValue for just one shadow, just return that
show value instead and allow calls on GtkCssShadowsValue API on one
shadow. That saves us around 480 GtkCssShadowsValue instances in the
widget factory.

css value stats before:

GtkCssColorValue: 1452
GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssArrayValue: 143
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
SUM: 7872

and after:

GtkCssShadowsValue: 107
GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssArrayValue: 143
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2764
GtkCssColorValue: 1452
GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 883
SUM: 7395

7872 to 7395 is a 477 reduction (6.0%)
2020-01-10 14:06:55 -05:00
Timm Bäder 7821cb1417 csssshadwovalue: Remove unused function prototype 2020-01-10 14:06:55 -05:00
Timm Bäder 8c50312abf cssnumbervalue: Add early-outs to transition code
we don't need to do the calculation at all if the progress is 0 or 1
anyway.

We also sometimes transition from 0 to 0 etc., so we can short-circuit
that as well by doing the fast pointer-equality check and relying on the
singletons.
2020-01-10 14:06:55 -05:00
Timm Bäder 723010ed09 csscornervalue: Accept other values if x == y
Most corners are square, so x == y. In that case, just accept either of
them. This makes the corner value unnecessary.

In fact none of the corner values in the widget-factory are needed, so
this spares us around 500 corner value allocations.

css value stats before:

GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssCornerValue: 556
GtkCssArrayValue: 143
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
GtkCssColorValue: 1452
GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
SUM: 8428

and after:

GtkCssColorValue: 1452
GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssArrayValue: 143
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
SUM: 7872

8428 to 7872 is a 556 reduction (6.5%)
2020-01-10 14:06:55 -05:00
Timm Bäder f0affa8886 cssarrayvalue: Reserve 2 pointers when parsing array values
given that we parse an array, chances are we're gonna see 2 values.
2020-01-10 14:06:55 -05:00
Timm Bäder 8b3304820e cssarrayvalue: Loosen the definition of "array value"
Just allow calling _get_nth() and _get_n_values() on every kind of css
value. This way we can allow all values in places where only array
values would be allowed before.

This spares us around 1000 array values in the widget factory.

css value stats before:

GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssCornerValue: 556
GtkCssArrayValue: 1130
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
GtkCssColorValue: 1452
SUM: 9415

and after:

GtkCssBgSizeValue: 23
GtkCssIdentValue: 25
GtkCssPositionValue: 81
GtkCssCornerValue: 556
GtkCssArrayValue: 143
GtkCssStringValue: 33
GtkCssPaletteValue: 29
GtkCssImageValue: 2765
GtkCssColorValue: 1452
GtkCssFilterValue: 3
GtkCssRgbaValue: 1092
GtkCssShadowValue: 708
GtkCssEaseValue: 33
GtkCssBorderValue: 2
GtkCssTransformValue: 11
GtkCssDimensionValue: 882
GtkCssShadowsValue: 584
SUM: 8428

9415 to 8428 is a 987 reduction (10.4%)
2020-01-10 14:06:55 -05:00
Timm Bäder 5592af40ad cssvalue: Add type names for all classes 2020-01-10 14:06:55 -05:00
Timm Bäder d3268b3af0 csscolorvalue: Compute alpha/shade/mix of color literals directly
The values of these are never gonna change so we can as well create
literal color values from the resulting colors instead.
2020-01-10 14:06:55 -05:00
Timm Bäder c5e1c97ca4 csscolorvalue: Don't resolve literal color values 2020-01-10 14:06:55 -05:00
60 changed files with 1074 additions and 692 deletions
+27 -4
View File
@@ -369,6 +369,7 @@ gtk_css_value_array_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_ARRAY = {
"GtkCssArrayValue",
gtk_css_value_array_free,
gtk_css_value_array_compute,
gtk_css_value_array_equal,
@@ -391,11 +392,27 @@ _gtk_css_array_value_new_from_array (GtkCssValue **values,
guint n_values)
{
GtkCssValue *result;
gboolean is_static;
int i;
g_return_val_if_fail (values != NULL, NULL);
g_return_val_if_fail (n_values > 0, NULL);
if (n_values == 1)
return values[0];
is_static = TRUE;
for (i = 0; i < n_values; i++)
{
if (!values[i]->is_static)
{
is_static = FALSE;
break;
}
}
result = _gtk_css_value_alloc (&GTK_CSS_VALUE_ARRAY, sizeof (GtkCssValue) + sizeof (GtkCssValue *) * (n_values - 1));
result->is_static = is_static;
result->n_values = n_values;
memcpy (&result->values[0], values, sizeof (GtkCssValue *) * n_values);
@@ -409,7 +426,7 @@ _gtk_css_array_value_parse (GtkCssParser *parser,
GtkCssValue *value, *result;
GPtrArray *values;
values = g_ptr_array_new ();
values = g_ptr_array_sized_new (2);
do {
value = parse_func (parser);
@@ -430,9 +447,12 @@ _gtk_css_array_value_parse (GtkCssParser *parser,
}
GtkCssValue *
_gtk_css_array_value_get_nth (const GtkCssValue *value,
guint i)
_gtk_css_array_value_get_nth (GtkCssValue *value,
guint i)
{
if (value->class != &GTK_CSS_VALUE_ARRAY)
return value;
g_return_val_if_fail (value != NULL, NULL);
g_return_val_if_fail (value->class == &GTK_CSS_VALUE_ARRAY, NULL);
g_return_val_if_fail (value->n_values > 0, NULL);
@@ -443,6 +463,9 @@ _gtk_css_array_value_get_nth (const GtkCssValue *value,
guint
_gtk_css_array_value_get_n_values (const GtkCssValue *value)
{
if (value->class != &GTK_CSS_VALUE_ARRAY)
return 1;
g_return_val_if_fail (value != NULL, 0);
g_return_val_if_fail (value->class == &GTK_CSS_VALUE_ARRAY, 0);
+1 -1
View File
@@ -32,7 +32,7 @@ GtkCssValue * _gtk_css_array_value_new_from_array (GtkCssValue **
GtkCssValue * _gtk_css_array_value_parse (GtkCssParser *parser,
GtkCssValue * (* parse_func) (GtkCssParser *));
GtkCssValue * _gtk_css_array_value_get_nth (const GtkCssValue *value,
GtkCssValue * _gtk_css_array_value_get_nth (GtkCssValue *value,
guint i);
guint _gtk_css_array_value_get_n_values (const GtkCssValue *value);
+4 -3
View File
@@ -153,6 +153,7 @@ gtk_css_value_bg_size_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_BG_SIZE = {
"GtkCssBgSizeValue",
gtk_css_value_bg_size_free,
gtk_css_value_bg_size_compute,
gtk_css_value_bg_size_equal,
@@ -162,9 +163,9 @@ static const GtkCssValueClass GTK_CSS_VALUE_BG_SIZE = {
gtk_css_value_bg_size_print
};
static GtkCssValue auto_singleton = { &GTK_CSS_VALUE_BG_SIZE, 1, FALSE, FALSE, NULL, NULL };
static GtkCssValue cover_singleton = { &GTK_CSS_VALUE_BG_SIZE, 1, TRUE, FALSE, NULL, NULL };
static GtkCssValue contain_singleton = { &GTK_CSS_VALUE_BG_SIZE, 1, FALSE, TRUE, NULL, NULL };
static GtkCssValue auto_singleton = { &GTK_CSS_VALUE_BG_SIZE, 1, 0, FALSE, FALSE, NULL, NULL };
static GtkCssValue cover_singleton = { &GTK_CSS_VALUE_BG_SIZE, 1, 0, TRUE, FALSE, NULL, NULL };
static GtkCssValue contain_singleton = { &GTK_CSS_VALUE_BG_SIZE, 1, 0, FALSE, TRUE, NULL, NULL };
GtkCssValue *
_gtk_css_bg_size_value_new (GtkCssValue *x,
+1
View File
@@ -140,6 +140,7 @@ gtk_css_value_border_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_BORDER = {
"GtkCssBorderValue",
gtk_css_value_border_free,
gtk_css_value_border_compute,
gtk_css_value_border_equal,
+1
View File
@@ -245,6 +245,7 @@ gtk_css_value_calc_get_calc_term_order (const GtkCssValue *value)
static const GtkCssNumberValueClass GTK_CSS_VALUE_CALC = {
{
"GtkCssCalcValue",
gtk_css_value_calc_free,
gtk_css_value_calc_compute,
gtk_css_value_calc_equal,
+131 -30
View File
@@ -45,6 +45,7 @@ struct _GtkCssValue
union
{
gchar *name;
GdkRGBA rgba;
struct
{
@@ -104,7 +105,7 @@ gtk_css_value_color_get_fallback (guint property_id,
case GTK_CSS_PROPERTY_TEXT_SHADOW:
case GTK_CSS_PROPERTY_ICON_SHADOW:
case GTK_CSS_PROPERTY_BOX_SHADOW:
return _gtk_css_rgba_value_new_transparent ();
return gtk_css_color_value_new_transparent ();
case GTK_CSS_PROPERTY_COLOR:
case GTK_CSS_PROPERTY_BACKGROUND_COLOR:
case GTK_CSS_PROPERTY_BORDER_TOP_COLOR:
@@ -125,7 +126,7 @@ gtk_css_value_color_get_fallback (guint property_id,
if (property_id < GTK_CSS_PROPERTY_N_PROPERTIES)
g_warning ("No fallback color defined for property '%s'",
_gtk_style_property_get_name (GTK_STYLE_PROPERTY (_gtk_css_style_property_lookup_by_id (property_id))));
return _gtk_css_rgba_value_new_transparent ();
return gtk_css_color_value_new_transparent ();
}
}
@@ -136,7 +137,7 @@ gtk_css_value_color_compute (GtkCssValue *value,
GtkCssStyle *style,
GtkCssStyle *parent_style)
{
GtkCssValue *resolved, *current;
GtkCssValue *resolved;
/* The computed value of the currentColor keyword is the computed
* value of the color property. If the currentColor keyword is
@@ -144,20 +145,31 @@ gtk_css_value_color_compute (GtkCssValue *value,
*/
if (property_id == GTK_CSS_PROPERTY_COLOR)
{
GtkCssValue *current;
if (parent_style)
current = gtk_css_style_get_value (parent_style, GTK_CSS_PROPERTY_COLOR);
else
current = NULL;
resolved = _gtk_css_color_value_resolve (value,
provider,
current,
NULL);
}
else if (value->type == COLOR_TYPE_LITERAL)
{
resolved = _gtk_css_value_ref (value);
}
else
{
current = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR);
GtkCssValue *current = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR);
resolved = _gtk_css_color_value_resolve (value,
provider,
current,
NULL);
}
resolved = _gtk_css_color_value_resolve (value,
provider,
current,
NULL);
if (resolved == NULL)
return gtk_css_value_color_get_fallback (property_id, provider, style, parent_style);
@@ -175,7 +187,7 @@ gtk_css_value_color_equal (const GtkCssValue *value1,
switch (value1->type)
{
case COLOR_TYPE_LITERAL:
return _gtk_css_value_equal (value1->last_value, value2->last_value);
return gdk_rgba_equal (&value1->sym_col.rgba, &value2->sym_col.rgba);
case COLOR_TYPE_NAME:
return g_str_equal (value1->sym_col.name, value2->sym_col.name);
case COLOR_TYPE_SHADE:
@@ -216,7 +228,11 @@ gtk_css_value_color_print (const GtkCssValue *value,
switch (value->type)
{
case COLOR_TYPE_LITERAL:
_gtk_css_value_print (value->last_value, string);
{
char *s = gdk_rgba_to_string (&value->sym_col.rgba);
g_string_append (string, s);
g_free (s);
}
break;
case COLOR_TYPE_NAME:
g_string_append (string, "@");
@@ -269,6 +285,7 @@ gtk_css_value_color_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_COLOR = {
"GtkCssColorValue",
gtk_css_value_color_free,
gtk_css_value_color_compute,
gtk_css_value_color_equal,
@@ -278,6 +295,41 @@ static const GtkCssValueClass GTK_CSS_VALUE_COLOR = {
gtk_css_value_color_print
};
static void
apply_alpha (const GdkRGBA *in,
GdkRGBA *out,
double factor)
{
*out = *in;
out->alpha = CLAMP (in->alpha * factor, 0, 1);
}
static void
apply_shade (const GdkRGBA *in,
GdkRGBA *out,
double factor)
{
GtkHSLA hsla;
_gtk_hsla_init_from_rgba (&hsla, in);
_gtk_hsla_shade (&hsla, &hsla, factor);
_gdk_rgba_init_from_hsla (out, &hsla);
}
static void
apply_mix (const GdkRGBA *in1,
const GdkRGBA *in2,
GdkRGBA *out,
double factor)
{
out->red = CLAMP (in1->red + ((in2->red - in1->red) * factor), 0, 1);
out->green = CLAMP (in1->green + ((in2->green - in1->green) * factor), 0, 1);
out->blue = CLAMP (in1->blue + ((in2->blue - in1->blue) * factor), 0, 1);
out->alpha = CLAMP (in1->alpha + ((in2->alpha - in1->alpha) * factor), 0, 1);
}
GtkCssValue *
_gtk_css_color_value_resolve (GtkCssValue *color,
GtkStyleProvider *provider,
@@ -291,7 +343,7 @@ _gtk_css_color_value_resolve (GtkCssValue *color,
switch (color->type)
{
case COLOR_TYPE_LITERAL:
return _gtk_css_value_ref (color->last_value);
return _gtk_css_value_ref (color);
case COLOR_TYPE_NAME:
{
GtkCssValue *named;
@@ -315,21 +367,17 @@ _gtk_css_color_value_resolve (GtkCssValue *color,
case COLOR_TYPE_SHADE:
{
GtkCssValue *val;
GtkHSLA hsla;
GdkRGBA shade;
val = _gtk_css_color_value_resolve (color->sym_col.shade.color, provider, current, cycle_list);
if (val == NULL)
return NULL;
_gtk_hsla_init_from_rgba (&hsla, _gtk_css_rgba_value_get_rgba (val));
_gtk_hsla_shade (&hsla, &hsla, color->sym_col.shade.factor);
_gdk_rgba_init_from_hsla (&shade, &hsla);
apply_shade (gtk_css_color_value_get_rgba (val), &shade, color->sym_col.shade.factor);
_gtk_css_value_unref (val);
value = _gtk_css_rgba_value_new_from_rgba (&shade);
value = _gtk_css_color_value_new_literal (&shade);
}
break;
@@ -342,12 +390,12 @@ _gtk_css_color_value_resolve (GtkCssValue *color,
if (val == NULL)
return NULL;
alpha = *_gtk_css_rgba_value_get_rgba (val);
alpha.alpha = CLAMP (alpha.alpha * color->sym_col.alpha.factor, 0, 1);
alpha = *gtk_css_color_value_get_rgba (val);
apply_alpha (&alpha, &alpha, color->sym_col.alpha.factor);
_gtk_css_value_unref (val);
value = _gtk_css_rgba_value_new_from_rgba (&alpha);
value = _gtk_css_color_value_new_literal (&alpha);
}
break;
@@ -359,21 +407,18 @@ _gtk_css_color_value_resolve (GtkCssValue *color,
val = _gtk_css_color_value_resolve (color->sym_col.mix.color1, provider, current, cycle_list);
if (val == NULL)
return NULL;
color1 = *_gtk_css_rgba_value_get_rgba (val);
color1 = *gtk_css_color_value_get_rgba (val);
_gtk_css_value_unref (val);
val = _gtk_css_color_value_resolve (color->sym_col.mix.color2, provider, current, cycle_list);
if (val == NULL)
return NULL;
color2 = *_gtk_css_rgba_value_get_rgba (val);
color2 = *gtk_css_color_value_get_rgba (val);
_gtk_css_value_unref (val);
res.red = CLAMP (color1.red + ((color2.red - color1.red) * color->sym_col.mix.factor), 0, 1);
res.green = CLAMP (color1.green + ((color2.green - color1.green) * color->sym_col.mix.factor), 0, 1);
res.blue = CLAMP (color1.blue + ((color2.blue - color1.blue) * color->sym_col.mix.factor), 0, 1);
res.alpha = CLAMP (color1.alpha + ((color2.alpha - color1.alpha) * color->sym_col.mix.factor), 0, 1);
apply_mix (&color1, &color2, &res, color->sym_col.mix.factor);
value =_gtk_css_rgba_value_new_from_rgba (&res);
value = _gtk_css_color_value_new_literal (&res);
}
break;
@@ -420,6 +465,24 @@ _gtk_css_color_value_resolve (GtkCssValue *color,
return value;
}
static GtkCssValue transparent_black_singleton = { &GTK_CSS_VALUE_COLOR, 1, 1, COLOR_TYPE_LITERAL, NULL,
.sym_col.rgba = {0, 0, 0, 0} };
static GtkCssValue white_singleton = { &GTK_CSS_VALUE_COLOR, 1, 1, COLOR_TYPE_LITERAL, NULL,
.sym_col.rgba = {1, 1, 1, 1} };
GtkCssValue *
gtk_css_color_value_new_transparent (void)
{
return _gtk_css_value_ref (&transparent_black_singleton);
}
GtkCssValue *
gtk_css_color_value_new_white (void)
{
return _gtk_css_value_ref (&white_singleton);
}
GtkCssValue *
_gtk_css_color_value_new_literal (const GdkRGBA *color)
{
@@ -428,8 +491,9 @@ _gtk_css_color_value_new_literal (const GdkRGBA *color)
g_return_val_if_fail (color != NULL, NULL);
value = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_COLOR);
value->is_static = TRUE;
value->type = COLOR_TYPE_LITERAL;
value->last_value = _gtk_css_rgba_value_new_from_rgba (color);
value->sym_col.rgba = *color;
return value;
}
@@ -456,6 +520,15 @@ _gtk_css_color_value_new_shade (GtkCssValue *color,
gtk_internal_return_val_if_fail (color->class == &GTK_CSS_VALUE_COLOR, NULL);
if (color->type == COLOR_TYPE_LITERAL)
{
GdkRGBA c;
apply_shade (&color->sym_col.rgba, &c, factor);
return _gtk_css_color_value_new_literal (&c);
}
value = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_COLOR);
value->type = COLOR_TYPE_SHADE;
value->sym_col.shade.color = _gtk_css_value_ref (color);
@@ -472,6 +545,15 @@ _gtk_css_color_value_new_alpha (GtkCssValue *color,
gtk_internal_return_val_if_fail (color->class == &GTK_CSS_VALUE_COLOR, NULL);
if (color->type == COLOR_TYPE_LITERAL)
{
GdkRGBA c;
apply_alpha (&color->sym_col.rgba, &c, factor);
return _gtk_css_color_value_new_literal (&c);
}
value = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_COLOR);
value->type = COLOR_TYPE_ALPHA;
value->sym_col.alpha.color = _gtk_css_value_ref (color);
@@ -490,6 +572,17 @@ _gtk_css_color_value_new_mix (GtkCssValue *color1,
gtk_internal_return_val_if_fail (color1->class == &GTK_CSS_VALUE_COLOR, NULL);
gtk_internal_return_val_if_fail (color2->class == &GTK_CSS_VALUE_COLOR, NULL);
if (color1->type == COLOR_TYPE_LITERAL &&
color2->type == COLOR_TYPE_LITERAL)
{
GdkRGBA result;
apply_mix (&color1->sym_col.rgba, &color2->sym_col.rgba, &result, factor);
return _gtk_css_color_value_new_literal (&result);
}
value = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_COLOR);
value->type = COLOR_TYPE_MIX;
value->sym_col.mix.color1 = _gtk_css_value_ref (color1);
@@ -502,7 +595,7 @@ _gtk_css_color_value_new_mix (GtkCssValue *color1,
GtkCssValue *
_gtk_css_color_value_new_current_color (void)
{
static GtkCssValue current_color = { &GTK_CSS_VALUE_COLOR, 1, COLOR_TYPE_CURRENT_COLOR, NULL, };
static GtkCssValue current_color = { &GTK_CSS_VALUE_COLOR, 1, 0, COLOR_TYPE_CURRENT_COLOR, NULL, };
return _gtk_css_value_ref (&current_color);
}
@@ -665,3 +758,11 @@ _gtk_css_color_value_parse (GtkCssParser *parser)
return NULL;
}
const GdkRGBA *
gtk_css_color_value_get_rgba (const GtkCssValue *color)
{
g_assert (color->class == &GTK_CSS_VALUE_COLOR);
g_assert (color->type == COLOR_TYPE_LITERAL);
return &color->sym_col.rgba;
}
+3
View File
@@ -24,6 +24,8 @@
G_BEGIN_DECLS
GtkCssValue * gtk_css_color_value_new_transparent (void);
GtkCssValue * gtk_css_color_value_new_white (void);
GtkCssValue * _gtk_css_color_value_new_literal (const GdkRGBA *color);
GtkCssValue * _gtk_css_color_value_new_name (const gchar *name);
GtkCssValue * _gtk_css_color_value_new_shade (GtkCssValue *color,
@@ -42,6 +44,7 @@ GtkCssValue * _gtk_css_color_value_resolve (GtkCssValue *color
GtkStyleProvider *provider,
GtkCssValue *current,
GSList *cycle_list);
const GdkRGBA * gtk_css_color_value_get_rgba (const GtkCssValue *color);
G_END_DECLS
+13
View File
@@ -99,6 +99,7 @@ gtk_css_value_corner_print (const GtkCssValue *corner,
}
static const GtkCssValueClass GTK_CSS_VALUE_CORNER = {
"GtkCssCornerValue",
gtk_css_value_corner_free,
gtk_css_value_corner_compute,
gtk_css_value_corner_equal,
@@ -114,6 +115,12 @@ _gtk_css_corner_value_new (GtkCssValue *x,
{
GtkCssValue *result;
if (x == y)
{
_gtk_css_value_unref (y);
return _gtk_css_value_ref (x);
}
result = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_CORNER);
result->x = x;
result->y = y;
@@ -155,6 +162,9 @@ double
_gtk_css_corner_value_get_x (const GtkCssValue *corner,
double one_hundred_percent)
{
if (corner->class != &GTK_CSS_VALUE_CORNER)
return _gtk_css_number_value_get (corner, one_hundred_percent);
g_return_val_if_fail (corner != NULL, 0.0);
g_return_val_if_fail (corner->class == &GTK_CSS_VALUE_CORNER, 0.0);
@@ -165,6 +175,9 @@ double
_gtk_css_corner_value_get_y (const GtkCssValue *corner,
double one_hundred_percent)
{
if (corner->class != &GTK_CSS_VALUE_CORNER)
return _gtk_css_number_value_get (corner, one_hundred_percent);
g_return_val_if_fail (corner != NULL, 0.0);
g_return_val_if_fail (corner->class == &GTK_CSS_VALUE_CORNER, 0.0);
+83 -30
View File
@@ -279,6 +279,7 @@ gtk_css_value_dimension_get_calc_term_order (const GtkCssValue *value)
static const GtkCssNumberValueClass GTK_CSS_VALUE_DIMENSION = {
{
"GtkCssDimensionValue",
gtk_css_value_dimension_free,
gtk_css_value_dimension_compute,
gtk_css_value_dimension_equal,
@@ -300,37 +301,45 @@ gtk_css_dimension_value_new (double value,
GtkCssUnit unit)
{
static GtkCssValue number_singletons[] = {
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_NUMBER, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_NUMBER, 1 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_NUMBER, 96 }, /* DPI default */
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_NUMBER, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_NUMBER, 1 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_NUMBER, 96 }, /* DPI default */
};
static GtkCssValue px_singletons[] = {
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 1 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 2 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 3 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 4 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 8 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 16 }, /* Icon size default */
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 32 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PX, 64 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 1 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 2 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 3 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 4 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 5 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 6 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 7 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 8 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 16 }, /* Icon size default */
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 32 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 10 * 96.0 / 72.0 }, /* font size 10 */
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_PX, 11 * 96.0 / 72.0 }, /* font size 11 */
};
static GtkCssValue percent_singletons[] = {
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PERCENT, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PERCENT, 50 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_PERCENT, 100 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 0, GTK_CSS_PERCENT, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 0, GTK_CSS_PERCENT, 50 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 0, GTK_CSS_PERCENT, 100 },
};
static GtkCssValue second_singletons[] = {
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_S, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_S, 1 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_S, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_S, 0.15 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_S, 0.2 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_S, 0.3 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_S, 1 },
};
static GtkCssValue deg_singletons[] = {
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_DEG, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_DEG, 90 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_DEG, 180 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, GTK_CSS_DEG, 270 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_DEG, 0 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_DEG, 90 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_DEG, 180 },
{ &GTK_CSS_VALUE_DIMENSION.value_class, 1, 1, GTK_CSS_DEG, 270 },
};
GtkCssValue *result;
gboolean is_static = FALSE;
switch ((guint)unit)
{
@@ -341,6 +350,7 @@ gtk_css_dimension_value_new (double value,
if (value == 96)
return _gtk_css_value_ref (&number_singletons[2]);
is_static = TRUE;
break;
case GTK_CSS_PX:
@@ -348,17 +358,22 @@ gtk_css_dimension_value_new (double value,
value == 1 ||
value == 2 ||
value == 3 ||
value == 4)
value == 4 ||
value == 5 ||
value == 6 ||
value == 7 ||
value == 8)
return _gtk_css_value_ref (&px_singletons[(int) value]);
if (value == 8)
return _gtk_css_value_ref (&px_singletons[5]);
if (value == 16)
return _gtk_css_value_ref (&px_singletons[6]);
return _gtk_css_value_ref (&px_singletons[9]);
if (value == 32)
return _gtk_css_value_ref (&px_singletons[7]);
if (value == 64)
return _gtk_css_value_ref (&px_singletons[8]);
return _gtk_css_value_ref (&px_singletons[10]);
if (value == 10 * 96.0 / 72.0)
return _gtk_css_value_ref (&px_singletons[11]);
if (value == 11 * 96.0 / 72.0)
return _gtk_css_value_ref (&px_singletons[12]);
is_static = TRUE;
break;
case GTK_CSS_PERCENT:
@@ -372,9 +387,18 @@ gtk_css_dimension_value_new (double value,
break;
case GTK_CSS_S:
if (value == 0 || value == 1)
return _gtk_css_value_ref (&second_singletons[(int)value]);
if (value == 0)
return _gtk_css_value_ref (&second_singletons[0]);
if (value == 0.15)
return _gtk_css_value_ref (&second_singletons[1]);
if (value == 0.2)
return _gtk_css_value_ref (&second_singletons[2]);
if (value == 0.3)
return _gtk_css_value_ref (&second_singletons[3]);
if (value == 1)
return _gtk_css_value_ref (&second_singletons[4]);
is_static = TRUE;
break;
case GTK_CSS_DEG:
@@ -386,7 +410,32 @@ gtk_css_dimension_value_new (double value,
return _gtk_css_value_ref (&deg_singletons[2]);
if (value == 270)
return _gtk_css_value_ref (&deg_singletons[3]);
is_static = TRUE;
break;
case GTK_CSS_RAD:
value = value * 360.0 / (2 * G_PI);
unit = GTK_CSS_DEG;
is_static = TRUE;
break;
case GTK_CSS_GRAD:
value = value * 360.0 / 400.0;
unit = GTK_CSS_DEG;
is_static = TRUE;
break;
case GTK_CSS_TURN:
value = value * 360.0;
unit = GTK_CSS_DEG;
is_static = TRUE;
break;
case GTK_CSS_MS:
value = value / 1000.0;
unit = GTK_CSS_S;
is_static = TRUE;
break;
default:
@@ -394,6 +443,7 @@ gtk_css_dimension_value_new (double value,
}
result = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_DIMENSION.value_class);
result->is_static = is_static;
result->unit = unit;
result->value = value;
@@ -508,6 +558,9 @@ gtk_css_dimension_value_parse (GtkCssParser *parser,
}
result = gtk_css_dimension_value_new (number, unit);
if (flags & GTK_CSS_PARSE_NON_STATIC)
result->is_static = FALSE;
gtk_css_parser_consume_token (parser);
return result;
+3
View File
@@ -135,6 +135,7 @@ gtk_css_value_ease_print (const GtkCssValue *ease,
}
static const GtkCssValueClass GTK_CSS_VALUE_EASE = {
"GtkCssEaseValue",
gtk_css_value_ease_free,
gtk_css_value_ease_compute,
gtk_css_value_ease_equal,
@@ -158,6 +159,7 @@ _gtk_css_ease_value_new_cubic_bezier (double x1,
g_return_val_if_fail (x2 <= 1.0, NULL);
value = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_EASE);
value->is_static = TRUE;
value->type = GTK_CSS_EASE_CUBIC_BEZIER;
value->u.cubic.x1 = x1;
@@ -177,6 +179,7 @@ _gtk_css_ease_value_new_steps (guint n_steps,
g_return_val_if_fail (n_steps > 0, NULL);
value = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_EASE);
value->is_static = TRUE;
value->type = GTK_CSS_EASE_STEPS;
value->u.steps.steps = n_steps;
+106 -86
View File
@@ -78,6 +78,7 @@ gtk_css_value_enum_print (const GtkCssValue *value,
/* GtkBorderStyle */
static const GtkCssValueClass GTK_CSS_VALUE_BORDER_STYLE = {
"GtkCssBorderStyleValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -88,16 +89,16 @@ static const GtkCssValueClass GTK_CSS_VALUE_BORDER_STYLE = {
};
static GtkCssValue border_style_values[] = {
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_NONE, "none" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_SOLID, "solid" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_INSET, "inset" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_OUTSET, "outset" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_HIDDEN, "hidden" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_DOTTED, "dotted" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_DASHED, "dashed" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_DOUBLE, "double" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_GROOVE, "groove" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, GTK_BORDER_STYLE_RIDGE, "ridge" }
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_NONE, "none" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_SOLID, "solid" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_INSET, "inset" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_OUTSET, "outset" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_HIDDEN, "hidden" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_DOTTED, "dotted" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_DASHED, "dashed" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_DOUBLE, "double" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_GROOVE, "groove" },
{ &GTK_CSS_VALUE_BORDER_STYLE, 1, 1, GTK_BORDER_STYLE_RIDGE, "ridge" }
};
GtkCssValue *
@@ -135,6 +136,7 @@ _gtk_css_border_style_value_get (const GtkCssValue *value)
/* GtkCssBlendMode */
static const GtkCssValueClass GTK_CSS_VALUE_BLEND_MODE = {
"GtkCssBlendModeValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -145,22 +147,22 @@ static const GtkCssValueClass GTK_CSS_VALUE_BLEND_MODE = {
};
static GtkCssValue blend_mode_values[] = {
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_DEFAULT, "normal" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_MULTIPLY, "multiply" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_SCREEN, "screen" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_OVERLAY, "overlay" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_DARKEN, "darken" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_LIGHTEN, "lighten" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_COLOR_DODGE, "color-dodge" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_COLOR_BURN, "color-burn" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_HARD_LIGHT, "hard-light" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_SOFT_LIGHT, "soft-light" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_DIFFERENCE, "difference" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_EXCLUSION, "exclusion" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_COLOR, "color" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_HUE, "hue" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_SATURATION, "saturation" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, GSK_BLEND_MODE_LUMINOSITY, "luminosity" }
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_DEFAULT, "normal" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_MULTIPLY, "multiply" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_SCREEN, "screen" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_OVERLAY, "overlay" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_DARKEN, "darken" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_LIGHTEN, "lighten" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_COLOR_DODGE, "color-dodge" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_COLOR_BURN, "color-burn" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_HARD_LIGHT, "hard-light" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_SOFT_LIGHT, "soft-light" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_DIFFERENCE, "difference" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_EXCLUSION, "exclusion" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_COLOR, "color" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_HUE, "hue" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_SATURATION, "saturation" },
{ &GTK_CSS_VALUE_BLEND_MODE, 1, 1, GSK_BLEND_MODE_LUMINOSITY, "luminosity" }
};
GtkCssValue *
@@ -285,6 +287,7 @@ gtk_css_value_font_size_compute (GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_FONT_SIZE = {
"GtkCssFontSizeValue",
gtk_css_value_enum_free,
gtk_css_value_font_size_compute,
gtk_css_value_enum_equal,
@@ -295,15 +298,15 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_SIZE = {
};
static GtkCssValue font_size_values[] = {
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_SMALLER, "smaller" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_LARGER, "larger" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_XX_SMALL, "xx-small" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_X_SMALL, "x-small" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_SMALL, "small" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_MEDIUM, "medium" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_LARGE, "large" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_X_LARGE, "x-large" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, GTK_CSS_FONT_SIZE_XX_LARGE, "xx-large" }
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_SMALLER, "smaller" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_LARGER, "larger" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_XX_SMALL, "xx-small" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_X_SMALL, "x-small" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_SMALL, "small" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_MEDIUM, "medium" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_LARGE, "large" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_X_LARGE, "x-large" },
{ &GTK_CSS_VALUE_FONT_SIZE, 1, 0, GTK_CSS_FONT_SIZE_XX_LARGE, "xx-large" }
};
GtkCssValue *
@@ -341,6 +344,7 @@ _gtk_css_font_size_value_get (const GtkCssValue *value)
/* PangoStyle */
static const GtkCssValueClass GTK_CSS_VALUE_FONT_STYLE = {
"GtkCssFontStyleValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -351,9 +355,9 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_STYLE = {
};
static GtkCssValue font_style_values[] = {
{ &GTK_CSS_VALUE_FONT_STYLE, 1, PANGO_STYLE_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_STYLE, 1, PANGO_STYLE_OBLIQUE, "oblique" },
{ &GTK_CSS_VALUE_FONT_STYLE, 1, PANGO_STYLE_ITALIC, "italic" }
{ &GTK_CSS_VALUE_FONT_STYLE, 1, 1, PANGO_STYLE_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_STYLE, 1, 1, PANGO_STYLE_OBLIQUE, "oblique" },
{ &GTK_CSS_VALUE_FONT_STYLE, 1, 1, PANGO_STYLE_ITALIC, "italic" }
};
GtkCssValue *
@@ -439,6 +443,7 @@ gtk_css_value_font_weight_compute (GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_FONT_WEIGHT = {
"GtkCssFontWeightValue",
gtk_css_value_enum_free,
gtk_css_value_font_weight_compute,
gtk_css_value_enum_equal,
@@ -449,8 +454,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_WEIGHT = {
};
static GtkCssValue font_weight_values[] = {
{ &GTK_CSS_VALUE_FONT_WEIGHT, 1, BOLDER, "bolder" },
{ &GTK_CSS_VALUE_FONT_WEIGHT, 1, LIGHTER, "lighter" },
{ &GTK_CSS_VALUE_FONT_WEIGHT, 1, 0, BOLDER, "bolder" },
{ &GTK_CSS_VALUE_FONT_WEIGHT, 1, 0, LIGHTER, "lighter" },
};
GtkCssValue *
@@ -488,6 +493,7 @@ gtk_css_font_weight_value_get (const GtkCssValue *value)
/* PangoStretch */
static const GtkCssValueClass GTK_CSS_VALUE_FONT_STRETCH = {
"GtkCssFontStretchValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -498,15 +504,15 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_STRETCH = {
};
static GtkCssValue font_stretch_values[] = {
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_ULTRA_CONDENSED, "ultra-condensed" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_EXTRA_CONDENSED, "extra-condensed" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_CONDENSED, "condensed" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_SEMI_CONDENSED, "semi-condensed" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_SEMI_EXPANDED, "semi-expanded" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_EXPANDED, "expanded" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_EXTRA_EXPANDED, "extra-expanded" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, PANGO_STRETCH_ULTRA_EXPANDED, "ultra-expanded" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_ULTRA_CONDENSED, "ultra-condensed" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_EXTRA_CONDENSED, "extra-condensed" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_CONDENSED, "condensed" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_SEMI_CONDENSED, "semi-condensed" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_SEMI_EXPANDED, "semi-expanded" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_EXPANDED, "expanded" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_EXTRA_EXPANDED, "extra-expanded" },
{ &GTK_CSS_VALUE_FONT_STRETCH, 1, 1, PANGO_STRETCH_ULTRA_EXPANDED, "ultra-expanded" },
};
GtkCssValue *
@@ -544,6 +550,7 @@ _gtk_css_font_stretch_value_get (const GtkCssValue *value)
/* GtkTextDecorationLine */
static const GtkCssValueClass GTK_CSS_VALUE_TEXT_DECORATION_LINE = {
"GtkCssTextDecorationLineValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -554,9 +561,9 @@ static const GtkCssValueClass GTK_CSS_VALUE_TEXT_DECORATION_LINE = {
};
static GtkCssValue text_decoration_line_values[] = {
{ &GTK_CSS_VALUE_TEXT_DECORATION_LINE, 1, GTK_CSS_TEXT_DECORATION_LINE_NONE, "none" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_LINE, 1, GTK_CSS_TEXT_DECORATION_LINE_UNDERLINE, "underline" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_LINE, 1, GTK_CSS_TEXT_DECORATION_LINE_LINE_THROUGH, "line-through" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_LINE, 1, 1, GTK_CSS_TEXT_DECORATION_LINE_NONE, "none" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_LINE, 1, 1, GTK_CSS_TEXT_DECORATION_LINE_UNDERLINE, "underline" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_LINE, 1, 1, GTK_CSS_TEXT_DECORATION_LINE_LINE_THROUGH, "line-through" },
};
GtkCssValue *
@@ -594,6 +601,7 @@ _gtk_css_text_decoration_line_value_get (const GtkCssValue *value)
/* GtkTextDecorationStyle */
static const GtkCssValueClass GTK_CSS_VALUE_TEXT_DECORATION_STYLE = {
"GtkCssTextDecorationStyleValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -604,9 +612,9 @@ static const GtkCssValueClass GTK_CSS_VALUE_TEXT_DECORATION_STYLE = {
};
static GtkCssValue text_decoration_style_values[] = {
{ &GTK_CSS_VALUE_TEXT_DECORATION_STYLE, 1, GTK_CSS_TEXT_DECORATION_STYLE_SOLID, "solid" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_STYLE, 1, GTK_CSS_TEXT_DECORATION_STYLE_DOUBLE, "double" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_STYLE, 1, GTK_CSS_TEXT_DECORATION_STYLE_WAVY, "wavy" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_STYLE, 1, 1, GTK_CSS_TEXT_DECORATION_STYLE_SOLID, "solid" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_STYLE, 1, 1, GTK_CSS_TEXT_DECORATION_STYLE_DOUBLE, "double" },
{ &GTK_CSS_VALUE_TEXT_DECORATION_STYLE, 1, 1, GTK_CSS_TEXT_DECORATION_STYLE_WAVY, "wavy" },
};
GtkCssValue *
@@ -644,6 +652,7 @@ _gtk_css_text_decoration_style_value_get (const GtkCssValue *value)
/* GtkCssArea */
static const GtkCssValueClass GTK_CSS_VALUE_AREA = {
"GtkCssAreaValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -654,9 +663,9 @@ static const GtkCssValueClass GTK_CSS_VALUE_AREA = {
};
static GtkCssValue area_values[] = {
{ &GTK_CSS_VALUE_AREA, 1, GTK_CSS_AREA_BORDER_BOX, "border-box" },
{ &GTK_CSS_VALUE_AREA, 1, GTK_CSS_AREA_PADDING_BOX, "padding-box" },
{ &GTK_CSS_VALUE_AREA, 1, GTK_CSS_AREA_CONTENT_BOX, "content-box" }
{ &GTK_CSS_VALUE_AREA, 1, 1, GTK_CSS_AREA_BORDER_BOX, "border-box" },
{ &GTK_CSS_VALUE_AREA, 1, 1, GTK_CSS_AREA_PADDING_BOX, "padding-box" },
{ &GTK_CSS_VALUE_AREA, 1, 1, GTK_CSS_AREA_CONTENT_BOX, "content-box" }
};
GtkCssValue *
@@ -700,6 +709,7 @@ _gtk_css_area_value_get (const GtkCssValue *value)
/* GtkCssDirection */
static const GtkCssValueClass GTK_CSS_VALUE_DIRECTION = {
"GtkCssDirectionValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -710,10 +720,10 @@ static const GtkCssValueClass GTK_CSS_VALUE_DIRECTION = {
};
static GtkCssValue direction_values[] = {
{ &GTK_CSS_VALUE_DIRECTION, 1, GTK_CSS_DIRECTION_NORMAL, "normal" },
{ &GTK_CSS_VALUE_DIRECTION, 1, GTK_CSS_DIRECTION_REVERSE, "reverse" },
{ &GTK_CSS_VALUE_DIRECTION, 1, GTK_CSS_DIRECTION_ALTERNATE, "alternate" },
{ &GTK_CSS_VALUE_DIRECTION, 1, GTK_CSS_DIRECTION_ALTERNATE_REVERSE, "alternate-reverse" }
{ &GTK_CSS_VALUE_DIRECTION, 1, 1, GTK_CSS_DIRECTION_NORMAL, "normal" },
{ &GTK_CSS_VALUE_DIRECTION, 1, 1, GTK_CSS_DIRECTION_REVERSE, "reverse" },
{ &GTK_CSS_VALUE_DIRECTION, 1, 1, GTK_CSS_DIRECTION_ALTERNATE, "alternate" },
{ &GTK_CSS_VALUE_DIRECTION, 1, 1, GTK_CSS_DIRECTION_ALTERNATE_REVERSE, "alternate-reverse" }
};
GtkCssValue *
@@ -760,6 +770,7 @@ _gtk_css_direction_value_get (const GtkCssValue *value)
/* GtkCssPlayState */
static const GtkCssValueClass GTK_CSS_VALUE_PLAY_STATE = {
"GtkCssPlayStateValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -770,8 +781,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_PLAY_STATE = {
};
static GtkCssValue play_state_values[] = {
{ &GTK_CSS_VALUE_PLAY_STATE, 1, GTK_CSS_PLAY_STATE_RUNNING, "running" },
{ &GTK_CSS_VALUE_PLAY_STATE, 1, GTK_CSS_PLAY_STATE_PAUSED, "paused" }
{ &GTK_CSS_VALUE_PLAY_STATE, 1, 1, GTK_CSS_PLAY_STATE_RUNNING, "running" },
{ &GTK_CSS_VALUE_PLAY_STATE, 1, 1, GTK_CSS_PLAY_STATE_PAUSED, "paused" }
};
GtkCssValue *
@@ -815,6 +826,7 @@ _gtk_css_play_state_value_get (const GtkCssValue *value)
/* GtkCssFillMode */
static const GtkCssValueClass GTK_CSS_VALUE_FILL_MODE = {
"GtkCssFillModeValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -825,10 +837,10 @@ static const GtkCssValueClass GTK_CSS_VALUE_FILL_MODE = {
};
static GtkCssValue fill_mode_values[] = {
{ &GTK_CSS_VALUE_FILL_MODE, 1, GTK_CSS_FILL_NONE, "none" },
{ &GTK_CSS_VALUE_FILL_MODE, 1, GTK_CSS_FILL_FORWARDS, "forwards" },
{ &GTK_CSS_VALUE_FILL_MODE, 1, GTK_CSS_FILL_BACKWARDS, "backwards" },
{ &GTK_CSS_VALUE_FILL_MODE, 1, GTK_CSS_FILL_BOTH, "both" }
{ &GTK_CSS_VALUE_FILL_MODE, 1, 1, GTK_CSS_FILL_NONE, "none" },
{ &GTK_CSS_VALUE_FILL_MODE, 1, 1, GTK_CSS_FILL_FORWARDS, "forwards" },
{ &GTK_CSS_VALUE_FILL_MODE, 1, 1, GTK_CSS_FILL_BACKWARDS, "backwards" },
{ &GTK_CSS_VALUE_FILL_MODE, 1, 1, GTK_CSS_FILL_BOTH, "both" }
};
GtkCssValue *
@@ -872,6 +884,7 @@ _gtk_css_fill_mode_value_get (const GtkCssValue *value)
/* GtkCssIconStyle */
static const GtkCssValueClass GTK_CSS_VALUE_ICON_STYLE = {
"GtkCssIconStyleValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -882,9 +895,9 @@ static const GtkCssValueClass GTK_CSS_VALUE_ICON_STYLE = {
};
static GtkCssValue icon_style_values[] = {
{ &GTK_CSS_VALUE_ICON_STYLE, 1, GTK_CSS_ICON_STYLE_REQUESTED, "requested" },
{ &GTK_CSS_VALUE_ICON_STYLE, 1, GTK_CSS_ICON_STYLE_REGULAR, "regular" },
{ &GTK_CSS_VALUE_ICON_STYLE, 1, GTK_CSS_ICON_STYLE_SYMBOLIC, "symbolic" }
{ &GTK_CSS_VALUE_ICON_STYLE, 1, 1, GTK_CSS_ICON_STYLE_REQUESTED, "requested" },
{ &GTK_CSS_VALUE_ICON_STYLE, 1, 1, GTK_CSS_ICON_STYLE_REGULAR, "regular" },
{ &GTK_CSS_VALUE_ICON_STYLE, 1, 1, GTK_CSS_ICON_STYLE_SYMBOLIC, "symbolic" }
};
GtkCssValue *
@@ -928,6 +941,7 @@ _gtk_css_icon_style_value_get (const GtkCssValue *value)
/* GtkCssFontKerning */
static const GtkCssValueClass GTK_CSS_VALUE_FONT_KERNING = {
"GtkCssFontKerningValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -938,9 +952,9 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_KERNING = {
};
static GtkCssValue font_kerning_values[] = {
{ &GTK_CSS_VALUE_FONT_KERNING, 1, GTK_CSS_FONT_KERNING_AUTO, "auto" },
{ &GTK_CSS_VALUE_FONT_KERNING, 1, GTK_CSS_FONT_KERNING_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_KERNING, 1, GTK_CSS_FONT_KERNING_NONE, "none" }
{ &GTK_CSS_VALUE_FONT_KERNING, 1, 1, GTK_CSS_FONT_KERNING_AUTO, "auto" },
{ &GTK_CSS_VALUE_FONT_KERNING, 1, 1, GTK_CSS_FONT_KERNING_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_KERNING, 1, 1, GTK_CSS_FONT_KERNING_NONE, "none" }
};
GtkCssValue *
@@ -984,6 +998,7 @@ _gtk_css_font_kerning_value_get (const GtkCssValue *value)
/* GtkCssFontVariantPos */
static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_POSITION = {
"GtkCssFontVariationPositionValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -994,9 +1009,9 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_POSITION = {
};
static GtkCssValue font_variant_position_values[] = {
{ &GTK_CSS_VALUE_FONT_VARIANT_POSITION, 1, GTK_CSS_FONT_VARIANT_POSITION_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_VARIANT_POSITION, 1, GTK_CSS_FONT_VARIANT_POSITION_SUB, "sub" },
{ &GTK_CSS_VALUE_FONT_VARIANT_POSITION, 1, GTK_CSS_FONT_VARIANT_POSITION_SUPER, "super" }
{ &GTK_CSS_VALUE_FONT_VARIANT_POSITION, 1, 1, GTK_CSS_FONT_VARIANT_POSITION_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_VARIANT_POSITION, 1, 1, GTK_CSS_FONT_VARIANT_POSITION_SUB, "sub" },
{ &GTK_CSS_VALUE_FONT_VARIANT_POSITION, 1, 1, GTK_CSS_FONT_VARIANT_POSITION_SUPER, "super" }
};
GtkCssValue *
@@ -1040,6 +1055,7 @@ _gtk_css_font_variant_position_value_get (const GtkCssValue *value)
/* GtkCssFontVariantCaps */
static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_CAPS = {
"GtkCssFontVariantCapsValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -1050,13 +1066,13 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_CAPS = {
};
static GtkCssValue font_variant_caps_values[] = {
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, GTK_CSS_FONT_VARIANT_CAPS_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, GTK_CSS_FONT_VARIANT_CAPS_SMALL_CAPS, "small-caps" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, GTK_CSS_FONT_VARIANT_CAPS_ALL_SMALL_CAPS, "all-small-caps" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, GTK_CSS_FONT_VARIANT_CAPS_PETITE_CAPS, "petite-caps" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, GTK_CSS_FONT_VARIANT_CAPS_ALL_PETITE_CAPS, "all-petite-caps" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, GTK_CSS_FONT_VARIANT_CAPS_UNICASE, "unicase" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, GTK_CSS_FONT_VARIANT_CAPS_TITLING_CAPS, "titling-caps" }
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, 1, GTK_CSS_FONT_VARIANT_CAPS_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, 1, GTK_CSS_FONT_VARIANT_CAPS_SMALL_CAPS, "small-caps" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, 1, GTK_CSS_FONT_VARIANT_CAPS_ALL_SMALL_CAPS, "all-small-caps" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, 1, GTK_CSS_FONT_VARIANT_CAPS_PETITE_CAPS, "petite-caps" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, 1, GTK_CSS_FONT_VARIANT_CAPS_ALL_PETITE_CAPS, "all-petite-caps" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, 1, GTK_CSS_FONT_VARIANT_CAPS_UNICASE, "unicase" },
{ &GTK_CSS_VALUE_FONT_VARIANT_CAPS, 1, 1, GTK_CSS_FONT_VARIANT_CAPS_TITLING_CAPS, "titling-caps" }
};
GtkCssValue *
@@ -1100,6 +1116,7 @@ _gtk_css_font_variant_caps_value_get (const GtkCssValue *value)
/* GtkCssFontVariantAlternate */
static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_ALTERNATE = {
"GtkCssFontVariantAlternateValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_equal,
@@ -1110,8 +1127,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_ALTERNATE = {
};
static GtkCssValue font_variant_alternate_values[] = {
{ &GTK_CSS_VALUE_FONT_VARIANT_ALTERNATE, 1, GTK_CSS_FONT_VARIANT_ALTERNATE_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_VARIANT_ALTERNATE, 1, GTK_CSS_FONT_VARIANT_ALTERNATE_HISTORICAL_FORMS, "historical-forms" }
{ &GTK_CSS_VALUE_FONT_VARIANT_ALTERNATE, 1, 1, GTK_CSS_FONT_VARIANT_ALTERNATE_NORMAL, "normal" },
{ &GTK_CSS_VALUE_FONT_VARIANT_ALTERNATE, 1, 1, GTK_CSS_FONT_VARIANT_ALTERNATE_HISTORICAL_FORMS, "historical-forms" }
};
GtkCssValue *
@@ -1213,6 +1230,7 @@ gtk_css_font_variant_ligature_value_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_LIGATURE = {
"GtkCssFontVariantLigatureValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_flags_equal,
@@ -1319,6 +1337,7 @@ gtk_css_font_variant_numeric_value_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_NUMERIC = {
"GtkCssFontVariantNumbericValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_flags_equal,
@@ -1422,6 +1441,7 @@ gtk_css_font_variant_east_asian_value_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_EAST_ASIAN = {
"GtkCssFontVariantEastAsianValue",
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_flags_equal,
+14 -2
View File
@@ -693,6 +693,7 @@ gtk_css_value_filter_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_FILTER = {
"GtkCssFilterValue",
gtk_css_value_filter_free,
gtk_css_value_filter_compute,
gtk_css_value_filter_equal,
@@ -702,7 +703,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_FILTER = {
gtk_css_value_filter_print
};
static GtkCssValue none_singleton = { &GTK_CSS_VALUE_FILTER, 1, 0, { { GTK_CSS_FILTER_NONE } } };
static GtkCssValue none_singleton = { &GTK_CSS_VALUE_FILTER, 1, 1, 0, { { GTK_CSS_FILTER_NONE } } };
static GtkCssValue *
gtk_css_filter_value_alloc (guint n_filters)
@@ -777,6 +778,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
GtkCssValue *value;
GArray *array;
guint i;
gboolean is_static = TRUE;
if (gtk_css_parser_try_ident (parser, "none"))
return gtk_css_filter_value_new_none ();
@@ -793,6 +795,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
goto fail;
filter.type = GTK_CSS_FILTER_BLUR;
is_static = is_static && filter.blur.value->is_static;
}
else if (gtk_css_parser_has_function (parser, "brightness"))
{
@@ -800,6 +803,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
goto fail;
filter.type = GTK_CSS_FILTER_BRIGHTNESS;
is_static = is_static && filter.brightness.value->is_static;
}
else if (gtk_css_parser_has_function (parser, "contrast"))
{
@@ -807,6 +811,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
goto fail;
filter.type = GTK_CSS_FILTER_CONTRAST;
is_static = is_static && filter.contrast.value->is_static;
}
else if (gtk_css_parser_has_function (parser, "grayscale"))
{
@@ -814,13 +819,15 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
goto fail;
filter.type = GTK_CSS_FILTER_GRAYSCALE;
is_static = is_static && filter.grayscale.value->is_static;
}
else if (gtk_css_parser_has_function (parser, "hue-rotate"))
{
if (!gtk_css_parser_consume_function (parser, 1, 1, gtk_css_filter_parse_angle, &filter.blur.value))
if (!gtk_css_parser_consume_function (parser, 1, 1, gtk_css_filter_parse_angle, &filter.hue_rotate.value))
goto fail;
filter.type = GTK_CSS_FILTER_HUE_ROTATE;
is_static = is_static && filter.hue_rotate.value->is_static;
}
else if (gtk_css_parser_has_function (parser, "invert"))
{
@@ -828,6 +835,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
goto fail;
filter.type = GTK_CSS_FILTER_INVERT;
is_static = is_static && filter.invert.value->is_static;
}
else if (gtk_css_parser_has_function (parser, "opacity"))
{
@@ -835,6 +843,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
goto fail;
filter.type = GTK_CSS_FILTER_OPACITY;
is_static = is_static && filter.opacity.value->is_static;
}
else if (gtk_css_parser_has_function (parser, "saturate"))
{
@@ -842,6 +851,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
goto fail;
filter.type = GTK_CSS_FILTER_SATURATE;
is_static = is_static && filter.saturate.value->is_static;
}
else if (gtk_css_parser_has_function (parser, "sepia"))
{
@@ -849,6 +859,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
goto fail;
filter.type = GTK_CSS_FILTER_SEPIA;
is_static = is_static && filter.sepia.value->is_static;
}
else
{
@@ -865,6 +876,7 @@ gtk_css_filter_value_parse (GtkCssParser *parser)
}
value = gtk_css_filter_value_alloc (array->len);
value->is_static = is_static;
memcpy (value->filters, array->data, sizeof (GtkCssFilter) * array->len);
g_array_free (array, TRUE);
+2 -23
View File
@@ -57,29 +57,7 @@ gtk_css_value_font_features_compute (GtkCssValue *specified,
GtkCssStyle *style,
GtkCssStyle *parent_style)
{
GHashTableIter iter;
gpointer name, val;
GtkCssValue *computed_val;
GtkCssValue *result;
gboolean changes = FALSE;
result = gtk_css_font_features_value_new_empty ();
g_hash_table_iter_init (&iter, specified->features);
while (g_hash_table_iter_next (&iter, &name, &val))
{
computed_val = _gtk_css_value_compute (val, property_id, provider, style, parent_style);
changes |= computed_val != val;
gtk_css_font_features_value_add_feature (result, name, computed_val);
}
if (!changes)
{
_gtk_css_value_unref (result);
result = _gtk_css_value_ref (specified);
}
return result;
return _gtk_css_value_ref (specified);
}
static gboolean
@@ -177,6 +155,7 @@ gtk_css_value_font_features_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_FONT_FEATURES = {
"GtkCssFontFeaturesValue",
gtk_css_value_font_features_free,
gtk_css_value_font_features_compute,
gtk_css_value_font_features_equal,
+2 -23
View File
@@ -56,29 +56,7 @@ gtk_css_value_font_variations_compute (GtkCssValue *specified,
GtkCssStyle *style,
GtkCssStyle *parent_style)
{
GHashTableIter iter;
gpointer name, coord;
GtkCssValue *computed_coord;
GtkCssValue *result;
gboolean changes = FALSE;
result = gtk_css_font_variations_value_new_empty ();
g_hash_table_iter_init (&iter, specified->axes);
while (g_hash_table_iter_next (&iter, &name, &coord))
{
computed_coord = _gtk_css_value_compute (coord, property_id, provider, style, parent_style);
changes |= computed_coord != coord;
gtk_css_font_variations_value_add_axis (result, name, computed_coord);
}
if (!changes)
{
_gtk_css_value_unref (result);
result = _gtk_css_value_ref (specified);
}
return result;
return _gtk_css_value_ref (specified);
}
static gboolean
@@ -176,6 +154,7 @@ gtk_css_value_font_variations_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIATIONS = {
"GtkCssFontVariationsValue",
gtk_css_value_font_variations_free,
gtk_css_value_font_variations_compute,
gtk_css_value_font_variations_equal,
+2 -1
View File
@@ -111,6 +111,7 @@ gtk_css_value_icon_theme_print (const GtkCssValue *icon_theme,
}
static const GtkCssValueClass GTK_CSS_VALUE_ICON_THEME = {
"GtkCssIconThemeValue",
gtk_css_value_icon_theme_free,
gtk_css_value_icon_theme_compute,
gtk_css_value_icon_theme_equal,
@@ -120,7 +121,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_ICON_THEME = {
gtk_css_value_icon_theme_print
};
static GtkCssValue default_icon_theme_value = { &GTK_CSS_VALUE_ICON_THEME, 1, NULL, 0 };
static GtkCssValue default_icon_theme_value = { &GTK_CSS_VALUE_ICON_THEME, 1, 0, NULL, 0 };
GtkCssValue *
gtk_css_icon_theme_value_new (GtkIconTheme *icontheme)
+3 -3
View File
@@ -23,7 +23,7 @@
#include "gtkcssenumvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssstyleprivate.h"
#include "gtkhslaprivate.h"
@@ -484,8 +484,8 @@ gtk_css_image_builtin_compute (GtkCssImage *image,
result = g_object_new (GTK_TYPE_CSS_IMAGE_BUILTIN, NULL);
result->fg_color = *_gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR));
result->bg_color = *_gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_BACKGROUND_COLOR));
result->fg_color = *gtk_css_color_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR));
result->bg_color = *gtk_css_color_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_BACKGROUND_COLOR));
return GTK_CSS_IMAGE (result);
}
+2 -2
View File
@@ -21,7 +21,7 @@
#include "gtkcssimagefallbackprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkstyleproviderprivate.h"
@@ -74,7 +74,7 @@ gtk_css_image_fallback_snapshot (GtkCssImage *image,
const GdkRGBA *color;
if (fallback->color)
color = _gtk_css_rgba_value_get_rgba (fallback->color);
color = gtk_css_color_value_get_rgba (fallback->color);
else
color = &red;
+3 -3
View File
@@ -25,7 +25,7 @@
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssprovider.h"
G_DEFINE_TYPE (GtkCssImageLinear, _gtk_css_image_linear, GTK_TYPE_CSS_IMAGE)
@@ -194,7 +194,7 @@ gtk_css_image_linear_snapshot (GtkCssImage *image,
linear->stops->len - 1);
gtk_snapshot_append_color (snapshot,
_gtk_css_rgba_value_get_rgba (stop->color),
gtk_css_color_value_get_rgba (stop->color),
&GRAPHENE_RECT_INIT (0, 0, width, height));
return;
}
@@ -240,7 +240,7 @@ gtk_css_image_linear_snapshot (GtkCssImage *image,
offset += step;
stops[last].offset = (offset - start) / (end - start);
stops[last].color = *_gtk_css_rgba_value_get_rgba (stop->color);
stops[last].color = *gtk_css_color_value_get_rgba (stop->color);
}
offset = pos;
+2 -2
View File
@@ -26,7 +26,7 @@
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcsspositionvalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssprovider.h"
G_DEFINE_TYPE (GtkCssImageRadial, _gtk_css_image_radial, GTK_TYPE_CSS_IMAGE)
@@ -208,7 +208,7 @@ gtk_css_image_radial_snapshot (GtkCssImage *image,
stop = &g_array_index (radial->stops, GtkCssImageRadialColorStop, last);
rgba = _gtk_css_rgba_value_get_rgba (stop->color);
rgba = gtk_css_color_value_get_rgba (stop->color);
offset += step;
cairo_pattern_add_color_stop_rgba (pattern,
+2 -2
View File
@@ -22,7 +22,7 @@
#include "gtkcssimagerecolorprivate.h"
#include "gtkcssimageprivate.h"
#include "gtkcsspalettevalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkiconthemeprivate.h"
#include "gdkpixbufutilsprivate.h"
@@ -74,7 +74,7 @@ lookup_symbolic_colors (GtkCssStyle *style,
const GdkRGBA *lookup;
color = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR);
*color_out = *_gtk_css_rgba_value_get_rgba (color);
*color_out = *gtk_css_color_value_get_rgba (color);
lookup = gtk_css_palette_value_get_color (palette, "success");
if (lookup)
+2 -1
View File
@@ -123,6 +123,7 @@ gtk_css_value_image_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_IMAGE = {
"GtkCssImageValue",
gtk_css_value_image_free,
gtk_css_value_image_compute,
gtk_css_value_image_equal,
@@ -135,7 +136,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_IMAGE = {
GtkCssValue *
_gtk_css_image_value_new (GtkCssImage *image)
{
static GtkCssValue none_singleton = { &GTK_CSS_VALUE_IMAGE, 1, NULL };
static GtkCssValue none_singleton = { &GTK_CSS_VALUE_IMAGE, 1, 1, NULL };
GtkCssValue *value;
if (image == NULL)
+1
View File
@@ -78,6 +78,7 @@ gtk_css_value_inherit_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_INHERIT = {
"GtkCssInheritValue",
gtk_css_value_inherit_free,
gtk_css_value_inherit_compute,
gtk_css_value_inherit_equal,
+1
View File
@@ -102,6 +102,7 @@ gtk_css_value_initial_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_INITIAL = {
"GtkCssInitialValue",
gtk_css_value_initial_free,
gtk_css_value_initial_compute,
gtk_css_value_initial_equal,
+9
View File
@@ -115,6 +115,15 @@ gtk_css_number_value_transition (GtkCssValue *start,
{
GtkCssValue *result, *mul_start, *mul_end;
if (progress == 0)
return _gtk_css_value_ref (start);
if (progress == 1)
return _gtk_css_value_ref (end);
if (start == end)
return _gtk_css_value_ref (start);
mul_start = gtk_css_number_value_multiply (start, 1 - progress);
mul_end = gtk_css_number_value_multiply (end, progress);
+2 -1
View File
@@ -32,7 +32,8 @@ typedef enum /*< skip >*/ {
GTK_CSS_PARSE_NUMBER = (1 << 2),
GTK_CSS_PARSE_LENGTH = (1 << 3),
GTK_CSS_PARSE_ANGLE = (1 << 4),
GTK_CSS_PARSE_TIME = (1 << 5)
GTK_CSS_PARSE_TIME = (1 << 5),
GTK_CSS_PARSE_NON_STATIC = (1 << 6)
} GtkCssNumberParseFlags;
typedef struct _GtkCssNumberValueClass GtkCssNumberValueClass;
+3 -2
View File
@@ -21,7 +21,7 @@
#include "gtkcssiconthemevalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkprivate.h"
struct _GtkCssValue {
@@ -244,6 +244,7 @@ gtk_css_value_palette_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_PALETTE = {
"GtkCssPaletteValue",
gtk_css_value_palette_free,
gtk_css_value_palette_compute,
gtk_css_value_palette_equal,
@@ -348,7 +349,7 @@ gtk_css_palette_value_get_color (GtkCssValue *value,
for (i = 0; i < value->n_colors; i ++)
{
if (strcmp (value->color_names[i], name) == 0)
return _gtk_css_rgba_value_get_rgba (value->color_values[i]);
return gtk_css_color_value_get_rgba (value->color_values[i]);
}
return NULL;
+2
View File
@@ -150,6 +150,7 @@ done:
}
static const GtkCssValueClass GTK_CSS_VALUE_POSITION = {
"GtkCssPositionValue",
gtk_css_value_position_free,
gtk_css_value_position_compute,
gtk_css_value_position_equal,
@@ -166,6 +167,7 @@ _gtk_css_position_value_new (GtkCssValue *x,
GtkCssValue *result;
result = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_POSITION);
result->is_static = x->is_static && y->is_static;
result->x = x;
result->y = y;
+2
View File
@@ -113,6 +113,7 @@ gtk_css_value_border_repeat_print (const GtkCssValue *repeat,
}
static const GtkCssValueClass GTK_CSS_VALUE_BACKGROUND_REPEAT = {
"GtkCssBackgroundRepeatValue",
gtk_css_value_repeat_free,
gtk_css_value_repeat_compute,
gtk_css_value_repeat_equal,
@@ -123,6 +124,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_BACKGROUND_REPEAT = {
};
static const GtkCssValueClass GTK_CSS_VALUE_BORDER_REPEAT = {
"GtkCssBorderRepeatValue",
gtk_css_value_repeat_free,
gtk_css_value_repeat_compute,
gtk_css_value_repeat_equal,
+10 -3
View File
@@ -98,6 +98,7 @@ gtk_css_value_rgba_print (const GtkCssValue *rgba,
}
static const GtkCssValueClass GTK_CSS_VALUE_RGBA = {
"GtkCssRgbaValue",
gtk_css_value_rgba_free,
gtk_css_value_rgba_compute,
gtk_css_value_rgba_equal,
@@ -107,9 +108,10 @@ static const GtkCssValueClass GTK_CSS_VALUE_RGBA = {
gtk_css_value_rgba_print
};
static GtkCssValue transparent_black_singleton = { &GTK_CSS_VALUE_RGBA, 1, { 0, 0, 0, 0 }};
static GtkCssValue transparent_white_singleton = { &GTK_CSS_VALUE_RGBA, 1, { 1, 1, 1, 0 }};
static GtkCssValue opaque_white_singleton = { &GTK_CSS_VALUE_RGBA, 1, { 1, 1, 1, 1 }};
static GtkCssValue transparent_black_singleton = { &GTK_CSS_VALUE_RGBA, 1, 1, { 0, 0, 0, 0 }};
static GtkCssValue transparent_white_singleton = { &GTK_CSS_VALUE_RGBA, 1, 1, { 1, 1, 1, 0 }};
static GtkCssValue opaque_black_singleton = { &GTK_CSS_VALUE_RGBA, 1, 1, { 0, 0, 0, 1 }};
static GtkCssValue opaque_white_singleton = { &GTK_CSS_VALUE_RGBA, 1, 1, { 1, 1, 1, 1 }};
GtkCssValue *
_gtk_css_rgba_value_new_from_rgba (const GdkRGBA *rgba)
@@ -136,6 +138,11 @@ _gtk_css_rgba_value_new_from_rgba (const GdkRGBA *rgba)
rgba->green == 1 &&
rgba->blue == 1)
return _gtk_css_value_ref (&opaque_white_singleton);
if (rgba->red == 0 &&
rgba->green == 0 &&
rgba->blue == 0)
return _gtk_css_value_ref (&opaque_black_singleton);
}
value = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_RGBA);
+72 -5
View File
@@ -200,6 +200,7 @@ gtk_css_value_shadows_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_SHADOWS = {
"GtkCssShadowsValue",
gtk_css_value_shadows_free,
gtk_css_value_shadows_compute,
gtk_css_value_shadows_equal,
@@ -209,7 +210,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_SHADOWS = {
gtk_css_value_shadows_print
};
static GtkCssValue none_singleton = { &GTK_CSS_VALUE_SHADOWS, 1, 0, { NULL } };
static GtkCssValue none_singleton = { &GTK_CSS_VALUE_SHADOWS, 1, 1, 0, { NULL } };
GtkCssValue *
_gtk_css_shadows_value_new_none (void)
@@ -222,14 +223,30 @@ gtk_css_shadows_value_new (GtkCssValue **values,
guint len)
{
GtkCssValue *result;
gboolean is_static;
int i;
g_return_val_if_fail (values != NULL, NULL);
g_return_val_if_fail (len > 0, NULL);
if (len == 1)
return values[0];
is_static = TRUE;
for (i = 0; i < len; i++)
{
if (!values[i]->is_static)
{
is_static = FALSE;
break;
}
}
result = _gtk_css_value_alloc (&GTK_CSS_VALUE_SHADOWS, sizeof (GtkCssValue) + sizeof (GtkCssValue *) * (len - 1));
result->is_static = is_static;
result->len = len;
memcpy (&result->values[0], values, sizeof (GtkCssValue *) * len);
return result;
}
@@ -266,6 +283,9 @@ _gtk_css_shadows_value_parse (GtkCssParser *parser,
gboolean
_gtk_css_shadows_value_is_none (const GtkCssValue *shadows)
{
if (gtk_css_shadow_value_is_shadow (shadows))
return FALSE;
g_return_val_if_fail (shadows->class == &GTK_CSS_VALUE_SHADOWS, TRUE);
return shadows->len == 0;
@@ -274,6 +294,9 @@ _gtk_css_shadows_value_is_none (const GtkCssValue *shadows)
gsize
gtk_css_shadows_value_get_n_shadows (const GtkCssValue *shadows)
{
if (gtk_css_shadow_value_is_shadow (shadows))
return 1;
return shadows->len;
}
@@ -283,6 +306,12 @@ gtk_css_shadows_value_get_shadows (const GtkCssValue *shadows,
{
guint i;
if (gtk_css_shadow_value_is_shadow (shadows))
{
gtk_css_shadow_value_get_shadow (shadows, &out_shadows[0]);
return;
}
for (i = 0; i < shadows->len; i++)
gtk_css_shadow_value_get_shadow (shadows->values[i], &out_shadows[i]);
}
@@ -294,6 +323,14 @@ gtk_css_shadows_value_snapshot_outset (const GtkCssValue *shadows,
{
guint i;
if (gtk_css_shadow_value_is_shadow (shadows))
{
if (!_gtk_css_shadow_value_get_inset (shadows))
gtk_css_shadow_value_snapshot_outset (shadows, snapshot, border_box);
return;
}
g_return_if_fail (shadows->class == &GTK_CSS_VALUE_SHADOWS);
for (i = 0; i < shadows->len; i++)
@@ -312,6 +349,14 @@ gtk_css_shadows_value_snapshot_inset (const GtkCssValue *shadows,
{
guint i;
if (gtk_css_shadow_value_is_shadow (shadows))
{
if (_gtk_css_shadow_value_get_inset (shadows))
gtk_css_shadow_value_snapshot_outset (shadows, snapshot, padding_box);
return;
}
g_return_if_fail (shadows->class == &GTK_CSS_VALUE_SHADOWS);
for (i = 0; i < shadows->len; i++)
@@ -331,6 +376,15 @@ _gtk_css_shadows_value_get_extents (const GtkCssValue *shadows,
GtkBorder b = { 0 }, sb;
const GtkCssValue *shadow;
if (gtk_css_shadow_value_is_shadow (shadows))
{
if (!_gtk_css_shadow_value_get_inset (shadows))
gtk_css_shadow_value_get_extents (shadows, &b);
*border = b;
return;
}
g_return_if_fail (shadows->class == &GTK_CSS_VALUE_SHADOWS);
for (i = 0; i < shadows->len; i++)
@@ -355,9 +409,22 @@ gboolean
gtk_css_shadows_value_push_snapshot (const GtkCssValue *value,
GtkSnapshot *snapshot)
{
gboolean need_shadow = FALSE;
gboolean need_shadow;
int i;
if (gtk_css_shadow_value_is_shadow (value))
{
GskShadow shadow;
if (!gtk_css_shadow_value_is_clear (value))
return FALSE;
gtk_css_shadow_value_get_shadow (value, &shadow);
gtk_snapshot_push_shadow (snapshot, &shadow, 1);
return TRUE;
}
need_shadow = FALSE;
for (i = 0; i < value->len; i++)
{
if (!gtk_css_shadow_value_is_clear (value->values[i]))
+20 -8
View File
@@ -23,7 +23,7 @@
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtksnapshotprivate.h"
#include "gtkstylecontextprivate.h"
#include "gtkpango.h"
@@ -155,6 +155,7 @@ gtk_css_value_shadow_print (const GtkCssValue *shadow,
}
static const GtkCssValueClass GTK_CSS_VALUE_SHADOW = {
"GtkCssShadowValue",
gtk_css_value_shadow_free,
gtk_css_value_shadow_compute,
gtk_css_value_shadow_equal,
@@ -176,6 +177,12 @@ gtk_css_shadow_value_new (GtkCssValue *hoffset,
retval = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_SHADOW);
retval->is_static =
hoffset->is_static &&
voffset->is_static &&
radius->is_static &&
color->is_static;
retval->hoffset = hoffset;
retval->voffset = voffset;
retval->radius = radius;
@@ -196,7 +203,7 @@ _gtk_css_shadow_value_new_for_transition (GtkCssValue *target)
_gtk_css_number_value_new (0, GTK_CSS_PX),
_gtk_css_number_value_new (0, GTK_CSS_PX),
target->inset,
_gtk_css_rgba_value_new_transparent ());
gtk_css_color_value_new_transparent ());
}
enum {
@@ -359,7 +366,7 @@ void
gtk_css_shadow_value_get_shadow (const GtkCssValue *value,
GskShadow *shadow)
{
shadow->color = *_gtk_css_rgba_value_get_rgba (value->color);
shadow->color = *gtk_css_color_value_get_rgba (value->color);
shadow->dx = _gtk_css_number_value_get (value->hoffset, 0);
shadow->dy = _gtk_css_number_value_get (value->voffset, 0);
shadow->radius = _gtk_css_number_value_get (value->radius, 0);
@@ -373,12 +380,12 @@ gtk_css_shadow_value_snapshot_outset (const GtkCssValue *shadow,
g_return_if_fail (shadow->class == &GTK_CSS_VALUE_SHADOW);
/* We don't need to draw invisible shadows */
if (gdk_rgba_is_clear (_gtk_css_rgba_value_get_rgba (shadow->color)))
if (gdk_rgba_is_clear (gtk_css_color_value_get_rgba (shadow->color)))
return;
gtk_snapshot_append_outset_shadow (snapshot,
border_box,
_gtk_css_rgba_value_get_rgba (shadow->color),
gtk_css_color_value_get_rgba (shadow->color),
_gtk_css_number_value_get (shadow->hoffset, 0),
_gtk_css_number_value_get (shadow->voffset, 0),
_gtk_css_number_value_get (shadow->spread, 0),
@@ -396,14 +403,14 @@ gtk_css_shadow_value_snapshot_inset (const GtkCssValue *shadow,
g_return_if_fail (shadow->class == &GTK_CSS_VALUE_SHADOW);
/* We don't need to draw invisible shadows */
if (gdk_rgba_is_clear (_gtk_css_rgba_value_get_rgba (shadow->color)))
if (gdk_rgba_is_clear (gtk_css_color_value_get_rgba (shadow->color)))
return;
dx = _gtk_css_number_value_get (shadow->hoffset, 0);
dy = _gtk_css_number_value_get (shadow->voffset, 0);
spread = _gtk_css_number_value_get (shadow->spread, 0);
radius = _gtk_css_number_value_get (shadow->radius, 0);
color = _gtk_css_rgba_value_get_rgba (shadow->color);
color = gtk_css_color_value_get_rgba (shadow->color);
/* These are trivial to do with a color node */
if (spread == 0 && radius == 0 &&
@@ -469,6 +476,11 @@ gtk_css_shadow_value_snapshot_inset (const GtkCssValue *shadow,
gboolean
gtk_css_shadow_value_is_clear (const GtkCssValue *shadow)
{
return gdk_rgba_is_clear (_gtk_css_rgba_value_get_rgba (shadow->color));
return gdk_rgba_is_clear (gtk_css_color_value_get_rgba (shadow->color));
}
gboolean
gtk_css_shadow_value_is_shadow (const GtkCssValue *maybe_shadow)
{
return maybe_shadow->class == &GTK_CSS_VALUE_SHADOW;
}
+2 -3
View File
@@ -43,9 +43,6 @@ void gtk_css_shadow_value_get_extents (const GtkCssValue
void gtk_css_shadow_value_get_shadow (const GtkCssValue *value,
GskShadow *shadow);
void _gtk_css_shadow_value_paint_icon (const GtkCssValue *shadow,
cairo_t *cr);
void gtk_css_shadow_value_snapshot_outset (const GtkCssValue *shadow,
GtkSnapshot *snapshot,
const GskRoundedRect *border_box);
@@ -55,6 +52,8 @@ void gtk_css_shadow_value_snapshot_inset (const GtkCssValue
gboolean gtk_css_shadow_value_is_clear (const GtkCssValue *shadow);
gboolean gtk_css_shadow_value_is_shadow (const GtkCssValue *maybe_shadow);
G_END_DECLS
#endif /* __GTK_SHADOW_H__ */
+4
View File
@@ -117,6 +117,7 @@ out:
}
static const GtkCssValueClass GTK_CSS_VALUE_STRING = {
"GtkCssStringValue",
gtk_css_value_string_free,
gtk_css_value_string_compute,
gtk_css_value_string_equal,
@@ -127,6 +128,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_STRING = {
};
static const GtkCssValueClass GTK_CSS_VALUE_IDENT = {
"GtkCssIdentValue",
gtk_css_value_string_free,
gtk_css_value_string_compute,
gtk_css_value_string_equal,
@@ -148,6 +150,7 @@ _gtk_css_string_value_new_take (char *string)
GtkCssValue *result;
result = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_STRING);
result->is_static = TRUE;
result->string = string;
return result;
@@ -188,6 +191,7 @@ _gtk_css_ident_value_new_take (char *ident)
GtkCssValue *result;
result = _gtk_css_value_new (GtkCssValue, &GTK_CSS_VALUE_IDENT);
result->is_static = TRUE;
result->string = ident;
return result;
+3 -3
View File
@@ -28,7 +28,7 @@
#include "gtkcssinheritvalueprivate.h"
#include "gtkcssinitialvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssshorthandpropertyprivate.h"
#include "gtkcssstringvalueprivate.h"
#include "gtkcssfontfeaturesvalueprivate.h"
@@ -219,8 +219,8 @@ gtk_css_style_get_pango_attributes (GtkCssStyle *style)
/* text-decoration */
decoration_line = _gtk_css_text_decoration_line_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_TEXT_DECORATION_LINE));
decoration_style = _gtk_css_text_decoration_style_value_get (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_TEXT_DECORATION_STYLE));
color = _gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR));
decoration_color = _gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_TEXT_DECORATION_COLOR));
color = gtk_css_color_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR));
decoration_color = gtk_css_color_value_get_rgba (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_TEXT_DECORATION_COLOR));
switch (decoration_line)
{
+15 -14
View File
@@ -105,7 +105,7 @@ gtk_css_style_property_register (const char * name,
static void
query_length_as_int (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
g_value_init (value, G_TYPE_INT);
@@ -114,7 +114,7 @@ query_length_as_int (GtkCssStyleProperty *property,
static void
query_font_size (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
g_value_init (value, G_TYPE_DOUBLE);
@@ -123,7 +123,7 @@ query_font_size (GtkCssStyleProperty *property,
static void
query_border (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
GtkBorder border;
@@ -147,11 +147,11 @@ color_parse (GtkCssStyleProperty *property,
static void
color_query (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
g_value_init (value, GDK_TYPE_RGBA);
g_value_set_boxed (value, _gtk_css_rgba_value_get_rgba (css_value));
g_value_set_boxed (value, gtk_css_color_value_get_rgba (css_value));
}
static GtkCssValue *
@@ -200,7 +200,7 @@ font_family_parse (GtkCssStyleProperty *property,
static void
font_family_query (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
GPtrArray *array;
@@ -234,7 +234,7 @@ font_style_parse (GtkCssStyleProperty *property,
static void
font_style_query (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
g_value_init (value, PANGO_TYPE_STYLE);
@@ -267,7 +267,7 @@ font_weight_parse (GtkCssStyleProperty *property,
static void
font_weight_query (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
g_value_init (value, PANGO_TYPE_WEIGHT);
@@ -288,7 +288,7 @@ font_stretch_parse (GtkCssStyleProperty *property,
static void
font_stretch_query (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
g_value_init (value, PANGO_TYPE_STRETCH);
@@ -309,7 +309,7 @@ parse_border_style (GtkCssStyleProperty *property,
static void
query_border_style (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
g_value_init (value, GTK_TYPE_BORDER_STYLE);
@@ -361,7 +361,7 @@ opacity_parse (GtkCssStyleProperty *property,
static void
opacity_query (GtkCssStyleProperty *property,
const GtkCssValue *css_value,
GtkCssValue *css_value,
GValue *value)
{
g_value_init (value, G_TYPE_DOUBLE);
@@ -868,7 +868,8 @@ parse_border_width (GtkCssStyleProperty *property,
{
return _gtk_css_number_value_parse (parser,
GTK_CSS_POSITIVE_ONLY
| GTK_CSS_PARSE_LENGTH);
| GTK_CSS_PARSE_LENGTH
| GTK_CSS_PARSE_NON_STATIC);
}
static GtkCssValue *
@@ -947,7 +948,7 @@ _gtk_css_style_property_init_properties (void)
GTK_CSS_AFFECTS_CONTENT | GTK_CSS_AFFECTS_SYMBOLIC_ICON,
color_parse,
color_query,
_gtk_css_rgba_value_new_white ());
gtk_css_color_value_new_white ());
gtk_css_style_property_register ("-gtk-dpi",
GTK_CSS_PROPERTY_DPI,
G_TYPE_NONE,
@@ -991,7 +992,7 @@ _gtk_css_style_property_init_properties (void)
GTK_CSS_AFFECTS_BACKGROUND,
color_parse,
color_query,
_gtk_css_rgba_value_new_transparent ());
gtk_css_color_value_new_transparent ());
gtk_css_style_property_register ("font-family",
GTK_CSS_PROPERTY_FONT_FAMILY,
+1 -1
View File
@@ -37,7 +37,7 @@ typedef struct _GtkCssStylePropertyClass GtkCssStylePropertyClass;
typedef GtkCssValue * (* GtkCssStylePropertyParseFunc) (GtkCssStyleProperty *property,
GtkCssParser *parser);
typedef void (* GtkCssStylePropertyQueryFunc) (GtkCssStyleProperty *property,
const GtkCssValue *cssvalue,
GtkCssValue *cssvalue,
GValue *value);
struct _GtkCssStyleProperty
{
+33 -1
View File
@@ -590,6 +590,7 @@ gtk_css_value_transform_transition (GtkCssValue *start,
}
result = gtk_css_transform_value_alloc (MAX (start->n_transforms, end->n_transforms));
result->is_static = start->is_static && end->is_static;
for (i = 0; i < n; i++)
{
@@ -790,6 +791,7 @@ gtk_css_value_transform_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_TRANSFORM = {
"GtkCssTransformValue",
gtk_css_value_transform_free,
gtk_css_value_transform_compute,
gtk_css_value_transform_equal,
@@ -799,7 +801,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_TRANSFORM = {
gtk_css_value_transform_print
};
static GtkCssValue none_singleton = { &GTK_CSS_VALUE_TRANSFORM, 1, 0, { { GTK_CSS_TRANSFORM_NONE } } };
static GtkCssValue none_singleton = { &GTK_CSS_VALUE_TRANSFORM, 1, 1, 0, { { GTK_CSS_TRANSFORM_NONE } } };
static GtkCssValue *
gtk_css_transform_value_alloc (guint n_transforms)
@@ -930,6 +932,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
GtkCssValue *value;
GArray *array;
guint i;
gboolean is_static = TRUE;
if (gtk_css_parser_try_ident (parser, "none"))
return _gtk_css_transform_value_new_none ();
@@ -966,6 +969,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
goto fail;
transform.type = GTK_CSS_TRANSFORM_PERSPECTIVE;
is_static = is_static && transform.perspective.depth->is_static;
}
else if (gtk_css_parser_has_function (parser, "rotate") ||
gtk_css_parser_has_function (parser, "rotateZ"))
@@ -977,6 +981,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.rotate.x = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
transform.rotate.y = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
transform.rotate.z = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
is_static = is_static && transform.rotate.angle->is_static;
}
else if (gtk_css_parser_has_function (parser, "rotate3d"))
{
@@ -990,6 +995,10 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
}
transform.type = GTK_CSS_TRANSFORM_ROTATE;
is_static = is_static && transform.rotate.angle->is_static &&
transform.rotate.x->is_static &&
transform.rotate.y->is_static &&
transform.rotate.z->is_static;
}
else if (gtk_css_parser_has_function (parser, "rotateX"))
{
@@ -1000,6 +1009,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.rotate.x = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
transform.rotate.y = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
transform.rotate.z = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
is_static = is_static && transform.rotate.angle->is_static;
}
else if (gtk_css_parser_has_function (parser, "rotateY"))
{
@@ -1010,6 +1020,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.rotate.x = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
transform.rotate.y = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
transform.rotate.z = _gtk_css_number_value_new (0, GTK_CSS_NUMBER);
is_static = is_static && transform.rotate.angle->is_static;
}
else if (gtk_css_parser_has_function (parser, "scale"))
{
@@ -1029,6 +1040,8 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
else
transform.scale.y = gtk_css_value_ref (values[0]);
transform.scale.z = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
is_static = is_static && transform.scale.x->is_static &&
transform.scale.y->is_static;
}
else if (gtk_css_parser_has_function (parser, "scale3d"))
{
@@ -1046,6 +1059,9 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.scale.x = values[0];
transform.scale.y = values[1];
transform.scale.z = values[2];
is_static = is_static && transform.scale.x->is_static &&
transform.scale.y->is_static &&
transform.scale.z->is_static;
}
else if (gtk_css_parser_has_function (parser, "scaleX"))
{
@@ -1055,6 +1071,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.type = GTK_CSS_TRANSFORM_SCALE;
transform.scale.y = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
transform.scale.z = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
is_static = is_static && transform.scale.x->is_static;
}
else if (gtk_css_parser_has_function (parser, "scaleY"))
{
@@ -1064,6 +1081,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.type = GTK_CSS_TRANSFORM_SCALE;
transform.scale.x = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
transform.scale.z = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
is_static = is_static && transform.scale.y->is_static;
}
else if (gtk_css_parser_has_function (parser, "scaleZ"))
{
@@ -1073,6 +1091,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.type = GTK_CSS_TRANSFORM_SCALE;
transform.scale.x = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
transform.scale.y = _gtk_css_number_value_new (1, GTK_CSS_NUMBER);
is_static = is_static && transform.scale.z->is_static;
}
else if (gtk_css_parser_has_function (parser, "skew"))
{
@@ -1088,6 +1107,8 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.type = GTK_CSS_TRANSFORM_SKEW;
transform.skew.x = values[0];
transform.skew.y = values[1];
is_static = is_static && transform.skew.x->is_static &&
transform.skew.y->is_static;
}
else if (gtk_css_parser_has_function (parser, "skewX"))
{
@@ -1095,6 +1116,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
goto fail;
transform.type = GTK_CSS_TRANSFORM_SKEW_X;
is_static = is_static && transform.skew_x.skew->is_static;
}
else if (gtk_css_parser_has_function (parser, "skewY"))
{
@@ -1102,6 +1124,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
goto fail;
transform.type = GTK_CSS_TRANSFORM_SKEW_Y;
is_static = is_static && transform.skew_y.skew->is_static;
}
else if (gtk_css_parser_has_function (parser, "translate"))
{
@@ -1121,6 +1144,8 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
else
transform.translate.y = _gtk_css_number_value_new (0, GTK_CSS_PX);
transform.translate.z = _gtk_css_number_value_new (0, GTK_CSS_PX);
is_static = is_static && transform.translate.x->is_static &&
transform.translate.y->is_static;
}
else if (gtk_css_parser_has_function (parser, "translate3d"))
{
@@ -1138,6 +1163,9 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.translate.x = values[0];
transform.translate.y = values[1];
transform.translate.z = values[2];
is_static = is_static && transform.translate.x->is_static &&
transform.translate.y->is_static &&
transform.translate.z->is_static;
}
else if (gtk_css_parser_has_function (parser, "translateX"))
{
@@ -1147,6 +1175,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.type = GTK_CSS_TRANSFORM_TRANSLATE;
transform.translate.y = _gtk_css_number_value_new (0, GTK_CSS_PX);
transform.translate.z = _gtk_css_number_value_new (0, GTK_CSS_PX);
is_static = is_static && transform.translate.x->is_static;
}
else if (gtk_css_parser_has_function (parser, "translateY"))
{
@@ -1156,6 +1185,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.type = GTK_CSS_TRANSFORM_TRANSLATE;
transform.translate.x = _gtk_css_number_value_new (0, GTK_CSS_PX);
transform.translate.z = _gtk_css_number_value_new (0, GTK_CSS_PX);
is_static = is_static && transform.translate.y->is_static;
}
else if (gtk_css_parser_has_function (parser, "translateZ"))
{
@@ -1165,6 +1195,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
transform.type = GTK_CSS_TRANSFORM_TRANSLATE;
transform.translate.x = _gtk_css_number_value_new (0, GTK_CSS_PX);
transform.translate.y = _gtk_css_number_value_new (0, GTK_CSS_PX);
is_static = is_static && transform.translate.z->is_static;
}
else
{
@@ -1181,6 +1212,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
}
value = gtk_css_transform_value_alloc (array->len);
value->is_static = is_static;
memcpy (value->transforms, array->data, sizeof (GtkCssTransform) * array->len);
g_array_free (array, TRUE);
+1
View File
@@ -82,6 +82,7 @@ gtk_css_value_unset_print (const GtkCssValue *value,
}
static const GtkCssValueClass GTK_CSS_VALUE_UNSET = {
"GtkCssUnsetValue",
gtk_css_value_unset_free,
gtk_css_value_unset_compute,
gtk_css_value_unset_equal,
+50 -1
View File
@@ -29,6 +29,47 @@ struct _GtkCssValue {
G_DEFINE_BOXED_TYPE (GtkCssValue, _gtk_css_value, _gtk_css_value_ref, _gtk_css_value_unref)
static GHashTable *counters;
static void
dump_value_counts (void)
{
GHashTableIter iter;
gpointer key;
gpointer value;
g_hash_table_iter_init (&iter, counters);
while (g_hash_table_iter_next (&iter, &key, &value))
{
const char *class = key;
int *c = value;
g_print ("%d %d %s\n", c[0], c[0] - c[1], class);
}
}
static void
count_value (const char *class, int delta)
{
int *c;
if (!counters)
{
counters = g_hash_table_new (g_str_hash, g_str_equal);
atexit (dump_value_counts);
}
c = g_hash_table_lookup (counters, class);
if (!c)
{
c = g_new0 (int, 2);
g_hash_table_insert (counters, (gpointer)class, c);
}
if (delta == 1)
c[0]++;
else
c[1]++;
}
GtkCssValue *
_gtk_css_value_alloc (const GtkCssValueClass *klass,
gsize size)
@@ -39,6 +80,9 @@ _gtk_css_value_alloc (const GtkCssValueClass *klass,
value->class = klass;
value->ref_count = 1;
value->is_static = FALSE;
count_value (klass->type_name, 1);
return value;
}
@@ -63,6 +107,8 @@ gtk_css_value_unref (GtkCssValue *value)
if (value->ref_count > 0)
return;
count_value (value->class->type_name, -1);
value->class->free (value);
}
@@ -88,7 +134,10 @@ _gtk_css_value_compute (GtkCssValue *value,
GtkCssStyle *style,
GtkCssStyle *parent_style)
{
return value->class->compute (value, property_id, provider, style, parent_style);
if (value->is_static)
return _gtk_css_value_ref (value);
else
return value->class->compute (value, property_id, provider, style, parent_style);
}
gboolean
+3 -1
View File
@@ -37,9 +37,11 @@ typedef struct _GtkCssValueClass GtkCssValueClass;
/* using define instead of struct here so compilers get the packing right */
#define GTK_CSS_VALUE_BASE \
const GtkCssValueClass *class; \
gint ref_count;
gint ref_count; \
gboolean is_static;
struct _GtkCssValueClass {
const char *type_name;
void (* free) (GtkCssValue *value);
GtkCssValue * (* compute) (GtkCssValue *value,
+2 -2
View File
@@ -40,7 +40,7 @@
#include "gtkiconthemeprivate.h"
#include "gtkcsspalettevalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkdebug.h"
#include "gtkiconcacheprivate.h"
#include "gtkintl.h"
@@ -3870,7 +3870,7 @@ gtk_icon_theme_lookup_symbolic_colors (GtkCssStyle *style,
color = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_COLOR);
palette = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_ICON_PALETTE);
*color_out = *_gtk_css_rgba_value_get_rgba (color);
*color_out = *gtk_css_color_value_get_rgba (color);
lookup = gtk_css_palette_value_get_color (palette, "success");
if (lookup)
+2 -2
View File
@@ -25,7 +25,7 @@
#include "gtkcssimagebuiltinprivate.h"
#include "gtkcssimagevalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssshadowsvalueprivate.h"
#include "gtkcsstransformvalueprivate.h"
#include "gtkhslaprivate.h"
@@ -490,7 +490,7 @@ gtk_do_render_line (GtkStyleContext *context,
cairo_save (cr);
color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_COLOR));
color = gtk_css_color_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_COLOR));
cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
cairo_set_line_width (cr, 1);
+2 -2
View File
@@ -33,7 +33,7 @@
#include "gtkcssshadowsvalueprivate.h"
#include "gtkcsspositionvalueprivate.h"
#include "gtkcssrepeatvalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssstyleprivate.h"
#include "gtkcsstypesprivate.h"
@@ -278,7 +278,7 @@ gtk_css_style_snapshot_background (GtkCssBoxes *boxes,
GskBlendMode *blend_mode_values;
background_image = gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BACKGROUND_IMAGE);
bg_color = _gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BACKGROUND_COLOR));
bg_color = gtk_css_color_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BACKGROUND_COLOR));
box_shadow = gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BOX_SHADOW);
/* This is the common default case of no background */
+6 -6
View File
@@ -31,7 +31,7 @@
#include "gtkcssimagevalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrepeatvalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssstyleprivate.h"
#include "gtkhslaprivate.h"
#include "gtkroundedboxprivate.h"
@@ -683,10 +683,10 @@ gtk_css_style_snapshot_border (GtkCssBoxes *boxes,
gtk_css_boxes_get_padding_rect (boxes)))
return;
colors[0] = *_gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BORDER_TOP_COLOR));
colors[1] = *_gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BORDER_RIGHT_COLOR));
colors[2] = *_gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BORDER_BOTTOM_COLOR));
colors[3] = *_gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BORDER_LEFT_COLOR));
colors[0] = *gtk_css_color_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BORDER_TOP_COLOR));
colors[1] = *gtk_css_color_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BORDER_RIGHT_COLOR));
colors[2] = *gtk_css_color_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BORDER_BOTTOM_COLOR));
colors[3] = *gtk_css_color_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_BORDER_LEFT_COLOR));
alpha_test_vector = graphene_simd4f_init (colors[0].alpha, colors[1].alpha, colors[2].alpha, colors[3].alpha);
if (graphene_simd4f_is_zero4 (alpha_test_vector))
@@ -726,7 +726,7 @@ gtk_css_style_snapshot_outline (GtkCssBoxes *boxes,
border_style[1] = border_style[2] = border_style[3] = border_style[0];
border_width[0] = _gtk_css_number_value_get (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_OUTLINE_WIDTH), 100);
border_width[3] = border_width[2] = border_width[1] = border_width[0];
colors[0] = *_gtk_css_rgba_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_OUTLINE_COLOR));
colors[0] = *gtk_css_color_value_get_rgba (gtk_css_style_get_value (boxes->style, GTK_CSS_PROPERTY_OUTLINE_COLOR));
colors[3] = colors[2] = colors[1] = colors[0];
snapshot_border (snapshot,
+2 -2
View File
@@ -20,7 +20,7 @@
#include "gtksnapshot.h"
#include "gtksnapshotprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssshadowsvalueprivate.h"
#include "gtkdebug.h"
#include "gtkrenderbackgroundprivate.h"
@@ -1732,7 +1732,7 @@ gtk_snapshot_render_layout (GtkSnapshot *snapshot,
gtk_snapshot_save (snapshot);
gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT (x, y));
fg_color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_COLOR));
fg_color = gtk_css_color_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_COLOR));
shadows_value = _gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_TEXT_SHADOW);
has_shadow = gtk_css_shadows_value_push_snapshot (shadows_value, snapshot);
+2 -2
View File
@@ -31,7 +31,7 @@
#include "gtkcssnodeprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcsspathnodeprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssstylepropertyprivate.h"
#include "gtkcsstransientnodeprivate.h"
@@ -1346,7 +1346,7 @@ gtk_style_context_resolve_color (GtkStyleContext *context,
if (val == NULL)
return FALSE;
*result = *_gtk_css_rgba_value_get_rgba (val);
*result = *gtk_css_color_value_get_rgba (val);
_gtk_css_value_unref (val);
return TRUE;
}
+3 -3
View File
@@ -29,7 +29,7 @@
#include "gtkcellrenderer.h"
#include "gtkcontainer.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssstylepropertyprivate.h"
#include "gtkdragdest.h"
#include "gtkdragsource.h"
@@ -4213,7 +4213,7 @@ gtk_tree_view_snapshot_grid_line (GtkTreeView *tree_view,
const GdkRGBA *grid_line_color;
context = gtk_widget_get_style_context (GTK_WIDGET (tree_view));
grid_line_color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context,
grid_line_color = gtk_css_color_value_get_rgba (_gtk_style_context_peek_property (context,
GTK_CSS_PROPERTY_BORDER_TOP_COLOR));
if (!gdk_rgba_equal (grid_line_color, &tree_view->grid_line_color) ||
@@ -4287,7 +4287,7 @@ gtk_tree_view_snapshot_tree_line (GtkTreeView *tree_view,
const GdkRGBA *tree_line_color;
context = gtk_widget_get_style_context (GTK_WIDGET (tree_view));
tree_line_color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context,
tree_line_color = gtk_css_color_value_get_rgba (_gtk_style_context_peek_property (context,
GTK_CSS_PROPERTY_BORDER_LEFT_COLOR));
if (!gdk_rgba_equal (tree_line_color, &tree_view->tree_line_color) ||
+2 -2
View File
@@ -37,7 +37,7 @@
#include "gtkcontainerprivate.h"
#include "gtkcsscornervalueprivate.h"
#include "gtkcssiconthemevalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssshadowsvalueprivate.h"
#include "gtkcssstylepropertyprivate.h"
#include "gtkdragdest.h"
@@ -5460,7 +5460,7 @@ update_opaque_region (GtkWindow *window,
context = gtk_widget_get_style_context (widget);
is_opaque = gdk_rgba_is_opaque (_gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_BACKGROUND_COLOR)));
is_opaque = gdk_rgba_is_opaque (gtk_css_color_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_BACKGROUND_COLOR)));
if (gtk_widget_get_opacity (widget) < 1.0)
is_opaque = FALSE;
+2 -2
View File
@@ -15,9 +15,9 @@ d {
}
e {
animation-delay: 5ms;
animation-delay: 0.0050000000000000001s;
}
f {
animation-delay: 5ms, 6s;
animation-delay: 0.0050000000000000001s, 6s;
}
@@ -15,9 +15,9 @@ d {
}
e {
animation-duration: 5ms;
animation-duration: 0.0050000000000000001s;
}
f {
animation-duration: 5ms, 6s;
animation-duration: 0.0050000000000000001s, 6s;
}
+1 -1
View File
@@ -1 +1 @@
@define-color color shade(rgb(249,160,57), 1.3);
@define-color color rgb(255,203,143);
+1 -1
View File
@@ -1 +1 @@
@define-color color mix(shade(rgb(18,18,18), 0.5), mix(rgb(26,51,255), @blue, 0.5), 0.20000000000000001);
@define-color color mix(rgb(9,9,9), mix(rgb(26,51,255), @blue, 0.5), 0.20000000000000001);
@@ -80,7 +80,7 @@ h {
i {
background-clip: padding-box, content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none;
background-origin: padding-box, content-box;
background-position: left top, left top;
@@ -90,7 +90,7 @@ i {
j {
background-clip: padding-box, border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none;
background-origin: padding-box, border-box, padding-box, padding-box;
background-position: left top, left top, left top, left top;
@@ -190,7 +190,7 @@ s {
t {
background-clip: padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none;
background-origin: padding-box, padding-box;
background-position: 5px bottom, left top;
@@ -230,7 +230,7 @@ w {
x {
background-clip: content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none;
background-origin: content-box, padding-box;
background-position: 10%, left top;
@@ -270,7 +270,7 @@ ab {
bb {
background-clip: content-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: content-box, border-box, padding-box;
background-position: 5px bottom, center, 5px bottom;
@@ -370,7 +370,7 @@ kb {
lb {
background-clip: content-box, border-box, padding-box, border-box, border-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */;
background-origin: content-box, border-box, content-box, padding-box, border-box, content-box, padding-box;
background-position: 5px bottom, left top, center, left top, 10%, center, left top;
@@ -420,7 +420,7 @@ pb {
qb {
background-clip: border-box, content-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: padding-box, border-box, border-box, border-box;
background-position: left top, center, left top, left top;
@@ -450,7 +450,7 @@ sb {
tb {
background-clip: border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: padding-box;
background-position: 10%;
@@ -460,7 +460,7 @@ tb {
ub {
background-clip: padding-box, border-box, border-box, border-box, content-box, content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none /* FIXME */;
background-origin: padding-box, padding-box, border-box, padding-box, content-box, content-box;
background-position: left top, center, 10%, left top, left top, 5px bottom;
@@ -660,7 +660,7 @@ nc {
oc {
background-clip: padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: padding-box;
background-position: center;
@@ -720,7 +720,7 @@ tc {
uc {
background-clip: content-box, padding-box, padding-box, border-box, padding-box, content-box, border-box, border-box, border-box, border-box, border-box, border-box, border-box, border-box, padding-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, none /* FIXME */, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, none /* FIXME */, none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */;
background-origin: content-box, padding-box, content-box, padding-box, padding-box, content-box, padding-box, padding-box, padding-box, padding-box, border-box, padding-box, padding-box, padding-box, padding-box, padding-box, border-box;
background-position: center, 10%, left top, left top, 10%, left top, center, 10%, left top, 5px bottom, 5px bottom, left top, 10%, left top, 10%, center, center;
@@ -740,7 +740,7 @@ vc {
wc {
background-clip: padding-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: border-box, padding-box, border-box;
background-position: left top, left top, 5px bottom;
@@ -820,7 +820,7 @@ dd {
ed {
background-clip: content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: content-box;
background-position: center;
@@ -850,7 +850,7 @@ gd {
hd {
background-clip: content-box, padding-box, padding-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */, none /* FIXME */;
background-origin: content-box, padding-box, padding-box, content-box;
background-position: left top, 5px bottom, 5px bottom, left top;
@@ -920,7 +920,7 @@ nd {
od {
background-clip: border-box, padding-box, border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none, none /* FIXME */;
background-origin: padding-box, padding-box, padding-box, padding-box, padding-box;
background-position: center, left top, left top, 5px bottom, left top;
@@ -1020,7 +1020,7 @@ xd {
yd {
background-clip: content-box, padding-box, border-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */, none /* FIXME */, none /* FIXME */;
background-origin: padding-box, padding-box, border-box, padding-box, content-box;
background-position: left top, 10%, 10%, 10%, left top;
@@ -1320,7 +1320,7 @@ bf {
cf {
background-clip: border-box, content-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */;
background-origin: padding-box, content-box, border-box, border-box;
background-position: left top, left top, 5px bottom, left top;
@@ -1410,7 +1410,7 @@ kf {
lf {
background-clip: content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: content-box;
background-position: center;
@@ -1480,7 +1480,7 @@ rf {
sf {
background-clip: padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: padding-box;
background-position: left top;
@@ -1490,7 +1490,7 @@ sf {
tf {
background-clip: padding-box, content-box, padding-box, border-box, border-box, content-box, content-box, padding-box, border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */, none, none;
background-origin: content-box, content-box, padding-box, padding-box, padding-box, content-box, padding-box, border-box, border-box, border-box;
background-position: center, 5px bottom, left top, left top, center, 10%, 10%, 5px bottom, 10%, left top;
@@ -1560,7 +1560,7 @@ zf {
ag {
background-clip: border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: padding-box;
background-position: left top;
@@ -1740,7 +1740,7 @@ rg {
sg {
background-clip: border-box, padding-box, content-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none, none, none;
background-origin: border-box, content-box, border-box, content-box, padding-box;
background-position: left top, 5px bottom, 10%, left top, left top;
@@ -1810,7 +1810,7 @@ yg {
zg {
background-clip: content-box, content-box, content-box, content-box, border-box, padding-box, content-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none /* FIXME */, none, none, none /* FIXME */, none /* FIXME */, none /* FIXME */, none;
background-origin: content-box, content-box, border-box, content-box, padding-box, padding-box, content-box, padding-box, border-box;
background-position: 10%, left top, center, 5px bottom, center, left top, left top, center, left top;
@@ -2000,7 +2000,7 @@ rh {
sh {
background-clip: padding-box, border-box, border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */;
background-origin: padding-box, border-box, padding-box, padding-box;
background-position: center, left top, 10%, 10%;
@@ -2050,7 +2050,7 @@ wh {
xh {
background-clip: border-box, border-box, border-box, padding-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none, none /* FIXME */, none;
background-origin: border-box, content-box, padding-box, border-box, padding-box, padding-box;
background-position: center, 5px bottom, left top, left top, 10%, center;
@@ -2210,7 +2210,7 @@ mi {
ni {
background-clip: border-box, border-box, padding-box, border-box, padding-box, padding-box, border-box, content-box, border-box, padding-box, border-box, padding-box, border-box, padding-box, border-box, padding-box, content-box, border-box, border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none /* FIXME */, none, none /* FIXME */, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none, none, none, none, none, none, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: padding-box, border-box, content-box, padding-box, padding-box, padding-box, padding-box, content-box, padding-box, content-box, padding-box, padding-box, padding-box, padding-box, border-box, border-box, padding-box, content-box, padding-box, padding-box;
background-position: left top, center, 5px bottom, left top, center, left top, center, left top, left top, left top, 10%, left top, left top, center, left top, 5px bottom, left top, center, left top, left top;
@@ -2280,7 +2280,7 @@ ti {
ui {
background-clip: border-box, border-box, content-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, none;
background-origin: border-box, content-box, content-box, content-box;
background-position: left top, 5px bottom, 10%, 5px bottom;
@@ -2380,7 +2380,7 @@ dj {
ej {
background-clip: border-box, border-box, border-box, content-box, border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none;
background-origin: padding-box, border-box, padding-box, content-box, padding-box, padding-box, border-box;
background-position: 5px bottom, center, 10%, center, left top, center, 10%;
@@ -2390,7 +2390,7 @@ ej {
fj {
background-clip: content-box, padding-box, padding-box, content-box, content-box, content-box, content-box, padding-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none /* FIXME */, none, none /* FIXME */, none, none /* FIXME */, none /* FIXME */, none /* FIXME */, none;
background-origin: content-box, padding-box, content-box, content-box, content-box, content-box, content-box, padding-box, padding-box;
background-position: 10%, center, left top, 10%, left top, left top, center, center, center;
@@ -2430,7 +2430,7 @@ ij {
jj {
background-clip: content-box, padding-box, border-box, content-box, content-box, content-box, border-box, border-box, border-box, border-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none /* FIXME */, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: border-box, padding-box, padding-box, content-box, content-box, content-box, padding-box, border-box, padding-box, padding-box, content-box, padding-box;
background-position: 10%, center, left top, left top, left top, left top, left top, left top, 5px bottom, center, left top, left top;
@@ -2510,7 +2510,7 @@ qj {
rj {
background-clip: padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: padding-box;
background-position: 10%;
@@ -2600,7 +2600,7 @@ zj {
ak {
background-clip: content-box, padding-box, padding-box, content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none;
background-origin: content-box, padding-box, padding-box, border-box;
background-position: 10%, left top, 5px bottom, 10%;
@@ -2620,7 +2620,7 @@ bk {
ck {
background-clip: content-box, content-box, border-box, padding-box, border-box, content-box, border-box, border-box, content-box, border-box, border-box, border-box, border-box, padding-box, border-box, padding-box, content-box, border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, none /* FIXME */, none, none /* FIXME */, none /* FIXME */, none /* FIXME */, none, none /* FIXME */, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: content-box, content-box, border-box, padding-box, border-box, content-box, border-box, content-box, padding-box, padding-box, border-box, padding-box, padding-box, padding-box, padding-box, padding-box, content-box, content-box, padding-box;
background-position: left top, 5px bottom, center, 10%, center, 5px bottom, left top, left top, left top, 5px bottom, 10%, left top, left top, left top, center, left top, 5px bottom, 10%, left top;
@@ -2650,7 +2650,7 @@ ek {
fk {
background-clip: padding-box, content-box, padding-box, border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none;
background-origin: padding-box, content-box, border-box, padding-box, border-box, padding-box;
background-position: left top, 5px bottom, center, 10%, 5px bottom, 10%;
@@ -2660,7 +2660,7 @@ fk {
gk {
background-clip: padding-box, padding-box, border-box, content-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none /* FIXME */, none, none, none /* FIXME */;
background-origin: padding-box, padding-box, padding-box, border-box, border-box;
background-position: 5px bottom, 10%, left top, left top, left top;
@@ -2750,7 +2750,7 @@ ok {
pk {
background-clip: padding-box, border-box, content-box, content-box, padding-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none /* FIXME */, none, none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: padding-box, border-box, content-box, border-box, padding-box, content-box, padding-box;
background-position: center, left top, left top, left top, 5px bottom, left top, center;
@@ -2760,7 +2760,7 @@ pk {
qk {
background-clip: border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: padding-box;
background-position: left top;
@@ -2790,7 +2790,7 @@ sk {
tk {
background-clip: border-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none /* FIXME */;
background-origin: padding-box, content-box, padding-box;
background-position: 5px bottom, 10%, left top;
@@ -2850,7 +2850,7 @@ yk {
zk {
background-clip: border-box, border-box, padding-box, padding-box, content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none /* FIXME */, none, none;
background-origin: padding-box, border-box, padding-box, padding-box, content-box;
background-position: 5px bottom, 5px bottom, 10%, left top, left top;
@@ -2940,7 +2940,7 @@ hl {
il {
background-clip: border-box, padding-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: border-box, padding-box, content-box, border-box;
background-position: center, 5px bottom, center, 10%;
@@ -3090,7 +3090,7 @@ wl {
xl {
background-clip: border-box, padding-box, padding-box, border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: padding-box, padding-box, border-box, border-box, padding-box;
background-position: 5px bottom, center, left top, 10%, center;
@@ -3180,7 +3180,7 @@ fm {
gm {
background-clip: border-box, padding-box, content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none;
background-origin: border-box, padding-box, content-box;
background-position: left top, 10%, left top;
@@ -3210,7 +3210,7 @@ im {
jm {
background-clip: border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none;
background-origin: border-box, padding-box, padding-box;
background-position: left top, center, center;
@@ -3290,7 +3290,7 @@ qm {
rm {
background-clip: content-box, padding-box, content-box, content-box, content-box, border-box, padding-box, content-box, border-box, border-box, padding-box, border-box, border-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none, none, none /* FIXME */, none, none /* FIXME */, none /* FIXME */, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none, none, none;
background-origin: content-box, border-box, content-box, content-box, border-box, border-box, content-box, content-box, padding-box, border-box, padding-box, padding-box, padding-box, content-box, padding-box;
background-position: 5px bottom, left top, left top, left top, left top, 10%, center, left top, left top, center, 10%, left top, left top, left top, left top;
@@ -3330,7 +3330,7 @@ um {
vm {
background-clip: content-box, content-box, padding-box, content-box, padding-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none;
background-origin: content-box, content-box, border-box, content-box, padding-box, padding-box;
background-position: 10%, 10%, left top, center, left top, left top;
@@ -3370,7 +3370,7 @@ ym {
zm {
background-clip: border-box, border-box, padding-box, border-box, padding-box, content-box, border-box, content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none;
background-origin: padding-box, padding-box, padding-box, border-box, padding-box, content-box, border-box, content-box;
background-position: 10%, 10%, left top, left top, center, left top, center, 10%;
@@ -3440,7 +3440,7 @@ fn {
gn {
background-clip: content-box, padding-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: content-box, padding-box, padding-box, border-box;
background-position: center, center, center, 10%;
@@ -3600,7 +3600,7 @@ vn {
wn {
background-clip: padding-box, border-box, border-box, border-box, padding-box, padding-box, border-box, border-box, border-box, content-box, border-box, padding-box, border-box, content-box, padding-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none /* FIXME */, none, none, none, none /* FIXME */, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: content-box, border-box, content-box, border-box, padding-box, padding-box, padding-box, padding-box, padding-box, content-box, padding-box, content-box, border-box, content-box, padding-box, border-box;
background-position: center, center, 5px bottom, 5px bottom, left top, 10%, left top, center, center, 10%, 10%, 10%, left top, 5px bottom, center, left top;
@@ -3760,7 +3760,7 @@ lo {
mo {
background-clip: border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: padding-box, padding-box;
background-position: left top, 10%;
@@ -3950,7 +3950,7 @@ ep {
fp {
background-clip: border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none /* FIXME */, none /* FIXME */;
background-origin: border-box, border-box, padding-box;
background-position: left top, center, left top;
@@ -3960,7 +3960,7 @@ fp {
gp {
background-clip: content-box, content-box, border-box, padding-box, border-box, content-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none, none, none, none /* FIXME */, none, none /* FIXME */;
background-origin: content-box, padding-box, padding-box, padding-box, border-box, content-box, padding-box, padding-box;
background-position: left top, 10%, 5px bottom, 10%, 10%, 5px bottom, center, left top;
@@ -4010,7 +4010,7 @@ kp {
lp {
background-clip: padding-box, border-box, border-box, padding-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */, none;
background-origin: padding-box, padding-box, padding-box, padding-box, border-box, padding-box;
background-position: left top, 5px bottom, center, 10%, left top, 5px bottom;
@@ -4040,7 +4040,7 @@ np {
op {
background-clip: content-box, border-box, padding-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: content-box, border-box, padding-box, border-box;
background-position: 5px bottom, left top, left top, center;
@@ -4110,7 +4110,7 @@ up {
vp {
background-clip: border-box, content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none;
background-origin: padding-box, content-box;
background-position: left top, 10%;
@@ -4290,7 +4290,7 @@ mq {
nq {
background-clip: border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: padding-box;
background-position: left top;
@@ -4420,7 +4420,7 @@ zq {
ar {
background-clip: border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: border-box;
background-position: left top;
@@ -4440,7 +4440,7 @@ br {
cr {
background-clip: border-box, padding-box, content-box, padding-box, padding-box, padding-box, border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none /* FIXME */, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none;
background-origin: padding-box, padding-box, content-box, padding-box, padding-box, content-box, border-box, padding-box;
background-position: left top, 10%, 5px bottom, 10%, left top, 5px bottom, left top, 5px bottom;
@@ -4490,7 +4490,7 @@ gr {
hr {
background-clip: border-box, border-box, content-box, content-box, border-box, border-box, border-box, border-box, content-box, border-box, border-box, padding-box, content-box, border-box, padding-box, content-box, padding-box, content-box, padding-box, border-box, border-box, content-box, border-box, border-box, border-box, border-box, padding-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none, none, none, none, none, none, none /* FIXME */, none, none, none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */;
background-origin: border-box, padding-box, padding-box, content-box, padding-box, border-box, padding-box, border-box, content-box, border-box, padding-box, border-box, content-box, border-box, content-box, border-box, padding-box, padding-box, padding-box, border-box, border-box, padding-box, padding-box, border-box, border-box, border-box, padding-box, padding-box, content-box;
background-position: center, left top, left top, left top, left top, 5px bottom, center, 5px bottom, left top, 5px bottom, 5px bottom, left top, 5px bottom, left top, 5px bottom, 5px bottom, center, left top, left top, left top, left top, left top, 10%, left top, left top, 10%, left top, left top, left top;
@@ -4710,7 +4710,7 @@ cs {
ds {
background-clip: content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */;
background-origin: padding-box;
background-position: 10%;
@@ -4770,7 +4770,7 @@ is {
js {
background-clip: padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: border-box;
background-position: left top;
@@ -4940,7 +4940,7 @@ zs {
at {
background-clip: border-box, border-box, border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none;
background-origin: border-box, padding-box, padding-box, padding-box, border-box;
background-position: center, left top, center, center, left top;
@@ -5030,7 +5030,7 @@ it {
jt {
background-clip: border-box, border-box, border-box, padding-box, border-box, content-box, border-box, border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none, none /* FIXME */, none, none /* FIXME */;
background-origin: padding-box, padding-box, padding-box, padding-box, padding-box, content-box, padding-box, padding-box, padding-box;
background-position: 10%, left top, left top, left top, 10%, 5px bottom, 10%, left top, left top;
@@ -5070,7 +5070,7 @@ mt {
nt {
background-clip: content-box, border-box, border-box, border-box, content-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none /* FIXME */, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none, none;
background-origin: content-box, border-box, padding-box, border-box, padding-box, content-box, padding-box;
background-position: left top, 5px bottom, left top, left top, left top, left top, left top;
@@ -5120,7 +5120,7 @@ rt {
st {
background-clip: content-box, padding-box, border-box, content-box, content-box, padding-box, border-box, content-box, padding-box, border-box, padding-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */, none, none, none /* FIXME */, none;
background-origin: padding-box, padding-box, border-box, content-box, content-box, padding-box, padding-box, content-box, padding-box, border-box, padding-box, border-box, padding-box;
background-position: center, 10%, 5px bottom, left top, 10%, left top, left top, left top, left top, left top, left top, 5px bottom, left top;
@@ -5200,7 +5200,7 @@ zt {
au {
background-clip: padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: padding-box;
background-position: left top;
@@ -5250,7 +5250,7 @@ eu {
fu {
background-clip: padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */;
background-origin: padding-box;
background-position: 5px bottom;
@@ -5360,7 +5360,7 @@ pu {
qu {
background-clip: border-box, border-box, padding-box, border-box, padding-box, border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none, none, none, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: padding-box, padding-box, padding-box, padding-box, padding-box, border-box, border-box, padding-box;
background-position: left top, 5px bottom, center, 5px bottom, left top, center, 10%, 5px bottom;
@@ -5400,7 +5400,7 @@ tu {
uu {
background-clip: border-box, padding-box, border-box, border-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */;
background-origin: padding-box, padding-box, padding-box, content-box, padding-box;
background-position: center, 5px bottom, 5px bottom, left top, 10%;
@@ -5490,7 +5490,7 @@ cv {
dv {
background-clip: content-box, border-box, padding-box, border-box, padding-box, content-box, content-box, padding-box, padding-box, padding-box, border-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, none, none, none, none;
background-origin: content-box, border-box, border-box, border-box, padding-box, content-box, content-box, padding-box, padding-box, padding-box, padding-box, padding-box, border-box;
background-position: left top, 5px bottom, 5px bottom, 10%, 5px bottom, center, left top, left top, 10%, 5px bottom, center, left top, 10%;
@@ -5540,7 +5540,7 @@ hv {
iv {
background-clip: border-box, content-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: border-box, padding-box, padding-box;
background-position: left top, center, left top;
@@ -5560,7 +5560,7 @@ jv {
kv {
background-clip: border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: padding-box;
background-position: left top;
@@ -5670,7 +5670,7 @@ uv {
vv {
background-clip: padding-box, border-box, padding-box, border-box, border-box, border-box, content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none, none /* FIXME */, none, none, none /* FIXME */, none;
background-origin: border-box, padding-box, padding-box, padding-box, content-box, padding-box, content-box;
background-position: left top, 5px bottom, left top, center, center, 5px bottom, left top;
@@ -5730,7 +5730,7 @@ aw {
bw {
background-clip: padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: padding-box;
background-position: center;
@@ -5910,7 +5910,7 @@ sw {
tw {
background-clip: border-box, padding-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: border-box, padding-box, padding-box;
background-position: left top, center, center;
@@ -5940,7 +5940,7 @@ vw {
ww {
background-clip: padding-box, padding-box, border-box, content-box, content-box, content-box, border-box, content-box, border-box, padding-box, padding-box, content-box, border-box, border-box, padding-box, content-box, border-box, padding-box, border-box, border-box, padding-box, border-box, border-box, padding-box, content-box, border-box, border-box, border-box, border-box, padding-box, padding-box, border-box, padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none, none, none, none, none, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, linear-gradient(rgb(255,192,203), rgb(128,0,128)), none, none /* FIXME */, none, none, none /* FIXME */, none /* FIXME */, none, none, none /* FIXME */, none, none, none, none /* FIXME */, none /* FIXME */, none, none;
background-origin: padding-box, padding-box, padding-box, content-box, content-box, border-box, border-box, content-box, border-box, padding-box, padding-box, content-box, border-box, padding-box, border-box, content-box, border-box, padding-box, border-box, border-box, padding-box, padding-box, padding-box, padding-box, content-box, border-box, padding-box, border-box, border-box, padding-box, padding-box, padding-box, padding-box;
background-position: 5px bottom, 10%, 10%, 10%, left top, 10%, 5px bottom, left top, 5px bottom, 5px bottom, left top, 10%, 10%, left top, 10%, left top, left top, left top, 5px bottom, 10%, left top, 10%, center, 5px bottom, center, left top, left top, left top, 5px bottom, left top, left top, 10%, 5px bottom;
@@ -6040,7 +6040,7 @@ fx {
gx {
background-clip: padding-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none;
background-origin: content-box;
background-position: left top;
@@ -6190,7 +6190,7 @@ ux {
vx {
background-clip: border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: border-box;
background-position: center;
@@ -6280,7 +6280,7 @@ dy {
ey {
background-clip: border-box, padding-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128)), none /* FIXME */, none, linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: border-box, padding-box, content-box, padding-box;
background-position: left top, 10%, left top, left top;
@@ -6340,7 +6340,7 @@ jy {
ky {
background-clip: content-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */;
background-origin: content-box;
background-position: left top;
@@ -6370,7 +6370,7 @@ my {
ny {
background-clip: border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: linear-gradient(rgb(255,192,203), rgb(128,0,128));
background-origin: border-box;
background-position: left top;
@@ -6590,7 +6590,7 @@ iz {
jz {
background-clip: content-box, content-box, border-box;
background-color: alpha(rgb(255,192,203), 0.5);
background-color: rgba(255,192,203,0.5);
background-image: none /* FIXME */, none /* FIXME */, none;
background-origin: padding-box, content-box, padding-box;
background-position: left top, 5px bottom, center;
+1 -1
View File
@@ -3,7 +3,7 @@ a {
}
b {
transition-duration: calc(-200ms + 1s);
transition-duration: 0.80000000000000004s;
}
c {
+5 -5
View File
@@ -49,23 +49,23 @@ l {
}
m {
color: shade(rgb(255,0,0), 1.3);
color: rgb(255,77,77);
}
n {
color: shade(rgb(255,0,0), 0.69999999999999996);
color: rgb(152,27,27);
}
o {
color: shade(rgb(0,128,0), 0.5);
color: rgb(16,48,16);
}
p {
color: alpha(rgb(0,128,0), 0.5);
color: rgba(0,128,0,0.5);
}
q {
color: mix(rgb(255,0,0), rgb(0,0,255), 0.25);
color: rgb(191,0,64);
}
r {
@@ -1,6 +1,6 @@
* {
transition-delay: 0;
transition-duration: 150ms;
transition-duration: 0.14999999999999999s;
transition-property: all;
transition-timing-function: ease-in-out;
}
+8 -8
View File
@@ -44,13 +44,13 @@ i {
}
j {
background-image: linear-gradient(1turn, rgb(255,0,0), rgb(0,0,255));
border-image-source: repeating-linear-gradient(1turn, rgb(255,0,0), rgb(0,0,255));
background-image: linear-gradient(360deg, rgb(255,0,0), rgb(0,0,255));
border-image-source: repeating-linear-gradient(360deg, rgb(255,0,0), rgb(0,0,255));
}
k {
background-image: linear-gradient(-0.25turn, rgb(255,0,0), rgb(0,0,255));
border-image-source: repeating-linear-gradient(-0.25turn, rgb(255,0,0), rgb(0,0,255));
background-image: linear-gradient(-90deg, rgb(255,0,0), rgb(0,0,255));
border-image-source: repeating-linear-gradient(-90deg, rgb(255,0,0), rgb(0,0,255));
}
l {
@@ -59,13 +59,13 @@ l {
}
m {
background-image: linear-gradient(90rad, rgb(255,0,0), rgb(0,0,255));
border-image-source: repeating-linear-gradient(90rad, rgb(255,0,0), rgb(0,0,255));
background-image: linear-gradient(5156.6201561774087deg, rgb(255,0,0), rgb(0,0,255));
border-image-source: repeating-linear-gradient(5156.6201561774087deg, rgb(255,0,0), rgb(0,0,255));
}
n {
background-image: linear-gradient(-100grad, rgb(255,0,0), rgb(0,0,255));
border-image-source: repeating-linear-gradient(-100grad, rgb(255,0,0), rgb(0,0,255));
background-image: linear-gradient(-90deg, rgb(255,0,0), rgb(0,0,255));
border-image-source: repeating-linear-gradient(-90deg, rgb(255,0,0), rgb(0,0,255));
}
o {
@@ -19,9 +19,9 @@ e {
}
f {
transition-delay: 5ms;
transition-delay: 0.0050000000000000001s;
}
g {
transition-delay: 5ms, 5s;
transition-delay: 0.0050000000000000001s, 5s;
}
@@ -19,9 +19,9 @@ e {
}
f {
transition-duration: 5ms;
transition-duration: 0.0050000000000000001s;
}
g {
transition-duration: 5ms, 5s;
transition-duration: 0.0050000000000000001s, 5s;
}
File diff suppressed because it is too large Load Diff