Class ViewSwitcher

All Implemented Interfaces:
Accessible, Buildable, ConstraintTarget, Proxy

@Generated("org.javagi.JavaGI") public final class ViewSwitcher extends Widget implements Accessible, Buildable, ConstraintTarget

An adaptive view switcher.

view-switcher

An adaptive view switcher designed to switch between multiple views contained in a ViewStack in a similar fashion to StackSwitcher.

AdwViewSwitcher 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 ViewSwitcher:policy property.

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

<object class="AdwWindow">
  <child>
    <object class="AdwBreakpoint">
      <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="AdwToolbarView">
      <child type="top">
        <object class="AdwHeaderBar" id="header_bar">
          <property name="title-widget">
            <object class="AdwViewSwitcher">
              <property name="stack">stack</property>
              <property name="policy">wide</property>
            </object>
          </property>
        </object>
      </child>
      <property name="content">
        <object class="AdwViewStack" id="stack"/>
      </property>
      <child type="bottom">
        <object class="AdwViewSwitcherBar" id="switcher_bar">
          <property name="stack">stack</property>
        </object>
      </child>
    </object>
  </property>
</object>

It's recommended to set ViewSwitcher:policy to Adw.ViewSwitcherPolicy.wide in this case.

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

CSS nodes

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

Accessibility

AdwViewSwitcher uses the Gtk.AccessibleRole.tab-list role and the Gtk.AccessibleRole.tab role for its buttons.

See also: ViewSwitcherBar, InlineViewSwitcher, ViewSwitcherSidebar.

  • Constructor Details

    • ViewSwitcher

      public ViewSwitcher(MemorySegment address)
      Create a ViewSwitcher instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • ViewSwitcher

      public ViewSwitcher()
      Create a new ViewSwitcher.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the ViewSwitcher class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected ViewSwitcher asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class Widget
      Returns:
      the instance as if it were its parent type
    • getPolicy

      public ViewSwitcherPolicy getPolicy()
      Gets the policy of self.
      Returns:
      the policy of this ViewSwitcher
    • getStack

      public @Nullable ViewStack getStack()
      Gets the stack controlled by self.
      Returns:
      the stack
    • setPolicy

      public void setPolicy(ViewSwitcherPolicy policy)
      Sets the policy of self.
      Parameters:
      policy - the new policy
    • setStack

      public void setStack(@Nullable ViewStack stack)
      Sets the stack controlled by self.
      Parameters:
      stack - a stack
    • builder

      public static ViewSwitcher.Builder<? extends ViewSwitcher.Builder> builder()
      A ViewSwitcher.Builder object constructs a ViewSwitcher with the specified properties. Use the various set...() methods to set properties, and finish construction with ViewSwitcher.Builder.build().
      Returns:
      the builder object