]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcssstylepropertyimpl.c
filechooserbutton: Give proper names to the SELECT_FOLDER tests with cancelled dialog
[~andy/gtk] / gtk / gtkcssstylepropertyimpl.c
index 0ecad34a6452011a906daaea18e5dade105485f5..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)
 {
@@ -648,15 +658,17 @@ static GtkCssValue *
 font_size_parse (GtkCssStyleProperty *property,
                  GtkCssParser        *parser)
 {
-  gdouble d;
+  GtkCssValue *value;
 
-  if (!_gtk_css_parser_try_double (parser, &d))
-    {
-      _gtk_css_parser_error (parser, "Expected a number");
-      return NULL;
-    }
+  value = _gtk_css_font_size_value_try_parse (parser);
+  if (value)
+    return value;
 
-  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 *
@@ -874,12 +886,11 @@ _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,
-                                          /* XXX: This should be 'normal' */
-                                          _gtk_css_number_value_new (10.0, GTK_CSS_PX));
+                                          _gtk_css_font_size_value_new (GTK_CSS_FONT_SIZE_MEDIUM));
 
   /* properties that aren't referenced when computing values
    * start here */
@@ -895,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,
@@ -903,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,
@@ -911,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,
@@ -919,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,
@@ -1030,7 +1041,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("border-top-width",
                                           GTK_CSS_PROPERTY_BORDER_TOP_WIDTH,
                                           G_TYPE_INT,
-                                          GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_NO_RESIZE,
+                                          GTK_STYLE_PROPERTY_ANIMATED,
                                           parse_border_width,
                                           query_length_as_int,
                                           assign_length_from_int,
@@ -1046,7 +1057,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("border-left-width",
                                           GTK_CSS_PROPERTY_BORDER_LEFT_WIDTH,
                                           G_TYPE_INT,
-                                          GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_NO_RESIZE,
+                                          GTK_STYLE_PROPERTY_ANIMATED,
                                           parse_border_width,
                                           query_length_as_int,
                                           assign_length_from_int,
@@ -1062,7 +1073,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("border-bottom-width",
                                           GTK_CSS_PROPERTY_BORDER_BOTTOM_WIDTH,
                                           G_TYPE_INT,
-                                          GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_NO_RESIZE,
+                                          GTK_STYLE_PROPERTY_ANIMATED,
                                           parse_border_width,
                                           query_length_as_int,
                                           assign_length_from_int,
@@ -1078,7 +1089,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("border-right-width",
                                           GTK_CSS_PROPERTY_BORDER_RIGHT_WIDTH,
                                           G_TYPE_INT,
-                                          GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_NO_RESIZE,
+                                          GTK_STYLE_PROPERTY_ANIMATED,
                                           parse_border_width,
                                           query_length_as_int,
                                           assign_length_from_int,
@@ -1132,7 +1143,7 @@ _gtk_css_style_property_init_properties (void)
   gtk_css_style_property_register        ("outline-width",
                                           GTK_CSS_PROPERTY_OUTLINE_WIDTH,
                                           G_TYPE_INT,
-                                          GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_NO_RESIZE,
+                                          GTK_STYLE_PROPERTY_ANIMATED,
                                           parse_border_width,
                                           query_length_as_int,
                                           assign_length_from_int,
@@ -1379,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,