/** * hellogtk.c * gtk-3.0 */ #include /* a callback function */ static void hello (GtkWidget *widget, gpointer data) { g_print ("%s\n", (char *)data); } int main (int argc, char* argv[]) { /* first thing first */ gtk_init (&argc, &argv); /* window object */ GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Hello, GTK!"); gtk_widget_set_size_request (window, 320, 200); gtk_container_set_border_width (GTK_CONTAINER (window), 10); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER_ALWAYS); g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show (window); /* a container */ GtkWidget *box = gtk_box_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_show (box); /* two buttons */ GtkWidget *button1, *button2; button1 = gtk_button_new_with_label ("Hello, World!"); g_signal_connect (button1, "clicked", G_CALLBACK(hello), "Hello, World!"); gtk_box_pack_start(GTK_BOX (box), button1, TRUE, FALSE, 0); gtk_widget_show (button1); button2 = gtk_button_new_with_label ("Hello, GTK!"); g_signal_connect (button2, "clicked", G_CALLBACK(hello), "Hello, GTK!"); gtk_box_pack_start (GTK_BOX (box), button2, TRUE, FALSE, 0); gtk_widget_show (button2); /* main loop start */ gtk_main (); return 0; }