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
P. F. Chimento
29c7562ca7
doc: Documented icon-shadow CSS property
...
The docs say that text-shadow applies a drop shadow to both text
and icons, but icons need to use the icon-shadow property.
https://bugzilla.gnome.org/show_bug.cgi?id=698181
2013-04-19 10:19:25 -04:00
Chris Cummins
e707eadaf2
Update GtkCssProvider box-shadow documentation
...
Non-inset box-shadows are no longer ignored by the GTK+ theming engine,
outset shadows are supported.
Signed-off-by: Rob Bradford <rob@linux.intel.com>
2013-04-09 12:52:52 +01:00
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