Seitenleiste

Dies ist eine alte Version des Dokuments!


Menüs und Werkzeugleisten


Es ist zum Standard bei Anwendungen geworden, diese mit einer Menüleiste auszustatten. Dort gibt es klassischerweise die Menüs „Datei“, „Bearbeiten“ und „Ansicht“, oft auch mehr. Oft benutzte Funktionen, auf die man schnell zugreifen sollte, packt man am besten in eine Werkzeugleiste. Dort findet man oft Icons, die für die Funktionen stehen.

Das Zentrum eines GTK-Menüs 1) bildet die GtkMenuBar. In die GtkMenuBar packt man dann GtkMenuItems. Um ein aufklappendes Menü zu erzeugen benutzt man ein GtkMenu. Dieses verbindet man mit einem GtkMenuItem in der GtkMenuBar. In das GtkMenu kann man dann wieder GtkMenuItems packen. Menübar

Kommen wir zur Umsetzung: Als Basis benutzt bitte das leere Fenster aus dem Kapitel Erste Schritte mit GTK+ und erweitert es mit einer vertikalen Box.

Um eine Menüleiste mit einem Menu („Datei“) und einem Eintrag („Beenden“) zu erstellen, benötigen wir zudem 4 weitere GtkWidgets:

GtkWidget *menubar,  /*die Menüleiste an sich: wird später in die vertikale Box gepackt*/
          *filemenu, /*das "Datei"-Menü, in das wir das Beenden-Item stecken.*/
          *fileitem, /*das "Datei"-Item: kommt in die Menüleiste und wird mit "filemenu" verknüpft*/
          *quititem; /*das "Beenden"-Item*/

Als nächstes erstellen wir menubar und filemenu, mit der Gtk üblichen *_new Funktion:

menubar = gtk_menu_bar_new();
filemenu = gtk_menu_new();

Nun kommt die GtkMenuItems an die Reihe. Hierbei gibt es jedoch nicht nur eines:

TypBeschreibungFunktion zum Erstellen
GtkMenuItemEin einfaches Item, nur mit Text
gtk_menu_item_new(gchar * text)
gtk_menu_item_new_with_mnemonic(gchar * text)
GtkImageMenuItemEin Item mit einem kleinen Icon, welches über eine GTK_STOCK_ID gesetzt werden kann 2)
gtk_image_menu_item_new(void)
gtk_image_menu_item_new_from_stock(const gchar* STOCK, GtkAccelGroup *ag)

FIXME

1)
besser: „Menüleiste“
2)
es kann auch über ein externes Bild gesetzt werden