(* ------------------------------------------------------------------------- :Program. FileRequest :Author. Kai Bolay :Address. Hoffmannstraße 168, 7250 Leonberg 1 :Phone. 07152/22135 :ShortCut. [kai] :Version. 1.02 :History. v1.01 [kai] 28-Jul-89 little changes :History. v1.02 [kai] 24-Nov-89 added dirExt (Bene's Tip!) :Date. 24-Nov-89 :Copyright. INTERN :Language. Modula-2 :Translator. M2Amiga 3.2d :Imports. IntuiStruct1.3 [bne] :Contents. DEFINITION ------------------------------------------------------------------------- *) DEFINITION MODULE FileRequest; FROM SYSTEM IMPORT ADDRESS; FROM Exec IMPORT UByte; FROM Graphics IMPORT TextAttrPtr; FROM Intuition IMPORT ScreenPtr; TYPE DiskyFlags = (suffixGad, watchSuffix, onlyFiles, displayInfo, noSort, german, fileExists, ownScreen, ownPosition, ownColors, ownFont, startPath, callFileTest, dirExt, df14, df15); DiskyFlagSet = SET OF DiskyFlags; (* suffixGad : Suffix kann geändert werden (watchSuffix setzen!) watchSuffix : Es wird das Suffix beachtet (auch ohne Gadget) onlyFiles : Kein Directory-Wechsel möglich displayInfo : Es werden '.info' Files angezeigt noSort : Das Directory wird nicht nach dem Alphabet sortiert german : Deutsche Beschriftung der Gadgets fileExists : DiskyOK nur wenn File existiert ownScreen : Disky nicht auf WB (DI.screen # NIL) ownPosition : x, y Position wird beachtet ownColors : Es werden die User-Farben benutzt ownFont : Es wird der User-Zeichensatz benutzt (Sollte 8x8) startPath : Der angegebene Pfad gilt als Ausgangspunkt (normal: dir / file / (suffix) ) callFileTest : Die in DI.fileTestProc angegebene Prozedur wird aufgerufen, das Resultat bestimmt ob das File in die Liste aufgenommen wird dirExt : An Dirs wird " (dir)" andgehängt *) DiskyResult = (DiskyOK, DiskyCancel, ErrNoMem, ErrNoReq); (* DiskyOK : OK-Gadget oder Doppelklick auf File-Gadget DiskyCancel : Cancel-Gadget ErrNoMem : Nicht genügend freier Speicher ErrNoReq : Kann Requester nicht öffnen *) DiskyInfo = RECORD title : ADDRESS; (* ADR des Window-Titels *) dir : ARRAY [0..150] OF CHAR; (* Directory *) file : ARRAY [0..30] OF CHAR; (* File *) suffix : ARRAY [0..5] OF CHAR; (* Suffix *) path : ARRAY [0..200] OF CHAR; (* Pfad *) flags : DiskyFlagSet; (* siehe oben *) screen : ScreenPtr; (* Zeiger auf Screen für das Disky-Window oder NIL *) x, y : INTEGER; (* Position des Disky-Windows *) gadgetPen : UByte; (* Zeichenfarbe für Gadgets *) filePen : UByte; (* Zeichenfarbe für Files *) dirPen : UByte; (* Zeichenfarbe für Dirs *) backFillPen : UByte; (* Hintergrundfarbe (nicht implementiert) *) font : TextAttrPtr; (* Zeichensatz *) fileTestProc : PROCEDURE (VAR ARRAY OF CHAR) : BOOLEAN; (* Zusatzprozedur zum Filetest *) END; (* RECORD *) PROCEDURE Disky (VAR DI : DiskyInfo) : DiskyResult; END FileRequest.