Timm Bäder
2e89c5360a
numbervalue: Add early-out to multiply()
...
If the factor is 1, we already know what the result is going to be.
2020-01-18 08:49:52 +01:00
Timm Bäder
1200fe2daf
cssvalue: Add type names for all classes
...
This is important to have for debugging and e.g. to print statistics for
the individual css value types
2020-01-18 08:49:51 +01:00
Timm Bäder
edf56b438e
css: short-circuit gtk_css_dimension_value_try_add
...
No need to allocate a new css value for something that we already have,
because one of the two values is 0
2019-11-14 09:15:58 +01:00
Benjamin Otte
d41580adfc
calc: Have better error location range
2019-04-12 19:34:28 +02:00
Benjamin Otte
1cd9396154
css: Review error messages
...
... and move them from _gtk_css_parser_error() to the proper new error
message.
2019-04-12 19:34:28 +02:00
Benjamin Otte
e0a01ba174
css: Redo for new parser
...
This commit is still way too big, but I couldn't make it smaller.
It transitions the old CSS parser to the new parser. CSS parsing is now
tokenized, everything else is probably still buggy.
2019-04-12 19:34:28 +02:00
Benjamin Otte
5f3e5a0406
cssparser: Add gtk_css_parser_try_delim()
...
For parsing single code point delimiters. Also port calc() to use this.
2019-04-12 19:34:28 +02:00
Benjamin Otte
dce8c11b07
cssparser: Drop _gtk_css_parser_has_prefix()
...
Replace it with has_ident/has_function. The old function is a typical
string matching API, not a tokenizing one.
2019-04-12 19:34:28 +02:00
Benjamin Otte
684b6459f1
cssparser: Get rid of _gtk_css_parser_begins_with()
...
Replace it with calls to gtk_css_parser_has_token().
2019-04-12 19:34:28 +02:00
Benjamin Otte
3322599e99
css: Introduce the idea of dynamic values
...
Dynamic values are values that change their contents with the current
(monotonic) time.
This just introduces the GtkCssValue API for it.
2018-03-16 06:04:43 +01:00
Benjamin Otte
83fb7a649f
css: Merge GtkStyleProviderPrivate into GtkStyleProvider
...
This is just lots of renaming.
The interface remains private, so the public API does not change, apart
from removing the definition of the Interface object to avoid
subclassing.
2017-10-31 04:33:54 +01:00
Benjamin Otte
fb47a8d714
css: Remove deprecated number-as-pixels compatibility
...
Previously, for compatibility with GTK 3.0, we allowed specifying
numbers without units and interpreted them as pixels, even when the CSS
specification didn't.
Remove that now that we can break API.
2017-01-18 04:13:56 +01:00
Emmanuele Bassi
9557364216
gtk: Mark internal functions as static
...
These functions are only used within their compilation unit.
2016-10-17 11:44:10 +01:00
Carlos Soriano
11b3efbdda
gtkcsscalcvalue: avoid unitialized boolean
...
Since we do an OR afterwards, initializing to FALSE is correct.
2016-02-18 15:32:54 +01:00
Benjamin Otte
93eec3e52f
css: Implement transitions for numbers of different units
...
We now can transition from 10px to 100%.
Note that this requires a teensy tiny hack in
gtk_css_value_transition(), but so be it.
2016-02-13 04:49:08 +01:00
Benjamin Otte
0cda3ba3e8
calc: Allow subterms with '(' ')' bracketing
...
Some more tests included.
2016-02-13 04:49:08 +01:00
Benjamin Otte
63d1f80742
css: Add support for '*' and '/' to calc()
...
More tests are included.
2016-02-13 04:49:08 +01:00
Benjamin Otte
4a9fa1e750
css: Add API to handle order when printing calc()
...
Also, add some tests and update old ones to print calc() statements
correctly.
2016-02-13 04:49:08 +01:00
Benjamin Otte
65dd9da44a
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.
2016-02-13 04:49:08 +01:00
Benjamin Otte
cd6dc954f2
css: Add initial support for calc()
...
So far, calc() only supports literals, ie it's completely useless.
2016-02-13 04:49:08 +01:00