css: Introduce the idea of dynamic values
authorBenjamin Otte <otte@redhat.com>
Tue, 13 Feb 2018 04:55:33 +0000 (05:55 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 16 Mar 2018 05:04:43 +0000 (06:04 +0100)
Dynamic values are values that change their contents with the current
(monotonic) time.

This just introduces the GtkCssValue API for it.

28 files changed:
gtk/gtkcssarrayvalue.c
gtk/gtkcssbgsizevalue.c
gtk/gtkcssbordervalue.c
gtk/gtkcsscalcvalue.c
gtk/gtkcsscolorvalue.c
gtk/gtkcsscornervalue.c
gtk/gtkcssdimensionvalue.c
gtk/gtkcsseasevalue.c
gtk/gtkcssenumvalue.c
gtk/gtkcssfiltervalue.c
gtk/gtkcssfontfeaturesvalue.c
gtk/gtkcssfontvariationsvalue.c
gtk/gtkcssiconthemevalue.c
gtk/gtkcssimagevalue.c
gtk/gtkcssinheritvalue.c
gtk/gtkcssinitialvalue.c
gtk/gtkcsspalettevalue.c
gtk/gtkcsspositionvalue.c
gtk/gtkcssrepeatvalue.c
gtk/gtkcssrgbavalue.c
gtk/gtkcssshadowsvalue.c
gtk/gtkcssshadowvalue.c
gtk/gtkcssstringvalue.c
gtk/gtkcsstransformvalue.c
gtk/gtkcssunsetvalue.c
gtk/gtkcssvalue.c
gtk/gtkcssvalueprivate.h
gtk/gtkcsswin32sizevalue.c

index 27aab6f8c68bb9385c72f9d222fa7e6071a3d1e3..221632e0591cd51cb869d6210f926be98f5d534c 100644 (file)
@@ -323,6 +323,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_ARRAY = {
   gtk_css_value_array_compute,
   gtk_css_value_array_equal,
   gtk_css_value_array_transition,
+  NULL,
+  NULL,
   gtk_css_value_array_print
 };
 
index ee7d94a0c98e776052a4ebdfa241d2be08ab174a..5402f38fcb4fa2f5403ba6ae988a3d227b054257 100644 (file)
@@ -157,6 +157,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_BG_SIZE = {
   gtk_css_value_bg_size_compute,
   gtk_css_value_bg_size_equal,
   gtk_css_value_bg_size_transition,
+  NULL,
+  NULL,
   gtk_css_value_bg_size_print
 };
 
index 0345ff1e9c0b121e25b7d1474b4d6cc1a264b728..1efb5e9e16b6d86d746f37388d3632b2b149d08f 100644 (file)
@@ -144,6 +144,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_BORDER = {
   gtk_css_value_border_compute,
   gtk_css_value_border_equal,
   gtk_css_value_border_transition,
+  NULL,
+  NULL,
   gtk_css_value_border_print
 };
 
index 0185aff6c7225b49d26226c654867aaa91486761..d1a31d722e19954ab153d98d0c34f911ba300d03 100644 (file)
@@ -249,6 +249,8 @@ static const GtkCssNumberValueClass GTK_CSS_VALUE_CALC = {
     gtk_css_value_calc_compute,
     gtk_css_value_calc_equal,
     gtk_css_number_value_transition,
+    NULL,
+    NULL,
     gtk_css_value_calc_print
   },
   gtk_css_value_calc_get,
index c1dce03810ec161709ca1a340ed8de586780320f..a98f142d54bfe5ebab383c0768886faa8c074c37 100644 (file)
@@ -449,6 +449,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_COLOR = {
   gtk_css_value_color_compute,
   gtk_css_value_color_equal,
   gtk_css_value_color_transition,
+  NULL,
+  NULL,
   gtk_css_value_color_print
 };
 
index 30864c80672d230ef7c28b3987b8a21f24159103..ec7a166f7075490619f517e4c58df444585a99e1 100644 (file)
@@ -103,6 +103,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_CORNER = {
   gtk_css_value_corner_compute,
   gtk_css_value_corner_equal,
   gtk_css_value_corner_transition,
+  NULL,
+  NULL,
   gtk_css_value_corner_print
 };
 
index 648e61a4c60e674d92b0a9ef5f2192e04fdefc9e..c9c378e0cf3842d48acbf0c410f170ef36983fb0 100644 (file)
@@ -276,6 +276,8 @@ static const GtkCssNumberValueClass GTK_CSS_VALUE_DIMENSION = {
     gtk_css_value_dimension_compute,
     gtk_css_value_dimension_equal,
     gtk_css_number_value_transition,
+    NULL,
+    NULL,
     gtk_css_value_dimension_print
   },
   gtk_css_value_dimension_get,
index 1c15d2423af4ea76909236d6adc5f1f484c8a2a0..a9ab9dce40ad850c6b421921afc6c95413aa96cf 100644 (file)
@@ -139,6 +139,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_EASE = {
   gtk_css_value_ease_compute,
   gtk_css_value_ease_equal,
   gtk_css_value_ease_transition,
+  NULL,
+  NULL,
   gtk_css_value_ease_print
 };
 
index d9f38dc257f92da8b8109aa994e3120c5f12de33..4a6bbfc978d9a642c9895de0fa06065508b2f839 100644 (file)
@@ -82,6 +82,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_BORDER_STYLE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -137,6 +139,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_BLEND_MODE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -285,6 +289,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_SIZE = {
   gtk_css_value_font_size_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -339,6 +345,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_STYLE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -451,6 +459,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_WEIGHT = {
   gtk_css_value_font_weight_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_font_weight_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -524,6 +534,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_STRETCH = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -578,6 +590,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_TEXT_DECORATION_LINE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -626,6 +640,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_TEXT_DECORATION_STYLE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -674,6 +690,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_AREA = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -728,6 +746,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_DIRECTION = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -786,6 +806,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_PLAY_STATE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -839,6 +861,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FILL_MODE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -894,6 +918,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_ICON_STYLE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -948,6 +974,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_KERNING = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -1002,6 +1030,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_POSITION = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -1056,6 +1086,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_CAPS = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -1114,6 +1146,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_ALTERNATE = {
   gtk_css_value_enum_compute,
   gtk_css_value_enum_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_value_enum_print
 };
 
@@ -1225,6 +1259,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_LIGATURE = {
   gtk_css_value_enum_compute,
   gtk_css_value_flags_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_font_variant_ligature_value_print
 };
 
@@ -1329,6 +1365,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_NUMERIC = {
   gtk_css_value_enum_compute,
   gtk_css_value_flags_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_font_variant_numeric_value_print
 };
 
@@ -1430,6 +1468,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT_EAST_ASIAN = {
   gtk_css_value_enum_compute,
   gtk_css_value_flags_equal,
   gtk_css_value_enum_transition,
+  NULL,
+  NULL,
   gtk_css_font_variant_east_asian_value_print
 };
 
index 92472e3fa33b1709d76e29a8ea4d3e477139b23c..4f73e239a7f23279f3bce87c38f459a664313385 100644 (file)
@@ -697,6 +697,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FILTER = {
   gtk_css_value_filter_compute,
   gtk_css_value_filter_equal,
   gtk_css_value_filter_transition,
+  NULL,
+  NULL,
   gtk_css_value_filter_print
 };
 
index 29a389ae703a261f9f60e5a8fbf47419ad816450..8fb5728268e17b786ef152e859c995001a0eeaf7 100644 (file)
@@ -181,6 +181,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_FEATURES = {
   gtk_css_value_font_features_compute,
   gtk_css_value_font_features_equal,
   gtk_css_value_font_features_transition,
+  NULL,
+  NULL,
   gtk_css_value_font_features_print
 };
 
index 7cc5ccd76651edc6a841ef6d0dc4086b05499e2a..b073dd40d3d06670a7f66ccbd6a3109af6d8b36f 100644 (file)
@@ -180,6 +180,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIATIONS = {
   gtk_css_value_font_variations_compute,
   gtk_css_value_font_variations_equal,
   gtk_css_value_font_variations_transition,
+  NULL,
+  NULL,
   gtk_css_value_font_variations_print
 };
 
index aafd3f46b9774c4873cad92b35f0f0757ab5cbde..82e70775d09c028a298d8b81033d982e2e0a58f9 100644 (file)
@@ -115,6 +115,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_ICON_THEME = {
   gtk_css_value_icon_theme_compute,
   gtk_css_value_icon_theme_equal,
   gtk_css_value_icon_theme_transition,
+  NULL,
+  NULL,
   gtk_css_value_icon_theme_print
 };
 
index 413117f5a8aa29905566abfc395f6946d98a535a..1b674a332b6f69e6021a6c6321260f93f189ab21 100644 (file)
@@ -96,6 +96,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_IMAGE = {
   gtk_css_value_image_compute,
   gtk_css_value_image_equal,
   gtk_css_value_image_transition,
+  NULL,
+  NULL,
   gtk_css_value_image_print
 };
 
index 0be2bb60bc0b41c6cf2cb19d8f2a1486f46c81e4..f99471f37f8fda633e1947e34be9416cd095cce4 100644 (file)
@@ -82,6 +82,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_INHERIT = {
   gtk_css_value_inherit_compute,
   gtk_css_value_inherit_equal,
   gtk_css_value_inherit_transition,
+  NULL,
+  NULL,
   gtk_css_value_inherit_print
 };
 
index af9430abcbb9ed8be8406494a099ffec8a12d90b..f65ae08963c768c33a764d1283bc5c8a5c151d0e 100644 (file)
@@ -106,6 +106,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_INITIAL = {
   gtk_css_value_initial_compute,
   gtk_css_value_initial_equal,
   gtk_css_value_initial_transition,
+  NULL,
+  NULL,
   gtk_css_value_initial_print
 };
 
index 457b0566e3571f7da4bb4f2bef3fb2441a1a4ab3..ac9088482c1e82ceafdc64f0fa80179d99d2a627 100644 (file)
@@ -178,6 +178,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_PALETTE = {
   gtk_css_value_palette_compute,
   gtk_css_value_palette_equal,
   gtk_css_value_palette_transition,
+  NULL,
+  NULL,
   gtk_css_value_palette_print
 };
 
index f1655b179821f994926284c12bab07ad2ae35585..42735fe3ba4b29bc1c5f1ee47191151d03934f70 100644 (file)
@@ -154,6 +154,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_POSITION = {
   gtk_css_value_position_compute,
   gtk_css_value_position_equal,
   gtk_css_value_position_transition,
+  NULL,
+  NULL,
   gtk_css_value_position_print
 };
 
index bbd64cb0558d98edc5f57942170ec215d5ab0b8f..5cc6dab7be78d105dc1dafe837bfbe9692b66bc2 100644 (file)
@@ -117,6 +117,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_BACKGROUND_REPEAT = {
   gtk_css_value_repeat_compute,
   gtk_css_value_repeat_equal,
   gtk_css_value_repeat_transition,
+  NULL,
+  NULL,
   gtk_css_value_background_repeat_print
 };
 
@@ -125,6 +127,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_BORDER_REPEAT = {
   gtk_css_value_repeat_compute,
   gtk_css_value_repeat_equal,
   gtk_css_value_repeat_transition,
+  NULL,
+  NULL,
   gtk_css_value_border_repeat_print
 };
 /* BACKGROUND REPEAT */
index 92f3f416c756ba43f24d11e72fe672620b9608fe..a7134ef46541a16c974960e73037ac58fd57bf25 100644 (file)
@@ -102,6 +102,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_RGBA = {
   gtk_css_value_rgba_compute,
   gtk_css_value_rgba_equal,
   gtk_css_value_rgba_transition,
+  NULL,
+  NULL,
   gtk_css_value_rgba_print
 };
 
index 3fbbc527b9d9fd67a6f8db009a8bddeaef1db218..d31bb66c7a0a96e6446bd218fcf3598ad7e5b751 100644 (file)
@@ -204,6 +204,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_SHADOWS = {
   gtk_css_value_shadows_compute,
   gtk_css_value_shadows_equal,
   gtk_css_value_shadows_transition,
+  NULL,
+  NULL,
   gtk_css_value_shadows_print
 };
 
index eb5b560c6ba5f4267e95ce4418be0ce8ba12e86b..9fee5abf15323d54da37f98db9236cea527c0eb1 100644 (file)
@@ -159,6 +159,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_SHADOW = {
   gtk_css_value_shadow_compute,
   gtk_css_value_shadow_equal,
   gtk_css_value_shadow_transition,
+  NULL,
+  NULL,
   gtk_css_value_shadow_print
 };
 
index b7feae00735be3105e0073807b4c7ae511feb942..49b7d19d4d71f5a6a53d262fb369616eaf71fe9e 100644 (file)
@@ -121,6 +121,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_STRING = {
   gtk_css_value_string_compute,
   gtk_css_value_string_equal,
   gtk_css_value_string_transition,
+  NULL,
+  NULL,
   gtk_css_value_string_print
 };
 
@@ -129,6 +131,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_IDENT = {
   gtk_css_value_string_compute,
   gtk_css_value_string_equal,
   gtk_css_value_string_transition,
+  NULL,
+  NULL,
   gtk_css_value_ident_print
 };
 
index 773c2eebd42a81e2387c347f73cacf84ba64ec3f..7ce4102920274669a598eabbc8ed4f811c439077 100644 (file)
@@ -707,6 +707,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_TRANSFORM = {
   gtk_css_value_transform_compute,
   gtk_css_value_transform_equal,
   gtk_css_value_transform_transition,
+  NULL,
+  NULL,
   gtk_css_value_transform_print
 };
 
index 32550cd47bc98adccf9d09941d334c6c7d45ab93..78d143bf205cce6b66063afe8dfb676c34b41c35 100644 (file)
@@ -86,6 +86,8 @@ static const GtkCssValueClass GTK_CSS_VALUE_UNSET = {
   gtk_css_value_unset_compute,
   gtk_css_value_unset_equal,
   gtk_css_value_unset_transition,
+  NULL,
+  NULL,
   gtk_css_value_unset_print
 };
 
index f6afc22679fd5a729827cfc2652cdcbac2729803..79b0f1580477a2bf9d7858471fc074ab3706cb25 100644 (file)
@@ -44,7 +44,7 @@ _gtk_css_value_alloc (const GtkCssValueClass *klass,
 }
 
 GtkCssValue *
-_gtk_css_value_ref (GtkCssValue *value)
+gtk_css_value_ref (GtkCssValue *value)
 {
   gtk_internal_return_val_if_fail (value != NULL, NULL);
 
@@ -54,7 +54,7 @@ _gtk_css_value_ref (GtkCssValue *value)
 }
 
 void
-_gtk_css_value_unref (GtkCssValue *value)
+gtk_css_value_unref (GtkCssValue *value)
 {
   if (value == NULL)
     return;
@@ -175,3 +175,51 @@ _gtk_css_value_print (const GtkCssValue *value,
   value->class->print (value, string);
 }
 
+/**
+ * gtk_css_value_is_dynamic:
+ * @value: a #GtkCssValue
+ *
+ * A "dynamic" value has a different value at different times. This means that
+ * the value needs to be animated when time is progressing.
+ *
+ * Examples of dynamic values are animated images, such as videos or dynamic shaders.
+ *
+ * Use gtk_css_value_get_dynamic_value() to get the value for a given timestamp.
+ *
+ * Returns %TRUE if the value is dynamic
+ */
+gboolean
+gtk_css_value_is_dynamic (GtkCssValue *value)
+{
+  gtk_internal_return_val_if_fail (value != NULL, FALSE);
+
+  if (!value->class->is_dynamic)
+    return FALSE;
+
+  return value->class->is_dynamic (value);
+}
+
+/**
+ * gtk_css_value_get_dynamic_value:
+ * @value: a #GtkCssValue
+ * @monotonic_time: the timestamp for which to get the dynamic value
+ *
+ * Gets the dynamic value for a given timestamp. If @monotonic_time is 0,
+ * the default value is returned.
+ *
+ * See gtk_css_value_is_dynamic() for details about dynamic values.
+ *
+ * Returns: (transfer full): The dynamic value for @value at the given
+ *     timestamp
+ **/
+GtkCssValue *
+gtk_css_value_get_dynamic_value (GtkCssValue *value,
+                                 gint64       monotonic_time)
+{
+  gtk_internal_return_val_if_fail (value != NULL, NULL);
+
+  if (!value->class->get_dynamic_value)
+    return gtk_css_value_ref (value);
+
+  return value->class->get_dynamic_value (value, monotonic_time);
+}
index 00dfadd9b781454060b8be46e5ca78ff019fdff6..53ba739bcefbbbfb195b9f4c0333abaead74ca80 100644 (file)
@@ -51,6 +51,9 @@ struct _GtkCssValueClass {
                                                        GtkCssValue                *end,
                                                        guint                       property_id,
                                                        double                      progress);
+  gboolean      (* is_dynamic)                        (GtkCssValue                *value);
+  GtkCssValue * (* get_dynamic_value)                 (GtkCssValue                *value,
+                                                       gint64                      monotonic_time);
   void          (* print)                             (const GtkCssValue          *value,
                                                        GString                    *string);
 };
@@ -61,8 +64,10 @@ GtkCssValue *_gtk_css_value_alloc                     (const GtkCssValueClass
                                                        gsize                       size);
 #define _gtk_css_value_new(_name, _klass) ((_name *) _gtk_css_value_alloc ((_klass), sizeof (_name)))
 
-GtkCssValue *_gtk_css_value_ref                       (GtkCssValue                *value);
-void         _gtk_css_value_unref                     (GtkCssValue                *value);
+#define _gtk_css_value_ref gtk_css_value_ref
+GtkCssValue *   gtk_css_value_ref                     (GtkCssValue                *value);
+#define _gtk_css_value_unref gtk_css_value_unref
+void            gtk_css_value_unref                   (GtkCssValue                *value);
 
 GtkCssValue *_gtk_css_value_compute                   (GtkCssValue                *value,
                                                        guint                       property_id,
@@ -77,6 +82,9 @@ GtkCssValue *_gtk_css_value_transition                (GtkCssValue
                                                        GtkCssValue                *end,
                                                        guint                       property_id,
                                                        double                      progress);
+gboolean        gtk_css_value_is_dynamic              (GtkCssValue                *value);
+GtkCssValue *   gtk_css_value_get_dynamic_value       (GtkCssValue                *value,
+                                                       gint64                      monotonic_time);
 
 char *       _gtk_css_value_to_string                 (const GtkCssValue          *value);
 void         _gtk_css_value_print                     (const GtkCssValue          *value,
index 8307a8a88ea887390cc1a4e1fbb0de0e72af22c1..0136ee1200e23ec44c71961094543406967a476b 100644 (file)
@@ -253,6 +253,8 @@ static const GtkCssNumberValueClass GTK_CSS_VALUE_WIN32_SIZE = {
     gtk_css_value_win32_size_compute,
     gtk_css_value_win32_size_equal,
     gtk_css_number_value_transition,
+    NULL,
+    NULL,
     gtk_css_value_win32_size_print
   },
   gtk_css_value_win32_size_get,