1 {
2     This file is part of the Free Pascal run time library.
3 
4     A file in Amiga system run time library.
5     Copyright (c) 1998-2002 by Nils Sjoholm
6     member of the Amiga RTL development team.
7 
8     See the file COPYING.FPC, included in this distribution,
9     for details about the copyright.
10 
11     This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 
15  **********************************************************************}
16 {
17     History:
18 
19     Update for AmigaOS 3.9.
20     Added some const and a few records.
21     Added reaction and workbench.
22     31 Jan 2003.
23 
24     Changed integer > smallint.
25     09 Feb 2003.
26 
27     nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
28 
29 }
30 
31 
32 unit prefs;
33 
34 INTERFACE
35 uses exec, iffparse, agraphics, timer, intuition;
36 
37 
38 { Asl }
39 
40 const
41    ID_ASL = $41534C20;
42 
43 { These members correspond directly to the associated
44            members of the 'AslSemaphore' data structure defined
45            in the <libraries/asl.h> header file by the same names.
46           }
47 
48   type
49      PAslPrefs = ^tAslPrefs;
50      tAslPrefs = record
51           ap_Reserved : array[0..3] of LONG;
52           ap_SortBy : UBYTE;
53           ap_SortDrawers : UBYTE;
54           ap_SortOrder : UBYTE;
55           ap_SizePosition : UBYTE;
56           ap_RelativeLeft : WORD;
57           ap_RelativeTop : WORD;
58           ap_RelativeWidth : UBYTE;
59           ap_RelativeHeight : UBYTE;
60        end;
61 
62 
63 { Font }
64 {***************************************************************************}
65 
66 const
67  ID_FONT = 1179602516;
68 
69 
70  FONTNAMESIZE = 128;
71 
72 type
73  pFontPrefs = ^tFontPrefs;
74  tFontPrefs = record
75     fp_Reserved     : Array[0..2] of Longint;
76     fp_Reserved2    : WORD;
77     fp_Type         : WORD;
78     fp_FrontPen,
79     fp_BackPen,
80     fp_DrawMode     : Byte;
81     fp_TextAttr     : tTextAttr;
82     fp_Name         : Array[0..FONTNAMESIZE-1] of Char;
83  end;
84 
85 const
86 { constants for FontPrefs.fp_Type }
87  FP_WBFONT     = 0;
88  FP_SYSFONT    = 1;
89  FP_SCREENFONT = 2;
90 
91 
92 {***************************************************************************}
93 
94 { IControl }
95 {***************************************************************************}
96 
97 const
98  ID_ICTL = 1229149260;
99 
100 Type
101  pIControlPrefs = ^tIControlPrefs;
102  tIControlPrefs = record
103     ic_Reserved     : Array[0..3] Of Longint;       { System reserved              }
104     ic_TimeOut      : WORD;                         { Verify timeout               }
105     ic_MetaDrag     : smallint;                      { Meta drag mouse event        }
106     ic_Flags        : ULONG;                        { IControl flags (see below)   }
107     ic_WBtoFront,                                   { CKey: WB to front            }
108     ic_FrontToBack,                                 { CKey: front screen to back   }
109     ic_ReqTrue,                                     { CKey: Requester TRUE         }
110     ic_ReqFalse     : Byte;                         { CKey: Requester FALSE        }
111  end;
112 
113 const
114 { flags for IControlPrefs.ic_Flags }
115  ICB_COERCE_COLORS = 0;
116  ICB_COERCE_LACE   = 1;
117  ICB_STRGAD_FILTER = 2;
118  ICB_MENUSNAP      = 3;
119  ICB_MODEPROMOTE   = 4;
120  ICB_SQUARE_RATIO  = 5;
121 
122  ICF_COERCE_COLORS = 1;
123  ICF_COERCE_LACE   = 2;
124  ICF_STRGAD_FILTER = 4;
125  ICF_MENUSNAP      = 8;
126  ICF_MODEPROMOTE   = 16;
127  ICF_SQUARE_RATIO  = (1 shl 5);
128 
129 {***************************************************************************}
130 
131   {      File format for input preferences     }
132 
133 
134 const
135  ID_INPT = 1229869140;
136 
137 Type
138  pInputPrefs = ^tInputPrefs;
139  tInputPrefs = record
140     ip_Keymap      : Array[0..15] of Char;
141     ip_PointerTicks : WORD;
142     ip_DoubleClick,
143     ip_KeyRptDelay,
144     ip_KeyRptSpeed : tTimeVal;
145     ip_MouseAccel  : smallint;
146  end;
147 
148  {      File format for locale preferences }
149 
150 const
151  ID_LCLE = 1279478853;
152  ID_CTRY = 1129599577;
153 
154 
155 Type
156  pCountryPrefs = ^tCountryPrefs;
157  tCountryPrefs = record
158     cp_Reserved     : Array[0..3] of ULONG;
159     cp_CountryCode  : ULONG;
160     cp_TelephoneCode: ULONG;
161     cp_MeasuringSystem : Byte;
162 
163     cp_DateTimeFormat  : Array[0..79] of Char;
164     cp_DateFormat      : Array[0..39] of Char;
165     cp_TimeFormat      : Array[0..39] of Char;
166 
167     cp_ShortDateTimeFormat  : Array[0..79] of Char;
168     cp_ShortDateFormat      : Array[0..39] of Char;
169     cp_ShortTimeFormat      : Array[0..39] of Char;
170 
171     { for numeric values }
172     cp_DecimalPoint,
173     cp_GroupSeparator,
174     cp_FracGroupSeparator   : Array[0..9] of Char;
175     cp_Grouping,
176     cp_FracGrouping         : Array[0..9] of Byte;
177 
178     { for monetary values }
179     cp_MonDecimalPoint,
180     cp_MonGroupSeparator,
181     cp_MonFracGroupSeparator   : Array[0..9] of Char;
182     cp_MonGrouping,
183     cp_MonFracGrouping         : Array[0..9] of Byte;
184     cp_MonFracDigits,
185     cp_MonIntFracDigits        : Byte;
186 
187     { for currency symbols }
188     cp_MonCS,
189     cp_MonSmallCS,
190     cp_MonIntCS                : Array[0..9] of Char;
191 
192     { for positive monetary values }
193     cp_MonPositiveSign         : Array[0..9] of Char;
194     cp_MonPositiveSpaceSep,
195     cp_MonPositiveSignPos,
196     cp_MonPositiveCSPos        : Byte;
197 
198     { for negative monetary values }
199     cp_MonNegativeSign         : Array[0..9] of Char;
200     cp_MonNegativeSpaceSep,
201     cp_MonNegativeSignPos,
202     cp_MonNegativeCSPos        : Byte;
203 
204     cp_CalendarType            : Byte;
205  end;
206 
207  pLocalePrefs = ^tLocalePrefs;
208  tLocalePrefs = record
209     lp_Reserved         : Array[0..3] of ULONG;
210     lp_CountryName      : Array[0..31] of Char;
211     lp_PreferredLanguages : Array[0..9] of Array[0..29] of Char;
212     lp_GMTOffset        : Longint;
213     lp_Flags            : ULONG;
214     lp_CountryData      : tCountryPrefs;
215  end;
216 
217    {   File format for overscan preferences  }
218 
219 const
220     ID_OSCN = 1330856782;
221     OSCAN_MAGIC = $FEDCBA89;
222 
223 
224 Type
225  pOverscanPrefs = ^tOverscanPrefs;
226  tOverscanPrefs = record
227     os_Reserved,
228     os_Magic         : ULONG;
229     os_HStart,
230     os_HStop,
231     os_VStart,
232     os_VStop         : WORD;
233     os_DisplayID     : ULONG;
234     os_ViewPos,
235     os_Text          : tPoint;
236     os_Standard      : tRectangle;
237  end;
238 
239 { os_HStart, os_HStop, os_VStart, os_VStop can only be looked at if
240  * os_Magic equals OSCAN_MAGIC. If os_Magic is set to any other value,
241  * these four fields are undefined
242  }
243 
244 
245 {***************************************************************************}
246 
247   {      File format for palette preferences    }
248 
249 
250 const
251     ID_PALT = 1346456660;
252 
253 Type
254  pPalettePrefs = ^tPalettePrefs;
255  tPalettePrefs = record
256     pap_Reserved     : Array[0..3] of Longint;    { System reserved                }
257     pap_4ColorPens   : Array[1..32] of WORD;
258     pap_8ColorPens   : Array[1..32] of WORD;
259     pap_Colors       : Array[1..32] of tColorSpec;     { Used as full 16-bit RGB values }
260  end;
261 
262 
263 {***************************************************************************}
264 
265 
266  {      File format for pointer preferences }
267 
268 const
269       ID_PNTR = 1347310674;
270 
271 
272 Type
273  pPointerPrefs = ^tPointerPrefs;
274  tPointerPrefs = record
275     pp_Reserved : Array[0..3] of ULONG;
276     pp_Which,                             { 0=NORMAL, 1=BUSY }
277     pp_Size,                              { see <intuition/pointerclass.h> }
278     pp_Width,                             { Width in pixels }
279     pp_Height,                            { Height in pixels }
280     pp_Depth,                             { Depth }
281     pp_YSize,                             { YSize }
282     pp_X, pp_Y  : WORD;                   { Hotspot }
283 
284     { Color Table:  numEntries = (1 << pp_Depth) - 1 }
285 
286     { Data follows }
287  end;
288 
289 {***************************************************************************}
290 
291 Const
292 { constants for PointerPrefs.pp_Which }
293  WBP_NORMAL    =  0;
294  WBP_BUSY      =  1;
295 
296 {***************************************************************************}
297 
298 Type
299  pRGBTable = ^tRGBTable;
300  tRGBTable = record
301     t_Red,
302     t_Green,
303     t_Blue  : Byte;
304  end;
305 
306 {***************************************************************************}
307 
308   {    File format for preferences header }
309 
310 const
311  ID_PREF = 1347568966;
312  ID_PRHD = 1347569732;
313 
314 Type
315  pPrefHeader = ^tPrefHeader;
316  tPrefHeader = record
317     ph_Version,             { version of following data }
318     ph_Type     : Byte;     { type of following data    }
319     ph_Flags    : ULONG;    { always set to 0 for now   }
320  end;
321 
322   {     File format for graphics printer preferences }
323 
324 const
325  ID_PGFX = 1346848344;
326 
327 Type
328  pPrinterGfxPrefs = ^tPrinterGfxPrefs;
329  tPrinterGfxPrefs = record
330     pg_Reserved     : Array[0..3] of Longint;
331     pg_Aspect,
332     pg_Shade,
333     pg_Image        : Word;
334     pg_Threshold    : smallint;
335     pg_ColorCorrect,
336     pg_Dimensions,
337     pg_Dithering    : Byte;
338     pg_GraphicFlags : WORD;
339     pg_PrintDensity : Byte;              { Print density 1 - 7 }
340     pg_PrintMaxWidth,
341     pg_PrintMaxHeight : WORD;
342     pg_PrintXOffset,
343     pg_PrintYOffset : Byte;
344  end;
345 
346 const
347 { constants for PrinterGfxPrefs.pg_Aspect }
348  PA_HORIZONTAL = 0;
349  PA_VERTICAL   = 1;
350 
351 { constants for PrinterGfxPrefs.pg_Shade }
352  PS_BW          = 0;
353  PS_GREYSCALE   = 1;
354  PS_COLOR       = 2;
355  PS_GREY_SCALE2 = 3;
356 
357 { constants for PrinterGfxPrefs.pg_Image }
358  PI_POSITIVE = 0;
359  PI_NEGATIVE = 1;
360 
361 { flags for PrinterGfxPrefs.pg_ColorCorrect }
362  PCCB_RED   = 1;    { color correct red shades   }
363  PCCB_GREEN = 2;    { color correct green shades }
364  PCCB_BLUE  = 3;    { color correct blue shades  }
365 
366  PCCF_RED   = 1;
367  PCCF_GREEN = 2;
368  PCCF_BLUE  = 4;
369 
370 { constants for PrinterGfxPrefs.pg_Dimensions }
371  PD_IGNORE   = 0;  { ignore max width/height settings }
372  PD_BOUNDED  = 1;  { use max w/h as boundaries        }
373  PD_ABSOLUTE = 2;  { use max w/h as absolutes         }
374  PD_PIXEL    = 3;  { use max w/h as prt pixels        }
375  PD_MULTIPLY = 4;  { use max w/h as multipliers       }
376 
377 { constants for PrinterGfxPrefs.pg_Dithering }
378  PD_ORDERED     = 0;  { ordered dithering }
379  PD_HALFTONE    = 1;  { halftone dithering        }
380  PD_FLOYD       = 2;  { Floyd-Steinberg dithering }
381 
382 { flags for PrinterGfxPrefs.pg_GraphicsFlags }
383  PGFB_CENTER_IMAGE      = 0;       { center image on paper }
384  PGFB_INTEGER_SCALING   = 1;       { force integer scaling }
385  PGFB_ANTI_ALIAS        = 2;       { anti-alias image      }
386 
387  PGFF_CENTER_IMAGE      = 1;
388  PGFF_INTEGER_SCALING   = 2;
389  PGFF_ANTI_ALIAS        = 4;
390 
391 
392  {      File format for PostScript printer preferences   }
393 
394 const
395  ID_PSPD = 1347637316;
396 
397 Type
398  pPrinterPSPrefs = ^tPrinterPSPrefs;
399  tPrinterPSPrefs = record
400     ps_Reserved     : Array[0..3] of Longint;               { System reserved }
401 
402     { Global printing attributes }
403     ps_DriverMode,
404     ps_PaperFormat  : Byte;
405     ps_Reserved1    : Array[0..1] of Byte;
406     ps_Copies,
407     ps_PaperWidth,
408     ps_PaperHeight,
409     ps_HorizontalDPI,
410     ps_VerticalDPI  : Longint;
411 
412     { Text Options }
413     ps_Font,
414     ps_Pitch,
415     ps_Orientation,
416     ps_Tab          : Byte;
417     ps_Reserved2    : Array[0..7] of Byte;
418 
419     { Text Dimensions }
420     ps_LeftMargin,
421     ps_RightMargin,
422     ps_TopMargin,
423     ps_BottomMargin,
424     ps_FontPointSize,
425     ps_Leading      : Longint;
426     ps_Reserved3    : Array[0..7] of Byte;
427 
428     { Graphics Options }
429     ps_LeftEdge,
430     ps_TopEdge,
431     ps_Width,
432     ps_Height       : Longint;
433     ps_Image,
434     ps_Shading,
435     ps_Dithering    : Byte;
436     ps_Reserved4    : Array[0..8] of Byte;
437 
438     { Graphics Scaling }
439     ps_Aspect,
440     ps_ScalingType,
441     ps_Reserved5,
442     ps_Centering    : Byte;
443     ps_Reserved6    : Array[0..7] of byte;
444  end;
445 
446 const
447 { All measurements are in Millipoints which is 1/1000 of a point, or
448  * in other words 1/72000 of an inch
449  }
450 
451 { constants for PrinterPSPrefs.ps_DriverMode }
452  DM_POSTSCRIPT  = 0;
453  DM_PASSTHROUGH = 1;
454 
455 { constants for PrinterPSPrefs.ps_PaperFormat }
456  PF_USLETTER = 0;
457  PF_USLEGAL  = 1;
458  PF_A4       = 2;
459  PF_CUSTOM   = 3;
460 
461 { constants for PrinterPSPrefs.ps_Font }
462  FONT_COURIER      = 0;
463  FONT_TIMES        = 1;
464  FONT_HELVETICA    = 2;
465  FONT_HELV_NARROW  = 3;
466  FONT_AVANTGARDE   = 4;
467  FONT_BOOKMAN      = 5;
468  FONT_NEWCENT      = 6;
469  FONT_PALATINO     = 7;
470  FONT_ZAPFCHANCERY = 8;
471 
472 { constants for PrinterPSPrefs.ps_Pitch }
473  PITCH_NORMAL     = 0;
474  PITCH_COMPRESSED = 1;
475  PITCH_EXPANDED   = 2;
476 
477 { constants for PrinterPSPrefs.ps_Orientation }
478  ORIENT_PORTRAIT  = 0;
479  ORIENT_LANDSCAPE = 1;
480 
481 { constants for PrinterPSPrefs.ps_Tab }
482  TAB_4     = 0;
483  TAB_8     = 1;
484  TAB_QUART = 2;
485  TAB_HALF  = 3;
486  TAB_INCH  = 4;
487 
488 { constants for PrinterPSPrefs.ps_Image }
489  IM_POSITIVE = 0;
490  IM_NEGATIVE = 1;
491 
492 { constants for PrinterPSPrefs.ps_Shading }
493  SHAD_BW        = 0;
494  SHAD_GREYSCALE = 1;
495  SHAD_COLOR     = 2;
496 
497 { constants for PrinterPSPrefs.ps_Dithering }
498  DITH_DEFAULT = 0;
499  DITH_DOTTY   = 1;
500  DITH_VERT    = 2;
501  DITH_HORIZ   = 3;
502  DITH_DIAG    = 4;
503 
504 { constants for PrinterPSPrefs.ps_Aspect }
505  ASP_HORIZ = 0;
506  ASP_VERT  = 1;
507 
508 { constants for PrinterPSPrefs.ps_ScalingType }
509  ST_ASPECT_ASIS    = 0;
510  ST_ASPECT_WIDE    = 1;
511  ST_ASPECT_TALL    = 2;
512  ST_ASPECT_BOTH    = 3;
513  ST_FITS_WIDE      = 4;
514  ST_FITS_TALL      = 5;
515  ST_FITS_BOTH      = 6;
516 
517 { constants for PrinterPSPrefs.ps_Centering }
518  CENT_NONE  = 0;
519  CENT_HORIZ = 1;
520  CENT_VERT  = 2;
521  CENT_BOTH  = 3;
522 
523 
524    {   File format for text printer preferences }
525 
526 const
527  ID_PTXT = 1347704916;
528  ID_PUNT = 1347767892;
529  ID_PDEV = $50444556;
530 
531  DRIVERNAMESIZE = 30;               { Filename size     }
532  DEVICENAMESIZE = 32;               { .device name size }
533  UNITNAMESIZE   = 32;
534 
535 Type
536  pPrinterTxtPrefs = ^tPrinterTxtPrefs;
537  tPrinterTxtPrefs = record
538     pt_Reserved     : Array[0..3] of Longint;               { System reserved            }
539     pt_Driver       : Array[0..DRIVERNAMESIZE-1] of Char;   { printer driver filename    }
540     pt_Port         : Byte;                                 { printer port connection    }
541 
542     pt_PaperType,
543     pt_PaperSize,
544     pt_PaperLength,               { Paper length in # of lines }
545 
546     pt_Pitch,
547     pt_Spacing,
548     pt_LeftMargin,                { Left margin                }
549     pt_RightMargin,               { Right margin       }
550     pt_Quality      : WORD;
551  end;
552 
553 const
554 { constants for PrinterTxtPrefs.pt_Port }
555  PP_PARALLEL = 0;
556  PP_SERIAL   = 1;
557 
558 { constants for PrinterTxtPrefs.pt_PaperType }
559  PT_FANFOLD  = 0;
560  PT_SINGLE   = 1;
561 
562 { constants for PrinterTxtPrefs.pt_PaperSize }
563  PS_US_LETTER   = 0 ;
564  PS_US_LEGAL    = 1 ;
565  PS_N_TRACTOR   = 2 ;
566  PS_W_TRACTOR   = 3 ;
567  PS_CUSTOM      = 4 ;
568  PS_EURO_A0     = 5 ;              { European size A0: 841 x 1189 }
569  PS_EURO_A1     = 6 ;              { European size A1: 594 x 841  }
570  PS_EURO_A2     = 7 ;              { European size A2: 420 x 594  }
571  PS_EURO_A3     = 8 ;              { European size A3: 297 x 420  }
572  PS_EURO_A4     = 9 ;              { European size A4: 210 x 297  }
573  PS_EURO_A5     = 10;              { European size A5: 148 x 210  }
574  PS_EURO_A6     = 11;              { European size A6: 105 x 148  }
575  PS_EURO_A7     = 12;              { European size A7: 74 x 105   }
576  PS_EURO_A8     = 13;              { European size A8: 52 x 74    }
577 
578 { constants for PrinterTxtPrefs.pt_PrintPitch }
579  PP_PICA  = 0;
580  PP_ELITE = 1;
581  PP_FINE  = 2;
582 
583 { constants for PrinterTxtPrefs.pt_PrintSpacing }
584  PS_SIX_LPI   = 0;
585  PS_EIGHT_LPI = 1;
586 
587 { constants for PrinterTxtPrefs.pt_PrintQuality }
588  PQ_DRAFT  = 0;
589  PQ_LETTER = 1;
590 
591 
592 { PrinterUnitPrefs is used from printer.device to open
593    the connection device
594 }
595 
596 Type
597  pPrinterUnitPrefs = ^tPrinterUnitPrefs;
598  tPrinterUnitPrefs = record
599     pu_Reserved         : Array[0..3] of Longint;              { System reserved              }
600     pu_UnitNum          : Longint;                             { Unit number for OpenDevice() }
601     pu_OpenDeviceFlags  : ULONG;                               { Flags for OpenDevice()       }
602     pu_DeviceName       : Array[0..DEVICENAMESIZE-1] of Char;  { Name for OpenDevice()        }
603  end;
604 
605 
606   { PrinterDeviceUnitPrefs is used as descriptor for printer device
607      units.
608    }
609      PPrinterDeviceUnitPrefs = ^tPrinterDeviceUnitPrefs;
610      tPrinterDeviceUnitPrefs = record
611           pd_Reserved : array[0..3] of LONG;   { System reserved                   }
612           pd_UnitNum : LONG;                   { Unit number for OpenDevice()      }
613           pd_UnitName : array[0..(UNITNAMESIZE)-1] of UBYTE;  { Symbolic name of the unit  }
614        end;
615 
616 { Reaction }
617   const
618 
619      ID_RACT = $52414354;
620 
621 
622   type
623      PReactionPrefs = ^tReactionPrefs;
624      tReactionPrefs = record
625           rp_BevelType : UWORD;
626           rp_GlyphType : UWORD;
627           rp_LayoutSpacing : UWORD;
628           rp_3DProp : BOOL;
629           rp_LabelPen : UWORD;
630           rp_LabelPlace : UWORD;
631           rp_3DLabel : BOOL;
632           rp_SimpleRefresh : BOOL;
633           rp_3DLook : BOOL;
634           rp_FallbackAttr : tTextAttr;
635           rp_LabelAttr : tTextAttr;
636           rp_FallbackName : array[0..(FONTNAMESIZE)-1] of UBYTE;
637           rp_LabelName : array[0..(FONTNAMESIZE)-1] of UBYTE;
638           rp_Pattern : array[0..255] of UBYTE;
639        end;
640 
641 
642   {     File format for screen mode preferences }
643 
644 const
645  ID_SCRM = 1396920909;
646 
647 
648 Type
649  pScreenModePrefs = ^tScreenModePrefs;
650  tScreenModePrefs = record
651     smp_Reserved        : Array[0..3] of ULONG;
652     smp_DisplayID       : ULONG;
653     smp_Width,
654     smp_Height,
655     smp_Depth,
656     smp_Control         : Word;
657  end;
658 
659 const
660 { flags for ScreenModePrefs.smp_Control }
661  SMB_AUTOSCROLL = 1;
662 
663  SMF_AUTOSCROLL = 1;
664 
665  {      File format for serial preferences }
666 
667 const
668  ID_SERL = 1397051980;
669 
670 
671 Type
672  pSerialPrefs = ^tSerialPrefs;
673  tSerialPrefs = record
674     sp_Reserved     : Array[0..2] of Longint;               { System reserved                  }
675     sp_Unit0Map,                  { What unit 0 really refers to     }
676     sp_BaudRate,                  { Baud rate                        }
677 
678     sp_InputBuffer,               { Input buffer: 0 - 65536          }
679     sp_OutputBuffer : ULONG;      { Future: Output: 0 - 65536        }
680 
681     sp_InputHandshake,            { Input handshaking                }
682     sp_OutputHandshake,           { Future: Output handshaking       }
683 
684     sp_Parity,                    { Parity                           }
685     sp_BitsPerChar,               { I/O bits per character           }
686     sp_StopBits     : Byte;       { Stop bits                        }
687  end;
688 
689 const
690 { constants for SerialPrefs.sp_Parity }
691  PARITY_NONE     = 0;
692  PARITY_EVEN     = 1;
693  PARITY_ODD      = 2;
694  PARITY_MARK     = 3;               { Future enhancement }
695  PARITY_SPACE    = 4;               { Future enhancement }
696 
697 { constants for SerialPrefs.sp_Input/OutputHandshaking }
698  HSHAKE_XON      = 0;
699  HSHAKE_RTS      = 1;
700  HSHAKE_NONE     = 2;
701 
702     {   File format for sound preferences  }
703 
704 const
705  ID_SOND = 1397706308;
706 
707 Type
708  pSoundPrefs = ^tSoundPrefs;
709  tSoundPrefs = record
710     sop_Reserved        : Array[0..3] of Longint;            { System reserved            }
711     sop_DisplayQueue,               { Flash the display?         }
712     sop_AudioQueue      : Boolean;  { Make some sound?           }
713     sop_AudioType,                  { Type of sound, see below   }
714     sop_AudioVolume,                { Volume of sound, 0..64     }
715     sop_AudioPeriod,                { Period of sound, 127..2500 }
716     sop_AudioDuration   : WORD;     { Length of simple beep      }
717     sop_AudioFileName   : Array[0..255] of Char;     { Filename of 8SVX file      }
718  end;
719 
720 const
721 { constants for SoundPrefs.sop_AudioType }
722  SPTYPE_BEEP    = 0;       { simple beep sound }
723  SPTYPE_SAMPLE  = 1;       { sampled sound     }
724 
725    {   File format for wbpattern preferences  }
726 
727 const
728  ID_PTRN = 1347703374;
729 
730 Type
731  pWBPatternPrefs = ^tWBPatternPrefs;
732  tWBPatternPrefs = record
733     wbp_Reserved    : Array[0..3] of ULONG;
734     wbp_Which,                     { Which pattern is it }
735     wbp_Flags       : WORD;
736     wbp_Revision,                  { Must be set to zero }
737     wbp_Depth       : Byte;        { Depth of pattern }
738     wbp_DataLength  : WORD;        { Length of following data }
739  end;
740 
741 const
742 { constants for WBPatternPrefs.wbp_Which }
743  WBP_ROOT       = 0;
744  WBP_DRAWER     = 1;
745  WBP_SCREEN     = 2;
746 
747 { wbp_Flags values }
748  WBPF_PATTERN   = $0001;
749     { Data contains a pattern }
750 
751  WBPF_NOREMAP   = $0010;
752     { Don't remap the pattern }
753   { PDTA_DitherQuality: see pictureclass.h  }
754      WBPF_DITHER_MASK = $0300;
755   { DitherQuality: Default  }
756      WBPF_DITHER_DEF = $0000;
757   { DitherQuality: 0  }
758      WBPF_DITHER_BAD = $0100;
759   { DitherQuality: 2  }
760      WBPF_DITHER_GOOD = $0200;
761   { DitherQuality: 4  }
762      WBPF_DITHER_BEST = $0300;
763   { OBP_Precision: see pictureclass.h  }
764      WBPF_PRECISION_MASK = $0C00;
765      WBPF_PRECISION_DEF = $0000;
766      WBPF_PRECISION_ICON = $0400;
767      WBPF_PRECISION_IMAGE = $0800;
768      WBPF_PRECISION_EXACT = $0C00;
769      WBPF_PLACEMENT_MASK = $3000;
770      WBPF_PLACEMENT_TILE = $0000;
771      WBPF_PLACEMENT_CENTER = $1000;
772      WBPF_PLACEMENT_SCALE = $2000;
773      WBPF_PLACEMENT_SCALEGOOD = $3000;
774 
775 {***************************************************************************}
776 
777  MAXDEPTH       = 3;       {  Max depth supported (8 colors) }
778  DEFPATDEPTH    = 2;       {  Depth of default patterns }
779 
780 {  Pattern width & height: }
781  PAT_WIDTH      = 16;
782  PAT_HEIGHT     = 16;
783 
784 { Workbench }
785 
786  ID_WBNC = $57424E43;
787 
788  type
789      PWorkbenchPrefs = ^tWorkbenchPrefs;
790      tWorkbenchPrefs = record
791           { settings from workbench.library }
792           wbp_DefaultStackSize : ULONG;
793           wbp_TypeRestartTime : ULONG;
794           { settings from icon.library }
795           wbp_IconPrecision : ULONG;
796           wbp_EmbossRect : tRectangle;
797           wbp_Borderless : BOOL;
798           wbp_MaxNameLength : LONG;
799           wbp_NewIconsSupport : BOOL;
800           wbp_ColorIconSupport : BOOL;
801            { new for V45 }
802           wbp_ImageMemType : ULONG;
803           wbp_LockPens : BOOL;
804           wbp_NoTitleBar : BOOL;
805           wbp_NoGauge : BOOL;
806        end;
807 
808      PWorkbenchHiddenDevicePrefs = ^tWorkbenchHiddenDevicePrefs;
809      tWorkbenchHiddenDevicePrefs = record
810           whdp_Name : array[0..0] of UBYTE;  { C String including NULL char  }
811        end;
812 
813 const
814      ID_WBHD = $57424844;
815 
816 IMPLEMENTATION
817 
818 END.
819