Alexander Larsson
eb4667b6e1
css: Do get_change directly on the tree without matching first
...
Rather than first collecting matches and then getting the change
for them we do the change collection directly on the tree. This
is about twice as fast.
2012-12-10 12:11:02 +01:00
Alexander Larsson
d69c6fff7a
css: Don't keep around linear selectors
...
Now we use the selector tree everywhere, so there is no need to
keep around the linear selectors unless we're using them to
verify the tree correctness, so free them.
2012-11-30 14:53:30 +01:00
Alexander Larsson
c10a0962cf
css: Remove gtk_css_ruleset_matches
...
This is only not needed anymore, and only the VERIFY_TREE code
should access ->selector.
2012-11-30 14:53:30 +01:00
Alexander Larsson
fd4712590a
css: Use tree for gtk_css_provider_get_style_property
2012-11-30 14:53:30 +01:00
Alexander Larsson
9b989a1427
css: Implement ruleset_get_change() with the tree
...
We traverse the tree on the matches instead of using
the linear selectors.
2012-11-30 14:53:30 +01:00
Alexander Larsson
3d5e8f98ec
css: Use the tree to print css selectors
2012-11-30 14:53:30 +01:00
Alexander Larsson
6bec577771
css: Track the tree selector matches
2012-11-30 14:53:30 +01:00
Alexander Larsson
69feabd139
css: Better tree match verification
2012-11-30 14:53:30 +01:00
Alexander Larsson
1bfa6593c8
css: Create and use a tree for css selector matching
2012-11-30 14:53:30 +01:00
Benjamin Otte
42dc0ea0fd
styleprovider: Change function prototype
...
Make _gtk_style_provider_private_get_color() return a GtkCssValue (a
GtkCssColorValue to be exact) instead of GtkSymbolicColor.
With this, the symbolic color usage inside GTK is minimized.
2012-11-25 02:45:10 +01:00
Benjamin Otte
94b80cc774
symboliccolor: Change prototype of function
...
Makes it easier to use the function in the places where it's still used.
2012-11-24 21:56:47 +01:00
Benjamin Otte
932794e105
styleprovider: Remove (broken) implementations of get_style
...
The implementations were broken and get_style() is deprecated and
documented to return NULL now.
2012-11-24 21:12:00 +01:00
Benjamin Otte
4bc264a514
cssprovider: Handle non-existing section
...
Otherwise we'll get warnings on errors when CSS debug is disabled.
2012-11-15 19:25:14 +01:00
Alexander Larsson
1c4158a649
gtk_css_style_provider_lookup: minor loop optimiziation
...
This is a minor performance improvement but this loop
is run a lot so it actually matters in large state
changes.
2012-11-09 10:16:18 +01:00
Alexander Larsson
55d65571f3
Exit early in gtk_style_context_update_cache codepaths
...
If lookup->missing is empty we don't need to continue looking.
We short circuit in several places as this can happen
after iteratively makeign lookup->missing smaller.
2012-11-09 10:15:23 +01:00
Benjamin Otte
b41215bdea
cssprovider: Move fallback code into _gtk_css_provider_load_named()
...
This makes sure the full theme loading logic resides in one function and
isn't scattered around.
As a side-effect, the hash table kept by gtk_css_provider_get_named()
will now be populated with fallback themes. This will not be a problem
after the next commit though.
2012-10-31 11:09:09 +01:00
Benjamin Otte
738b453c66
cssprovider: Export gtk_css_provider_load_named) function
...
... and document it.
For now, the function is only exported internally.
2012-10-31 11:09:09 +01:00
Benjamin Otte
9c9d82f1a9
cssprovider: Split out theme loading function
...
Split maintaining the global themes hash table and the theme loading
code into two functions.
This also fixes leaking the provider when loading a theme from a builtin
resource.
2012-10-31 11:09:09 +01:00
Benjamin Otte
5e1ae36b2f
section: Add _gtk_css_section_to_string()
...
Mostly for debugging pruposes, but use it for printing CSS errors in
GtkCssProvider, too.
2012-09-28 18:27:49 +02:00
Benjamin Otte
6696aa2128
cssprovider: Remove another path that can't be reached
...
... because the return value of a function is always TRUE.
2012-09-19 15:32:38 +02:00
Benjamin Otte
697ed544dd
docs: Clarify GtkCssProvider loading return values
2012-09-19 15:30:21 +02:00
Benjamin Otte
ee91f22086
cssprovider: Get rid of return value
...
... that is always TRUE.
2012-09-19 15:18:51 +02:00
Matthias Clasen
ab3d6a0b0a
Revert "Bind the themes to the livecycle of the screen"
...
This reverts commit 1f5dea9eba
,
since it was causeing noticable behaviour changes.
Previously, GTK_DATA_PREFIX=/ ./gtk3-demo would start
gtk3-demo with the Raleigh theme. With that change, it
was starting with no theme at all (i.e. all black).
2012-09-17 22:31:25 -04:00
Benjamin Otte
e6c951a303
styleprovider: Add query function for keyframes
2012-09-17 20:39:11 +02:00
Benjamin Otte
c4cdb33b32
cssprovider: Add parsing support for @keyframes
2012-09-17 20:39:10 +02:00
William Jon McCann
b05224b059
Add back gtk_css_provider_get_named
...
Was in the original patch but was not in 1f5dea9
probably due to
a bad rebase.
https://bugzilla.gnome.org/show_bug.cgi?id=683896
2012-09-17 09:54:26 -04:00
William Jon McCann
1f5dea9eba
Bind the themes to the lifecycle of the screen
...
https://bugzilla.gnome.org/show_bug.cgi?id=683896
2012-09-16 20:20:44 -04:00
Benjamin Otte
6dc3113edc
cssstyleproperty: Get rid of unused API
...
Both _gtk_css_style_property_print_value() and
_gtk_css_style_property_compute_value() aren't necessary anymore and are
replaced by _gtk_css_value_print() and _gtk_css_value_comptue()
respectively.
2012-08-28 15:40:57 +02:00
Cosimo Cecchi
f70fc49ebc
docs: fix a number of typos and obsolete references
2012-07-02 10:41:11 -04:00
Benjamin Otte
25695684ad
cssprovider: Remove unused members from scanner
...
Now that the parser takes care of the file, we don't need to keep track
of it ourselves anymore.
2012-05-11 16:42:12 +02:00
Benjamin Otte
0e4670150a
csssection: Remove file argument from constructor
...
The parser has the file available.
2012-05-11 16:42:12 +02:00
Benjamin Otte
a7f238138e
styleproperty: Remove base argument
...
from _gtk_style_property_parse_value(). The GtkCssParser takes care of
that now.
2012-05-11 16:42:12 +02:00
Benjamin Otte
1367ef7e54
cssstylefuncs: Remove base argument
...
The GtkCssParser keeps track of the base file now.
2012-05-11 16:42:12 +02:00
Benjamin Otte
e1317268a3
cssparser: Change APIs that work with files
...
Now that we keep track of the parser's file, we don't require it to be
passed anymore.
2012-05-11 16:42:12 +02:00
Benjamin Otte
a65780902a
cssparser: Keep track of the file
2012-05-11 16:42:11 +02:00
Benjamin Otte
a8d8c02ab7
Revert "cssprovider: Remove unused members from scanner"
...
This reverts commit b501e64a8a
.
2012-05-11 16:41:25 +02:00
Benjamin Otte
b501e64a8a
cssprovider: Remove unused members from scanner
...
Now that the parser takes care of the file, we don't need to keep track
of it ourselves anymore.
2012-05-11 16:35:30 +02:00
Benjamin Otte
b4195cb408
cssmatcher: Handle case of empty widget path
...
This is tested by the stylecontext test, but doesn't appear in practice.
2012-05-01 03:13:02 +02:00
Benjamin Otte
6c63842e68
cssprovider: Actually match the state for style properties
...
Copy/paste error when refactoring.
Caught by stylecontext test.
2012-05-01 03:13:02 +02:00
William Jon McCann
9f5e580821
Try to load css themes from the XDG config directory first
...
Will fall back to previous locations.
https://bugzilla.gnome.org/show_bug.cgi?id=646631
2012-04-30 06:42:33 -04:00
Benjamin Otte
6443baadb9
styleprovider: Make all implementors emit the new signal
...
... and listen to it in the cases where they use other style providers.
2012-04-17 08:59:21 +02:00
Benjamin Otte
0111b9d507
symboliccolor: Treat it as a CssValue
...
.. now that it is one.
2012-04-17 08:59:20 +02:00
Benjamin Otte
505fefbec7
cssprovider: Add an empty line when printing
...
... between the @define-color statements and the rules.
2012-04-17 08:59:20 +02:00
Benjamin Otte
0cce3520d3
cssprovider: Store widget style value as string
...
There's no need to turn it into a GtkCssValue, it's always a string.
2012-04-17 08:59:15 +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
8dbe8c8349
syleprovider: Add a vfunc to get the changes
...
This way we can check what changes are even interesting for our matcher.
2012-04-17 08:59:08 +02:00
Benjamin Otte
a94b85d375
css: Make the style provider take a matcher as an input argument
2012-04-17 08:59:07 +02:00
Alexander Larsson
0b26605ab0
css: Only keep around GtkCssSections if GTK_CSS_DEBUG env var set
...
These are used purely for CSS debugging, and was using over 100k just
starting up gtk3-demo.
2012-03-29 13:57:22 +02:00
Alexander Larsson
a20b4423f4
Remove broken approach to get stable sort of CSS rules
...
The pointer comparisons in the sort compare function just doesn't
work.
We still need a stable sort, but the plan is to add a real
one in glib.
2012-03-15 21:12:32 +01:00