[libhandy] example: Stop using HdySwipeGroup



commit 7b1dc1e864b14a42471e7ce725cc82667afa7067
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Wed May 5 23:47:59 2021 +0500

    example: Stop using HdySwipeGroup

 examples/hdy-demo-window.c  |   11 +-
 examples/hdy-demo-window.ui | 1995 +++++++++++++++++++++----------------------
 2 files changed, 974 insertions(+), 1032 deletions(-)
---
diff --git a/examples/hdy-demo-window.c b/examples/hdy-demo-window.c
index 40df189a..7fe9424c 100644
--- a/examples/hdy-demo-window.c
+++ b/examples/hdy-demo-window.c
@@ -100,20 +100,12 @@ update (HdyDemoWindow *self)
 {
   const gchar *header_bar_name = "default";
 
-  if (g_strcmp0 (gtk_stack_get_visible_child_name (self->stack), "deck") == 0)
-    header_bar_name = "deck";
-  else if (g_strcmp0 (gtk_stack_get_visible_child_name (self->stack), "search-bar") == 0)
+  if (g_strcmp0 (gtk_stack_get_visible_child_name (self->stack), "search-bar") == 0)
     header_bar_name = "search-bar";
 
   gtk_stack_set_visible_child_name (self->header_stack, header_bar_name);
 }
 
-static void
-notify_deck_visible_child_cb (HdyDemoWindow *self)
-{
-  update (self);
-}
-
 static void
 notify_visible_child_cb (GObject       *sender,
                          GParamSpec    *pspec,
@@ -513,7 +505,6 @@ hdy_demo_window_class_init (HdyDemoWindowClass *klass)
   gtk_widget_class_bind_template_child (widget_class, HdyDemoWindow, avatar_contacts);
   gtk_widget_class_bind_template_callback (widget_class, key_pressed_cb);
   gtk_widget_class_bind_template_callback (widget_class, notify_visible_child_cb);
-  gtk_widget_class_bind_template_callback (widget_class, notify_deck_visible_child_cb);
   gtk_widget_class_bind_template_callback (widget_class, back_clicked_cb);
   gtk_widget_class_bind_template_callback (widget_class, deck_back_clicked_cb);
   gtk_widget_class_bind_template_callback (widget_class, notify_leaflet_transition_cb);
diff --git a/examples/hdy-demo-window.ui b/examples/hdy-demo-window.ui
index db34c928..20dc6fff 100644
--- a/examples/hdy-demo-window.ui
+++ b/examples/hdy-demo-window.ui
@@ -18,183 +18,147 @@
     <property name="default_height">576</property>
     <signal name="key-press-event" handler="key_pressed_cb" after="yes" swapped="no"/>
     <child>
-      <object class="HdyLeaflet" id="content_box">
+      <object class="HdyDeck" id="content_deck">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="vexpand">True</property>
+        <property name="transition-type">over</property>
         <property name="can-swipe-back">True</property>
-        <property name="width-request">360</property>
         <child>
-          <object class="GtkBox">
+          <object class="HdyLeaflet" id="content_box">
             <property name="visible">True</property>
-            <property name="orientation">vertical</property>
+            <property name="can_focus">False</property>
+            <property name="can-swipe-back">True</property>
+            <property name="width-request">360</property>
             <child>
-              <object class="GtkRevealer" id="header_revealer">
+              <object class="GtkBox">
                 <property name="visible">True</property>
-                <property name="transition-type">slide-down</property>
-                <property name="reveal-child" bind-source="window_header_revealer_switch" 
bind-property="state" bind-flags="sync-create | bidirectional"/>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="HdyHeaderBar" id="header_bar">
+                  <object class="GtkRevealer" id="header_revealer">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="title" translatable="yes">Handy Demo</property>
-                    <property name="show_close_button">True</property>
+                    <property name="transition-type">slide-down</property>
+                    <property name="reveal-child" bind-source="window_header_revealer_switch" 
bind-property="state" bind-flags="sync-create | bidirectional"/>
                     <child>
-                      <object class="GtkButton">
+                      <object class="HdyHeaderBar" id="header_bar">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <signal name="clicked" handler="theme_variant_button_clicked_cb" swapped="yes"/>
+                        <property name="can_focus">False</property>
+                        <property name="title" translatable="yes">Handy Demo</property>
+                        <property name="show_close_button">True</property>
                         <child>
-                          <object class="GtkImage" id="theme_variant_image">
+                          <object class="GtkButton">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
+                            <property name="can_focus">True</property>
+                            <signal name="clicked" handler="theme_variant_button_clicked_cb" swapped="yes"/>
+                            <child>
+                              <object class="GtkImage" id="theme_variant_image">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                              </object>
+                            </child>
                           </object>
                         </child>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkMenuButton" id="menu_button">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="focus_on_click">False</property>
-                        <property name="menu_model">primary_menu</property>
-                        <property name="use_popover">True</property>
                         <child>
-                          <object class="GtkImage">
+                          <object class="GtkMenuButton" id="menu_button">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="icon_name">open-menu-symbolic</property>
+                            <property name="can_focus">True</property>
+                            <property name="focus_on_click">False</property>
+                            <property name="menu_model">primary_menu</property>
+                            <property name="use_popover">True</property>
+                            <child>
+                              <object class="GtkImage">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="icon_name">open-menu-symbolic</property>
+                              </object>
+                            </child>
                           </object>
+                          <packing>
+                            <property name="pack_type">end</property>
+                          </packing>
                         </child>
                       </object>
-                      <packing>
-                        <property name="pack_type">end</property>
-                      </packing>
                     </child>
                   </object>
                 </child>
-              </object>
-            </child>
-            <child>
-              <object class="GtkStackSidebar" id="sidebar">
-                <property name="width_request">270</property>
-                <property name="visible">True</property>
-                <property name="vexpand">True</property>
-                <property name="can_focus">False</property>
-                <property name="stack">stack</property>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="name">sidebar</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox">
-            <property name="visible">True</property>
-            <property name="orientation">vertical</property>
-            <child>
-              <object class="GtkRevealer">
-                <property name="visible">True</property>
-                <property name="transition-type" bind-source="header_revealer" 
bind-property="transition-type" bind-flags="bidirectional|sync-create"/>
-                <property name="reveal-child" bind-source="header_revealer" bind-property="reveal-child" 
bind-flags="bidirectional|sync-create"/>
                 <child>
-                  <object class="HdyWindowHandle" id="header_separator">
+                  <object class="GtkStackSidebar" id="sidebar">
+                    <property name="width_request">270</property>
                     <property name="visible">True</property>
-                    <child>
-                      <object class="GtkSeparator">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="orientation">vertical</property>
-                        <style>
-                          <class name="sidebar"/>
-                        </style>
-                      </object>
-                    </child>
+                    <property name="vexpand">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="stack">stack</property>
                   </object>
                 </child>
               </object>
+              <packing>
+                <property name="name">sidebar</property>
+              </packing>
             </child>
             <child>
-              <object class="GtkSeparator">
+              <object class="GtkBox">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="orientation">vertical</property>
-                <property name="vexpand">True</property>
-                <style>
-                  <class name="sidebar"/>
-                </style>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="navigatable">False</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="right_box">
-            <property name="visible">True</property>
-            <property name="orientation">vertical</property>
-            <child>
-              <object class="GtkRevealer">
-                <property name="visible">True</property>
-                <property name="transition-type" bind-source="header_revealer" 
bind-property="transition-type" bind-flags="bidirectional|sync-create"/>
-                <property name="reveal-child" bind-source="header_revealer" bind-property="reveal-child" 
bind-flags="bidirectional|sync-create"/>
                 <child>
-                  <object class="GtkStack" id="header_stack">
+                  <object class="GtkRevealer">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="vexpand">False</property>
-                    <property name="transition-type" bind-source="stack" bind-property="transition-type" 
bind-flags="sync-create"/>
+                    <property name="transition-type" bind-source="header_revealer" 
bind-property="transition-type" bind-flags="bidirectional|sync-create"/>
+                    <property name="reveal-child" bind-source="header_revealer" bind-property="reveal-child" 
bind-flags="bidirectional|sync-create"/>
                     <child>
-                      <object class="HdyHeaderBar" id="default_header_bar">
+                      <object class="HdyWindowHandle" id="header_separator">
                         <property name="visible">True</property>
-                        <property name="expand">True</property>
-                        <property name="show_close_button">True</property>
                         <child>
-                          <object class="GtkButton" id="back">
+                          <object class="GtkSeparator">
+                            <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="receives_default">False</property>
-                            <property name="valign">center</property>
-                            <property name="use-underline">True</property>
-                            <property name="visible" bind-source="content_box" bind-property="folded" 
bind-flags="sync-create"/>
-                            <signal name="clicked" handler="back_clicked_cb"/>
+                            <property name="orientation">vertical</property>
                             <style>
-                              <class name="image-button"/>
+                              <class name="sidebar"/>
                             </style>
-                            <child internal-child="accessible">
-                              <object class="AtkObject" id="a11y-back">
-                                <property name="accessible-name" translatable="yes">Back</property>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="back_image">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon_name">go-previous-symbolic</property>
-                                <property name="icon_size">1</property>
-                              </object>
-                            </child>
                           </object>
                         </child>
                       </object>
-                      <packing>
-                        <property name="name">default</property>
-                      </packing>
                     </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkSeparator">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
+                    <property name="vexpand">True</property>
+                    <style>
+                      <class name="sidebar"/>
+                    </style>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="navigatable">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox" id="right_box">
+                <property name="visible">True</property>
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkRevealer">
+                    <property name="visible">True</property>
+                    <property name="transition-type" bind-source="header_revealer" 
bind-property="transition-type" bind-flags="bidirectional|sync-create"/>
+                    <property name="reveal-child" bind-source="header_revealer" bind-property="reveal-child" 
bind-flags="bidirectional|sync-create"/>
                     <child>
-                      <object class="HdyDeck" id="header_deck">
+                      <object class="GtkStack" id="header_stack">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="vexpand">True</property>
-                        <property name="can-swipe-back">True</property>
-                        <property name="transition-type" bind-source="content_deck" 
bind-property="transition-type" bind-flags="sync-create"/>
+                        <property name="vexpand">False</property>
+                        <property name="transition-type" bind-source="stack" bind-property="transition-type" 
bind-flags="sync-create"/>
                         <child>
-                          <object class="HdyHeaderBar" id="deck_header_bar">
+                          <object class="HdyHeaderBar" id="default_header_bar">
                             <property name="visible">True</property>
                             <property name="expand">True</property>
                             <property name="show_close_button">True</property>
                             <child>
-                              <object class="GtkButton" id="deck-back">
+                              <object class="GtkButton" id="back">
                                 <property name="can_focus">False</property>
                                 <property name="receives_default">False</property>
                                 <property name="valign">center</property>
@@ -205,12 +169,12 @@
                                   <class name="image-button"/>
                                 </style>
                                 <child internal-child="accessible">
-                                  <object class="AtkObject" id="a11y-deck-back">
+                                  <object class="AtkObject" id="a11y-back">
                                     <property name="accessible-name" translatable="yes">Back</property>
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="GtkImage">
+                                  <object class="GtkImage" id="back_image">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="icon_name">go-previous-symbolic</property>
@@ -220,25 +184,28 @@
                               </object>
                             </child>
                           </object>
+                          <packing>
+                            <property name="name">default</property>
+                          </packing>
                         </child>
                         <child>
-                          <object class="HdyHeaderBar" id="deck_sub_header_bar">
+                          <object class="HdyHeaderBar" id="search_bar_header_bar">
                             <property name="visible">True</property>
                             <property name="expand">True</property>
                             <property name="show_close_button">True</property>
                             <child>
-                              <object class="GtkButton" id="deck-sub-back">
+                              <object class="GtkButton">
                                 <property name="can_focus">False</property>
                                 <property name="receives_default">False</property>
                                 <property name="valign">center</property>
                                 <property name="use-underline">True</property>
-                                <property name="visible">True</property>
-                                <signal name="clicked" handler="deck_back_clicked_cb"/>
+                                <property name="visible" bind-source="content_box" bind-property="folded" 
bind-flags="sync-create"/>
+                                <signal name="clicked" handler="back_clicked_cb"/>
                                 <style>
                                   <class name="image-button"/>
                                 </style>
                                 <child internal-child="accessible">
-                                  <object class="AtkObject" id="a11y-deck-sub-back">
+                                  <object class="AtkObject">
                                     <property name="accessible-name" translatable="yes">Back</property>
                                   </object>
                                 </child>
@@ -252,144 +219,98 @@
                                 </child>
                               </object>
                             </child>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="name">deck</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="HdyHeaderBar" id="search_bar_header_bar">
-                        <property name="visible">True</property>
-                        <property name="expand">True</property>
-                        <property name="show_close_button">True</property>
-                        <child>
-                          <object class="GtkButton">
-                            <property name="can_focus">False</property>
-                            <property name="receives_default">False</property>
-                            <property name="valign">center</property>
-                            <property name="use-underline">True</property>
-                            <property name="visible" bind-source="content_box" bind-property="folded" 
bind-flags="sync-create"/>
-                            <signal name="clicked" handler="back_clicked_cb"/>
-                            <style>
-                              <class name="image-button"/>
-                            </style>
-                            <child internal-child="accessible">
-                              <object class="AtkObject">
-                                <property name="accessible-name" translatable="yes">Back</property>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkImage">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon_name">go-previous-symbolic</property>
-                                <property name="icon_size">1</property>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkToggleButton">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="receives_default">False</property>
-                            <property name="valign">center</property>
-                            <property name="use-underline">True</property>
-                            <property name="active" bind-source="search_bar" 
bind-property="search-mode-enabled" bind-flags="sync-create|bidirectional"/>
-                            <style>
-                              <class name="image-button"/>
-                            </style>
-                            <child internal-child="accessible">
-                              <object class="AtkObject" id="a11y-search">
-                                <property name="accessible-name" translatable="yes">Search</property>
-                              </object>
-                            </child>
                             <child>
-                              <object class="GtkImage" id="search_image">
+                              <object class="GtkToggleButton">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="icon_name">edit-find-symbolic</property>
-                                <property name="icon_size">1</property>
+                                <property name="receives_default">False</property>
+                                <property name="valign">center</property>
+                                <property name="use-underline">True</property>
+                                <property name="active" bind-source="search_bar" 
bind-property="search-mode-enabled" bind-flags="sync-create|bidirectional"/>
+                                <style>
+                                  <class name="image-button"/>
+                                </style>
+                                <child internal-child="accessible">
+                                  <object class="AtkObject" id="a11y-search">
+                                    <property name="accessible-name" translatable="yes">Search</property>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkImage" id="search_image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">edit-find-symbolic</property>
+                                    <property name="icon_size">1</property>
+                                  </object>
+                                </child>
                               </object>
+                              <packing>
+                                <property name="pack_type">end</property>
+                              </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="pack_type">end</property>
+                            <property name="name">search-bar</property>
                           </packing>
                         </child>
                       </object>
-                      <packing>
-                        <property name="name">search-bar</property>
-                      </packing>
                     </child>
                   </object>
                 </child>
-              </object>
-            </child>
-            <child>
-              <object class="GtkStack" id="stack">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="vhomogeneous">False</property>
-                <signal name="notify::visible-child" handler="notify_visible_child_cb" after="yes" 
swapped="no"/>
-                <child>
-                  <object class="HdyStatusPage">
-                    <property name="visible">True</property>
-                    <property name="icon-name">gnome-smartphone-symbolic</property>
-                    <property name="title" translatable="yes">Welcome to Handy Demo</property>
-                    <property name="description" translatable="yes">This is a tour of the features the 
library has to offer.</property>
-                  </object>
-                  <packing>
-                    <property name="name">welcome</property>
-                    <property name="title" translatable="yes">Welcome</property>
-                  </packing>
-                </child>
                 <child>
-                  <object class="HdyStatusPage">
+                  <object class="GtkStack" id="stack">
                     <property name="visible">True</property>
-                    <property name="icon-name">widget-leaflet-symbolic</property>
-                    <property name="title" translatable="yes">Leaflet</property>
-                    <property name="description" translatable="yes">A widget showing either all its children 
or only one, depending on the available space. This window is using a leaflet, you can control it with the 
settings below.</property>
+                    <property name="can_focus">False</property>
+                    <property name="vhomogeneous">False</property>
+                    <signal name="notify::visible-child" handler="notify_visible_child_cb" after="yes" 
swapped="no"/>
+                    <child>
+                      <object class="HdyStatusPage">
+                        <property name="visible">True</property>
+                        <property name="icon-name">gnome-smartphone-symbolic</property>
+                        <property name="title" translatable="yes">Welcome to Handy Demo</property>
+                        <property name="description" translatable="yes">This is a tour of the features the 
library has to offer.</property>
+                      </object>
+                      <packing>
+                        <property name="name">welcome</property>
+                        <property name="title" translatable="yes">Welcome</property>
+                      </packing>
+                    </child>
                     <child>
-                      <object class="HdyClamp">
+                      <object class="HdyStatusPage">
                         <property name="visible">True</property>
+                        <property name="icon-name">widget-leaflet-symbolic</property>
+                        <property name="title" translatable="yes">Leaflet</property>
+                        <property name="description" translatable="yes">A widget showing either all its 
children or only one, depending on the available space. This window is using a leaflet, you can control it 
with the settings below.</property>
                         <child>
-                          <object class="GtkListBox">
+                          <object class="HdyClamp">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="expand">True</property>
-                            <property name="selection-mode">none</property>
-                            <style>
-                              <class name="content"/>
-                            </style>
                             <child>
-                              <object class="HdyComboRow" id="leaflet_transition_row">
-                                <property name="subtitle" translatable="yes">The type of transition to use 
when the leaflet adapts its size or when changing the visible child</property>
-                                <property name="title" translatable="yes">Transition type</property>
+                              <object class="GtkListBox">
                                 <property name="visible">True</property>
-                                <signal name="notify::selected-index" handler="notify_leaflet_transition_cb" 
swapped="no"/>
+                                <property name="can_focus">False</property>
+                                <property name="expand">True</property>
+                                <property name="selection-mode">none</property>
+                                <style>
+                                  <class name="content"/>
+                                </style>
+                                <child>
+                                  <object class="HdyComboRow" id="leaflet_transition_row">
+                                    <property name="subtitle" translatable="yes">The type of transition to 
use when the leaflet adapts its size or when changing the visible child</property>
+                                    <property name="title" translatable="yes">Transition type</property>
+                                    <property name="visible">True</property>
+                                    <signal name="notify::selected-index" 
handler="notify_leaflet_transition_cb" swapped="no"/>
+                                  </object>
+                                </child>
                               </object>
                             </child>
                           </object>
                         </child>
                       </object>
+                      <packing>
+                        <property name="name">leaflet</property>
+                        <property name="title" translatable="yes">Leaflet</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="name">leaflet</property>
-                    <property name="title" translatable="yes">Leaflet</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="HdyDeck" id="content_deck">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="vexpand">True</property>
-                    <property name="transition-type">over</property>
-                    <property name="can-swipe-back">True</property>
-                    <signal name="notify::visible-child" handler="notify_deck_visible_child_cb" after="yes" 
swapped="yes"/>
                     <child>
                       <object class="HdyStatusPage">
                         <property name="visible">True</property>
@@ -436,328 +357,153 @@
                           </object>
                         </child>
                       </object>
-                    </child>
-                    <child>
-                      <object class="GtkScrolledWindow">
-                        <property name="visible">True</property>
-                        <property name="hscrollbar-policy">never</property>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="orientation">vertical</property>
-                            <property name="valign">center</property>
-                            <property name="visible">True</property>
-                            <property name="margin">12</property>
-                            <property name="spacing">12</property>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="halign">center</property>
-                                <property name="label" translatable="yes">Go back</property>
-                                <property name="justify">center</property>
-                                <property name="wrap">True</property>
-                                <property name="wrap-mode">word-char</property>
-                                <style>
-                                  <class name="title"/>
-                                  <class name="large-title"/>
-                                </style>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkImage">
-                                <property name="icon-name">gesture-touchscreen-swipe-back-symbolic</property>
-                                <property name="pixel-size">128</property>
-                                <property name="visible">True</property>
-                                <style>
-                                  <class name="dim-label"/>
-                                </style>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkImage">
-                                <property name="icon-name">gesture-touchpad-swipe-back-symbolic</property>
-                                <property name="pixel-size">128</property>
-                                <property name="visible">True</property>
-                                <style>
-                                  <class name="dim-label"/>
-                                </style>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
                       <packing>
-                        <property name="name">sub</property>
+                        <property name="name">deck</property>
+                        <property name="title" translatable="yes">Deck</property>
                       </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="name">deck</property>
-                    <property name="title" translatable="yes">Deck</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="HdyStatusPage">
-                    <property name="visible">True</property>
-                    <property name="icon-name">widget-keypad-symbolic</property>
-                    <property name="title" translatable="yes">Keypad</property>
-                    <property name="description" translatable="yes">A number keypad.</property>
                     <child>
-                      <object class="HdyClamp">
+                      <object class="HdyStatusPage">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="maximum-size">300</property>
-                        <property name="tightening-threshold">300</property>
+                        <property name="icon-name">widget-keypad-symbolic</property>
+                        <property name="title" translatable="yes">Keypad</property>
+                        <property name="description" translatable="yes">A number keypad.</property>
                         <child>
-                          <object class="GtkBox" id="box_keypad">
+                          <object class="HdyClamp">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="valign">center</property>
-                            <property name="hexpand">True</property>
-                            <property name="orientation">vertical</property>
-                            <property name="spacing">12</property>
+                            <property name="maximum-size">300</property>
+                            <property name="tightening-threshold">300</property>
                             <child>
-                              <object class="GtkListBox" id="keypad_listbox">
+                              <object class="GtkBox" id="box_keypad">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="expand">True</property>
-                                <property name="selection-mode">none</property>
-                                <style>
-                                  <class name="content"/>
-                                </style>
+                                <property name="valign">center</property>
+                                <property name="hexpand">True</property>
+                                <property name="orientation">vertical</property>
+                                <property name="spacing">12</property>
                                 <child>
-                                  <object class="HdyActionRow">
+                                  <object class="GtkListBox" id="keypad_listbox">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="title" translatable="yes">Show letters</property>
-                                    <property name="activatable_widget">keypad_letters_visible</property>
-                                    <child>
-                                      <object class="GtkSwitch" id="keypad_letters_visible">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="state">True</property>
-                                        <property name="valign">center</property>
+                                    <property name="expand">True</property>
+                                    <property name="selection-mode">none</property>
+                                    <style>
+                                      <class name="content"/>
+                                    </style>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="title" translatable="yes">Show letters</property>
+                                        <property name="activatable_widget">keypad_letters_visible</property>
+                                        <child>
+                                          <object class="GtkSwitch" id="keypad_letters_visible">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="state">True</property>
+                                            <property name="valign">center</property>
+                                          </object>
+                                        </child>
                                       </object>
                                     </child>
-                                  </object>
-                                </child>
-                                <child>
-                                  <object class="HdyActionRow">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="title" translatable="yes">Show symbols</property>
-                                    <property name="activatable_widget">keypad_symbols_visible</property>
                                     <child>
-                                      <object class="GtkSwitch" id="keypad_symbols_visible">
+                                      <object class="HdyActionRow">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="state">True</property>
-                                        <property name="valign">center</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="title" translatable="yes">Show symbols</property>
+                                        <property name="activatable_widget">keypad_symbols_visible</property>
+                                        <child>
+                                          <object class="GtkSwitch" id="keypad_symbols_visible">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="state">True</property>
+                                            <property name="valign">center</property>
+                                          </object>
+                                        </child>
                                       </object>
                                     </child>
                                   </object>
                                 </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry_keypad">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyKeypad" id="keypad">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="halign">center</property>
-                                <property name="entry">entry_keypad</property>
-                                <property name="symbols-visible" bind-source="keypad_symbols_visible" 
bind-property="state" bind-flags="sync-create | bidirectional"/>
-                                <property name="letters-visible" bind-source="keypad_letters_visible" 
bind-property="state" bind-flags="sync-create | bidirectional"/>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
-                                <property name="pack_type">end</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="name">keypad</property>
-                    <property name="title" translatable="yes">Keypad</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="HdyStatusPage">
-                    <property name="visible">True</property>
-                    <property name="icon-name">widget-clamp-symbolic</property>
-                    <property name="title" translatable="yes">Clamp</property>
-                    <property name="description" translatable="yes">This page is clamped to smoothly grow up 
to a maximum width.</property>
-                    <child>
-                      <object class="HdyClamp">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">fill</property>
-                        <property name="valign">fill</property>
-                        <property name="expand">True</property>
-                        <property name="maximum-size" bind-source="clamp_maximum_size_adjustment" 
bind-property="value" bind-flags="sync-create"/>
-                        <property name="tightening-threshold" 
bind-source="clamp_tightening_threshold_adjustment" bind-property="value" bind-flags="sync-create"/>
-                        <child>
-                          <object class="GtkListBox" id="clamp_listbox">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="expand">True</property>
-                            <property name="selection-mode">none</property>
-                            <style>
-                              <class name="content"/>
-                            </style>
-                            <child>
-                              <object class="HdyActionRow">
-                                <property name="can_focus">False</property>
-                                <property name="title" translatable="yes">Maximum width</property>
-                                <property name="visible">True</property>
                                 <child>
-                                  <object class="GtkSpinButton">
-                                    <property name="adjustment">clamp_maximum_size_adjustment</property>
-                                    <property name="valign">center</property>
+                                  <object class="GtkEntry" id="entry_keypad">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
                                   </object>
                                 </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyActionRow">
-                                <property name="can_focus">False</property>
-                                <property name="title" translatable="yes">Tightening threshold</property>
-                                <property name="visible">True</property>
                                 <child>
-                                  <object class="GtkSpinButton">
-                                    <property 
name="adjustment">clamp_tightening_threshold_adjustment</property>
-                                    <property name="valign">center</property>
+                                  <object class="HdyKeypad" id="keypad">
                                     <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="halign">center</property>
+                                    <property name="entry">entry_keypad</property>
+                                    <property name="symbols-visible" bind-source="keypad_symbols_visible" 
bind-property="state" bind-flags="sync-create | bidirectional"/>
+                                    <property name="letters-visible" bind-source="keypad_letters_visible" 
bind-property="state" bind-flags="sync-create | bidirectional"/>
                                   </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="pack_type">end</property>
+                                    <property name="position">1</property>
+                                  </packing>
                                 </child>
                               </object>
                             </child>
                           </object>
                         </child>
                       </object>
+                      <packing>
+                        <property name="name">keypad</property>
+                        <property name="title" translatable="yes">Keypad</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="name">clamp</property>
-                    <property name="title" translatable="yes">Clamp</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="HdyStatusPage">
-                    <property name="visible">True</property>
-                    <property name="icon-name">widget-list-symbolic</property>
-                    <property name="title" translatable="yes">Lists</property>
-                    <property name="description" translatable="yes">Rows and helpers for 
GtkListBox.</property>
                     <child>
-                      <object class="HdyClamp">
+                      <object class="HdyStatusPage">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">fill</property>
-                        <property name="valign">fill</property>
-                        <property name="expand">True</property>
-                        <property name="maximum-size">400</property>
-                        <property name="tightening-threshold">300</property>
+                        <property name="icon-name">widget-clamp-symbolic</property>
+                        <property name="title" translatable="yes">Clamp</property>
+                        <property name="description" translatable="yes">This page is clamped to smoothly 
grow up to a maximum width.</property>
                         <child>
-                          <object class="GtkListBox" id="lists_listbox">
+                          <object class="HdyClamp">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">fill</property>
                             <property name="expand">True</property>
-                            <property name="selection-mode">none</property>
-                            <style>
-                              <class name="content"/>
-                            </style>
-                            <child>
-                              <object class="HdyActionRow">
-                                <property name="icon-name">row-preferences-symbolic</property>
-                                <property name="subtitle" translatable="yes">They also have a subtitle and 
an icon</property>
-                                <property name="title" translatable="yes">Rows have a title</property>
-                                <property name="visible">True</property>
-                              </object>
-                            </child>
+                            <property name="maximum-size" bind-source="clamp_maximum_size_adjustment" 
bind-property="value" bind-flags="sync-create"/>
+                            <property name="tightening-threshold" 
bind-source="clamp_tightening_threshold_adjustment" bind-property="value" bind-flags="sync-create"/>
                             <child>
-                              <object class="HdyActionRow">
-                                <property name="activatable_widget">frobnicate</property>
-                                <property name="title" translatable="yes">Rows can have action 
widgets</property>
+                              <object class="GtkListBox" id="clamp_listbox">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="expand">True</property>
+                                <property name="selection-mode">none</property>
+                                <style>
+                                  <class name="content"/>
+                                </style>
                                 <child>
-                                  <object class="GtkButton" id="frobnicate">
-                                    <property name="can_focus">True</property>
-                                    <property name="halign">end</property>
-                                    <property name="label" translatable="yes">Frobnicate</property>
-                                    <property name="valign">center</property>
-                                    <property name="visible">True</property>
-                                    <style>
-                                      <class name="list-button"/>
-                                    </style>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyActionRow">
-                                <property name="activatable_widget">radio_button_1</property>
-                                <property name="title" translatable="yes">Rows can have prefix 
widgets</property>
-                                <property name="visible">True</property>
-                                <child type="prefix">
-                                  <object class="GtkRadioButton" id="radio_button_1">
-                                    <property name="can_focus">False</property>
-                                    <property name="valign">center</property>
-                                    <property name="visible">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyActionRow">
-                                <property name="activatable_widget">radio_button_2</property>
-                                <property name="title" translatable="yes">Rows can have prefix 
widgets</property>
-                                <property name="visible">True</property>
-                                <child type="prefix">
-                                  <object class="GtkRadioButton" id="radio_button_2">
+                                  <object class="HdyActionRow">
                                     <property name="can_focus">False</property>
-                                    <property name="group">radio_button_1</property>
-                                    <property name="valign">center</property>
+                                    <property name="title" translatable="yes">Maximum width</property>
                                     <property name="visible">True</property>
+                                    <child>
+                                      <object class="GtkSpinButton">
+                                        <property name="adjustment">clamp_maximum_size_adjustment</property>
+                                        <property name="valign">center</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
                                   </object>
                                 </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyComboRow" id="combo_row">
-                                <property name="title" translatable="yes">Combo row</property>
-                                <property name="visible">True</property>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyComboRow" id="enum_combo_row">
-                                <property name="subtitle" translatable="yes">This combo row was created from 
an enumeration</property>
-                                <property name="title" translatable="yes">Enumeration combo row</property>
-                                <property name="visible">True</property>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyExpanderRow" id="expander_row">
-                                <property name="title" translatable="yes">Expander row</property>
-                                <property name="visible">True</property>
                                 <child>
-                                  <object class="GtkListBoxRow">
-                                    <property name="activatable">False</property>
+                                  <object class="HdyActionRow">
+                                    <property name="can_focus">False</property>
+                                    <property name="title" translatable="yes">Tightening threshold</property>
                                     <property name="visible">True</property>
                                     <child>
-                                      <object class="GtkLabel">
-                                        <property name="label" translatable="yes">Hello, world!</property>
-                                        <property name="margin">12</property>
+                                      <object class="GtkSpinButton">
+                                        <property 
name="adjustment">clamp_tightening_threshold_adjustment</property>
+                                        <property name="valign">center</property>
                                         <property name="visible">True</property>
                                       </object>
                                     </child>
@@ -765,155 +511,277 @@
                                 </child>
                               </object>
                             </child>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="name">clamp</property>
+                        <property name="title" translatable="yes">Clamp</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="HdyStatusPage">
+                        <property name="visible">True</property>
+                        <property name="icon-name">widget-list-symbolic</property>
+                        <property name="title" translatable="yes">Lists</property>
+                        <property name="description" translatable="yes">Rows and helpers for 
GtkListBox.</property>
+                        <child>
+                          <object class="HdyClamp">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">fill</property>
+                            <property name="expand">True</property>
+                            <property name="maximum-size">400</property>
+                            <property name="tightening-threshold">300</property>
                             <child>
-                              <object class="HdyExpanderRow" id="action_expander_row">
-                                <property name="title" translatable="yes">Expander row with an 
action</property>
+                              <object class="GtkListBox" id="lists_listbox">
                                 <property name="visible">True</property>
-                                <child type="action">
-                                  <object class="GtkButton">
-                                    <property name="visible">True</property>
-                                    <property name="valign">center</property>
-                                    <style>
-                                      <class name="list-button"/>
-                                    </style>
-                                    <child>
-                                      <object class="GtkImage">
-                                        <property name="visible">True</property>
-                                        <property name="icon-name">row-copy-symbolic</property>
-                                      </object>
-                                    </child>
-                                  </object>
-                                </child>
+                                <property name="can_focus">False</property>
+                                <property name="expand">True</property>
+                                <property name="selection-mode">none</property>
+                                <style>
+                                  <class name="content"/>
+                                </style>
                                 <child>
                                   <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">A nested row</property>
+                                    <property name="icon-name">row-preferences-symbolic</property>
+                                    <property name="subtitle" translatable="yes">They also have a subtitle 
and an icon</property>
+                                    <property name="title" translatable="yes">Rows have a title</property>
                                     <property name="visible">True</property>
                                   </object>
                                 </child>
                                 <child>
                                   <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">Another nested row</property>
-                                    <property name="visible">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyExpanderRow">
-                                <property name="title" translatable="yes">Expander row with a 
prefix</property>
-                                <property name="visible">True</property>
-                                <child type="prefix">
-                                  <object class="GtkButton">
+                                    <property name="activatable_widget">frobnicate</property>
+                                    <property name="title" translatable="yes">Rows can have action 
widgets</property>
                                     <property name="visible">True</property>
-                                    <property name="valign">center</property>
-                                    <style>
-                                      <class name="list-button"/>
-                                    </style>
                                     <child>
-                                      <object class="GtkImage">
+                                      <object class="GtkButton" id="frobnicate">
+                                        <property name="can_focus">True</property>
+                                        <property name="halign">end</property>
+                                        <property name="label" translatable="yes">Frobnicate</property>
+                                        <property name="valign">center</property>
                                         <property name="visible">True</property>
-                                        <property name="icon-name">row-shutdown-symbolic</property>
+                                        <style>
+                                          <class name="list-button"/>
+                                        </style>
                                       </object>
                                     </child>
                                   </object>
                                 </child>
                                 <child>
                                   <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">A nested row</property>
+                                    <property name="activatable_widget">radio_button_1</property>
+                                    <property name="title" translatable="yes">Rows can have prefix 
widgets</property>
                                     <property name="visible">True</property>
+                                    <child type="prefix">
+                                      <object class="GtkRadioButton" id="radio_button_1">
+                                        <property name="can_focus">False</property>
+                                        <property name="valign">center</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
                                   </object>
                                 </child>
                                 <child>
                                   <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">Another nested row</property>
-                                    <property name="visible">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyExpanderRow">
-                                <property name="title" translatable="yes">Expander row with a prefix and 
icon</property>
-                                <property name="visible">True</property>
-                                <property name="icon-name">row-forbidden-symbolic</property>
-                                <child type="prefix">
-                                  <object class="GtkButton">
+                                    <property name="activatable_widget">radio_button_2</property>
+                                    <property name="title" translatable="yes">Rows can have prefix 
widgets</property>
                                     <property name="visible">True</property>
-                                    <property name="valign">center</property>
-                                    <style>
-                                      <class name="list-button"/>
-                                    </style>
-                                    <child>
-                                      <object class="GtkImage">
+                                    <child type="prefix">
+                                      <object class="GtkRadioButton" id="radio_button_2">
+                                        <property name="can_focus">False</property>
+                                        <property name="group">radio_button_1</property>
+                                        <property name="valign">center</property>
                                         <property name="visible">True</property>
-                                        <property name="icon-name">row-shutdown-symbolic</property>
                                       </object>
                                     </child>
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">A nested row</property>
+                                  <object class="HdyComboRow" id="combo_row">
+                                    <property name="title" translatable="yes">Combo row</property>
                                     <property name="visible">True</property>
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">Another nested row</property>
+                                  <object class="HdyComboRow" id="enum_combo_row">
+                                    <property name="subtitle" translatable="yes">This combo row was created 
from an enumeration</property>
+                                    <property name="title" translatable="yes">Enumeration combo 
row</property>
                                     <property name="visible">True</property>
                                   </object>
                                 </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyExpanderRow" id="enable_expander_row">
-                                <property name="show_enable_switch">True</property>
-                                <property name="title" translatable="yes">Toggleable expander row</property>
-                                <property name="visible">True</property>
                                 <child>
-                                  <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">A nested row</property>
+                                  <object class="HdyExpanderRow" id="expander_row">
+                                    <property name="title" translatable="yes">Expander row</property>
                                     <property name="visible">True</property>
+                                    <child>
+                                      <object class="GtkListBoxRow">
+                                        <property name="activatable">False</property>
+                                        <property name="visible">True</property>
+                                        <child>
+                                          <object class="GtkLabel">
+                                            <property name="label" translatable="yes">Hello, 
world!</property>
+                                            <property name="margin">12</property>
+                                            <property name="visible">True</property>
+                                          </object>
+                                        </child>
+                                      </object>
+                                    </child>
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">Another nested row</property>
-                                    <property name="visible">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyExpanderRow" id="action_switch_expander_row">
-                                <property name="show_enable_switch">True</property>
-                                <property name="title" translatable="yes">Toggleable expander row with an 
action</property>
-                                <property name="visible">True</property>
-                                <child type="action">
-                                  <object class="GtkButton">
+                                  <object class="HdyExpanderRow" id="action_expander_row">
+                                    <property name="title" translatable="yes">Expander row with an 
action</property>
                                     <property name="visible">True</property>
-                                    <property name="valign">center</property>
-                                    <style>
-                                      <class name="list-button"/>
-                                    </style>
+                                    <child type="action">
+                                      <object class="GtkButton">
+                                        <property name="visible">True</property>
+                                        <property name="valign">center</property>
+                                        <style>
+                                          <class name="list-button"/>
+                                        </style>
+                                        <child>
+                                          <object class="GtkImage">
+                                            <property name="visible">True</property>
+                                            <property name="icon-name">row-copy-symbolic</property>
+                                          </object>
+                                        </child>
+                                      </object>
+                                    </child>
                                     <child>
-                                      <object class="GtkImage">
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">A nested row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">Another nested 
row</property>
                                         <property name="visible">True</property>
-                                        <property name="icon-name">row-copy-symbolic</property>
                                       </object>
                                     </child>
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">A nested row</property>
+                                  <object class="HdyExpanderRow">
+                                    <property name="title" translatable="yes">Expander row with a 
prefix</property>
                                     <property name="visible">True</property>
+                                    <child type="prefix">
+                                      <object class="GtkButton">
+                                        <property name="visible">True</property>
+                                        <property name="valign">center</property>
+                                        <style>
+                                          <class name="list-button"/>
+                                        </style>
+                                        <child>
+                                          <object class="GtkImage">
+                                            <property name="visible">True</property>
+                                            <property name="icon-name">row-shutdown-symbolic</property>
+                                          </object>
+                                        </child>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">A nested row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">Another nested 
row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="HdyActionRow">
-                                    <property name="title" translatable="yes">Another nested row</property>
+                                  <object class="HdyExpanderRow">
+                                    <property name="title" translatable="yes">Expander row with a prefix and 
icon</property>
                                     <property name="visible">True</property>
+                                    <property name="icon-name">row-forbidden-symbolic</property>
+                                    <child type="prefix">
+                                      <object class="GtkButton">
+                                        <property name="visible">True</property>
+                                        <property name="valign">center</property>
+                                        <style>
+                                          <class name="list-button"/>
+                                        </style>
+                                        <child>
+                                          <object class="GtkImage">
+                                            <property name="visible">True</property>
+                                            <property name="icon-name">row-shutdown-symbolic</property>
+                                          </object>
+                                        </child>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">A nested row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">Another nested 
row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="HdyExpanderRow" id="enable_expander_row">
+                                    <property name="show_enable_switch">True</property>
+                                    <property name="title" translatable="yes">Toggleable expander 
row</property>
+                                    <property name="visible">True</property>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">A nested row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">Another nested 
row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="HdyExpanderRow" id="action_switch_expander_row">
+                                    <property name="show_enable_switch">True</property>
+                                    <property name="title" translatable="yes">Toggleable expander row with 
an action</property>
+                                    <property name="visible">True</property>
+                                    <child type="action">
+                                      <object class="GtkButton">
+                                        <property name="visible">True</property>
+                                        <property name="valign">center</property>
+                                        <style>
+                                          <class name="list-button"/>
+                                        </style>
+                                        <child>
+                                          <object class="GtkImage">
+                                            <property name="visible">True</property>
+                                            <property name="icon-name">row-copy-symbolic</property>
+                                          </object>
+                                        </child>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">A nested row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="title" translatable="yes">Another nested 
row</property>
+                                        <property name="visible">True</property>
+                                      </object>
+                                    </child>
                                   </object>
                                 </child>
                               </object>
@@ -921,445 +789,445 @@
                           </object>
                         </child>
                       </object>
+                      <packing>
+                        <property name="name">lists</property>
+                        <property name="title" translatable="yes">Lists</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="name">lists</property>
-                    <property name="title" translatable="yes">Lists</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkOverlay">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child type="overlay">
-                      <object class="HdySearchBar" id="search_bar">
+                    <child>
+                      <object class="GtkOverlay">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="halign">fill</property>
-                        <property name="valign">start</property>
-                        <property name="hexpand">True</property>
-                        <property name="show-close-button">True</property>
-                        <child>
-                          <object class="HdyClamp">
+                        <child type="overlay">
+                          <object class="HdySearchBar" id="search_bar">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">start</property>
                             <property name="hexpand">True</property>
+                            <property name="show-close-button">True</property>
                             <child>
-                              <object class="GtkSearchEntry" id="search_entry">
+                              <object class="HdyClamp">
                                 <property name="visible">True</property>
                                 <property name="hexpand">True</property>
+                                <child>
+                                  <object class="GtkSearchEntry" id="search_entry">
+                                    <property name="visible">True</property>
+                                    <property name="hexpand">True</property>
+                                  </object>
+                                </child>
                               </object>
                             </child>
                           </object>
                         </child>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="HdyStatusPage">
-                        <property name="visible">True</property>
-                        <property name="icon-name">widget-search-symbolic</property>
-                        <property name="title" translatable="yes">Search bar</property>
-                        <property name="description" translatable="yes">A search bar that gives your search 
entry all the space it needs.
+                        <child>
+                          <object class="HdyStatusPage">
+                            <property name="visible">True</property>
+                            <property name="icon-name">widget-search-symbolic</property>
+                            <property name="title" translatable="yes">Search bar</property>
+                            <property name="description" translatable="yes">A search bar that gives your 
search entry all the space it needs.
 
-Try using it with a horizontally expanded clamp to make your search entry adaptive.</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="name">search-bar</property>
-                    <property name="title" translatable="yes">Search bar</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="HdyStatusPage">
-                    <property name="visible">True</property>
-                    <property name="icon-name">widget-view-switcher-symbolic</property>
-                    <property name="title" translatable="yes">View Switcher</property>
-                    <property name="description" translatable="yes">Widgets to switch the window's 
view.</property>
-                    <child>
-                      <object class="GtkButton">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">Run the demo</property>
-                        <property name="halign">center</property>
-                        <signal name="clicked" handler="view_switcher_demo_clicked_cb" swapped="no"/>
+    Try using it with a horizontally expanded clamp to make your search entry adaptive.</property>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="name">search-bar</property>
+                        <property name="title" translatable="yes">Search bar</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="name">view-switcher</property>
-                    <property name="title" translatable="yes">View Switcher</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="carousel_box">
-                    <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
                     <child>
-                      <object class="GtkBox" id="carousel_empty_box">
+                      <object class="HdyStatusPage">
                         <property name="visible">True</property>
+                        <property name="icon-name">widget-view-switcher-symbolic</property>
+                        <property name="title" translatable="yes">View Switcher</property>
+                        <property name="description" translatable="yes">Widgets to switch the window's 
view.</property>
+                        <child>
+                          <object class="GtkButton">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Run the demo</property>
+                            <property name="halign">center</property>
+                            <signal name="clicked" handler="view_switcher_demo_clicked_cb" swapped="no"/>
+                          </object>
+                        </child>
                       </object>
+                      <packing>
+                        <property name="name">view-switcher</property>
+                        <property name="title" translatable="yes">View Switcher</property>
+                      </packing>
                     </child>
                     <child>
-                      <object class="HdyCarousel" id="carousel">
+                      <object class="GtkBox" id="carousel_box">
                         <property name="visible">True</property>
-                        <property name="allow-scroll-wheel" bind-source="carousel_scroll_wheel" 
bind-property="active" bind-flags="sync-create|bidirectional"/>
-                        <property name="allow-long-swipes" bind-source="carousel_long_swipes" 
bind-property="active" bind-flags="sync-create|bidirectional"/>
+                        <property name="orientation">vertical</property>
                         <child>
-                          <object class="HdyStatusPage">
+                          <object class="GtkBox" id="carousel_empty_box">
                             <property name="visible">True</property>
-                            <property name="icon-name">widget-carousel-symbolic</property>
-                            <property name="title" translatable="yes">Carousel</property>
-                            <property name="description" translatable="yes">A widget for paginated 
scrolling.</property>
                           </object>
                         </child>
                         <child>
-                          <object class="HdyClamp">
+                          <object class="HdyCarousel" id="carousel">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="halign">fill</property>
-                            <property name="valign">fill</property>
-                            <property name="margin-bottom">32</property>
-                            <property name="margin-start">12</property>
-                            <property name="margin-end">12</property>
-                            <property name="expand">True</property>
-                            <property name="maximum-size">400</property>
-                            <property name="tightening-threshold">300</property>
+                            <property name="allow-scroll-wheel" bind-source="carousel_scroll_wheel" 
bind-property="active" bind-flags="sync-create|bidirectional"/>
+                            <property name="allow-long-swipes" bind-source="carousel_long_swipes" 
bind-property="active" bind-flags="sync-create|bidirectional"/>
+                            <child>
+                              <object class="HdyStatusPage">
+                                <property name="visible">True</property>
+                                <property name="icon-name">widget-carousel-symbolic</property>
+                                <property name="title" translatable="yes">Carousel</property>
+                                <property name="description" translatable="yes">A widget for paginated 
scrolling.</property>
+                              </object>
+                            </child>
                             <child>
-                              <object class="GtkListBox" id="carousel_listbox">
+                              <object class="HdyClamp">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="valign">center</property>
-                                <property name="selection-mode">none</property>
-                                <style>
-                                  <class name="content"/>
-                                </style>
-                                <child>
-                                  <object class="HdyComboRow" id="carousel_orientation_row">
-                                    <property name="title" translatable="yes">Orientation</property>
-                                    <property name="visible">True</property>
-                                    <signal name="notify::selected-index" 
handler="notify_carousel_orientation_cb" swapped="no"/>
-                                  </object>
-                                </child>
-                                <child>
-                                  <object class="HdyComboRow" id="carousel_indicators_row">
-                                    <property name="title" translatable="yes">Page Indicators</property>
-                                    <property name="visible">True</property>
-                                    <signal name="notify::selected-index" 
handler="notify_carousel_indicators_cb" swapped="no"/>
-                                  </object>
-                                </child>
+                                <property name="halign">fill</property>
+                                <property name="valign">fill</property>
+                                <property name="margin-bottom">32</property>
+                                <property name="margin-start">12</property>
+                                <property name="margin-end">12</property>
+                                <property name="expand">True</property>
+                                <property name="maximum-size">400</property>
+                                <property name="tightening-threshold">300</property>
                                 <child>
-                                  <object class="HdyActionRow">
+                                  <object class="GtkListBox" id="carousel_listbox">
                                     <property name="visible">True</property>
-                                    <property name="title" translatable="yes">Scroll wheel</property>
-                                    <property name="activatable_widget">carousel_scroll_wheel</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="valign">center</property>
+                                    <property name="selection-mode">none</property>
+                                    <style>
+                                      <class name="content"/>
+                                    </style>
                                     <child>
-                                      <object class="GtkSwitch" id="carousel_scroll_wheel">
+                                      <object class="HdyComboRow" id="carousel_orientation_row">
+                                        <property name="title" translatable="yes">Orientation</property>
                                         <property name="visible">True</property>
-                                        <property name="valign">center</property>
-                                        <property name="active">True</property>
+                                        <signal name="notify::selected-index" 
handler="notify_carousel_orientation_cb" swapped="no"/>
                                       </object>
                                     </child>
-                                  </object>
-                                </child>
-                                <child>
-                                  <object class="HdyActionRow">
-                                    <property name="visible">True</property>
-                                    <property name="title" translatable="yes">Long swipes</property>
-                                    <property name="activatable_widget">carousel_long_swipes</property>
                                     <child>
-                                      <object class="GtkSwitch" id="carousel_long_swipes">
+                                      <object class="HdyComboRow" id="carousel_indicators_row">
+                                        <property name="title" translatable="yes">Page Indicators</property>
                                         <property name="visible">True</property>
-                                        <property name="valign">center</property>
+                                        <signal name="notify::selected-index" 
handler="notify_carousel_indicators_cb" swapped="no"/>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="visible">True</property>
+                                        <property name="title" translatable="yes">Scroll wheel</property>
+                                        <property name="activatable_widget">carousel_scroll_wheel</property>
+                                        <child>
+                                          <object class="GtkSwitch" id="carousel_scroll_wheel">
+                                            <property name="visible">True</property>
+                                            <property name="valign">center</property>
+                                            <property name="active">True</property>
+                                          </object>
+                                        </child>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="HdyActionRow">
+                                        <property name="visible">True</property>
+                                        <property name="title" translatable="yes">Long swipes</property>
+                                        <property name="activatable_widget">carousel_long_swipes</property>
+                                        <child>
+                                          <object class="GtkSwitch" id="carousel_long_swipes">
+                                            <property name="visible">True</property>
+                                            <property name="valign">center</property>
+                                          </object>
+                                        </child>
                                       </object>
                                     </child>
                                   </object>
                                 </child>
                               </object>
                             </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="visible">True</property>
-                            <property name="orientation">vertical</property>
-                            <property name="can_focus">False</property>
-                            <property name="halign">center</property>
-                            <property name="valign">center</property>
-                            <property name="vexpand">True</property>
-                            <property name="hexpand">True</property>
-                            <property name="spacing">24</property>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Another page</property>
-                                <property name="justify">center</property>
-                                <property name="wrap">True</property>
-                                <property name="wrap-mode">word-char</property>
-                                <style>
-                                  <class name="title"/>
-                                  <class name="large-title"/>
-                                </style>
-                              </object>
-                            </child>
                             <child>
-                              <object class="GtkButton">
+                              <object class="GtkBox">
                                 <property name="visible">True</property>
+                                <property name="orientation">vertical</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Return to the first 
page</property>
-                                <property name="use-underline">True</property>
-                                <signal name="clicked" handler="carousel_return_clicked_cb" swapped="no"/>
-                                <style>
-                                  <class name="suggested-action"/>
-                                </style>
+                                <property name="halign">center</property>
+                                <property name="valign">center</property>
+                                <property name="vexpand">True</property>
+                                <property name="hexpand">True</property>
+                                <property name="spacing">24</property>
+                                <child>
+                                  <object class="GtkLabel">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">Another page</property>
+                                    <property name="justify">center</property>
+                                    <property name="wrap">True</property>
+                                    <property name="wrap-mode">word-char</property>
+                                    <style>
+                                      <class name="title"/>
+                                      <class name="large-title"/>
+                                    </style>
+                                  </object>
+                                </child>
+                                <child>
+                                  <object class="GtkButton">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">_Return to the first 
page</property>
+                                    <property name="use-underline">True</property>
+                                    <signal name="clicked" handler="carousel_return_clicked_cb" 
swapped="no"/>
+                                    <style>
+                                      <class name="suggested-action"/>
+                                    </style>
+                                  </object>
+                                </child>
                               </object>
                             </child>
                           </object>
                         </child>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkStack" id="carousel_indicators_stack">
-                        <property name="visible">True</property>
-                        <property name="homogeneous">False</property>
-                        <property name="margin">6</property>
                         <child>
-                          <object class="HdyCarouselIndicatorDots">
+                          <object class="GtkStack" id="carousel_indicators_stack">
                             <property name="visible">True</property>
-                            <property name="carousel">carousel</property>
-                            <property name="orientation" bind-source="carousel" bind-property="orientation" 
bind-flags="sync-create"/>
-                          </object>
-                          <packing>
-                            <property name="name">dots</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="HdyCarouselIndicatorLines">
-                            <property name="visible">True</property>
-                            <property name="carousel">carousel</property>
-                            <property name="orientation" bind-source="carousel" bind-property="orientation" 
bind-flags="sync-create"/>
-                          </object>
-                          <packing>
-                            <property name="name">lines</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="name">carousel</property>
-                    <property name="title" translatable="yes">Carousel</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkScrolledWindow">
-                    <property name="visible">True</property>
-                    <property name="hscrollbar-policy">never</property>
-                    <child>
-                      <object class="GtkBox">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                        <property name="can_focus">False</property>
-                        <property name="valign">start</property>
-                        <property name="expand">True</property>
-                        <style>
-                          <class name="avatar-page"/>
-                        </style>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="visible">True</property>
-                            <property name="orientation">vertical</property>
-                            <property name="can_focus">False</property>
-                            <property name="expand">True</property>
-                            <child>
-                              <object class="HdyAvatar" id="avatar">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="valign">center</property>
-                                <property name="halign">center</property>
-                                <property name="size" bind-source="avatar_size" bind-property="value" 
bind-flags="sync-create"></property>
-                                <property name="show-initials" bind-source="avatar_show_initials" 
bind-property="state" bind-flags="sync-create"/>
-                                <property name="text" bind-source="avatar_text" bind-property="text" 
bind-flags="sync-create"/>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Avatar</property>
-                                <property name="halign">center</property>
-                                <property name="xalign">0</property>
-                                <property name="wrap">True</property>
-                                <property name="wrap-mode">word-char</property>
-                                <property name="justify">center</property>
-                                <style>
-                                  <class name="title"/>
-                                  <class name="large-title"/>
-                                </style>
+                            <property name="homogeneous">False</property>
+                            <property name="margin">6</property>
+                            <child>
+                              <object class="HdyCarouselIndicatorDots">
+                                <property name="visible">True</property>
+                                <property name="carousel">carousel</property>
+                                <property name="orientation" bind-source="carousel" 
bind-property="orientation" bind-flags="sync-create"/>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
+                                <property name="name">dots</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel">
+                              <object class="HdyCarouselIndicatorLines">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">A user avatar with generated 
fallback.</property>
-                                <property name="justify">center</property>
-                                <property name="use_markup">true</property>
-                                <property name="wrap">True</property>
-                                <style>
-                                  <class name="body"/>
-                                  <class name="description"/>
-                                </style>
+                                <property name="carousel">carousel</property>
+                                <property name="orientation" bind-source="carousel" 
bind-property="orientation" bind-flags="sync-create"/>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
+                                <property name="name">lines</property>
                               </packing>
                             </child>
                           </object>
                         </child>
+                      </object>
+                      <packing>
+                        <property name="name">carousel</property>
+                        <property name="title" translatable="yes">Carousel</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow">
+                        <property name="visible">True</property>
+                        <property name="hscrollbar-policy">never</property>
                         <child>
-                          <object class="HdyClamp">
+                          <object class="GtkBox">
                             <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
                             <property name="can_focus">False</property>
-                            <property name="maximum-size">400</property>
-                            <property name="tightening-threshold">300</property>
+                            <property name="valign">start</property>
+                            <property name="expand">True</property>
+                            <style>
+                              <class name="avatar-page"/>
+                            </style>
                             <child>
                               <object class="GtkBox">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="valign">center</property>
-                                <property name="hexpand">True</property>
                                 <property name="orientation">vertical</property>
-                                <property name="spacing">12</property>
+                                <property name="can_focus">False</property>
+                                <property name="expand">True</property>
                                 <child>
-                                  <object class="GtkListBox">
+                                  <object class="HdyAvatar" id="avatar">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="expand">True</property>
-                                    <property name="selection-mode">none</property>
+                                    <property name="valign">center</property>
+                                    <property name="halign">center</property>
+                                    <property name="size" bind-source="avatar_size" bind-property="value" 
bind-flags="sync-create"></property>
+                                    <property name="show-initials" bind-source="avatar_show_initials" 
bind-property="state" bind-flags="sync-create"/>
+                                    <property name="text" bind-source="avatar_text" bind-property="text" 
bind-flags="sync-create"/>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">Avatar</property>
+                                    <property name="halign">center</property>
+                                    <property name="xalign">0</property>
+                                    <property name="wrap">True</property>
+                                    <property name="wrap-mode">word-char</property>
+                                    <property name="justify">center</property>
                                     <style>
-                                      <class name="content"/>
+                                      <class name="title"/>
+                                      <class name="large-title"/>
                                     </style>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" translatable="yes">A user avatar with generated 
fallback.</property>
+                                    <property name="justify">center</property>
+                                    <property name="use_markup">true</property>
+                                    <property name="wrap">True</property>
+                                    <style>
+                                      <class name="body"/>
+                                      <class name="description"/>
+                                    </style>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="HdyClamp">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="maximum-size">400</property>
+                                <property name="tightening-threshold">300</property>
+                                <child>
+                                  <object class="GtkBox">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="valign">center</property>
+                                    <property name="hexpand">True</property>
+                                    <property name="orientation">vertical</property>
+                                    <property name="spacing">12</property>
                                     <child>
-                                      <object class="HdyActionRow">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="title" translatable="yes">Text</property>
-                                        <child>
-                                          <object class="GtkEntry" id="avatar_text">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="valign">center</property>
-                                          </object>
-                                        </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="HdyActionRow">
+                                      <object class="GtkListBox">
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
-                                        <property name="title" translatable="yes">Show initials</property>
-                                        <property name="activatable_widget">avatar_show_initials</property>
+                                        <property name="expand">True</property>
+                                        <property name="selection-mode">none</property>
+                                        <style>
+                                          <class name="content"/>
+                                        </style>
                                         <child>
-                                          <object class="GtkSwitch" id="avatar_show_initials">
+                                          <object class="HdyActionRow">
                                             <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="valign">center</property>
-                                            <property name="state">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="title" translatable="yes">Text</property>
+                                            <child>
+                                              <object class="GtkEntry" id="avatar_text">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="valign">center</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="HdyActionRow">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="title" translatable="yes">File</property>
                                         <child>
-                                          <object class="GtkFileChooserButton" id="avatar_filechooser">
+                                          <object class="HdyActionRow">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="valign">center</property>
-                                            <property name="title" translatable="yes"/>
-                                            <signal name="file-set" swapped="yes" 
handler="avatar_file_set_cb"/>
-                                            <property name="filter">avatar_file_filter</property>
+                                            <property name="title" translatable="yes">Show 
initials</property>
+                                            <property 
name="activatable_widget">avatar_show_initials</property>
+                                            <child>
+                                              <object class="GtkSwitch" id="avatar_show_initials">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="valign">center</property>
+                                                <property name="state">True</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
                                         <child>
-                                          <object class="GtkButton">
+                                          <object class="HdyActionRow">
                                             <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="valign">center</property>
-                                            <signal name="clicked" swapped="yes" 
handler="avatar_file_remove_cb"/>
+                                            <property name="can_focus">False</property>
+                                            <property name="title" translatable="yes">File</property>
                                             <child>
-                                              <object class="GtkImage">
+                                              <object class="GtkFileChooserButton" id="avatar_filechooser">
                                                 <property name="visible">True</property>
                                                 <property name="can_focus">False</property>
-                                                <property name="icon_name">avatar-delete-symbolic</property>
-                                                <property name="icon_size">1</property>
+                                                <property name="valign">center</property>
+                                                <property name="title" translatable="yes"/>
+                                                <signal name="file-set" swapped="yes" 
handler="avatar_file_set_cb"/>
+                                                <property name="filter">avatar_file_filter</property>
+                                              </object>
+                                            </child>
+                                            <child>
+                                              <object class="GtkButton">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="valign">center</property>
+                                                <signal name="clicked" swapped="yes" 
handler="avatar_file_remove_cb"/>
+                                                <child>
+                                                  <object class="GtkImage">
+                                                    <property name="visible">True</property>
+                                                    <property name="can_focus">False</property>
+                                                    <property 
name="icon_name">avatar-delete-symbolic</property>
+                                                    <property name="icon_size">1</property>
+                                                  </object>
+                                                </child>
                                               </object>
                                             </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="HdyActionRow">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="title" translatable="yes">Size</property>
                                         <child>
-                                          <object class="GtkSpinButton" id="avatar_size">
+                                          <object class="HdyActionRow">
                                             <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="valign">center</property>
-                                            <property name="numeric">True</property>
-                                            <property name="adjustment">avatar_adjustment</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="title" translatable="yes">Size</property>
+                                            <child>
+                                              <object class="GtkSpinButton" id="avatar_size">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="valign">center</property>
+                                                <property name="numeric">True</property>
+                                                <property name="adjustment">avatar_adjustment</property>
+                                              </object>
+                                            </child>
                                           </object>
                                         </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="HdyActionRow">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
-                                        <property name="title" translatable="yes">Export to file</property>
                                         <child>
-                                          <object class="GtkButton" id="avatar_save_file">
+                                          <object class="HdyActionRow">
                                             <property name="visible">True</property>
-                                            <property name="valign">center</property>
-                                            <signal name="clicked" swapped="yes" 
handler="avatar_save_to_file_cb"/>
+                                            <property name="can_focus">False</property>
+                                            <property name="title" translatable="yes">Export to 
file</property>
                                             <child>
-                                              <object class="GtkImage">
+                                              <object class="GtkButton" id="avatar_save_file">
                                                 <property name="visible">True</property>
-                                                <property name="icon_name">avatar-save-symbolic</property>
-                                                <property name="icon_size">1</property>
+                                                <property name="valign">center</property>
+                                                <signal name="clicked" swapped="yes" 
handler="avatar_save_to_file_cb"/>
+                                                <child>
+                                                  <object class="GtkImage">
+                                                    <property name="visible">True</property>
+                                                    <property 
name="icon_name">avatar-save-symbolic</property>
+                                                    <property name="icon_size">1</property>
+                                                  </object>
+                                                </child>
                                               </object>
                                             </child>
                                           </object>
                                         </child>
                                       </object>
                                     </child>
-                                  </object>
-                                </child>
-                                <child>
-                                  <object class="GtkListBox" id="avatar_contacts">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="expand">True</property>
-                                    <property name="selection-mode">none</property>
-                                    <style>
-                                      <class name="content"/>
-                                    </style>
+                                    <child>
+                                      <object class="GtkListBox" id="avatar_contacts">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="expand">True</property>
+                                        <property name="selection-mode">none</property>
+                                        <style>
+                                          <class name="content"/>
+                                        </style>
+                                      </object>
+                                    </child>
                                   </object>
                                 </child>
                               </object>
@@ -1367,83 +1235,83 @@ Try using it with a horizontally expanded clamp to make your search entry adapti
                           </object>
                         </child>
                       </object>
+                      <packing>
+                        <property name="name">avatar</property>
+                        <property name="title" translatable="yes">Avatar</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="name">avatar</property>
-                    <property name="title" translatable="yes">Avatar</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="HdyStatusPage">
-                    <property name="visible">True</property>
-                    <property name="icon-name">widget-window-symbolic</property>
-                    <property name="title" translatable="yes">Window</property>
-                    <property name="description" translatable="yes">A freeform window.
-
-It allows to have headerbar in content area, incl. above content, and round corners on the bottom. This 
window is an example, try hiding the titlebar.</property>
                     <child>
-                      <object class="HdyClamp">
+                      <object class="HdyStatusPage">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">fill</property>
-                        <property name="valign">fill</property>
-                        <property name="expand">True</property>
-                        <property name="maximum-size">400</property>
-                        <property name="tightening-threshold">300</property>
+                        <property name="icon-name">widget-window-symbolic</property>
+                        <property name="title" translatable="yes">Window</property>
+                        <property name="description" translatable="yes">A freeform window.
+
+    It allows to have headerbar in content area, incl. above content, and round corners on the bottom. This 
window is an example, try hiding the titlebar.</property>
                         <child>
-                          <object class="GtkBox">
+                          <object class="HdyClamp">
                             <property name="visible">True</property>
-                            <property name="orientation">vertical</property>
                             <property name="can_focus">False</property>
-                            <property name="valign">start</property>
+                            <property name="halign">fill</property>
+                            <property name="valign">fill</property>
                             <property name="expand">True</property>
+                            <property name="maximum-size">400</property>
+                            <property name="tightening-threshold">300</property>
                             <child>
-                              <object class="GtkListBox">
+                              <object class="GtkBox">
                                 <property name="visible">True</property>
+                                <property name="orientation">vertical</property>
                                 <property name="can_focus">False</property>
+                                <property name="valign">start</property>
                                 <property name="expand">True</property>
-                                <property name="selection-mode">none</property>
-                                <style>
-                                  <class name="content"/>
-                                </style>
                                 <child>
-                                  <object class="HdyActionRow">
+                                  <object class="GtkListBox">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="title" translatable="yes">Show titlebar</property>
-                                    <property 
name="activatable_widget">window_header_revealer_switch</property>
+                                    <property name="expand">True</property>
+                                    <property name="selection-mode">none</property>
+                                    <style>
+                                      <class name="content"/>
+                                    </style>
                                     <child>
-                                      <object class="GtkSwitch" id="window_header_revealer_switch">
+                                      <object class="HdyActionRow">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="state">True</property>
-                                        <property name="valign">center</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="title" translatable="yes">Show titlebar</property>
+                                        <property 
name="activatable_widget">window_header_revealer_switch</property>
+                                        <child>
+                                          <object class="GtkSwitch" id="window_header_revealer_switch">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="state">True</property>
+                                            <property name="valign">center</property>
+                                          </object>
+                                        </child>
                                       </object>
                                     </child>
                                   </object>
                                 </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="HdyWindowHandle">
-                                <property name="visible">True</property>
-                                <property name="margin-top">12</property>
                                 <child>
-                                  <object class="GtkListBox">
+                                  <object class="HdyWindowHandle">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="expand">True</property>
-                                    <property name="selection-mode">none</property>
-                                    <style>
-                                      <class name="content"/>
-                                    </style>
+                                    <property name="margin-top">12</property>
                                     <child>
-                                      <object class="HdyActionRow">
+                                      <object class="GtkListBox">
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
-                                        <property name="title" translatable="yes">This row acts as a 
titlebar</property>
-                                        <property name="subtitle" translatable="yes">Try dragging or right 
clicking it.</property>
+                                        <property name="expand">True</property>
+                                        <property name="selection-mode">none</property>
+                                        <style>
+                                          <class name="content"/>
+                                        </style>
+                                        <child>
+                                          <object class="HdyActionRow">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="title" translatable="yes">This row acts as a 
titlebar</property>
+                                            <property name="subtitle" translatable="yes">Try dragging or 
right clicking it.</property>
+                                          </object>
+                                        </child>
                                       </object>
                                     </child>
                                   </object>
@@ -1453,59 +1321,148 @@ It allows to have headerbar in content area, incl. above content, and round corn
                           </object>
                         </child>
                       </object>
+                      <packing>
+                        <property name="name">window</property>
+                        <property name="title" translatable="yes">Window</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="HdyStatusPage">
+                        <property name="visible">True</property>
+                        <property name="icon-name">widget-flap-symbolic</property>
+                        <property name="title" translatable="yes">Flap</property>
+                        <property name="description" translatable="yes">A widget showing a flap next to or 
above the content.</property>
+                        <child>
+                          <object class="GtkButton">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Run the demo</property>
+                            <property name="halign">center</property>
+                            <signal name="clicked" handler="flap_demo_clicked_cb" swapped="no"/>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="name">flap</property>
+                        <property name="title" translatable="yes">Flap</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="HdyStatusPage">
+                        <property name="visible">True</property>
+                        <property name="icon-name">widget-tab-view-symbolic</property>
+                        <property name="title" translatable="yes">Tab View</property>
+                        <property name="description" translatable="yes">A modern tab widget.</property>
+                        <child>
+                          <object class="GtkButton">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Run the demo</property>
+                            <property name="halign">center</property>
+                            <signal name="clicked" handler="tab_view_demo_clicked_cb" swapped="no"/>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="name">tab-view</property>
+                        <property name="title" translatable="yes">Tab View</property>
+                      </packing>
                     </child>
                   </object>
-                  <packing>
-                    <property name="name">window</property>
-                    <property name="title" translatable="yes">Window</property>
-                  </packing>
                 </child>
+              </object>
+              <packing>
+                <property name="name">content</property>
+              </packing>
+            </child>
+          </object>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="HdyHeaderBar" id="deck_sub_header_bar">
+                <property name="visible">True</property>
+                <property name="show_close_button">True</property>
                 <child>
-                  <object class="HdyStatusPage">
+                  <object class="GtkButton" id="deck-sub-back">
+                    <property name="can_focus">False</property>
+                    <property name="receives_default">False</property>
+                    <property name="valign">center</property>
+                    <property name="use-underline">True</property>
                     <property name="visible">True</property>
-                    <property name="icon-name">widget-flap-symbolic</property>
-                    <property name="title" translatable="yes">Flap</property>
-                    <property name="description" translatable="yes">A widget showing a flap next to or above 
the content.</property>
+                    <signal name="clicked" handler="deck_back_clicked_cb"/>
+                    <style>
+                      <class name="image-button"/>
+                    </style>
+                    <child internal-child="accessible">
+                      <object class="AtkObject" id="a11y-deck-sub-back">
+                        <property name="accessible-name" translatable="yes">Back</property>
+                      </object>
+                    </child>
                     <child>
-                      <object class="GtkButton">
+                      <object class="GtkImage">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Run the demo</property>
-                        <property name="halign">center</property>
-                        <signal name="clicked" handler="flap_demo_clicked_cb" swapped="no"/>
+                        <property name="can_focus">False</property>
+                        <property name="icon_name">go-previous-symbolic</property>
+                        <property name="icon_size">1</property>
                       </object>
                     </child>
                   </object>
-                  <packing>
-                    <property name="name">flap</property>
-                    <property name="title" translatable="yes">Flap</property>
-                  </packing>
                 </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow">
+                <property name="visible">True</property>
+                <property name="hscrollbar-policy">never</property>
+                <property name="vexpand">True</property>
                 <child>
-                  <object class="HdyStatusPage">
+                  <object class="GtkBox">
+                    <property name="orientation">vertical</property>
+                    <property name="valign">center</property>
                     <property name="visible">True</property>
-                    <property name="icon-name">widget-tab-view-symbolic</property>
-                    <property name="title" translatable="yes">Tab View</property>
-                    <property name="description" translatable="yes">A modern tab widget.</property>
+                    <property name="margin">12</property>
+                    <property name="spacing">12</property>
                     <child>
-                      <object class="GtkButton">
+                      <object class="GtkLabel">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">Run the demo</property>
+                        <property name="can_focus">False</property>
                         <property name="halign">center</property>
-                        <signal name="clicked" handler="tab_view_demo_clicked_cb" swapped="no"/>
+                        <property name="label" translatable="yes">Go back</property>
+                        <property name="justify">center</property>
+                        <property name="wrap">True</property>
+                        <property name="wrap-mode">word-char</property>
+                        <style>
+                          <class name="title"/>
+                          <class name="large-title"/>
+                        </style>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImage">
+                        <property name="icon-name">gesture-touchscreen-swipe-back-symbolic</property>
+                        <property name="pixel-size">128</property>
+                        <property name="visible">True</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkImage">
+                        <property name="icon-name">gesture-touchpad-swipe-back-symbolic</property>
+                        <property name="pixel-size">128</property>
+                        <property name="visible">True</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
                       </object>
                     </child>
                   </object>
-                  <packing>
-                    <property name="name">tab-view</property>
-                    <property name="title" translatable="yes">Tab View</property>
-                  </packing>
                 </child>
               </object>
             </child>
           </object>
-          <packing>
-            <property name="name">content</property>
-          </packing>
         </child>
       </object>
     </child>
@@ -1528,12 +1485,6 @@ It allows to have headerbar in content area, incl. above content, and round corn
       <headerbar name="deck_sub_header_bar"/>
     </headerbars>
   </object>
-  <object class="HdySwipeGroup" id="deck_swipe_group">
-    <swipeables>
-      <swipeable name="header_deck"/>
-      <swipeable name="content_deck"/>
-    </swipeables>
-  </object>
   <object class="GtkAdjustment" id="clamp_maximum_size_adjustment">
     <property name="lower">0</property>
     <property name="upper">10000</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]