diff options
author | Benjamin Otte <otte@redhat.com> | 2016-02-13 02:31:47 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2016-02-13 04:49:08 +0100 |
commit | 4a9fa1e7505651c3074b1a620047f6bfc5158a5a (patch) | |
tree | 72582dcf3e10b9dff940421944ce39d6bf1dbedd /gtk/gtkcssdimensionvalue.c | |
parent | 65dd9da44a0a9d5ee211e36c6a779a682469e106 (diff) | |
download | gtk+-4a9fa1e7505651c3074b1a620047f6bfc5158a5a.tar.gz |
css: Add API to handle order when printing calc()
Also, add some tests and update old ones to print calc() statements
correctly.
Diffstat (limited to 'gtk/gtkcssdimensionvalue.c')
-rw-r--r-- | gtk/gtkcssdimensionvalue.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/gtk/gtkcssdimensionvalue.c b/gtk/gtkcssdimensionvalue.c index f1a4d90bfb..87efb7a6d6 100644 --- a/gtk/gtkcssdimensionvalue.c +++ b/gtk/gtkcssdimensionvalue.c @@ -258,6 +258,33 @@ gtk_css_value_dimension_try_add (const GtkCssValue *value1, return gtk_css_dimension_value_new (value1->value + value2->value, value1->unit); } +static gint +gtk_css_value_dimension_get_calc_term_order (const GtkCssValue *value) +{ + /* note: the order is alphabetic */ + guint order_per_unit[] = { + /* [GTK_CSS_NUMBER] = */ 0, + /* [GTK_CSS_PERCENT] = */ 16, + /* [GTK_CSS_PX] = */ 11, + /* [GTK_CSS_PT] = */ 10, + /* [GTK_CSS_EM] = */ 3, + /* [GTK_CSS_EX] = */ 4, + /* [GTK_CSS_REM] = */ 13, + /* [GTK_CSS_PC] = */ 9, + /* [GTK_CSS_IN] = */ 6, + /* [GTK_CSS_CM] = */ 1, + /* [GTK_CSS_MM] = */ 7, + /* [GTK_CSS_RAD] = */ 12, + /* [GTK_CSS_DEG] = */ 2, + /* [GTK_CSS_GRAD] = */ 5, + /* [GTK_CSS_TURN] = */ 15, + /* [GTK_CSS_S] = */ 14, + /* [GTK_CSS_MS] = */ 8 + }; + + return 1000 + order_per_unit[value->unit]; +} + static const GtkCssNumberValueClass GTK_CSS_VALUE_DIMENSION = { { gtk_css_value_dimension_free, @@ -270,7 +297,8 @@ static const GtkCssNumberValueClass GTK_CSS_VALUE_DIMENSION = { gtk_css_value_dimension_get_dimension, gtk_css_value_dimension_has_percent, gtk_css_value_dimension_multiply, - gtk_css_value_dimension_try_add + gtk_css_value_dimension_try_add, + gtk_css_value_dimension_get_calc_term_order }; GtkCssValue * |