[libadwaita/wip/exalm/browsing-view: 9/18] preferences-window: Port to adaptive states
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libadwaita/wip/exalm/browsing-view: 9/18] preferences-window: Port to adaptive states
- Date: Fri, 14 Oct 2022 20:14:35 +0000 (UTC)
commit 95d580e1d547830f070a0edddf858416dd9ea1a5
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Tue Oct 4 14:39:24 2022 +0400
preferences-window: Port to adaptive states
src/adw-preferences-window.c | 14 +++++---------
src/adw-preferences-window.ui | 28 ++++++++++++++++++++++++----
2 files changed, 29 insertions(+), 13 deletions(-)
---
diff --git a/src/adw-preferences-window.c b/src/adw-preferences-window.c
index f192a5e0..d03cbaf2 100644
--- a/src/adw-preferences-window.c
+++ b/src/adw-preferences-window.c
@@ -16,9 +16,7 @@
#include "adw-preferences-group-private.h"
#include "adw-preferences-page-private.h"
#include "adw-toast-overlay.h"
-#include "adw-view-switcher.h"
-#include "adw-view-switcher-bar.h"
-#include "adw-view-switcher-title.h"
+#include "adw-view-stack.h"
/**
* AdwPreferencesWindow:
@@ -53,8 +51,7 @@ typedef struct
GtkListBox *search_results;
GtkStack *search_stack;
GtkStack *title_stack;
- AdwViewSwitcherBar *view_switcher_bar;
- AdwViewSwitcherTitle *view_switcher_title;
+ GtkWidget *view_switcher_stack;
gboolean search_enabled;
gboolean can_navigate_back;
@@ -363,7 +360,7 @@ title_stack_notify_transition_running_cb (AdwPreferencesWindow *self)
AdwPreferencesWindowPrivate *priv = adw_preferences_window_get_instance_private (self);
if (gtk_stack_get_transition_running (priv->title_stack) ||
- gtk_stack_get_visible_child (priv->title_stack) != GTK_WIDGET (priv->view_switcher_title))
+ gtk_stack_get_visible_child (priv->title_stack) != priv->view_switcher_stack)
return;
gtk_editable_set_text (GTK_EDITABLE (priv->search_entry), "");
@@ -375,7 +372,7 @@ title_stack_notify_visible_child_cb (AdwPreferencesWindow *self)
AdwPreferencesWindowPrivate *priv = adw_preferences_window_get_instance_private (self);
if (adw_get_enable_animations (GTK_WIDGET (priv->title_stack)) ||
- gtk_stack_get_visible_child (priv->title_stack) != GTK_WIDGET (priv->view_switcher_title))
+ gtk_stack_get_visible_child (priv->title_stack) != priv->view_switcher_stack)
return;
gtk_editable_set_text (GTK_EDITABLE (priv->search_entry), "");
@@ -630,8 +627,7 @@ adw_preferences_window_class_init (AdwPreferencesWindowClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, AdwPreferencesWindow, search_results);
gtk_widget_class_bind_template_child_private (widget_class, AdwPreferencesWindow, search_stack);
gtk_widget_class_bind_template_child_private (widget_class, AdwPreferencesWindow, title_stack);
- gtk_widget_class_bind_template_child_private (widget_class, AdwPreferencesWindow, view_switcher_bar);
- gtk_widget_class_bind_template_child_private (widget_class, AdwPreferencesWindow, view_switcher_title);
+ gtk_widget_class_bind_template_child_private (widget_class, AdwPreferencesWindow, view_switcher_stack);
gtk_widget_class_bind_template_callback (widget_class, subpages_leaflet_child_transition_running_cb);
gtk_widget_class_bind_template_callback (widget_class, subpages_leaflet_visible_child_cb);
gtk_widget_class_bind_template_callback (widget_class, title_stack_notify_transition_running_cb);
diff --git a/src/adw-preferences-window.ui b/src/adw-preferences-window.ui
index 7f7bd661..1a3f3a22 100644
--- a/src/adw-preferences-window.ui
+++ b/src/adw-preferences-window.ui
@@ -8,6 +8,8 @@
<property name="title" translatable="yes">Preferences</property>
<property name="default-width">640</property>
<property name="default-height">576</property>
+ <property name="width-request">360</property>
+ <property name="height-request">150</property>
<style>
<class name="preferences"/>
</style>
@@ -36,9 +38,19 @@
<object class="GtkStackPage">
<property name="name">pages</property>
<property name="child">
- <object class="AdwViewSwitcherTitle" id="view_switcher_title">
- <property name="stack">pages_stack</property>
- <property name="title" bind-source="AdwPreferencesWindow"
bind-property="title" bind-flags="sync-create"/>
+ <object class="GtkStack" id="view_switcher_stack">
+ <child>
+ <object class="AdwViewSwitcher" id="view_switcher">
+ <property name="stack">pages_stack</property>
+ <property name="policy">wide</property>
+ <property name="halign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwWindowTitle" id="title">
+ <property name="title" bind-source="AdwPreferencesWindow"
bind-property="title" bind-flags="sync-create"/>
+ </object>
+ </child>
</object>
</property>
</object>
@@ -93,7 +105,6 @@
<child>
<object class="AdwViewSwitcherBar" id="view_switcher_bar">
<property name="stack">pages_stack</property>
- <property name="reveal" bind-source="view_switcher_title"
bind-property="title-visible" bind-flags="sync-create"/>
</object>
</child>
</object>
@@ -154,5 +165,14 @@
</property>
</object>
</property>
+ <child>
+ <object class="AdwAdaptiveState">
+ <conditions>
+ <condition type="max-width">600</condition>
+ </conditions>
+ <setter object="view_switcher_stack" property="visible-child">title</setter>
+ <setter object="view_switcher_bar" property="reveal">True</setter>
+ </object>
+ </child>
</template>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]