diff --git a/doc/handy-docs.xml b/doc/handy-docs.xml
index e474d6054b869244fbf9a0950651ddb46a7ee011..6ae43ed3e5c76d0c55bebfcae9fa33a07a5be0da 100644
--- a/doc/handy-docs.xml
+++ b/doc/handy-docs.xml
@@ -41,6 +41,7 @@
+
diff --git a/examples/example-window.c b/examples/example-window.c
index 004f18acc68329256a0d956322bed75c60d1e0be..0b146315cdadedd89772828f963be774f6558995 100644
--- a/examples/example-window.c
+++ b/examples/example-window.c
@@ -6,8 +6,8 @@ struct _ExampleWindow
{
GtkApplicationWindow parent_instance;
+ HdyLeaflet *header_box;
HdyLeaflet *content_box;
- GtkHeaderBar *header_bar;
GtkButton *back;
GtkStackSidebar *sidebar;
GtkStack *stack;
@@ -15,6 +15,7 @@ struct _ExampleWindow
HdyDialer *dialer;
GtkLabel *display;
GtkWidget *arrows;
+ HdyHeaderGroup *header_group;
GtkAdjustment *adj_arrows_count;
GtkAdjustment *adj_arrows_duration;
};
@@ -41,10 +42,20 @@ example_window_key_pressed_cb (GtkWidget *sender,
static void
update (ExampleWindow *self)
{
- HdyFold fold = hdy_leaflet_get_fold (self->content_box);
+ GtkWidget *header_child = hdy_leaflet_get_visible_child (self->header_box);
+ HdyFold fold = hdy_leaflet_get_fold (self->header_box);
- gtk_header_bar_set_show_close_button (self->header_bar, fold == HDY_FOLD_FOLDED);
- gtk_widget_set_visible (GTK_WIDGET (self->back), fold == HDY_FOLD_FOLDED);
+ g_assert (header_child == NULL || GTK_IS_HEADER_BAR (header_child));
+
+ hdy_header_group_set_focus (self->header_group, fold == HDY_FOLD_FOLDED ? header_child : NULL);
+}
+
+static void
+example_window_notify_header_visible_child_cb (GObject *sender,
+ GParamSpec *pspec,
+ ExampleWindow *self)
+{
+ update (self);
}
static void
@@ -236,8 +247,8 @@ example_window_class_init (ExampleWindowClass *klass)
object_class->constructed = example_window_constructed;
gtk_widget_class_set_template_from_resource (widget_class, "/sm/puri/handy/example/ui/example-window.ui");
+ gtk_widget_class_bind_template_child (widget_class, ExampleWindow, header_box);
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, content_box);
- gtk_widget_class_bind_template_child (widget_class, ExampleWindow, header_bar);
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, back);
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, sidebar);
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, stack);
@@ -245,9 +256,11 @@ example_window_class_init (ExampleWindowClass *klass)
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, dialer);
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, display);
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, arrows);
+ gtk_widget_class_bind_template_child (widget_class, ExampleWindow, header_group);
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, adj_arrows_count);
gtk_widget_class_bind_template_child (widget_class, ExampleWindow, adj_arrows_duration);
gtk_widget_class_bind_template_callback_full (widget_class, "key_pressed_cb", G_CALLBACK(example_window_key_pressed_cb));
+ gtk_widget_class_bind_template_callback_full (widget_class, "notify_header_visible_child_cb", G_CALLBACK(example_window_notify_header_visible_child_cb));
gtk_widget_class_bind_template_callback_full (widget_class, "notify_fold_cb", G_CALLBACK(example_window_notify_fold_cb));
gtk_widget_class_bind_template_callback_full (widget_class, "notify_visible_child_cb", G_CALLBACK(example_window_notify_visible_child_cb));
gtk_widget_class_bind_template_callback_full (widget_class, "back_clicked_cb", G_CALLBACK(example_window_back_clicked_cb));
@@ -268,6 +281,4 @@ example_window_init (ExampleWindow *self)
gtk_widget_init_template (GTK_WIDGET (self));
hdy_leaflet_set_visible_child (self->content_box, GTK_WIDGET (self->stack));
-
- update (self);
}
diff --git a/examples/example-window.ui b/examples/example-window.ui
index d1d9e49f8b370483b98477b0552100367b6dcd0a..444a62fcfd9c09ad0dc990a553787878f1537b1c 100644
--- a/examples/example-window.ui
+++ b/examples/example-window.ui
@@ -33,11 +33,14 @@
slide
slide
+
+
sidebar
@@ -64,6 +67,7 @@
False
center
True
+