]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcssstylepropertyimpl.c
Drop the Motif DND protocol
[~andy/gtk] / gtk / gtkcssstylepropertyimpl.c
index bd22a7c1d72df2698e1e53bb4b230dccf57450b2..26726d73d7a5f7850445699b45dedad96570644d 100644 (file)
@@ -66,7 +66,8 @@
 typedef enum {
   GTK_STYLE_PROPERTY_INHERIT = (1 << 0),
   GTK_STYLE_PROPERTY_ANIMATED = (1 << 1),
-  GTK_STYLE_PROPERTY_NO_RESIZE = (1 << 2)
+  GTK_STYLE_PROPERTY_NO_RESIZE = (1 << 2),
+  GTK_STYLE_PROPERTY_AFFECTS_FONT = (1 << 3)
 } GtkStylePropertyFlags;
 
 static void
@@ -89,6 +90,7 @@ gtk_css_style_property_register (const char *                   name,
   node = g_object_new (GTK_TYPE_CSS_STYLE_PROPERTY,
                        "value-type", value_type,
                        "affects-size", (flags & GTK_STYLE_PROPERTY_NO_RESIZE) ? FALSE : TRUE,
+                       "affects-font", (flags & GTK_STYLE_PROPERTY_AFFECTS_FONT) ? TRUE : FALSE,
                        "animated", (flags & GTK_STYLE_PROPERTY_ANIMATED) ? TRUE : FALSE,
                        "inherit", (flags & GTK_STYLE_PROPERTY_INHERIT) ? TRUE : FALSE,
                        "initial-value", initial_value,
@@ -418,6 +420,14 @@ parse_css_direction (GtkCssStyleProperty *property,
   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)
 {
@@ -649,19 +659,16 @@ font_size_parse (GtkCssStyleProperty *property,
                  GtkCssParser        *parser)
 {
   GtkCssValue *value;
-  gdouble d;
 
   value = _gtk_css_font_size_value_try_parse (parser);
   if (value)
     return value;
 
-  if (!_gtk_css_parser_try_double (parser, &d))
-    {
-      _gtk_css_parser_error (parser, "Expected a number");
-      return NULL;
-    }
-
-  return _gtk_css_number_value_new (d, GTK_CSS_PX);
+  return _gtk_css_number_value_parse (parser,
+                                      GTK_CSS_PARSE_LENGTH
+                                      | GTK_CSS_PARSE_PERCENT
+                                      | GTK_CSS_POSITIVE_ONLY
+                                      | GTK_CSS_NUMBER_AS_PIXELS);
 }
 
 static GtkCssValue *
@@ -879,7 +886,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("font-size",
                                           GTK_CSS_PROPERTY_FONT_SIZE,
                                           G_TYPE_DOUBLE,
-                                          GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED,
+                                          GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_AFFECTS_FONT,
                                           font_size_parse,
                                           query_length_as_double,
                                           assign_length_from_double,
@@ -899,7 +906,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("font-family",
                                           GTK_CSS_PROPERTY_FONT_FAMILY,
                                           G_TYPE_STRV,
-                                          GTK_STYLE_PROPERTY_INHERIT,
+                                          GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_AFFECTS_FONT,
                                           font_family_parse,
                                           font_family_query,
                                           font_family_assign,
@@ -907,7 +914,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("font-style",
                                           GTK_CSS_PROPERTY_FONT_STYLE,
                                           PANGO_TYPE_STYLE,
-                                          GTK_STYLE_PROPERTY_INHERIT,
+                                          GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_AFFECTS_FONT,
                                           parse_pango_style,
                                           query_pango_style,
                                           assign_pango_style,
@@ -915,7 +922,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("font-variant",
                                           GTK_CSS_PROPERTY_FONT_VARIANT,
                                           PANGO_TYPE_VARIANT,
-                                          GTK_STYLE_PROPERTY_INHERIT,
+                                          GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_AFFECTS_FONT,
                                           parse_pango_variant,
                                           query_pango_variant,
                                           assign_pango_variant,
@@ -923,7 +930,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("font-weight",
                                           GTK_CSS_PROPERTY_FONT_WEIGHT,
                                           PANGO_TYPE_WEIGHT,
-                                          GTK_STYLE_PROPERTY_INHERIT,
+                                          GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_AFFECTS_FONT,
                                           parse_pango_weight,
                                           query_pango_weight,
                                           assign_pango_weight,
@@ -1383,6 +1390,14 @@ _gtk_css_style_property_init_properties (void)
                                           NULL,
                                           NULL,
                                           _gtk_css_array_value_new (_gtk_css_fill_mode_value_new (GTK_CSS_FILL_NONE)));
+  gtk_css_style_property_register        ("opacity",
+                                          GTK_CSS_PROPERTY_OPACITY,
+                                          G_TYPE_NONE,
+                                          GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_NO_RESIZE,
+                                          opacity_parse,
+                                          NULL,
+                                          NULL,
+                                          _gtk_css_number_value_new (1, GTK_CSS_NUMBER));
 
   gtk_css_style_property_register        ("engine",
                                           GTK_CSS_PROPERTY_ENGINE,