diff --git a/tests/meson.build b/tests/meson.build index 59d48e3f54..bf1a7b5860 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -108,7 +108,6 @@ gtk_tests = [ ['teststack'], ['testrevealer'], ['testrevealer2'], - ['testtitlebar'], ['testtreelistmodel'], ['testsplitheaders'], ['teststackedheaders'], diff --git a/tests/testtitlebar.c b/tests/testtitlebar.c deleted file mode 100644 index 640882b800..0000000000 --- a/tests/testtitlebar.c +++ /dev/null @@ -1,200 +0,0 @@ -#include - -static void -on_text_changed (GtkEntry *entry, - GParamSpec *pspec, - GtkHeaderBar *bar) -{ - const gchar *layout; - - layout = gtk_editable_get_text (GTK_EDITABLE (entry)); - - gtk_header_bar_set_decoration_layout (bar, layout); -} - -static void -create_widgets (GtkHeaderBar *bar, - GtkPackType pack_type, - gint n) -{ - GList *children, *l; - GtkWidget *child; - gint i; - gchar *label; - - children = gtk_container_get_children (GTK_CONTAINER (bar)); - for (l = children; l; l = l->next) - { - GtkPackType type; - - child = l->data; - gtk_container_child_get (GTK_CONTAINER (bar), child, "pack-type", &type, NULL); - if (type == pack_type) - gtk_container_remove (GTK_CONTAINER (bar), child); - } - g_list_free (children); - - for (i = 0; i < n; i++) - { - label = g_strdup_printf ("%d", i); - child = gtk_button_new_with_label (label); - g_free (label); - - gtk_widget_show (child); - if (pack_type == GTK_PACK_START) - gtk_header_bar_pack_start (bar, child); - else - gtk_header_bar_pack_end (bar, child); - } -} - -static void -change_start (GtkSpinButton *button, - GParamSpec *pspec, - GtkHeaderBar *bar) -{ - create_widgets (bar, - GTK_PACK_START, - gtk_spin_button_get_value_as_int (button)); -} - -static void -change_end (GtkSpinButton *button, - GParamSpec *pspec, - GtkHeaderBar *bar) -{ - create_widgets (bar, - GTK_PACK_END, - gtk_spin_button_get_value_as_int (button)); -} - -static void -activate (GApplication *gapp) -{ - GtkApplication *app = GTK_APPLICATION (gapp); - GtkWidget *window; - GtkWidget *header; - GtkWidget *grid; - GtkWidget *label; - GtkWidget *entry; - GtkWidget *check; - GtkWidget *spin; - GtkBuilder *builder; - GMenuModel *menu; - gchar *layout; - - g_action_map_add_action (G_ACTION_MAP (gapp), G_ACTION (g_simple_action_new ("test", NULL))); - builder = gtk_builder_new (); - gtk_builder_add_from_string (builder, - "" - " " - "
" - " " - " Test item" - " app.test" - " " - "
" - "
" - "
", -1, NULL); - window = gtk_application_window_new (app); - gtk_window_set_icon_name (GTK_WINDOW (window), "preferences-desktop-font"); - - menu = (GMenuModel*)gtk_builder_get_object (builder, "app-menu"); - gtk_application_add_window (app, GTK_WINDOW (window)); - gtk_application_set_app_menu (app, menu); - - header = gtk_header_bar_new (); - gtk_window_set_titlebar (GTK_WINDOW (window), header); - - 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 (header, "title", - entry, "text", - G_BINDING_BIDIRECTIONAL|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 (header, "subtitle", - entry, "text", - G_BINDING_BIDIRECTIONAL|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 ("Layout"); - gtk_widget_set_halign (label, GTK_ALIGN_END); - entry = gtk_entry_new (); - - g_object_get (gtk_widget_get_settings (window), "gtk-decoration-layout", &layout, NULL); - gtk_editable_set_text (GTK_EDITABLE (entry), layout); - g_free (layout); - - g_signal_connect (entry, "notify::text", - G_CALLBACK (on_text_changed), header); - gtk_grid_attach (GTK_GRID (grid), label, 0, 2, 1, 1); - gtk_grid_attach (GTK_GRID (grid), entry, 1, 2, 1, 1); - - label = gtk_label_new ("Decorations"); - gtk_widget_set_halign (label, GTK_ALIGN_END); - check = gtk_check_button_new (); - g_object_bind_property (header, "show-title-buttons", - check, "active", - G_BINDING_BIDIRECTIONAL|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); - - label = gtk_label_new ("Has Subtitle"); - gtk_widget_set_halign (label, GTK_ALIGN_END); - check = gtk_check_button_new (); - g_object_bind_property (header, "has-subtitle", - check, "active", - G_BINDING_BIDIRECTIONAL|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 ("Shell Shows Menu"); - gtk_widget_set_halign (label, GTK_ALIGN_END); - check = gtk_check_button_new (); - g_object_bind_property (gtk_settings_get_default (), "gtk-shell-shows-app-menu", - check, "active", - G_BINDING_BIDIRECTIONAL|G_BINDING_SYNC_CREATE); - gtk_grid_attach (GTK_GRID (grid), label, 2, 2, 1, 1); - gtk_grid_attach (GTK_GRID (grid), check, 3, 2, 1, 1); - - label = gtk_label_new ("Custom"); - gtk_widget_set_halign (label, GTK_ALIGN_END); - spin = gtk_spin_button_new_with_range (0, 10, 1); - g_signal_connect (spin, "notify::value", - G_CALLBACK (change_start), header); - gtk_grid_attach (GTK_GRID (grid), label, 0, 3, 1, 1); - gtk_grid_attach (GTK_GRID (grid), spin, 1, 3, 1, 1); - spin = gtk_spin_button_new_with_range (0, 10, 1); - g_signal_connect (spin, "notify::value", - G_CALLBACK (change_end), header); - gtk_grid_attach (GTK_GRID (grid), spin, 2, 3, 2, 1); - - gtk_container_add (GTK_CONTAINER (window), grid); - gtk_widget_show (window); -} - -int -main (int argc, char *argv[]) -{ - GtkApplication *app; - - app = gtk_application_new ("org.gtk.Test.titlebar", 0); - g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); - - return g_application_run (G_APPLICATION (app), argc, argv); -}