(*----------------------------------------------------------------------
  :Program.    TextWindows.mod
  :Contents.   Anzeigen von Texten (Hilfe, Copyright)
  :Author.     Hubert Bildstein
  :Copyright.  Public Domain
  :Language.   Modula-2
  :Translator. M2Amiga V3.3d
  :History.    V1.0   5.12.1990
----------------------------------------------------------------------*)

IMPLEMENTATION MODULE TextWindows;
(* Darstellen von Windows mit div. Texten (Copyright, Help) *)

FROM SYSTEM    IMPORT ADR, ADDRESS;
FROM Arts      IMPORT Assert, TermProcedure;
FROM Intuition IMPORT NewWindow, OpenWindow, CloseWindow, WindowPtr,
                      WindowFlags, WindowFlagSet, customScreen,
                      IDCMPFlagSet, IDCMPFlags, PrintIText, IntuiText;
FROM Graphics  IMPORT jam2;
FROM Message   IMPORT WaitForMsg;

VAR WPtr : WindowPtr;
    IText : IntuiText;

(*-------------------------------------------------------------------------*)

PROCEDURE CloseAll;
BEGIN
 IF (WPtr # NIL) THEN
   CloseWindow (WPtr); WPtr := NIL;
 END; (*IF*)
END CloseAll;

(*-------------------------------------------------------------------------*)

PROCEDURE Copyright (SPtr : ADDRESS);
(* Kurzes Anzeigen des Copyright-Vermerks *)

VAR WDef  : NewWindow;
    Count : INTEGER;
    class : IDCMPFlagSet;
    code  : CARDINAL;
    adr   : ADDRESS;

BEGIN
 WITH WDef DO
   leftEdge := 180; topEdge := 90; width := 300; height := 60;
   detailPen := 0; blockPen := 1;
   idcmpFlags := IDCMPFlagSet{closeWindow,intuiTicks,mouseButtons};
   flags := WindowFlagSet{windowClose,windowDrag,activate,rmbTrap};
   firstGadget := NIL;checkMark := NIL;
   title := ADR(">>>>>>>   GadgetEd V1.0   <<<<<<<");
   screen := SPtr;bitMap := NIL; type := customScreen;
 END; (*WITH*)
 WPtr := OpenWindow(WDef);
 Assert (WPtr#NIL,ADR("Error opening Text-Window"));

 WITH IText DO
   iText := ADR("   This program is Public Domain");
   PrintIText (WPtr^.rPort,ADR(IText),10,15);
   iText := ADR("    © 1990 by Hubert Bildstein");
   PrintIText (WPtr^.rPort,ADR(IText),10,27);
   iText := ADR("Gehenbühlstr. 5  W7000 Stuttgart 31");
   PrintIText (WPtr^.rPort,ADR(IText),10,40);
   iText := ADR("             Germany");
   PrintIText (WPtr^.rPort,ADR(IText),10,48);
 END; (*WITH*)

 Count := 0;
 REPEAT
  WaitForMsg (WPtr,class,code,adr);
  INC (Count);
 UNTIL (Count >= 70) OR (closeWindow IN class) OR (mouseButtons IN class);

 CloseAll;
END Copyright;

(*-------------------------------------------------------------------------*)

PROCEDURE Help (SPtr : ADDRESS);
(* Anzeigen der Tastenbelegung *)

VAR WDef  : NewWindow;
    class : IDCMPFlagSet;
    code  : CARDINAL;
    adr   : ADDRESS;

BEGIN
 WITH WDef DO
   leftEdge := 120; topEdge := 50; width := 400; height := 165;
   detailPen := 0; blockPen := 1;
   idcmpFlags := IDCMPFlagSet{closeWindow,mouseButtons,vanillaKey};
   flags := WindowFlagSet{windowClose,windowDrag,activate,rmbTrap};
   firstGadget := NIL;checkMark := NIL;
   title := ADR("GadgetEd V1.0");
   screen := SPtr;bitMap := NIL; type := customScreen;
 END; (*WITH*)
 WPtr := OpenWindow(WDef);
 Assert (WPtr#NIL,ADR("Error opening Help-Window"));

 WITH IText DO
   iText := ADR("F1  - Delete Gadget    | F2  - Move Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,15);
   iText := ADR("F3  - Copy Gadget      | F4  - Size Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,25);
   iText := ADR("F9  - Add Gadget-Text  | F10 - Change Attributes");
   PrintIText (WPtr^.rPort,ADR(IText),10,35);
   iText := ADR("B   - Create normal Boolean-Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,45);
   iText := ADR("T   - Create toggleSelect Boolean-Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,55);
   iText := ADR("S   - Create normal String-Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,65);
   iText := ADR("I   - Create integer String-Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,75);
   iText := ADR("X   - Create horizontal Proportional-Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,85);
   iText := ADR("Y   - Create vertical Proportional-Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,95);
   iText := ADR("Z   - Create 2-dimensional Proportional-Gadget");
   PrintIText (WPtr^.rPort,ADR(IText),10,105);
   iText := ADR("HELP - This Info");
   PrintIText (WPtr^.rPort,ADR(IText),10,115);
   iText := ADR("             © 1990 Hubert Bildstein");
   PrintIText (WPtr^.rPort,ADR(IText),10,130);
   iText := ADR("  Gehenbühlstr.5, W7000 Stuttgart 31, Germany");
   PrintIText (WPtr^.rPort,ADR(IText),10,140);
   iText := ADR("          This program is Public Domain");
   PrintIText (WPtr^.rPort,ADR(IText),10,150);
 END; (*WITH*)

 WaitForMsg (WPtr,class,code,adr);

 CloseAll;
END Help;

(*-------------------------------------------------------------------------*)

BEGIN

 TermProcedure (CloseAll);  (* für Fehler *)
 WPtr := NIL;

 (* IntuiText-Record inititalisieren *)
 WITH IText DO
   frontPen := 1; backPen := 0; drawMode := jam2;
   leftEdge := 0; topEdge := 0;
   iTextFont := NIL; nextText := NIL;
 END; (*WITH*)

END TextWindows.

