Class Stack
- All Implemented Interfaces:
Proxy
,Accessible
,Buildable
,ConstraintTarget
GtkStack
is a container which only shows one of its children
at a time.
In contrast to GtkNotebook
, GtkStack
does not provide a means
for users to change the visible child. Instead, a separate widget
such as StackSwitcher
or StackSidebar
can
be used with GtkStack
to provide this functionality.
Transitions between pages can be animated as slides or fades. This
can be controlled with setTransitionType(org.gnome.gtk.StackTransitionType)
.
These animations respect the Gtk.Settings:gtk-enable-animations
setting.
GtkStack
maintains a StackPage
object for each added
child, which holds additional per-child properties. You
obtain the GtkStackPage
for a child with getPage(org.gnome.gtk.Widget)
and you can obtain a GtkSelectionModel
containing all the pages
with getPages()
.
GtkStack as GtkBuildable
To set child-specific properties in a .ui file, create GtkStackPage
objects explicitly, and set the child widget as a property on it:
<object class="GtkStack" id="stack">
<child>
<object class="GtkStackPage">
<property name="name">page1</property>
<property name="title">In the beginning…</property>
<property name="child">
<object class="GtkLabel">
<property name="label">It was dark</property>
</object>
</property>
</object>
</child>
CSS nodes
GtkStack
has a single CSS node named stack.
Accessibility
GtkStack
uses the AccessibleRole.TAB_PANEL
for the stack
pages, which are the accessible parent objects of the child widgets.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Stack.Builder<B extends Stack.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class org.gnome.gtk.Widget
Widget.DestroyCallback, Widget.DirectionChangedCallback, Widget.HideCallback, Widget.KeynavFailedCallback, Widget.MapCallback, Widget.MnemonicActivateCallback, Widget.MoveFocusCallback, Widget.QueryTooltipCallback, Widget.RealizeCallback, Widget.ShowCallback, Widget.StateFlagsChangedCallback, Widget.UnmapCallback, Widget.UnrealizeCallback, Widget.WidgetClass, Widget.WidgetImpl
Nested classes/interfaces inherited from class org.gnome.gobject.InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClass
Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
Nested classes/interfaces inherited from interface org.gnome.gtk.Accessible
Accessible.AccessibleImpl, Accessible.AccessibleInterface
Nested classes/interfaces inherited from interface org.gnome.gtk.Buildable
Buildable.BuildableIface, Buildable.BuildableImpl
Nested classes/interfaces inherited from interface org.gnome.gtk.ConstraintTarget
ConstraintTarget.ConstraintTargetImpl, ConstraintTarget.ConstraintTargetInterface
-
Constructor Summary
ConstructorDescriptionStack()
Creates a newGtkStack
.Stack
(MemorySegment address) Create a Stack proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionAdds a child to this Stack.Adds a child to this Stack.Adds a child to this Stack.protected Stack
asParent()
Returns this instance as if it were its parent type.static Stack.Builder
<? extends Stack.Builder> builder()
AStack.Builder
object constructs aStack
with the specified properties.getChildByName
(String name) Finds the child with the name given as the argument.boolean
Gets whether this Stack is horizontally homogeneous.boolean
Returns whether theGtkStack
is set up to interpolate between the sizes of children on page switch.Returns theGtkStackPage
object forchild
.getPages()
Returns aGListModel
that contains the pages of the stack.int
Returns the amount of time (in milliseconds) that transitions between pages in this Stack will take.boolean
Returns whether the this Stack is currently in a transition from one page to another.Gets the type of animation that will be used for transitions between pages in this Stack.static Type
getType()
Get the GType of the Stack classboolean
Gets whether this Stack is vertically homogeneous.Gets the currently visible child of this Stack.Returns the name of the currently visible child of this Stack.void
Removes a child widget from this Stack.void
setHhomogeneous
(boolean hhomogeneous) Sets theGtkStack
to be horizontally homogeneous or not.void
setInterpolateSize
(boolean interpolateSize) Sets whether or not this Stack will interpolate its size when changing the visible child.void
setTransitionDuration
(int duration) Sets the duration that transitions between pages in this Stack will take.void
setTransitionType
(StackTransitionType transition) Sets the type of animation that will be used for transitions between pages in this Stack.void
setVhomogeneous
(boolean vhomogeneous) Sets theGtkStack
to be vertically homogeneous or not.void
setVisibleChild
(Widget child) Makeschild
the visible child of this Stack.void
setVisibleChildFull
(String name, StackTransitionType transition) Makes the child with the given name visible.void
setVisibleChildName
(String name) Makes the child with the given name visible.Methods inherited from class org.gnome.gtk.Widget
actionSetEnabled, activateActionIfExists, activateDefault, activateWidget, addController, addCssClass, addMnemonicLabel, addTickCallback, allocate, childFocus, computeBounds, computeExpand, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, cssChanged, directionChanged, disposeTemplate, dragCheckThreshold, emitDestroy, emitDirectionChanged, emitHide, emitKeynavFailed, emitMap, emitMnemonicActivate, emitMoveFocus, emitQueryTooltip, emitRealize, emitShow, emitStateFlagsChanged, emitUnmap, emitUnrealize, errorBell, focus, getAllocatedBaseline, getAllocatedHeight, getAllocatedWidth, getAllocation, getAncestor, getBaseline, getCanFocus, getCanTarget, getChildVisible, getClipboard, getColor, getCssClasses, getCssName, getCursor, getDefaultDirection, getDirection, getDisplay, getFirstChild, getFocusable, getFocusChild, getFocusOnClick, getFontMap, getFontOptions, getFrameClock, getHalign, getHasTooltip, getHeight, getHexpand, getHexpandSet, getLastChild, getLayoutManager, getMapped, getMarginBottom, getMarginEnd, getMarginStart, getMarginTop, getMemoryLayout, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth, grabFocus, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, moveFocus, observeChildren, observeControllers, onDestroy, onDirectionChanged, onHide, onKeynavFailed, onMap, onMnemonicActivate, onMoveFocus, onQueryTooltip, onRealize, onShow, onStateFlagsChanged, onUnmap, onUnrealize, pick, pick, queryTooltip, queueAllocate, queueDraw, queueResize, realize, removeController, removeCssClass, removeMnemonicLabel, removeTickCallback, root, setCanFocus, setCanTarget, setChildVisible, setCssClasses, setCursor, setCursorFromName, setDefaultDirection, setDirection, setFocusable, setFocusChild, setFocusOnClick, setFontMap, setFontOptions, setHalign, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setOpacity, setOverflow, setParent, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setStateFlags, setTooltipMarkup, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible, shouldLayout, show, sizeAllocate, sizeAllocate, snapshot, snapshotChild, stateFlagsChanged, systemSettingChanged, translateCoordinates, triggerTooltipQuery, unmap, unparent, unrealize, unroot, unsetStateFlags, unsetStateFlags
Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newInstance, newInstance, newv, notify_, notify_, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.gnome.gtk.Accessible
announce, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updateProperty, updateRelation, updateState
Methods inherited from interface org.gnome.gtk.Buildable
getBuildableId
-
Constructor Details
-
Stack
Create a Stack proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
Stack
public Stack()Creates a newGtkStack
.
-
-
Method Details
-
getType
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type. -
addChild
-
addNamed
-
addTitled
Adds a child to this Stack.The child is identified by the
name
. Thetitle
will be used byGtkStackSwitcher
to representchild
in a tab bar, so it should be short.- Parameters:
child
- the widget to addname
- the name forchild
title
- a human-readable title forchild
- Returns:
- the
GtkStackPage
forchild
-
getChildByName
-
getHhomogeneous
public boolean getHhomogeneous()Gets whether this Stack is horizontally homogeneous.- Returns:
- whether this Stack is horizontally homogeneous.
-
getInterpolateSize
public boolean getInterpolateSize()Returns whether theGtkStack
is set up to interpolate between the sizes of children on page switch.- Returns:
true
if child sizes are interpolated
-
getPage
-
getPages
Returns aGListModel
that contains the pages of the stack.This can be used to keep an up-to-date view. The model also implements
SelectionModel
and can be used to track and modify the visible page.- Returns:
- a
GtkSelectionModel
for the stack's children
-
getTransitionDuration
public int getTransitionDuration()Returns the amount of time (in milliseconds) that transitions between pages in this Stack will take.- Returns:
- the transition duration
-
getTransitionRunning
public boolean getTransitionRunning()Returns whether the this Stack is currently in a transition from one page to another.- Returns:
true
if the transition is currently running,false
otherwise.
-
getTransitionType
Gets the type of animation that will be used for transitions between pages in this Stack.- Returns:
- the current transition type of this Stack
-
getVhomogeneous
public boolean getVhomogeneous()Gets whether this Stack is vertically homogeneous.- Returns:
- whether this Stack is vertically homogeneous.
-
getVisibleChild
Gets the currently visible child of this Stack.Returns
null
if there are no visible children.- Returns:
- the visible child of the
GtkStack
-
getVisibleChildName
Returns the name of the currently visible child of this Stack.Returns
null
if there is no visible child.- Returns:
- the name of the visible child
of the
GtkStack
-
remove
Removes a child widget from this Stack.- Parameters:
child
- the child to remove
-
setHhomogeneous
public void setHhomogeneous(boolean hhomogeneous) Sets theGtkStack
to be horizontally homogeneous or not.If it is homogeneous, the
GtkStack
will request the same width for all its children. If it isn't, the stack may change width when a different child becomes visible.- Parameters:
hhomogeneous
-true
to make this Stack horizontally homogeneous
-
setInterpolateSize
public void setInterpolateSize(boolean interpolateSize) Sets whether or not this Stack will interpolate its size when changing the visible child.If the
Gtk.Stack:interpolate-size
property is set totrue
, this Stack will interpolate its size between the current one and the one it'll take after changing the visible child, according to the set transition duration.- Parameters:
interpolateSize
- the new value
-
setTransitionDuration
public void setTransitionDuration(int duration) Sets the duration that transitions between pages in this Stack will take.- Parameters:
duration
- the new duration, in milliseconds
-
setTransitionType
Sets the type of animation that will be used for transitions between pages in this Stack.Available types include various kinds of fades and slides.
The transition type can be changed without problems at runtime, so it is possible to change the animation based on the page that is about to become current.
- Parameters:
transition
- the new transition type
-
setVhomogeneous
public void setVhomogeneous(boolean vhomogeneous) Sets theGtkStack
to be vertically homogeneous or not.If it is homogeneous, the
GtkStack
will request the same height for all its children. If it isn't, the stack may change height when a different child becomes visible.- Parameters:
vhomogeneous
-true
to make this Stack vertically homogeneous
-
setVisibleChild
Makeschild
the visible child of this Stack.If
child
is different from the currently visible child, the transition between the two will be animated with the current transition type of this Stack.Note that the
child
widget has to be visible itself (seeWidget.show()
) in order to become the visible child of this Stack.- Parameters:
child
- a child of this Stack
-
setVisibleChildFull
Makes the child with the given name visible.Note that the child widget has to be visible itself (see
Widget.show()
) in order to become the visible child of this Stack.- Parameters:
name
- the name of the child to make visibletransition
- the transition type to use
-
setVisibleChildName
Makes the child with the given name visible.If
child
is different from the currently visible child, the transition between the two will be animated with the current transition type of this Stack.Note that the child widget has to be visible itself (see
Widget.show()
) in order to become the visible child of this Stack.- Parameters:
name
- the name of the child to make visible
-
builder
AStack.Builder
object constructs aStack
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withStack.Builder.build()
.
-