From bfe6f06b5a4e3e3fde2e97eff6999ac4c3d93173 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 2 Apr 2024 12:41:32 -0400 Subject: [PATCH] main: a grid of buttons Signed-off-by: Vincent Batts --- main.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/main.c b/main.c index f478af6..0c92c73 100644 --- a/main.c +++ b/main.c @@ -7,30 +7,40 @@ print_hello (GtkWidget *widget, g_print("Hello World\n"); } +static void +print_quiting (GtkWidget *widget, + gpointer data) +{ + g_print("Quiting...\n"); +} + static void activate (GtkApplication* app, gpointer user_data) { GtkWidget *window; GtkWidget *button; - GtkWidget *box; + GtkWidget *grid; window = gtk_application_window_new (app); gtk_window_set_title (GTK_WINDOW (window), "Window"); - gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); - box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_widget_set_halign (box, GTK_ALIGN_CENTER); - gtk_widget_set_valign (box, GTK_ALIGN_CENTER); + grid = gtk_grid_new (); - gtk_window_set_child (GTK_WINDOW (window), box); - - button = gtk_button_new_with_label ("Hello World"); + gtk_window_set_child (GTK_WINDOW (window), grid); + button = gtk_button_new_with_label ("Button 1"); g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL); - g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window); + gtk_grid_attach (GTK_GRID (grid), button, 0, 0, 1, 1); - gtk_box_append (GTK_BOX (box), button); + button = gtk_button_new_with_label ("Button 2"); + g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL); + gtk_grid_attach (GTK_GRID (grid), button, 1, 0, 1, 1); + + button = gtk_button_new_with_label ("Quit"); + g_signal_connect (button, "clicked", G_CALLBACK (print_quiting), NULL); + g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window); + gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 2, 1); gtk_window_present (GTK_WINDOW (window)); }