|
Referenzhandbuch |
|
|
Referenzhandbuch
|
Kapitel 37
|
Menüs
Blitz2 beinhaltet viele Befehle, um Intuition-Menüs zu entwerfen und anzuwenden.
Die Verwendung von Menüs erfolgt durch Menülistenobjekten. Jede Menüliste beinhaltet einen Satz von Menütiteln,
Menüpunkten und wenn nötig Menüunterpunkten. Mit dem SetMenu-Kommando wird eine
Menüliste einem Window zugewiesen. Jedes Window kann eine eigene Menüliste haben. Dies erlaubt einerseits für jedes
Window eine eigene Liste, andererseits kann eine Liste aber auch für mehrere Windows verwendet werden.
Befehl: MenuTitle
Syntax: MenuTitle Menülistennummer,Menü,Titel$
Modus: Amiga/Blitz
MenuTitle wird benutzt, um einen Menütitel (Überschrift) in eine Menüliste einzufügen.
Die Menütitelleiste wird angezeigt, wenn die rechte Maustaste gedrückt wird und Menüpunkte hinzugefügt wurden.
Menü bestimmt die Reihenfolge der Titel. Höher numerierte Menüs erscheinen weiter
rechts in der Menüleiste, mit 0 beginnt das Menü links. Menütitel werden von links
nach rechts hinzugefügt, begonnen wird mit dem Erzeugen von Menü 0 als erstem Menü,
dann Menü 1 und so weiter...
Titel$ ist der Text, der angezeigt werden soll, wenn die rechte Maustaste gedrückt wird.
Beispiel:
MenuTitle 0,0,"PROJECT" ;erstelle einen Menütitel
MenuItem 0,0,0,0,"QUIT" ;und einen Eintrag
MenuTitle 0,1,"EDIT" ;ein anderer Titel
MenuItem 0,0,1,0,"CUT" ;und noch ein paar Teile
MenuItem 0,0,1,1,"COPY" ;...
Screen 0,3,"Menus Example" ;ein Intuition-Bildschirm und ein Window
Window 0,0,12,320,DispHeight-12,$100f,"Rechte Maustaste halten...",1,0
SetMenu 0 ;Menüliste dem Window hinzufügen
Repeat ;warte ... bis 'QUIT' angewählt wird
Until WaitEvent=256 AND MenuHit=0 AND ItemHit=0
siehe auch: MenuItem, ShapeItem, SubItem, ShapeSub
Befehl: MenuItem
Syntax: MenuItem Menülistennummer,Flags,Menü,Item,Itemtext$[,Shortcut$]
Modus: Amiga/Blitz
MenuItem erstellt einen Textmenüpunkt. Die Menüpunkte werden "heruntergeklappt", wenn
mit gedrückter rechter Maustaste über den dazugehörigen Menütitel gefahren wird.
Flags beeinflußt den Menüpunkt folgendermaßen:
Ein Wert von 0 erzeugt einen "normalen" Auswahl-Menüpunkt.
Ein Wert von 1 erzeugt einen "Toggle"-Menüpunkt. Toggle-Menüpunkte wechseln bei
der Anwahl zwischen einem "AN"- oder "AUS"-Status. Ein "AN"-Toggle-Menüpunkt wird durch einen
"Haken" oder einer Kontrollmarke identifiziert.
Ein Wert von 2 erzeugt eine spezielle Art eines Toggle-Menüpunktes. Jeder Menüpunkt, der
unter demselben Menü mit gesetzten Flag 2 erzeugt wird, ist exklusiv veränderlich. Dies
bedeutet, daß sich zur selben Zeit nur ein Punkt im "AN"-Status befinden kann. Wenn ein Menüpunkt dieser Art in den
"AN"-Status geschaltet wird, schalten alle anderen exklusiv veränderlichen Menüpunkte, die auf "AN" stehen
können, automatisch auf "AUS".
Flags-Werte von 3 und 4 arbeiten
wie 1 und 2, allerdings erhält der Menüpunkt bei der
Initialisierung einen "AN"-Status.
Menü kennzeichnet den Menütitel, unter dem der Menüpunkt erscheinen soll.
Item ist die Menüpunktnummer, unter der der Menüpunkt verwaltet wird. Menüpunkte werden
von oben nach unten hinzugefügt, wobei 0 ganz oben erscheint. Höhere Nummern werden nach
unten angefügt.
Itemtext$ ist der aktuelle Text für den Menüpunkt
Shortcut ist optional. Hier kann eine 1-Zeichen-Tastatur-Kurzwahl für den Menüpunkt angegeben
werden.
Beispiel:
MenuTitle 0,0,"Testing" ;erstelle einen Menütitel
MenuItem 0,0,0,0,"Load","L" ;und ein Item (mit ShortCut!)
MenuItem 0,0,0,1,"Save","S" ;ein anderes Item
MenuItem 0,1,0,2,"ASCII ?" ;dies ist ein Toggle-Item!
MenuItem 0,0,0,3,"QUIT!!!!!"
Screen 0,3 ;ein Intuition-Bildschirm
Window 0,0,12,320,DispHeight-12,$100f,"Select a Menu...",1,2
SetMenu 0
Repeat ;auf 'Quit' warten
;hier nach bestimmten Menüs checken
Until WaitEvent=256 AND MenuHit=0 AND ItemHit=3
siehe auch: MenuTitle, ShapeItem, SubItem, ShapeSub
Befehl: ShapeItem
Syntax: ShapeItem Menülistennummer,Flags,Menü,Item,Shapenummer
Modus: Amiga/Blitz
ShapeItem erstellt einen Grafikmenüpunkt. Shapenummer gibt das
Shapeobjekt an, das als Grafik für den Menüpunkt dient. Alle anderen Parameter sind identisch mit den
MenuItem-Parametern.
Beispiel:
Screen 0,3 ;ein Intuition-Bildschirm
ScreensBitMap 0,0 ;benutze seine Bitmap
BitMapOutput 0 ;'Print' auf Bitmap umleiten
Cls ;lösche Bitmap
Print "LoadSaveQuit" ;etwas schreiben
GetaShape 0,0,0,32,8 ;'Load' als Shape 0
GetaShape 1,32,0,32,8 ;'Save' als Shape 1
GetaShape 2,64,0,32,8 ;und 'Quit' als Shape 3
Cls ;Bitmap wieder löschen
MenuTitle 0,0,"PROJECT" ;einen Menütitel erzeugen
For k=0 To 2 ;alle drei Shapes bearbeiten
Scale k,4,2 ;einen bißchen strecken
ShapeItem 0,0,0,k,k ;Shape als Menüeintrag benutzen
Next
Window 0,0,0,320,DispHeight,$100f,"Select a menu!",1,2
SetMenu 0 ;Menüliste dem Window hinzufügen
Repeat ;auf Quit warten
Until WaitEvent=256 AND MenuHit=0 AND ItemHit=2
siehe auch: MenuTitle, MenuItem, SubItem, ShapeSub
Befehl: SubItem
Syntax: SubItem Menülistennummer,Flags,Menu,Item,Subitem,Subitemtext$[,Shortcut$]
Modus: Amiga/Blitz
An jedem Menüpunkt kann eine optionale Untermenüpunktliste angefügt werden. Um einen Submenüpunkt an einen Menüpunkt
zu fügen, benutzen Sie das SubItem-Kommando.
Item kennzeichnet den Menüpunkt an dem der Untermenüpunkt angefügt wird.
Subitem ist die Untermenüpunktnummer, unter der der Untermenüpunkt verwaltet wird.
Untermenüpunkte werden von oben nach unten hinzugefügt, wobei 0 ganz oben erscheint.
Höhere Nummern werden nach unten angefügt.
Subitemtext$ ist der aktuelle Text für den Untermenüpunkt.
Die anderen Parameter sind identisch mit dem MenuItem-Kommando.
Beispiel:
MenuTitle 0,0,"PROJECT" ;erstelle einen Menütitel
MenuItem 0,0,0,0,"LOAD "+Chr$(187) ;Menüpunkt
SubItem 0,0,0,0,0,"PICTURE" ;Untermenüpunkte
SubItem 0,0,0,0,1,"BRUSH"
MenuItem 0,0,0,1,"QUIT"
Screen 0,3 ;ein Intuition-Bildschirm und ein Window
Window 0,0,12,320,DispHeight-12,$100f,"Select a menu...",1,2
SetMenu 0 ;Menüliste hinzufügen
Repeat ;warte auf 'Quit'
Until WaitEvent=256 AND MenuHit=0 AND ItemHit=1
siehe auch: MenuTitle, MenuItem, ShapeItem, ShapeSub
Befehl: ShapeSub
Syntax: ShapeSub Menülistennummer,Flags,Menü,Item,Subitem,Shapenummer
Modus: Amiga/Blitz
ShapeSub erstellt einen Grafikuntermenüpunkt. Shapenummer gibt das
Shapeobjekt an, das als Grafik für den Untermenüpunkt dient.
Alle anderen Parameter sind identisch mit den SubItem-Befehl.
Befehl: SetMenu
Syntax: SetMenu Menülistennummer
Modus: Amiga/Blitz
SetMenu fügt die Menüliste dem aktuell benutzten Window zu. Jedem Window kann nur eine Menüliste
zugefügt werden.
Befehl: MenuGap
Syntax: MenuGap X-Gap,Y-Gap
Modus: Amiga/Blitz
Das Ausführen von MenuGap vor Erstellen von Menütitel, -punkten oder -unterpunkten erlaubt Ihnen
eine Kontrolle des Menü-Layouts.
X-Gap legt einen Abstand, angegeben in Pixel, fest, der links und rechts aller Menüpunte und
Submenüpunkte eingefügt wird. Y-Gap legt einen Abstand, angegeben in Pixel, fest, der
oberhalb und unterhalb aller Menüpunte und Submenüpunkte eingefügt wird.
Beispiel:
MenuGap 32,16 ;setze einen GROßEN Abstand
MenuTitle 0,0,"PROJECT" ;Menüliste 0 erstellen
MenuItem 0,0,0,0,"LOAD"
MenuItem 0,0,0,1,"SAVE"
MenuItem 0,0,0,2,"QUIT"
MenuTitle 0,1,"EDIT"
MenuItem 0,0,1,0,"CUT"
MenuItem 0,0,1,1,"COPY"
MenuItem 0,0,1,2,"PASTE"
Screen 0,3 ;ein Intuition-Bildschirm und ein Window...
Window 0,0,0,320,DispHeight,$100f,"Select a menu...",1,2
SetMenu 0 ;Liste hinzufügen
Repeat ;auf Quit warten
Until WaitEvent=256 AND MenuHit=0 AND ItemHit=2
Befehl: SubItemOff
Syntax: SubItemOff X-Offset,Y-Offset
Modus: Amiga/Blitz
SubItemOff erlaubt die Kontrolle über die relative Position des Anfanges einer Liste von
Untermenüpunkten, in Relation zu ihren dazugehörigen Menüpunkt. Immer, wenn ein Menüpunkt erstellt wird, der
Untermenüpunkte hat, ist es eine gute Idee, dem Namen des Menüpunktes die Zeichen ">>" anzufügen.
Benutzen Sie hierfür Chr$(187). Der Anwender wird hierdurch optisch auf weitere verfügbare Optionen hingewiesen. Um die
Untermenüpunkte richtig zu plazieren und neben den ">>"-Zeichen erscheinen zu lassen, können Sie
SubItemOff verwenden.
Beispiel:
MenuTitle 0,0,"Test"
MenuItem 0,0,0,0,"More "+Chr$(187)+" "
SubItemOff 60,8
SubItem 0,0,0,0,0,"One Sub Menu Item..."
SubItem 0,0,0,0,1,"Two Sub Menu Items.."
MenuItem 0,0,0,1,"QUIT"
Screen 0,3
Window 0,0,0,320,DispHeight,$100f,"Select a menu...",1,2
SetMenu 0
Repeat
Until WaitEvent=256 AND MenuHit=0 AND ItemHit=1
Befehl: MenuState
Syntax: MenuState Menülistennummer[,Menü[,Item[,Subitem]]],On/Off
Modus: Amiga/Blitz
MenuState erlaubt das Aus- oder Einschalten von Menüs oder von Teilen des Menüs.
MenuState nur mit dem Menülistennummer-Parameter schaltet die
entsprechende Menüliste an oder aus.
MenuState mit Menülistennummer und dem Menü-Parameter schaltet
ein Menü der Liste ein oder aus.
Vergleichbares gilt für die Menüpunkte (Item-Parameter) und die Untermenüpunkte
(Subitem-Parameter).
Befehl: MenuColour
Syntax: MenuColour Farbe
Modus: Amiga/Blitz
MenuColour erlaubt die Angabe einer Menüpunkt- oder Untermenüpunkttextfarbe.
Führen Sie MenuColour aus, bevor Sie Menüpunktkommandos aufrufen.
Beispiel:
MenuTitle 0,0,"COLOUR" ;Menütitel erstellen
MenuColour 1 ;nächster Eintrag in Farbe 1
MenuItem 0,0,0,0,"LOAD" ;so siehts aus
MenuColour 2 ;jetzt Farbe 2
MenuItem 0,0,0,1,"SAVE"
MenuColour 3 ;und 3...
MenuItem 0,0,0,2,"QUIT"
Screen 0,3 ;ein Intuition-Bildschirm und ein Window
Window 0,0,0,320,DispHeight,$100f,"Select a menu...",1,2
SetMenu 0 ;unsere Menüs hinzufügen
Repeat ;auf 'Quit' warten
Until WaitEvent=256 AND MenuHit=0 AND ItemHit=2
Funktion: MenuChecked
Syntax: MenuChecked(Menülistennummer,Menü,Item[,Subitem])
Modus: Amiga/Blitz
Ist der zu überprüfende Menü- oder Untermenüpunkt auf "an" geschaltet, übergibt die Funktion
"richtig"(-1), andernfalls "falsch"(0).
Beispiel:
MenuTitle 0,0,"TEST!" ;erstelle Titel
MenuItem 0,1,0,0,"OK TO QUIT?" ;ein Toggle-Menüpunkt
MenuItem 0,0,0,1,"QUIT" ;ein normaler
Screen 0,3 ;ein Intuition-Bildschirm und ein Window
Window 0,0,0,320,DispHeight,$140f,"Select a menu...",1,2
Repeat
a.l=WaitEvent ;auf ein Event warten
If a=256 AND ItemHit=1 ;ist es Quit?
If MenuChecked(0,0,0) ;ist Eintrag 0 'an'?
End ; JA - dann weg hier!
Else
WLocate 0,0 ;sonst sag es dem Anwender
Print "Quit nicht ermöglicht"
EndIf
EndIf
Forever
siehe auch: MenuItem, ShapeItem, SubItem, ShapeSub
|
|
|
|
|