]> Pileus Git - grits/blob - src/aweather.c
Gtk Hello World
[grits] / src / aweather.c
1 #include <config.h>
2 #include <gtk/gtk.h>
3
4 static void hello(GtkWidget *widget, gpointer data)
5 {
6         g_print("Hello World\n");
7 }
8
9 static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
10 {
11         g_print("delete event occurred\n");
12         return FALSE;
13 }
14
15 static void destroy(GtkWidget *widget, gpointer data)
16 {
17         gtk_main_quit();
18 }
19
20 int main(int argc, char *argv[])
21 {
22         GtkWidget *window;
23         GtkWidget *button;
24
25         gtk_init(&argc, &argv);
26
27         window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
28         g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL);
29         g_signal_connect(G_OBJECT(window), "destroy",      G_CALLBACK(destroy),      NULL);
30
31         gtk_container_set_border_width(GTK_CONTAINER(window), 10);
32         button = gtk_button_new_with_label("Hello World");
33         g_signal_connect(        G_OBJECT(button), "clicked", G_CALLBACK(hello),              NULL);
34         g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(window));
35
36         gtk_container_add(GTK_CONTAINER(window), button);
37         gtk_widget_show(button);
38         gtk_widget_show(window);
39         gtk_main();
40
41         return 0;
42 }