Package ch.bailu.gtk.adw
Klasse NavigationSplitView
java.lang.Object
ch.bailu.gtk.type.Type
ch.bailu.gtk.type.Pointer
ch.bailu.gtk.gobject.Object
ch.bailu.gtk.type.PropertyHolder
ch.bailu.gtk.gobject.InitiallyUnowned
ch.bailu.gtk.gtk.Widget
ch.bailu.gtk.adw.NavigationSplitView
- Alle implementierten Schnittstellen:
PointerInterface
A widget presenting sidebar and content side by side or as a navigation view.
<picture>
<source srcset="navigation-split-view-dark.png" media="(prefers-color-scheme: dark)">
<img src="navigation-split-view.png" alt="navigation-split-view">
</picture>
<picture>
<source srcset="navigation-split-view-collapsed-dark.png" media="(prefers-color-scheme: dark)">
<img src="navigation-split-view-collapsed.png" alt="navigation-split-view-collapsed">
</picture>
`AdwNavigationSplitView` has two [class@NavigationPage] children: sidebar and
content, and displays them side by side.
When [property@NavigationSplitView:collapsed] is set to `TRUE`, it instead
puts both children inside an [class@NavigationView]. The
[property@NavigationSplitView:show-content] controls which child is visible
while collapsed.
See also [class@OverlaySplitView].
`AdwNavigationSplitView` is typically used together with an [class@Breakpoint]
setting the `collapsed` property to `TRUE` on small widths, as follows:
```xml
<object class="AdwWindow">
<property name="width-request">280</property>
<property name="height-request">200</property>
<property name="default-width">800</property>
<property name="default-height">800</property>
<child>
<object class="AdwBreakpoint">
<condition>max-width: 400sp</condition>
<setter object="split_view" property="collapsed">True</setter>
</object>
</child>
<property name="content">
<object class="AdwNavigationSplitView" id="split_view">
<property name="sidebar">
<object class="AdwNavigationPage">
<property name="title" translatable="yes">Sidebar</property>
<property name="child">
<!-- ... -->
</property>
</object>
</property>
<property name="content">
<object class="AdwNavigationPage">
<property name="title" translatable="yes">Content</property>
<property name="child">
<!-- ... -->
</property>
</object>
</property>
</object>
</property>
</object>
```
## Sizing
When not collapsed, `AdwNavigationSplitView` changes the sidebar width
depending on its own width.
If possible, it tries to allocate a fraction of the total width, controlled
with the [property@NavigationSplitView:sidebar-width-fraction] property.
The sidebar also has minimum and maximum sizes, controlled with the
[property@NavigationSplitView:min-sidebar-width] and
[property@NavigationSplitView:max-sidebar-width] properties.
The minimum and maximum sizes are using the length unit specified with the
[property@NavigationSplitView:sidebar-width-unit].
By default, sidebar is using 25% of the total width, with 180sp as the
minimum size and 280sp as the maximum size.
## Header Bar Integration
When used inside `AdwNavigationSplitView`, [class@HeaderBar] will
automatically hide the window buttons in the middle.
When collapsed, it also displays a back button for the content widget, as
well as the page titles. See [class@NavigationView] documentation for details.
## Actions
`AdwNavigationSplitView` defines the same actions as `AdwNavigationView`, but
they can be used even when the split view is not collapsed:
- `navigation.push` takes a string parameter specifying the tag of the page
to push. If it matches the tag of the content widget, it sets
[property@NavigationSplitView:show-content] to `TRUE`.
- `navigation.pop` doesn't take any parameters and sets
[property@NavigationSplitView:show-content] to `FALSE`.
## `AdwNavigationSplitView` as `GtkBuildable`
The `AdwNavigationSplitView` implementation of the [iface@Gtk.Buildable]
interface supports setting the sidebar widget by specifying “sidebar” as the
“type” attribute of a `<child>` element, Specifying “content” child type or
omitting it results in setting the content widget.
## CSS nodes
`AdwNavigationSplitView` has a single CSS node with the name
`navigation-split-view`.
When collapsed, it contains a child node with the name `navigation-view`
containing both children.
```
navigation-split-view
╰── navigation-view
├── [sidebar child]
╰── [content child]
```
When not collapsed, it contains two nodes with the name `widget`, one with
the `.sidebar-pane` style class, the other one with `.content-view` style
class, containing the sidebar and content children respectively.
```
navigation-split-view
├── widget.sidebar-pane
│ ╰── [sidebar child]
╰── widget.content-pane
╰── [content child]
```
## Accessibility
`AdwNavigationSplitView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
<picture>
<source srcset="navigation-split-view-dark.png" media="(prefers-color-scheme: dark)">
<img src="navigation-split-view.png" alt="navigation-split-view">
</picture>
<picture>
<source srcset="navigation-split-view-collapsed-dark.png" media="(prefers-color-scheme: dark)">
<img src="navigation-split-view-collapsed.png" alt="navigation-split-view-collapsed">
</picture>
`AdwNavigationSplitView` has two [class@NavigationPage] children: sidebar and
content, and displays them side by side.
When [property@NavigationSplitView:collapsed] is set to `TRUE`, it instead
puts both children inside an [class@NavigationView]. The
[property@NavigationSplitView:show-content] controls which child is visible
while collapsed.
See also [class@OverlaySplitView].
`AdwNavigationSplitView` is typically used together with an [class@Breakpoint]
setting the `collapsed` property to `TRUE` on small widths, as follows:
```xml
<object class="AdwWindow">
<property name="width-request">280</property>
<property name="height-request">200</property>
<property name="default-width">800</property>
<property name="default-height">800</property>
<child>
<object class="AdwBreakpoint">
<condition>max-width: 400sp</condition>
<setter object="split_view" property="collapsed">True</setter>
</object>
</child>
<property name="content">
<object class="AdwNavigationSplitView" id="split_view">
<property name="sidebar">
<object class="AdwNavigationPage">
<property name="title" translatable="yes">Sidebar</property>
<property name="child">
<!-- ... -->
</property>
</object>
</property>
<property name="content">
<object class="AdwNavigationPage">
<property name="title" translatable="yes">Content</property>
<property name="child">
<!-- ... -->
</property>
</object>
</property>
</object>
</property>
</object>
```
## Sizing
When not collapsed, `AdwNavigationSplitView` changes the sidebar width
depending on its own width.
If possible, it tries to allocate a fraction of the total width, controlled
with the [property@NavigationSplitView:sidebar-width-fraction] property.
The sidebar also has minimum and maximum sizes, controlled with the
[property@NavigationSplitView:min-sidebar-width] and
[property@NavigationSplitView:max-sidebar-width] properties.
The minimum and maximum sizes are using the length unit specified with the
[property@NavigationSplitView:sidebar-width-unit].
By default, sidebar is using 25% of the total width, with 180sp as the
minimum size and 280sp as the maximum size.
## Header Bar Integration
When used inside `AdwNavigationSplitView`, [class@HeaderBar] will
automatically hide the window buttons in the middle.
When collapsed, it also displays a back button for the content widget, as
well as the page titles. See [class@NavigationView] documentation for details.
## Actions
`AdwNavigationSplitView` defines the same actions as `AdwNavigationView`, but
they can be used even when the split view is not collapsed:
- `navigation.push` takes a string parameter specifying the tag of the page
to push. If it matches the tag of the content widget, it sets
[property@NavigationSplitView:show-content] to `TRUE`.
- `navigation.pop` doesn't take any parameters and sets
[property@NavigationSplitView:show-content] to `FALSE`.
## `AdwNavigationSplitView` as `GtkBuildable`
The `AdwNavigationSplitView` implementation of the [iface@Gtk.Buildable]
interface supports setting the sidebar widget by specifying “sidebar” as the
“type” attribute of a `<child>` element, Specifying “content” child type or
omitting it results in setting the content widget.
## CSS nodes
`AdwNavigationSplitView` has a single CSS node with the name
`navigation-split-view`.
When collapsed, it contains a child node with the name `navigation-view`
containing both children.
```
navigation-split-view
╰── navigation-view
├── [sidebar child]
╰── [content child]
```
When not collapsed, it contains two nodes with the name `widget`, one with
the `.sidebar-pane` style class, the other one with `.content-view` style
class, containing the sidebar and content children respectively.
```
navigation-split-view
├── widget.sidebar-pane
│ ╰── [sidebar child]
╰── widget.content-pane
╰── [content child]
```
## Accessibility
`AdwNavigationSplitView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.NavigationSplitView.html
-
Verschachtelte Klassen - Übersicht
Von Klasse geerbte verschachtelte Klassen/Schnittstellen ch.bailu.gtk.gtk.Widget
Widget.OnDestroy, Widget.OnDestroyNotify, Widget.OnDirectionChanged, Widget.OnHide, Widget.OnKeynavFailed, Widget.OnMap, Widget.OnMnemonicActivate, Widget.OnMoveFocus, Widget.OnQueryTooltip, Widget.OnRealize, Widget.OnShow, Widget.OnStateFlagsChanged, Widget.OnTickCallback, Widget.OnUnmap, Widget.OnUnrealizeVon Klasse geerbte verschachtelte Klassen/Schnittstellen ch.bailu.gtk.gobject.Object
Object.OnBindingTransformFunc, Object.OnDuplicateFunc, Object.OnNotify, Object.OnToggleNotify, Object.OnWeakNotify -
Feldübersicht
Von Klasse geerbte Felder ch.bailu.gtk.gtk.Widget
SIGNAL_ON_DESTROY, SIGNAL_ON_DIRECTION_CHANGED, SIGNAL_ON_HIDE, SIGNAL_ON_KEYNAV_FAILED, SIGNAL_ON_MAP, SIGNAL_ON_MNEMONIC_ACTIVATE, SIGNAL_ON_MOVE_FOCUS, SIGNAL_ON_QUERY_TOOLTIP, SIGNAL_ON_REALIZE, SIGNAL_ON_SHOW, SIGNAL_ON_STATE_FLAGS_CHANGED, SIGNAL_ON_UNMAP, SIGNAL_ON_UNREALIZEVon Klasse geerbte Felder ch.bailu.gtk.gobject.Object
SIGNAL_ON_NOTIFY -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungCreates a new `AdwNavigationSplitView`.NavigationSplitView(PointerContainer pointer) -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungImplements interfaceAccessible.Implements interfaceBuildable.Implements interfaceConstraintTarget.static ClassHandlerbooleanGets whether @self is collapsed.Sets the content widget for @self.static intdoubleGets the maximum sidebar width for @self.doubleGets the minimum sidebar width for @self.static longstatic TypeSystem.TypeSizebooleanGets which page is visible when @self is collapsed.Gets the sidebar widget for @self.intGets the sidebar position for @self.doubleGets the preferred sidebar width fraction for @self.intGets the length unit for minimum and maximum sidebar widths.static longstatic TypeSystem.TypeSizevoidsetCollapsed(boolean collapsed) Sets whether @self is collapsed.voidsetContent(NavigationPage content) Sets the content widget for @self.voidsetMaxSidebarWidth(double width) Sets the maximum sidebar width for @self.voidsetMinSidebarWidth(double width) Sets the minimum sidebar width for @self.voidsetShowContent(boolean show_content) Sets which page is visible when @self is collapsed.voidsetSidebar(NavigationPage sidebar) Sets the sidebar widget for @self.voidsetSidebarPosition(int position) Sets the sidebar position for @self.voidsetSidebarWidthFraction(double fraction) Sets the preferred sidebar width as a fraction of the total width of @self.voidsetSidebarWidthUnit(int unit) Sets the length unit for minimum and maximum sidebar widths.Von Klasse geerbte Methoden ch.bailu.gtk.gtk.Widget
actionSetEnabled, actionSetEnabled, activate, activateAction, activateAction, activateActionVariant, activateActionVariant, activateDefault, addController, addCssClass, addCssClass, addMnemonicLabel, addTickCallback, allocate, childFocus, computeBounds, computeExpand, computePoint, computeTransform, contains, createPangoContext, createPangoLayout, createPangoLayout, disposeTemplate, dragCheckThreshold, errorBell, 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, getName, getNative, getNextSibling, getOpacity, getOverflow, getPangoContext, getParent, getPreferredSize, getPrevSibling, getPrimaryClipboard, getRealized, getReceivesDefault, getRequestMode, getRoot, getScaleFactor, getSensitive, getSettings, getSize, getSizeRequest, getStateFlags, getStyleContext, getTemplateChild, getTemplateChild, getTooltipMarkup, getTooltipText, getValign, getVexpand, getVexpandSet, getVisible, getWidth, grabFocus, hasCssClass, hasCssClass, hasDefault, hasFocus, hasVisibleFocus, hide, inDestruction, initTemplate, insertActionGroup, insertActionGroup, insertAfter, insertBefore, isAncestor, isDrawable, isFocus, isSensitive, isVisible, keynavFailed, listMnemonicLabels, map, measure, mnemonicActivate, observeChildren, observeControllers, onDestroy, onDirectionChanged, onHide, onKeynavFailed, onMap, onMnemonicActivate, onMoveFocus, onQueryTooltip, onRealize, onShow, onStateFlagsChanged, onUnmap, onUnrealize, pick, queueAllocate, queueDraw, queueResize, realize, removeController, removeCssClass, removeCssClass, removeMnemonicLabel, removeTickCallback, setCanFocus, setCanTarget, setChildVisible, setCssClasses, setCursor, setCursorFromName, setCursorFromName, setDefaultDirection, setDirection, setFocusable, setFocusChild, setFocusOnClick, setFontMap, setFontOptions, setHalign, setHasTooltip, setHexpand, setHexpandSet, setLayoutManager, setLimitEvents, setMarginBottom, setMarginEnd, setMarginStart, setMarginTop, setName, setName, setOpacity, setOverflow, setParent, setReceivesDefault, setSensitive, setSizeRequest, setStateFlags, setTooltipMarkup, setTooltipMarkup, setTooltipText, setTooltipText, setValign, setVexpand, setVexpandSet, setVisible, shouldLayout, show, sizeAllocate, snapshotChild, triggerTooltipQuery, unmap, unparent, unrealize, unsetStateFlagsVon Klasse geerbte Methoden ch.bailu.gtk.type.PropertyHolder
getBooleanProperty, getIntProperty, getObjectProperty, getStringProperty, getStrProperty, setBooleanProperty, setIntProperty, setObjectProperty, setStringProperty, setStrPropertyVon Klasse geerbte Methoden ch.bailu.gtk.gobject.Object
addToggleRef, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, disconnect, disconnect, dupData, dupData, dupQdata, forceFloating, freezeNotify, get, get, getData, getData, getProperty, getProperty, getQdata, interfaceFindProperty, interfaceInstallProperty, isFloating, notify, notify, notifyByPspec, onNotify, ref, refSink, removeToggleRef, replaceData, replaceData, replaceQdata, runDispose, set, set, setData, setData, setDataFull, setDataFull, setProperty, setProperty, setQdata, setQdataFull, stealData, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnrefVon Klasse geerbte Methoden ch.bailu.gtk.type.Pointer
asCPointer, cast, connectSignal, disconnectSignals, disconnectSignals, equals, hashCode, throwIfNull, throwNullPointerException, toString, unregisterCallbacks, unregisterCallbacksVon Klasse geerbte Methoden ch.bailu.gtk.type.Type
asCPointer, asCPointer, asCPointerNotNull, asJnaPointer, asJnaPointer, asPointer, asPointer, cast, cast, throwIfNullVon Klasse geerbte Methoden java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitVon Schnittstelle geerbte Methoden ch.bailu.gtk.type.PointerInterface
asCPointerNotNull, asJnaPointer, asPointer, isNotNull, isNull
-
Konstruktordetails
-
NavigationSplitView
-
NavigationSplitView
public NavigationSplitView()Creates a new `AdwNavigationSplitView`.
-
-
Methodendetails
-
getClassHandler
-
getCollapsed
public boolean getCollapsed()Gets whether @self is collapsed.- Gibt zurück:
- whether @self is collapsed
-
getContent
Sets the content widget for @self.- Gibt zurück:
- the content widget
-
getMaxSidebarWidth
public double getMaxSidebarWidth()Gets the maximum sidebar width for @self.- Gibt zurück:
- the maximum width
-
getMinSidebarWidth
public double getMinSidebarWidth()Gets the minimum sidebar width for @self.- Gibt zurück:
- the minimum width
-
getShowContent
public boolean getShowContent()Gets which page is visible when @self is collapsed.- Gibt zurück:
- whether to show content when collapsed
-
getSidebar
Gets the sidebar widget for @self.- Gibt zurück:
- the sidebar widget
-
getSidebarPosition
public int getSidebarPosition()Gets the sidebar position for @self.- Gibt zurück:
- the sidebar position for @self
-
getSidebarWidthFraction
public double getSidebarWidthFraction()Gets the preferred sidebar width fraction for @self.- Gibt zurück:
- the preferred width fraction
-
getSidebarWidthUnit
public int getSidebarWidthUnit()Gets the length unit for minimum and maximum sidebar widths.- Gibt zurück:
- the length unit
-
setCollapsed
public void setCollapsed(boolean collapsed) Sets whether @self is collapsed.
When collapsed, the children are put inside an [class@NavigationView],
otherwise they are displayed side by side.
The [property@NavigationSplitView:show-content] controls which child is
visible while collapsed.- Parameter:
collapsed- whether @self is collapsed
-
setMaxSidebarWidth
public void setMaxSidebarWidth(double width) Sets the maximum sidebar width for @self.
Maximum width is affected by
[property@NavigationSplitView:sidebar-width-unit].
The sidebar widget can still be allocated with larger width if its own
minimum width exceeds it.- Parameter:
width- the maximum width
-
setMinSidebarWidth
public void setMinSidebarWidth(double width) Sets the minimum sidebar width for @self.
Minimum width is affected by
[property@NavigationSplitView:sidebar-width-unit].
The sidebar widget can still be allocated with larger width if its own
minimum width exceeds it.- Parameter:
width- the minimum width
-
setShowContent
public void setShowContent(boolean show_content) Sets which page is visible when @self is collapsed.
If set to `TRUE`, the content widget will be the visible page when
[property@NavigationSplitView:collapsed] is `TRUE`; otherwise the sidebar
widget will be visible.
If the split view is already collapsed, the visible page changes immediately.- Parameter:
show_content- whether to show content when collapsed
-
setSidebarPosition
public void setSidebarPosition(int position) Sets the sidebar position for @self.
If set to `GTK_PACK_START`, the sidebar is displayed before the content,
and the sidebar will be the root page when collapsed.
If set to `GTK_PACK_END`, the sidebar is displayed after the content,
and the content will be the root page.- Parameter:
position- the new position
-
setSidebarWidthFraction
public void setSidebarWidthFraction(double fraction) Sets the preferred sidebar width as a fraction of the total width of @self.
The preferred width is additionally limited by
[property@NavigationSplitView:min-sidebar-width] and
[property@NavigationSplitView:max-sidebar-width].
The sidebar widget can be allocated with larger width if its own minimum
width exceeds the preferred width.- Parameter:
fraction- the preferred width fraction
-
setSidebarWidthUnit
public void setSidebarWidthUnit(int unit) Sets the length unit for minimum and maximum sidebar widths.
See [property@NavigationSplitView:min-sidebar-width] and
[property@NavigationSplitView:max-sidebar-width].- Parameter:
unit- the length unit
-
asAccessible
Implements interfaceAccessible. Call this to get access to interface functions.- Setzt außer Kraft:
asAccessiblein KlasseWidget- Gibt zurück:
Accessible
-
asBuildable
Implements interfaceBuildable. Call this to get access to interface functions.- Setzt außer Kraft:
asBuildablein KlasseWidget- Gibt zurück:
Buildable
-
asConstraintTarget
Implements interfaceConstraintTarget. Call this to get access to interface functions.- Setzt außer Kraft:
asConstraintTargetin KlasseWidget- Gibt zurück:
ConstraintTarget
-
getTypeID
public static long getTypeID() -
getParentTypeID
public static long getParentTypeID() -
getTypeSize
-
getParentTypeSize
-
getInstanceSize
public static int getInstanceSize()
-