{ MaxonPASCAL3-Anpassung / Test:  Falk Zühlsdorff (PackMAN) 1994 }

PROGRAM IntMsgDemo3; { dritte Version }

USES INTUITION;

Const
 Rahmenbreite=2;
 Balkenhoehe=12;

VAR
 Win: ^Window;
 Msg: ^IntuiMessage;
 Ende: Boolean;
 Signale: Long;

PROCEDURE Star(x, y, farb: integer);
  VAR IText: IntuiText;
  BEGIN
    IText:=IntuiText(farb, 0, 0, -4, -4, Nil, '*', Nil);
    PrintIText(Win^.RPort, ^Itext, x-Rahmenbreite, y-Balkenhoehe)
  End;

BEGIN
  Win:=Open_Window(20,10, 200,80, 1, _CLOSEWINDOW or MOUSEBUTTONS,
                   ACTIVATE or WINDOWCLOSE or WINDOWDEPTH
                    or WINDOWDRAG or RMBTRAP or GIMMEZEROZERO,
                   'Klick mich!', Nil, 100, 20, 640, 256);
  Ende:= false;
  REPEAT

    { auf Nachricht warten: }
    REPEAT
      Msg:= Get_Msg(Win^.UserPort);
      If Msg=Nil Then
        Signale:=Wait(-1)
    UNTIL Msg<>Nil;

    Case Msg^.Class Of
     _CLOSEWINDOW: Ende:=true;
     MOUSEBUTTONS: If (Msg^.Code and $80)=0 Then
                     BEGIN
                       If (Msg^.Code and $01)=0 Then
                         Star(Msg^.MouseX, Msg^.MouseY,3) { links }
                       Else
                         Star(Msg^.MouseX, Msg^.MouseY,1) { rechts }
                     End
    Otherwise
      { unbekannte Message empfangen }
    End;

    Reply_Msg(Msg);{ Nachricht als ausgewertet kennzeichnen / beantworten}

  UNTIL Ende;
  Close_Window(Win);
  CloseLib(IntuitionBase);
End.
