Package ch.bailu.gtk.adw
Klasse OverlaySplitView
- Alle implementierten Schnittstellen:
PointerInterface
A widget presenting sidebar and content side by side or as an overlay.
<picture>
<source srcset="overlay-split-view-dark.png" media="(prefers-color-scheme: dark)">
<img src="overlay-split-view.png" alt="overlay-split-view">
</picture>
<picture>
<source srcset="overlay-split-view-collapsed-dark.png" media="(prefers-color-scheme: dark)">
<img src="overlay-split-view-collapsed.png" alt="overlay-split-view-collapsed">
</picture>
`AdwOverlaySplitView` has two children: sidebar and content, and displays
them side by side.
When [property@OverlaySplitView:collapsed] is set to `TRUE`, the sidebar is
instead shown as an overlay above the content widget.
The sidebar can be hidden or shown using the
[property@OverlaySplitView:show-sidebar] property.
Sidebar can be displayed before or after the content, this can be controlled
with the [property@OverlaySplitView:sidebar-position] property.
Collapsing the split view automatically hides the sidebar widget, and
uncollapsing it shows the sidebar. If this behavior is not desired, the
[property@OverlaySplitView:pin-sidebar] property can be used to override it.
`AdwOverlaySplitView` supports an edge swipe gesture for showing the sidebar,
and a swipe from the sidebar for hiding it. Gestures are only supported on
touchscreen, but not touchpad. Gestures can be controlled with the
[property@OverlaySplitView:enable-show-gesture] and
[property@OverlaySplitView:enable-hide-gesture] properties.
See also [class@NavigationSplitView].
`AdwOverlaySplitView` 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="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="AdwOverlaySplitView" id="split_view">
<property name="sidebar">
<!-- ... -->
</property>
<property name="content">
<!-- ... -->
</property>
</object>
</property>
</object>
```
`AdwOverlaySplitView` is often used for implementing the
[utility pane](https://developer.gnome.org/hig/patterns/containers/utility-panes.html)
pattern.
## Sizing
When not collapsed, `AdwOverlaySplitView` 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@OverlaySplitView:sidebar-width-fraction] property.
The sidebar also has minimum and maximum sizes, controlled with the
[property@OverlaySplitView:min-sidebar-width] and
[property@OverlaySplitView:max-sidebar-width] properties.
The minimum and maximum sizes are using the length unit specified with the
[property@OverlaySplitView: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.
When collapsed, the preferred width fraction is ignored and the sidebar uses
[property@OverlaySplitView:max-sidebar-width] when possible.
## Header Bar Integration
When used inside `AdwOverlaySplitView`, [class@HeaderBar] will automatically
hide the window buttons in the middle.
## `AdwOverlaySplitView` as `GtkBuildable`
The `AdwOverlaySplitView` 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
`AdwOverlaySplitView` has a single CSS node with the name
`overlay-split-view`.
It contains two nodes with the name `widget`, containing the sidebar and
content children.
When not collapsed, they have the `.sidebar-view` and `.content-view` style
classes respectively.
```
overlay-split-view
├── widget.sidebar-pane
│ ╰── [sidebar child]
╰── widget.content-pane
╰── [content child]
```
When collapsed, the one containing the sidebar child has the `.background`
style class and the other one has no style classes.
```
overlay-split-view
├── widget.background
│ ╰── [sidebar child]
╰── widget
╰── [content child]
```
## Accessibility
`AdwOverlaySplitView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
<picture>
<source srcset="overlay-split-view-dark.png" media="(prefers-color-scheme: dark)">
<img src="overlay-split-view.png" alt="overlay-split-view">
</picture>
<picture>
<source srcset="overlay-split-view-collapsed-dark.png" media="(prefers-color-scheme: dark)">
<img src="overlay-split-view-collapsed.png" alt="overlay-split-view-collapsed">
</picture>
`AdwOverlaySplitView` has two children: sidebar and content, and displays
them side by side.
When [property@OverlaySplitView:collapsed] is set to `TRUE`, the sidebar is
instead shown as an overlay above the content widget.
The sidebar can be hidden or shown using the
[property@OverlaySplitView:show-sidebar] property.
Sidebar can be displayed before or after the content, this can be controlled
with the [property@OverlaySplitView:sidebar-position] property.
Collapsing the split view automatically hides the sidebar widget, and
uncollapsing it shows the sidebar. If this behavior is not desired, the
[property@OverlaySplitView:pin-sidebar] property can be used to override it.
`AdwOverlaySplitView` supports an edge swipe gesture for showing the sidebar,
and a swipe from the sidebar for hiding it. Gestures are only supported on
touchscreen, but not touchpad. Gestures can be controlled with the
[property@OverlaySplitView:enable-show-gesture] and
[property@OverlaySplitView:enable-hide-gesture] properties.
See also [class@NavigationSplitView].
`AdwOverlaySplitView` 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="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="AdwOverlaySplitView" id="split_view">
<property name="sidebar">
<!-- ... -->
</property>
<property name="content">
<!-- ... -->
</property>
</object>
</property>
</object>
```
`AdwOverlaySplitView` is often used for implementing the
[utility pane](https://developer.gnome.org/hig/patterns/containers/utility-panes.html)
pattern.
## Sizing
When not collapsed, `AdwOverlaySplitView` 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@OverlaySplitView:sidebar-width-fraction] property.
The sidebar also has minimum and maximum sizes, controlled with the
[property@OverlaySplitView:min-sidebar-width] and
[property@OverlaySplitView:max-sidebar-width] properties.
The minimum and maximum sizes are using the length unit specified with the
[property@OverlaySplitView: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.
When collapsed, the preferred width fraction is ignored and the sidebar uses
[property@OverlaySplitView:max-sidebar-width] when possible.
## Header Bar Integration
When used inside `AdwOverlaySplitView`, [class@HeaderBar] will automatically
hide the window buttons in the middle.
## `AdwOverlaySplitView` as `GtkBuildable`
The `AdwOverlaySplitView` 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
`AdwOverlaySplitView` has a single CSS node with the name
`overlay-split-view`.
It contains two nodes with the name `widget`, containing the sidebar and
content children.
When not collapsed, they have the `.sidebar-view` and `.content-view` style
classes respectively.
```
overlay-split-view
├── widget.sidebar-pane
│ ╰── [sidebar child]
╰── widget.content-pane
╰── [content child]
```
When collapsed, the one containing the sidebar child has the `.background`
style class and the other one has no style classes.
```
overlay-split-view
├── widget.background
│ ╰── [sidebar child]
╰── widget
╰── [content child]
```
## Accessibility
`AdwOverlaySplitView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.OverlaySplitView.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 `AdwOverlaySplitView`.OverlaySplitView
(PointerContainer pointer) -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungImplements interfaceAccessible
.Implements interfaceBuildable
.Implements interfaceConstraintTarget
.Implements interfaceSwipeable
.static ClassHandler
boolean
Gets whether @self is collapsed.Gets the content widget for @self.boolean
Gets whether @self can be closed with a swipe gesture.boolean
Gets whether @self can be opened with an edge swipe gesture.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 whether the sidebar widget is pinned for @self.boolean
Gets whether the sidebar widget is shown for @self.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 view is collapsed.void
setContent
(Widget content) Sets the content widget for @self.void
setEnableHideGesture
(boolean enable_hide_gesture) Sets whether @self can be closed with a swipe gesture.void
setEnableShowGesture
(boolean enable_show_gesture) Sets whether @self can be opened with an edge swipe gesture.void
setMaxSidebarWidth
(double width) Sets the maximum sidebar width for @self.void
setMinSidebarWidth
(double width) Sets the minimum sidebar width for @self.void
setPinSidebar
(boolean pin_sidebar) Sets whether the sidebar widget is pinned for @self.void
setShowSidebar
(boolean show_sidebar) Sets whether the sidebar widget is shown for @self.void
setSidebar
(Widget 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
-
OverlaySplitView
-
OverlaySplitView
public OverlaySplitView()Creates a new `AdwOverlaySplitView`.
-
-
Methodendetails
-
getClassHandler
-
getCollapsed
public boolean getCollapsed()Gets whether @self is collapsed.- Gibt zurück:
- whether @self is collapsed
-
getContent
Gets the content widget for @self.- Gibt zurück:
- the content widget for @self
-
getEnableHideGesture
public boolean getEnableHideGesture()Gets whether @self can be closed with a swipe gesture.- Gibt zurück:
- `TRUE` if @self can be closed with a swipe gesture
-
getEnableShowGesture
public boolean getEnableShowGesture()Gets whether @self can be opened with an edge swipe gesture.- Gibt zurück:
- `TRUE` if @self can be opened with a swipe gesture
-
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
-
getPinSidebar
public boolean getPinSidebar()Gets whether the sidebar widget is pinned for @self.- Gibt zurück:
- whether if the sidebar widget is pinned
-
getShowSidebar
public boolean getShowSidebar()Gets whether the sidebar widget is shown for @self.- Gibt zurück:
- `TRUE` if the sidebar widget is shown
-
getSidebar
Gets the sidebar widget for @self.- Gibt zurück:
- the sidebar widget for @self
-
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 view is collapsed.
When collapsed, the sidebar widget is presented as an overlay above the
content widget, otherwise they are displayed side by side.- Parameter:
collapsed
- whether @self is collapsed
-
setContent
Sets the content widget for @self.- Parameter:
content
- the content widget
-
setEnableHideGesture
public void setEnableHideGesture(boolean enable_hide_gesture) Sets whether @self can be closed with a swipe gesture.
Only touchscreen swipes are supported.- Parameter:
enable_hide_gesture
- whether @self can be closed with a swipe gesture
-
setEnableShowGesture
public void setEnableShowGesture(boolean enable_show_gesture) Sets whether @self can be opened with an edge swipe gesture.
Only touchscreen swipes are supported.- Parameter:
enable_show_gesture
- whether @self can be opened with a swipe gesture
-
setMaxSidebarWidth
public void setMaxSidebarWidth(double width) Sets the maximum sidebar width for @self.
Maximum width is affected by [property@OverlaySplitView: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@OverlaySplitView: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
-
setPinSidebar
public void setPinSidebar(boolean pin_sidebar) Sets whether the sidebar widget is pinned for @self.
By default, collapsing @self automatically hides the sidebar widget, and
uncollapsing it shows the sidebar. If set to `TRUE`, sidebar visibility never
changes on its own.- Parameter:
pin_sidebar
- whether to pin the sidebar widget
-
setShowSidebar
public void setShowSidebar(boolean show_sidebar) Sets whether the sidebar widget is shown for @self.- Parameter:
show_sidebar
- whether to show the sidebar widget
-
setSidebar
Sets the sidebar widget for @self.- Parameter:
sidebar
- the sidebar widget
-
setSidebarPosition
public void setSidebarPosition(int position) Sets the sidebar position for @self.
If it's set to `GTK_PACK_START`, the sidebar is displayed before the content,
if `GTK_PACK_END`, it's displayed after the content.- 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@OverlaySplitView:min-sidebar-width] and
[property@OverlaySplitView: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@OverlaySplitView:min-sidebar-width] and
[property@OverlaySplitView:max-sidebar-width].- Parameter:
unit
- the length unit
-
asSwipeable
Implements interfaceSwipeable
. Call this to get access to interface functions.- Gibt zurück:
Swipeable
-
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()
-