/* * EVNT_BUTTON (C) Digital Design 1990 * * AES wartet, bis einer (oder mehrere) Mauskn”pfe bet„tigt werden. */ #include int evnt_button( int ev_bclicks, int ev_bmask, int ev_bstate, int *ev_bmx, int *ev_bmy, int *ev_bbutton, int *ev_bkstate ) { intin[0] = ev_bclicks; /* Die Anzahl der "Mausklicks", die zu einer * * Reaktion der Applikation fhren sollen. * * Gew”hnlich wird der Wert 1 fr einfachen * * Tastendruck oder 2 fr einen Doppelklick * * verwendet. Gr”žere Werte sollten Sie nicht * * angeben, denn nicht jeder Benutzer besitzt * * die F„higkeit, den Mausknopf in Sekunden- * * bruchteilen mehrmals zu bet„tigen. */ intin[1] = ev_bmask; /* Jeder Mausknopf, der bei der Abfrage der * * Maustasten bercksichtigt werden soll, wird * * durch ein gesetztes Bit repr„sentiert: * * 01 = linker Knopf * * 02 = rechter Knopf * * 03 = beide Kn”pfe */ intin[2] = ev_bstate; /* Hier wird festgelegt, welcher Zustand der in * * ev_bmask spezifizierten Maustasten bei der * * Ausl”sung des Ereignisses relevant sein * * soll. Dabei gilt die gleiche Bitbelegung wie * * oben, die Bitwerte haben folgende Bedeutung: * * 0 = Knopf nicht bet„tigt * * 1 = Knopf bet„tigt */ AES( 21, 3, 5, 0, 0 ); *ev_bmx = intout[1]; /* X-Koordinate des Mauszeigers zum Zeitpunkt * * der Tastenbet„tigung */ *ev_bmy = intout[2]; /* Y-Koordinate des Mauszeigers zum Zeitpunkt * * der Tastenbet„tigung */ *ev_bbutton = intout[3]; /* Bet„tigte Mauskn”pfe; Werte wie bei * * ev_bmask und ev_bstate */ *ev_bkstate = intout[4]; /* Status der Tasten der Tastatur, die * * keinen ASCII-Kode senden. Folgende * * Bit-Werte gelten: * * 1 = rechte Shift-Taste * * 2 = linke Shift-Taste * * 4 = Control-Taste * * 8 = Alternate-Taste * * Bit = 0: Taste nicht bet„tigt * * Bit = 1: Taste bet„tigt */ return intout[0]; /* = ev_breturn: Gibt an, wie oft der Mausknopf * * bet„tigt wurde, diese Zahl liegt zwischen 1 und * * ev_bclicks. */ } /* siehe auch: ÝEVNT_MULTIÝEVNT_MUL.CÝ */