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 are not animated.
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
Modifier 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
-
Constructor Summary
ConstructorDescriptionCreates a newAdwViewStack
.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 is horizontally homogeneous.Gets theViewStackPage
object forchild
.getPages()
Returns aListModel
that contains the pages of the stack.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
setHhomogeneous
(boolean hhomogeneous) Sets this ViewStack to be horizontally homogeneous or not.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, 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
-
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 newAdwViewStack
.
-
-
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
-
getChildByName
-
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
-
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
-
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
-
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()
.
-