Last active
October 14, 2021 19:24
-
-
Save bert/19abe18578895dd8548aaf0244bf12f0 to your computer and use it in GitHub Desktop.
GTK4 Packing buttons
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <gtk/gtk.h> | |
static void | |
print_hello (GtkWidget *widget, gpointer data) | |
{ | |
g_print ("Hello World\n"); | |
} | |
static void | |
activate (GtkApplication *app, gpointer user_data) | |
{ | |
GtkWidget *window; | |
GtkWidget *grid; | |
GtkWidget *button; | |
/* Create a new window, and set its title. */ | |
window = gtk_application_window_new (app); | |
gtk_window_set_title (GTK_WINDOW (window), "Window"); | |
/* Here we construct the container that is going pack our buttons. */ | |
grid = gtk_grid_new (); | |
/* Pack the container in the window. */ | |
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); | |
/* Place the first button in the grid cell (0, 0), and make it fill | |
* just 1 cell horizontally and vertically (ie no spanning). | |
*/ | |
gtk_grid_attach (GTK_GRID (grid), button, 0, 0, 1, 1); | |
button = gtk_button_new_with_label ("Button 2"); | |
g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL); | |
/* Place the second button in the grid cell (1, 0), and make it fill | |
* just 1 cell horizontally and vertically (ie no spanning). | |
*/ | |
gtk_grid_attach (GTK_GRID (grid), button, 1, 0, 1, 1); | |
button = gtk_button_new_with_label ("Quit"); | |
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window); | |
/* Place the Quit button in the grid cell (0, 1), and make it | |
* span 2 columns. | |
*/ | |
gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 2, 1); | |
gtk_widget_show (window); | |
} | |
int | |
main (int argc, char **argv) | |
{ | |
GtkApplication *app; | |
int status; | |
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); | |
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); | |
status = g_application_run (G_APPLICATION (app), argc, argv); | |
g_object_unref (app); | |
return status; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CFLAGS = -Wall -g `pkg-config --cflags gtk4` | |
LDFLAGS = `pkg-config --libs gtk4` | |
all: main.c | |
$(CC) -o main main.c $(CFLAGS) $(LDFLAGS) | |
clean: | |
rm -f *~ | |
rm -f *.o | |
rm -f main |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment