[gtk+] Make testtitlebar more testy



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]