/*
 * Scan 'C' Header File
 * Written by Thomas Krehbiel
 *
 * Requesters.
 *
 */

#ifndef SCAN_REQ_H


#define FI_DIRLEN    (128)
#define FI_FILELEN   (32)
#define FI_PATLEN    (64)

/*
 * FileInfo - used to maintain directory and filename information from
 *            file requester useage to useage.  So that the user is
 *            presented with the same directory and filename as the
 *            last time he used this file requester.  One day might
 *            buffer the directory itself, but I doubt it.
 *
 *            This structure is passed to the NewGetFile() function,
 *            incidentally.
 */

struct FileInfo {
   char     Dir[FI_DIRLEN];      /* Directory last used */
   char     File[FI_FILELEN];    /* File last selected */
   char     Pattern[FI_PATLEN];  /* Last pattern used */
   APTR     Cache;               /* Directory cache (not used) */
   struct DateStamp CacheDate;   /* Date of directory cache (not used) */
   BPTR     CacheLock;           /* Lock on cached directory (not used) */
   struct Screen *Screen;        /* Screen on which to open */
   char     Toggle[80];          /* Alternate directory */
   char    *PathName;            /* Selected path (used by ComplexRequest) */
   char    *HailText;            /* Hail text (also used by ComplexRequest) */
   short    LE, TE, W, H;        /* Size (not currently used) */
   long     Reserved[2];         /* Reserved for future expansion */
};

struct FontInfo {
   char              Dir[FI_DIRLEN];      /* Directory last used */
   struct TTextAttr  Attr;                /* (Extended) text attributes */
   ULONG             Tags[8];             /* Tags for 2.0 TextAttr */
   long              Reserved[32];        /* For future expansion */
};

/*
 * Flags for the NewGetFile() function...
 */

#define FI_NOROLL    0x01        /* Do not roll screen up */
#define FI_SAVE      0x02        /* We're saving something */
#define FI_DIRONLY   0x04        /* Select directories only */
#define FI_SCREEN    0x08        /* Force open on fi->Screen */

/*
 * ListNode for the PickFromListA() function...
 */
struct ListNode {
   struct MinNode       Node;
   char                 Label[80];
   char                 Command[256];
   int                  ID;
};

#define SCAN_REQ_H
#endif
