Class ViewStack
- All Implemented Interfaces:
Proxy
,Accessible
,Buildable
,ConstraintTarget
ViewSwitcher
.
AdwViewStack
is a container which only shows one page at a time.
It is typically used to hold an application's main views.
It doesn't provide a way to transition between pages.
Instead, a separate widget such as ViewSwitcher
can be used with
AdwViewStack
to provide this functionality.
AdwViewStack
pages can have a title, an icon, an attention request, and a
numbered badge that ViewSwitcher
will use to let users identify which
page is which. Set them using the ViewStackPage:title
,
ViewStackPage:icon-name
,
ViewStackPage:needs-attention
, and
ViewStackPage:badge-number
properties.
Unlike Stack
, transitions between views can only be animated via
a crossfade and size changes are always interpolated. Animations are disabled
by default. Use ViewStack:enable-transitions
to enable them.
AdwViewStack
maintains a ViewStackPage
object for each added child,
which holds additional per-child properties. You obtain the
ViewStackPage
for a child with getPage(org.gnome.gtk.Widget)
and you
can obtain a SelectionModel
containing all the pages with
getPages()
.
AdwViewStack as GtkBuildable
To set child-specific properties in a .ui file, create
ViewStackPage
objects explicitly, and set the child widget as a
property on it:
<object class="AdwViewStack" id="stack">
<child>
<object class="AdwViewStackPage">
<property name="name">overview</property>
<property name="title">Overview</property>
<property name="child">
<object class="AdwStatusPage">
<property name="title">Welcome!</property>
</object>
</property>
</object>
</child>
</object>
CSS nodes
AdwViewStack
has a single CSS node named stack
.
Accessibility
AdwViewStack
uses the GTK_ACCESSIBLE_ROLE_TAB_PANEL
for the stack pages
which are the accessible parent objects of the child widgets.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
ViewStack.Builder<B extends ViewStack.Builder<B>>
Inner class implementing a builder pattern to construct a GObject with properties.static class
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
-
Field Summary
Fields inherited from class io.github.jwharm.javagi.base.ProxyInstance
address
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new ViewStack.ViewStack
(MemorySegment address) Create a ViewStack proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionAdds a child to this ViewStack.Adds a child to this ViewStack.Adds a child to this ViewStack.addTitledWithIcon
(Widget child, @Nullable String name, String title, String iconName) Adds a child to this ViewStack.protected ViewStack
asParent()
Returns this instance as if it were its parent type.static ViewStack.Builder
<? extends ViewStack.Builder> builder()
AViewStack.Builder
object constructs aViewStack
with the specified properties.getChildByName
(String name) Finds the child withname
in this ViewStack.boolean
Gets whether this ViewStack uses a crossfade transition between pages.boolean
Gets whether this ViewStack is horizontally homogeneous.Gets theViewStackPage
object forchild
.getPages()
Returns aListModel
that contains the pages of the stack.int
Gets the transition animation duration for this ViewStack.boolean
Gets whether a transition is currently running for this ViewStack.static Type
getType()
Get the GType of the ViewStack classboolean
Gets whether this ViewStack is vertically homogeneous.Gets the currently visible child of this ViewStack.Returns the name of the currently visible child of this ViewStack.void
Removes a child widget from this ViewStack.void
setEnableTransitions
(boolean enableTransitions) Sets whether this ViewStack uses a crossfade transition between pages.void
setHhomogeneous
(boolean hhomogeneous) Sets this ViewStack to be horizontally homogeneous or not.void
setTransitionDuration
(int duration) Sets the transition animation duration for this ViewStack.void
setVhomogeneous
(boolean vhomogeneous) Sets this ViewStack to be vertically homogeneous or not.void
setVisibleChild
(Widget child) Makeschild
the visible child of this ViewStack.void
setVisibleChildName
(String name) Makes the child withname
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, 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, 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, updatePlatformState, updateProperty, updateRelation, updateState
Methods inherited from interface org.gnome.gtk.Buildable
getBuildableId
-
Constructor Details
-
ViewStack
Create a ViewStack proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
ViewStack
public ViewStack()Creates a new ViewStack.
-
-
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. -
add
Adds a child to this ViewStack.- Parameters:
child
- the widget to add- Returns:
- the
ViewStackPage
forchild
-
addNamed
Adds a child to this ViewStack.The child is identified by the
name
.- Parameters:
child
- the widget to addname
- the name forchild
- Returns:
- the
AdwViewStackPage
forchild
-
addTitled
Adds a child to this ViewStack.The child is identified by the
name
. Thetitle
will be used byViewSwitcher
to representchild
, so it should be short.- Parameters:
child
- the widget to addname
- the name forchild
title
- a human-readable title forchild
- Returns:
- the
AdwViewStackPage
forchild
-
addTitledWithIcon
public ViewStackPage addTitledWithIcon(Widget child, @Nullable @Nullable String name, String title, String iconName) Adds a child to this ViewStack.The child is identified by the
name
. Thetitle
andiconName
will be used byViewSwitcher
to representchild
.- Parameters:
child
- the widget to addname
- the name forchild
title
- a human-readable title forchild
iconName
- an icon name forchild
- Returns:
- the
AdwViewStackPage
forchild
- Since:
- 1.2
-
getChildByName
-
getEnableTransitions
public boolean getEnableTransitions()Gets whether this ViewStack uses a crossfade transition between pages.Use
ViewStack:transition-duration
to control the duration, andViewStack:transition-running
to know when the transition is running.- Returns:
- whether to enable page transitions
- Since:
- 1.7
-
getHhomogeneous
public boolean getHhomogeneous()Gets whether this ViewStack is horizontally homogeneous.- Returns:
- whether this ViewStack is horizontally homogeneous
-
getPage
Gets theViewStackPage
object forchild
.- Parameters:
child
- a child of this ViewStack- Returns:
- the page object for
child
-
getPages
Returns aListModel
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 change the visible page.- Returns:
- a
GtkSelectionModel
for the stack's children
-
getTransitionDuration
public int getTransitionDuration()Gets the transition animation duration for this ViewStack.- Returns:
- the transition duration, in milliseconds
- Since:
- 1.7
-
getTransitionRunning
public boolean getTransitionRunning()Gets whether a transition is currently running for this ViewStack.If a transition is impossible, the property value will be set to
TRUE
and then immediately toFALSE
, so it's possible to rely on its notifications to know that a transition has happened.- Returns:
- whether a transition is currently running
- Since:
- 1.7
-
getVhomogeneous
public boolean getVhomogeneous()Gets whether this ViewStack is vertically homogeneous.- Returns:
- whether this ViewStack is vertically homogeneous
-
getVisibleChild
Gets the currently visible child of this ViewStack.- Returns:
- the visible child
-
getVisibleChildName
Returns the name of the currently visible child of this ViewStack.- Returns:
- the name of the visible child
-
remove
Removes a child widget from this ViewStack.- Parameters:
child
- the child to remove
-
setEnableTransitions
public void setEnableTransitions(boolean enableTransitions) Sets whether this ViewStack uses a crossfade transition between pages.- Parameters:
enableTransitions
- whether to enable page transitions- Since:
- 1.7
-
setHhomogeneous
public void setHhomogeneous(boolean hhomogeneous) Sets this ViewStack to be horizontally homogeneous or not.If the stack is horizontally homogeneous, it allocates the same width for all children.
If it's
FALSE
, the stack may change width when a different child becomes visible.- Parameters:
hhomogeneous
- whether to make this ViewStack horizontally homogeneous
-
setTransitionDuration
public void setTransitionDuration(int duration) Sets the transition animation duration for this ViewStack.Only used when
ViewStack:enable-transitions
is set toTRUE
.- Parameters:
duration
- the new duration, in milliseconds- Since:
- 1.7
-
setVhomogeneous
public void setVhomogeneous(boolean vhomogeneous) Sets this ViewStack to be vertically homogeneous or not.If the stack is vertically homogeneous, it allocates the same height for all children.
If it's
FALSE
, the stack may change height when a different child becomes visible.- Parameters:
vhomogeneous
- whether to make this ViewStack vertically homogeneous
-
setVisibleChild
Makeschild
the visible child of this ViewStack.- Parameters:
child
- a child of this ViewStack
-
setVisibleChildName
Makes the child withname
visible.See
ViewStack:visible-child
.- Parameters:
name
- the name of the child
-
builder
AViewStack.Builder
object constructs aViewStack
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withViewStack.Builder.build()
.
-