diff options
author | Matthias Clasen <mclasen@redhat.com> | 2013-12-12 16:55:59 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2013-12-12 16:56:41 -0500 |
commit | 7ab7a262c1a7c52cdfabf1c27c6f90e3ee1943b2 (patch) | |
tree | 2131ead461650266309d0c9c0363a12d46ed9623 /tests/testtitlebar.c | |
parent | 08202cb045c4320f3d3a1de62430de93bb89daf4 (diff) | |
download | gtk+-7ab7a262c1a7c52cdfabf1c27c6f90e3ee1943b2.tar.gz |
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.
Diffstat (limited to 'tests/testtitlebar.c')
-rw-r--r-- | tests/testtitlebar.c | 82 |
1 files changed, 49 insertions, 33 deletions
diff --git a/tests/testtitlebar.c b/tests/testtitlebar.c index f6977c8b19..3aa030965b 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 (); |