Timm Bäder
4d75d62033
GtkStack: Interpolate between size changes
2015-05-29 17:37:04 +02:00
Timm Bäder
0eddfcedb9
GtkStack: Remove some useless function calls
...
We will call gtk_widget_queue_resize anyway later when finishing the
(maybe non-running) transition, which will also cause the stack to be
repainted.
2015-05-29 17:37:04 +02:00
Timm Bäder
24193a38f0
GtkStack: Keep the last_visible_child around during transitions
...
We need it later.
2015-05-29 17:37:04 +02:00
Timm Bäder
dc55a895ed
GtkStack: Misc indentation fixes
2015-05-29 17:37:04 +02:00
Timm Bäder
6d25e52a4d
GtkStack: Remove useless cast
2015-05-29 17:37:04 +02:00
Timm Bäder
c0d535a718
GtkStack: Remove useless function calls
...
These both just use the default values anyway.
2015-05-29 17:37:04 +02:00
Timm Bäder
bdabea3ae3
GtkStack: Save last visible widget size
...
When interpolating the stack size, we compute the current size by using
the prefered/minimum current size and the last size. We can't use the
last_visible_surface_allocation because that is not available until the
first _draw call and it doesn't include the child's margins.
2015-05-29 17:37:04 +02:00
Timm Bäder
b3bbe99001
GtkStack: Remove gtk_widget_set_opacity call
...
The corresponding call with 0.999 opacity is gone, so we don't need to
reset the opacity anymore.
2015-05-29 17:37:04 +02:00
Debarshi Ray
39e7afecb1
GtkStack: Don't emit notify::visible-child during destruction
...
https://bugzilla.gnome.org/show_bug.cgi?id=749012
2015-05-07 15:18:20 +02:00
Christian Hergert
bb53f893e2
stack: check for widget before calling is_ancestor()
...
We can hit this path during the destruction case, where widget has
been released.
This fixes a lot of superfluous error messages on console.
2015-02-14 18:11:54 -08:00
Benjamin Otte
059cd3e51f
stack: Remove commented out line
...
It always shows up in my greps and confuses me.
2015-01-07 14:26:48 +01:00
Matthias Clasen
123c6dc558
GtkStack: Improve focus handling
...
Add notebook-like focus handling: Keep track of the last focused
descendent of each page, and focus it again when switching back
to the page. If there is no last focused child, we move the focus
into the page as if the user had hit Tab.
2014-12-10 22:32:45 -05:00
Matthias Clasen
f71831c780
GtkStack: silently ignore visible-child-name set to NULL
...
This can happen when loading empty stacks in glade.
2014-11-25 00:14:47 -05:00
Matthias Clasen
cd8576ec19
GtkStack: Fix an oversight in child renaming
...
We currently emit a warning if you rename a child to the name
it already has. We shouldn't do that.
2014-11-18 13:37:51 +01:00
Matthias Clasen
95b075b8eb
Drop unused variables
...
Keeps the compiler happy.
2014-11-14 11:48:50 -05:00
Matthias Clasen
c8d9e5b564
GtkStack: Remove some clumsy use of GList API
...
No need for g_list_next(), and don't open-code g_list_index().
2014-11-10 18:45:58 -05:00
Matthias Clasen
b86356bc1c
GtkStack: split homogeneous
...
Split homogeneous into separate hhomogeneous and vhomogeneous
properties. vhomogeneous is what we want for popover menus.
2014-10-26 14:59:21 -04:00
Carlos Garnacho
8ff47570af
stack: Ensure the bin window has an evmask suitable to windowless children
...
If a child has set_has_window == FALSE, it purely relies on the events set on
the parent window, for which the bin window used to just ensure the exposure
mask, eating all input events.
https://bugzilla.gnome.org/show_bug.cgi?id=734357
2014-08-12 14:28:34 +02:00
Benjamin Otte
02ccfb5d62
GtkStack: Render a background
...
https://bugzilla.gnome.org/show_bug.cgi?id=733027
2014-07-12 07:16:33 +02:00
Matthias Clasen
c1867761ca
Revert "GtkStack: Render background and chain up gtk_widget_draw ()."
...
This reverts commit f6695b962f
.
2014-07-12 00:33:19 -04:00
William Hua
f6695b962f
GtkStack: Render background and chain up gtk_widget_draw ().
...
https://bugzilla.gnome.org/show_bug.cgi?id=733027
2014-07-11 20:46:03 -04:00
Matthias Clasen
d591341bd1
GtkStack: Avoid a few redundant notify emissions
...
A few of the property setters were missing the
standard checks.
2014-06-09 13:30:50 -04:00
Matthias Clasen
0a681f9224
GtkStack: Use G_PARAM_EXPLICIT_NOTIFY
2014-06-09 13:30:49 -04:00
Matthias Clasen
3957ce4898
GtkStack: Avoid compiler warnings
...
gcc warns about unhandled enum values in these switch statements,
so add an empty default: case to placate the compiler.
2014-05-02 17:15:49 -04:00
Philip Chimento
5b5813fcdc
stack: Add counterparts of OVER_UP_DOWN transition
...
The GtkStackTransitionType enum now has OVER_DOWN_UP, OVER_LEFT_RIGHT,
and OVER_RIGHT_LEFT values to complement OVER_UP_DOWN.
https://bugzilla.gnome.org/show_bug.cgi?id=726676
2014-05-02 16:54:41 -04:00
Philip Chimento
a27b0bad86
stack: More readability when adding transitions
...
This small refactor makes the code more readable when adding more
transition types that have left, right, up, and down variations.
It adds inline boolean functions to tell information about transition
types (avoiding long if clauses) and changes long chains of "else if
(transition_type == ...)" into switch statements. Both are only likely
to get longer as more transition types are added.
https://bugzilla.gnome.org/show_bug.cgi?id=726676
2014-05-02 16:54:41 -04:00
Benjamin Otte
73aa7bd2f5
widgets: Remove (GtkTickCallback) casts
...
Instead, make the functions conform to the prototype, so that casting
isn't needed.
2014-04-29 19:35:29 +02:00
Matthias Clasen
8195244e3b
Improve GtkStack documentation
...
As has been pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=725711
it is a little confusing that we have the concept of
a visible child and of the child being visible itself.
2014-03-06 22:50:40 -05:00
William Jon McCann
469d333aa2
docs: use Returns: consistently
...
Instead of Return value:
2014-02-19 18:56:05 -05:00
William Jon McCann
529dafdf0b
docs: don't use signal syntax for properties
2014-01-21 22:40:55 -05:00
Steve Frécinaux
49bf3cdba8
GtkStack: add gtk_stack_get_child_by_name()
...
This new method allows getting a widget from a GtkStack when we know its
name, and will also return NULL if there is no widget going by that
name.
Usage example would be to check if a child with a given name exists
before calling gtk_stack_set_visible_child_name().
https://bugzilla.gnome.org/show_bug.cgi?id=722588
2014-01-21 09:35:22 +01:00
Benjamin Otte
8308f4c1e9
stack: Fix crash on g_object_get("visible-child")
...
priv->visible_child is not a GtkWidget but a custom struct holding the
widget. So use the getter instead.
2013-11-25 03:49:35 +01:00
Jasper St. Pierre
da0ebcb7da
Revert "stack: respect gtk-enable-animations setting"
...
It already respected enable-animations.
This reverts commit fb9ff44299
.
2013-11-19 18:38:56 -05:00
Matthias Clasen
fb9ff44299
stack: respect gtk-enable-animations setting
...
https://bugzilla.gnome.org/show_bug.cgi?id=712632
2013-11-18 23:19:27 -05:00
Xavier Claessens
9223e3c25a
GtkStack: add transition-running property
...
This is useful to know when the transition is done we can
remove the child from the stack.
https://bugzilla.gnome.org/show_bug.cgi?id=711494
2013-11-12 10:27:45 -05:00
David King
468fd38531
stack: Use g_object_notify_by_pspec()
...
https://bugzilla.gnome.org/show_bug.cgi?id=711611
2013-11-09 10:45:06 -05:00
David King
2454522b26
stack: Use g_object_class_install_properties()
...
https://bugzilla.gnome.org/show_bug.cgi?id=711611
2013-11-09 10:45:06 -05:00
Jasper St. Pierre
4f7170fd56
stack: Fix the slide animation if the child has a non-zero allocation position
...
This can happen if the child has a margin, for instance.
2013-11-01 01:53:20 -04:00
Jasper St. Pierre
3e836dd9fc
stack: Scope some variables so that the code is clearer
...
... that the allocation magic here is for the transition of the
last visible child that's sliding out.
2013-11-01 01:53:20 -04:00
Jasper St. Pierre
ee8b3efbcf
stack: Remove some confusing whitespace
2013-10-09 18:29:41 -04:00
David King
5f61183158
stack: Warn when setting a visible child which is not in the stack
...
https://bugzilla.gnome.org/show_bug.cgi?id=709613
2013-10-08 10:55:29 +01:00
Matthias Clasen
98b78ed5da
GtkStack: Add more transition types
...
This adds new 'over' and 'under' transitions which work by moving
the new page over the previous one, or moving the previous page off
to reveal the new one. We also add an over/under combination that
is going to be used in GtkAboutDialog.
https://bugzilla.gnome.org/show_bug.cgi?id=707187
2013-09-25 23:54:12 -04:00
Paolo Borelli
e59c28743a
Add a needs-attention child property to GtkStack
...
The child property is watched by the StackSwicther which in turns sets a
needs-attention css class on the corresponding button, so that the theme
can for instance show a throbbing animation if one of the hidden pages
needs the user attention.
https://bugzilla.gnome.org/show_bug.cgi?id=707153
2013-09-25 22:34:22 -04: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
Alexander Larsson
e12d3cea47
stack: Use normal opacity groups rather than weird ones in GtkWidget
...
Since we now do all drawing propagation on the cairo_t (rather than
exposing multiple independent times on the GdkWindows) we no longer
need the opacity 0.999 hack.
2013-07-04 13:30:51 +02:00
Alexander Larsson
06a808cf2a
stack: Use new private model, remove priv pointer
2013-07-02 13:43:20 +02:00
Alexander Larsson
264cbc9e35
GtkStack: Switch order on left/right up/down transitions.
...
When the new child is on the left, scroll right. This makes the
thing look physically "real".
2013-06-13 20:55:05 +02:00
Alexander Larsson
418ac673a3
GtkStack: Fix drawing of sliding
...
We were not drawing the view window, so the old widget
was clipped for the sliding transitions.
2013-06-13 20:50:41 +02:00
Erick Pérez Castellanos
33a1c4d6e0
GtkStack: Add position-dependent slide transitions
...
These go left/right or up/down depending on the relative
order of the children being switched between.
2013-06-13 20:33:42 +02:00
Alexander Larsson
e2c8a95af6
GtkStack: Fix double-draw in crossfade
...
We should only draw the cross-fade on the bin window, not doing this
was causing us to draw it multiple times using ADD which resulted
in weird colors.
2013-05-07 16:40:24 +02:00
Matthias Clasen
8dc090b9b1
GtkStack: improve docs
2013-04-24 22:07:09 -04:00
Cosimo Cecchi
d82257e1c8
stack: fix a typo in docs
2013-04-22 11:20:06 -04:00
Matthias Clasen
b88c0d7387
Typo fix in GtkStack docs
2013-04-22 10:25:30 -04:00
Matthias Clasen
6186429f5f
GtkStack: shorten a few parameter names
...
Looks better in the docs.
2013-04-21 23:13:16 -04:00
Matthias Clasen
a8123bf95e
Forgot one place
...
Also change the property definition for transition-duration
to be uint instead of int.
2013-04-21 22:24:54 -04:00
Matthias Clasen
b0cf4d057d
Make transition-duration unsigned
...
The code doesn't deal with negative durations, so better
don't allow them.
2013-04-21 21:51:28 -04:00
Matthias Clasen
71f1f768cc
Change transition-type property type
...
This is an enum, so declare the property as such.
2013-04-21 21:51:27 -04:00
Matthias Clasen
85ccb93b9f
GtkStack: warn if child names are not unique
2013-04-21 21:51:27 -04:00
Matthias Clasen
c37b30f317
GtkStack: add vertical slide transitions
...
We allow transitions that slide up or down.
2013-04-21 21:51:26 -04:00
Matthias Clasen
88cd26575d
GtkStack: rtl flipping for animation
...
We switch slide-right and slight-left when in rtl.
2013-04-21 21:51:25 -04:00
Matthias Clasen
e72a78c4e6
Add a way to specify transition types on the fly
...
Add a gtk_stack_set_visible_child_full that takes a
transition type.
2013-04-21 21:51:25 -04:00
Matthias Clasen
06f5b1e572
Add docs for GtkStack
2013-04-21 21:51:24 -04:00
Matthias Clasen
2e39c4bab8
Add GtkStack
...
Add separate GtkStack and GtkStackSwitcher widgets that are an
alternative to GtkNotebook. Additionally, GtkStack supports
animated transitions when changing pages.
These widgets were initially developed in libgd.
2013-04-21 21:51:24 -04:00