[gtk+] Add a headerbar test
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Add a headerbar test
- Date: Mon, 18 Mar 2013 05:04:21 +0000 (UTC)
commit 4fd67b8c6237d647f463da71ed35faf0b6dff184
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Mar 18 01:03:39 2013 -0400
Add a headerbar test
Add a testcase for GtkHeaderBar that shows how it can be used
without client-side decorations.
tests/Makefile.am | 2 +
tests/testheaderbar.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 66 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 143f8e4..c416965 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -62,6 +62,7 @@ noinst_PROGRAMS = $(TEST_PROGS) \
testgiconpixbuf \
testgrid \
testgtk \
+ testheaderbar \
testheightforwidth \
testiconview \
testiconview-keynav \
@@ -189,6 +190,7 @@ testgeometry_DEPENDENCIES = $(TEST_DEPS)
testgiconpixbuf = $(TEST_DEPS)
testgrid_DEPENDENCIES = $(TEST_DEPS)
testgtk_DEPENDENCIES = $(TEST_DEPS)
+testheaderbar_DEPENDENCIES = $(TEST_DEPS)
testinput_DEPENDENCIES = $(TEST_DEPS)
testimage_DEPENDENCIES = $(TEST_DEPS)
testkineticscrolling_DEPENDENCIES = $(TEST_DEPS)
diff --git a/tests/testheaderbar.c b/tests/testheaderbar.c
new file mode 100644
index 0000000..3f6d099
--- /dev/null
+++ b/tests/testheaderbar.c
@@ -0,0 +1,64 @@
+#include <gtk/gtk.h>
+
+static const gchar css[] =
+ ".header { -GtkWidget-window-dragging: true; }";
+
+int
+main (int argc, char *argv[])
+{
+ GtkWidget *window;
+ GtkWidget *box;
+ GtkWidget *header;
+ GtkWidget *footer;
+ GtkWidget *button;
+ GtkWidget *content;
+ GtkCssProvider *provider;
+
+ gtk_init (NULL, NULL);
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+
+ gtk_widget_realize (window);
+ gdk_window_set_decorations (gtk_widget_get_window (window),
+ GDK_DECOR_BORDER);
+
+ header = gtk_header_bar_new ();
+ gtk_style_context_add_class (gtk_widget_get_style_context (header),
+ "header");
+ provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (provider, css, -1, NULL);
+ gtk_style_context_add_provider_for_screen (gtk_widget_get_screen (window),
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_USER);
+
+ gtk_header_bar_set_title (GTK_HEADER_BAR (header), "Example header");
+
+ button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
+ g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
+
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button);
+
+ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+
+ gtk_container_add (GTK_CONTAINER (window), box);
+
+ gtk_box_pack_start (GTK_BOX (box), header, FALSE, FALSE, 0);
+
+ footer = gtk_header_bar_new ();
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (footer), gtk_button_new_with_label ("Start"));
+ gtk_header_bar_set_custom_title (GTK_HEADER_BAR (footer), gtk_check_button_new_with_label ("Middle"));
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (footer), gtk_button_new_with_label ("End"));
+ gtk_box_pack_end (GTK_BOX (box), footer, FALSE, FALSE, 0);
+
+ content = gtk_image_new_from_icon_name ("start-here-symbolic", GTK_ICON_SIZE_DIALOG);
+ gtk_image_set_pixel_size (GTK_IMAGE (content), 512);
+
+ gtk_box_pack_start (GTK_BOX (box), content, FALSE, TRUE, 0);
+
+
+ gtk_widget_show_all (window);
+
+ gtk_main ();
+
+ return 0;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]