[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]

        IFND  INTUITION_PREFERENCES_I
INTUITION_PREFERENCES_I SET  1
**
**      $Filename: intuition/preferences.i $
**      $Release: 2.04 Includes, V37.4 $
**      $Revision: 36.6 $
**      $Date: 91/03/13 $
**
**      Structure definition for old-style preferences
**
**      (C) Copyright 1985-1999 Amiga, Inc.
**          All Rights Reserved
**

        IFND EXEC_TYPES_I
        INCLUDE "exec/types.i"
        ENDC

        IFND    DEVICES_TIMER_I
        INCLUDE "devices/timer.i"
        ENDC

; ========================================================================
; === Preferences ========================================================
; ========================================================================

; these are the definitions for the printer configurations
FILENAME_SIZE EQU       30      ; Filename size

POINTERSIZE     EQU     (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.
TOPAZ_EIGHTY    EQU     8
TOPAZ_SIXTY     EQU     9

; ------------------------------------------------------------------------
 STRUCTURE Preferences,0

    ; the default font height
    BYTE pf_FontHeight          ; height for system default font

    ; constant describing what's hooked up to the port
    BYTE pf_PrinterPort ; printer port connection

    ; the baud rate of the port
    WORD pf_BaudRate            ; baud rate for the serial port

    ; various timing rates
    STRUCT pf_KeyRptSpeed,TV_SIZE ; repeat speed for keyboard
    STRUCT pf_KeyRptDelay,TV_SIZE ; Delay before keys repeat
    STRUCT pf_DoubleClick,TV_SIZE ; Interval allowed between clicks

    ; Intuition Pointer data
    STRUCT pf_PointerMatrix,POINTERSIZE*2 ; Definition of pointer sprite
    BYTE pf_XOffset             ; X-Offset for active 'bit'
    BYTE pf_YOffset             ; Y-Offset for active 'bit'
    WORD pf_color17             ;********************************
    WORD pf_color18             ; Colours for sprite pointer
    WORD pf_color19             ;********************************
    WORD pf_PointerTicks        ; Sensitivity of the pointer

    ; Workbench Screen colors
    WORD pf_color0              ;********************************
    WORD pf_color1              ;  Standard default colours
    WORD pf_color2              ;   Used in the Workbench
    WORD pf_color3              ;********************************

    ; positioning data for the Intuition View
    BYTE pf_ViewXOffset         ; Offset for top lefthand corner
    BYTE pf_ViewYOffset         ; X and Y dimensions
    WORD pf_ViewInitX           ; View initial offsets at startup
    WORD pf_ViewInitY           ; View initial offsets at startup

    BOOL EnableCLI              ; CLI availability switch

    ; printer configurations
    WORD pf_PrinterType         ; printer type
    STRUCT pf_PrinterFilename,FILENAME_SIZE ; file for printer

    ; print format and quality configurations
    WORD pf_PrintPitch          ; print pitch
    WORD pf_PrintQuality        ; print quality
    WORD pf_PrintSpacing        ; number of lines per inch
    WORD pf_PrintLeftMargin     ; left margin in characters
    WORD pf_PrintRightMargin    ; right margin in characters
    WORD pf_PrintImage          ; positive or negative
    WORD pf_PrintAspect         ; horizontal or vertical
    WORD pf_PrintShade          ; b&w, half-tone, or color
    WORD pf_PrintThreshold      ; darkness ctrl for b/w dumps


    ; print paper description
    WORD pf_PaperSize           ; paper size
    WORD pf_PaperLength         ; paper length in lines
    WORD pf_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)
    BYTE pf_SerRWBits           ; upper nibble = (8-number of read bits)
                                    ; lower nibble = (8-number of write bits)
    BYTE pf_SerStopBuf          ; upper nibble = (number of stop bits - 1)
                                ; lower nibble = (table value for BufSize)
    BYTE pf_SerParShk           ; upper nibble = (value for Parity setting)
                                ; lower nibble = (value for Handshake mode)

    BYTE pf_LaceWB              ; if workbench is to be interlaced

    STRUCT pf_WorkName,FILENAME_SIZE ; temp file for printer

    BYTE    pf_RowSizeChange    ;
    BYTE    pf_ColumnSizeChange ;

    UWORD   pf_PrintFlags       ; user preference flags
    WORD    pf_PrintMaxWidth    ; max width of printed picture in 10ths/inch
    UWORD   pf_PrintMaxHeight   ; max height of printed picture in 10ths/inch
    UBYTE   pf_PrintDensity     ; print density
    UBYTE   pf_PrintXOffset     ; offset of printed picture in 10ths/inch

    UWORD   pf_wb_Width         ; override default workbench width
    UWORD   pf_wb_Height        ; override default workbench height
    UBYTE   pf_wb_Depth         ; override default workbench depth

    UBYTE   pf_ext_size         ; extension information -- do not touch!
                                ; extension size in blocks of 64 bytes

    LABEL pf_SIZEOF


; === Preferences definitions ===========================================

; Workbench Interlace (use one bit)
LACEWB          EQU     $01

; PrinterPort
PARALLEL_PRINTER EQU    $00
SERIAL_PRINTER  EQU     $01

; BaudRate
BAUD_110        EQU     $00
BAUD_300        EQU     $01
BAUD_1200       EQU     $02
BAUD_2400       EQU     $03
BAUD_4800       EQU     $04
BAUD_9600       EQU     $05
BAUD_19200      EQU     $06
BAUD_MIDI       EQU     $07

; PaperType
FANFOLD         EQU     $00
SINGLE          EQU     $80

; PrintPitch
PICA            EQU     $000
ELITE           EQU     $400
FINE            EQU     $800

; PrintQuality
DRAFT           EQU     $000
LETTER          EQU     $100

; PrintSpacing
SIX_LPI         EQU     $000
EIGHT_LPI       EQU     $200

; Print Image
IMAGE_POSITIVE  EQU     $00
IMAGE_NEGATIVE  EQU     $01

; PrintAspect
ASPECT_HORIZ    EQU     $00
ASPECT_VERT     EQU     $01

; PrintShade
SHADE_BW        EQU     $00
SHADE_GREYSCALE EQU     $01
SHADE_COLOR     EQU     $02

; PaperSize
US_LETTER       EQU     $00
US_LEGAL        EQU     $10
N_TRACTOR       EQU     $20
W_TRACTOR       EQU     $30
CUSTOM          EQU     $40

; New PaperSizes for V36:
EURO_A0         EQU     $50            ; European size A0: 841 x 1189
EURO_A1         EQU     $60            ; European size A1: 594 x 841
EURO_A2         EQU     $70            ; European size A2: 420 x 594
EURO_A3         EQU     $80            ; European size A3: 297 x 420
EURO_A4         EQU     $90            ; European size A4: 210 x 297
EURO_A5         EQU     $A0            ; European size A5: 148 x 210
EURO_A6         EQU     $B0            ; European size A6: 105 x 148
EURO_A7         EQU     $C0            ; European size A7: 74 x 105
EURO_A8         EQU     $D0            ; European size A8: 52 x 74

; PrinterType
CUSTOM_NAME     EQU     $00
ALPHA_P_101     EQU     $01
BROTHER_15XL    EQU     $02
CBM_MPS1000     EQU     $03
DIAB_630        EQU     $04
DIAB_ADV_D25    EQU     $05
DIAB_C_150      EQU     $06
EPSON           EQU     $07
EPSON_JX_80     EQU     $08
OKIMATE_20      EQU     $09
QUME_LP_20      EQU     $0A
; new printer entries, 3 October 1985
HP_LASERJET     EQU     $0B
HP_LASERJET_PLUS EQU    $0C


; Serial Input Buffer Sizes
SBUF_512        EQU     $00
SBUF_1024       EQU     $01
SBUF_2048       EQU     $02
SBUF_4096       EQU     $03
SBUF_8000       EQU     $04
SBUF_16000      EQU     $05

; Serial Bit Masks
SREAD_BITS      EQU     $F0     ; pf_SerRWBits
SWRITE_BITS     EQU     $0F

SSTOP_BITS      EQU     $F0     ; pf_SerStopBuf
SBUFSIZE_BITS   EQU     $0F

SPARITY_BITS    EQU     $F0     ; pf_SerParShk
SHSHAKE_BITS    EQU     $0F

; Serial Parity (high nibble, but here shifted right, as by C-macro SPARNUM)
SPARITY_NONE    EQU     $00
SPARITY_EVEN    EQU     $01
SPARITY_ODD     EQU     $02
; New parity definitions for V36:
SPARITY_MARK    EQU     $03
SPARITY_SPACE   EQU     $04

; Serial Handshake Mode (low nibble, mask by SHSHAKE_BITS)
SHSHAKE_XON     EQU     $00
SHSHAKE_RTS     EQU     $01
SHSHAKE_NONE    EQU     $02

; new defines for PrintFlags
CORRECT_RED         EQU $0001    ; color correct red shades
CORRECT_GREEN       EQU $0002    ; color correct green shades
CORRECT_BLUE        EQU $0004    ; color correct blue shades

CENTER_IMAGE        EQU $0008      ; center image on paper

IGNORE_DIMENSIONS   EQU $0000    ; ignore max width/height settings
BOUNDED_DIMENSIONS  EQU $0010    ; use max width/height as boundaries
ABSOLUTE_DIMENSIONS EQU $0020    ; use max width/height as absolutes
PIXEL_DIMENSIONS    EQU $0040    ; use max width/height as prt pixels
MULTIPLY_DIMENSIONS EQU $0080    ; use max width/height as multipliers

INTEGER_SCALING     EQU $0100    ; force integer scaling

ORDERED_DITHERING   EQU $0000    ; ordered dithering
HALFTONE_DITHERING  EQU $0200    ; halftone dithering
FLOYD_DITHERING     EQU $0400    ; floyd-steinberg dithering

ANTI_ALIAS          EQU $0800    ; anti-alias image
GREY_SCALE2         EQU $1000    ; for use with hi-res monitor

CORRECT_RGB_MASK    EQU (CORRECT_RED+CORRECT_GREEN+CORRECT_BLUE)
DIMENSIONS_MASK     EQU (BOUNDED_DIMENSIONS+ABSOLUTE_DIMENSIONS+PIXEL_DIMENSIONS+MULTIPLY_DIMENSIONS)
DITHERING_MASK      EQU (HALFTONE_DITHERING+FLOYD_DITHERING)

    ENDC