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