/* *File name: vbuttonbox.c */ #include #include /*-- This function allows the program to exit properly when the window is closed --*/ gint destroyapp (GtkWidget *widget, gpointer gdata) { g_print ("Quitting...\n"); gtk_main_quit(); return (FALSE); } /*-- This function responds to the mouse click on the button --*/ void button_clicked(GtkWidget *widget, gpointer gdata) { g_print("Button was clicked.\n"); } int main (int argc, char *argv[]) { /*-- Declare the GTK Widgets used in the program --*/ GtkWidget *window; GtkWidget *button1; GtkWidget *button2; GtkWidget *button3; GtkWidget *button4; GtkWidget *button5; GtkWidget *vbuttonbox; /*-- Initialize GTK --*/ gtk_init (&argc, &argv); /*-- Create the new window --*/ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); /*-- Create some buttons to fill the vbox with --*/ button1 = gtk_button_new_with_label("Button 1"); button2 = gtk_button_new_with_label("Button 2"); button3 = gtk_button_new_with_label("Button 3"); button4 = gtk_button_new_with_label("Button 4"); button5 = gtk_button_new_with_label("Button 5"); /*-- Create the hbox --*/ vbuttonbox = gtk_vbutton_box_new(); /*-- Connect the window to the destroyapp function --*/ gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(destroyapp), NULL); /*-- Connect all the buttons to the button_was_clicked function --*/ gtk_signal_connect(GTK_OBJECT(button1), "clicked", GTK_SIGNAL_FUNC(button_clicked), NULL); gtk_signal_connect(GTK_OBJECT(button2), "clicked", GTK_SIGNAL_FUNC(button_clicked), NULL); gtk_signal_connect(GTK_OBJECT(button3), "clicked", GTK_SIGNAL_FUNC(button_clicked), NULL); gtk_signal_connect(GTK_OBJECT(button4), "clicked", GTK_SIGNAL_FUNC(button_clicked), NULL); gtk_signal_connect(GTK_OBJECT(button5), "clicked", GTK_SIGNAL_FUNC(button_clicked), NULL); /*-- Add all the buttons to the vbox --*/ gtk_box_pack_start(GTK_BOX(vbuttonbox), button1, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbuttonbox), button2, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbuttonbox), button3, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbuttonbox), button4, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbuttonbox), button5, FALSE, FALSE, 0); /*-- Add the button to the window --*/ gtk_container_add(GTK_CONTAINER (window), vbuttonbox); /*-- Add a border to the window to give the buttons a little room --*/ gtk_container_border_width (GTK_CONTAINER (window), 15); /*-- Display the widgets --*/ gtk_widget_show(vbuttonbox); gtk_widget_show(button1); gtk_widget_show(button2); gtk_widget_show(button3); gtk_widget_show(button4); gtk_widget_show(button5); gtk_widget_show(window); /*-- Start the GTK event loop --*/ gtk_main(); /*-- Return 0 if exit is successful --*/ return 0; }