ViewSwitcher


Object Hierarchy:

Object hierarchy for ViewSwitcher

Description:

[ CCode ( type_id = "adap_view_switcher_get_type ()" ) ]
public sealed class ViewSwitcher : Widget, Accessible, Buildable, ConstraintTarget

An adaptive view switcher.

<picture> <source srcset="view-switcher-dark.png" media="(prefers-color-scheme: dark)"> <img src="view-switcher.png" alt="view-switcher"> </picture>

An adaptive view switcher designed to switch between multiple views contained in a [class@ViewStack] in a similar fashion to [ class@Gtk.StackSwitcher].

`AdapViewSwitcher` buttons always have an icon and a label. They can be displayed side by side, or icon on top of the label. This can be controlled via the [property@ViewSwitcher:policy] property.

`AdapViewSwitcher` is intended to be used in a header bar together with [class@ViewSwitcherBar] at the bottom of the window, and a [ class@Breakpoint] showing the view switcher bar on narrow sizes, while removing the view switcher from the header bar, as follows:

```xml <object class="AdapWindow"> <property name="width-request">360</property> <property name="height-request" >200</property> <child> <object class="AdapBreakpoint"> <condition>max-width: 550sp</condition> < setter object="switcher_bar" property="reveal">True</setter> <setter object="header_bar" property="title-widget"/> < /object> </child> <property name="content"> <object class="AdapToolbarView"> <child type="top"> <object class="AdapHeaderBar" id="header_bar"> <property name="title-widget"> <object class="AdapViewSwitcher"> <property name="stack">stack</property> <property name="policy">wide</property> </object> </property> < /object> </child> <property name="content"> <object class="AdapViewStack" id="stack"/> </property> < child type="bottom"> <object class="AdapViewSwitcherBar" id="switcher_bar"> <property name="stack">stack</property> </object> </child> </object> </property> </object> ```

It's recommended to set [property@ViewSwitcher:policy] to `ADAP_VIEW_SWITCHER_POLICY_WIDE` in this case.

You may have to adjust the breakpoint condition for your specific pages.

CSS nodes

`AdapViewSwitcher` has a single CSS node with name `viewswitcher`. It can have the style classes `.wide` and `.narrow`, matching its policy.

Accessibility

`AdapViewSwitcher` uses the `GTK_ACCESSIBLE_ROLE_TAB_LIST` role and uses the `GTK_ACCESSIBLE_ROLE_TAB` for its buttons.


Namespace: Adap
Package: libadapta-1

Content:

Properties:

Creation methods:

Methods:

Inherited Members:

All known members inherited from class Gtk.Widget