home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / RCT1,62.DMS / in.adf / LIBS / C-Assembler / rctdef.h < prev   
Encoding:
C/C++ Source or Header  |  1991-11-15  |  11.7 KB  |  284 lines

  1. #include "exec/types.h"
  2.  
  3.  
  4. /*Die Datenstruktur und die einstellbaren Flags wurden vom
  5. FileRequester Aufruf der REQUESTER.Library übernommen, so daß
  6. eine Umstellung auf den RCT-File-Requester sehr einfach gemacht
  7. werden kann.*/
  8.  
  9. /* Definitionen für RCT-FileRequester */
  10.  
  11. /* DSIZE ist die Definition für die Größe des Pfadnamen-Arrays.        */
  12. /* FCHARS steht für die Größe des Dateinamen-Arrays.                        */
  13. /* WILDLENGTH ist die länge des Stings für den Hide- und Showtext.    */
  14.  
  15. /* Durch folgende Flags kann das Aussehen und die Art des Requesters */
  16. /* verändert werden:                                                                 */
  17.  
  18. /* FRQCACHINGM      Wenn das eingelesene Verzeichnis
  19.                          zwischengespeichert und beim nächsten Aufruf
  20.                          des Requesters wieder aufgerufen werden soll */
  21. /* FRQABSOLUTEXYM  in den Felder WindowLeftEdge, WindowTopEdge
  22.                          werden Koordianten angegeben anderenfalls wird
  23.                          der Requester zentiert */
  24. /* FRQCACHEPURGEM  Das zwischengespeicherte Verzeichnis wird
  25.                          neu geladen wenn sich das Datum des Verzeichnisses geändert hat */
  26. /* FRQNOHALFCACHEM Die eingelesenen Dateien werden nicht bis zum
  27.                          nächsten Aufruf zwischengespeichert, wenn sie nicht vollständig
  28.                          eingelesen werden konnten */
  29. /* FRQNOSORTM         Die Dateinamen sollen unsortiert angezeigt
  30.                          werden */
  31. /* FRQNODRAGM         Der Requester kann nciht verschoben oder in
  32.                          den Hinter-/Vordergrund geholt werden */
  33. /* FRQSAVINGM         Im "OK-Gadget" wird der Text "SAVE" angezeigt */
  34. /* FRQLOADINGM      Im "OK-Gadget" wird der text "LOAD" angezeigt */
  35. /* FRQNODEPTHM      Das Fenster soll zwar verschiebbar aber nicht
  36.                          in der Vorder-/Hintergrund stellbar sein. */
  37.  
  38.  
  39. #ifndef    DSIZE
  40. #define    DSIZE 130
  41. #define    FCHARS    30
  42. #endif    /* ifndef DSIZE */
  43.  
  44. #define    WILDLENGTH    30
  45.  
  46. #define    FRQSHOWINFOB      0
  47. #define    FRQEXTSELECTB      1
  48. #define    FRQCACHINGB       2
  49. #define    FRQGETFONTSB      3
  50. #define    FRQINFOGADGETB   4
  51. #define    FRQHIDEWILDSB      5
  52. #define    FRQABSOLUTEXYB   6
  53. #define    FRQCACHEPURGEB   7
  54. #define    FRQNOHALFCACHEB  8
  55. #define    FRQNOSORTB          9
  56. #define    FRQNODRAGB         10
  57. #define    FRQSAVINGB         11
  58. #define    FRQLOADINGB      12
  59. #define    FRQDIRONLYB      13
  60. #define    FRQNODEPTHB      14
  61.  
  62. #define    FRQSHOWINFOM    (1<<FRQSHOWINFOB)
  63. #define    FRQEXTSELECTM    (1<<FRQEXTSELECTB)
  64. #define    FRQCACHINGM     (1<<FRQCACHINGB)
  65. #define    FRQGETFONTSM    (1<<FRQGETFONTSB)
  66. #define    FRQINFOGADGETM (1<<FRQINFOGADGETB)
  67. #define    FRQHIDEWILDSM    (1<<FRQHIDEWILDSB)
  68. #define    FRQABSOLUTEXYM (1<<FRQABSOLUTEXYB)
  69. #define    FRQCACHEPURGEM (1<<FRQCACHEPURGEB)
  70. #define    FRQNOHALFCACHEM    (1<<FRQNOHALFCACHEB)
  71. #define    FRQNOSORTM        (1<<FRQNOSORTB)
  72. #define    FRQNODRAGM        (1<<FRQNODRAGB)
  73. #define    FRQSAVINGM        (1<<FRQSAVINGB)
  74. #define    FRQLOADINGM     (1<<FRQLOADINGB)
  75. #define    FRQDIRONLYM     (1<<FRQDIRONLYB)
  76. #define    FRQNODEPTHM     (1<<FRQNODEPTHB)
  77.  
  78.  
  79.  
  80. /* Die Struktur sieht folgendermaßen aus: */
  81.  
  82.  
  83. struct RCTFileRequester
  84.   {
  85.   UWORD     VersionNumber;         /* Die Versionsnummer der
  86.                                              Library, die beim Programmieren verwendet wird */
  87.  
  88.   char     *Title;                  /* Entweder der Fenstertitel oder
  89.                                              ein besonderes Requestergadget */
  90.   char     *Dir;                     /* Pfad-Array (DSIZE+1) */
  91.   char     *File;                     /* Dateiname-Array (FCHARS+1) */
  92.   char     *PathName;              /* Pfad- und Dateinamen-Array (DSIZE+FCHARS+2) */
  93.  
  94.   struct Window *Window;         /* Window in dem der Requester
  95.                                              angezeigt werden soll oder NULL */
  96.   UWORD     reserved;                 /* wird ignoriert */
  97.   UWORD     numlines;                 /* wird ignoriert */
  98.   UWORD     numcolumns;             /* wird ignoriert */
  99.   UWORD     devcolumns;
  100.   ULONG     Flags;                     /* Definitionen der Flags siehe
  101.                                              oben */
  102.   UWORD     dirnamescolor;         /* wird ignoriert */
  103.   UWORD     filenamescolor;         /* wird ignoriert */
  104.   UWORD     devicenamescolor;     /* wird ignoriert */
  105.   UWORD     fontnamescolor;         /* wird ignoriert */
  106.   UWORD     fontsizescolor;         /* wird ignoriert */
  107.  
  108.   UWORD     detailcolor;             /* wird ignoriert */
  109.   UWORD     blockcolor;             /* wird ignoriert */
  110.   UWORD     gadgettextcolor;      /* wird ignoriert */
  111.   UWORD     textmessagecolor;     /* wird ignoriert */
  112.   UWORD     stringnamecolor;      /* wird ignoriert */
  113.   UWORD     stringgadgetcolor;     /* wird ignoriert */
  114.   UWORD     boxbordercolor;         /* wird ignoriert */
  115.   UWORD     gadgetboxcolor;         /* wird ignoriert */
  116.  
  117.   UWORD     FRU_Stuff[18];         /* Reserviert, sollte NULL sein */
  118.   struct DateStamp DirDateStamp; /* wird ignoriert */
  119.  
  120.   UWORD     WindowLeftEdge;         /* Diese beiden Felder werden
  121.                                              benutzt, um den Requester zu */
  122.   UWORD     WindowTopEdge;         /* positionieren. */
  123.  
  124.   UWORD     FontYSize;              /* wird ignoriert */
  125.   UWORD     FontStyle;              /* wird ignoriert */
  126.  
  127.   ULONG     *reserved1;             /* Reserviert */
  128.   char     Hide[WILDLENGTH+2];  /* Wildcards Text für Dateien die
  129.                                              nicht angezeigt werden sollen */
  130.   char     Show[WILDLENGTH+2];  /* Wildcards Text für Dateien die
  131.                                              angezeigt werden sollen */
  132.   WORD     FileBufferPos;         /* Werte für Stringgadgets */
  133.   WORD     FileDispPos;
  134.   WORD     DirBufferPos;
  135.   WORD     DirDispPos;
  136.   WORD     HideBufferPos;
  137.   WORD     HideDispPos;
  138.   WORD     ShowBufferPos;
  139.   WORD     ShowDispPos;
  140.  
  141.  /**;       Die nachfolgenden Felder sind Privat und sollten aus
  142.               Ihren Programmen nie angesprochen oder genutzt werden */
  143.  
  144.   APTR     privat1;
  145.   APTR     privat2;
  146.   APTR     privat3;
  147.   char     privat4[DSIZE+2];
  148.                                                                                                           /* directory we have file names for. */
  149.   struct FileInfoBlock      *privat6;
  150.   WORD     privat7;
  151.   WORD     privat8;
  152.   WORD     privat9;
  153.   WORD     privat10;
  154.   };
  155.  
  156.  
  157.  
  158. /* ************* Prototyps aus RCT Library *********** */
  159.  
  160. /* Allgemeine Resource-Funktionen */
  161.  
  162. LONG *rctload( char *pfad);
  163. BOOL rctfree( void *base);
  164. void *rctaddr( void *base, long art, long id);
  165.  
  166. /* Allgemeine Funktionen */
  167.  
  168. void waitall(struct MsgPort *port, struct IntuiMessage *mess);
  169. unsigned int *getpattern( void *base, long index);
  170.  
  171. /* Requester Funktionen */
  172.  
  173. BOOL reqcenter( void *base, struct Requester *req, struct Window *win);
  174. BOOL reqdraw( void *base, struct Requester *req, struct Window *win);
  175. BOOL reqend( void *base, struct Requester *req, struct Window *win);
  176. LONG getreqstruct( void *base, struct Requester *req, long item);
  177. BOOL setreqstruct( void *base, struct Requester *req, long item, long wert);
  178. BOOL setreqtext( void *base, struct Requester *req, long id, char *text);
  179. char *getreqtext( void *base, struct Requester *req, long id);
  180. LONG gettextstruct( void *base, struct Requester *req, long id, long item);
  181. BOOL settextstruct( void *base, struct Requester *req, long id, long item, long wert);
  182. BOOL setgadtext( void *base, struct Requester *req, long id, char *text);
  183. char *getgadtext( void *base, struct Requester *req, long id);
  184. long getgadstruct( void *base, struct Requester *req, long id, long item);
  185. BOOL setgadstruct( void *base, struct Requester *req, long id, long item, long wert);
  186. BOOL redrawgadgets( void *base, struct Requester *req, long id);
  187. BOOL redrawgad( void *base, struct Requester *req, long id, long anzahl);
  188. BOOL aktivegad( void *base, struct Requester *req, long id);
  189. BOOL setstrgadtext( void *base, struct Requester *req, long id, char *text);
  190. char *getstrgadtext( void *base, struct Requester *req, long id);
  191. LONG getstrgadstruct( void *base, struct Requester *req, long id, long item);
  192. BOOL setstrgadstruct( void *base, struct Requester *req, long id, long item, long wert);
  193. BOOL setpropgadstruct( void *base, struct Requester *req, long id, long item, LONG wert);
  194. LONG getpropgadstruct( void *base, struct Requester *req, long id, long item);
  195. struct Window *reqdrawwindow( void *base, struct Requester *req, struct Screen *scr, char *titel);
  196. struct Window *gaddrawwindow( void *base, struct Requester *req, struct Screen *scr, char *titel, unsigned long IDCMP, unsigned long Flags);
  197. unsigned short reqwait( void *base, struct Requester *req, ULONG *class);
  198.  
  199.  
  200. /* Menü-Funktionen */
  201.  
  202. BOOL menudraw( void *base, struct Menu *men, struct Window *win);
  203. BOOL menuend( void *base, struct Menu *men, struct Window *win);
  204. BOOL setmenutitle( void *base, struct Menu *men, long id, char *text);
  205. char *getmenutitle( void *base, struct Menu *men, long id);
  206. BOOL setmenustruct( void *base, struct Menu *men, long id, long item, void *wert);
  207. short getmenustruct( void *base, struct Menu *men, long id, long item);
  208. BOOL setmenuitext( void *base, struct Menu *men, long id, long nid, char *text);
  209. char *getmenuitext( void *base, struct Menu *men, long id, long nid);
  210. BOOL setmenuitemstruct( void *base, struct Menu *men, long id, long nid, long item, void *wert);
  211. void *getmenuitemstruct( void *base, struct Menu *men, long id, long nid, long item);
  212. BOOL setmenustext( void *base, struct Menu *men, long id, long nid, long sid, char *text);
  213. char *getmenustext( void *base, struct Menu *men, long id, long nid, long sid);
  214. BOOL setmenusubstruct( void *base, struct Menu *men, long id, long nid, long sid, long item, void *wert);
  215. LONG getmenusubstruct( void *base, struct Menu *men, long id, long nid, long sid, long item);
  216.  
  217. /* Screen-Funktionen */
  218.  
  219. struct Screen *showscreen(void *base, USHORT mod, USHORT depth, UBYTE *tit);
  220. void remscreen( void *base, struct Screen *screen);
  221.  
  222. /* Alarm und File-Requester */
  223.  
  224. int form_alert( long md, char *str);
  225. int filer(struct RCTFileRequester *filreq);
  226. void filercachefree( struct RCTFileRequester *myreq);
  227.  
  228.  
  229. /* Pragmas */
  230.  
  231. #pragma amicall(RctBase,  30, rctload( a0))
  232. #pragma amicall(RctBase,  36, rctfree( a0))
  233. #pragma amicall(RctBase,  42, rctaddr( a0, d0, d1))
  234. #pragma amicall(RctBase,  48, reqcenter( a0, a1, a2))
  235. #pragma amicall(RctBase,  54, reqdraw( a0, a1, a2))
  236. #pragma amicall(RctBase,  60, reqend( a0, a1, a2))
  237. #pragma amicall(RctBase,  66, getreqstruct( a0, a1, d0))
  238. #pragma amicall(RctBase,  72, setreqstruct( a0, a1, d0, d1))
  239. #pragma amicall(RctBase,  78, setreqtext( a0, a1, d0, a2))
  240. #pragma amicall(RctBase,  84, getreqtext( a0, a1, d0))
  241. #pragma amicall(RctBase,  90, gettextstruct( a0, a1, d0, d1))
  242. #pragma amicall(RctBase,  96, settextstruct( a0, a1, d0, d1, d2))
  243. #pragma amicall(RctBase, 102, setgadtext( a0, a1, d0, a2))
  244. #pragma amicall(RctBase, 108, getgadtext( a0, a1, d0))
  245. #pragma amicall(RctBase, 114, getgadstruct( a0, a1, d0, d1))
  246. #pragma amicall(RctBase, 120, setgadstruct( a0, a1, d0, d1, d2))
  247. #pragma amicall(RctBase, 126, redrawgadgets( a0, a1, d0))
  248. #pragma amicall(RctBase, 132, redrawgad( a0, a1, d0, d1))
  249. #pragma amicall(RctBase, 138, aktivegad( a0, a1, d0))
  250. #pragma amicall(RctBase, 144, setstrgadtext( a0, a1, d0, a2))
  251. #pragma amicall(RctBase, 150, getstrgadtext( a0, a1, d0))
  252. #pragma amicall(RctBase, 156, setstrgadstruct( a0, a1, d0, d1, d2))
  253. #pragma amicall(RctBase, 162, getstrgadstruct( a0, a1, d0, d1))
  254. #pragma amicall(RctBase, 168, setpropgadstruct( a0, a1, d0, d1, d2))
  255. #pragma amicall(RctBase, 174, getpropgadstruct( a0, a1, d0, d1))
  256.  
  257. #pragma amicall(RctBase, 180, menudraw( a0, a1, a2))
  258. #pragma amicall(RctBase, 186, menuend( a0, a1, a2))
  259. #pragma amicall(RctBase, 192, setmenutitle( a0, a1, d0, a2))
  260. #pragma amicall(RctBase, 198, getmenutitle( a0, a1, d0))
  261. #pragma amicall(RctBase, 204, setmenustruct( a0, a1, d0, d1, d2))
  262. #pragma amicall(RctBase, 210, getmenustruct( a0, a1, d0, d1))
  263. #pragma amicall(RctBase, 216, setmenuitext( a0, a1, d0, d1, a2))
  264. #pragma amicall(RctBase, 222, getmenuitext( a0, a1, d0, d1))
  265. #pragma amicall(RctBase, 228, setmenuitemstruct( a0, a1, d0, d1, d2, d3))
  266. #pragma amicall(RctBase, 234, getmenuitemstruct( a0, a1, d0, d1, d2))
  267. #pragma amicall(RctBase, 240, setmenustext( a0, a1, d0, d1, d2, a2))
  268. #pragma amicall(RctBase, 246, getmenustext( a0, a1, d0, d1, d2))
  269. #pragma amicall(RctBase, 252, setmenusubstruct( a0, a1, d0, d1, d2, d3, d4))
  270. #pragma amicall(RctBase, 258, getmenusubstruct( a0, a1, d0, d1, d2, d3))
  271.  
  272. #pragma amicall(RctBase, 264, reqdrawwindow( a0, a1, a2, a3))
  273. #pragma amicall(RctBase, 270, reqwait( a0, a1, a2))
  274. #pragma amicall(RctBase, 276, showscreen( a0, d0, d1, a1))
  275. #pragma amicall(RctBase, 282, remscreen( a0, a1))
  276.  
  277. #pragma amicall(RctBase, 288, form_alert( d0, a0))
  278. #pragma amicall(RctBase, 294, filer( a0))
  279. #pragma amicall(RctBase, 300, filercachefree( a0))
  280. #pragma amicall(RctBase, 306, waitall( a0, a1))
  281. #pragma amicall(RctBase, 312, gaddrawwindow( a0, a1, a2, a3, d0, d1))
  282. #pragma amicall(RctBase, 318, getpattern( a0, d0))
  283.  
  284.