Bezeichnung
Area.ContextMenu -- setzt das Kontextmenü für ein Objekt
Beschreibung
Setzen Sie dieses Attribut auf den Identifikator eines MOAI-Objekts, welches von der Menu-Klasse abgeleitet ist und somit erhält das entsprechende Objekt ein Kontextmenü. Wenn der Benutzer die rechte Maustaste auf das jeweilige Objekt drückt, wird das Kontextmenü angezeigt.

Beachten Sie, dass Kontextmenü-Ereignisse dann über den Standardmechanismus Menuitem.Selected und nicht über einen speziellen Kontextmenü-Ereignishandler geliefert werden. Da Sie dasselbe Menüobjekt für mehrere Widgets verwenden können, benötigen Sie eine Möglichkeit, das Widget herauszufinden, dessen Kontextmenü das Ereignis ausgelöst hat. Um Ihnen diese Informationen zu liefern, enthält die Ereignismeldung einen zusätzlichen Eintrag namens Parent, der die ID des Widgets enthält. Dadurch können Sie dasselbe Menüobjekt als Kontextmenü für mehrere übergeordnete Widgets verwenden.

Ab RapaGUI 2.0 können Sie auch eine Benachrichtigung über das Attribut einrichten. In diesem Fall wird Ihr Ereignis-Handler aufgerufen, unmittelbar bevor RapaGUI das Kontextmenü anzeigt. Sie können dann entweder False für kein Kontextmenü zurückgeben oder moai.Set() auf Area.ContextMenu verwenden, um das Kontextmenü festzulegen, das angezeigt werden soll. Dies ist sehr nützlich, um das Kontextmenü anzupassen, je nachdem, wo die rechte Maustaste geklickt wurde. Die Position wird an Ihren Ereignis-Handler weitergegeben. Falls Sie Area.ContextMenu überwachen, werden Ihrem Ereignis-Handler abhängig vom übergeordneten Widget des Kontextmenüs auch einige zusätzliche Informationen übergeben. Hier ist eine Übersicht über diese zusätzlichen Nachrichtenfelder:

X
X-Koordinate des Mausklicks.

Y
Y-Koordinate des Mausklicks.

CursorPos
Cursor-Index an der Stelle, an der der Benutzer geklickt hat. Dies wird nur für Widgets des Typs Texteditor-Klasse gesetzt.

Row
Zeile an der Position des Mausklicks oder -1, wenn an der Klickposition keine Zeile vorhanden ist. Dies ist nur für Widgets vom Typ Listview-Klasse gesetzt.

Column
Spalte an der Position des Mausklicks oder -1, wenn an der Klickposition keine Spalte vorhanden ist. Dies ist nur für Widgets vom Typ Listview-Klasse gesetzt.

Item
Treeview-Element an der Position des Mausklicks oder -1, wenn sich kein Element an der Klickposition befindet. Dies ist nur für Widgets vom Typ Treeview-Klasse gesetzt.

AmigaOS-Benutzer beachten bitte, dass MUI die Freigabe von Kontextmenü-Objekten über Fenster hinweg nicht erlaubt. Es ist nicht möglich, dasselbe Menüobjekt mit Widgets in verschiedenen Fenstern zu verwenden. Es ist in Ordnung, ein Menüobjekt für mehrere Widgets im selben Fenster zu verwenden, aber nicht für Widgets in einem anderen Fenster. Alle anderen Plattformen haben diese Einschränkung nicht, nur AmigaOS ist hier betroffen.

Um ein Kontextmenü vollständig zu entfernen, übergeben Sie diesem Attribut den speziellen String "(none)".

Siehe Kontextmenüs für ein Beispiel.

Typ
MOAI-Objekt

Anwendbarkeit
ISGN


Navigation zeigen