(**********************************************************************
:Program.    GUIToolsL.def
:Contents.   Functions for creating and using GUIs
:Author.     Carsten Ziegeler
:Address.    Augustin-Wibbelt-Str.7, 33106 Paderborn, Germany
:Phone.      05254/67439
:Copyright.  Freeware, refer to GUITools-Documentation
:Language.   Modula-2
:Translator. M2Amiga V4.1
:Remark.     OS 2.0 required
:Remark.     see GUITools-Documentation for detailled information
:History.    v38.1  Carsten Ziegeler  14-Mar-94  Shared library
**********************************************************************)
DEFINITION MODULE GUIToolsL{"guitools.library", 37};

  FROM SYSTEM     IMPORT ADDRESS;
  FROM ExecD      IMPORT LibraryPtr;
  FROM GadToolsD  IMPORT NewGadgetFlagSet;
  FROM GraphicsD  IMPORT TextAttrPtr, TextFontPtr;
  FROM IntuitionD IMPORT WindowPtr, ScreenPtr, IDCMPFlagSet, WindowFlagSet;
  FROM UtilityD   IMPORT TagItemPtr;
IMPORT d:GUIToolsD, R;

VAR
  guitoolsVersion:INTEGER;
  guitoolsBase:LibraryPtr;

CONST
  guitoolsMinVersion = 37;
  guitoolsName = "guitools.library";


         PROCEDURE CreateGUIInfo(window{R.A0}   : WindowPtr;
                                 maxGads{R.D0}  : INTEGER;
                                 maxMenus{R.D1} : INTEGER) : d.GUIInfoPtr;
                                                                   CODE -30;

         PROCEDURE FreeGUIInfo(gui{R.A0} : d.GUIInfoPtr);          CODE -36;

         PROCEDURE SetGUI(gui{R.A0} : d.GUIInfoPtr) : INTEGER;     CODE -42;

         PROCEDURE CreateGadget(gui{R.A0}    : d.GUIInfoPtr;
                                left{R.D0}   : INTEGER;
                                top{R.D1}    : INTEGER;
                                width{R.D2}  : INTEGER;
                                height{R.D3} : INTEGER;
                                kind{R.D4}   : LONGCARD;
                                tags{R.A1}   : TagItemPtr);        CODE -48;

         PROCEDURE CreateGadgetText(gui{R.A0}    : d.GUIInfoPtr;
                                    left{R.D0}   : INTEGER;
                                    top{R.D1}    : INTEGER;
                                    width{R.D2}  : INTEGER;
                                    height{R.D3} : INTEGER;
                                    kind{R.D4}   : LONGCARD;
                                    text{R.A1}   : ADDRESS;
                                    tags{R.A2}   : TagItemPtr);    CODE -54;

         PROCEDURE CreateGadgetFull(gui{R.A0}    : d.GUIInfoPtr;
                                    left{R.D0}   : INTEGER;
                                    top{R.D1}    : INTEGER;
                                    width{R.D2}  : INTEGER;
                                    height{R.D3} : INTEGER;
                                    kind{R.D4}   : LONGCARD;
                                    text{R.A1}   : ADDRESS;
                                    place{R.D5}  : NewGadgetFlagSet;
                                    tags{R.A2}   : TagItemPtr);    CODE -60;

         PROCEDURE MakeMenuEntry(gui{R.A0}  : d.GUIInfoPtr;
                                 type{R.D0} : SHORTCARD;
                                 text{R.A1} : ADDRESS;
                                 key{R.A2}  : ADDRESS);            CODE -66;

         PROCEDURE WaitIntMsg(gui{R.A0} : d.GUIInfoPtr);           CODE -72;

         PROCEDURE GetIntMsg(gui{R.A0} : d.GUIInfoPtr) : BOOLEAN;  CODE -78;

         PROCEDURE EmptyIntMsgPort(gui{R.A0} : d.GUIInfoPtr);      CODE -84;


(*38.0*) PROCEDURE DrawBox(gui{R.A0}     : d.GUIInfoPtr;
                           left{R.D0}    : INTEGER;
                           top{R.D1}     : INTEGER;
                           width{R.D2}   : INTEGER;
                           height{R.D3}  : INTEGER;
                           recessed{R.D4}: BOOLEAN);               CODE -90;


         PROCEDURE GadgetStatus(gui{R.A0} : d.GUIInfoPtr;
                                nbr{R.D0} : INTEGER;
                                status{R.D1} : BOOLEAN);           CODE -96;

         PROCEDURE ModifyGadget(gui{R.A0}  : d.GUIInfoPtr;
                                nbr{R.D0}  : INTEGER;
                                tags{R.A1} : TagItemPtr);          CODE -102;

         PROCEDURE UpdateEntryGadgets(gui{R.A0} : d.GUIInfoPtr);   CODE -108;

         PROCEDURE TopazAttr() : TextAttrPtr;                      CODE -114;

         PROCEDURE GetOwnFont(name{R.A0} : ADDRESS;
                              size{R.D0} : CARDINAL;
                              font{R.A1} : TextAttrPtr) : TextFontPtr;
                                                                   CODE -120;

         PROCEDURE RemOwnFont(font{R.A0} : TextFontPtr);           CODE -126;

         PROCEDURE OpenIntScreen(id{R.D0}    : LONGCARD;
                                 depth{R.D1} : INTEGER;
                                 name{R.A0}  : ADDRESS;
                                 font{R.A1}  : TextAttrPtr) : ScreenPtr;
                                                                   CODE -132;

         PROCEDURE OpenIntWindow(left{R.D0}        : INTEGER;
                                 top{R.D1}         : INTEGER;
                                 width{R.D2}       : INTEGER;
                                 height{R.D3}      : INTEGER;
                                 name{R.A0}        : ADDRESS;
                                 idcmpFlags{R.D4}  : IDCMPFlagSet;
                                 windowFlags{R.D5} : WindowFlagSet;
                                 screen{R.A1}      : ScreenPtr) : WindowPtr;
                                                                   CODE -138;

         PROCEDURE CloseIntWindow(window{R.A0} : WindowPtr);       CODE -144;

         PROCEDURE CloseIntScreen(screen{R.A0} : ScreenPtr);       CODE -150;

         PROCEDURE HandleIntMsg(gui{R.A0} : d.GUIInfoPtr);         CODE -156;

         PROCEDURE UpdateEGad(gui{R.A0} : d.GUIInfoPtr;
                              nbr{R.D0} : INTEGER);                CODE -162;

(*38.0*) PROCEDURE ConvKMsgToGMsg(gui{R.A0} : d.GUIInfoPtr);       CODE -168;

(*38.0*) PROCEDURE VarToGad(gui{R.A0} : d.GUIInfoPtr;
                            nbr{R.D0} : INTEGER);                  CODE -174;

(*38.0*) PROCEDURE AllVarsToGad(gui{R.A0} : d.GUIInfoPtr);         CODE -180;

(*38.0*) PROCEDURE GadWithKey(gui{R.A0} : d.GUIInfoPtr;
                              nbr{R.D0} : INTEGER;
                              shift{R.D1} : BOOLEAN);              CODE -186;

(*38.0*) PROCEDURE OpenIntScreenTags(id{R.D0}    : LONGCARD;
                                     depth{R.D1} : INTEGER;
                                     name{R.A0}  : ADDRESS;
                                     font{R.A1}  : TextAttrPtr;
                                     tags{R.A2}  : TagItemPtr) : ScreenPtr;
                                                                   CODE -192;

(*38.0*) PROCEDURE OpenIntWindowTags(left{R.D0}        : INTEGER;
                                     top{R.D1}         : INTEGER;
                                     width{R.D2}       : INTEGER;
                                     height{R.D3}      : INTEGER;
                                     name{R.A0}        : ADDRESS;
                                     idcmpFlags{R.D4}  : IDCMPFlagSet;
                                     windowFlags{R.D5} : WindowFlagSet;
                                     screen{R.A1}      : ScreenPtr;
                                   tags{R.A2}        : TagItemPtr):WindowPtr;
                                                                   CODE -198;

(*38.0*) PROCEDURE RedrawGadgets(gui{R.A0}     : d.GUIInfoPtr;
                                 setGads{R.D0} : BOOLEAN) : INTEGER;
                                                                   CODE -204;

(*38.0*) PROCEDURE RedrawMenu(gui{R.A0} : d.GUIInfoPtr) : INTEGER; CODE -210;

(*38.0*) PROCEDURE ResizeGadget(gui{R.A0}    : d.GUIInfoPtr;
                                nbr{R.D0}    : INTEGER;
                                left{R.D1}   : INTEGER;
                                top{R.D2}    : INTEGER;
                                width{R.D3}  : INTEGER;
                                height{R.D4} : INTEGER);           CODE -216;

(*38.0*) PROCEDURE NewGadgetFont(gui{R.A0}  : d.GUIInfoPtr;
                                 nbr{R.D0}  : INTEGER;
                                 font{R.A1} : TextAttrPtr);        CODE -222;

(*38.0*) PROCEDURE NewGadgetText(gui{R.A0}  : d.GUIInfoPtr;
                                 nbr{R.D0}  : INTEGER;
                                 text{R.A1} : ADDRESS);            CODE -228;

(*38.0*) PROCEDURE RemoveGadgets(gui{R.A0}   : d.GUIInfoPtr;
                                 erase{R.D0} : BOOLEAN);           CODE -234;

(*38.0*) PROCEDURE RemoveMenu(gui{R.A0}   : d.GUIInfoPtr;
                              erase{R.D0} : BOOLEAN);              CODE -240;

(*38.0*) PROCEDURE CreateGUIInfoTags(window{R.A0}   : WindowPtr;
                                     maxGads{R.D0}  : INTEGER;
                                     maxMenus{R.D1} : INTEGER;
                                   tags{R.A1}     : TagItemPtr):d.GUIInfoPtr;
                                                                   CODE -246;

(*38.0*) PROCEDURE NewFontAllGadgets(gui{R.A0} : d.GUIInfoPtr;
                                     font{R.A1}: TextAttrPtr);     CODE -252;

(*38.0*) PROCEDURE ClearWindow(gui{R.A0} : d.GUIInfoPtr);          CODE -258;

(*38.0*) PROCEDURE CreateSpecialGadget(gui{R.A0}    : d.GUIInfoPtr;
                                       left{R.D0}   : INTEGER;
                                       top{R.D1}    : INTEGER;
                                       width{R.D2}  : INTEGER;
                                       height{R.D3} : INTEGER;
                                       kind{R.D4}   : LONGCARD;
                                       tags{R.A1}   : TagItemPtr); CODE -264;

(*38.1*) PROCEDURE CreateGadgetNew(gui{R.A0}    : d.GUIInfoPtr;
                                   left{R.D0}   : INTEGER;
                                   top{R.D1}    : INTEGER;
                                   width{R.D2}  : INTEGER;
                                   height{R.D3} : INTEGER;
                                   kind{R.D4}   : LONGCARD;
                                   tags{R.A1}   : TagItemPtr);     CODE -264;

(*38.0*) PROCEDURE BeginRefresh(gui{R.A0} : d.GUIInfoPtr);         CODE -270;

(*38.0*) PROCEDURE EndRefresh(gui{R.A0}      : d.GUIInfoPtr;
                              complete{R.D0} : BOOLEAN);           CODE -276;

(*38.0*) PROCEDURE ShowRequester(gui{R.A0}  : d.GUIInfoPtr;
                                 text{R.A1} : ADDRESS;
                                 kind{R.D0} : LONGCARD;
                                 tags{R.A2} : TagItemPtr) : LONGINT;
                                                                   CODE -282;

(*38.0*) PROCEDURE ShowRequesterP(gui{R.A0}  : d.GUIInfoPtr;
                                  text{R.A1} : ADDRESS;
                                  kind{R.D0} : LONGCARD;
                                  tags{R.A2} : TagItemPtr);        CODE -282;

(*38.0*) PROCEDURE SetProcessWindow(window{R.A0} : WindowPtr) : WindowPtr;
                                                                   CODE -288;

(*38.0*) PROCEDURE SimpleReq(text{R.A0} : ADDRESS;
                             kind{R.D0} : LONGCARD) : LONGINT;     CODE -294;

(*38.0*) PROCEDURE SimpleReqP(text{R.A0} : ADDRESS;
                              kind{R.D0} : LONGCARD);              CODE -294;

(*38.1*) PROCEDURE DoResizing(gui{R.A0} : d.GUIInfoPtr);           CODE -300;

END GUIToolsL.
