Benjamin Otte
37671d2bd0
cssprovider: Redo error emission
...
Emit all errors via the parser, don't try to have a custom error
handling machinery.
The only exception is the initial file load error - we need to do that
one directly, because there is no parser.
2019-04-12 19:34:28 +02:00
Benjamin Otte
04d24b7cd2
csssection: Make printing functions public
2019-04-12 19:34:28 +02:00
Benjamin Otte
085d34cbb0
cssprovider: Advance parser to start of declaration
...
This way, the block will reference the right location.
2019-04-12 19:34:28 +02:00
Benjamin Otte
46143492a2
cssprovider: Change section handling
...
Instead of building a full tree of sections that then nobody cares
about, just create sections as necessary for when we use it in the
inspector.
2019-04-12 19:34:28 +02:00
Benjamin Otte
2fb202187c
css: Remove GtkCssSectionType
...
It's unused.
2019-04-12 19:34:28 +02:00
Benjamin Otte
207c0b32b4
csssection: Redo constructors
...
Remove the unused one and rename the old one to new_from_parser().
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
607502ef43
cssparser: Add gtk_css_parser_consume_url()
...
Another slight renaming and semantics change.
2019-04-12 19:34:28 +02:00
Benjamin Otte
acddc317da
cssparser: Add gtk_css_parser_resolve_url()
...
Another slight change of semantics and naming for the new parser.
2019-04-12 19:34:28 +02:00
Benjamin Otte
f0d2f99239
cssparser: Add gtk_css_parser_consume_string()
...
Well, just rename _gtk_css_parser_read_string() for the new semantics,
but this sounds cooler.
2019-04-12 19:34:28 +02:00
Benjamin Otte
e7b9ecc99a
cssparser: Add gtk_css_parser_try_at_keyword()
2019-04-12 19:34:28 +02:00
Benjamin Otte
7ccec19501
parser: Get rid of _gtk_css_parser_is_eof()
...
Use gtk_css_parser_has_token() instead.
2019-04-12 19:34:28 +02:00
Benjamin Otte
3fb44ae651
cssparser: Add gtk_css_parser_try_token()
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
904a9d0c98
parser: Add gtk_css_parser_has_token()
...
This is ithe first step towards converting the parsing code to use
tokens. For now, the topken type is just a magic enum value that only
works as-needed.
2019-04-12 19:34:28 +02:00
Benjamin Otte
a938c14d11
build: Add gtk-css static library
...
This library is meant to be the new CSS library that gets used from GDK,
GSK and GTK for string printing and parsing.
As a first step, move GtkCssProviderError into it.
While doing so, split it into GtkCssParserError (for critical problems)
and GtkCssParserWarning (for non-critical problems).
2019-04-12 19:34:28 +02:00
Matthias Clasen
96fa1fb5c1
Drop key themes
...
These were an abuse of css, and not very successful
as a concept. We are going to replace bindings with
a new way of doing customizable shortcuts.
2019-02-21 12:22:50 -05:00
Alberts Muktupāvels
7a8f5ca970
gtkcssprovider: remove gtk_css_provider_get_default
...
This function is unused since cdc6e82720
commit and does not
contain fallback style.
https://gitlab.gnome.org/GNOME/gtk/issues/1226
2018-07-19 19:25:17 +03:00
Timm Bäder
aa32fc1708
cssprovider: Remove priv pointer
2018-02-13 18:48:44 +01:00
Matthias Clasen
4c150d8eb5
The big versioning cleanup
...
Remove all the old 2.x and 3.x version annotations.
GTK+ 4 is a new start, and from the perspective of a
GTK+ 4 developer all these APIs have been around since
the beginning.
2018-02-06 01:16:32 -05:00
Benjamin Otte
452f2f0394
cssprovider: Use g_file_load_bytes()
...
This way, we get a special no-copy case for resources.
https://bugzilla.gnome.org/show_bug.cgi?id=790270
2018-02-05 17:22:56 +01:00
Matthias Clasen
d005109133
Drop unused gtkcssstylefuncs.c
...
Clean up all the places where the header was still
included needlessly.
2017-11-30 18:46:54 -05:00
Daniel Boles
6f54e1fc6d
CssProvider: Fix doc of min theme version loaded
...
The code shows that we only load back to 4.0, but this still said 3.0.
2017-11-08 09:22:49 +00:00
Daniel Boles
6a9c14b2fa
CssProvider: Use consistent theme name placeholder
...
commit 475d916eb9
added various paths that
use theme-name for this, but the existing path already used THEME, with
a subsequent description referring to the latter. So use that everywhere
2017-11-08 09:22:46 +00: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
9151e0b9f5
stylecontext: Port to use display instead of screen
2017-10-31 03:05:54 +01:00
Matthias Clasen
d1b77fd60f
Drop code handling deprecated style properties
...
We no longer have any deprecated style properties.
2017-09-17 16:59:26 -04:00
Timm Bäder
e36ddfec17
Remove all widget style property code
2017-07-19 21:27:14 -04:00
Rico Tzschichholz
8abf05e194
gtk: Update path references from gtk-3.0 to gtk-4.0
2016-10-23 20:22:38 +02:00
Benjamin Otte
4322b69528
cssprovider: Return void, not TRUE
...
Parsing a css file always succeeds as CSS can recover from parsing
errors.
2016-10-17 17:41:03 +02:00
Benjamin Otte
dbeeaf7de6
cssprovider: Remove GError out argument from load functions
...
People should use the GtkCssProvider::parsing-error signal instead.
2016-10-17 16:52:05 +02:00
Matthias Clasen
34986231f4
css parser: Improve an error message
...
Say what property we are dealing with when we complain about the
value.
2016-07-03 17:46:30 -04:00
Matthias Clasen
46b51e36b4
Trivial typo fix
2016-05-23 19:24:07 -04:00
Matthias Clasen
7cb36aba40
Load theme settings from the right location
...
When loading a per-theme settings.ini file, look for it in
the same directory where we found the gtk.css file for the
theme. Previously, we were always looking in
$prefix/share/themes/THEME/gtk-3.0/, even if the css was
loaded from somewhere else.
https://bugzilla.gnome.org/show_bug.cgi?id=641354
2016-03-21 22:19:19 -04:00
Matthias Clasen
475d916eb9
Also look in system data dirs for themes
...
With this change, we now look in
$XDG_DATA_HOME/themes/THEME/gtk-3.x
$HOME/.themes/THEME/gtk-3.x
$XDG_DATA_DIRS/themes/THEME/gtk-3.x
GTK_DATA_PREFIX/themes/THEME/gtk-3.x
https://bugzilla.gnome.org/show_bug.cgi?id=641354
2016-03-21 22:19:19 -04:00
Matthias Clasen
804d330195
Typo fixes
...
Fix s/occurence/occurrence in many places.
2016-03-10 22:46:02 -05:00
Matthias Clasen
bbd94b5a9f
gtk: Strip newlines from g_warning and g_error
...
g_logv adds one for us already.
2016-02-28 12:23:12 -05:00
Benjamin Otte
d0fd7990c3
cssprovider: Change location of builtin themes
...
Instead of
/org/gtk/libgtk/theme/$THEME-$VARIANT.css
look at
/org/gtk/libgtk/theme/$THEME/gtk-$VARIANT.css
and that way mirror the directory layout of real themes.
2016-02-04 13:35:21 +01:00
Matthias Clasen
2c7fdf6432
CSS provider: Add a way to emit errors
...
Currently, GtkCssProvider can emit ::parsing-error only during
the actual parsing, although the documentation hints that it might
happen at other times.
This commit adds a emit_error method to the GtkStyleProviderPrivate
interface that will let us emit errors from the compute() implementations
as well, which can be useful (e.g. if an image fails to load).
2016-01-30 00:29:04 -05:00
Eric Williams
276101a3bc
Fix typo in previous documentation fix for gtk_css_provider_load_from_data()
2016-01-14 17:01:26 -05:00
Eric Williams
bbfec07e06
Clarified the function docs for gtk_css_provider_load_from_data().
...
https://bugzilla.gnome.org/show_bug.cgi?id=760238
2016-01-06 22:42:37 -05:00
Matthias Clasen
26d8688cb4
Redo the CSS docs
...
Split the CSS docs off from the GtkCssProvider docs and
give them their own chapter. Among other things, this commit
introduces more or less complete definitions of the syntax for
the supported selectors, a complete list of all supported
properties, and definitions for their values. This includes
documentation for GTK+-specific properties such as -gtk-icon-source.
2015-12-25 22:58:52 -05:00
Matthias Clasen
db7f269c03
Some updates to the CSS docs
...
Remove references to regions and engines, emphasize
element names over type names, update the list of
pseudo-states.
2015-12-20 01:03:38 -05:00
Krzesimir Nowak
f6ce2cd975
cssprovider: Pass NULL unconditionally
...
We know that parent is NULL at this point.
Also, fix indentation.
2015-12-02 12:46:21 +01:00
Matthias Clasen
5f73e8a720
Rename the icon-shadow property
...
This is not a standard CSS property, so rename it to
-gtk-icon-shadow. We still support the old name, with a
deprecation warning.
2015-11-20 20:35:39 -05:00
Matthias Clasen
f3e4e8660d
Warn if a property alias is used
...
Emit a deprecation warning if a property is not used
by its official name.
2015-11-20 20:35:39 -05:00
Matthias Clasen
d2d521d4b5
Add a deprecation error for the engine css property
...
This helps people fix up their css.
2015-11-20 20:35:39 -05:00
Matthias Clasen
08c4bc8aa5
css provider: Issue deprecation warnings for style properties
...
This makes G_PARAM_DEPRECATED useful for style properties.
2015-11-16 14:37:23 -05:00
Benjamin Otte
9facd00884
cssprovider: Only push a new scanner when none exists
...
For @import, we want to emit the error as part of the @import statement,
not as part of the new file.
2015-11-16 19:34:24 +01:00
Benjamin Otte
0a4e88b79b
cssprovider: Have a section on import error
...
When loading a nonexisting CSS file using
gtk_css_provider_load_from_file() or gtk_css_provider_load_from_path()
we would emit the error using a NULL scanner. Don't do that, because
we'll have a NULL section in that case and error handlers don't like
that.
Testcase attached.
https://bugzilla.redhat.com/show_bug.cgi?id=1277959
2015-11-16 17:39:15 +01:00
Benjamin Otte
a58d8bdcbc
cssprovider: Have a section when parsing style properties
...
Signal handlers expect a section to be present, so provide them with
one.
New testcase included.
https://bugzilla.gnome.org/show_bug.cgi?id=757240
2015-10-28 19:37:27 +01:00
Matthias Clasen
2d29ae4159
Handle match_all returning NULL
...
This is in preparation for not allocating an array at all if there
are no matches.
2015-09-09 11:17:13 -04:00
Benjamin Otte
dc060154e0
css: Add gtk_css_change_to_string()
...
Nobody is able to look up those hex values.
2015-08-27 17:22:00 +02:00
Matthias Clasen
4050abe2fa
Plug a memory leak
...
GtkCssProvider was using the wrong unref function for GtkCssKeyframe
objects. Funnily, this didn't crash at all, the refcount was at the
same place in the struct - it just didn't free all the memory, causing
valgrind to complain.
2015-07-27 14:54:13 -04:00
Benjamin Otte
2bf7bdd651
cssmatcher: Allow widget path matcher to take a node declaration
...
The node declaration has the same functionality as
gtk_css_node_declaration_add_to_widget_path(). So instead of using that
function on a path, you can use the original path and the declaration in
a matcher.
2015-03-18 15:23:30 +01:00
Benjamin Otte
f51419adb0
cssstylefuncs: Rename functions
...
This is in preaparation for the big GtkCssComputedValues => GtkCssStyle
rename
2015-01-07 14:26:46 +01:00
Erick Pérez Castellanos
ed1fb8d2af
Minor documentation fix
2014-12-18 10:43:13 -05:00
Benjamin Otte
b49c7c3421
styleprovider: Fold get_change() vfunc into lookup()
2014-12-10 03:49:40 +01:00
Benjamin Otte
e2dddd62cf
cssselector: Redo change verification
...
Instead of walking the selector tree, we walk the selectors.
2014-12-10 03:49:40 +01:00
Matthias Clasen
e2ce0700a6
GtkCssProvider: Load themes from versioned directories
...
Look for themes in $prefix/themes/$name/gtk-$version/ (for
version = 3.16, 3.14, ...), before using the old location
$prefix/themes/$name/gtk-3.0/. This gives theme authors a
way to support multiple versions of GTK+ 3 with separate
css files.
2014-11-12 19:22:55 -05:00
Matthias Clasen
55fd3a762c
GtkCssProvider: Factor out a function
...
Move finding the gtk.css file into its own function. We will
make this more complicated in the near future.
2014-11-12 18:20:35 -05:00
Benjamin Otte
433c20e59d
styleproperties: Remove header where it's not used
2014-10-24 21:31:40 +02:00
Matthias Clasen
f73db86a63
Fix docs for gtk_css_provider_load_from_resource
2014-10-22 00:32:38 -04:00
Matthias Clasen
978afce04a
Fix a thinko in the previous commit
...
GTK+ relies on this function silently failing for invalid data.
2014-10-04 16:06:30 -04:00
Matthias Clasen
a00842fa99
Add a function to load css from a resource
...
This is common enough that we should just provide an API for it
- we already had a function for this purpose anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=672946
2014-10-04 15:52:02 -04:00
Emmanuele Bassi
5ad60caa3c
css: Implement font-stretch
...
The font-stretch CSS property is defined in the Level 3 CSS Fonts
module, available at:
http://dev.w3.org/csswg/css-fonts/#propdef-font-stretch
It allows defining a normal, condensed, or expanded face to the font
description. Pango already supports it, so this is literally just the
CSS parser machinery needed to bridge our CSS to the FontDescription
API.
https://bugzilla.gnome.org/show_bug.cgi?id=735593
2014-08-28 13:41:40 +01:00
Benjamin Otte
19eb1614de
cssmatcher: Use widget path's state
...
Don't take a state when constructing the CSS matcher. Instead, rely on
the newly introduced state in the widget path.
This way, the state can be queried not only on the first element, but on
all elements of the widget path.
2014-07-19 23:42:39 +02:00
Matthias Clasen
2952739593
GtkCssProvider: Allow to enable debug at runtime
...
Add a private function that lets us decide at runtime whether to
keep css section information around - this will be useful in the
GtkInspector.
2014-07-06 22:37:57 -04:00
Benjamin Otte
aa6652aac7
cssprovider: Names starting with -gtk- aren't style props
...
We want to have the "-gtk-" prefix for our custom CSS properties. But
we also want to parse names starting with a "-" as style properties.
So make sure that "-gtk-" is treated like a normal property and we emit
errors when somebody uses it wrong.
This is to catch errors with people typing
-gtk-iconsource: none;
instead of the correct
-gtk-icon-source: none;
2014-06-17 00:01:25 +02:00
Volker Sobek
f8b6bfe744
docs: Remove '\' escape character from literals
...
commit 7f6a964c47
replaced entities, but
escaped the replacement text also inside literals, which resulted in the
escaping '\' to also appear in the documentation.
https://bugzilla.gnome.org/show_bug.cgi?id=727322
2014-04-04 01:24:35 -04:00
Benjamin Otte
d5792eb1fe
cssprovider: Fix error message
...
expected a valid semicolon
sounds kinda not so great. Make it say
expected semicolon
Unless somebody can tell me the difference between valid and invalid
semicolons?
2014-03-19 12:44:24 +01:00
Andrés G. Aragoneses
596364e9fc
trivial: fix typo in docs of gtk_css_provider_to_string
2014-03-02 12:09:48 +01:00
Andrés G. Aragoneses
cf6c277d49
trivial: fix typo in docs of gtk_css_provider_to_string
2014-03-02 09:47:31 +01:00
Matthias Clasen
c779b42476
Docs: use // for comments in examples
...
Without sgml mode, we can't escape /* as /* anymore,
so just switch to // for comments in examples.
2014-02-14 23:34:22 -05:00
Matthias Clasen
7f6a964c47
Docs: Remove all entities and turn off sgml mode
...
With all element markup gone, it is time to turn off
sgml mode, and get rid of entities as well.
2014-02-09 17:58:07 -05:00
William Jon McCann
eb14b00187
docs: fix typo
2014-02-07 21:34:27 -05:00
William Jon McCann
01b2440370
docs: rewrite the CSS Properties docs
2014-02-07 20:53:00 -05:00
William Jon McCann
f5e540d71a
docs: improve the cssprovider documentation layout
2014-02-07 20:53:00 -05:00
William Jon McCann
13998c55e7
docs: use proper quotations instead of '*'
2014-02-07 14:22:39 -05:00
William Jon McCann
e34bd4137d
docs: use apostrophes in *n't
2014-02-07 13:32:47 -05:00
William Jon McCann
f0000b2f3d
docs: use more apostrophes
2014-02-07 13:26:12 -05:00
William Jon McCann
7a208fbbf3
docs: use proper apostrophe
...
https://wiki.gnome.org/Design/OS/Typography
2014-02-07 13:06:10 -05:00
William Jon McCann
f116f0071e
docs: use links instead of <xref>
2014-02-07 11:13:11 -05:00
William Jon McCann
2a45418b67
docs: use proper quotes
2014-02-05 15:08:42 -05:00
William Jon McCann
3b3d8ca456
docs: Use "#" for refsect2 instead of ##
2014-02-04 21:00:58 -05:00
William Jon McCann
c6ef8bdc9c
docs: don't use <para id="">
2014-02-04 20:21:05 -05:00
William Jon McCann
8ad75bdfff
docs: don't use <replaceable>
2014-02-04 19:20:16 -05:00
William Jon McCann
5dd751f006
docs: don't use ulink. use markdown instead
2014-02-04 18:53:51 -05:00
William Jon McCann
a22358c0c0
docs: use ` instead of <literal>
2014-02-04 18:24:29 -05:00
William Jon McCann
bf7afa48f8
docs: replace all figures with headings and images
2014-02-04 17:20:43 -05:00
William Jon McCann
9f99f567c8
docs: use markdown instead of inlinegraphic tags
2014-02-04 16:58:53 -05:00
William Jon McCann
50e06e11ee
docs: use markdown instead of <filename> tags
2014-02-04 16:58:53 -05:00
William Jon McCann
a479ee5de5
docs: use markdown for <envar> tags
2014-02-04 16:58:53 -05:00
Matthias Clasen
09d1b28249
docs: Convert to markdown
...
Specifically, switch to using markdown syntax for sections.
2014-02-02 00:30:27 -05:00
William Jon McCann
e31ebda1d7
docs: don't escape entities in example code
...
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
768bc44081
docs: use |[ ]| instead of <programlisting></programlisting>
...
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
5d053e03a9
docs: fix css properties table
2014-01-28 01:27:39 -05:00
William Jon McCann
974e930fb8
Use a define for the default theme name
2014-01-24 08:08:34 -05:00
William Jon McCann
4a11acdc8c
resources: move resources into a subdirectory
2014-01-23 21:04:59 -05:00
Emmanuele Bassi
0899ef7cc9
gtk: Use new macros for defining private data
...
https://bugzilla.gnome.org/show_bug.cgi?id=702996
2013-07-09 09:30:02 +01:00