Benjamin Otte
a3d68af950
themingbackground: Add a quick exit for default case
...
In the case where the background is completely transparent, exit the
rendering functions before doing any expensive calculations.
2014-10-08 05:20:31 +02:00
Benjamin Otte
f7ee61c833
css: Have finer-grained definitions for effects of CSS props
...
This adds the GtkCssAffects enum and implements it for all style
properties.
So far, this is not exposed outside of the implementation file.
2014-10-03 06:18:04 +02: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
e643ddfd16
stylecontext: Remove GTK_CSS_CHANGE_FORCE_INVALIDATE
...
This was introduced as a hackish way in 3.6 to make font updates
propagate properly. But since then, font handling has been changed and
this flag is no longer necessary.
2014-08-21 00:54:07 +02:00
Benjamin Otte
109fcb987b
css: Add a -gtk-icon-style property
...
The values can be:
"requested" - the style as requested
"regular" - use a regular full-color icon
"symbolic" - use a symbolic icon
The property defaults to "requested", so no changes should be seen
unless CSS overrides it.
It is also inherited, so that using this CSS
.toolbar { -gtk-icon-style: symbolic; }
is enough to force the whole toolbar to use symbolic icons.
2014-05-14 04:28:34 +02:00
Benjamin Otte
f56ba8378b
css: Add -gtk-icon-transform property
...
This property allows transforming icons and is mainly intended to be
used for spinner animations.
2014-05-14 04:28:33 +02:00
Benjamin Otte
226e1cd2b2
css: Add -gtk-icon-source property
...
This is to be used for rendering icon content via CSS, such as spinners
or checkboxes.
2014-05-14 04:28:33 +02:00
Cosimo Cecchi
e8cbbedbb2
css: add properties for outline-radius
...
Both a shorthand and individual properties. This is not officially part
of the CSS standard, but there's precedence for it at least in Mozilla:
https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-outline-radius
2014-05-01 18:14:49 +02:00
Cosimo Cecchi
736b350d7a
css: Add a GtkCssValue for GtkCssImageEffect
...
This will allow us to use the CSS machinery to apply a highlight or dim
effect when images are prelit or insensitive.
https://bugzilla.gnome.org/show_bug.cgi?id=705443
2013-08-20 02:50:40 +02:00
Alexander Larsson
366b4db791
css: Support opacity
...
https://bugzilla.gnome.org/show_bug.cgi?id=687842
2013-02-07 11:11:38 +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
Benjamin Otte
1460487635
css: Fix order of enum
...
We switched around the order in gtkcssenumvalue.h, we need to switch
this order, too. Otherwise the parsing code will go bonkers.
2012-12-01 18:01:39 +01:00
Benjamin Otte
0d9d576172
css: Add more features to font-size code
...
We now support the keywords (like xx-small, medium, larger, smaller...)
and I've changed the default value to be "medium".
This required some shuffling of the "get default font size" code. But
all is well now.
2012-12-01 14:00:24 +01:00
Benjamin Otte
6d3b4d9382
stylecontext: Add a flag to force style_updated() emission
...
This is used in gtk_widget_reset_style() (via GTK_CSS_CHANGE_ANY) now,
and that makes GtkSettings font related changes work again.
2012-11-14 13:25:44 +01:00
Benjamin Otte
a31d5379a0
css: Add forgotten enum value
...
This broke compilation in a7d2138544
.
2012-10-01 13:11:11 +02:00
Benjamin Otte
0cc32eae62
symboliccolor: Change prototype of _gtk_symbolic_color_resolve_full()
...
We can juts pass a GtkStyleProviderPrivate, that one has the vfunc we
want already. So no need to pass vfuncs anymore.
2012-09-28 18:27:49 +02:00
Benjamin Otte
448cdb0737
css: Move declaration
...
... for future changes. This is just to check that compilation still
succeeds.
2012-09-28 18:27:49 +02:00
Benjamin Otte
0185e323db
cssvalue: Add animation enum properties
2012-09-17 20:39:11 +02:00
Benjamin Otte
fe026b3b2f
css: Remove unused macro
...
GTK_CSS_DEPENDS_ON_EVERYTHING was used as a placeholder when
implementing dependencies. Now that dependencies are completely
implemented, it's no longer necessary.
2012-08-28 15:42:25 +02:00
Benjamin Otte
012526241a
cssvalue: First step of proper dependency tracking
...
Instead of using the EVERYTHING aka FIXME value for tdependencies,
actually compute the dependencies in a bunch of simple cases.
2012-08-28 15:42:24 +02:00
Benjamin Otte
0e2f35ed88
css: Introduce dependencies for value computations
...
When values are computed, they might depend on various other values and
we need to track this so we can update the values when those other
values change. This is the first step in making that happen.
This patch does not do any dependency tracking at all, instead it uses
GTK_CSS_DEPENDS_ON_EVERYTHING as a sort of FIXME.
2012-08-28 15:42:23 +02:00
Benjamin Otte
a240808824
stylecontext: Add an animating framework
...
The design principles were:
- synchronized
If multiple style contexts are animating, they should all do an
animation step at the same time.
- degrades well
Even when there's thousands of style contexts all animating at the same
time, the animation steps don't starve the CPU. This is achieved by
making sure the timeout is really fast. It just sets a bunch of flags.
- no hidden bottlenecks
Turning animatability on or off on a style context is O(1).
So far it is unused.
2012-04-17 08:59:22 +02:00
Benjamin Otte
e2f89c0c6a
stylecontext: Listen to the new changed signal
2012-04-17 08:59:21 +02:00
Benjamin Otte
04c5fdaca6
css: Remove old animation code
...
Deprecate public API where appropriate and make it no-ops.
Remove all calls to it.
Get rid of the 'transition' css property.
For now, this means spinners don't animate anymore.
2012-04-17 08:59:19 +02:00
Benjamin Otte
dcd54e20d1
css: Remove GtkCssNumber
...
It's completely replaced by GtkCssNumberValue now.
2012-04-17 08:59:19 +02:00
Benjamin Otte
cfc6462730
cssvalue: Add a cssvalue for background-size
2012-04-17 08:59:18 +02:00
Benjamin Otte
f785f7177c
cssvalue: Add a custom value for repeats
...
In particular, that's background-repeat and border-image-repeat.
Also, fix up the border-image shorthand to allow any order.
2012-04-17 08:59:18 +02:00
Benjamin Otte
5377169ef3
cssvalue: Add a value for background-position
2012-04-17 08:59:18 +02:00
Benjamin Otte
edbc8e4f57
cssvalue: Add a value for border-radius corner properties
...
... and convert those properties to this value.
2012-04-17 08:59:18 +02:00
Benjamin Otte
41ce29767c
cssstyleproperty: Add transition properties
2012-04-17 08:59:16 +02:00
Benjamin Otte
662d6787f3
css: Add <time> type to css number stuff
2012-04-17 08:59:16 +02:00
Benjamin Otte
5d8789680e
css: Add an enum for all the style properties
...
So instead of using
_gtk_css_style_property_get_id (GTK_CSS_STYLE_PROPERTY
(_gtk_style_property_lookup ("name")))
one can now use
GTK_CSS_PROPERTY_NAME
Esaier, eh?
2012-04-17 08:59:15 +02:00
Benjamin Otte
4ba9be5b97
cssvalue: Add GtkCssArea to the enum values
...
... and get rid of its GType.
This makes it non-queryable using gtk_style_context_get() but it used to
be a private struct anyway.
2012-04-17 08:59:15 +02:00
Benjamin Otte
a33df2d1d6
cssvalue: Split number values into their own class
2012-04-17 08:59:13 +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
2d01f7786d
css: Add selector change types
...
This allows querying selectors for which changes would change their
"matchingness".
2012-04-17 08:59:07 +02:00
Alexander Larsson
ca07559672
css: GtkBackgroundSize type
2012-03-17 05:13:22 +01:00
Alexander Larsson
7603e6e473
css: Use GtkCssValues instead of GValue in the css machinery
...
Also, in places where we're computing a new CssValue based on an
old one, make sure that if nothing changes we're returning a reference
to the old one, rather than creating a new identical instance.
2012-03-08 11:03:57 +01:00
Javier Jardón
9d0febc9a6
Change FSF Address
2012-02-27 17:06:11 +00:00
Benjamin Otte
1979d048d3
css: Implement parsing for 'background-size'
2012-02-02 03:14:01 +01:00
Benjamin Otte
0c140daff2
css: Implement support for angles
2012-02-02 03:14:00 +01:00
Benjamin Otte
a63ff72406
css: Convert border-radius to GtkCssNumber
...
We can do % now, wohoo!
2012-02-02 03:14:00 +01:00
Benjamin Otte
893807bee0
css: Add GtkCssNumber
2012-02-02 03:14:00 +01:00
Benjamin Otte
4c8e9ee6b6
css: Remove two unused declarations
2012-02-02 03:13:38 +01:00
Benjamin Otte
05f14af24c
css: Make the 'currentColor' keyword a symbolic color
...
This is the first step on a quest to ensure that there is only ever one
GType in use for GValues in every stage of the CSS resolving process.
2012-02-02 00:40:33 +01:00
Benjamin Otte
34a62d779b
css: Introduce a corner order enum
...
Same order as CSS again.
The nice thing about this is that now edge i in a rounded box follows
corner i and is followed by corner (i + 1) % 4.
2012-01-09 18:38:00 +01:00
Benjamin Otte
998055c835
css: Introduce GtkCssSide
...
... and use it.
This is basically an encoding of the order of sides in CSS. So when
parsing things, this is the way we parse things in.
2012-01-09 18:37:59 +01:00
Benjamin Otte
bc9373fb43
styleproperty: Parse all values for background-repeat
...
... and its component in the background property.
2012-01-09 18:37:58 +01:00
Benjamin Otte
4b7ca9602d
background: Simplify background-repeat
...
It used to be a struct, now it's just an enum
2012-01-09 18:37:58 +01:00
Benjamin Otte
07aa7f6b20
css: Remove GtkCssBorderRadius
...
It's not used anymore.
2012-01-09 18:37:58 +01:00