[gtk+] Add a testcase for stacked headerbars
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Add a testcase for stacked headerbars
- Date: Thu, 3 Nov 2016 12:33:08 +0000 (UTC)
commit 5c18bf79a1f79b88c26f2c806a3f1d6fbde7be48
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Nov 3 08:32:31 2016 -0400
Add a testcase for stacked headerbars
This currently has some theming issues.
This example is for Lapo to work those out.
tests/Makefile.am | 2 +
tests/teststackedheaders.c | 43 +++++++++++++++
tests/teststackedheaders.ui | 123 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 168 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ab1fe08..ab67fe4 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -152,6 +152,7 @@ noinst_PROGRAMS = $(TEST_PROGS) \
testrevealer2 \
testtitlebar \
testsplitheaders \
+ teststackedheaders \
testactionbar \
testwindowsize \
testpopover \
@@ -489,6 +490,7 @@ EXTRA_DIST += \
test.xpm \
gnome-textfile.png \
testsplitheaders.ui \
+ teststackedheaders.ui \
makefile.msc \
mydialog.ui \
mydialog2.ui \
diff --git a/tests/teststackedheaders.c b/tests/teststackedheaders.c
new file mode 100644
index 0000000..53470db
--- /dev/null
+++ b/tests/teststackedheaders.c
@@ -0,0 +1,43 @@
+#include <gtk/gtk.h>
+
+static GtkWidget *header_stack;
+static GtkWidget *page_stack;
+
+static void
+back_to_main (GtkButton *button)
+{
+ gtk_stack_set_visible_child_name (GTK_STACK (header_stack), "main");
+ gtk_stack_set_visible_child_name (GTK_STACK (page_stack), "page1");
+}
+
+static void
+go_to_secondary (GtkButton *button)
+{
+ gtk_stack_set_visible_child_name (GTK_STACK (header_stack), "secondary");
+ gtk_stack_set_visible_child_name (GTK_STACK (page_stack), "secondary");
+}
+
+int
+main (int argc, char *argv[])
+{
+ GtkBuilder *builder;
+ GtkWidget *win;
+
+ gtk_init (NULL, NULL);
+
+ builder = gtk_builder_new ();
+ gtk_builder_add_callback_symbol (builder, "back_to_main", G_CALLBACK (back_to_main));
+ gtk_builder_add_callback_symbol (builder, "go_to_secondary", G_CALLBACK (go_to_secondary));
+ gtk_builder_add_from_file (builder, "teststackedheaders.ui", NULL);
+ gtk_builder_connect_signals (builder, NULL);
+
+ win = (GtkWidget *)gtk_builder_get_object (builder, "window");
+ header_stack = (GtkWidget *)gtk_builder_get_object (builder, "header_stack");
+ page_stack = (GtkWidget *)gtk_builder_get_object (builder, "page_stack");
+
+ gtk_window_present (GTK_WINDOW (win));
+
+ gtk_main ();
+
+ return 0;
+}
diff --git a/tests/teststackedheaders.ui b/tests/teststackedheaders.ui
new file mode 100644
index 0000000..4168be3
--- /dev/null
+++ b/tests/teststackedheaders.ui
@@ -0,0 +1,123 @@
+<interface>
+ <object class="GtkWindow" id="window">
+ <property name="default-width">600</property>
+ <property name="default-height">400</property>
+ <property name="icon-name">preferences-desktop-font</property>
+ <child type="titlebar">
+ <object class="GtkStack" id="header_stack">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkHeaderBar">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="label">New</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="go_to_secondary"/>
+ </object>
+ <packing>
+ <property name="pack-type">start</property>
+ </packing>
+ </child>
+ <child type="title">
+ <object class="GtkStackSwitcher">
+ <property name="visible">True</property>
+ <property name="stack">page_stack</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="name">main</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHeaderBar">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="label"><</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="back_to_main"/>
+ </object>
+ <packing>
+ <property name="pack-type">start</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="name">secondary</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStack" id="page_stack">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar-policy">always</property>
+ <property name="vscrollbar-policy">always</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Page 1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="name">page1</property>
+ <property name="title">Page 1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar-policy">always</property>
+ <property name="vscrollbar-policy">always</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Page 2</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="name">page2</property>
+ <property name="title">Page 2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar-policy">always</property>
+ <property name="vscrollbar-policy">always</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Secondary</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="name">secondary</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]