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

#ifndef SCAN_PREFS_H


#ifndef SCAN_REQ_H
#include <scan/req.h>      /* for FileInfo struct */
#endif

/*
 * UserPrefs - The entire list of preferences that the user may
 *             set within the program.  These should be considered
 *             to be READ ONLY.
 */

struct UserPrefs {
   struct FileInfo   LoadPath;
   struct FileInfo   SavePath;
   struct FileInfo   RendPath;
   struct FileInfo   BruLoadPath;
   struct FileInfo   BruSavePath;
   struct FileInfo   AlphaLoadPath;
   struct FileInfo   AlphaSavePath;
   struct FileInfo   ConvolvePath;
   struct FileInfo   TransformPath;
   struct FileInfo   ScannerMod;
   struct FileInfo   PreviewMod;
   struct FileInfo   RenderMod;
   struct FileInfo   VMemPath;
   struct FileInfo   ArexxPath;
   struct FileInfo   HookPath;
   struct FileInfo   FontPath;
   struct FileInfo   PalettePath;
   struct FileInfo   PrinterMod;
   struct FileInfo   SepPath;
   struct FileInfo   QuantizeMod;
   struct FileInfo   dummy5;
   unsigned short    Palette[4];       /* Screen palette */
   char              SerDevice[32];    /* Serial device */
   long              SerUnit;          /* Serial unit */
   long              SerBaud;          /* Serial baud rate */
   char              ParDevice[32];    /* Parallel device */
   long              ParUnit;          /* Parallel unit */
   long              Flags;            /* Various Flags (see below) */
   short             DitherLimit;      /* Dither limiting value */
   short             VPageSize;        /* VMem page size */
   short             VMaxPages;        /* VMem max pages in memory */
   short             VMinThresh;       /* Minimum memory threshold */
   char              CurMode;          /* Default starting panel mode */
   char              Units;            /* Display units (see below) */
   char              ColorSpace;       /* Palette colorspace */
   char              Colors;           /* Palette colors - 1 */
   char              pr_DrawTool;      /* Drawing tool */
   char              FileReq;          /* File requester of choice */
   char              UseVMem;          /* When to use virtual memory */
   char              pad0;
   short             pad1;
   long              Reserved[28];     /* Reserved for future expansion */
};

/*
 * Values for the Flags field.
 */

#define PFF_COARSE      0x00001L       /* Use coarse adjustment */
#define PFF_CLOSEWB     0x00002L       /* Close Workbench */
#define PFF_LACEPANEL   0x00004L       /* Use interlaced menu panel */
#define PFF_AUTOPREV    0x00010L       /* AutoScale preview */
#define PFF_DITHERPREV  0x00020L       /* Dither Preview */
#define PFF_GREYPREV    0x00040L       /* Grey Preview */
#define PFF_NOUNDO      0x00080L       /* Disable Undo */
#define PFF_AUTOBACK    0x00100L       /* Auto brush background (obsolete) */
#define PFF_COORDS      0x00200L       /* Show coordinates */
#define PFF_ICONS       0x00400L       /* Save icons with files */
#define PFF_ALLVMEM     0x00800L       /* Always use VMem buffers */
#define PFF_NOBUFFER    0x01000L       /* Create empty startup buffer (obsolete) */
#define PFF_KEEPPAL     0x02000L       /* Keep palette on toolbox screen */
#define PFF_USEHEX      0x04000L       /* Use hex for palette numbers */
#define PFF_METRIC      0x08000L       /* Use metric instead of english */
#define PFF_POSTREND    0x10000L       /* Call post render macro? */
#define PFF_NOCHECK     0x20000L       /* Disable "are you sure?" requesters */
#define PFF_NOROLL      0x40000L       /* Don't "roll" - snap instantly */
#define PFF_OPAQUE      0x80000L       /* Use "opaque" menu panel */

/*
 * For ancient compatibility, do not use:
 */
#define PFF_ADGAMMA     0x0001L        /* Use coarse adjustment */
#define PFF_TODISK      0x0008L        /* Scan to disk (obsolete) */
#define PFF_HIRESPREV   0x0010L        /* Hires Preview (obsolete) */

/*
 * Units values:
 */
#define UN_PIXELS       (0)
#define UN_INCHES       (1)
#define UN_METRIC       (2)

/*
 * Defines for the Prefs.UseVMem field
 */
#define VMEM_NEVER      (0)
#define VMEM_ASK        (1)
#define VMEM_DONTASK    (2)
#define VMEM_ALWAYS     (3)


#define SCAN_PREFS_H
#endif
