diff options
Diffstat (limited to 'gtkhello1.c')
-rw-r--r-- | gtkhello1.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gtkhello1.c b/gtkhello1.c new file mode 100644 index 0000000..a4107a8 --- /dev/null +++ b/gtkhello1.c @@ -0,0 +1,52 @@ +#include <stdlib.h> +#include <gtk/gtk.h> + +/* 1st arg is the button widget, second is the win ptr being passed around */ +static void helloWorld(GtkWidget *wid, GtkWidget *win) +{ + GtkWidget *dialog = NULL; + + dialog = gtk_message_dialog_new(GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!"); + gtk_window_set_position(GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); + gtk_dialog_run(GTK_DIALOG (dialog)); + gtk_widget_destroy(dialog); +} + +int main(int argc, char *argv[]) +{ + GtkWidget *button = NULL; + GtkWidget *win = NULL; + GtkWidget *vbox = NULL; + + /* Initialize GTK+ */ + g_log_set_handler("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL); + gtk_init(&argc, &argv); + g_log_set_handler("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL); + + /* Create the main window */ + win = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_container_set_border_width(GTK_CONTAINER (win), 8); + gtk_window_set_title(GTK_WINDOW (win), "Hello World"); + gtk_window_set_position(GTK_WINDOW (win), GTK_WIN_POS_CENTER); + gtk_widget_realize(win); + g_signal_connect(win, "destroy", gtk_main_quit, NULL); + + /* Create a vertical box with buttons */ + vbox = gtk_vbox_new(TRUE, 6); + gtk_container_add(GTK_CONTAINER (win), vbox); + + button = gtk_button_new_from_stock(GTK_STOCK_DIALOG_INFO); + g_signal_connect(G_OBJECT (button), "clicked", G_CALLBACK (helloWorld), (gpointer) win); + gtk_box_pack_start(GTK_BOX (vbox), button, TRUE, TRUE, 0); + + button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); + g_signal_connect(button, "clicked", gtk_main_quit, NULL); + gtk_box_pack_start(GTK_BOX (vbox), button, TRUE, TRUE, 0); + + /* Enter the main loop */ + gtk_widget_show_all(win); + gtk_main(); + + return 0; +} + |