GUI プログラミングの中でウィンドウに次に大切なのがボタンでしょう。
以下のファイルを button.c という名前で記述してください。
#include <gtk/gtk.h>
static void
countup (GtkWidget *widget, GtkWidget *window)
{
static int count = 0;
char str[20];
sprintf(str,"%d",++count);
gtk_window_set_title(GTK_WINDOW(window), str);
}
static void
activate (GtkApplication *app,
gpointer user_data)
{
GtkWidget *window;
GtkWidget *button;
window = gtk_application_window_new(app);
gtk_window_set_title(GTK_WINDOW(window), "0");
gtk_window_set_default_size(GTK_WINDOW(window),200,133);
button = gtk_button_new_with_label("Count up!");
g_signal_connect(button,"clicked",G_CALLBACK(countup),window);
gtk_window_set_child(GTK_WINDOW(window), button);
gtk_window_present(GTK_WINDOW(window));
}
int
main(int argc, char **argv)
{
GtkApplication *app;
int status;
app = gtk_application_new("jp.vivacocoa.count", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
status = g_application_run(G_APPLICATION(app), argc, argv);
g_object_unref(app);
return status;
}
以下のとおりです。Windows の場合は通常版でも ARM64版 でも mingw64 で行ってください。
// コンパイル
cc `pkg-config --cflags gtk4` button.c -o button `pkg-config --libs gtk4`
もしくは
gcc $(pkg-config --cflags gtk4) -o button button.c $(pkg-config --libs gtk4)
// 実行
./button