summaryrefslogtreecommitdiff
path: root/gtk-test/helloworld.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk-test/helloworld.c')
-rw-r--r--gtk-test/helloworld.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/gtk-test/helloworld.c b/gtk-test/helloworld.c
new file mode 100644
index 0000000..968c16f
--- /dev/null
+++ b/gtk-test/helloworld.c
@@ -0,0 +1,45 @@
+#include "Clean.h"
+#include "helloworld.h"
+#include <gtk/gtk.h>
+
+static void hello(GtkWidget *widget, gpointer data) {
+ g_print("Hello world\n");
+}
+
+static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) {
+ g_print("Delete event\n");
+ return TRUE;
+}
+
+static void destroy(GtkWidget *widget, gpointer data) {
+ gtk_main_quit();
+}
+
+void ginit() {
+ gtk_init(NULL, NULL);
+}
+
+void gopen() {
+ GtkWidget *window;
+ GtkWidget *button;
+
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+
+ g_signal_connect(window, "delete-event", G_CALLBACK(delete_event), NULL);
+ g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL);
+
+ gtk_container_set_border_width(GTK_CONTAINER(window), 10);
+
+ button = gtk_button_new_with_label("Hello world");
+
+ g_signal_connect(button, "clicked", G_CALLBACK(hello), NULL);
+ g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_widget_destroy), window);
+
+ gtk_container_add(GTK_CONTAINER(window), button);
+
+ gtk_widget_show(button);
+ gtk_widget_show(window);
+
+ gtk_main();
+}
+