/*
 *  EVNT_BUTTON                                 (C) Digital Design 1990
 *
 *  AES wartet, bis einer (oder mehrere) Mausknpfe bettigt werden.
 */
#include <gemdefs.h>

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Ý */
