OverlaySplitView


Object Hierarchy:

Adw.OverlaySplitView Adw.OverlaySplitView Adw.OverlaySplitView Gtk.Widget Gtk.Widget Gtk.Widget->Adw.OverlaySplitView GLib.InitiallyUnowned GLib.InitiallyUnowned GLib.InitiallyUnowned->Gtk.Widget GLib.Object GLib.Object GLib.Object->GLib.InitiallyUnowned Gtk.Accessible Gtk.Accessible Gtk.Accessible->Adw.OverlaySplitView Gtk.Accessible->Gtk.Widget Gtk.Buildable Gtk.Buildable Gtk.Buildable->Adw.OverlaySplitView Gtk.Buildable->Gtk.Widget Gtk.ConstraintTarget Gtk.ConstraintTarget Gtk.ConstraintTarget->Adw.OverlaySplitView Gtk.ConstraintTarget->Gtk.Widget Adw.Swipeable Adw.Swipeable Adw.Swipeable->Adw.OverlaySplitView

Description:

[ CCode ( type_id = "adw_overlay_split_view_get_type ()" ) ]
[ Version ( since = "1.4" ) ]
public sealed class OverlaySplitView : Widget, Swipeable, Accessible, Buildable, ConstraintTarget

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="width-request">360</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="AdwOverlaySplitView" id="split_view"> <property name="sidebar"> <!-- ... --> </property> < property name="content"> <!-- ... --> </property> </object> </property> </object> ```

`AdwOverlaySplitView` is often used for implementing the utility pane 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.


Namespace: Adw
Package: libadwaita-1

Content:

Properties:

Creation methods:

Methods:

Inherited Members:

All known members inherited from class Gtk.Widget
All known members inherited from class GLib.Object
All known members inherited from interface Adw.Swipeable
All known members inherited from interface Gtk.Accessible
All known members inherited from interface Gtk.Buildable