+static GtkCssValue *
+assign_pango_variant (GtkCssStyleProperty *property,
+ const GValue *value)
+{
+ return _gtk_css_font_variant_value_new (g_value_get_enum (value));
+}
+
+static GtkCssValue *
+parse_border_style (GtkCssStyleProperty *property,
+ GtkCssParser *parser)
+{
+ GtkCssValue *value = _gtk_css_border_style_value_try_parse (parser);
+
+ if (value == NULL)
+ _gtk_css_parser_error (parser, "unknown value for property");
+
+ return value;
+}
+
+static void
+query_border_style (GtkCssStyleProperty *property,
+ const GtkCssValue *css_value,
+ GValue *value)
+{
+ g_value_init (value, GTK_TYPE_BORDER_STYLE);
+ g_value_set_enum (value, _gtk_css_border_style_value_get (css_value));
+}
+
+static GtkCssValue *
+assign_border_style (GtkCssStyleProperty *property,
+ const GValue *value)
+{
+ return _gtk_css_border_style_value_new (g_value_get_enum (value));
+}
+
+static GtkCssValue *
+parse_css_area_one (GtkCssParser *parser)
+{
+ GtkCssValue *value = _gtk_css_area_value_try_parse (parser);
+
+ if (value == NULL)
+ _gtk_css_parser_error (parser, "unknown value for property");
+
+ return value;
+}
+
+static GtkCssValue *
+parse_css_area (GtkCssStyleProperty *property,
+ GtkCssParser *parser)
+{
+ return _gtk_css_array_value_parse (parser, parse_css_area_one);
+}
+
+static GtkCssValue *
+parse_one_css_direction (GtkCssParser *parser)
+{
+ GtkCssValue *value = _gtk_css_direction_value_try_parse (parser);
+
+ if (value == NULL)
+ _gtk_css_parser_error (parser, "unknown value for property");
+
+ return value;
+}
+
+static GtkCssValue *
+parse_css_direction (GtkCssStyleProperty *property,
+ GtkCssParser *parser)
+{
+ return _gtk_css_array_value_parse (parser, parse_one_css_direction);
+}
+
+static GtkCssValue *
+opacity_parse (GtkCssStyleProperty *property,
+ GtkCssParser *parser)
+{
+ return _gtk_css_number_value_parse (parser, GTK_CSS_PARSE_NUMBER);
+}
+
+
+static GtkCssValue *
+parse_one_css_play_state (GtkCssParser *parser)
+{
+ GtkCssValue *value = _gtk_css_play_state_value_try_parse (parser);
+
+ if (value == NULL)
+ _gtk_css_parser_error (parser, "unknown value for property");
+
+ return value;
+}
+
+static GtkCssValue *
+parse_css_play_state (GtkCssStyleProperty *property,
+ GtkCssParser *parser)
+{
+ return _gtk_css_array_value_parse (parser, parse_one_css_play_state);
+}
+
+static GtkCssValue *
+parse_one_css_fill_mode (GtkCssParser *parser)
+{
+ GtkCssValue *value = _gtk_css_fill_mode_value_try_parse (parser);
+
+ if (value == NULL)
+ _gtk_css_parser_error (parser, "unknown value for property");
+
+ return value;
+}
+
+static GtkCssValue *
+parse_css_fill_mode (GtkCssStyleProperty *property,
+ GtkCssParser *parser)
+{
+ return _gtk_css_array_value_parse (parser, parse_one_css_fill_mode);
+}
+
+static GtkCssValue *
+bindings_value_parse_one (GtkCssParser *parser)
+{
+ char *name;
+
+ name = _gtk_css_parser_try_ident (parser, TRUE);
+ if (name == NULL)