diff options
Diffstat (limited to 'gtk-test/helloworld.c')
-rw-r--r-- | gtk-test/helloworld.c | 45 |
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(); +} + |