4781f94de2
Move all theming stack to use GtkStateFlags.
...
This support goes from the theming engines, which are able to retrieve
style for different combined states to the CSS provider, where several
state pseudo-classes may be specified, such as:
GtkButton:active:prelight {}
2010-12-04 15:37:37 +01:00
bccec3ef0c
GtkCssProvider: Use class for tooltips.
2010-12-04 15:37:36 +01:00
74697d91fe
GtkCssProvider: Parse and match class info.
2010-12-04 15:37:36 +01:00
a3637ec60d
s/child class/region/ everywhere.
...
"Child class" is an invented term anyway, and it conceptually defines
identifiable regions in widgets.
2010-12-04 15:37:35 +01:00
e04dfd4d6d
GtkThemingEngine: Add gtk_theming_engine_register_property().
...
This function may be used for custom property registration from
theming engines. The property names will have the
-${engine-type-name}-${prop-name} format, the parser has been
modified to allow properties with '-' as the first char.
2010-12-04 15:37:35 +01:00
355f0d69ab
GtkStyleSet: Allow custom parsers on registered properties.
2010-12-04 15:37:35 +01:00
99224c9eec
GtkCssProvider: Parse correctly widget types with a name.
...
There's now a distinction between:
GtkLabel#label-name: Label with name "label-name"
GtkWindow #label-name: Window containing a widget named "label-name"
2010-12-04 15:37:34 +01:00
56e4ffabea
Compare widget names as GQuarks in style matching.
2010-12-04 15:37:34 +01:00
09d8592b5b
GtkWidgetPath: Make API more consistent.
2010-12-04 15:37:34 +01:00
ad08330fae
Compare region names as quarks in style matching.
2010-12-04 15:37:34 +01:00
d47d3d0200
GtkCssProvider: Set child combinators in default CSS.
2010-12-04 15:37:34 +01:00
5f77ead9c6
GtkCssProvider: Parse and compare widget names.
2010-12-04 15:37:33 +01:00
52878c45b5
GtkCssProvider: Don't jump too eagerly to the next element when comparing selectors.
2010-12-04 15:37:33 +01:00
85dbc71921
GtkCssProvider: Immediately bail out if GType couldn't be resolved.
2010-12-04 15:37:33 +01:00
9ebbc7b5c5
GtkCssProvider: Small optimization.
2010-12-04 15:37:33 +01:00
c001833ed1
GtkCssProvider: don't ignore custom attributes
...
* gtk/gtkcssprovider.c: don't ignore custom attribites (which can be
added by theme engines)
2010-12-04 15:37:33 +01:00
85398fc05f
GtkCssProvider: Add gtk_css_provider_get_default().
...
This method returns a GtkCssProvider with the default style information
loaded.
2010-12-04 15:37:26 +01:00
0813a2283e
GtkCssProvider: Allow '_' in the middle of symbolic color names.
2010-12-04 15:37:22 +01:00
875237187c
GtkCssProvider: Add priv pointer to object struct.
2010-12-04 15:37:17 +01:00
be5d4adf6b
GtkCssProvider: Allow symbolic colors when parsing style rules.
2010-12-04 15:37:15 +01:00
1de8f75517
GtkCssProvider: Parse color mappings.
...
These are of the form:
@color-a: #fff;
@color-b: mix (@color-a, #000 , 0.5)
@color-c: shade (@color-b, 0.7)
In the stylesheet, arbitrary nesting of these commands is handled.
2010-12-04 15:37:15 +01:00
b50c88d170
GtkCssProvider: Plug memory leak.
2010-12-04 15:37:14 +01:00
2cd4ff4215
GtkCssProvider: Fix compile warning.
2010-12-04 15:37:14 +01:00
1d4687675f
GtkCssProvider: set scanner->input_name.
2010-12-04 15:37:13 +01:00
bf12227435
GtkCssProvider: Implement GtkStyleProvider->get_style_property
...
Style properties in the resource files are something like:
-GtkComboBox-appears-as-string
-GtkEntry-icon-prelight
Following the usual naming spec for extensions to CSS.
2010-12-04 15:37:13 +01:00
eaddc9f254
GtkCssProvider: refactor out selector matching.
2010-12-04 15:37:12 +01:00
eec75f1f59
GtkCssProvider: Ensure each scope has its parser config.
2010-12-04 15:37:12 +01:00
ff05cc4849
GtkCssProvider: Parse boolean values.
2010-12-04 15:37:12 +01:00
aa5ec97cac
GtkCssProvider: Make additions to parse_value() less error prone.
2010-12-04 15:37:11 +01:00
66d1cb8054
GtkStyleSet: Register GtkThemingEngine type.
...
This has been also hooked up to the CSS provider, which parses the "engine"
value to load the corresponding module.
2010-12-04 15:37:11 +01:00
6906138e45
GtkStyleSet: Remove default value for registered properties.
...
This should be handled at a higher level, a single default value for all
states isn't that useful...
2010-12-04 15:37:10 +01:00
e899fdd973
GtkCssProvider: Set default value if no state pseudo-class is specified.
2010-12-04 15:37:10 +01:00
67c4f8d02e
GtkCssProvider: Compare GtkWidgetPath regions with css.
2010-12-04 15:37:08 +01:00
977a972358
GtkCssProvider: fix parsing of consecutive pseudo-classes.
...
Now either of foo{}, foo:first-child{}, foo:nth-child(even):insensitive or
foo:active{} will be correctly parsed.
2010-12-04 15:37:08 +01:00
0be4659c5d
GtkCssProvider: move to next selector element on match or child combinator.
2010-12-04 15:37:08 +01:00
bc0af3208d
GtkCssProvider: free selector path on parse_rule().
2010-12-04 15:37:08 +01:00
07171d5f68
GtkCssProvider: Add named regions to selector path.
2010-12-04 15:37:08 +01:00
707d5ae99c
GtkCssProvider: Parse named regions.
2010-12-04 15:37:07 +01:00
71949e05c4
Refurbish GtkWidgetPath API.
...
The foreach() function is now gone, there's now API to get
GTypes and names from the position in the path.
2010-12-04 15:37:07 +01:00
8c03503d16
GtkCssProvider: Add support for child/descendant combinators.
...
Now, selectors like:
GtkWindow > GtkButton {}
GtkNotebook > GtkLabel {}
will represent a direct parent/child relation between both elements, while
GtkWindow GtkButton {}
GtkNotebook GtkLabel {}
will allow intermediate children between these.
2010-12-04 15:37:06 +01:00
d691e79cbf
GtkCssProvider: Fix typo freeing SelectorElements.
2010-12-04 15:37:05 +01:00
abbeb89b7c
GtkCssProvider: Allow empty selector.
...
universal selector is implied, so things like this work:
:active {}
:insensitive{}
2010-12-04 15:37:05 +01:00
4c8353bcbf
GtkCssProvider: Allow '*' selectors.
...
These would match a single widget of any type.
2010-12-04 15:37:04 +01:00
468f216b1c
GtkCssProvider: Add state parsing.
...
Now state is now defined as a pseudoclass in the CSS format, selectors like:
GtkWidget:active { }
GtkButton:insensitive { }
GtkCalendar:prelight { } (also :hover is accepted)
...
define the style for the given state.
2010-12-04 15:37:03 +01:00
bccad0c65c
Added GtkCssProvider.
...
GtkCssProvider is a GtkStyleProvider implementation which is able to read
CSS-like input to style widgets.
At the moment, only the basic parser features are available.
2010-12-04 15:37:02 +01:00