Benjamin Otte
751187aa0c
stylecontext: Keep per-styleinfo data
...
Instead of having one global data structure, keep it per style info.
This means that we can do special tricks on the "global" style data.
2012-04-17 08:59:14 +02:00
Benjamin Otte
a737adadf8
stylecontext: Make style_data_lookup() not take a state anymore
...
Instead, use the current state of the style context.
2012-04-17 08:59:14 +02:00
Benjamin Otte
8c49cd97a7
cssvalue: Add a cssvalue for images
2012-04-17 08:59:14 +02:00
Benjamin Otte
d63b11e56b
cssvalue: Add enum values for the pango enums
...
And fix the parser to conform to the CSS spec while at it.
2012-04-17 08:59:14 +02:00
Benjamin Otte
b65d17dda8
cssvalue: Make border styles be their own value
...
... and add them via gtkcssenumvalue.[ch] which will be used for all
enums.
2012-04-17 08:59:14 +02:00
Benjamin Otte
58b6d492b8
cssvalue: Add a custom RGBA value
...
Note: custom CSS properties still use the default GtkCssValue and always
will.
So there is a difference in css values used between those, even though
they both carry a GdkRGBA payload.
2012-04-17 08:59:14 +02:00
Benjamin Otte
dcec7a5529
cssstyleproperty: Make assign_value a vfunc
2012-04-17 08:59:14 +02:00
Benjamin Otte
81dfc2776e
customproperty: Implement assign vfunc
...
I'm going to overwrite the GtkCssStyleProperty one, so better keep this
one.
2012-04-17 08:59:14 +02:00
Benjamin Otte
645309e98b
shadow: Also rename files
2012-04-17 08:59:14 +02:00
Benjamin Otte
ec5c77a552
shadow: Rename to GtkCssShadowValue
...
I don't want to confuse css values with other stuff, so there.
2012-04-17 08:59:13 +02:00
Benjamin Otte
da40ba431d
cssvalue: Remove unused function
2012-04-17 08:59:13 +02:00
Benjamin Otte
96948576bd
shadow: Move parse function into GtkShadow
...
This way, we have less public API.
And gtkcssstylepropertyimpl.c looks less scary (only 1624 lines now).
2012-04-17 08:59:13 +02:00
Benjamin Otte
ccd443796c
shadow: Make this a GtkCssValue
2012-04-17 08:59:13 +02:00
Benjamin Otte
38ac68790e
shadow: Remove _gtk_shadow_get_resolved()
...
It's unused
2012-04-17 08:59:13 +02:00
Benjamin Otte
ca4a080c8a
stylepropertyimpl: Make shadows unqueryable
...
Normal APIs couldn't use GtkShadow anyway as the type was private.
2012-04-17 08:59:13 +02:00
Benjamin Otte
281d094b42
theming: Use peek_property() calls to query shadows
2012-04-17 08:59:13 +02:00
Benjamin Otte
a33df2d1d6
cssvalue: Split number values into their own class
2012-04-17 08:59:13 +02:00
Benjamin Otte
f7c0c7677b
cssstyleproperty: Make query func a vfunc
...
This will be needed soon.
2012-04-17 08:59:13 +02:00
Benjamin Otte
6ef76f4a92
customproperty: Add our own query_value function
...
I'm about to change the CssStyleProperty one, so better copy things
here.
2012-04-17 08:59:13 +02:00
Benjamin Otte
c8e57d63ec
cssstyelproperty: Rempove specified-type and computed-type props
...
This removes the necessity to keep a GType associated with style
properties and code can now make use of GtkCssValue completely.
2012-04-17 08:59:13 +02:00
Benjamin Otte
75a5f04352
styleproperty: Remove default parse function
...
... and assert every style property brings its own.
2012-04-17 08:59:13 +02:00
Benjamin Otte
a5d001b2ba
stylepropertyimpl: Add remaining parse functions
2012-04-17 08:59:12 +02:00
Benjamin Otte
0fdc287339
styleproperty: Simplify compute_value function
...
The compute_value fallback path is only needed for custom properties,
the real style properties have custom compute functions if they need
them already.
2012-04-17 08:59:12 +02:00
Benjamin Otte
7fbc583b88
css: Move shadow parse/print/compute funcs
...
They don't belong in the style funcs, as those are for custom
properties, and the shadow type is private.
2012-04-17 08:59:12 +02:00
Benjamin Otte
dd144c2bad
stylepropertyimpl: Add parse funcs for enums
2012-04-17 08:59:12 +02:00
Benjamin Otte
86a387f571
stylepropertyimpl: Add color parsing function
...
This is in preparation for removing the specified type and computed type
properties from GtkCssStyleProperty, which is in preparation for really
using GtkCssValue classes and not GTypes.
2012-04-17 08:59:12 +02:00
Benjamin Otte
b5fc484c99
customproperty: Don't rely on querying style property
...
This way, we can remove type madness from GtkCssStyleProperty later.
2012-04-17 08:59:12 +02:00
Benjamin Otte
bc9060a591
styleproperty: Make gtk_style_property_register() not be valist
...
Instead, make the caller create a GtkCssValue in advance.
2012-04-17 08:59:12 +02:00
Benjamin Otte
ffe50c3b67
cssvalue: Add _gtk_css_value_equal()
...
For now, we return FALSE for all default css values, so this is not very
useful.
I also think of this as an optimization equal, not a guaranteed equal,
because we don't even have a notion of what "equal" means.
For example, for background-repeat, "repeat, repeat" and "repeat"
are functionally equivalent. But the cssvalue has no idea that it's used
for background-repeat.
As a more complicated example, "repeat, no-repeat" and "repeat" are
equal to what one sees as long as there's only one image listed
background-image-source. But once you start transition'ing to an image
with 2 sources, it's different...
2012-04-17 08:59:12 +02:00
Benjamin Otte
b0e764000f
cssparser: Use _gtk_css_parser_error_full()
2012-04-17 08:59:12 +02:00
Benjamin Otte
e7acdec220
cssparser: Add _gtk_css_parser_error_full()
2012-04-17 08:59:11 +02:00
Benjamin Otte
9b7640b898
styleproperty: Make _gtk_style_property_parse_value() return a CssValue
...
Also split out initial/inherit handling into a custom GtkCssValue class.
2012-04-17 08:59:11 +02:00
Benjamin Otte
718ceaec45
css: Remove _gtk_css_style_property_is_specified_type()
...
That check is going to be refactored away.
2012-04-17 08:59:11 +02:00
Benjamin Otte
04f5c8708a
cssvalue: Add a CSS value for arrays
...
Make the value auto-cycle its child values, so it can be used for
background properties.
2012-04-17 08:59:11 +02:00
Benjamin Otte
df45983fcb
cssvalue: Remove _gtk_css_value_new_take_gvalue()
...
Having two constructors from GValues complicates refactorings, so I'd
rather not have them.
2012-04-17 08:59:11 +02:00
Benjamin Otte
8e3e3d582f
cssvalue: Get rid of unused functions
2012-04-17 08:59:11 +02:00
Benjamin Otte
5ac9ba714a
styleproperty: Make _gtk_style_property_query() take a GValue
...
... and don't make it return a GtkCssValue. We want to use this for
compat with the old GValue APIs after all...
2012-04-17 08:59:11 +02:00
Benjamin Otte
58e4fdf911
styleproperty: Make print_func take a GtkCssValue
...
Also, constify GtkCssValue getters, so we can pass a const GtkCssValue
to the print_func.
2012-04-17 08:59:11 +02:00
Benjamin Otte
b728cfd3e8
cssvalue: Make the structure vtable-based
...
Don't use real classes, just a vtable.
2012-04-17 08:59:11 +02:00
Benjamin Otte
3cdb9c91ca
styleproperty: Add support for equal_func
2012-04-17 08:59:11 +02:00
Benjamin Otte
d5a2392cc7
stylecontext: Don't clear cache when only state changes
...
This takes more memory, but changes to backdrop or active state are
quite expensive otherwise.
2012-04-17 08:59:11 +02:00
Benjamin Otte
44187ca3b5
cssmatcher: Use quarks for classes
2012-04-17 08:59:10 +02:00
Benjamin Otte
115c34498e
styleproperty: Add a function to compare values for equality
...
and default to never compare them as equal.
2012-04-17 08:59:10 +02:00
Benjamin Otte
5bbf59b519
cssvalue: Constify a bunch of APIs
2012-04-17 08:59:10 +02:00
Benjamin Otte
4a12717e4d
cssvalue: Remove unused functions
2012-04-17 08:59:10 +02:00
Benjamin Otte
585a1fae4f
stylecontext: Really queue style changes
...
Instead of instantly applying a new style, just mark the context as
invalid. Only apply the new style at layout time.
2012-04-17 08:59:10 +02:00
Benjamin Otte
eb537b60f4
stylecontext: Optimize the common case of "style didn't change"
2012-04-17 08:59:10 +02:00
Benjamin Otte
ece9d2fd92
gtk: Make widget only invalidate widget positions
...
Instead of resetting them completely
2012-04-17 08:59:10 +02:00
Benjamin Otte
e7a984b337
window: Set parent context instead of just resetting style
...
Otherwise the inherit properties won't inherit properly.
2012-04-17 08:59:10 +02:00
Benjamin Otte
27c9352df3
widget: Replace reset_style() calls
...
... with finer grained _gtk_widget_invalidate_style_context() calls.
2012-04-17 08:59:10 +02:00