Kategorie: Objekte
/ Menü
Ab Engineversion: 1.0 OC
AddMenuItem
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.