Class Stack
- All Implemented Interfaces:
Accessible,Buildable,ConstraintTarget,Proxy
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 Gtk.AccessibleRole.tab_panel role for the stack
pages, which are the accessible parent objects of the child widgets.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classStack.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.Widget$Impl, Widget.WidgetClassNested classes/interfaces inherited from class org.gnome.gobject.InitiallyUnowned
InitiallyUnowned.InitiallyUnownedClassNested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClassNested classes/interfaces inherited from interface org.gnome.gtk.Accessible
Accessible.Accessible$Impl, Accessible.AccessibleInterfaceNested classes/interfaces inherited from interface org.gnome.gtk.Buildable
Buildable.Buildable$Impl, Buildable.BuildableIfaceNested classes/interfaces inherited from interface org.gnome.gtk.ConstraintTarget
ConstraintTarget.ConstraintTarget$Impl, ConstraintTarget.ConstraintTargetInterface -
Constructor Summary
ConstructorsConstructorDescriptionStack()Creates a new Stack.Stack(MemorySegment address) Create a Stack proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionAdds a child tostack.Adds a child tostack.Adds a child tostack.protected StackasParent()Returns this instance as if it were its parent type.static Stack.Builder<? extends Stack.Builder> builder()AStack.Builderobject constructs aStackwith the specified properties.@Nullable WidgetgetChildByName(String name) Finds the child with the name given as the argument.booleanGets whether this Stack is horizontally homogeneous.booleanReturns whether theGtkStackis set up to interpolate between the sizes of children on page switch.Returns theGtkStackPageobject forchild.getPages()Returns aGListModelthat contains the pages of the stack.intReturns the amount of time (in milliseconds) that transitions between pages in this Stack will take.booleanReturns 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 instack.static @Nullable TypegetType()Get the GType of the Stack classbooleanGets whether this Stack is vertically homogeneous.@Nullable WidgetGets the currently visible child ofstack.@Nullable StringReturns the name of the currently visible child ofstack.voidRemoves a child widget fromstack.voidsetHhomogeneous(boolean hhomogeneous) Sets theGtkStackto be horizontally homogeneous or not.voidsetInterpolateSize(boolean interpolateSize) Sets whether or not this Stack will interpolate its size when changing the visible child.voidsetTransitionDuration(int duration) Sets the duration that transitions between pages in this Stack will take.voidsetTransitionType(StackTransitionType transition) Sets the type of animation that will be used for transitions between pages instack.voidsetVhomogeneous(boolean vhomogeneous) Sets theGtkStackto be vertically homogeneous or not.voidsetVisibleChild(Widget child) Makeschildthe visible child ofstack.voidsetVisibleChildFull(String name, StackTransitionType transition) Makes the child with the given name visible.voidsetVisibleChildName(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, getLimitEvents, 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, setLimitEvents, 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, unsetStateFlagsMethods 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, 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, withPropertiesMethods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, cast, getPrivate, readGClass, writeGClassMethods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCodeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gnome.gtk.Accessible
announce, getAccessibleParent, getAccessibleRole, getAtContext, getBounds, getFirstAccessibleChild, getNextAccessibleSibling, getPlatformState, resetProperty, resetRelation, resetState, setAccessibleParent, updateNextAccessibleSibling, updatePlatformState, updateProperty, updateRelation, updateStateMethods 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 new Stack.
-
-
Method Details
-
getType
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuperkeyword, 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 tostack.The child is identified by the
name.Thetitlewill be used byGtkStackSwitcherto representchildin a tab bar, so it should be short.- Parameters:
child- the widget to addname- the name forchildtitle- a human-readable title forchild- Returns:
- the
GtkStackPageforchild
-
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 theGtkStackis set up to interpolate between the sizes of children on page switch.- Returns:
trueif child sizes are interpolated
-
getPage
-
getPages
Returns aGListModelthat contains the pages of the stack.This can be used to keep an up-to-date view. The model also implements
SelectionModeland can be used to track and modify the visible page.- Returns:
- a
GtkSelectionModelfor 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:
trueif the transition is currently running,falseotherwise.
-
getTransitionType
Gets the type of animation that will be used for transitions between pages instack.- 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 ofstack.Returns
nullif there are no visible children.- Returns:
- the visible child of the
GtkStack
-
getVisibleChildName
Returns the name of the currently visible child ofstack.Returns
nullif there is no visible child.- Returns:
- the name of the visible child
of the
GtkStack
-
remove
Removes a child widget fromstack.- Parameters:
child- the child to remove
-
setHhomogeneous
public void setHhomogeneous(boolean hhomogeneous) Sets theGtkStackto be horizontally homogeneous or not.If it is homogeneous, the
GtkStackwill 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-trueto 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-sizeproperty 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 instack.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 theGtkStackto be vertically homogeneous or not.If it is homogeneous, the
GtkStackwill 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-trueto make this Stack vertically homogeneous
-
setVisibleChild
Makeschildthe visible child ofstack.If
childis different from the currently visible child, the transition between the two will be animated with the current transition type ofstack.Note that the
childwidget has to be visible itself (seeWidget.show()) in order to become the visible child ofstack.- 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 ofstack.- 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
childis different from the currently visible child, the transition between the two will be animated with the current transition type ofstack.Note that the child widget has to be visible itself (see
Widget.show()) in order to become the visible child ofstack.- Parameters:
name- the name of the child to make visible
-
builder
AStack.Builderobject constructs aStackwith the specified properties. Use the variousset...()methods to set properties, and finish construction withStack.Builder.build().- Returns:
- the builder object
-