#include <gtk/gtk.h>
#include <gtk/gtkwidget.h>
#include <string.h>


void ende_cb(GtkObject *object)
{
 g_print("Und Tschüss!!\n");
 gtk_main_quit();
}


void check_button_press_cb(GtkWidget *widget, gpointer data)
{
 if(strcmp("Button 1", (char *)data) == 0)
   g_print("Button 1 wurde gedrückt\n");
 else if(strcmp("Button 2", (char *)data) == 0)
   g_print("Button 2 wurde gedrückt\n");
 else if(strcmp("Button 3", (char *)data) == 0)
   g_print("Button 3 wurde gedrückt\n");
 else if(strcmp("Button 4", (char *)data) == 0)
   g_print("Button 4 wurde gedrückt\n");
 else
   g_print("%s\n",(char *)data);
}



int main(int argc, char **argv)
{
 GtkWidget *fenster;
 GtkWidget *button1, *button2, *button3, *button4;
 GtkWidget *table;
 /*Gtk initialisieren*/
 gtk_init(&argc, &argv);
 /*Ein neues Fenster erstellen*/
 fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 /*Buttons erstellen*/
 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");

 /*Tabelle erstellen... 2x2*/
 table = gtk_table_new(2,2,FALSE);

 /*Signale registrieren*/
 gtk_signal_connect(GTK_OBJECT(fenster), "delete_event",
                    GTK_SIGNAL_FUNC(ende_cb), NULL);
 gtk_signal_connect(GTK_OBJECT(button1), "clicked",
                    GTK_SIGNAL_FUNC(check_button_press_cb),"Button 1" );
 gtk_signal_connect(GTK_OBJECT(button2), "clicked",
                    GTK_SIGNAL_FUNC(check_button_press_cb), "Button 2");
 gtk_signal_connect(GTK_OBJECT(button3), "clicked",
                    GTK_SIGNAL_FUNC(check_button_press_cb),"Button 3" );
 gtk_signal_connect(GTK_OBJECT(button4), "clicked",
                    GTK_SIGNAL_FUNC(check_button_press_cb), "Button 4");
 /*Fenstertitel*/
 gtk_window_set_title(GTK_WINDOW(fenster), "Welcher Button wurde gedrückt");
 /*Fensterposition*/
 gtk_window_set_position(GTK_WINDOW(fenster),GTK_WIN_POS_CENTER);

 gtk_container_set_border_width(GTK_CONTAINER(fenster),40);

 /*Inhalt der Tabelle mit verschiedenen Optionen erstellen....*/
 gtk_table_attach_defaults(GTK_TABLE(table), button1, 0,1, 0,1);
 gtk_table_attach_defaults(GTK_TABLE(table), button2, 0,1, 1,2);
 gtk_table_attach_defaults(GTK_TABLE(table), button3, 1,2, 0,1);
 gtk_table_attach_defaults(GTK_TABLE(table), button4, 1,2, 1,2);


 gtk_container_add(GTK_CONTAINER(fenster),table);

 /*Zeigs uns.....*/
 gtk_widget_show_all(fenster);

 gtk_main();

 return 0;
}
