[gtk+/wip/matthiasc/tab-strip: 6/10] Add a quick test for tab strips
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/tab-strip: 6/10] Add a quick test for tab strips
- Date: Sat, 21 May 2016 20:19:00 +0000 (UTC)
commit cb65a174a51a341b5b54bebdf6053fbed6ea06e6
Author: Matthias Clasen <mclasen redhat com>
Date: Fri May 20 22:11:20 2016 -0400
Add a quick test for tab strips
tests/Makefile.am | 1 +
tests/testtabstrip.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 74 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index aeb51a6..43d9b85 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -172,6 +172,7 @@ noinst_PROGRAMS = $(TEST_PROGS) \
gdkgears \
listmodel \
testpopup \
+ testtabstrip \
$(NULL)
if USE_X11
diff --git a/tests/testtabstrip.c b/tests/testtabstrip.c
new file mode 100644
index 0000000..f54a64a
--- /dev/null
+++ b/tests/testtabstrip.c
@@ -0,0 +1,73 @@
+#include <gtk/gtk.h>
+
+static void
+add_stack_child (GtkWidget *stack)
+{
+ static int count;
+ char *name;
+ char *title;
+ GtkWidget *sw, *tv;
+
+ count++;
+
+ name = g_strdup_printf ("tab%d", count);
+ title = g_strdup_printf ("Page %d", count);
+
+ sw = gtk_scrolled_window_new (NULL, NULL);
+ tv = gtk_text_view_new ();
+ gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)), title, -1);
+ g_object_set (tv, "expand", TRUE, NULL);
+ gtk_container_add (GTK_CONTAINER (sw), tv);
+ gtk_widget_show_all (sw);
+
+ gtk_stack_add_titled (GTK_STACK (stack), sw, name, title);
+
+ g_free (name);
+ g_free (title);
+}
+
+int
+main (int argc, char *argv[])
+{
+ GtkWidget *window;
+ GtkWidget *vbox;
+ GtkWidget *tabs;
+ GtkWidget *box;
+ GtkWidget *stack;
+ GtkWidget *button;
+
+ gtk_init (NULL, NULL);
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+
+ gtk_container_add (GTK_CONTAINER (window), vbox);
+
+ stack = gtk_stack_new ();
+ g_object_set (stack, "expand", TRUE, NULL);
+
+ tabs = gtk_tab_strip_new ();
+ gtk_tab_strip_set_closable (GTK_TAB_STRIP (tabs), TRUE);
+ gtk_tab_strip_set_stack (GTK_TAB_STRIP (tabs), GTK_STACK (stack));
+
+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_box_pack_start (GTK_BOX (box), tabs, TRUE, TRUE, 0);
+
+ button = gtk_button_new_from_icon_name ("tab-new-symbolic", GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
+ gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
+ g_signal_connect_swapped (button, "clicked",
+ G_CALLBACK (add_stack_child), stack);
+
+ gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), stack, TRUE, TRUE, 0);
+
+ add_stack_child (stack);
+
+ gtk_widget_show_all (window);
+
+ gtk_main ();
+
+ return 0;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]