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.OnUnrealize
Von 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_UNREALIZE
Von 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 ClassHandler
boolean
Gets whether @self is collapsed.Sets the content widget for @self.static int
double
Gets the maximum sidebar width for @self.double
Gets the minimum sidebar width for @self.static long
static TypeSystem.TypeSize
boolean
Gets which page is visible when @self is collapsed.Gets the sidebar widget for @self.int
Gets the sidebar position for @self.double
Gets the preferred sidebar width fraction for @self.int
Gets the length unit for minimum and maximum sidebar widths.static long
static TypeSystem.TypeSize
void
setCollapsed
(boolean collapsed) Sets whether @self is collapsed.void
setContent
(NavigationPage content) Sets the content widget for @self.void
setMaxSidebarWidth
(double width) Sets the maximum sidebar width for @self.void
setMinSidebarWidth
(double width) Sets the minimum sidebar width for @self.void
setShowContent
(boolean show_content) Sets which page is visible when @self is collapsed.void
setSidebar
(NavigationPage sidebar) Sets the sidebar widget for @self.void
setSidebarPosition
(int position) Sets the sidebar position for @self.void
setSidebarWidthFraction
(double fraction) Sets the preferred sidebar width as a fraction of the total width of @self.void
setSidebarWidthUnit
(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, unsetStateFlags
Von Klasse geerbte Methoden ch.bailu.gtk.type.PropertyHolder
getBooleanProperty, getIntProperty, getObjectProperty, getStringProperty, getStrProperty, setBooleanProperty, setIntProperty, setObjectProperty, setStringProperty, setStrProperty
Von 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, weakUnref
Von Klasse geerbte Methoden ch.bailu.gtk.type.Pointer
asCPointer, cast, connectSignal, disconnectSignals, disconnectSignals, equals, hashCode, throwIfNull, throwNullPointerException, toString, unregisterCallbacks, unregisterCallbacks
Von Klasse geerbte Methoden ch.bailu.gtk.type.Type
asCPointer, asCPointer, asCPointerNotNull, asJnaPointer, asJnaPointer, asPointer, asPointer, cast, cast, throwIfNull
Von Klasse geerbte Methoden java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Von 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:
asAccessible
in KlasseWidget
- Gibt zurück:
Accessible
-
asBuildable
Implements interfaceBuildable
. Call this to get access to interface functions.- Setzt außer Kraft:
asBuildable
in KlasseWidget
- Gibt zurück:
Buildable
-
asConstraintTarget
Implements interfaceConstraintTarget
. Call this to get access to interface functions.- Setzt außer Kraft:
asConstraintTarget
in KlasseWidget
- Gibt zurück:
ConstraintTarget
-
getTypeID
public static long getTypeID() -
getParentTypeID
public static long getParentTypeID() -
getTypeSize
-
getParentTypeSize
-
getInstanceSize
public static int getInstanceSize()
-