AddMenuItem

Kategorie: Objekte / Menü
Ab Engineversion: 1.0 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] Extra parameter for special behaviour of the menu entry.
Lower 7 bits (0-127): menu symbol.
0: normal
1: rank symbol. With symbol specified, the Rank.png component of that definition will be used. count indicates the rank
2: picture facet, shifted to the right by XPar1 times the facet width. This is used to include multiple menu symbols in a single definition.
3: XPar1 specifies an object to be drawn with the rank symbol. If the object has no info section (and thus no rank), there will be an empty entry in context menus.
4: XPar1 specifies an object to be drawn.
7: XPar1 is a prop list that contains parameters for the menu symbol drawing. See picture parameter of CustomMessage for possible members. Bit 8 (128): XPar2 is used as object value and overrides the normal object value. Also see extra in 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