[gtk+] Make testtitlebar more testy
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Make testtitlebar more testy
- Date: Thu, 12 Dec 2013 21:57:11 +0000 (UTC)
commit 7ab7a262c1a7c52cdfabf1c27c6f90e3ee1943b2
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Dec 12 16:55:59 2013 -0500
Make testtitlebar more testy
Now that the nice titlebar example is in gtk3-demo, we can
use testtitlebar as an actual testbed for headerbar stuff.
This immediately reveals size allocation issues when titlebar
widgets change size.
tests/testtitlebar.c | 82 ++++++++++++++++++++++++++++++--------------------
1 files changed, 49 insertions(+), 33 deletions(-)
---
diff --git a/tests/testtitlebar.c b/tests/testtitlebar.c
index f6977c8..3aa0309 100644
--- a/tests/testtitlebar.c
+++ b/tests/testtitlebar.c
@@ -5,47 +5,63 @@ main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *header;
- GtkWidget *button;
- GtkWidget *box;
- GtkWidget *image;
- GIcon *icon;
+ GtkWidget *grid;
+ GtkWidget *label;
+ GtkWidget *entry;
+ GtkWidget *check;
gtk_init (NULL, NULL);
- if (g_getenv ("DARK"))
- g_object_set (gtk_settings_get_default (), "gtk-application-prefer-dark-theme", TRUE, NULL);
-
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
header = gtk_header_bar_new ();
- gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE);
- gtk_style_context_add_class (gtk_widget_get_style_context (header), "titlebar");
-
- gtk_header_bar_set_title (GTK_HEADER_BAR (header), "Welcome to Facebook - Log in, sign up or learn more");
- gtk_header_bar_set_has_subtitle (GTK_HEADER_BAR (header), FALSE);
-
- button = gtk_button_new ();
- icon = g_themed_icon_new ("mail-send-receive-symbolic");
- image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_BUTTON);
- g_object_unref (icon);
- gtk_container_add (GTK_CONTAINER (button), image);
- gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button);
-
- box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_style_context_add_class (gtk_widget_get_style_context (box), "linked");
- button = gtk_button_new ();
- gtk_container_add (GTK_CONTAINER (button), gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_NONE));
- gtk_container_add (GTK_CONTAINER (box), button);
- button = gtk_button_new ();
- gtk_container_add (GTK_CONTAINER (button), gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE));
- gtk_container_add (GTK_CONTAINER (box), button);
-
- gtk_header_bar_pack_start (GTK_HEADER_BAR (header), box);
-
gtk_window_set_titlebar (GTK_WINDOW (window), header);
- gtk_container_add (GTK_CONTAINER (window), gtk_text_view_new ());
+ grid = gtk_grid_new ();
+ g_object_set (grid,
+ "halign", GTK_ALIGN_CENTER,
+ "margin", 20,
+ "row-spacing", 12,
+ "column-spacing", 12,
+ NULL);
+
+ label = gtk_label_new ("Title");
+ gtk_widget_set_halign (label, GTK_ALIGN_END);
+ entry = gtk_entry_new ();
+ g_object_bind_property (entry, "text",
+ header, "title",
+ G_BINDING_SYNC_CREATE);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);
+ gtk_grid_attach (GTK_GRID (grid), entry, 1, 0, 1, 1);
+
+ label = gtk_label_new ("Subtitle");
+ gtk_widget_set_halign (label, GTK_ALIGN_END);
+ entry = gtk_entry_new ();
+ g_object_bind_property (entry, "text",
+ header, "subtitle",
+ G_BINDING_SYNC_CREATE);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1);
+ gtk_grid_attach (GTK_GRID (grid), entry, 1, 1, 1, 1);
+
+ label = gtk_label_new ("Has Subtitle");
+ gtk_widget_set_halign (label, GTK_ALIGN_END);
+ check = gtk_check_button_new ();
+ g_object_bind_property (check, "active",
+ header, "has-subtitle",
+ G_BINDING_SYNC_CREATE);
+ gtk_grid_attach (GTK_GRID (grid), label, 2, 1, 1, 1);
+ gtk_grid_attach (GTK_GRID (grid), check, 3, 1, 1, 1);
+
+ label = gtk_label_new ("Close Button");
+ gtk_widget_set_halign (label, GTK_ALIGN_END);
+ check = gtk_check_button_new ();
+ g_object_bind_property (check, "active",
+ header, "show-close-button",
+ G_BINDING_SYNC_CREATE);
+ gtk_grid_attach (GTK_GRID (grid), label, 2, 0, 1, 1);
+ gtk_grid_attach (GTK_GRID (grid), check, 3, 0, 1, 1);
+
+ gtk_container_add (GTK_CONTAINER (window), grid);
gtk_widget_show_all (window);
gtk_main ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]