home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
gnu
/
os-include
/
intuition
/
preferences.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-15
|
11KB
|
303 lines
#ifndef INTUITION_PREFERENCES_H
#define INTUITION_PREFERENCES_H TRUE
/*
** $VER: preferences.h 38.2 (16.9.92)
** Includes Release 40.15
**
** Structure definition for old-style preferences
**
** (C) Copyright 1985-1993 Commodore-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