
MODULE Fenster;

FROM SYSTEM IMPORT ADR;
FROM Intuition IMPORT OpenWindow, CloseWindow,WidowPtr,
     NewWindow, WindowFlags, WindowFlagSet, IDCMPFlagSet,
     IDCMPFlags, ScreenFlags, ScreenFlagSet;
FROM Exec IMPORT WaitPort;

(* Fr TDI mu die IMPORTlistelauten:
FROM SYSTEM IMPORT ADR, TSIZE, NULL;
FROM Intuition IMPORT WindowPtr, NewWindow,
     WindowFlags, WindowFlagSet, IDCMPFlagSet,
     IDCMPFlags, ScreenFlags, ScreenFlagSet;
FROM Windows IMPORT Openwindow, CloseWindow;
FROM Ports IMPORT WaitPort;
FROM Memory IMPORT AllocMem, FreeMem, MemReqSet,
                                      MemPublic; *)

VAR fenster: WindowPtr;

PROCEDURE openw (l, t, w, h: INTEGER): WindowPtr;
CONST idcmp = IDCMPFlagSet{closeWindow};
      wflags =  WindowFlagSet{windowClose,
                windowSizing,windowDrag,windowDepth};
      titel = "Dies ist mein erstes Eigenbau-Fenster";
VAR neu: NewWindow;
BEGIN
 WITH neu DO
    leftEdge:=l; topEdge:=t; width:=w; height:=h;
    detailPen:= 1;
    blockPen:= 2;
    idcmpFlags:= idcmp;(* Bei TDI werden Identifier *)
    flags:= wflags;    (* dieses Abschnitts gro geschrieben *)
    firstGadget:= NIL; (* auerdem mssen alle NILs durch *)
    checkMark:= NIL;   (* NULL ersetzt werden  *)
    title:= ADR(titel);
    screen:= NIL;
    bitMap:= NIL;
    minWidth:= 80;
    maxWidth:= 640;
    minHeight:= 20;
    maxHeight:= 256;
    type:= ScreenFlagSet{wbenchScreen};
  END;
  RETURN OpenWindow (neu)
END
openw;

BEGIN
(* TDI: AllocMem (TSIZE(fenster^),MemReqSet{MemPublic}); *)
  fenster:= openw (50, 30, 440, 80);
  IF (fenster # NIL) THEN
          WaitPort (fenster^.userPort);
  END;
  CloseWindow (fenster);
  (* TDI: FreeMem (fenster, TSIZE(fenster^)); *)
END Fenster.
