Cosimo Cecchi
1208f2bde0
shadow: render icon-shadow for spinners
2011-06-09 23:17:09 +02:00
Cosimo Cecchi
0cd810ff7c
themingengine: use cairo image surfaces to render state effects
...
This makes the code cleaner and allows this to be re-used in a
pixbuf-less future.
2011-06-09 23:17:09 +02:00
Cosimo Cecchi
2446aef0ea
themingengine: add gtk_theming_engine_render_icon()
...
Renders a pixbuf in the provided rectangle, applying effects such as
'icon-shadow'.
2011-06-09 23:17:09 +02:00
Benjamin Otte
88026c5073
themingengine: Don't modify pattern
...
Instead, scale/unscale the cairo_t.
2011-06-09 05:51:54 +02:00
Cosimo Cecchi
9976530fe0
border-image: change Gtk9Slice to GtkBorderImage
...
It's a similar private type, which is much more powerful, and respects
the CSS rendering specification for border-image.
https://bugzilla.gnome.org/show_bug.cgi?id=651194
2011-06-09 05:51:53 +02:00
Benjamin Otte
8f6efd00e7
themingengine: Improve junction handling code
...
As junctions just modify the border radius and we now have a per-corner
border-radius, we can just set the border-radius to 0 for those corners
and get the same effect.
2011-06-02 02:03:52 +02:00
Benjamin Otte
91602cca6e
themingengine: Add support for the border-radii
2011-06-02 02:03:51 +02:00
Benjamin Otte
962ecc6fa5
shadow: Redo shadow implementation for rotations
...
The shadows went bonkers when the labels were rotated
2011-05-22 05:56:12 +02:00
Benjamin Otte
ec34c4bd83
themingeninge: Handle translations properly
...
We want to keep the location of where to render, but transform th
context by the pango transform.
2011-05-22 05:56:12 +02:00
Cosimo Cecchi
8c65d9181d
themingengine: use the text-shadow property to render text shadow
...
This also avoids hardcoding a shadow for insensitive text in the engine,
as it can now be applied from the theme directly.
https://bugzilla.gnome.org/show_bug.cgi?id=649314
2011-05-20 18:49:54 -04:00
Benjamin Otte
5084739756
themingengine: Set current point to 0,0 when rendering rotated layout
...
Otherwise the layout may move to who-knows-where
2011-05-12 23:40:26 +02:00
Cosimo Cecchi
6261b8434f
themingengine: don't set a line width before saving the cairo context
...
https://bugzilla.gnome.org/show_bug.cgi?id=647086
2011-04-08 20:34:00 -04:00
Carlos Garnacho
ae22476931
theming: Implement non-uniform border-width in the theming engine.
...
The border-width CSS parameter takes up to 4 values, but it was
being ignored by the theming engine until now.
2011-03-29 19:39:34 +02:00
Carlos Garnacho
6834bace95
theming: Avoid boxed struct copies throughout the default engine
2011-03-29 19:39:22 +02:00
Cosimo Cecchi
1876823ef0
themingengine: don't hardcode white to draw insensitive labels shadow
...
Use the background color instead.
I think the optimal solution would be delegating the shadow rendering to
the theme completely, and removing this in GtkThemingEngine, but for
now, this simple fix makes the dark variant more usable.
https://bugzilla.gnome.org/show_bug.cgi?id=645405
2011-03-21 11:00:53 -04:00
Carlos Garcia Campos
21558ae67f
themingengine: Use render_background_internal() to render handle background
...
Instead of using always the background color. This fixes handles that
have a background image like gnome-panel applets in a transparent
panel.
https://bugzilla.gnome.org/show_bug.cgi?id=644570
2011-03-12 20:32:42 -05:00
Benjamin Otte
8b17b16d63
theme: Fix spinner for inactive state.
...
Previously, the inactive state caused the spinner's solid line to be
drawn to the right. Now it's drawn to the top instead, which makes the
inactive state look more natural.
2011-03-05 15:03:56 +01:00
Benjamin Otte
9b8fbe5b72
theme: Make spinner animation turn clockwise
2011-03-05 15:03:56 +01:00
Benjamin Otte
2482847ecf
theme: Make spinner steps count forward, not backward
...
This makes the spinner roate the right way again.
2011-03-05 15:03:56 +01:00
Benjamin Otte
de3616d52c
theme: Make spinner drawing start with the solid line
...
Previously, for i == 0, we were drawing the translucent line first.
However, people reading the code would always assume the solid line is
indicated by the current step. So make the code do that.
Note that the spinner now rotates in the wrong direction. This will be
fixed in a future commit.
2011-03-05 15:03:56 +01:00
Benjamin Otte
41b5a6a900
theme: Compute scale values once
...
Use a local variable to store the xscale and yscale, so that it's only
computed once.
Makes it easier to do the changes I'm about to do.
2011-03-05 15:03:56 +01:00
Benjamin Otte
8c8dda6a6b
theme: Do general cairo setup in one place
...
Also remove wrong comment.
2011-03-05 15:03:56 +01:00
Benjamin Otte
639bf2a2a5
theme: Remove unnecessary save/restore in spinner code
2011-03-05 15:03:56 +01:00
Benjamin Otte
3e524ac28e
theme: Simplify spinner drawing code a bit.
2011-03-05 15:03:56 +01:00
Carlos Garnacho
d1632f87d1
Avoid the need for cairo_push_group() in gtk_render_background()
...
This operation is potentially expensive, so the code has been
refurbished so avoid the cases it was needed for. Antialiased
cairo_clip() has been also reduced to transitions with surface
patterns involved.
2011-02-09 20:05:32 +01:00
Michael Natterer
f23585b7bb
gtk: bail out in render_background_internal() if the extents are <= 0
...
otherwise we run into scaling the cairo_t into a borken state that's
not fixable by cairo_restore().
2011-02-06 11:17:59 +01:00
Carlos Garnacho
c0ba1c96d4
Ensure gtk_render_background()/frame() yield the same shape
...
On rounded boxes the background and the frame wouldn't fit in
perfectly, leaving some visual noise in the corners. This is now
gone.
2011-02-05 15:26:40 +01:00
Carlos Garnacho
4c40349b92
Use cairo_push_group() to mix backgrounds during transitions
...
It also helps remove the cairo_clip() call to achieve the rounded
shape.
2011-02-05 15:26:40 +01:00
Matthias Clasen
d9fcc4c630
Silence new gcc warnings
...
gcc 4.6.0 has started to warn about set-but-unused variables.
So don't do that, then.
2011-01-23 21:51:38 -05:00
Pavel Holejsovsky
374e76a19d
[GI] Mark unintrospectable constructs as (skip)
...
Also adds 'Rename to:' annotation to some constructs replacing the
skipped ones.
2011-01-20 13:57:21 +01:00
Pavel Holejsovsky
2f0d40335b
[GI] Add missing (transfer) annotations
2011-01-20 13:57:18 +01:00
Pavel Holejsovsky
3c8fc21e9b
[GI] Fixes of existing incorrect annotations
2011-01-20 13:56:06 +01:00
Carlos Garnacho
687ac4d4aa
Don't displace background for spinbuttons in the theming engine
...
This is a leftover from the older GtkStyle code, this is handled
through CSS spacings instead.
2011-01-19 04:28:48 +01:00
Matthias Clasen
8e420bca02
Unify handling of prelighted icons
...
Make GtkEntry use gtk_render_icon_pixbuf for rendering the
icons, and move the working icon prelighting code from GtkEntry
to GtkThemingEngine.
https://bugzilla.gnome.org/show_bug.cgi?id=636691
2011-01-14 23:59:22 -05:00
Carlos Garnacho
8ad724ebcc
Deal with the abscence of horizontal/vertical class when rendering an expander
2011-01-12 22:07:34 +01:00
Carlos Garnacho
b7caeb7adb
Fix rendering glitch in menu radiobuttons
...
The arcs needed a new subpath.
2011-01-12 20:54:35 +01:00
Carlos Garnacho
6ff7a8daf2
Make GtkToolItemGroup use GtkStyleContext
2011-01-12 20:54:34 +01:00
Carlos Garnacho
4c4df23d12
GtkThemingEngine: Fix handles rendering
...
The wrong class was being used, so the theming engine didn't
match it properly.
2011-01-10 23:52:36 +01:00
Carlos Garnacho
162380fca5
Make GtkCalendar use GtkStyleContext
2011-01-10 20:49:34 +01:00
Matthias Clasen
6619ac35e3
Documentation fixes
2011-01-06 09:00:53 -05:00
Matthias Clasen
072023e57b
Remove deprecated GtkSpinner style properties
2011-01-05 23:21:52 -05:00
Matthias Clasen
5627ba161e
More parameter name mismatches
2010-12-17 14:49:27 -05:00
Carlos Garnacho
afca06b362
Add getter for font description in GtkThemingEngine
...
This function is analogous to gtk_style_context_get_font().
2010-12-13 22:31:30 +01:00
Carlos Garnacho
d80868aa68
GtkThemingEngine: Render tabs background in the correct direction.
...
The cairo context has been already rotated, so using GTK_JUNCTION_BOTTOM
is expected to be used there.
2010-12-13 22:31:28 +01:00
Carlos Garnacho
2371ed8b87
GtkThemingEngine: handle expander transitions to active, and rtl
2010-12-13 22:31:28 +01:00
Carlos Garnacho
1f697f2695
GtkThemingEngine: remove unused variable
2010-12-13 22:31:27 +01:00
Benjamin Otte
3070d6e3d5
Revert "docs: Reinstate pixbufs section in GDK docs"
...
I committed my whole working tee instead of just one file. Ooops.
This reverts commit ded14b2562
.
2010-12-09 23:55:33 +01:00
Benjamin Otte
ded14b2562
docs: Reinstate pixbufs section in GDK docs
...
It was accidentally removed in 0775b0a858
2010-12-09 11:14:21 +01:00
Matthias Clasen
94c9eb72ce
Don't use g_warning when loading an engine fails
...
This causes the tests to abort if clearlooks can't be found.
2010-12-06 00:44:01 -05:00
Matthias Clasen
d5df33c75f
Fix abi check after recent merges
2010-12-05 12:18:30 -05:00
Carlos Garnacho
1c87180d5d
GtkThemingEngine: Fix parameters for gtk_theming_engine_lookup_color()
2010-12-04 15:39:58 +01:00
Carlos Garnacho
06d8676354
GtkThemingEngine: Be a bit more robust against missing essential properties.
2010-12-04 15:39:57 +01:00
Carlos Garnacho
bacb7906f2
Add helper API for getting colors/borders in GtkStyleContext/GtkThemingEngine
2010-12-04 15:39:55 +01:00
Carlos Garnacho
afeac82fbd
GtkThemingEngine: Add gtk_theming_engine_lookup_color()
...
It could also be handy for theme engines...
2010-12-04 15:39:53 +01:00
Carlos Garnacho
9bdb7e6945
GtkThemingEngine: Remove unused variables
2010-12-04 15:39:53 +01:00
Carlos Garnacho
cf0bd12e6c
GtkStyleProperties: Turn border-width into a GtkBorder property.
...
All current users of this CSS property have been updated to deal
with a GtkBorder.
Also a 0 border width has been set in the default CSS to ensure
GtkStyleContext and GtkThemingEngine always provide a non-NULL
pointer for this property.
2010-12-04 15:39:52 +01:00
Carlos Garnacho
64b7d9e5c1
GtkThemingEngine: Render gradients in tabs.
...
Background will be actually rotated in tabs, so the "bottom" side coincides
with the junction point, this makes gradients work as expected in rotated tabs.
2010-12-04 15:39:50 +01:00
Carlos Garnacho
32c2b13969
GtkThemingEngine: split background rendering to a private function.
2010-12-04 15:39:50 +01:00
Carlos Garnacho
3d956b10ee
GtkStyleContext: handle prelight transitions
2010-12-04 15:39:44 +01:00
Carlos Garnacho
c90bee16ba
GtkThemingEngine: Handle prelight transitions in render_layout()
2010-12-04 15:39:44 +01:00
Carlos Garnacho
e696c24f08
GtkThemingEngine: Also render topright and bottomleft corners if junction sides say so
2010-12-04 15:39:44 +01:00
Carlos Garnacho
4027dceaa9
Add #define for the "spinner" style class
2010-12-04 15:39:44 +01:00
Carlos Garnacho
cc18d65986
GtkThemingEngine: render square corner if the gap is too close on render_frame_gap()
2010-12-04 15:39:43 +01:00
Matthias Clasen
1391a61bc5
Improve frame-gap drawing
...
Instead of overdrawing the gap with bg-color, clip it away.
2010-12-04 15:39:42 +01:00
Matthias Clasen
54eadfcefd
Fix another parameter mismatch
2010-12-04 15:39:42 +01:00
Carlos Garnacho
0fce9342ef
GtkThemingEngine: Draw 3D-like effects on square frames with lines.
2010-12-04 15:39:40 +01:00
Carlos Garnacho
3138cc7677
GtkThemingEngine: Render rounded frames with light/shadow connections at 45°
2010-12-04 15:39:39 +01:00
Carlos Garnacho
95ae1a0aa6
GtkThemingEngine: don't overshoot when rendering frames.
2010-12-04 15:39:39 +01:00
Matthias Clasen
30fe448750
Fix handling of junctions in frame drawing code
2010-12-04 15:39:38 +01:00
Matthias Clasen
d9b0da5b83
Fix resize grip drawing
...
There was some confusion about junctions...
2010-12-04 15:39:34 +01:00
Matthias Clasen
21a193ad02
Make expanders prelight
2010-12-04 15:39:33 +01:00
Carlos Garnacho
ead23cd0ce
GtkThemingEngine: Make render_option() depend on border-style and border-color.
2010-12-04 15:39:20 +01:00
Carlos Garnacho
04783534ed
GtkThemingEngine: Make render_check() depend on border-style and border-color.
2010-12-04 15:39:19 +01:00
Carlos Garnacho
1bfb169ce6
GtkThemingEngine: Documents that engines must only use this API.
...
It was a bit unclear in the documentation, even if it was from the
API POV.
2010-12-04 15:39:18 +01:00
Matthias Clasen
b6776dc116
Fix the resize handle drawing
2010-12-04 15:39:15 +01:00
Matthias Clasen
f0eafe60f8
Remove debug output
2010-12-04 15:39:14 +01:00
Matthias Clasen
9ca66efe2c
Fix a memory leak
2010-12-04 15:39:14 +01:00
Carlos Garnacho
25b6945971
GtkThemingEngine: remove unused code
2010-12-04 15:39:13 +01:00
Carlos Garnacho
892fe46324
Fix compile warnings
2010-12-04 15:39:13 +01:00
Carlos Garnacho
6099399fa7
GtkThemingEngine: Use border settings on render_extension/frame_gap()
2010-12-04 15:39:11 +01:00
Carlos Garnacho
534942d994
GtkThemingEngine: Do not use possible reserved word.
2010-12-04 15:39:10 +01:00
Carlos Garnacho
62ee0956e3
GtkStyleProperties: Use GParamSpec for properties registration.
2010-12-04 15:39:06 +01:00
Carlos Garnacho
0431239ead
GtkThemingEngine: ensure 1px wide frames aren't painted between pixels.
2010-12-04 15:38:48 +01:00
Carlos Garnacho
f66275fa6a
GtkThemingEngine: Use square cap for solid frames.
2010-12-04 15:38:47 +01:00
Carlos Garnacho
3d1403e684
GtkThemingEngine: ensure that background isn't rendered past the frame boundaries.
2010-12-04 15:38:47 +01:00
Carlos Garnacho
d6ba3b7d89
GtkThemingEngine: Get rid of obsolete code for tooltips.
2010-12-04 15:38:47 +01:00
Carlos Garnacho
271145645c
GtkThemingEngine: Use GtkSymbolicColor for shades.
2010-12-04 15:38:41 +01:00
Carlos Garnacho
df95a74a27
GtkThemingEngine: Do not require a default value when registering properties
...
NULL should work for 0 for int/double/enum/... types and NULL for
pointer types, this should be sane enough to not require a default
value.
2010-12-04 15:38:40 +01:00
Carlos Garnacho
a23863211b
GtkStyleContext: Add gtk_render_icon_pixbuf()
...
This function is similar to gtk_style_render_icon(), which is now
implemented on top of this one.
2010-12-04 15:38:38 +01:00
Carlos Garnacho
06c8857191
GtkThemingEngine: Fix compile warning.
2010-12-04 15:38:38 +01:00
Carlos Garnacho
ebf5bd390f
Add gtk_render_activity()
...
This method will render progress bars and spinners, these should
handle active and inconsistent states' animation progress in order
to perform animations.
2010-12-04 15:38:33 +01:00
Carlos Garnacho
af1f8701dc
GtkThemingEngine: draw resize grip through render_handle().
...
GtkJunctionSides is used instead of GdkWindowEdge, GtkStyle
implementation has changed to use GtkStyleContext's.
2010-12-04 15:38:33 +01:00
Carlos Garnacho
4acc20abc1
s/GtkStyleSet/GtkStyleProperties/
...
The former name had oddities such as gtk_style_set_set() and such,
so the new name is nicer in that regard and not much longer.
2010-12-04 15:38:29 +01:00
Carlos Garnacho
8ea649e0a0
Rely only on fg/bg colors.
...
"foreground-color" has been renamed to just "color" as in regular CSS,
and the "text-color" and "base-color" properties have been removed. The
default CSS has been changed to have widgets cope with this change.
2010-12-04 15:38:29 +01:00
Carlos Garnacho
a8a1d8cd01
GtkThemingEngine: Use ::name when registering style props.
2010-12-04 15:38:29 +01:00
Carlos Garnacho
90de318ab3
GtkThemingEngine: Add ::name construct only property
...
This property is to be set by theming engines, the name set will be favored
over the object type name when registering custom properties, making possible
something like:
-Clearlooks-border: blah;
2010-12-04 15:38:28 +01:00
Carlos Garnacho
6356f01b06
GtkThemingEngine: render 0-radius frames with 3D-like 45° corner effect
2010-12-04 15:38:27 +01:00
Carlos Garnacho
43f7fb8354
GtkThemingEngine: Clear the background for .background class
2010-12-04 15:38:27 +01:00
Carlos Garnacho
975f133d63
GtkThemingEngine: Improve rendering of inset/outset borders.
2010-12-04 15:38:26 +01:00
Carlos Garnacho
490d59f045
Do not shade alpha values.
2010-12-04 15:38:25 +01:00