home *** CD-ROM | disk | FTP | other *** search
- #include "exec/types.h"
-
-
- /*Die Datenstruktur und die einstellbaren Flags wurden vom
- FileRequester Aufruf der REQUESTER.Library übernommen, so daß
- eine Umstellung auf den RCT-File-Requester sehr einfach gemacht
- werden kann.*/
-
- /* Definitionen für RCT-FileRequester */
-
- /* DSIZE ist die Definition für die Größe des Pfadnamen-Arrays. */
- /* FCHARS steht für die Größe des Dateinamen-Arrays. */
- /* WILDLENGTH ist die länge des Stings für den Hide- und Showtext. */
-
- /* Durch folgende Flags kann das Aussehen und die Art des Requesters */
- /* verändert werden: */
-
- /* FRQCACHINGM Wenn das eingelesene Verzeichnis
- zwischengespeichert und beim nächsten Aufruf
- des Requesters wieder aufgerufen werden soll */
- /* FRQABSOLUTEXYM in den Felder WindowLeftEdge, WindowTopEdge
- werden Koordianten angegeben anderenfalls wird
- der Requester zentiert */
- /* FRQCACHEPURGEM Das zwischengespeicherte Verzeichnis wird
- neu geladen wenn sich das Datum des Verzeichnisses geändert hat */
- /* FRQNOHALFCACHEM Die eingelesenen Dateien werden nicht bis zum
- nächsten Aufruf zwischengespeichert, wenn sie nicht vollständig
- eingelesen werden konnten */
- /* FRQNOSORTM Die Dateinamen sollen unsortiert angezeigt
- werden */
- /* FRQNODRAGM Der Requester kann nciht verschoben oder in
- den Hinter-/Vordergrund geholt werden */
- /* FRQSAVINGM Im "OK-Gadget" wird der Text "SAVE" angezeigt */
- /* FRQLOADINGM Im "OK-Gadget" wird der text "LOAD" angezeigt */
- /* FRQNODEPTHM Das Fenster soll zwar verschiebbar aber nicht
- in der Vorder-/Hintergrund stellbar sein. */
-
-
- #ifndef DSIZE
- #define DSIZE 130
- #define FCHARS 30
- #endif /* ifndef DSIZE */
-
- #define WILDLENGTH 30
-
- #define FRQSHOWINFOB 0
- #define FRQEXTSELECTB 1
- #define FRQCACHINGB 2
- #define FRQGETFONTSB 3
- #define FRQINFOGADGETB 4
- #define FRQHIDEWILDSB 5
- #define FRQABSOLUTEXYB 6
- #define FRQCACHEPURGEB 7
- #define FRQNOHALFCACHEB 8
- #define FRQNOSORTB 9
- #define FRQNODRAGB 10
- #define FRQSAVINGB 11
- #define FRQLOADINGB 12
- #define FRQDIRONLYB 13
- #define FRQNODEPTHB 14
-
- #define FRQSHOWINFOM (1<<FRQSHOWINFOB)
- #define FRQEXTSELECTM (1<<FRQEXTSELECTB)
- #define FRQCACHINGM (1<<FRQCACHINGB)
- #define FRQGETFONTSM (1<<FRQGETFONTSB)
- #define FRQINFOGADGETM (1<<FRQINFOGADGETB)
- #define FRQHIDEWILDSM (1<<FRQHIDEWILDSB)
- #define FRQABSOLUTEXYM (1<<FRQABSOLUTEXYB)
- #define FRQCACHEPURGEM (1<<FRQCACHEPURGEB)
- #define FRQNOHALFCACHEM (1<<FRQNOHALFCACHEB)
- #define FRQNOSORTM (1<<FRQNOSORTB)
- #define FRQNODRAGM (1<<FRQNODRAGB)
- #define FRQSAVINGM (1<<FRQSAVINGB)
- #define FRQLOADINGM (1<<FRQLOADINGB)
- #define FRQDIRONLYM (1<<FRQDIRONLYB)
- #define FRQNODEPTHM (1<<FRQNODEPTHB)
-
-
-
- /* Die Struktur sieht folgendermaßen aus: */
-
-
- struct RCTFileRequester
- {
- UWORD VersionNumber; /* Die Versionsnummer der
- Library, die beim Programmieren verwendet wird */
-
- char *Title; /* Entweder der Fenstertitel oder
- ein besonderes Requestergadget */
- char *Dir; /* Pfad-Array (DSIZE+1) */
- char *File; /* Dateiname-Array (FCHARS+1) */
- char *PathName; /* Pfad- und Dateinamen-Array (DSIZE+FCHARS+2) */
-
- struct Window *Window; /* Window in dem der Requester
- angezeigt werden soll oder NULL */
- UWORD reserved; /* wird ignoriert */
- UWORD numlines; /* wird ignoriert */
- UWORD numcolumns; /* wird ignoriert */
- UWORD devcolumns;
- ULONG Flags; /* Definitionen der Flags siehe
- oben */
- UWORD dirnamescolor; /* wird ignoriert */
- UWORD filenamescolor; /* wird ignoriert */
- UWORD devicenamescolor; /* wird ignoriert */
- UWORD fontnamescolor; /* wird ignoriert */
- UWORD fontsizescolor; /* wird ignoriert */
-
- UWORD detailcolor; /* wird ignoriert */
- UWORD blockcolor; /* wird ignoriert */
- UWORD gadgettextcolor; /* wird ignoriert */
- UWORD textmessagecolor; /* wird ignoriert */
- UWORD stringnamecolor; /* wird ignoriert */
- UWORD stringgadgetcolor; /* wird ignoriert */
- UWORD boxbordercolor; /* wird ignoriert */
- UWORD gadgetboxcolor; /* wird ignoriert */
-
- UWORD FRU_Stuff[18]; /* Reserviert, sollte NULL sein */
- struct DateStamp DirDateStamp; /* wird ignoriert */
-
- UWORD WindowLeftEdge; /* Diese beiden Felder werden
- benutzt, um den Requester zu */
- UWORD WindowTopEdge; /* positionieren. */
-
- UWORD FontYSize; /* wird ignoriert */
- UWORD FontStyle; /* wird ignoriert */
-
- ULONG *reserved1; /* Reserviert */
- char Hide[WILDLENGTH+2]; /* Wildcards Text für Dateien die
- nicht angezeigt werden sollen */
- char Show[WILDLENGTH+2]; /* Wildcards Text für Dateien die
- angezeigt werden sollen */
- WORD FileBufferPos; /* Werte für Stringgadgets */
- WORD FileDispPos;
- WORD DirBufferPos;
- WORD DirDispPos;
- WORD HideBufferPos;
- WORD HideDispPos;
- WORD ShowBufferPos;
- WORD ShowDispPos;
-
- /**; Die nachfolgenden Felder sind Privat und sollten aus
- Ihren Programmen nie angesprochen oder genutzt werden */
-
- APTR privat1;
- APTR privat2;
- APTR privat3;
- char privat4[DSIZE+2];
- /* directory we have file names for. */
- struct FileInfoBlock *privat6;
- WORD privat7;
- WORD privat8;
- WORD privat9;
- WORD privat10;
- };
-
-
-
- /* ************* Prototyps aus RCT Library *********** */
-
- /* Allgemeine Resource-Funktionen */
-
- LONG *rctload( char *pfad);
- BOOL rctfree( void *base);
- void *rctaddr( void *base, long art, long id);
-
- /* Allgemeine Funktionen */
-
- void waitall(struct MsgPort *port, struct IntuiMessage *mess);
- unsigned int *getpattern( void *base, long index);
-
- /* Requester Funktionen */
-
- BOOL reqcenter( void *base, struct Requester *req, struct Window *win);
- BOOL reqdraw( void *base, struct Requester *req, struct Window *win);
- BOOL reqend( void *base, struct Requester *req, struct Window *win);
- LONG getreqstruct( void *base, struct Requester *req, long item);
- BOOL setreqstruct( void *base, struct Requester *req, long item, long wert);
- BOOL setreqtext( void *base, struct Requester *req, long id, char *text);
- char *getreqtext( void *base, struct Requester *req, long id);
- LONG gettextstruct( void *base, struct Requester *req, long id, long item);
- BOOL settextstruct( void *base, struct Requester *req, long id, long item, long wert);
- BOOL setgadtext( void *base, struct Requester *req, long id, char *text);
- char *getgadtext( void *base, struct Requester *req, long id);
- long getgadstruct( void *base, struct Requester *req, long id, long item);
- BOOL setgadstruct( void *base, struct Requester *req, long id, long item, long wert);
- BOOL redrawgadgets( void *base, struct Requester *req, long id);
- BOOL redrawgad( void *base, struct Requester *req, long id, long anzahl);
- BOOL aktivegad( void *base, struct Requester *req, long id);
- BOOL setstrgadtext( void *base, struct Requester *req, long id, char *text);
- char *getstrgadtext( void *base, struct Requester *req, long id);
- LONG getstrgadstruct( void *base, struct Requester *req, long id, long item);
- BOOL setstrgadstruct( void *base, struct Requester *req, long id, long item, long wert);
- BOOL setpropgadstruct( void *base, struct Requester *req, long id, long item, LONG wert);
- LONG getpropgadstruct( void *base, struct Requester *req, long id, long item);
- struct Window *reqdrawwindow( void *base, struct Requester *req, struct Screen *scr, char *titel);
- struct Window *gaddrawwindow( void *base, struct Requester *req, struct Screen *scr, char *titel, unsigned long IDCMP, unsigned long Flags);
- unsigned short reqwait( void *base, struct Requester *req, ULONG *class);
-
-
- /* Menü-Funktionen */
-
- BOOL menudraw( void *base, struct Menu *men, struct Window *win);
- BOOL menuend( void *base, struct Menu *men, struct Window *win);
- BOOL setmenutitle( void *base, struct Menu *men, long id, char *text);
- char *getmenutitle( void *base, struct Menu *men, long id);
- BOOL setmenustruct( void *base, struct Menu *men, long id, long item, void *wert);
- short getmenustruct( void *base, struct Menu *men, long id, long item);
- BOOL setmenuitext( void *base, struct Menu *men, long id, long nid, char *text);
- char *getmenuitext( void *base, struct Menu *men, long id, long nid);
- BOOL setmenuitemstruct( void *base, struct Menu *men, long id, long nid, long item, void *wert);
- void *getmenuitemstruct( void *base, struct Menu *men, long id, long nid, long item);
- BOOL setmenustext( void *base, struct Menu *men, long id, long nid, long sid, char *text);
- char *getmenustext( void *base, struct Menu *men, long id, long nid, long sid);
- BOOL setmenusubstruct( void *base, struct Menu *men, long id, long nid, long sid, long item, void *wert);
- LONG getmenusubstruct( void *base, struct Menu *men, long id, long nid, long sid, long item);
-
- /* Screen-Funktionen */
-
- struct Screen *showscreen(void *base, USHORT mod, USHORT depth, UBYTE *tit);
- void remscreen( void *base, struct Screen *screen);
-
- /* Alarm und File-Requester */
-
- int form_alert( long md, char *str);
- int filer(struct RCTFileRequester *filreq);
- void filercachefree( struct RCTFileRequester *myreq);
-
-
- /* Pragmas */
-
- #pragma amicall(RctBase, 30, rctload( a0))
- #pragma amicall(RctBase, 36, rctfree( a0))
- #pragma amicall(RctBase, 42, rctaddr( a0, d0, d1))
- #pragma amicall(RctBase, 48, reqcenter( a0, a1, a2))
- #pragma amicall(RctBase, 54, reqdraw( a0, a1, a2))
- #pragma amicall(RctBase, 60, reqend( a0, a1, a2))
- #pragma amicall(RctBase, 66, getreqstruct( a0, a1, d0))
- #pragma amicall(RctBase, 72, setreqstruct( a0, a1, d0, d1))
- #pragma amicall(RctBase, 78, setreqtext( a0, a1, d0, a2))
- #pragma amicall(RctBase, 84, getreqtext( a0, a1, d0))
- #pragma amicall(RctBase, 90, gettextstruct( a0, a1, d0, d1))
- #pragma amicall(RctBase, 96, settextstruct( a0, a1, d0, d1, d2))
- #pragma amicall(RctBase, 102, setgadtext( a0, a1, d0, a2))
- #pragma amicall(RctBase, 108, getgadtext( a0, a1, d0))
- #pragma amicall(RctBase, 114, getgadstruct( a0, a1, d0, d1))
- #pragma amicall(RctBase, 120, setgadstruct( a0, a1, d0, d1, d2))
- #pragma amicall(RctBase, 126, redrawgadgets( a0, a1, d0))
- #pragma amicall(RctBase, 132, redrawgad( a0, a1, d0, d1))
- #pragma amicall(RctBase, 138, aktivegad( a0, a1, d0))
- #pragma amicall(RctBase, 144, setstrgadtext( a0, a1, d0, a2))
- #pragma amicall(RctBase, 150, getstrgadtext( a0, a1, d0))
- #pragma amicall(RctBase, 156, setstrgadstruct( a0, a1, d0, d1, d2))
- #pragma amicall(RctBase, 162, getstrgadstruct( a0, a1, d0, d1))
- #pragma amicall(RctBase, 168, setpropgadstruct( a0, a1, d0, d1, d2))
- #pragma amicall(RctBase, 174, getpropgadstruct( a0, a1, d0, d1))
-
- #pragma amicall(RctBase, 180, menudraw( a0, a1, a2))
- #pragma amicall(RctBase, 186, menuend( a0, a1, a2))
- #pragma amicall(RctBase, 192, setmenutitle( a0, a1, d0, a2))
- #pragma amicall(RctBase, 198, getmenutitle( a0, a1, d0))
- #pragma amicall(RctBase, 204, setmenustruct( a0, a1, d0, d1, d2))
- #pragma amicall(RctBase, 210, getmenustruct( a0, a1, d0, d1))
- #pragma amicall(RctBase, 216, setmenuitext( a0, a1, d0, d1, a2))
- #pragma amicall(RctBase, 222, getmenuitext( a0, a1, d0, d1))
- #pragma amicall(RctBase, 228, setmenuitemstruct( a0, a1, d0, d1, d2, d3))
- #pragma amicall(RctBase, 234, getmenuitemstruct( a0, a1, d0, d1, d2))
- #pragma amicall(RctBase, 240, setmenustext( a0, a1, d0, d1, d2, a2))
- #pragma amicall(RctBase, 246, getmenustext( a0, a1, d0, d1, d2))
- #pragma amicall(RctBase, 252, setmenusubstruct( a0, a1, d0, d1, d2, d3, d4))
- #pragma amicall(RctBase, 258, getmenusubstruct( a0, a1, d0, d1, d2, d3))
-
- #pragma amicall(RctBase, 264, reqdrawwindow( a0, a1, a2, a3))
- #pragma amicall(RctBase, 270, reqwait( a0, a1, a2))
- #pragma amicall(RctBase, 276, showscreen( a0, d0, d1, a1))
- #pragma amicall(RctBase, 282, remscreen( a0, a1))
-
- #pragma amicall(RctBase, 288, form_alert( d0, a0))
- #pragma amicall(RctBase, 294, filer( a0))
- #pragma amicall(RctBase, 300, filercachefree( a0))
- #pragma amicall(RctBase, 306, waitall( a0, a1))
- #pragma amicall(RctBase, 312, gaddrawwindow( a0, a1, a2, a3, d0, d1))
- #pragma amicall(RctBase, 318, getpattern( a0, d0))
-
-