84ba8255fc
cssprovider: Move properties to scanner constructor
...
So we can set them in one place.
2011-05-18 21:58:46 +02:00
2de4f71586
cssprovider: Don't store scanner in the struct
...
Instead, create scanners whenever we actually parse stuff.
2011-05-18 21:58:46 +02:00
5c940f2bd4
cssprovider: Get rid of gtk_css_provider_reset_parser()
...
Instead call gtk_css_scanner_reset(). There is nothing else we could
need to do.
2011-05-18 21:58:45 +02:00
607846879e
cssprovider: Keep track of passed in error differently
...
Instead of having an error member in the CSS provider's private struct,
connect a signal handler when an error is passed in. This has two
advantages:
1) It makes the code clearer as we don't have to keep track of an error
member anywhere.
2) It causes a non-emission of the g_warning() when an error was passed
in, because it only triggers when no signal handlers are connected.
So we get identical behavior to GTK 3.0 where warnings where only
emitted when no error was passed in.
2011-05-18 21:58:45 +02:00
8fb6fdd3e7
cssprovider: Do error handling differently
...
Instead of aborting a parse whenever we encounter an error, parse to the
end. But if a GError was passed in, reset the provider completely as if
nothing had been parsed.
2011-05-18 21:58:45 +02:00
992ee6a203
cssprovider: Emit a g_warning() when a css file is erroneous
...
... and no other error handler is active. See the source code comment
for the reasoning.
2011-05-18 21:58:45 +02:00
2d75dd2fdf
cssprovider: No need to restore after @import parsing
...
With the recent changes, this just resets the error, and we don't the
error reset from subfile parsing.
2011-05-18 21:58:45 +02:00
3e146b468b
cssprovider: Store current properties and selectors in scanner
...
They don't belong in the css provider
2011-05-18 21:58:45 +02:00
f3bb815517
cssprovider: Use scanner variable instead of priv->scanner
2011-05-18 21:58:45 +02:00
d85cbfe157
cssprovider: Pass scanner argument explicitly to error functions
2011-05-18 21:58:45 +02:00
5bc2ae1a91
cssprovider: Update the scope modifying functions
...
Make them take the scanner as an argument, as that's what gets changed,
not the CssProvider.
2011-05-18 21:58:45 +02:00
83ebc91dce
cssprovider: track state in the scanner
...
This way, we don't have to do magic copies when we create a new scanner
for a subfile.
2011-05-18 21:58:45 +02:00
740f2458bf
cssprovider: Add a private structure to the scanner
...
So far, it's unused
2011-05-18 21:58:45 +02:00
073d75a880
cssprovider: Add a custom gtk_css_scanner_destroy() function
...
So far, it does nothing
2011-05-18 21:58:45 +02:00
5ca9f25523
cssprovider: Pass the scanner explicitly to parse_stylesheet()
...
This is the first step in decoupling the scanner from the provider.
2011-05-18 21:58:45 +02:00
318a3af96e
cssprovider: No need to set user data anymore
2011-05-18 21:58:45 +02:00
cb8a595a65
cssprovider: Clean up declaration parser to conform to more tests
...
The tests will follow with the next commits
2011-05-18 21:58:44 +02:00
22bda2b92f
cssprovider: Rework declaration parsing loop
...
The new loop can cope better with invalid identifiers and manages to
resume parsing properly.
2011-05-18 21:58:44 +02:00
5e054b37a2
cssprovider: Don't fail with invalid syntax when parsing a value
...
Instead, raise a PROPERTY_VALUE error, find the next semicolon or
closing bracket and resume parsing.
2011-05-18 21:58:44 +02:00
a94ea9a4e3
css: Overhaul value parsing
...
Value parsing only sometimes emitted errors. Sometimes it didn't emit
errors but ignored the value, sometimes it took a default, sometimes it
converted it to something it deemed suitable.
While refactoring, I moved the whole GValue <=> char * conversion
routines to a separate file, to make navigating the core css provider
easier.
2011-05-18 21:58:44 +02:00
a50a06b583
cssprovider: Remove now useless variables
2011-05-18 21:58:44 +02:00
469ed3e8ed
cssprovider: Remove scanner_report_warning() function
...
That function does superbad stuff just to print out something on stderr.
Don't do superbad stuff.
2011-05-18 21:58:44 +02:00
4622614784
cssprovider: use INVALID_SYNTAX for unexpected token error
2011-05-18 21:58:44 +02:00
b34f004f43
cssprovider: Change declaration parsing for error reporting
...
Previously, we only checked for errors after parsing the full
declaration. Now we detect errors with the property before even
attempting to parse its value.
The benefit here is that the error reporting reports the correct line
and position numbers.
2011-05-18 21:58:44 +02:00
78afa9671e
API: cssprovider: Make error a signal
2011-05-18 21:58:44 +02:00
06d4dab48c
cssprovider: Handle errors completely via new error functions
2011-05-18 21:58:43 +02:00
582aa955c2
cssprovider: Provide better API to set errors
2011-05-18 21:58:43 +02:00
707ba8597f
cssprovider: Have a private error variable
2011-05-18 21:58:43 +02:00
38ca304825
cssprovider: Automatically add final closing bracket to last rule
2011-05-18 21:58:43 +02:00
9d9f1e38b2
cssprovider: Ignore empty rules
2011-05-18 21:58:43 +02:00
b1556abe04
API: gtk: Add gtk_css_provider_to_string()
...
This is intented to convert the contents of a CSS provider back to a
string.
It is not complete yet but good enough for starting a testsuite. :)
2011-05-18 21:58:43 +02:00
b566debef9
cssprovider: Add a function for signalling errors
2011-05-18 21:58:43 +02:00
f5bc27f7ef
cssprovider: Store cssprovider in scanner's user data
2011-05-18 21:58:43 +02:00
1a7239481c
raleigh: clear up menu handling in the fallback CSS
...
Now that menus properly respect padding/border, this is not needed
anymore.
2011-05-18 10:45:51 -04:00
a5e1337ad7
cssprovider: Move private struct definition to header
...
consistency, improved debugging, etc
2011-04-16 22:31:25 +02:00
0a23796f5d
cssprovider: Use g_type_depth() instead of computing the depth manually
2011-04-14 14:59:24 +02:00
e8c78edeb2
theme: Fix prelight on selected rows' expanders
...
There was no prelight effect on selected rows' expanders with the
builtin theme, noticed by Kris Rietveld.
2011-04-03 12:32:20 +02:00
ef061c4e96
gtkentry: Add hinting to GtkEntry
...
gtk_entry_set_placeholder_text() makes the entry display the given text
when it is empty and unfocused. Based on previous patch by Alberto
Garcia.
https://bugzilla.gnome.org/show_bug.cgi?id=440963
2011-03-21 09:37:37 +01:00
fe12c46531
cssprovider: Reset the scope before skipping to the next rule after an error happens.
...
This is so the selector token gets parsed with the correct GScanner scope/config
on all situations.
2011-03-07 23:06:54 +01:00
aa6eee73e5
cssprovider: plug two more leak fixes
2011-03-07 23:06:54 +01:00
794593a4f8
cssprovider: return immediately if there's remaining data behind a parsed value
...
parse_value() could fill in a GError, but yet (incorrectly) return G_TOKEN_NONE,
having the GError leaked as a result.
https://bugzilla.gnome.org/show_bug.cgi?id=642604 , Reported by Felix Riemann.
2011-03-07 23:06:54 +01:00
3100b76ba9
Fix parsing of color names containing numbers
...
They were being defined correctly through @define-color
in CSS, but parsing failed at the moment of creating
GtkSymbolicColors depending on these.
2011-02-17 20:10:49 +01:00
330158977d
gtk: make the .trough background-color darker() as it was in GTK+ 2.x
2011-02-06 13:48:42 +01:00
c990699922
gtk: don't style GtkLabel:selected's color separately
...
or labels in selected state will not have a different color. Reviewed
by Carlos.
2011-02-05 14:10:18 +01:00
3c1ff82b21
Fix a memory leak in GtkCSSProvider
...
Found by Felix Riemann
https://bugzilla.gnome.org/show_bug.cgi?id=641558
2011-02-04 21:13:56 -05:00
d51c617e13
css-provider: Fix up the Switch style
...
As it was with the old style, when the Switch is in the "on" state the
trough should be using the selected background color.
2011-01-31 16:21:36 +00:00
cb498c2101
Speed up expander animation
...
Go back to 200ms, which is what we had in GTK+ 2.x.
Themes can change this, of course.
2011-01-31 10:51:09 -05:00
09a52de478
Add a missing id to the docs
2011-01-31 07:39:06 -05:00
f67ab808fd
doc fixes
2011-01-30 23:35:25 -05:00
8bb0d552f1
Improve binding-set parser
...
Make gtk_binding_entry_add_signal_from_string() return the expected
token in case of parsing error, so that we can return a GError
instead of spewing. Also, add a separate scope for binding-set,
since allowing {} in identifiers in SCOPE_VALUE breaks the fact
that the ; after the last assignment in a rule is optional.
2011-01-30 21:27:56 -05:00