]> Pileus Git - grits/blobdiff - src/aweather.c
Gtk Hello World
[grits] / src / aweather.c
index 76fc2e77c3bd094a4ce758e37e191b621acb4219..a2c33c371758c0e60696475b2cf4bfd94095eb50 100644 (file)
@@ -1,8 +1,42 @@
 #include <config.h>
-#include <stdio.h>
+#include <gtk/gtk.h>
 
-int main(int argc, char **argv)
+static void hello(GtkWidget *widget, gpointer data)
 {
-       puts("Hello World");
+       g_print("Hello World\n");
+}
+
+static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+       g_print("delete event occurred\n");
+       return FALSE;
+}
+
+static void destroy(GtkWidget *widget, gpointer data)
+{
+       gtk_main_quit();
+}
+
+int main(int argc, char *argv[])
+{
+       GtkWidget *window;
+       GtkWidget *button;
+
+       gtk_init(&argc, &argv);
+
+       window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+       g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL);
+       g_signal_connect(G_OBJECT(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(        G_OBJECT(button), "clicked", G_CALLBACK(hello),              NULL);
+       g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(window));
+
+       gtk_container_add(GTK_CONTAINER(window), button);
+       gtk_widget_show(button);
+       gtk_widget_show(window);
+       gtk_main();
+
        return 0;
 }