diff options
author | Benjamin Otte <otte@redhat.com> | 2016-02-12 07:59:06 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2016-02-13 04:49:08 +0100 |
commit | 65dd9da44a0a9d5ee211e36c6a779a682469e106 (patch) | |
tree | 949576a8d08be2e9dc5acaea132471729c7dbb2f /gtk/gtkcssnumbervalue.c | |
parent | cd6dc954f2bd173903d805fe3c4810ae25e82490 (diff) | |
download | gtk+-65dd9da44a0a9d5ee211e36c6a779a682469e106.tar.gz |
css: Add support for sums to calc()
This requires adding code to do math on number values:
gtk_css_number_value_multiply()
and
gtk_css_number_value_try_add()
were added to achieve that.
Some tests are included.
Diffstat (limited to 'gtk/gtkcssnumbervalue.c')
-rw-r--r-- | gtk/gtkcssnumbervalue.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gtk/gtkcssnumbervalue.c b/gtk/gtkcssnumbervalue.c index 12508db130..b7892c7603 100644 --- a/gtk/gtkcssnumbervalue.c +++ b/gtk/gtkcssnumbervalue.c @@ -43,6 +43,42 @@ gtk_css_number_value_has_percent (const GtkCssValue *value) } GtkCssValue * +gtk_css_number_value_multiply (const GtkCssValue *value, + double factor) +{ + GtkCssNumberValueClass *number_value_class = (GtkCssNumberValueClass *) value->class; + + return number_value_class->multiply (value, factor); +} + +GtkCssValue * +gtk_css_number_value_add (GtkCssValue *value1, + GtkCssValue *value2) +{ + GtkCssValue *sum; + + sum = gtk_css_number_value_try_add (value1, value2); + if (sum == NULL) + sum = gtk_css_calc_value_new_sum (value1, value2); + + return sum; +} + +GtkCssValue * +gtk_css_number_value_try_add (const GtkCssValue *value1, + const GtkCssValue *value2) +{ + GtkCssNumberValueClass *number_value_class; + + if (value1->class != value2->class) + return NULL; + + number_value_class = (GtkCssNumberValueClass *) value1->class; + + return number_value_class->try_add (value1, value2); +} + +GtkCssValue * _gtk_css_number_value_new (double value, GtkCssUnit unit) { |