Referenzhandbuch
|
Kapitel 36
|
Gadgets
AmiBlitz2 unterstützt das Anfertigen und Benutzen von Intuition-Gadgets. Dies wird durch die Nutzung von Gadgetlistenobjekten
möglich. Jede Gadgetliste kann eine oder mehrere Arten von verfügbaren Gadgets beinhalten und diese einem Window, das mit
dem Window-Befehl geöffnet wurde, zuweisen.
Es folgt eine Tabelle der Gadgetflags und Gadgetarten:
Bit# |
n |
Bedeutung |
Text |
String |
Prop |
Shape |
0 |
1 |
Toggle an/aus |
ja |
nein |
nein |
ja |
1 |
2 |
Relativ zur rechten Seite des Windows |
ja |
ja |
ja |
ja |
2 |
4 |
Relativ zur Oberkante des Windows |
ja |
ja |
ja |
ja |
3 |
8 |
Größe relativ zur Breite des Windows |
nein |
nein |
ja |
nein |
4 |
16 |
Größe relativ zur Höhe des Windows |
nein |
nein |
ja |
nein |
5 |
32 |
Boxanwahl |
ja |
ja |
ja |
ja |
6 |
64 |
PropGadget, horizontal einstellbar |
nein |
nein |
ja |
nein |
7 |
128 |
PropGadget, vertikal einstellbar |
nein |
nein |
ja |
nein |
8 |
256 |
Keine Umrandung um PropGadget-Container |
nein |
nein |
ja |
nein |
Anmerkung:
Es ist möglich, negative Werte für die relative Breite und Höhe anzugeben. Werden negative Werte für die relative
Breite und/oder Höhe angegeben, berechnet Intiution die tatsächliche Breite als Windowbreite + Gadgetbreite, selbes gilt
für die Höhe.
Befehl: TextGadget
Syntax: TextGadget Gadgetlistennummer,X,Y,Flags,Id,Text$
Modus: Amiga/Blitz
Das TextGadget-Kommando fügt ein Textgadget in die Gadgetliste
Gadgetlistennummer ein. Ein Textgadget ist eine einfache Gadget-Form. Es besteht aus einer Zeichenfolge
und einer optionalen Umrandung.
Die Flags werden aus der obigen Liste gewählt.
Boolsche Gadgets sind die einfachste Art von verfügbaren Gadgets. Boolsche Gadgets sind "aus", bis der Programmanwender mit
der Maus darauf "klickt". Das Gadget ist jetzt "an". Wird die Maustaste losgelassen, schaltet das Gadget in den
"aus"-Status zurück. Diese Gadgets werden oft als CANCEL- oder OK- Gadgets verwendet.
Toggle-Gadgets ändern beim Anklicken ihren Status zwischen "an" und "aus". Wird z.B. ein Toggle-Gadget angeklickt,
das "an" ist, wechselt es auf "aus" und umgekehrt.
Die Parameter X und Y legen fest, wo im Window das Gadget erscheint.
In Abhängigkeit mit den gesetzten Flags kann das Gadget relativ zu allen vier Ecken des Windows plaziert werden. Soll das Gadget
relativ zur rechten oder unteren Ecke des Windows plaziert werden, müssen negative Werte angegeben werden.
Id ist ein Identifikationswert für das Gadget. Jedes Gadget einer Liste wird mit unterschiedlichen
Nummern versehen, um das Herausfinden eines angewählten Gadgets zu ermöglichen. Erlaubt sind positive Zahlen (keine Null).
Text$ ist der Text, der im Gadget erscheinen soll.
Beispiel:
TextGadget 0,8,180,0,1," EXIT " ;der Gadgetlist 0 hinzufügen
TextGadget 0,216,180,0,2," Bleiben " ;dieses auch
Screen 0,3 ;ein Intuition-Bildschirm
Window 0,0,0,320,200,$100f,"GADGETS!",1,2,0
Repeat ;auf 'EXIT' warten
Until WaitEvent=64 AND GadgetHit=1
siehe auch: ShapeGadget, PropGadget, StringGadget
Befehl: GadgetPens
Syntax: GadgetPens Vordergrundfarbe[,Hintergrundfarbe]
Modus: Amiga/Blitz
GadgetPens legt die Zeichenfarben des Textes eines Textgadgets fest. Voreingestellt ist die Farbe
1 für den Vordergrund und Farbe 0 für den Hintergrund.
Beispiel:
BorderPens 3,3 ;Gadgetrand-Farben ändern
TextGadget 0,8,DispHeight-16,0,1," OK "
GadgetPens 2 ;Gadgetpens ändern
TextGadget 0,320-88,DispHeight-16,0,2," CANCEL "
Screen 0,3 ;ein Intuition-Bildschirm
RGB 1,0,15,0 ;einige Farben setzen
RGB 2,15,0,0
RGB 3,15,15,15
Window 0,0,0,320,DispHeight,$100f,"Mein Window",0,0,0
Repeat ;auf Gadget-Hit warten
Until WaitEvent=64
siehe auch: GadgetJam
Befehl: GadgetJam
Syntax: GadgetJam Jammode
Modus: Amiga/Blitz
Hiermit kann die Textdarstellung im Textgadget verändert werden. Eine genaue Beschreibung des
Jammode-Parameters finden Sie unter dem WJam-Kommando.
siehe auch: GadgetPens
Befehl: ShapeGadget
Syntax: ShapeGadget Gadgetlistennummer,X,Y,Flags,Id,Shapenummer
Modus: Amiga/Blitz
ShapeGadget ermöglicht das Anfertigen eines Grafikgadgets. Die Grafik wird durch das Shape
Shapenummer erzeugt. Alle anderen Parameter entsprechen dem TextGadget-Befehl.
Beispiel:
Screen 0,3
ScreensBitMap 0,0
For k=7 To 1 Step -1
Circlef 16,16,k*2,k
Next
GetaShape 0,0,0,32,32
ShapeGadget 0,148,50,0,1,0
TextGadget 0,140,180,0,2," EXIT "
Window 0,0,0,320,200,$100f,"More Gadgets!",1,2,0
Repeat
Until WaitEvent=64 AND GadgetHit=2
siehe auch: TextGadget, StringGadget, PropGadget
Befehl: Toggle
Syntax: Toggle Gadgetlistennummer,Id,On/Off
Modus: Amiga/Blitz
Toggle erlaubt ein Textgadget oder Shapegadget auf "an" oder "aus" zu schalten, wenn das
Gadget mit gesetzten "Toggle"-Flag erzeugt wurde. Das Aussehen wird nicht verändert, wenn das Gadget schon dargestellt wird.
siehe auch: TextGadget
Befehl: StringGadget
Syntax: StringGadget Gadgetlistennummer,X,Y,Flags,Id,Maxlänge,Breite
Modus: Amiga/Blitz
StringGadget erlaubt das Erstellen eines "Texteingabe"-Gadgets. Beim Anklicken wird ein Cursor in
das Gadget gebracht und eine Texteingabe ermöglicht.
Maxlänge gibt die Anzahl der Zeichen an, die maximal eingegeben werden dürfen.
Breite legt die Breite des Gadgets fest. Ist die Breite kleiner als die
Maxlänge Zeichen, wird der eingegebene Text bei Bedarf gescrollt. Die anderen Parameter entsprechen
TextGadget.
Die Eingaben können mit der StringText$-Funktion gelesen werden.
Beispiel:
StringGadget 0,80,16,0,1,40,160 ;String-Gadget der Liste 0 hinzufügen
StringGadget 0,80,32,0,2,40,160 ;ein weiteres String-Gadget
TextGadget 0,8,180,0,3," EXIT " ;und ein Exit-Gadget
Screen 0,3 ;ein Intuition-Bildschirm und ein Window
Window 0,0,0,320,200,$100f,"String-Gadgets!",1,2,0
WLocate 8,8 ;etwas schreiben
Print "Name:"
WLocate 8,24 ;und noch was
Print "Adresse:"
Repeat ;auf 'QUIT' warten
Until WaitEvent=64 AND GadgetHit=3
siehe auch: TextGadget, ShapeGadget, PropGadget, StringText$, ActivateString, ClearString, ResetString
Funktion: StringText$
Syntax: StringText$(Gadgetlistennummer,Id)
Modus: Amiga/Blitz
StringText$ übernimmt den Text, der im gültigen Stringgadget eingegeben wurde.
Beispiel:
StringGadget 0,128,16,0,1,40,160 ;ein String-Gadget
TextGadget 0,8,180,0,2," EXIT " ;und ein Exit-Gadget
Screen 0,3 ;ein Intuition-Bildschirm und Window
Window 0,0,0,320,200,$100f,"StringText$-Demo...",1,2,0
WLocate 4,8
Print "Type your name:"
ActivateString 0,1 ;String-Gadget einschalten
Repeat ;auf 'EXIT' warten
a.l=WaitEvent If a=64 AND GadgetHit=1 ;String-Eintrag komplett?
WLocate 8,96
Print Centre$("Hello there "+StringText$(0,1),38)
ClearString 0,1
Redraw 0,1
ActivateString 0,1
EndIf
Until a=64 AND GadgetHit=2
siehe auch: StringGadget
Befehl: ActivateString
Syntax: ActivateString Windownummer,Id
Modus: Amiga/Blitz
ActivateString ermöglicht ein "automatisches" Aktivieren eines Stringgadgets (aktiviert ein
String-Gadget, ohne daß der Anwender das Gadget anwählen muß).
Beispiel:
StringGadget 0,128,16,0,1,40,160 ;erzeuge ein String-Gadget
TextGadget 0,8,180,0,2," EXIT " ;und ein Exit-Gadget
Screen 0,3 ;ein Intuition-Bildschirm und ein Window
Window 0,0,0,320,200,$100f,"String-Gadget aktiviert...",1,2,0
WLocate 4,8 ;Fragen...
Print "Type your name:"
ActivateString 0,1 ;Gadget aktivieren
Repeat ;auf 'EXIT' warten
Until WaitEvent=64 AND GadgetHit=2
siehe auch: StringGadget, ResetString, ClearString
Befehl: ResetString
Syntax: ResetString Gadgetlistennummer,Id
Modus: Amiga/Blitz
ResetString erlaubt ein "Rücksetzen" des Stringgadgets. Der Stringgadgetcursor wird wieder an
die linke Position im Gadget gesetzt.
Beispiel:
StringGadget 0,128,16,0,1,40,160 ;ein String-Gadget
TextGadget 0,8,180,0,2," EXIT " ;und ein Exit-Gadget
Screen 0,3 ;ein Intuition-Bildschirm und ein Window
Window 0,0,0,320,200,$100f,"ResetString Demo...",1,2,0
WLocate 4,8
Print "Type your name:" ;Nachfragen...
ActivateString 0,1 ;und für sie auf das Gadget klicken
Repeat ;wiederhole
a.l=WaitEvent ;auf ein Event warten
If a=64 AND GadgetHit=1 ;String-Eintrag komplett
ResetString 0,1 ;ja, löschen
ActivateString 0,1 ;und wieder aktivieren
EndIf
Until a=64 AND GadgetHit=2 ;bis Gadget 'QUIT' gwählt wurde
siehe auch: StringGadget, ActivateString, ClearString
Befehl: ClearString
Syntax: ClearString Gadgetlistennummer,Id
Modus: Amiga/Blitz
ClearString löscht den im Stringgadget eingegebenen Text und setzt den Cursor an die linke
Stringgadgetposition. Wenn das Stringgadget beim Löschen angezeigt wurde, wird die Textanzeige nicht gelöscht. Hierfür
müssen Sie ReDraw ausführen.
Beispiel:
StringGadget 0,128,16,0,1,40,160 ;ein String-Gadget
TextGadget 0,8,180,0,2," EXIT " ;und ein Exit-Gadget
Screen 0,3 ;ein Intuition-Bildschirm und ein Window
Window 0,0,0,320,200,$100f,"ClearString Demo...",1,2,0
WLocate 4,8
Print "Type your name:"
ActivateString 0,1 ;String-Gadget aktivieren
Repeat ;wiederhole...
a.l=WaitEvent ;auf ein Ereignis warten
If a=64 AND GadgetHit=1 ;String-Eintrag fertig?
ClearString 0,1 ;ja - löschen!
Redraw 0,1 ;neu zeichnen
ActivateString 0,1 ;und String-Gadget wieder aktivieren
EndIf
Until a=64 AND GadgetHit=2
siehe auch: StringGadget, ActivateString, ResetString
Befehl: SetString
Syntax: SetString Gadgetlistennummer,Id,String$
Modus: Amiga/Blitz
SetString erlaubt die übergabe eines vorgegebenen Strings in das Stringgadget. Wird das Stringgadget
bereits angezeigt, benötigen Sie ReDraw, um den Vorgabestring anzuzeigen.
siehe auch: ReDraw, StringGadget, GadgetText$
Befehl: PropGadget
Syntax: PropGadget Gadgetlistennummer,X,Y,Flags,Id,Breite,Höhe
Modus: Amiga/Blitz
PropGadget erlaubt das Erstellen eines Proportionalgadget (Schiebereglergadget). Proportionalgadgets erlauben
dem Anwender über "Schiebeleisten" Einstellungen vorzunehmen. Zu finden sind diese Gadgets in vielen Malprogrammen als
RGB-"Schieberegler" (Farbeinstellung). Proportionalgadgets besitzen 2 Hauptteile - eine "Pot"- (kurz für
Potentiometer) und eine "Body"-Einstellung.
Die Pot-Einstellung gibt die gültige Position des Schiebereglers an und liegt im Bereich von 0 bis 1. Beispiel: Wenn der Schieberegler
eines Proportionalgadgets bis in die Mitte bewegt wurde, hat es eine Poteinstellung von 0.5.
Die Bodyeinstellung gibt die Benutzungsgröße des Proportionalgadgets an und liegt ebenfalls im Bereich von 0 bis 1. Nehmen wir
hier noch einmal RGB-Farbregler als Beispiel: Jeder Schieber kann Werte im Bereich von 0 bis 15 anzeigen bzw. einstellen. Dies entspricht
einer Benutzungsgröße oder Bodyeinstellung von 1/16 oder 0.0625.
Proportionalgadgets können horizontal oder vertikal ausgerichtete Schieber wiedergeben oder eine Kombination von beiden.
Näheres zu den Flageinstellungen finden Sie am Anfang dieses Kapitels.
X und Y legen die Gadgetposition, relativ zur linken, oberen Ecke des
Windows, in dem es geöffnet wurde, fest.
Breite und Höhe legen die Größe der Fläche fest,
in der ein Bewegen der Schieber erlaubt ist.
Id ist eine einmalige (nicht Null) Nummer, mit der es möglich ist, Manipulationen an Gadgets zu
identifizieren.
In Verbindung mit Prop-Gadgets werden die Kommandos SetVProp und SetHProp verwendet,
zum Lesen die Funktionen VPropPot, VPropBody, HPropPot
und HPropBody.
Beispiel:
PropGadget 0,8,16,128+256,1,8,64 ;füge Rot-Schieber der Liste 0 hinzu
PropGadget 0,24,16,128+256,2,8,64 ;Grün-Schieber
PropGadget 0,40,16,128+256,3,8,64 ;Rot-Schieber
TextGadget 0,8,180,0,4," QUIT " ;und natürlich ein Quit-Gadget!
For k=1 To 3 ;durch die Regler gehen
SetVProp 0,k,0,1/16 ;und bei allen pot=0 und body=1/16 setzen
Next
Screen 0,3 ;ein Intuition-Bildschirm
RGB 0,0,0,0 ;Farbe 0 auf schwarz (gleich den Reglern)
Window 0,0,0,320,200,$100f,"R G B Sliders!",1,3,0
WLocate 4,72 ;Schieber bezeichnen
Print "R G B"
Repeat ;wiederhole
a.l=WaitEvent ;warte auf ein Event
Select a ;was ist passiert?
Case 32 ;Gadget unten, eines wurde gedrückt
If GadgetHit<>4 ;falls es nicht 'QUIT' war
Repeat ;wiederhole...
RGB 0,VPropPot(0,1)*16,VPropPot(0,2)*16,VPropPot(0,3)*16
Until Event=64 ;bis der Regler losgelassen wird
EndIf
Case 64 ;ein Schieber wurde losgelassen
If GadgetHit=4 Then End ;falls es 'QUIT' war, dann halte dich daran...
RGB 0,VPropPot(0,1)*16,VPropPot(0,2)*16,VPropPot(0,3)*16
End Select
Forever
MouseWait
siehe auch: SetHProp, HPropPot, HPropBody, VPropPot, VPropBody
Befehl: SetHProp
Syntax: SetHProp Gadgetlistennummer,Id,Pot,Body
Modus: Amiga/Blitz
SetHProp setzt die Schieberegler eines Proportionalgadgets in horizontaler Richtung.
Pot und Body müssen beide im Bereich von
0 bis 1 liegen. Wird SetHProp bei
einem schon angezeigten Prop-Gadget ausgeführt, muß ebenfalls das ReDraw-Kommando durchgeführt
werden, um die Änderungen auf dem Bildschirm sichtbar zu machen.
Weitere Informationen finden Sie unter dem PropGadget-Befehl.
siehe auch: SetVProp, HPropPot, HPropBody, VPropPot, VPropBody
Befehl: SetVProp
Syntax: SetVProp Gadgetlistennummer,Id,Pot,Body
Modus: Amiga/Blitz
SetVProp setzt die Schieberegler eines Proportionalgadgets in vertikaler Richtung.
Pot und Body müssen beide im Bereich von
0 bis 1 liegen. Wird SetVProp bei
einem schon angezeigten Prop-Gadget ausgeführt, muß ebenfalls das ReDraw-Kommando durchgeführt
werden, um die Änderungen auf dem Bildschirm sichtbar zu machen.
Weitere Informationen finden Sie unter dem PropGadget-Befehl.
siehe auch: SetHProp, HPropPot, HPropBody, VPropPot, VPropBody
Funktion: HPropPot
Syntax: HPropPot(Gadgetlistennummer,Id)
Modus: Amiga/Blitz
Die Funktion erlaubt es Ihnen, die aktuelle "Pot"- Einstellung des Proportional-Gadget festzustellen. Die Funktion gibt eine Zahl
von 0 bis, aber nicht inklusive, 1 zurück, die die aktuelle
horizontale Poteinstellung des Gadgets wiedergibt.
Weitere Informationen finden Sie unter dem Kommando PropGadget.
siehe auch: VPropPot, HPropBody, VPropBody
Funktion: HPropBody
Syntax: HPropBody(Gadgetlistennummer,Id)
Modus: Amiga/Blitz
Die Funktion erlaubt es Ihnen, die aktuelle "Body"- Einstellung des Proportional-Gadget festzustellen. Die Funktion gibt eine
Zahl von 0 bis, aber nicht inklusive, 1 zurück, die die
aktuelle horizontale Bodyeinstellung des Gadgets wiedergibt.
Weitere Informationen finden Sie unter dem Kommando PropGadget.
siehe auch: VPropPot, HPropPot, VPropBody
Funktion: VPropPot
Syntax: VPropPot(Gadgetlistennummer,Id)
Modus: Amiga/Blitz
Die Funktion erlaubt es Ihnen, die aktuelle "Pot"-Einstellung des Proportional-Gadget festzustellen. Die Funktion gibt eine
Zahl von 0 bis, aber nicht inklusive, 1 zurück, die die
aktuelle vertikale Poteinstellung des Gadgets wiedergibt.
Weitere Informationen finden Sie unter dem Kommando PropGadget.
siehe auch: HPropPot, HPropBody, VPropBody
Funktion: VPropBody
Syntax: VPropBody(Gadgetlistennummer,Id)
Modus: Amiga/Blitz
Die Funktion erlaubt es Ihnen, die aktuelle "Body"-Einstellung des Proportional-Gadget festzustellen. Die Funktion gibt eine
Zahl von 0 bis, aber nicht inklusive, 1 zurück, die die
aktuelle vertikale Bodyeinstellung des Gadgets wiedergibt.
Weitere Informationen finden Sie unter dem Kommando PropGadget.
siehe auch: VPropPot, HPropPot, HPropBody
Befehl: ReDraw
Syntax: ReDraw Windownummer,Id
Modus: Amiga/Blitz
ReDraw wird verwendet, um das Gadget im gewählten Window neu auszugeben. Benutzen Sie
ReDraw, um Veränderungen in StringGadgets oder PropGadgets auch auf dem Bildschirm anzuzeigen, wenn diese
Gadgets schon vorher sichtbar (ausgegeben) waren. (SetHProp, SetVProp,
ClearString)
Befehl: Borders
Syntax: Borders [On/Off]/[Breite/Höhe]
Modus: Amiga/Blitz
Borders bietet Ihnen zwei Verwendungmöglichkeiten. Erstens: Borders ermöglicht es Ihnen, das automatische Umranden eines Text-
oder Stringgadgets an- oder auszuschalten. Umrandungen werden angefertigt, wenn ein TextGadget- oder
StringGadget-Befehl ausgeführt wurde. Möchten Sie keine Umrandungen, führen Sie
Borders Off aus, bevor Sie den TextGadget- oder
StringGadget-Befehl verwenden. Als 2. Möglichkeit kann der Abstand zwischen dem Gadget und dessen
Umrandung angegeben werden. Breite gibt den links/rechts Abstand an,
Höhe den oben/unten-Abstand.
Beispiel:
Borders Off ;Umrandungen abschalten
TextGadget 0,8,16,0,1,"NO BORDERS" ;ein Gadget
Borders On ;Umrandungen einschalten
TextGadget 0,8,32,0,2,"BORDERS" ;noch ein Gadget
Borders 16,8 ;Umrandungsstärke einstellen
TextGadget 0,8,64,0,3,"BIG BORDERS!" ;wieder ein Gadget
Borders 8,4 ;dies ist die voreingestellte Umrandungsstärke
TextGadget 0,8,180,0,4," QUIT " ;ein QUIT-Gadget
Screen 0,3 ;ein Intuition-Bildschirm und Window...
Window 0,0,0,320,200,$100f,"Select a gadget...",1,2,0
Repeat ;auf 'Quit' warten
Until WaitEvent=64 AND GadgetHit=4
Befehl: BorderPens
Syntax: BorderPens Lichtfarbe,Schattenfarbe
Modus: Amiga/Blitz
BorderPens bestimmt die Farben der Umrandung eines Gadgets. Gadgetumrandungen werden mit den Befehlen
TextGadget, StringGadget oder GadgetBorder kreiert.
Lichtfarbe bestimmt die Farbe des oberen und linken Randes.
Schattenfarbe bestimmt die Farbe des rechten und unteren Randes.
Der voreingestellte Wert für Lichtfarbe ist 1, für
Schattenfarbe 2.
Beispiel:
BorderPens 2,1 ;Gadgetumrandungsfarbe ändern
TextGadget 0,8,DispHeight-16,0,1," OK "
TextGadget 0,320-88,DispHeight-16,0,2," CANCEL "
Screen 0,2 ;ein Intuition-Bildschirm
RGB 0,6,6,6 ;einige Farben einstellen
RGB 1,15,15,15
RGB 2,0,0,0
RGB 3,15,15,0
Window 0,0,0,320,DispHeight,$100f,"My Window",0,0,0
Repeat ;auf Gadget warten
Until WaitEvent=64
siehe auch: Border
Befehl: GadgetBorder
Syntax: GadgetBorder X,Y,Breite,Höhe
Modus: Amiga/Blitz
Der Befehl wird benutzt, um rechteckige Umrandungen im aktuell benutzten Window zu zeichnen.
Prop- und Shapegadgets werden nicht automatisch mit einer Umrandung versehen. Möchten Sie eine Umrandung auch bei diesen Gadgets,
können Sie GadgetBorder benutzen.
X und Y geben die Position des Gadgets an,
Breite und Höhe die Größe. Ein Abstand zwischen
Gadget und Rand wird automatisch hinzugefügt. Mit Border kann der Abstand verändert werden.
Natürlich zeichnet GadgetBorder einen Rand um jede gewählte Fläche, egal ob sich innerhalb
dieser Fläche ein Gadget befindet oder nicht.
siehe auch: Border
|