/*
 * 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             UndoLevels;       /* maximum undo levels */
   ULONG             VMaxRAM;          /* max RAM used by VMEM */
   ULONG             VMaxBuf;          /* max buffer size for VMEM */
   long              Reserved[26];     /* Reserved for future expansion */
};

/*
 * Values for the Flags field.
 */

#define PFF_CLOSEWB        0x000002L      /* Close Workbench */
#define PFF_LACEPANEL      0x000004L      /* Use interlaced menu panel */
#define PFF_NOUNDO         0x000080L      /* Disable Undo */
#define PFF_COORDS         0x000200L      /* Show coordinates */
#define PFF_ICONS          0x000400L      /* Save icons with files */
#define PFF_KEEPPAL        0x002000L      /* Keep palette on toolbox screen */
#define PFF_USEHEX         0x004000L      /* Use hex for palette numbers */
#define PFF_METRIC         0x008000L      /* Use metric instead of english */
#define PFF_POSTREND       0x010000L      /* Call post render macro? */
#define PFF_NOCHECK        0x020000L      /* Disable "are you sure?" requesters */
#define PFF_NOROLL         0x040000L      /* Don't "roll" - snap instantly */
#define PFF_OPAQUE         0x080000L      /* Use "opaque" menu panel */
#define PFF_CORRECTASPECT  0x100000L      /* Use "correct aspect" preview! */
#define PFF_PRESSURE       0x200000L      /* Enable pressure sensitivity? */
/*
 * For ancient compatibility, do not use:
 */
#define PFF_ADGAMMA        0x000001L      /* Use coarse adjustment (obsolete) */
#define PFF_TODISK         0x000008L      /* Scan to disk (obsolete) */
#define PFF_HIRESPREV      0x000010L      /* Hires Preview (obsolete) */

#define PFF_COARSE         0x000001L      /* Use coarse adjustment (obsolete) */
#define PFF_AUTOPREV       0x000010L      /* AutoScale preview (obsolete) */
#define PFF_DITHERPREV     0x000020L      /* Dither Preview (obsolete) */
#define PFF_GREYPREV       0x000040L      /* Grey Preview (obsolete) */
#define PFF_AUTOBACK       0x000100L      /* Auto brush background (obsolete) */
#define PFF_ALLVMEM        0x000800L      /* Always use VMem buffers (obsolete) */
#define PFF_NOBUFFER       0x001000L      /* Create empty startup buffer (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
