1 #ifndef INTUITION_PREFERENCES_H
2 #define INTUITION_PREFERENCES_H
5 Copyright © 1995-2004, The AROS Development Team. All rights reserved.
8 Old-style preferences structures and defines.
12 # include <exec/types.h>
14 #ifndef DEVICES_TIMER_H
15 # include <devices/timer.h>
18 /* Printer configurations */
19 #define FILENAME_SIZE 30
20 #define DEVNAME_SIZE 16
22 /* Size of Pointer data buffer */
23 #define POINTERSIZE ((1+16+1)*2)
26 /* Default font sizes */
27 /* (Height of default font topaz in 60/80 column mode */
28 #define TOPAZ_EIGHTY 8
31 /* NOTE: From V36 on fields of struct Preferences are ignored by SetPrefs().
32 * Generally elements are added or replaced as new hard- and software arise.
33 * Some fields can only be set by initial SetPrefs() using
34 * DEVS:system-configuration. Some data must be truncated so applications
35 * calling GetPrefs() modifying parts of the struct References and calling
36 * SetPrefs() do not kill data.
37 * See GetPrefs() and SetPrefs() for further information.
43 UBYTE PrinterPort
; /* Printer port connection */
44 UWORD BaudRate
; /* Baud rate for the serial port */
47 struct timeval KeyRptSpeed
; /* Repeat speed for keyboard */
48 struct timeval KeyRptDelay
; /* Delay before keys repeat */
49 struct timeval DoubleClick
; /* Interval allowed between clicks */
51 /* Intuition Mouse-Pointer data */
52 UWORD PointerMatrix
[POINTERSIZE
]; /* Definition of pointer sprite */
53 BYTE XOffset
; /* X-Offset for hot spot */
54 BYTE YOffset
; /* Y-Offset for hot spot */
55 UWORD color17
; /* Colors for pointer sprite */
56 UWORD color18
; /* " " " " */
57 UWORD color19
; /* " " " " */
58 UWORD PointerTicks
; /* Sensitivity of the pointer */
60 /* Standard 4 Workbench-Screen colors */
66 /* Positioning data for the Intuition View */
67 BYTE ViewXOffset
; /* Offset for top-left corner */
69 WORD ViewInitX
; /* Initial offset values of View */
72 BOOL EnableCLI
; /* CLI availability switch */
74 /* Printer configurations */
75 UWORD PrinterType
; /* printer type */
76 UBYTE PrinterFilename
[FILENAME_SIZE
]; /* file for printer */
78 /* Print format and quality configurations */
79 UWORD PrintPitch
; /* Print pitch */
80 UWORD PrintQuality
; /* Print quality */
81 UWORD PrintSpacing
; /* Number of lines per inch */
82 UWORD PrintLeftMargin
; /* Left margin in characters */
83 UWORD PrintRightMargin
; /* Right margin in characters */
84 UWORD PrintImage
; /* Positive or negative */
85 UWORD PrintAspect
; /* Horizontal or vertical */
86 UWORD PrintShade
; /* B&W, half-tone, or color */
87 WORD PrintThreshold
; /* Darkness control for b/w dumps */
89 /* Print-paper description */
90 UWORD PaperSize
; /* Paper size */
91 UWORD PaperLength
; /* Paper length in number of lines */
92 UWORD PaperType
; /* Continuous or single sheet */
94 /* Serial device settings:
95 * six nibble-fields in three bytes
97 UBYTE SerRWBits
; /* Upper nibble = (8-number of read bits) */
98 /* Lower nibble = (8-number of write bits) */
99 UBYTE SerStopBuf
; /* Upper nibble = (number of stop bits - 1) */
100 /* Lower nibble = (table value for BufSize) */
101 UBYTE SerParShk
; /* Upper nibble = (value for Parity setting) */
102 /* Lower nibble = (value for Handshake mode) */
103 UBYTE LaceWB
; /* If workbench is to be interlaced */
106 UBYTE PrtDevName
[DEVNAME_SIZE
]; /* Device used by printer.device
107 * (leave out the ".device")
109 UBYTE DefaultPrtUnit
; /* Default unit opened by printer.device */
110 UBYTE DefaultSerUnit
; /* Default serial unit */
112 BYTE RowSizeChange
; /* Affect NormalDisplayRows/Columns */
113 BYTE ColumnSizeChange
;
115 UWORD PrintFlags
; /* User preference flags */
116 UWORD PrintMaxWidth
; /* Max width of printed picture in 0.1 inch */
117 UWORD PrintMaxHeight
; /* Max height of printed picture in 0.1 inch */
118 UBYTE PrintDensity
; /* Print density */
119 UBYTE PrintXOffset
; /* Offset of printed picture in 0.1 inch */
121 UWORD wb_Width
; /* Override default Workbench width */
122 UWORD wb_Height
; /* Override default Workbench height */
123 UBYTE wb_Depth
; /* Override default Workbench depth */
125 UBYTE ext_size
; /* Internal value 'extension information'
126 * = extension size in blocks of 64 bytes
132 /* Workbench Interlace (uses one bit) */
133 #define LACEWB (1<<0)
134 #define LW_RESERVED 1 /* internal use only */
136 #define SCREEN_DRAG (1<<14)
137 #define MOUSE_ACCEL (1L<<15)
140 #define PARALLEL_PRINTER 0x00
141 #define SERIAL_PRINTER 0x01
144 #define BAUD_110 0x00
145 #define BAUD_300 0x01
146 #define BAUD_1200 0x02
147 #define BAUD_2400 0x03
148 #define BAUD_4800 0x04
149 #define BAUD_9600 0x05
150 #define BAUD_19200 0x06
151 #define BAUD_MIDI 0x07
167 #define SIX_LPI 0x000
168 #define EIGHT_LPI 0x200
171 #define IMAGE_POSITIVE 0x00
172 #define IMAGE_NEGATIVE 0x01
175 #define ASPECT_HORIZ 0x00
176 #define ASPECT_VERT 0x01
179 #define SHADE_BW 0x00
180 #define SHADE_GREYSCALE 0x01
181 #define SHADE_COLOR 0x02
183 /* PaperSize (All paper sizes must have a zero in the lowest nibble) */
184 #define US_LETTER 0x00
185 #define US_LEGAL 0x10
186 #define N_TRACTOR 0x20
187 #define W_TRACTOR 0x30
191 #define EURO_A0 0x50 /* A0: 841 x 1189 */
192 #define EURO_A1 0x60 /* A1: 594 x 841 */
193 #define EURO_A2 0x70 /* A2: 420 x 594 */
194 #define EURO_A3 0x80 /* A3: 297 x 420 */
195 #define EURO_A4 0x90 /* A4: 210 x 297 */
196 #define EURO_A5 0xA0 /* A5: 148 x 210 */
197 #define EURO_A6 0xB0 /* A6: 105 x 148 */
198 #define EURO_A7 0xC0 /* A7: 74 x 105 */
199 #define EURO_A8 0xD0 /* A8: 52 x 74 */
202 #define CUSTOM_NAME 0x00
203 #define ALPHA_P_101 0x01
204 #define BROTHER_15XL 0x02
205 #define CBM_MPS1000 0x03
206 #define DIAB_630 0x04
207 #define DIAB_ADV_D25 0x05
208 #define DIAB_C_150 0x06
210 #define EPSON_JX_80 0x08
211 #define OKIMATE_20 0x09
212 #define QUME_LP_20 0x0A
213 #define HP_LASERJET 0x0B
214 #define HP_LASERJET_PLUS 0x0C
216 /* Serial Input Buffer Sizes */
217 #define SBUF_512 0x00
218 #define SBUF_1024 0x01
219 #define SBUF_2048 0x02
220 #define SBUF_4096 0x03
221 #define SBUF_8000 0x04
222 #define SBUF_16000 0x05
224 /* Serial Bit Masks */
225 #define SREAD_BITS 0xF0 /* SerRWBits */
226 #define SWRITE_BITS 0x0F
228 #define SSTOP_BITS 0xF0 /* SerStopBuf */
229 #define SBUFSIZE_BITS 0x0F
231 #define SPARITY_BITS 0xF0 /* SerParShk */
232 #define SHSHAKE_BITS 0x0F
235 * (upper nibble, after being shifted by macro SPARNUM() )
237 #define SPARITY_NONE 0
238 #define SPARITY_EVEN 1
239 #define SPARITY_ODD 2
240 #define SPARITY_MARK 3
241 #define SPARITY_SPACE 4
243 /* Serial Handshake Mode
244 * (lower nibble, after masking using macro SHANKNUM() )
246 #define SHSHAKE_XON 0
247 #define SHSHAKE_RTS 1
248 #define SHSHAKE_NONE 2
251 /* New defines for PrintFlags */
253 #define CORRECT_RED 0x0001 /* Color correct red shades */
254 #define CORRECT_GREEN 0x0002 /* Color correct green shades */
255 #define CORRECT_BLUE 0x0004 /* Color correct blue shades */
257 #define CENTER_IMAGE 0x0008 /* Center image on paper */
259 #define IGNORE_DIMENSIONS 0x0000 /* Ignore max width/height settings */
260 #define BOUNDED_DIMENSIONS 0x0010 /* Use max width/height as boundaries */
261 #define ABSOLUTE_DIMENSIONS 0x0020 /* Use max width/height as absolutes */
262 #define PIXEL_DIMENSIONS 0x0040 /* Use max width/height as printer pixels */
263 #define MULTIPLY_DIMENSIONS 0x0080 /* Use max width/height as multipliers */
265 #define INTEGER_SCALING 0x0100 /* Force integer scaling */
267 #define ORDERED_DITHERING 0x0000 /* Ordered dithering */
268 #define HALFTONE_DITHERING 0x0200 /* Halftone dithering */
269 #define FLOYD_DITHERING 0x0400 /* Floyd-Steinberg dithering */
271 #define ANTI_ALIAS 0x0800 /* Anti-alias image */
272 #define GREY_SCALE2 0x1000 /* For use with HI-Res monitor */
274 /* masks used for checking bits */
275 #define CORRECT_RGB_MASK (CORRECT_RED|CORRECT_GREEN|CORRECT_BLUE)
276 #define DIMENSIONS_MASK (BOUNDED_DIMENSIONS|ABSOLUTE_DIMENSIONS|PIXEL_DIMENSIONS|MULTIPLY_DIMENSIONS)
277 #define DITHERING_MASK (HALFTONE_DITHERING|FLOYD_DITHERING)
279 #endif /* INTUITION_PREFERENCES_H */