home *** CD-ROM | disk | FTP | other *** search
- (*
- ** Filename: reqtools.mod
- ** Release: 2.0
- **
- ** Oberon-A interface for reqtools.library.
- **
- ** (C) Copyright 1991/1992 Nico François
- ** All Rights Reserved
- **
- ** Needs OC >=5.16 to compile
- *)
-
- <* STANDARD- *>
-
- MODULE [2] ReqTools;
-
- IMPORT
- SYS := SYSTEM, Kernel, E := Exec, D := Dos, I := Intuition,
- GFX := Graphics, UT := Utility, S := Sets;
-
- TYPE
- ReqToolsBasePtr* = POINTER TO ReqToolsBase;
- ReqToolsBase* = RECORD (E.LibraryBase)
- libNode-: E.Library;
- flags-: S.SET8;
- pad0, pad1, pad2: SHORTINT;
- segList-: D.BPTR;
- (* The following library bases may be read and used by your program *)
- intuitionBase-: I.IntuitionBasePtr;
- gfxBase-: GFX.GfxBasePtr;
- dosBase-: D.DosLibraryPtr;
- (*
- Next two library bases are only (and always) valid on Kickstart 2.0!
- 1.3 version of reqtools also initializes these when run on 2.0.
- *)
- gadToolsBase-: E.LibraryPtr;
- utilityBase-: E.LibraryPtr;
- END;
-
- CONST
- (* types of requesters, for AllocRequestA() *)
- TypeFileReq* = 0;
- TypeReqInfo* = 1;
- TypeFontReq* = 2;
- TypeScreenModeReq* = 3;
-
- TYPE
- ReqToolsReqPtr * = POINTER TO ReqToolsReq;
- ReqToolsReq * = RECORD END; (* make them compatible *)
-
-
- (***********************
- * *
- * File requester *
- * *
- ***********************)
-
- (* structure _MUST_ be allocated with AllocRequest() *)
-
- TYPE
- FileRequesterPtr* = POINTER TO FileRequester;
- FileRequester* = RECORD (ReqToolsReq)
- reqPos*: LONGINT;
- leftOffset*: INTEGER;
- topOffset*: INTEGER;
- flags*: S.SET32;
- (* OBSOLETE IN V38! DON'T USE! *) hook*: UT.HookPtr;
- dir-: E.STRPTR; (* READ ONLY! Change with ChangeReqAttrA()! *)
- matchPat-: E.STRPTR; (* READ ONLY! Change with ChangeReqAttrA()! *)
- defaultFont*: GFX.TextFontPtr;
- waitPointer*: E.APTR;
- (* V38 *)
- lockWindow*: LONGINT;
- shareIDCMP*: LONGINT;
- intuiMsgFunc*: UT.HookPtr;
- reserved1*: INTEGER;
- reserved2*: INTEGER;
- reserved3*: INTEGER;
- reqHeight-: INTEGER; (* READ ONLY! Use RTFI_Height tag! *)
- (* Private data follows! HANDS OFF :-) *)
- END;
-
- (* returned by FileRequestA() if multiselect is enabled,
- free list with FreeFileList() *)
-
- FileListPtr* = POINTER TO FileList;
- FileList* = RECORD
- next*: FileListPtr;
- strLen*: LONGINT; (* -1 for directories *)
- name*: E.STRPTR;
- END;
-
- (* structure passed to RTFI_FilterFunc callback hook by
- volume requester (see RTFI_VolumeRequest tag) *)
-
- VolumeEntryPtr* = POINTER TO VolumeEntry;
- VolumeEntry* = RECORD
- type*: LONGINT; (* DLT_DEVICE or DLT_DIRECTORY *)
- name*: E.STRPTR;
- END;
-
- (***********************
- * *
- * Font requester *
- * *
- ***********************)
-
- (* structure _MUST_ be allocated with AllocRequest() *)
-
- FontRequesterPtr* = POINTER TO FontRequester;
- FontRequester* = RECORD (ReqToolsReq)
- reqPos*: LONGINT;
- leftOffset*: INTEGER;
- topOffset*: INTEGER;
- flags*: S.SET32;
- (* OBSOLETE IN V38! DON'T USE! *) hook*: UT.HookPtr;
- attr-: GFX.TextAttr; (* READ ONLY! *)
- defaultFont*: GFX.TextFontPtr;
- waitPointer*: E.APTR;
- (* V38 *)
- lockWindow*: LONGINT;
- shareIDCMP*: LONGINT;
- intuiMsgFunc*: UT.HookPtr;
- reserved1*: INTEGER;
- reserved2*: INTEGER;
- reserved3*: INTEGER;
- reqHeight-: INTEGER; (* READ ONLY! Use RTFI_Height tag! *)
- (* Private data follows! HANDS OFF :-) *)
- END;
-
-
- (*************************
- * *
- * ScreenMode requester *
- * *
- *************************)
-
- (* structure _MUST_ be allocated with rtAllocRequest() *)
-
- ScreenModeRequesterPtr* = POINTER TO ScreenModeRequester;
- ScreenModeRequester* = RECORD (ReqToolsReq)
- reqPos*: LONGINT;
- leftOffset*: INTEGER;
- topOffset*: INTEGER;
- flags*: S.SET32;
- private1*: LONGINT;
- displayID-: LONGINT; (* READ ONLY! *)
- displayWidth-: INTEGER; (* READ ONLY! *)
- displayHeight-: INTEGER; (* READ ONLY! *)
- defaultFont*: GFX.TextFontPtr;
- waitPointer*: E.APTR;
- lockWindow*: LONGINT;
- shareIDCMP*: LONGINT;
- intuiMsgFunc*: UT.HookPtr;
- reserved1*: INTEGER;
- reserved2*: INTEGER;
- reserved3*: INTEGER;
- reqHeight-: INTEGER; (* READ ONLY! Use RTFI_Height tag! *)
- displayDepth*: INTEGER;
- overscanType*: INTEGER;
- autoScroll*: LONGINT;
- (* Private data follows! HANDS OFF :-) *)
- END;
-
- (***********************
- * *
- * Requester Info *
- * *
- ***********************)
-
- (* for EZRequestA(), GetLongA(), GetStringA() and PaletteRequestA(),
- _MUST_ be allocated with AllocRequest() *)
-
- ReqInfoPtr* = POINTER TO ReqInfo;
- ReqInfo* = RECORD (ReqToolsReq)
- reqPos*: LONGINT;
- leftOffset*: INTEGER;
- topOffset*: INTEGER;
- width*: LONGINT; (* not for EZRequestA() *)
- reqTitle*: E.STRPTR; (* currently only for EZRequestA() *)
- flags*: S.SET32;
- defaultFont*: GFX.TextFontPtr; (* currently only for PaletteRequestA() *)
- waitPointer*: E.APTR;
- (* V38 *)
- lockWindow: LONGINT;
- shareIDCMP: LONGINT;
- intuiMsgFunc: UT.HookPtr;
- (* structure may be extended in future *)
- END;
-
- (***********************
- * *
- * Handler Info *
- * *
- ***********************)
-
- (* for ReqHandlerA(), will be allocated for you when you use
- the ReqHandler tag, never try to allocate this yourself! *)
-
- HandlerInfoPtr* = POINTER TO HandlerInfo;
- HandlerInfo* = RECORD
- private1: LONGINT;
- waitMask*: S.SET32;
- doNotWait*: E.LONGBOOL; (* ? *)
- (* Private data follows, HANDS OFF :-) *)
- END;
-
- (* possible return codes from ReqHandlerA() *)
- CONST
- CallHandler* = 080000000H;
-
-
- (*************************************
- * *
- * TAGS *
- * *
- *************************************)
-
- TagBase* = UT.user;
-
- (*** tags understood by most requester functions ***)
- (* optional pointer to window *)
- Window* = TagBase+1;
-
- (* idcmp flags requester should abort on (useful for IDCMP_DISKINSERTED) *)
- IDCMPFlags* = TagBase+2;
-
- (* position of requester window (see below) - default REQPOS_POINTER *)
- ReqPos* = TagBase+3;
-
- (* signal mask to wait for abort signal *)
- LeftOffset* = TagBase+4;
-
- (* topedge offset of requester relative to position specified by ReqPos *)
- TopOffset* = TagBase+5;
-
- (* name of public screen to put requester on (Kickstart 2.0 only!) *)
- PubScrName* = TagBase+6;
-
- (* address of screen to put requester on *)
- Screen* = TagBase+7;
-
- (* tagdata must hold the address of (!) an APTR variable *)
- DoReqHandler* = TagBase+8;
-
- (* font to use when screen font is rejected, _MUST_ be fixed-width font!
- (TextFontPtr , not TextAttrPtr ! - default GfxBase->DefaultFont *)
- DefaultFont* = TagBase+9;
-
- (* boolean to set the standard wait pointer in window - default FALSE *)
- WaitPointer* = TagBase+10;
-
- (* (V38) char preceding keyboard shortcut characters (will be underlined) *)
- Underscore* = TagBase+11;
-
- (* (V38) share IDCMP port with window - default FALSE *)
- ShareIDCMP* = TagBase+12;
-
- (* (V38) lock window and set standard wait pointer - default FALSE *)
- LockWindowTag* = TagBase+13;
-
- (* (V38) boolean to make requester's screen pop to front - default TRUE *)
- ScreenToFront* = TagBase+14;
-
- (* (V38) Requester should use this font - default: screen font *)
- TextAttr* = TagBase+15;
-
- (* (V38) call this hook for every IDCMP message not for requester *)
- IntuiMsgFunc* = TagBase+16;
-
- (* (V38) Locale ReqTools should use for text *)
- Locale* = TagBase+17;
-
- (*** tags specific to EZRequestA ***)
- (* title of requester window - default "Request" or "Information" *)
- ezReqTitle* = TagBase+20;
-
- (* TagBase+21 reserved *)
-
- (* various flags (see below) *)
- ezFlags* = TagBase+22;
-
- (* default response (activated by pressing RETURN) - default TRUE *)
- ezDefaultResponse* = TagBase+23;
-
- (*** tags specific to GetLongA ***)
- (* minimum allowed value - default MININT *)
- glMin* = TagBase+30;
-
- (* maximum allowed value - default MAXINT *)
- glMax* = TagBase+31;
-
- (* suggested width of requester window (in pixels) *)
- glWidth* = TagBase+32;
-
- (* boolean to show the default value - default TRUE *)
- glShowDefault* = TagBase+33;
-
- (* (V38) string with possible responses - default " _Ok |_Cancel" *)
- glGadFmt * = TagBase+34;
-
- (* (V38) optional arguments for RTGL_GadFmt *)
- glGadFmtArgs* = TagBase+35;
-
- (* (V38) invisible typing - default FALSE *)
- glInvisible* = TagBase+36;
-
- (* (V38) window backfill - default TRUE *)
- glBackFill* = TagBase+37;
-
- (* (V38) optional text above gadget *)
- glTextFmt* = TagBase+38;
-
- (* (V38) optional arguments for RTGS_TextFmt *)
- glTextFmtArgs* = TagBase+39;
-
- (* (V38) various flags (see below) *)
- glFlags* = ezFlags;
-
- (*** tags specfic to GetStringA ***)
- (* suggested width of requester window (in pixels) *)
- gsWidth* = glWidth;
-
- (* allow empty string to be accepted - default FALSE *)
- gsAllowEmpty* = TagBase+80;
-
- (* (V38) string with possible responses - default " _Ok |_Cancel" *)
- gsGadFmt * = glGadFmt;
-
- (* (V38) optional arguments for RTGS_GadFmt *)
- gsGadFmtArgs* = glGadFmtArgs;
-
- (* (V38) invisible typing - default FALSE *)
- gsInvisible* = glInvisible;
-
- (* (V38) window backfill - default TRUE *)
- gsBackFill* = glBackFill;
-
- (* (V38) optional text above gadget *)
- gsTextFmt* = glTextFmt;
-
- (* (V38) optional arguments for RTGS_TextFmt *)
- gsTextFmtArgs* = glTextFmtArgs;
-
- (* (V38) various flags (see below) *)
- gsFlags* = ezFlags;
-
- (*** tags specific to FileRequestA ***)
- (* various flags (see below) *)
- fiFlags* = TagBase+40;
-
- (* suggested height of file requester *)
- fiHeight* = TagBase+41;
-
- (* replacement text for 'Ok' gadget (max 6 chars) *)
- fiOkText* = TagBase+42;
-
- (* (V38) bring up volume requester, tag data holds flags (see below) *)
- fiVolumeRequest* = TagBase+43;
-
- (* (V38) call this hook for every file in the directory *)
- fiFilterFunc* = TagBase+44;
-
- (* (V38) allow empty file to be accepted - default FALSE *)
- fiAllowEmpty* = TagBase+45;
-
- (*** tags specific to FontRequestA ***)
- (* various flags (see below) *)
- foflags* = fiFlags;
-
- (* suggested height of font requester *)
- foHeight* = fiHeight;
-
- (* replacement text for 'Ok' gadget (max 6 chars) *)
- foOkText* = fiOkText;
-
- (* suggested height of font sample display - default 24 *)
- foSampleHeight* = TagBase+60;
-
- (* minimum height of font displayed *)
- foMinHeight* = TagBase+61;
-
- (* maximum height of font displayed *)
- foMaxHeight* = TagBase+62;
-
- (* [TagBase+63 to TagBase+66 used below] *)
-
- (* (V38) call this hook for every font *)
- foFilterFunc* = fiFilterFunc;
-
- (*** (V38) tags for rtScreenModeRequestA ***)
- (* various flags (see below) *)
- scFlags* = fiFlags;
-
- (* suggested height of screenmode requester *)
- scHeight* = fiHeight;
-
- (* replacement text for 'Ok' gadget (max 6 chars) *)
- scOkText* = fiOkText;
-
- (* property flags (see also RTSC_PropertyMask) *)
- scPropertyFlags* = TagBase+90;
-
- (* property mask - default all bits in RTSC_PropertyFlags considered *)
- scPropertyMask* = TagBase+91;
-
- (* minimum display width allowed *)
- scMinWidth* = TagBase+92;
-
- (* maximum display width allowed *)
- scMaxWidth* = TagBase+93;
-
- (* minimum display height allowed *)
- scMinHeight* = TagBase+94;
-
- (* maximum display height allowed *)
- scMaxHeight* = TagBase+95;
-
- (* minimum display depth allowed *)
- scMinDepth* = TagBase+96;
-
- (* maximum display depth allowed *)
- scMaxDepth* = TagBase+97;
-
- (* call this hook for every display mode id *)
- scFilterFunc* = fiFilterFunc;
-
- (*** tags for ChangeReqAttrA ***)
- (* file requester - set directory *)
- fiDir* = TagBase+50;
-
- (* file requester - set wildcard pattern *)
- fiMatchPat* = TagBase+51;
-
- (* file requester - add a file or directory to the buffer *)
- fiAddEntry* = TagBase+52;
-
- (* file requester - remove a file or directory from the buffer *)
- fiRemoveEntry* = TagBase+53;
-
- (* font requester - set font name of selected font *)
- foFontName* = TagBase+63;
-
- (* font requester - set font size *)
- foFontHeight* = TagBase+64;
-
- (* font requester - set font style *)
- foFontStyle* = TagBase+65;
-
- (* font requester - set font flags *)
- foFontFlags* = TagBase+66;
-
- (*** tags for ScreenModeRequestA ***)
- (* (V38) screenmode requester - get display attributes from screen *)
- scModeFromScreen* = TagBase+80;
-
- (* (V38) screenmode requester - set display mode id (32-bit extended) *)
- scDisplayID* = TagBase+81;
-
- (* (V38) screenmode requester - set display width *)
- scDisplayWidth* = TagBase+82;
-
- (* (V38) screenmode requester - set display height *)
- scDisplayHeight* = TagBase+83;
-
- (* (V38) screenmode requester - set display depth *)
- scDisplayDepth* = TagBase+84;
-
- (* (V38) screenmode requester - set overscan type, 0 for regular size *)
- scOverscanType* = TagBase+85;
-
- (* (V38) screenmode requester - set autoscroll *)
- scAutoScroll* = TagBase+86;
-
- (*** tags for PaletteRequestA ***)
- (* initially selected color - default 1 *)
- paColor* = TagBase+70;
-
- (*** tags for ReqHandlerA ***)
- (* end requester by software control, set tagdata to REQ_CANCEL, REQ_OK or
- in case of EZRequest to the return value *)
- rhEndRequest* = TagBase+60;
-
- (*** tags for AllocRequestA ***)
- (* no tags defined yet *)
-
-
- (************
- * ReqPos *
- ************)
- ReqPosPointer* = 0;
- ReqPosCenterWin* = 1;
- ReqPosCenterScr* = 2;
- ReqPosTopLeftWin* = 3;
- ReqPosTopLeftScr* = 4;
-
- (******************
- * RTRH_EndRequest *
- ******************)
- ReqCancel* = 0;
- ReqOK* = 1;
-
- (***************************************
- * flags for RTFI_Flags and RTFO_Flags *
- * or filereq->Flags and fontreq->Flags *
- ***************************************)
- fReqNoBuffer* = 2;
-
- (*****************************************
- * flags for RTFI_Flags or filereq->Flags *
- *****************************************)
- fReqMultiSelect* = 0;
- fReqSave* = 1;
- fReqNoFiles* = 3;
- fReqPatGad* = 4;
- fReqSelectDirs* = 12;
-
- (*****************************************
- * flags for RTFO_Flags or fontreq->Flags *
- *****************************************)
- fReqFixedWidth* = 5;
- fReqColorFonts* = 6;
- fReqChangePalette* = 7;
- fReqLeavePalette* = 8;
- fReqScale* = 9;
- fReqStyle* = 10;
-
- (*****************************************************
- * (V38) flags for RTSC_Flags or screenmodereq->Flags *
- *****************************************************)
- scReqSizeGads* = 13;
- scReqDepthGad* = 14;
- scReqNonStdModes* = 15;
- scReqGuiModes* = 16;
- scReqAutoscrollGad* = 18;
- scReqOverscanGad* = 19;
-
- (*****************************************
- * flags for RTEZ_Flags or reqinfo->Flags *
- *****************************************)
- ezReqNoReturnKey* = 0;
- ezReqLamigaQual* = 1;
- ezReqCenterText* = 2;
-
- (***********************************************
- * (V38) flags for RTGL_Flags or reqinfo->Flags *
- ***********************************************)
- glReqCenterText* = ezReqCenterText;
- glReqHighlightText* = 3;
-
- (***********************************************
- * (V38) flags for RTGS_Flags or reqinfo->Flags *
- ***********************************************)
- gsReqCenterText* = ezReqCenterText;
- gsReqHighlightText* = glReqHighlightText;
-
- (*****************************************
- * (V38) flags for RTFI_VolumeRequest tag *
- *****************************************)
- vReqNoAssigns* = 0;
- vReqNoDisks* = 1;
- vReqAllDisks* = 2;
-
- (*
- Following things are obsolete in ReqTools V38.
- Don't use them in new code!
- *)
- fReqDoWildFunc* = 11;
- ReqHookWildFile* = 0;
- ReqHookWildFont* = 1;
-
-
- CONST
- name* = "reqtools.library";
- libraryMinimum* = 38;
-
- VAR
- base*: ReqToolsBasePtr;
-
- PROCEDURE AllocRequestA* [base,-30]
- ( type[0]: LONGINT;
- tagList[8]: ARRAY OF UT.TagItem )
- : ReqToolsReqPtr;
- PROCEDURE AllocRequest* [base,-30]
- ( type[0]: LONGINT;
- tag1[8]..: UT.Tag )
- : ReqToolsReqPtr;
- PROCEDURE FreeRequest* [base,-36]
- ( req[9]: ReqToolsReqPtr );
- PROCEDURE FreeReqBuffer* [base,-42]
- ( req[9]: ReqToolsReqPtr );
- PROCEDURE ChangeReqAttrA* [base,-48]
- ( req[9]: ReqToolsReqPtr;
- tagList[8]: ARRAY OF UT.TagItem );
- PROCEDURE ChangeReqAttr* [base,-48]
- ( req[9]: ReqToolsReqPtr;
- tag1[8]..: UT.Tag );
- PROCEDURE FileRequestA* [base,-54]
- ( fileReq[9]: FileRequesterPtr;
- VAR fileName[10]: ARRAY OF CHAR;
- title[11]: ARRAY OF CHAR;
- tagList[8]: ARRAY OF UT.TagItem )
- : BOOLEAN;
- PROCEDURE FileRequest* [base,-54]
- ( fileReq[9]: FileRequesterPtr;
- VAR fileName[10]: ARRAY OF CHAR;
- title[11]: ARRAY OF CHAR;
- tag1[8]..: UT.Tag )
- : BOOLEAN;
- PROCEDURE FreeFileList* [base,-60]
- ( fileList[8]: FileListPtr );
- PROCEDURE EZRequestA* [base,-66]
- ( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- argArray[12]: E.APTR;
- tagList[8]: ARRAY OF UT.TagItem )
- : LONGINT;
- PROCEDURE EZRequestTags* [base,-66]
- ( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- argArray[12]: E.APTR;
- tag1[8]..: UT.Tag )
- : LONGINT;
- PROCEDURE EZRequest* [base,-66]
- ( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- tagList[8]: ARRAY OF UT.TagItem;
- argArray[12]..: E.APTR )
- : LONGINT;
- (* Without result.... *)
- PROCEDURE VEZRequestA* [base,-66]
- ( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- argArray[12]: E.APTR;
- tagList[8]: ARRAY OF UT.TagItem );
- PROCEDURE VEZRequestTags* [base,-66]
- ( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- argArray[12]: E.APTR;
- tag1[8]..: UT.Tag );
- PROCEDURE VEZRequest* [base,-66]
- ( bodyFmt[9], gadFmt[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- tagList[8]: ARRAY OF UT.TagItem;
- argArray[12]..: E.APTR );
- PROCEDURE GetStringA* [base,-72]
- ( VAR buffer[9]: ARRAY OF CHAR;
- maxChars[0]: LONGINT;
- title[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- tagList[8]: ARRAY OF UT.TagItem )
- : BOOLEAN;
- PROCEDURE GetString* [base,-72]
- ( VAR buffer[9]: ARRAY OF CHAR;
- maxChars[0]: LONGINT;
- title[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- tag1[8]..: UT.Tag )
- : BOOLEAN;
- PROCEDURE GetLongA* [base,-78]
- ( VAR long[9]: LONGINT; title[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- tagList[8]: ARRAY OF UT.TagItem )
- : BOOLEAN;
- PROCEDURE GetLong* [base,-78]
- ( VAR long[9]: LONGINT; title[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- tag1[8]..: UT.Tag )
- : BOOLEAN;
- PROCEDURE FontRequestA* [base,-96]
- ( fontReq[9]: FontRequesterPtr;
- title[11]: ARRAY OF CHAR;
- tagList[8]: ARRAY OF UT.TagItem )
- : BOOLEAN;
- PROCEDURE FontRequest* [base,-96]
- ( fontReq[9]: FontRequesterPtr;
- title[11]: ARRAY OF CHAR;
- tag1[8]..: UT.Tag )
- : BOOLEAN;
- PROCEDURE PaletteRequestA* [base,-102]
- ( title[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- tagList[8]: ARRAY OF UT.TagItem )
- : LONGINT;
- PROCEDURE PaletteRequest* [base,-102]
- ( title[10]: ARRAY OF CHAR;
- reqInfo[11]: ReqInfoPtr;
- tag1[8]..: UT.Tag )
- : LONGINT;
- PROCEDURE ReqHandlerA* [base,-108]
- ( hinfo[9]: HandlerInfoPtr;
- sigs[0]: S.SET32;
- tagList[8]: ARRAY OF UT.TagItem )
- : LONGINT;
- PROCEDURE ReqHandler* [base,-108]
- ( hinfo[9]: HandlerInfoPtr;
- sigs[0]: S.SET32;
- tag1[8]..: UT.Tag)
- : LONGINT;
- PROCEDURE SetWaitPointer* [base,-114]
- ( window[8]: I.WindowPtr );
- PROCEDURE GetVScreenSize* [base,-120]
- ( screen[8]: I.ScreenPtr;
- VAR width[9],height[10]: LONGINT );
- PROCEDURE SetReqPosition* [base,-126]
- ( reqPos[0]: LONGINT;
- VAR nw[8]: I.NewWindow;
- screen[9]: I.ScreenPtr;
- window[10]: I.WindowPtr );
- PROCEDURE Spread* [base,-132]
- ( VAR posArray[8]: ARRAY OF LONGINT;
- sizeArray[9]: ARRAY OF LONGINT;
- totalSize[0], min[1], max[2], num[3]: LONGINT );
- PROCEDURE ScreenToFrontSafely* [base,-138]
- ( screen[8]: I.ScreenPtr );
-
- (*--- functions in V38 or higher (distributed as Release 2.0) ---*)
- PROCEDURE ScreenModeRequestA* [base,-144]
- ( screenmodeReq[9]: ScreenModeRequesterPtr;
- title[11]: ARRAY OF CHAR;
- tagList[8]: ARRAY OF UT.TagItem )
- : BOOLEAN;
- PROCEDURE ScreenModeRequest* [base,-144]
- ( screenmodeReq[9]: ScreenModeRequesterPtr;
- title[11]: ARRAY OF CHAR;
- tag1[8]..: UT.Tag )
- : BOOLEAN;
- PROCEDURE CloseWindowSafely* [base,-150]
- ( window[8]: I.WindowPtr );
- PROCEDURE LockWindow* [base,-156]
- ( window[8]: I.WindowPtr )
- : LONGINT;
- PROCEDURE UnlockWindow* [base,-162]
- ( window[8]: I.WindowPtr;
- winLock[9]: LONGINT );
-
-
- PROCEDURE [0] Assert* (cond: BOOLEAN; msg: ARRAY OF CHAR);
- VAR str : E.LSTRPTR;
- BEGIN
- IF ~cond THEN
- str := SYS.ADR ("Assert");
- VEZRequestTags
- ( msg, "Abort", NIL, NIL,
- ezReqTitle, str,
- UT.done );
- HALT (20)
- END;
- END Assert;
-
- (*-- Library Base variable --------------------------------------------*)
-
- <*$LongVars-*>
-
- (*-----------------------------------*)
- PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
-
- BEGIN
- IF base # NIL THEN E.CloseLibrary (base) END;
- END CloseLib;
-
- (*-----------------------------------*)
- PROCEDURE [0] OpenLib * (mustOpen : BOOLEAN);
-
- BEGIN
- IF base = NIL THEN
- base :=
- SYS.VAL
- ( ReqToolsBasePtr,
- E.OpenLibrary (name, libraryMinimum));
- IF base # NIL THEN Kernel.SetCleanup (CloseLib)
- ELSIF mustOpen THEN HALT (100)
- END
- END
- END OpenLib;
-
- BEGIN
- base := NIL
- END ReqTools.
-