home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / inc&ad2.0 / includes / intuition / preferences.h < prev    next >
C/C++ Source or Header  |  1992-09-01  |  10KB  |  284 lines

  1. #ifndef INTUITION_PREFERENCES_H
  2. #define INTUITION_PREFERENCES_H TRUE
  3. /*
  4. **  $Filename: intuition/preferences.h $
  5. **  $Release: 2.04 Includes, V37.4 $
  6. **  $Revision: 36.8 $
  7. **  $Date: 91/05/08 $
  8. **
  9. **  Structure definition for old-style preferences
  10. **
  11. **  (C) Copyright 1985-1991 Commodore-Amiga, Inc.
  12. **        All Rights Reserved
  13. */
  14.  
  15. #ifndef EXEC_TYPES_H
  16. #include <exec/types.h>
  17. #endif
  18.  
  19. #ifndef DEVICES_TIMER_H
  20. #include <devices/timer.h>
  21. #endif
  22.  
  23. /* ======================================================================== */
  24. /* === Preferences ======================================================== */
  25. /* ======================================================================== */
  26.  
  27. /* these are the definitions for the printer configurations */
  28. #define    FILENAME_SIZE    30            /* Filename size */
  29.  
  30. #define    POINTERSIZE (1 + 16 + 1) * 2    /* Size of Pointer data buffer */
  31.  
  32. /* These defines are for the default font size.  These actually describe the
  33.  * height of the defaults fonts.  The default font type is the topaz
  34.  * font, which is a fixed width font that can be used in either
  35.  * eighty-column or sixty-column mode.    The Preferences structure reflects
  36.  * which is currently selected by the value found in the variable FontSize,
  37.  * which may have either of the values defined below.  These values actually
  38.  * are used to select the height of the default font.  By changing the
  39.  * height, the resolution of the font changes as well.
  40.  */
  41. #define TOPAZ_EIGHTY 8
  42. #define TOPAZ_SIXTY 9
  43.  
  44. struct Preferences
  45. {
  46.     /* the default font height */
  47.     BYTE FontHeight;            /* height for system default font  */
  48.  
  49.     /* constant describing what's hooked up to the port */
  50.     UBYTE PrinterPort;            /* printer port connection       */
  51.  
  52.     /* the baud rate of the port */
  53.     UWORD BaudRate;            /* baud rate for the serial port   */
  54.  
  55.     /* various timing rates */
  56.     struct timeval KeyRptSpeed;        /* repeat speed for keyboard       */
  57.     struct timeval KeyRptDelay;        /* Delay before keys repeat       */
  58.     struct timeval DoubleClick;        /* Interval allowed between clicks */
  59.  
  60.     /* Intuition Pointer data */
  61.     UWORD PointerMatrix[POINTERSIZE];    /* Definition of pointer sprite    */
  62.     BYTE XOffset;            /* X-Offset for active 'bit'       */
  63.     BYTE YOffset;            /* Y-Offset for active 'bit'       */
  64.     UWORD color17;            /***********************************/
  65.     UWORD color18;            /* Colours for sprite pointer       */
  66.     UWORD color19;            /***********************************/
  67.     UWORD PointerTicks;            /* Sensitivity of the pointer       */
  68.  
  69.     /* Workbench Screen colors */
  70.     UWORD color0;            /***********************************/
  71.     UWORD color1;            /*  Standard default colours       */
  72.     UWORD color2;            /*   Used in the Workbench       */
  73.     UWORD color3;            /***********************************/
  74.  
  75.     /* positioning data for the Intuition View */
  76.     BYTE ViewXOffset;            /* Offset for top lefthand corner  */
  77.     BYTE ViewYOffset;            /* X and Y dimensions           */
  78.     WORD ViewInitX, ViewInitY;        /* View initial offset values       */
  79.  
  80.     BOOL EnableCLI;            /* CLI availability switch */
  81.  
  82.     /* printer configurations */
  83.     UWORD PrinterType;            /* printer type           */
  84.     UBYTE PrinterFilename[FILENAME_SIZE];/* file for printer       */
  85.  
  86.     /* print format and quality configurations */
  87.     UWORD PrintPitch;            /* print pitch               */
  88.     UWORD PrintQuality;            /* print quality           */
  89.     UWORD PrintSpacing;            /* number of lines per inch       */
  90.     UWORD PrintLeftMargin;        /* left margin in characters       */
  91.     UWORD PrintRightMargin;        /* right margin in characters       */
  92.     UWORD PrintImage;            /* positive or negative           */
  93.     UWORD PrintAspect;            /* horizontal or vertical       */
  94.     UWORD PrintShade;            /* b&w, half-tone, or color       */
  95.     WORD PrintThreshold;        /* darkness ctrl for b/w dumps       */
  96.  
  97.     /* print paper descriptors */
  98.     UWORD PaperSize;            /* paper size               */
  99.     UWORD PaperLength;            /* paper length in number of lines */
  100.     UWORD PaperType;            /* continuous or single sheet       */
  101.  
  102.     /* Serial device settings: These are six nibble-fields in three bytes */
  103.     /* (these look a little strange so the defaults will map out to zero) */
  104.     UBYTE   SerRWBits;     /* upper nibble = (8-number of read bits)    */
  105.              /* lower nibble = (8-number of write bits)    */
  106.     UBYTE   SerStopBuf;  /* upper nibble = (number of stop bits - 1)    */
  107.              /* lower nibble = (table value for BufSize)    */
  108.     UBYTE   SerParShk;     /* upper nibble = (value for Parity setting)    */
  109.              /* lower nibble = (value for Handshake mode)    */
  110.     UBYTE   LaceWB;     /* if workbench is to be interlaced        */
  111.  
  112.     UBYTE   WorkName[FILENAME_SIZE];  /* temp file for printer        */
  113.  
  114.     BYTE    RowSizeChange;    /* affect NormalDisplayRows/Columns    */
  115.     BYTE    ColumnSizeChange;
  116.  
  117.     UWORD    PrintFlags;    /* user preference flags */
  118.     UWORD    PrintMaxWidth;    /* max width of printed picture in 10ths/in */
  119.     UWORD    PrintMaxHeight;    /* max height of printed picture in 10ths/in */
  120.     UBYTE    PrintDensity;    /* print density */
  121.     UBYTE    PrintXOffset;    /* offset of printed picture in 10ths/inch */
  122.  
  123.     UWORD    wb_Width;        /* override default workbench width  */
  124.     UWORD    wb_Height;        /* override default workbench height */
  125.     UBYTE    wb_Depth;        /* override default workbench depth  */
  126.  
  127.     UBYTE    ext_size;        /* extension information -- do not touch! */
  128.                 /* extension size in blocks of 64 bytes */
  129. };
  130.  
  131.  
  132. /* Workbench Interlace (use one bit) */
  133. #define LACEWB            (1<< 0)
  134. #define LW_RESERVED    1        /* internal use only */
  135.  
  136. /* Enable_CLI    */
  137. #define SCREEN_DRAG    (1<<14)
  138. #define MOUSE_ACCEL    (1L<<15)
  139.  
  140. /* PrinterPort */
  141. #define PARALLEL_PRINTER 0x00
  142. #define SERIAL_PRINTER    0x01
  143.  
  144. /* BaudRate */
  145. #define BAUD_110    0x00
  146. #define BAUD_300    0x01
  147. #define BAUD_1200    0x02
  148. #define BAUD_2400    0x03
  149. #define BAUD_4800    0x04
  150. #define BAUD_9600    0x05
  151. #define BAUD_19200    0x06
  152. #define BAUD_MIDI    0x07
  153.  
  154. /* PaperType */
  155. #define FANFOLD    0x00
  156. #define SINGLE        0x80
  157.  
  158. /* PrintPitch */
  159. #define PICA        0x000
  160. #define ELITE        0x400
  161. #define FINE        0x800
  162.  
  163. /* PrintQuality */
  164. #define DRAFT        0x000
  165. #define LETTER        0x100
  166.  
  167. /* PrintSpacing */
  168. #define SIX_LPI        0x000
  169. #define EIGHT_LPI    0x200
  170.  
  171. /* Print Image */
  172. #define IMAGE_POSITIVE    0x00
  173. #define IMAGE_NEGATIVE    0x01
  174.  
  175. /* PrintAspect */
  176. #define ASPECT_HORIZ    0x00
  177. #define ASPECT_VERT    0x01
  178.  
  179. /* PrintShade */
  180. #define SHADE_BW    0x00
  181. #define SHADE_GREYSCALE    0x01
  182. #define SHADE_COLOR    0x02
  183.  
  184. /* PaperSize */
  185. #define US_LETTER    0x00
  186. #define US_LEGAL    0x10
  187. #define N_TRACTOR    0x20
  188. #define W_TRACTOR    0x30
  189. #define CUSTOM        0x40
  190.  
  191. /* New PaperSizes for V36: */
  192. #define EURO_A0    0x50        /* European size A0: 841 x 1189 */
  193. #define EURO_A1    0x60        /* European size A1: 594 x 841 */
  194. #define EURO_A2    0x70        /* European size A2: 420 x 594 */
  195. #define EURO_A3    0x80        /* European size A3: 297 x 420 */
  196. #define EURO_A4    0x90        /* European size A4: 210 x 297 */
  197. #define EURO_A5    0xA0        /* European size A5: 148 x 210 */
  198. #define EURO_A6    0xB0        /* European size A6: 105 x 148 */
  199. #define EURO_A7    0xC0        /* European size A7: 74 x 105 */
  200. #define EURO_A8    0xD0        /* European size A8: 52 x 74 */
  201.  
  202.  
  203. /* PrinterType */
  204. #define CUSTOM_NAME        0x00
  205. #define    ALPHA_P_101        0x01
  206. #define BROTHER_15XL        0x02
  207. #define CBM_MPS1000        0x03
  208. #define DIAB_630        0x04
  209. #define DIAB_ADV_D25        0x05
  210. #define DIAB_C_150        0x06
  211. #define EPSON            0x07
  212. #define EPSON_JX_80        0x08
  213. #define OKIMATE_20        0x09
  214. #define QUME_LP_20        0x0A
  215. /* new printer entries, 3 October 1985 */
  216. #define HP_LASERJET        0x0B
  217. #define HP_LASERJET_PLUS    0x0C
  218.  
  219. /* Serial Input Buffer Sizes */
  220. #define SBUF_512    0x00
  221. #define SBUF_1024    0x01
  222. #define SBUF_2048    0x02
  223. #define SBUF_4096    0x03
  224. #define SBUF_8000    0x04
  225. #define SBUF_16000    0x05
  226.  
  227. /* Serial Bit Masks */
  228. #define    SREAD_BITS    0xF0 /* for SerRWBits    */
  229. #define    SWRITE_BITS    0x0F
  230.  
  231. #define    SSTOP_BITS    0xF0 /* for SerStopBuf    */
  232. #define    SBUFSIZE_BITS    0x0F
  233.  
  234. #define    SPARITY_BITS    0xF0 /* for SerParShk    */
  235. #define SHSHAKE_BITS    0x0F
  236.  
  237. /* Serial Parity (upper nibble, after being shifted by
  238.  * macro SPARNUM() )
  239.  */
  240. #define SPARITY_NONE     0
  241. #define SPARITY_EVEN     1
  242. #define SPARITY_ODD     2
  243. /* New parity definitions for V36: */
  244. #define SPARITY_MARK     3
  245. #define SPARITY_SPACE     4
  246.  
  247. /* Serial Handshake Mode (lower nibble, after masking using
  248.  * macro SHANKNUM() )
  249.  */
  250. #define SHSHAKE_XON     0
  251. #define SHSHAKE_RTS     1
  252. #define SHSHAKE_NONE     2
  253.  
  254. /* new defines for PrintFlags */
  255.  
  256. #define CORRECT_RED        0x0001  /* color correct red shades */
  257. #define CORRECT_GREEN        0x0002  /* color correct green shades */
  258. #define CORRECT_BLUE        0x0004  /* color correct blue shades */
  259.  
  260. #define CENTER_IMAGE        0x0008  /* center image on paper */
  261.  
  262. #define IGNORE_DIMENSIONS   0x0000 /* ignore max width/height settings */
  263. #define BOUNDED_DIMENSIONS  0x0010  /* use max width/height as boundaries */
  264. #define ABSOLUTE_DIMENSIONS 0x0020  /* use max width/height as absolutes */
  265. #define PIXEL_DIMENSIONS    0x0040  /* use max width/height as prt pixels */
  266. #define MULTIPLY_DIMENSIONS 0x0080 /* use max width/height as multipliers */
  267.  
  268. #define INTEGER_SCALING     0x0100  /* force integer scaling */
  269.  
  270. #define ORDERED_DITHERING   0x0000 /* ordered dithering */
  271. #define HALFTONE_DITHERING  0x0200  /* halftone dithering */
  272. #define FLOYD_DITHERING     0x0400 /* Floyd-Steinberg dithering */
  273.  
  274. #define ANTI_ALIAS        0x0800 /* anti-alias image */
  275. #define GREY_SCALE2        0x1000 /* for use with hi-res monitor */
  276.  
  277. /* masks used for checking bits */
  278.  
  279. #define CORRECT_RGB_MASK    (CORRECT_RED|CORRECT_GREEN|CORRECT_BLUE)
  280. #define DIMENSIONS_MASK     (BOUNDED_DIMENSIONS|ABSOLUTE_DIMENSIONS|PIXEL_DIMENSIONS|MULTIPLY_DIMENSIONS)
  281. #define DITHERING_MASK        (HALFTONE_DITHERING|FLOYD_DITHERING)
  282.  
  283. #endif
  284.