summaryrefslogtreecommitdiff
path: root/gui/gtk/src
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-03-09 22:45:24 +0800
committer魏曹先生 <1992414357@qq.com>2026-03-09 22:45:24 +0800
commitc9ff9a13735010a6d3937a05e8ce9f00f9fab3ac (patch)
tree77ad04e6db77aa037513e4d22866a89f9cf52403 /gui/gtk/src
parent25761b5ef0d9d385ac2a371b62913f98350d6f56 (diff)
Add GTK GUI build system for Unix platforms
Diffstat (limited to 'gui/gtk/src')
-rw-r--r--gui/gtk/src/main.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/gui/gtk/src/main.c b/gui/gtk/src/main.c
new file mode 100644
index 0000000..c25715c
--- /dev/null
+++ b/gui/gtk/src/main.c
@@ -0,0 +1,51 @@
+#include <gtk/gtk.h>
+#include <lib_butck.h>
+
+// Callback function for button click
+static void on_button_clicked(GtkWidget *widget, gpointer data) {
+ g_print("Hello, World!\n");
+}
+
+// Callback function for window close
+static void on_window_destroy(GtkWidget *widget, gpointer data) {
+ gtk_main_quit();
+}
+
+int main(int argc, char *argv[]) {
+ GtkWidget *window;
+ GtkWidget *button;
+ GtkWidget *box;
+
+ // Initialize GTK
+ gtk_init(&argc, &argv);
+
+ // Create main window
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(window), "Butchunker - GTK");
+ gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
+ gtk_container_set_border_width(GTK_CONTAINER(window), 10);
+
+ // Connect destroy signal
+ g_signal_connect(window, "destroy", G_CALLBACK(on_window_destroy), NULL);
+
+ // Create vertical box container
+ box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
+ gtk_container_add(GTK_CONTAINER(window), box);
+
+ // Create label
+ GtkWidget *label = gtk_label_new("Welcome to Butchunker!");
+ gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
+
+ // Create button
+ button = gtk_button_new_with_label("Click Me!");
+ g_signal_connect(button, "clicked", G_CALLBACK(on_button_clicked), NULL);
+ gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0);
+
+ // Show all widgets
+ gtk_widget_show_all(window);
+
+ // Start GTK main loop
+ gtk_main();
+
+ return 0;
+}