' WaitMsg 1.0 (w)ritten in 1991 by Falk Brockerhoff
'                                  Dammstr. 12
'                                  D-4100 Duisburg 13
'                                  Tel.:0203/85319
'
' Dieses Programm ist Freeware! Dieses PRG darf ohne meine
' SCHRIFTLICHE Genehmigung auf keiner anderen FDS-Serie als
' der AGFA-Serie vertrieben werden.
'
OPENW 1,0,0,640,256,&H200000+&H8+&H8000+&H10000+&H200,&H10000+&H1+&H200+&H1000
window%=WINDOW(1)
userport%=LPEEK(window%+86)
TITLEW #1,"WaitMsg"
~GetMsg(userport%)
PRINT "Drücke ESC für ENDE!!"
REPEAT
  @wait_msg
  SELECT class%
  CASE &H200000
    PRINT USING "Eine Taste wurde gedrückt: ###",code&
    PRINT "Qualifier-Taste          : ";qual
  CASE &H8
    IF code&=104
      PRINT USING "Linke Maustaste wurde gedrückt.    X: ### Y: ###",mx&,my&
    ELSE IF code&=232
      PRINT USING "Linke Maustaste wurde losgelassen. X: ### Y: ###",mx&,my&
    ELSE IF code&=105
      PRINT USING "Rechte Maustaste wurde gedrückt.    X: ### Y: ###",mx&,my&
    ELSE IF code&=233
      PRINT USING "Rechte Maustaste wurde losgelassen. X: ### Y: ###",mx&,my&
    ENDIF
  CASE &H8000
    PRINT "Eine Diskette wurde eingelegt."
  CASE &H10000
    PRINT "Eine Diskette wurde entnommen."
  CASE &H200
    PRINT "Das CloseGadget wurde gedrückt."
  ENDSELECT
UNTIL code&=27
CLOSEW 1
EDIT
PROCEDURE wait_msg
  LOCAL iwindow%,imsg%
  REPEAT
    ~WaitPort(userport%)         ! Auf Msg warten
    imsg%=GetMsg(userport%)      ! Msg holen
    class%=LPEEK(imsg%+20)       ! MsgTyp, entspricht MENU(1)
    ' = IDCMP-Flags
    code&=DPEEK(imsg%+24)        ! entspricht MENU(2)
    ' Bei class%=&H8 (Mousebuttons):
    ' 104 = Linke Maustaste gedrückt
    ' 105 = Rechte Maustaste gedrückt
    ' 232 = Linke Maustaste losgelassen
    ' 233 = Rechte Maustaste losgelassen
    qual=DPEEK(imsg%+26)-32000   ! entspricht MENU(3)
    ' 768  = Normal
    ' 772  = Caps Lock-Taste
    ' 776  = CTRL-Taste
    ' 769  = Linke Shift-Taste
    ' 770  = Rechte Shift-Taste
    ' 832  = Linke Amiga-Taste
    ' 896  = Rechte Amiga-Taste
    ' 1024 = Zehnerblock
    ' 1280 = Repeat
    ' Die Kombinationswerte müßt ihr selbst ausprobieren
    mx&=DPEEK(imsg%+32)          ! entspricht MENU(5)
    ' MausX-Koordinate
    my&=DPEEK(imsg%+34)          ! entspricht MENU(6)
    ' MausY-Koordinate
    iwindow%=LPEEK(imsg%+44)     ! entspricht MENU(9)
    ~ReplyMsg(imsg%)             ! Msg beantworten
  UNTIL iwindow%=window%         ! wenn MENU(9)=angegebenes Fenster, dann Ende
RETURN
