Adw.OverlaySplitView
Description: Reference for Adw.OverlaySplitView

### Class

# AdwOverlaySplitView

since: 1.4

#### Description [src]

    final class Adw.OverlaySplitView : Gtk.Widget
      implements Adw.Swipeable, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
      /* No available fields */
    }

A widget presenting sidebar and content side by side or as an overlay.

`AdwOverlaySplitView` has two children: sidebar and content, and displays them side by side.

When `AdwOverlaySplitView: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 `AdwOverlaySplitView:show-sidebar` property.

Sidebar can be displayed before or after the content, this can be controlled with the `AdwOverlaySplitView: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 `AdwOverlaySplitView: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 `AdwOverlaySplitView:enable-show-gesture` and `AdwOverlaySplitView:enable-hide-gesture` properties.

See also `AdwNavigationSplitView`.

`AdwOverlaySplitView` is typically used together with an `AdwBreakpoint` setting the `collapsed` property to `TRUE` on small widths, as follows:

    <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">
            <!-- put your sidebar here -->
          </property>
          <property name="content">
            <!-- put your content here -->
          </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 `AdwOverlaySplitView:sidebar-width-fraction` property.

The sidebar also has minimum and maximum sizes, controlled with the `AdwOverlaySplitView:min-sidebar-width` and `AdwOverlaySplitView:max-sidebar-width` properties.

The minimum and maximum sizes are using the length unit specified with the `AdwOverlaySplitView: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 `AdwOverlaySplitView:max-sidebar-width` when possible.

## Header Bar Integration

When used inside `AdwOverlaySplitView`, `AdwHeaderBar` will automatically hide the window buttons in the middle.

## `AdwOverlaySplitView` as `GtkBuildable`

The `AdwOverlaySplitView` implementation of the `GtkBuildable` 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 `.overlay-pane` style class and the other one has no style classes.

    overlay-split-view
    ├── widget.overlay-pane
    │   ╰── [sidebar child]
    ╰── widget
        ╰── [content child]

## Accessibility

`AdwOverlaySplitView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.

Available since: 1.4

#### Hierarchy

#### Ancestors

- GtkWidget
- GInitiallyUnowned
- GObject

#### Implements

- AdwSwipeable
- GtkAccessible
- GtkBuildable
- GtkConstraintTarget

#### Constructors

###### adw_overlay_split_view_new

Creates a new `AdwOverlaySplitView`.

since: 1.4

#### Instance methods

###### adw_overlay_split_view_get_collapsed

Gets whether `self` is collapsed.

since: 1.4

###### adw_overlay_split_view_get_content

Gets the content widget for `self`.

since: 1.4

###### adw_overlay_split_view_get_enable_hide_gesture

Gets whether `self` can be closed with a swipe gesture.

since: 1.4

###### adw_overlay_split_view_get_enable_show_gesture

Gets whether `self` can be opened with an edge swipe gesture.

since: 1.4

###### adw_overlay_split_view_get_max_sidebar_width

Gets the maximum sidebar width for `self`.

since: 1.4

###### adw_overlay_split_view_get_min_sidebar_width

Gets the minimum sidebar width for `self`.

since: 1.4

###### adw_overlay_split_view_get_pin_sidebar

Gets whether the sidebar widget is pinned for `self`.

since: 1.4

###### adw_overlay_split_view_get_show_sidebar

Gets whether the sidebar widget is shown for `self`.

since: 1.4

###### adw_overlay_split_view_get_sidebar

Gets the sidebar widget for `self`.

since: 1.4

###### adw_overlay_split_view_get_sidebar_position

Gets the sidebar position for `self`.

since: 1.4

###### adw_overlay_split_view_get_sidebar_width_fraction

Gets the preferred sidebar width fraction for `self`.

since: 1.4

###### adw_overlay_split_view_get_sidebar_width_unit

Gets the length unit for minimum and maximum sidebar widths.

since: 1.4

###### adw_overlay_split_view_set_collapsed

Sets whether `self` view is collapsed.

since: 1.4

###### adw_overlay_split_view_set_content

Sets the content widget for `self`.

since: 1.4

###### adw_overlay_split_view_set_enable_hide_gesture

Sets whether `self` can be closed with a swipe gesture.

since: 1.4

###### adw_overlay_split_view_set_enable_show_gesture

Sets whether `self` can be opened with an edge swipe gesture.

since: 1.4

###### adw_overlay_split_view_set_max_sidebar_width

Sets the maximum sidebar width for `self`.

since: 1.4

###### adw_overlay_split_view_set_min_sidebar_width

Sets the minimum sidebar width for `self`.

since: 1.4

###### adw_overlay_split_view_set_pin_sidebar

Sets whether the sidebar widget is pinned for `self`.

since: 1.4

###### adw_overlay_split_view_set_show_sidebar

Sets whether the sidebar widget is shown for `self`.

since: 1.4

###### adw_overlay_split_view_set_sidebar

Sets the sidebar widget for `self`.

since: 1.4

###### adw_overlay_split_view_set_sidebar_position

Sets the sidebar position for `self`.

since: 1.4

###### adw_overlay_split_view_set_sidebar_width_fraction

Sets the preferred sidebar width as a fraction of the total width of `self`.

since: 1.4

###### adw_overlay_split_view_set_sidebar_width_unit

Sets the length unit for minimum and maximum sidebar widths.

since: 1.4

##### Methods inherited from GtkWidget (164)

Please see GtkWidget for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from AdwSwipeable (5)

###### adw_swipeable_get_cancel_progress

Gets the progress `self` will snap back to after the gesture is canceled.

###### adw_swipeable_get_distance

Gets the swipe distance of `self`.

###### adw_swipeable_get_progress

Gets the current progress of `self`.

###### adw_swipeable_get_snap_points

Gets the snap points of `self`.

###### adw_swipeable_get_swipe_area

Gets the area `self` can start a swipe from for the given direction and gesture type.

##### Methods inherited from GtkAccessible (21)

###### gtk_accessible_announce

Requests the user’s screen reader to announce the given message.

###### gtk_accessible_get_accessible_id

Retrieves the accessible identifier for the accessible object.

###### gtk_accessible_get_accessible_parent

Retrieves the accessible parent for an accessible object.

###### gtk_accessible_get_accessible_role

Retrieves the accessible role of an accessible object.

###### gtk_accessible_get_at_context

Retrieves the implementation for the given accessible object.

###### gtk_accessible_get_bounds

Queries the coordinates and dimensions of this accessible.

###### gtk_accessible_get_first_accessible_child

Retrieves the first accessible child of an accessible object.

###### gtk_accessible_get_next_accessible_sibling

Retrieves the next accessible sibling of an accessible object.

###### gtk_accessible_get_platform_state

Queries a platform state, such as focus.

###### gtk_accessible_reset_property

Resets the accessible property to its default value.

###### gtk_accessible_reset_relation

Resets the accessible relation to its default value.

###### gtk_accessible_reset_state

Resets the accessible state to its default value.

###### gtk_accessible_set_accessible_parent

Sets the parent and sibling of an accessible object.

###### gtk_accessible_update_next_accessible_sibling

Updates the next accessible sibling.

###### gtk_accessible_update_platform_state

Informs ATs that the platform state has changed.

###### gtk_accessible_update_property

Updates a list of accessible properties.

###### gtk_accessible_update_property_value

Updates an array of accessible properties.

###### gtk_accessible_update_relation

Updates a list of accessible relations.

###### gtk_accessible_update_relation_value

Updates an array of accessible relations.

###### gtk_accessible_update_state

Updates a list of accessible states.

###### gtk_accessible_update_state_value

Updates an array of accessible states.

##### Methods inherited from GtkBuildable (1)

###### gtk_buildable_get_buildable_id

Gets the ID of the `buildable` object.

#### Properties

###### Adw.OverlaySplitView:collapsed

Whether the split view is collapsed.

since: 1.4

###### Adw.OverlaySplitView:content

The content widget.

since: 1.4

###### Adw.OverlaySplitView:enable-hide-gesture

Whether the sidebar can be closed with a swipe gesture.

since: 1.4

###### Adw.OverlaySplitView:enable-show-gesture

Whether the sidebar can be opened with an edge swipe gesture.

since: 1.4

###### Adw.OverlaySplitView:max-sidebar-width

The maximum sidebar width.

since: 1.4

###### Adw.OverlaySplitView:min-sidebar-width

The minimum sidebar width.

since: 1.4

###### Adw.OverlaySplitView:pin-sidebar

Whether the sidebar widget is pinned.

since: 1.4

###### Adw.OverlaySplitView:show-sidebar

Whether the sidebar widget is shown.

since: 1.4

###### Adw.OverlaySplitView:sidebar

The sidebar widget.

since: 1.4

###### Adw.OverlaySplitView:sidebar-position

The sidebar position.

since: 1.4

###### Adw.OverlaySplitView:sidebar-width-fraction

The preferred sidebar width as a fraction of the total width.

since: 1.4

###### Adw.OverlaySplitView:sidebar-width-unit

The length unit for minimum and maximum sidebar widths.

since: 1.4

##### Properties inherited from GtkWidget (35)

###### Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

###### Gtk.Widget:can-target

Whether the widget can receive pointer events.

###### Gtk.Widget:css-classes

A list of css classes applied to this widget.

###### Gtk.Widget:css-name

The name of this widget in the CSS tree.

###### Gtk.Widget:cursor

The cursor used by `widget`.

###### Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

###### Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

###### Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

###### Gtk.Widget:has-default

Whether the widget is the default widget.

###### Gtk.Widget:has-focus

Whether the widget has the input focus.

###### Gtk.Widget:has-tooltip

Enables or disables the emission of the `GtkWidget::query-tooltip` signal on `widget`.

###### Gtk.Widget:height-request

Overrides for height request of the widget.

###### Gtk.Widget:hexpand

Whether to expand horizontally.

###### Gtk.Widget:hexpand-set

Whether to use the `hexpand` property.

###### Gtk.Widget:layout-manager

The `GtkLayoutManager` instance to use to compute the preferred size of the widget, and allocate its children.

###### Gtk.Widget:limit-events

Makes this widget act like a modal dialog, with respect to event delivery.

###### Gtk.Widget:margin-bottom

Margin on bottom side of widget.

###### Gtk.Widget:margin-end

Margin on end of widget, horizontally.

###### Gtk.Widget:margin-start

Margin on start of widget, horizontally.

###### Gtk.Widget:margin-top

Margin on top side of widget.

###### Gtk.Widget:name

The name of the widget.

###### Gtk.Widget:opacity

The requested opacity of the widget.

###### Gtk.Widget:overflow

How content outside the widget’s content area is treated.

###### Gtk.Widget:parent

The parent widget of this widget.

###### Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

###### Gtk.Widget:root

The `GtkRoot` widget of the widget tree containing this widget.

###### Gtk.Widget:scale-factor

The scale factor of the widget.

###### Gtk.Widget:sensitive

Whether the widget responds to input.

###### Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

###### Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

###### Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

###### Gtk.Widget:vexpand

Whether to expand vertically.

###### Gtk.Widget:vexpand-set

Whether to use the `vexpand` property.

###### Gtk.Widget:visible

Whether the widget is visible.

###### Gtk.Widget:width-request

Overrides for width request of the widget.

##### Properties inherited from GtkAccessible (1)

###### Gtk.Accessible:accessible-role

The accessible role of the given `GtkAccessible` implementation.

#### Signals

##### Signals inherited from GtkWidget (13)

###### GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

###### GtkWidget::direction-changed

Emitted when the text direction of a widget changes.

###### GtkWidget::hide

Emitted when `widget` is hidden.

###### GtkWidget::keynav-failed

Emitted if keyboard navigation fails.

###### GtkWidget::map

Emitted when `widget` is going to be mapped.

###### GtkWidget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

###### GtkWidget::move-focus

Emitted when the focus is moved.

###### GtkWidget::query-tooltip

Emitted when the widget’s tooltip is about to be shown.

###### GtkWidget::realize

Emitted when `widget` is associated with a `GdkSurface`.

###### GtkWidget::show

Emitted when `widget` is shown.

###### GtkWidget::state-flags-changed

Emitted when the widget state changes.

###### GtkWidget::unmap

Emitted when `widget` is going to be unmapped.

###### GtkWidget::unrealize

Emitted when the `GdkSurface` associated with `widget` is destroyed.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct AdwOverlaySplitViewClass {
      GtkWidgetClass parent_class;

    }

No description available.

###### Class members

`parent_class: GtkWidgetClass`

  No description available.