Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File8.7.1 evnt_button TOS Name: »Event Button« - wartet auf einen Mausknopfereignis. AES-Nummer: 21 Deklaration: int16_t evnt_button ( int16_t ev_bclicks, int16_t ev_bmask, int16_t ev_bstate, int16_t *ev_bmx, int16_t *ev_bmy, int16_t *ev_bbutton, int16_t *ev_bkstate ); Beschreibung: Die Funktion wartet auf einen Button-Event, d.h. bis die in ev_bmask spezifizierten Mausknöpfe in den in ev_bstate angegeben Zustand versetzt werden. Genauer: Die Funktion wartet bis das verlangte Ereignis einmal eingetreten ist. Danach wird gewartet und kontrolliert, ob das Ereignis noch einmal auftritt. Falls das Ereignis ev_bclicks mal eingetreten (oder die über evnt_dclick einstellbare Zeit abgelaufen) ist, kehrt die Funktion sofort zurück. Parameter Bedeutung ev_bclicks maximale Anzahl der Klicks ev_bmask einen Bitvektor, der die zu betrachtenden Knöpfe mit einer 1 maskiert. Dabei gilt Bit-0 = linker Knopf Bit-1 = rechter Knopf. Bit-2 = mittlerer Knopf, PC-GEM ev_bstate einen Bitvektor wie ev_bmask, der für jeden Knopf festlegt welchen Status er erreichen muß. Es gilt: 0 = nicht gedrückt 1 = gedrückt ev_bmx ev_bmy die x bzw. y Koordinate der Maus zum Zeitpunkt des Auftretens des Ereignisses ev_bbutton der Zustand der Mausknöpfe beim Auftreten des Ereignisses (analog ev_bstate) ev_bkstate den Zustand der Sondertasten der Tastatur beim Auftreten des Ereignisses 0x001 = rechte Shifttaste 0x002 = linke Shifttaste 0x004 = Controltaste 0x008 = Alternatetaste Bei gedrückter Taste wird das entsprechende Bit gesetzt Hinweis: Ab PC-GEM/3 unterstützen die Event-Funktionen nur noch eine Maustaste. Obwohl offiziell nicht dokumentiert, ist es auch möglich beide Maustasten unabhängig voneinander abzufragen. Die folgende Methode wird z.B. vom Atari-Desktop benutzt, und funktioniert seit TOS 1.0: ev_bclicks += 0x100; In diesem Fall wird auf das folgende Ereignis gewartet: (ev_bstate & ev_bmask) != (*ev_bbutton & ev_bmask) Ergebnis: Die Funktion liefert die Anzahl der tatsächlich vorgenommenen Mausklicks. Verfügbar: All AES versions. Gruppe: Ereignisverwaltung Querverweis: Binding evnt_multi Nachrichten