[libadwaita/wip/exalm/inspector: 4/7] demo: Handle system-supports-color-schemes changes in runtime
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libadwaita/wip/exalm/inspector: 4/7] demo: Handle system-supports-color-schemes changes in runtime
- Date: Sun, 26 Sep 2021 21:58:25 +0000 (UTC)
commit fbc8166c21cb3f24fedca2901212e0d5f4b10b74
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Mon Sep 27 02:54:44 2021 +0500
demo: Handle system-supports-color-schemes changes in runtime
We just need to show/hide the button dynamically and not only on startup.
examples/adw-demo-window.c | 15 ++++++++-------
examples/adw-demo-window.ui | 9 +++++++++
2 files changed, 17 insertions(+), 7 deletions(-)
---
diff --git a/examples/adw-demo-window.c b/examples/adw-demo-window.c
index 05e9a3d5..cf85648e 100644
--- a/examples/adw-demo-window.c
+++ b/examples/adw-demo-window.c
@@ -11,7 +11,6 @@ struct _AdwDemoWindow
AdwLeaflet *content_box;
GtkBox *right_box;
- GtkWidget *color_scheme_button;
GtkStackSidebar *sidebar;
GtkStack *stack;
AdwComboRow *leaflet_transition_row;
@@ -31,6 +30,13 @@ struct _AdwDemoWindow
G_DEFINE_TYPE (AdwDemoWindow, adw_demo_window, ADW_TYPE_APPLICATION_WINDOW)
+static gboolean
+get_show_color_scheme_button (gpointer user_data,
+ gboolean system_supports_color_schemes)
+{
+ return !system_supports_color_schemes;
+}
+
static char *
get_color_scheme_icon_name (gpointer user_data,
gboolean dark)
@@ -389,7 +395,6 @@ adw_demo_window_class_init (AdwDemoWindowClass *klass)
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/Adwaita/Demo/ui/adw-demo-window.ui");
gtk_widget_class_bind_template_child (widget_class, AdwDemoWindow, content_box);
gtk_widget_class_bind_template_child (widget_class, AdwDemoWindow, right_box);
- gtk_widget_class_bind_template_child (widget_class, AdwDemoWindow, color_scheme_button);
gtk_widget_class_bind_template_child (widget_class, AdwDemoWindow, sidebar);
gtk_widget_class_bind_template_child (widget_class, AdwDemoWindow, stack);
gtk_widget_class_bind_template_child (widget_class, AdwDemoWindow, leaflet_transition_row);
@@ -410,6 +415,7 @@ adw_demo_window_class_init (AdwDemoWindowClass *klass)
gtk_widget_class_bind_template_callback (widget_class, leaflet_transition_name);
gtk_widget_class_bind_template_callback (widget_class, notify_leaflet_transition_cb);
gtk_widget_class_bind_template_callback (widget_class, leaflet_go_next_row_activated_cb);
+ gtk_widget_class_bind_template_callback (widget_class, get_show_color_scheme_button);
gtk_widget_class_bind_template_callback (widget_class, get_color_scheme_icon_name);
gtk_widget_class_bind_template_callback (widget_class, color_scheme_button_clicked_cb);
gtk_widget_class_bind_template_callback (widget_class, view_switcher_demo_clicked_cb);
@@ -452,13 +458,8 @@ avatar_page_init (AdwDemoWindow *self)
static void
adw_demo_window_init (AdwDemoWindow *self)
{
- AdwStyleManager *manager = adw_style_manager_get_default ();
-
gtk_widget_init_template (GTK_WIDGET (self));
- gtk_widget_set_visible (self->color_scheme_button,
- !adw_style_manager_get_system_supports_color_schemes (manager));
-
avatar_page_init (self);
adw_leaflet_set_visible_child (self->content_box, GTK_WIDGET (self->right_box));
diff --git a/examples/adw-demo-window.ui b/examples/adw-demo-window.ui
index 5c594863..019d07e2 100644
--- a/examples/adw-demo-window.ui
+++ b/examples/adw-demo-window.ui
@@ -45,6 +45,15 @@
<property name="show-end-title-buttons" bind-source="content_box" bind-property="folded"
bind-flags="sync-create"/>
<child type="start">
<object class="GtkButton" id="color_scheme_button">
+ <binding name="visible">
+ <closure type="gboolean" function="get_show_color_scheme_button">
+ <lookup name="system-supports-color-schemes" type="AdwStyleManager">
+ <lookup name="style-manager" type="AdwApplication">
+ <lookup name="application">AdwDemoWindow</lookup>
+ </lookup>
+ </lookup>
+ </closure>
+ </binding>
<binding name="icon-name">
<closure type="gchararray" function="get_color_scheme_icon_name">
<lookup name="dark" type="AdwStyleManager">
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]