|##########| |#MAGIC #|CLABLOAK |#PROJECT #|"IMPORTAll" |#PATHS #|"StdProject" |#FLAGS #|xx-x-x-xxx--x-x----------------- |#USERSW #|-------------------------------- |#USERMASK#|-------------------------------- |#SWITCHES#|xx---xxxxx-xx--- |##########| DEFINITION MODULE Asl; FROM System IMPORT SysStringPtr,Regs,PROC; FROM Exec IMPORT LibraryPtr; FROM Graphics IMPORT TextAttr,DrawModeSet,FontStyleSet,FontFlagSet; FROM Utility IMPORT tagUser,TagListPtr,StdTags; TYPE AslRequesterPtr = POINTER TO AslRequester; AslRequester = RECORD END; WindowPtr = DEFERRED POINTER Intuition.WindowPtr; WBArgPtr = DEFERRED POINTER Workbench.WBArgPtr; | | don't extend the following structure, as it will change in the future | FileRequesterPtr = POINTER TO FileRequester; FileRequester = RECORD OF AslRequester reserved1 : ANYPTR; file : SysStringPtr; | filename dir : SysStringPtr; | directoryname reserved2 : ANYPTR; reserved3 : SHORTCARD; reserved4 : SHORTCARD; reserved5 : ANYPTR; leftEdge : INTEGER; | Preferred window pos topEdge : INTEGER; width : INTEGER; | Preferred window size height : INTEGER; reserved6 : INTEGER; numArgs : LONGINT; | for multiselects arglist : WBArgPtr; | a la WB Args userData : ANYPTR; | Applihandle (you may | write!!) reserved7 : ANYPTR; reserved8 : ANYPTR; pat : SysStringPtr; | Pattern match Pointer END; | note - more reserved fields follow FileFuncFlags = ( patGad, | ask for pattern gadget multiSelect = 3, | request multiple selections | (not for save) newIDCMP, | Force a new IDCMP (if window != NULL) save, | for a SAVE operation doMsgFunc, | Called with Object=IDCMP message | for other window of shared port. | You must return pointer to Object, | asl will reply the Object for you doWildFunc, | Called with an Object=AnchorPath, | ZERO return accepts. fff31 = 31 | to make the SET a longword ); FileFuncFlagSet = SET OF FileFuncFlags; | | The following additional flags may be passed with the | ASL_ExtFlags1 tag. | FileExtFlags = ( noFiles, matchDirs, fileefDummy=31 ); FileExtFlagSet = SET OF FileExtFlags; FontRequesterPtr = POINTER TO FontRequester; FontRequester = RECORD OF AslRequester reserved1 : ARRAY [2] OF ANYPTR; attr : TextAttr; | Returned TextAttr frontPen : SHORTCARD; | Returned Pens, | if selected backPen : SHORTCARD; drawMode : DrawModeSet; userData : ANYPTR; END; FontFuncFlags = (frontColor, backColor, styles, drawMode, fixedWidth, newIdcmp, doMsgFunc, doWildFunc, fontffDummy = 31); FontFuncFlagSet = SET OF FontFuncFlags; RequestType = (fileRequest, fontRequest); ModeArray = ARRAY OF SysStringPtr; AslTags = TAGS OF StdTags dummy = tagUser +$80000; hail : SysStringPtr; window : WindowPtr; leftEdge : LONGINT; topEdge : LONGINT; width : LONGINT; height : LONGINT; hookFunc : PROC; file : SysStringPtr; dir : SysStringPtr; fontName : SysStringPtr; fontHeight : LONGCARD; fontStyles : FontStyleSet; fontFlags : FontFlagSet; frontPen : LONGCARD; | SHORTCARD backPen : LONGCARD; | SHORTCARD minHeight : LONGCARD; | CARDINAL maxHeight : LONGCARD; | CARDINAL okText : SysStringPtr; cancelText : SysStringPtr; fileFuncFlags : FileFuncFlagSet; fontFuncFlags = tagUser+ $80000 + 20 : FontFuncFlagSet; modeList : POINTER TO ModeArray; extFlags1 : FileExtFlagSet; pattern = tagUser+ $80000 + 10 : SysStringPtr; END; AslTagAPtr = POINTER TO AslTagA; AslTagA = ARRAY OF AslTags; VAR AslBase : LibraryPtr; LIBRARY AslBase BY -30 PROCEDURE AllocFileRequest(): FileRequesterPtr; LIBRARY AslBase BY -36 PROCEDURE FreeFileRequest( fileReq IN A0 : FileRequesterPtr ); LIBRARY AslBase BY -42 PROCEDURE RequestFile( fileReq IN A0: FileRequesterPtr ): BOOLEAN; LIBRARY AslBase BY -48 PROCEDURE AllocAslRequest(type IN D0: RequestType; tagList IN A0: LIST OF AslTags): AslRequesterPtr; LIBRARY AslBase BY -48 PROCEDURE AllocAslRequestA( type IN D0: RequestType; tagList IN A0: AslTagAPtr ): AslRequesterPtr; LIBRARY AslBase BY -54 PROCEDURE FreeAslRequest( request IN A0: AslRequesterPtr ); LIBRARY AslBase BY -60 PROCEDURE AslRequest( request IN A0: AslRequesterPtr; tagList IN A1: LIST OF AslTags ): BOOLEAN; LIBRARY AslBase BY -60 PROCEDURE AslRequestA( request IN A0: AslRequesterPtr; tagList IN A1: AslTagAPtr ): BOOLEAN; GROUP ProcGrp = AllocAslRequest,AllocAslRequestA,AllocFileRequest, AslRequest,AslRequestA,FreeAslRequest, FreeFileRequest,RequestFile; TypeGrp = AslTagA,AslTagAPtr,AslTags,ModeArray, FileExtFlags,FileExtFlagSet,FileFuncFlags, FileFuncFlagSet,FileRequester,FileRequesterPtr, FontFuncFlags,FontFuncFlagSet,FontRequester, FontRequesterPtr,RequestType; All = TypeGrp,ProcGrp; END Asl.