#include <gtk/gtk.h>

GtkWidget *button1, *button2, *button3, *button_quit;

void ende_cb(GtkObject *object)
{
  g_print("\n\nZustand der Toggled Buttons zum Abschluss : \n");
 if(GTK_TOGGLE_BUTTON(button1)->active)
   g_print("Knopf 1 war aktiviert (toggled)\n");
 else
   g_print("Knopf 1 war deaktiviert (not toggled)\n");

 if(GTK_TOGGLE_BUTTON(button2)->active)
   g_print("Knopf 2 war aktiviert (toggled)\n");
 else
   g_print("Knopf 2 war deaktiviert (not toggled)\n");

 if(GTK_TOGGLE_BUTTON(button3)->active)
   g_print("Knopf 3 war aktiviert (toggled)\n");
 else
   g_print("Knopf 3 war deaktiviert (not toggled)\n");


 gtk_main_quit();
}

void check_toggle_cb(GtkWidget *widget, gpointer data)
{
 if(GTK_TOGGLE_BUTTON(widget)->active)
   g_print("%s aktiviert (toggled)\n",(char *)data);
 else
   g_print("%s deaktiviert (not toggled)\n",(char *)data);
}

int main(int argc, char **argv)
{
 GtkWidget *fenster;
 GtkWidget *box;
 /*Gtk initialisieren*/
 gtk_init(&argc, &argv);
 /*Ein neues Fenster erstellen*/
 fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 /*Buttons erstellen*/
 button1  = gtk_check_button_new_with_label("Knopf 1");
 button2  = gtk_check_button_new_with_label("Knopf 2");
 button3  = gtk_check_button_new_with_label("Knopf 3");
 button_quit  = gtk_button_new_with_label("Ende");
 /*Neue Box erstellen*/
 box = gtk_vbox_new(FALSE,0);

 /*Signale registrieren*/
 gtk_signal_connect_object(GTK_OBJECT(button_quit), "clicked",
                           GTK_SIGNAL_FUNC(ende_cb), GTK_OBJECT(fenster));
 gtk_signal_connect(GTK_OBJECT(fenster), "destroy",
                    GTK_SIGNAL_FUNC(ende_cb), NULL);
 gtk_signal_connect(GTK_OBJECT(button1), "clicked",
                    GTK_SIGNAL_FUNC(check_toggle_cb),"Knopf 1");
 gtk_signal_connect(GTK_OBJECT(button2), "clicked",
                    GTK_SIGNAL_FUNC(check_toggle_cb),"Knopf 2");
 gtk_signal_connect(GTK_OBJECT(button3), "clicked",
                    GTK_SIGNAL_FUNC(check_toggle_cb),"Knopf 3");
 /*Fenstertitel*/
 gtk_window_set_title(GTK_WINDOW(fenster), "Toggled Buttons");
 /*Fensterposition*/
 gtk_window_set_position(GTK_WINDOW(fenster),GTK_WIN_POS_CENTER);

 gtk_container_set_border_width(GTK_CONTAINER(fenster),25);

 /*Nun alles rein in die Box....*/
 gtk_box_pack_start(GTK_BOX(box), button1, FALSE, FALSE, 0);
 gtk_box_pack_start(GTK_BOX(box), button2, FALSE, FALSE, 0);
 gtk_box_pack_start(GTK_BOX(box), button3, FALSE, FALSE, 0);
 gtk_box_pack_start(GTK_BOX(box), button_quit, FALSE, FALSE, 20);

 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1),TRUE);

 gtk_container_add(GTK_CONTAINER(fenster),box);

 /*Zeigs uns.....*/
 gtk_widget_show_all(fenster);

 gtk_main();

 return 0;
}
