{$if not def req_lib} CONST req_lib=0; {$if not def INTUITION_INTUITION_H; incl"intuition/intuition.h";endif} {$if not def LIBRARRIES_DOS_H;incl"libraries/dos.h";endif} {$if not def EXEC_PORTS_H;incl"exec/ports.h";endif} {$if not def EXEC_TASKS_H;incl"exec/tasks.h";endif} { Dieses Includefile legt den Aufbau bestimmter Records (=Strukturen) fest, die durch die hier vorgenommene Typendefinition im Programm später sehr leicht einsetzbar sind. } CONST Numpairs=9; Dsize = 130; { max. Länge des Directorypfades } Fchars = 30; { max. Länge des Filenamens } Wildlength = 30; { max. Länge von Auswahlwildcards für den Filerequester } GLNODEFAULTB = 1; { Flag für GetLongStructure.flags, bewirkt, daß beim } { Starten des Requesters die Eingabezeile ganz leerbleibt } { Flags für die Komponente Flags in der Filerequesterstruktur } FRQSHOWINFO = 1; { .info Files zeigen. Default: Versteckt } FRQEXTSELECT = 2; { Mehrfachselektionen mögliche. Default: nicht mögl. } FRQCACHING = 4; { Zwischenspeichern von Dirs ein. Default: aus } FRQGETFONTS = 8; { Fontrequester gewünscht. } FRQINFOGADGET = 16; { Gadget "Hide .info" nicht erwünscht } FRQHIDEWILDS = 32; { Gadget 'show' and 'hide' nicht gewünscht } FRQABSOLUTEXY = 64; { Absolute Positionierung gewünscht, nicht nach Maus } FRQCACHEPURGE = 128; { Purge="säubern" des Caches bei Änderung d. date stamp} FRQNOHALFCACHE= 256; { Directory erst nach kompletten Einlesen in den Cache } FRQNOSORT = 512; { Setzen, falls keine Sortierung erwünscht ist } FRQNODRAG =1024; { wenn man kein drag bar und depth gadgets wünscht } FRQSAVING =2048; { Falls ein File zum Speichern gewählt werden soll } FRQLOADING =4096; { Falls ein zu ladendes File gewählt werden soll } TYPE TRStructure = Record Text :Str; { Anzeigetext mit printf() Formatierung } Controls :Ptr; { Adr. d. Parameterliste für printf-Formatierung } Window :Ptr; { Zeiger auf eig. Windowstruktur, falls nicht WB } MiddleText :Str; { Hierhin kommen die Zeiger für die 3 gewünschten } PositiveText :Str; { Knopftexte, oder NIL für nicht gewünschte Knöpfe } NegativeText :Str; { Zurückgegeben wird je nach gedr.Knopf 0,1, oder 2} Title :Str; { Zeiger auf gewünschten Requestertitel } KeyMask :Word { Falls Keyboarbedienung möglich sein soll, $ffff, } { sonst 0. Betätigung: positiv mit Y,V, neg. mit } { N,Q,B mittleren Knopf mit Taste M } textcolor :Word { Textfarbe, default: 1 } detailcolor :Word { Detailfarbe, default: 0 } blockcolor :Word { Blockfarbe, default: 1 } versionnumber :Word { Muß auf 0 gesetzt werden } rfu1 :Long { Muß auf 0 gesetzt werden } rfu2 :Long { Muß auf 0 gesetzt werden } end; GetLongStruct = Record titlebar :Str; { Zeiger auf den Titel des Requesters } defaultval :Long; { default Zahlenwert } minlimit :Long; { Minimal eingebbarer Wert } maxlimit :Long; { Maximal eingebbarer Wert } result :Long; { Hier steht hinterher das Ergebnis drin } Window :Ptr; { Falls eigener Screen, sonst NIL } versionnumber :Word; { Hier muß 0 rein } flags :Long; { GLNodefault (siehe oben) oder 0 } rfu2 :Long; { Muß 0 sein } end; p_ESStructure = ^ESStructure; { Struktur für Mehrfachauswahl beim FReq.} ESStructure = Record ESStructure : p_ESStructure; { Zeiger auf nächste ES-Structure } NameLength : Word; { Länge von "thefilename" } Pad : Word; Node : Ptr; { For internal use only. } thefilename : String[31]; { Filename } end; FileRequester = Record VersionNumber :Word; { Muß 0 sein } Title :Str; { Zeiger auf Requestertitel } Dirname :Str; { Zeiger auf Verzeichnisnamen (max 130 Zeichen) } Filename :Str; { Zeiger auf Filenamen (max. 30 Zeichen) } PathName :Str; { Zeiger auf kompl. Pfadnamen (max.160 Zeichen) } Window :Ptr; { Zeiger auf Windowstruktur bei CustomScreen } MaxExtSelect :Word; { Max. Anwählbare Files (nur mit FRQExtSelect) } numlines :Word; { Anzahl der Zeilen im File window. } numcolumns :Word; { Anzahl der Spalten im File Window } devcolumns :Word; { Anzahl der Spalten im Device-Window } Flags :Long; { Flags für diverse Funktionen, siehe oben } dirnamescolor :Word; filenamescolor :Word; { Die folgenden Farben werden auf default ge- } devicenamescolor :Word; { setzt, falls sie mit 0 initialisiert werden, } fontnamescolor :Word; { hier kann man jedoch auch die Farben nach } fontsizescolor :Word; { Geschmack eingetragen werden.... } detailcolor :Word; { default : 0 } blockcolor :Word; { default : 1 } gadgettextcolor :Word; { default : 1 } textmessagecolor :Word; { default : 1 } stringnamecolor :word; { default : 3 } stringgadgetcolor:word; { default : 3 } boxbordercolor :Word; { default : 3 } gadgetboxcolor :Word; { default : 3 } RFU_Stuff :String[36]; { Frei für zukünft. Erweiterung, muß 0 sein } DateStamp :DateStamp; { DateStamp des Dirs, aus libraries/dos.h } WindowLeftEdge :Word; { In Verbindung mit FRQABSOLUTEXY lässt sich } WindowTopEdge :Word; { die Pos. der linken oberen Ecke festlegen } FontYSize :Word; { Beim Fontrequester werden hier die gewählte } FontStyle :Word; { Größe und "Style" (?) zurückgegeben } ExtendedSelect :p_ESStructure;{ Zeiger auf Struktur für Mehrfachauswahl } Hide :String[32]; { Wildcards zur Selektion über Hide - Feld } Show :String[32]; { Wildcards zur Selektion über Show - Feld } FileBufferPos :Word; FileDispPos :Word; { Diverse Felder, dienen zur Positionierung des } DirBufferPos :Word; { Cursors in den unterschiedlichen Gadgets } DirDispPos :word; HideBufferPos :word; HideDispPos :word; ShowBufferPos :word; ShowDispPos :word; Memory :Ptr; { Ab hier ist jeder Zugriff auf die Record- } Memory2 :Ptr; { Elemente verboten (Private Area) } Lock :Ptr; PrivateDirBuffer :String[132]; FileInfoBlock :Ptr; NumEntries :Word; NumHiddenEntries :Word; filestartnumber :Word; devicestartnumber:Word; end; GadgetBlock = Record Gadget : Gadget; Border : Border; Pairs : Array [0..Numpairs] of Word; Text : IntuiText; end; StringBlock = Record Gadget : Gadget; Info : StringInfo; Border : Border; Pairs : Array [0..numpairs] of word; end; PropBlock = Record Gadget : Gadget; Info : PropInfo; Image : Image; end; TwoImageGadget = Record Gadget : Gadget; Image1 : Image; Image2 : Image; end; Var ReqBase : Ptr; Library ReqBase: -30 : Procedure Center(a0:p_NewWindow;d0,d1:Word); -84 : Function FileRequest(a0: Ptr): Long; -90 : Function ColorRequester(d0:Long):Long; -102: Procedure Makebutton(a0:Ptr;a1,a2:Ptr;d0,d1,d2:Long); -114: Procedure PurgeFiles(a0:Ptr); -126: Procedure MakeGadget(a0:Ptr;a1:Str,d0,d1:Long); -132: Procedure MakeString(a0:Ptr;a1,a2:Str;d0,d1,d2,d3:Long); -138: Procedure MakeProp(a0:ptr;d0,d1,d2:Long); -144: Procedure LinkGadget(a0:Ptr,a1:Str;a3:p_NewWindow;d0,d1:Long); -150: Procedure LinkStringGadget(a0:Ptr;a1,a2:Str;a3:p_NewWindow;d0,d1,d2,d3:Long); -156: Procedure LinkPropGadget(a0:Ptr;a3:p_NewWindow;d0,d1,d2,d3,d4:Long); -162: Function Getstring(a0,a1:Str;a2:p_Window;d0,d1:Long):Boolean; -174: Function TextRequest(a0:Ptr):Long; -180: Function GetLong(a0:Ptr):Boolean; end; {$endif}