#include <gtk/gtk.h>
#include <stdio.h>

GtkItemFactory *items;
GtkAccelGroup *accl;

/*Programmende*/
void ende_cb(GtkObject *object)
{
 gtk_main_quit();
}

void file_open(GtkWidget *widget, gpointer data)
{
 g_print("Datei öffnen\n");
}

void file_save(GtkWidget *widget, gpointer data)
{
 g_print("Datei speichern\n");
}

void file_close(GtkWidget *widget, gpointer data)
{
 g_print("Datei schließen\n");
}

void cut(GtkWidget *widget, gpointer data)
{
 g_print("Ausschneiden\n");
}

void copy(GtkWidget *widget, gpointer data)
{
 g_print("Kopieren\n");
}

void help(GtkWidget *widget, gpointer data)
{
 g_print("Hier gibt es keine Hilfe!\n");
}

/*Die Menüeintrage*/
static GtkItemFactoryEntry menue[]={
  { "/_Datei", NULL, NULL, 0, "<Branch>" },
  { "/Datei/Öffnen", "<control>O", file_open, 0, NULL},
  { "/Datei/Speichern", "<control>S", file_save, 0, NULL},
  { "/Datei/Schließen", "<control>C", file_close, 0, NULL},
  { "/Datei/Ende", "<control>Q", gtk_main_quit, 0, NULL},

  { "/Bearbeiten", NULL, NULL, 0, "<Branch>" },
  { "/Bearbeiten/Ausschneiden", "<control>X", cut, 0, NULL},
  { "/Bearbeiten/Kopieren", "<control>P", copy, 0, NULL},
  { "/?", NULL, NULL, 0, "<LastBranch>"},
  { "/?/Hilfe", NULL, help, 0, NULL},
  };





int main(int argc, char **argv)
{
 GtkWidget *fenster;
 GtkItemFactory *items;
 GtkAccelGroup *accl;
 GtkWidget *box;
 GtkWidget *menu_bar;
 gint n_menue = sizeof(menue) /sizeof(menue[0]);

 /*Gtk initialisieren*/
 gtk_init(&argc, &argv);
 /*Ein neues Fenster erstellen*/
 fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 accl=gtk_accel_group_new();
 items=gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accl);
 gtk_item_factory_create_items(items, n_menue, menue, NULL);
 gtk_accel_group_attach(accl, GTK_OBJECT(fenster));
 menu_bar=gtk_item_factory_get_widget(items, "<main>");
 /*Buttons erstellen*/
 gtk_window_set_default_size(GTK_WINDOW(fenster), 320, 300);


 /*Neue Box erstellen*/
 box = gtk_vbox_new(FALSE,0);


 /*Signale registrieren*/
 gtk_signal_connect(GTK_OBJECT(fenster), "destroy",
                    GTK_SIGNAL_FUNC(ende_cb), NULL);

 /*Fensterposition*/
 gtk_window_set_position(GTK_WINDOW(fenster),GTK_WIN_POS_CENTER);



// gtk_container_set_border_width(GTK_CONTAINER(fenster),15);

 gtk_box_pack_start(GTK_BOX(box), menu_bar, FALSE, TRUE, 0);


 gtk_container_add(GTK_CONTAINER(fenster),box);

 /*Zeigs uns.....*/
 gtk_widget_show_all(fenster);

 gtk_main();

 return 0;
}