GEM-Programmierung: Menüs

Menü entwerfen

Das Menü wird mit Hilfe eines Resource Construction Set (RCS) entwickelt. Das Programm erzeugt ein Binary mit der Endung .RSC. Dieses kann im Programm später mit rsrc_load geladen werden.

Parallel wirft es die Header-Daten für die Programmiersprache aus, um die Elemente korrekt zugreifen zu können.

Menü starten

Das Menü wird gestartet, indem zunächst die vom RCS erzeugte Datei geladen wird. War dies erfolgreich, wird mit der Konstante des Menübaums dessen Speicheradresse bestimmt. Dann wird das Menü durch Aufruf der Funktion menu_bar erzeugt. Vor Ende des Programmes sollte man den durch die Ressourcen belegten Speicher wieder freigeben.

OBJECT *MenueLeiste;

   if (rsrc_load("PROGRAMM.RSC")) {
      rsrc_gaddr( 0, MENU, &MenueLeiste);
      menu_bar(MenueLeiste,1);
   }
   ...
   rsrc_free();

Menüauswahl

GEM ruft die Funktion evnt_multi auf. Hat der Rückgabewert das Bit MU_MESAG gesetzt, sendet GEM eine Nachricht. Vom nullten Element des Nachrichten-Arrays hängt es ab, welche Nachricht eingetroffen ist. Enthät es die Konstante MN_SELECTED, ist es eine Menüauswahl.

Im Nachrichten-Array findet man die Konstante des Menüleisteneintrages und die Konstante des Menüpunktes, der die Nachricht ausgelöst hat. Erstere benötigt man, um mit dem Aufruf von menu_tnormal den schwarz gewordenen Menüleisteneintrag wieder in den Normalzustand zu bringen. Der zweite Parameter gibt an, welcher Menüpunkt vom Benutzer gewählt wurde.


Computer-Oldies - Atari ST Programmierung - Informatik-Ecke (C) Copyright 1999 Arnold Willemer