Commit Graph

48 Commits

Author SHA1 Message Date
37007c47a5 level bar: Don't leave css nodes behind
We create and destroy gadgets inside the levelbar hierarchy here,
and if we don't explicitly remove their CSS nodes from the parent,
they stick around.
2016-03-01 15:35:32 -05:00
c784d5d700 levelbar: Avoid a use-after-free
We were freeing the old offset before using its name to
recreate a new one. Don't do that.
Found by gcc's undefined behavior sanitizer.
2016-02-26 15:52:19 -05:00
c3c01d8cbc level bar: Document buildable syntax 2016-02-07 11:43:13 +01:00
ccd8c76ff2 level bar: Fix offset behavior
We had some odd special-casing for the lowest and highest offset
that did not quite work. The new rule is simple: If the value
is between offset n-1 and n, it gets the style for offset n.

https://bugzilla.gnome.org/show_bug.cgi?id=761416
2016-02-06 16:43:45 +01:00
1a71579b61 level bar: Improve documentation
The docs were not explaining at all what happens to existing
level offsets when the min- or max-value of a level bar are
changed.
2016-02-06 16:19:13 +01:00
8776bb5324 level bar: Make the full offset official
We are adding 3 offsets, not just two. Add a define for the
third one, and mention it in the docs.
2016-02-06 16:11:17 +01:00
61307deaf7 levelbar: Make discrete levelbars behave as before
During the gadget conversion, the drawing of discrete levelbars
was unintentionally changed to draw a wide trough but narrow
blocks, which does not look great. So go back to the previous
way of drawing things.

https://bugzilla.gnome.org/show_bug.cgi?id=761428
2016-02-05 11:53:50 +01:00
8096740ea4 levelbar: Document CSS node ordering 2016-01-22 23:30:36 -05:00
ea4cff1ea4 Use convenience API that was introduced recently
Use gtk_css_gadget_set_state in all the places where we previously
were getting a node from a gadget, just to call gtk_css_node_set_state.
2016-01-13 00:19:31 -05:00
637ade656a levelbar: loop over all block gadgets to determine min size
Instead of just picking the first. This is because the theme might set a
border on only one of them, like the HighContrast theme does.
2016-01-04 18:14:33 -08:00
183bcb41ec levelbar: fix parameter confusion
We're always interested in the minimum size.
2016-01-04 17:56:50 -08:00
424898e071 levelbar: consolidate code into single function 2016-01-03 00:45:43 -08:00
a6e7e72d53 levelbar: port to use gadgets
We now use one gadget for the trough, and one for each block.
2016-01-03 00:45:43 -08:00
971f1a9b31 levelbar: split out a function 2016-01-03 00:44:05 -08:00
6322b1f647 levelbar: fix a crash
We should not try to access a block with an index that exceeds the
number of blocks in the widget.
2016-01-02 18:44:07 -08:00
2f544655f9 Revise CSS node documentation
Clarify the use of brackets in the CSS node diagrams:
[] means optional nodes or classes, <> means child widgets.
2015-12-16 10:58:47 -05:00
971a277419 cssnode: Change style-changed signal
Instead of having old and new style, now have a GtkCssStyleChange opaque
object that will compute the changes you are interested in for you.

This simplifies change signal handlers quite a bit and avoids lots of
repeated computation in every signal handler.
2015-12-12 02:16:04 +01:00
3513e5e87b Chain up in state_flags_changed
When introducing handlers for state_flags_changed in the node
transitions, chaining up was forgotten.
2015-12-02 04:36:31 +01:00
21209a963a levelbar: Use more CSS nodes
Create as many CSS nodes as we're rendering blocks on the screen.
2015-11-13 00:55:28 -05:00
5912790f32 gtklevelbar: Fix typo 2015-11-11 09:35:31 +01:00
17f110433d levelbar: Port to use CSS nodes
Use element names levelbar, trough, block, and some style
classes on the block nodes: .discrete, .continuous, .empty,
.level-low, etc.
2015-11-11 00:25:24 -05:00
66f0bdee0a Intern all signal names beforehand
This avoids pointless allocations
2015-09-12 12:50:39 -04:00
afd6621743 GtkLevelBar: Use the new helpers
Instead of issuing g_warning, fill the provided GError.
This lets us test this error handling, and is the right
thing to do. Use the new GtkBuilder helpers and
g_markup_collect_attributes to do so.
2015-04-27 01:15:23 -04:00
631e2f4c9b levelbar: don't use the current value style class for empty blocks
We want to be able to style the empty blocks independently of all the
offset styles, so remove the current style class when painting an empty
block.

https://bugzilla.gnome.org/show_bug.cgi?id=707695
2014-10-27 06:56:19 -04:00
b5a8b7ef3b widget: Make _gtk_set_simple_clip() take an optional content clip 2014-08-21 00:54:07 +02:00
e2cf8d2125 GtkLevelBar: implement clipping
So level bars can have shadows, too.
2014-07-18 17:47:53 -04:00
45c84a63a3 GtkLevelBar: Use G_PARAM_EXPLICIT_NOTIFY 2014-06-09 13:31:05 -04:00
fd527691a8 levelbar: Remove unneeded checks
Size vfuncs always get non-null out variables passed, so no need to
check for NULL.
2014-05-01 14:51:28 +02:00
469d333aa2 docs: use Returns: consistently
Instead of Return value:
2014-02-19 18:56:05 -05:00
37a8ee6e95 docs: fully break lines in examples
Try to do a better job of keeping example content
from being too wide. It is often rendered as <pre>
text so the only time we can wrap it is in the source.

It is best to full break lines at all punctuation and
to try to keep the width under 70 chars or so.
2014-02-12 18:42:50 -05:00
7a208fbbf3 docs: use proper apostrophe
https://wiki.gnome.org/Design/OS/Typography
2014-02-07 13:06:10 -05:00
a22358c0c0 docs: use ` instead of <literal> 2014-02-04 18:24:29 -05:00
63e887e165 docs: replace all <examples> with markdown headings 2014-02-04 16:58:54 -05:00
4c8bd8e7cf docs: Identify examples that are C code
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
768bc44081 docs: use |[ ]| instead of <programlisting></programlisting>
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
f27d820aef docs: fix typo in property name 2014-01-21 18:57:37 -05:00
e5317f0f9a Improve struct packing in various places 2013-09-21 23:50:55 -04:00
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
92f0c5c384 Add accessibility for GtkLevelBar and value test 2013-02-01 11:44:15 -06:00
fa2ed6b8a2 level-bar: Fix typo 2012-10-17 16:09:22 +02:00
5e55bf1d53 level-bar: add support for RTL locales
https://bugzilla.gnome.org/show_bug.cgi?id=684288
2012-10-17 14:12:57 +02:00
e5de18cbf9 level-bar: add an "inverted" property like GtkProgressBar
https://bugzilla.gnome.org/show_bug.cgi?id=684288
2012-10-17 14:12:57 +02:00
67e44e6a4e Revert "levelbar: start filling from the bottom"
This reverts commit 4b3ed75f7d.

I didn't see https://bugzilla.gnome.org/show_bug.cgi?id=684288 - it
makes more sense to properly fix this for the next cycle.
2012-09-19 15:23:43 -04:00
4b3ed75f7d levelbar: start filling from the bottom
As long as we don't have an API for explicitly inverting the bar, it
makes more sense for the progress in vertical orientation to fill from
the bottom.
2012-09-19 15:18:45 -04:00
628892bce8 gtk/gtklevelbar.c: Fix build on non-C99 compilers
-Include fallback-c89.c for the usage of round(), where an implementation
 of round() is provided for compilers that don't have it
-Use g_ascii_strtod() instead of strtof as strtof() may not be universally
 available.
2012-08-16 13:42:13 +08:00
68acf78c5d level-bar: introduce GtkLevelBar
Similar to CcStrengthBar from gnome-control-center, but more generic and
with thorough CSS styling support.

https://bugzilla.gnome.org/show_bug.cgi?id=677892
2012-07-16 01:01:38 -04:00
5de021cfdc Revert "level-bar: introduce GtkLevelBar"
This reverts commit 126a2308ca.

Pushed by mistake.
2012-07-11 07:15:34 -04:00
126a2308ca level-bar: introduce GtkLevelBar
Similar to CcStrengthBar from gnome-control-center, but more generic and
with thorough CSS styling support.

https://bugzilla.gnome.org/show_bug.cgi?id=677892
2012-07-10 22:41:12 -04:00