#ifndef INTUITION_PREFERENCES_H #define INTUITION_PREFERENCES_H TRUE /* ** $VER: preferences.h 38.2 (16.9.1992) ** Includes Release 44.1 ** ** Structure definition for old-style preferences ** ** (C) Copyright 1985-1999 Amiga, Inc. ** All Rights Reserved */ #ifndef EXEC_TYPES_H #include <exec/types.h> #endif #ifndef DEVICES_TIMER_H #include <devices/timer.h> #endif /* ======================================================================== */ /* === Preferences ======================================================== */ /* ======================================================================== */ /* these are the definitions for the printer configurations */ #define FILENAME_SIZE 30 /* Filename size */ #define DEVNAME_SIZE 16 /* Device-name size */ #define POINTERSIZE (1 + 16 + 1) * 2 /* Size of Pointer data buffer */ /* These defines are for the default font size. These actually describe the * height of the defaults fonts. The default font type is the topaz * font, which is a fixed width font that can be used in either * eighty-column or sixty-column mode. The Preferences structure reflects * which is currently selected by the value found in the variable FontSize, * which may have either of the values defined below. These values actually * are used to select the height of the default font. By changing the * height, the resolution of the font changes as well. */ #define TOPAZ_EIGHTY 8 #define TOPAZ_SIXTY 9 /* Note: Starting with V36, and continuing with each new version of * Intuition, an increasing number of fields of struct Preferences * are ignored by SetPrefs(). (Some fields are obeyed only at the * initial SetPrefs(), which comes from the devs:system-configuration * file). Elements are generally superseded as new hardware or software * features demand more information than fits in struct Preferences. * Parts of struct Preferences must be ignored so that applications * calling GetPrefs(), modifying some other part of struct Preferences, * then calling SetPrefs(), don't end up truncating the extended * data. * * Consult the autodocs for SetPrefs() for further information as * to which fields are not always respected. */ struct Preferences { /* the default font height */ BYTE FontHeight; /* height for system default font */ /* constant describing what's hooked up to the port */ UBYTE PrinterPort; /* printer port connection */ /* the baud rate of the port */ UWORD BaudRate; /* baud rate for the serial port */ /* various timing rates */ struct timeval KeyRptSpeed; /* repeat speed for keyboard */ struct timeval KeyRptDelay; /* Delay before keys repeat */ struct timeval DoubleClick; /* Interval allowed between clicks */ /* Intuition Pointer data */ UWORD PointerMatrix[POINTERSIZE]; /* Definition of pointer sprite */ BYTE XOffset; /* X-Offset for active 'bit' */ BYTE YOffset; /* Y-Offset for active 'bit' */ UWORD color17; /***********************************/ UWORD color18; /* Colours for sprite pointer */ UWORD color19; /***********************************/ UWORD PointerTicks; /* Sensitivity of the pointer */ /* Workbench Screen colors */ UWORD color0; /***********************************/ UWORD color1; /* Standard default colours */ UWORD color2; /* Used in the Workbench */ UWORD color3; /***********************************/ /* positioning data for the Intuition View */ BYTE ViewXOffset; /* Offset for top lefthand corner */ BYTE ViewYOffset; /* X and Y dimensions */ WORD ViewInitX, ViewInitY; /* View initial offset values */ BOOL EnableCLI; /* CLI availability switch */ /* printer configurations */ UWORD PrinterType; /* printer type */ UBYTE PrinterFilename[FILENAME_SIZE];/* file for printer */ /* print format and quality configurations */ UWORD PrintPitch; /* print pitch */ UWORD PrintQuality; /* print quality */ UWORD PrintSpacing; /* number of lines per inch */ UWORD PrintLeftMargin; /* left margin in characters */ UWORD PrintRightMargin; /* right margin in characters */ UWORD PrintImage; /* positive or negative */ UWORD PrintAspect; /* horizontal or vertical */ UWORD PrintShade; /* b&w, half-tone, or color */ WORD PrintThreshold; /* darkness ctrl for b/w dumps */ /* print paper descriptors */ UWORD PaperSize; /* paper size */ UWORD PaperLength; /* paper length in number of lines */ UWORD PaperType; /* continuous or single sheet */ /* Serial device settings: These are six nibble-fields in three bytes */ /* (these look a little strange so the defaults will map out to zero) */ UBYTE SerRWBits; /* upper nibble = (8-number of read bits) */ /* lower nibble = (8-number of write bits) */ UBYTE SerStopBuf; /* upper nibble = (number of stop bits - 1) */ /* lower nibble = (table value for BufSize) */ UBYTE SerParShk; /* upper nibble = (value for Parity setting) */ /* lower nibble = (value for Handshake mode) */ UBYTE LaceWB; /* if workbench is to be interlaced */ UBYTE Pad[ 12 ]; UBYTE PrtDevName[DEVNAME_SIZE]; /* device used by printer.device * (omit the ".device") */ UBYTE DefaultPrtUnit; /* default unit opened by printer.device */ UBYTE DefaultSerUnit; /* default serial unit */ BYTE RowSizeChange; /* affect NormalDisplayRows/Columns */ BYTE ColumnSizeChange; UWORD PrintFlags; /* user preference flags */ UWORD PrintMaxWidth; /* max width of printed picture in 10ths/in */ UWORD PrintMaxHeight; /* max height of printed picture in 10ths/in */ UBYTE PrintDensity; /* print density */ UBYTE PrintXOffset; /* offset of printed picture in 10ths/inch */ UWORD wb_Width; /* override default workbench width */ UWORD wb_Height; /* override default workbench height */ UBYTE wb_Depth; /* override default workbench depth */ UBYTE ext_size; /* extension information -- do not touch! */ /* extension size in blocks of 64 bytes */ }; /* Workbench Interlace (use one bit) */ #define LACEWB (1<< 0) #define LW_RESERVED 1 /* internal use only */ /* Enable_CLI */ #define SCREEN_DRAG (1<<14) #define MOUSE_ACCEL (1L<<15) /* PrinterPort */ #define PARALLEL_PRINTER 0x00 #define SERIAL_PRINTER 0x01 /* BaudRate */ #define BAUD_110 0x00 #define BAUD_300 0x01 #define BAUD_1200 0x02 #define BAUD_2400 0x03 #define BAUD_4800 0x04 #define BAUD_9600 0x05 #define BAUD_19200 0x06 #define BAUD_MIDI 0x07 /* PaperType */ #define FANFOLD 0x00 #define SINGLE 0x80 /* PrintPitch */ #define PICA 0x000 #define ELITE 0x400 #define FINE 0x800 /* PrintQuality */ #define DRAFT 0x000 #define LETTER 0x100 /* PrintSpacing */ #define SIX_LPI 0x000 #define EIGHT_LPI 0x200 /* Print Image */ #define IMAGE_POSITIVE 0x00 #define IMAGE_NEGATIVE 0x01 /* PrintAspect */ #define ASPECT_HORIZ 0x00 #define ASPECT_VERT 0x01 /* PrintShade */ #define SHADE_BW 0x00 #define SHADE_GREYSCALE 0x01 #define SHADE_COLOR 0x02 /* PaperSize (all paper sizes have a zero in the lowest nybble) */ #define US_LETTER 0x00 #define US_LEGAL 0x10 #define N_TRACTOR 0x20 #define W_TRACTOR 0x30 #define CUSTOM 0x40 /* New PaperSizes for V36: */ #define EURO_A0 0x50 /* European size A0: 841 x 1189 */ #define EURO_A1 0x60 /* European size A1: 594 x 841 */ #define EURO_A2 0x70 /* European size A2: 420 x 594 */ #define EURO_A3 0x80 /* European size A3: 297 x 420 */ #define EURO_A4 0x90 /* European size A4: 210 x 297 */ #define EURO_A5 0xA0 /* European size A5: 148 x 210 */ #define EURO_A6 0xB0 /* European size A6: 105 x 148 */ #define EURO_A7 0xC0 /* European size A7: 74 x 105 */ #define EURO_A8 0xD0 /* European size A8: 52 x 74 */ /* PrinterType */ #define CUSTOM_NAME 0x00 #define ALPHA_P_101 0x01 #define BROTHER_15XL 0x02 #define CBM_MPS1000 0x03 #define DIAB_630 0x04 #define DIAB_ADV_D25 0x05 #define DIAB_C_150 0x06 #define EPSON 0x07 #define EPSON_JX_80 0x08 #define OKIMATE_20 0x09 #define QUME_LP_20 0x0A /* new printer entries, 3 October 1985 */ #define HP_LASERJET 0x0B #define HP_LASERJET_PLUS 0x0C /* Serial Input Buffer Sizes */ #define SBUF_512 0x00 #define SBUF_1024 0x01 #define SBUF_2048 0x02 #define SBUF_4096 0x03 #define SBUF_8000 0x04 #define SBUF_16000 0x05 /* Serial Bit Masks */ #define SREAD_BITS 0xF0 /* for SerRWBits */ #define SWRITE_BITS 0x0F #define SSTOP_BITS 0xF0 /* for SerStopBuf */ #define SBUFSIZE_BITS 0x0F #define SPARITY_BITS 0xF0 /* for SerParShk */ #define SHSHAKE_BITS 0x0F /* Serial Parity (upper nibble, after being shifted by * macro SPARNUM() ) */ #define SPARITY_NONE 0 #define SPARITY_EVEN 1 #define SPARITY_ODD 2 /* New parity definitions for V36: */ #define SPARITY_MARK 3 #define SPARITY_SPACE 4 /* Serial Handshake Mode (lower nibble, after masking using * macro SHANKNUM() ) */ #define SHSHAKE_XON 0 #define SHSHAKE_RTS 1 #define SHSHAKE_NONE 2 /* new defines for PrintFlags */ #define CORRECT_RED 0x0001 /* color correct red shades */ #define CORRECT_GREEN 0x0002 /* color correct green shades */ #define CORRECT_BLUE 0x0004 /* color correct blue shades */ #define CENTER_IMAGE 0x0008 /* center image on paper */ #define IGNORE_DIMENSIONS 0x0000 /* ignore max width/height settings */ #define BOUNDED_DIMENSIONS 0x0010 /* use max width/height as boundaries */ #define ABSOLUTE_DIMENSIONS 0x0020 /* use max width/height as absolutes */ #define PIXEL_DIMENSIONS 0x0040 /* use max width/height as prt pixels */ #define MULTIPLY_DIMENSIONS 0x0080 /* use max width/height as multipliers */ #define INTEGER_SCALING 0x0100 /* force integer scaling */ #define ORDERED_DITHERING 0x0000 /* ordered dithering */ #define HALFTONE_DITHERING 0x0200 /* halftone dithering */ #define FLOYD_DITHERING 0x0400 /* Floyd-Steinberg dithering */ #define ANTI_ALIAS 0x0800 /* anti-alias image */ #define GREY_SCALE2 0x1000 /* for use with hi-res monitor */ /* masks used for checking bits */ #define CORRECT_RGB_MASK (CORRECT_RED|CORRECT_GREEN|CORRECT_BLUE) #define DIMENSIONS_MASK (BOUNDED_DIMENSIONS|ABSOLUTE_DIMENSIONS|PIXEL_DIMENSIONS|MULTIPLY_DIMENSIONS) #define DITHERING_MASK (HALFTONE_DITHERING|FLOYD_DITHERING) #endif