AddMenuItem

Kategorie: Objekte / Menü
Ab Engineversion: 5.1 OC

Beschreibung

Fügt einen Menüeintrag hinzu.

Syntax

int AddMenuItem(string caption, string command, id symbol, int count, any parameter, string info_caption, int extra, any XPar1, any XPar2);

Parameter

caption:
Text des neuen Menüeintrags
command:
Kommando, das bei Auswahl des Menüeintrags ausgeführt werden soll. Kann entweder ein Funktionsname oder ein Statement sein. Wenn ein Funktionsname angegeben wird, dann wird die Funktion in dem Objekt aufgerufen, welches bei CreateMenu als command_object übergeben wurde.
symbol:
Die ID wird als Bild für den Menüeintrag verwendet. Der Name der Definition kann mit %s in caption verwendet werden. Außerdem wird die ID als erster Parameter an den Aufruf von command übergeben, sofern dieser nur ein Funktionsname ist.
count:
Gewünschte Zahl, die neben dem Menüeintrag angezeigt werden soll (ähnlich der Mengenanzeige im Aktivieren-Menü)
parameter:
Wird als 2. Parameter an die in command angegebene Funktion übergeben (siehe Anmerkung)
info_caption:
Beschreibungstext des neuen Menüeintrags
extra:
[opt] Zusatzparameter für das Verhalten des Menüeintrags.
Untere 7 Bits (0-127): Menüsymbol.
0: Normal
1: Rangsymbol. Bei angegebenem symbol wird ggf. die Rank.png der Definition genutzt. count gibt die Ranghöhe an
2: Picturefacet, das um XPar1-fache Picturebreite nach rechts verschoben ist. Damit lassen sich mehrere Menüsymbole innerhalb einer Definition unterbringen.
3: XPar1 gibt ein Objekt an, dessen Picture-Grafik mit Rang gezeichnet wird. Hat das Objekt keine Infosektion (und dmait keinen Rang), so wird in Kontextmenüs dennoch ein entsprechender Leerraum gelassen.
4: XPar1 gibt ein Objekt an, dessen Picture-Grafik gezeichnet wird.
Bit 8 (128): XPar2 wird als Wertangabe benutzt, und überschreibt die Standardangabe (Wert der Definition symbol). Siehe auch extra von CreateMenu
XPar1:
[opt] Erster Zusatzparameter für extra.
XPar2:
[opt] Zweiter Zusatzparameter für extra.

Anmerkungen

Menüsymbole sollten optimalerweise die Größe 35x35 für normale Menüs, 16x16 für Kontextmenüs besitzen. Andernfalls wird unter Beibehaltung des Höhe/Breite-Verhältnisses so gestreckt, dass die längere Seite dieser Größe entspricht.
Wird als command-Parameter nur ein Funktionsname angegeben, werden folgende Parameter übergeben: symbol, parameter, bRight[, value] wobei bRight angibt, ob der Menueintrag mit [Special2] bzw. der rechten Maustaste ausgewählt wurde. value wird nur übergeben, wenn das Bit 8 bei extra gesetzt wird und gibt den (überschriebenen) angezeigten Wert des ausgewählten Menüeintrags an.

Beispiel

func ControlUse()
{
	// Create local menu with local commandos
	CreateMenu(GetID());
	// Create menu items
	AddMenuItem("Say hello", "SayHello");
	AddMenuItem("Do magic", "DoMagic");
	AddMenuItem("Create an object: %s", "CreateItem", Rock);
	AddMenuItem("Create another object: %s", "CreateItem", Firestone);
}

func SayHello()
{
	Message("Hello",this);
}

func DoMagic()
{
	Sound("Magic*");
}

func CreateItem(id item)
{
	CreateContents(item);
}
Menü für einen Spezial-Gegenstand.
Siehe auch: CloseMenu, CreateMenu, SelectMenuItem
jwk, 2002-04