1{ 2 This file is part of the Free Pascal run time library. 3 Copyright (c) 1999-2000 by H.M. Swartjes 4 Parts Copyright (c) 1999-2000 by the Free Pascal development team 5 6 Interface unit for PalmOS calls 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 17unit Pilot; 18 19interface 20 uses 21 SysTraps; 22 23 const 24 25 BTRUE = 256; 26 BFALSE = 0; 27{events.h} 28 nilEvent = 0; 29 penDownEvent = 1; 30 penUpEvent = 2; 31 penMoveEvent = 3; 32 keyDownEvent = 4; 33 winEnterEvent = 5; 34 winExitEvent = 6; 35 ctlEnterEvent = 7; 36 ctlExitEvent = 8; 37 ctlSelectEvent = 9; 38 ctlRepeatEvent = 10; 39 lstEnterEvent = 11; 40 lstSelectEvent = 12; 41 lstExitEvent = 13; 42 popSelectEvent = 14; 43 fldEnterEvent = 15; 44 fldHeightChangedEvent = 16; 45 fldChangedEvent = 17; 46 tblEnterEvent = 18; 47 tblSelectEvent = 19; 48 daySelectEvent = 20; 49 menuEvent = 21; 50 appStopEvent = 22; 51 frmLoadEvent = 23; 52 frmOpenEvent = 24; 53 frmGotoEvent = 25; 54 frmUpdateEvent = 26; 55 frmSaveEvent = 27; 56 frmCloseEvent = 28; 57 frmTitleEnterEvent = 29; 58 frmTitleSelectEvent = 30; 59 tblExitEvent = 31; 60 sclEnterEvent = 32; 61 sclExitEvent = 33; 62 sclRepeatEvent = 34; 63 64{table.h} 65 checkboxTableItem = 0; 66 customTableItem = 256; 67 dateTableItem = 512; 68 labelTableItem = 768; 69 numericTableItem = 1024; 70 popupTriggerTableItem = 1280; 71 textTableItem = 1536; 72 textWithNoteTableItem = 2048; 73 timeTableItem = 2303; 74 75 AsmTrap = $4e4f; 76 AsmCleanup = $4fef; 77 AsmPushInteger = $3e80; 78 AsmPushLong = $2e80; 79 AsmPushPtr = $2e88; 80 81 NinetySix = -1391668096; { This is the number of seconds on January 1, 1996. Think Pascal doesn't } 82{ know about unsigned longints, so I use this value regularly to put theSeconds in the positive range. } 83 84 type 85 Handle = ^Pointer; 86 Ptr = Pointer; 87 UInt = word; 88 OsType = UInt; 89 90 Cstring = packed array[1..32] of char; 91 Cstr16 = packed array[1..16] of char; 92 Cstr8 = packed array[1..8] of char; 93 PString = packed record 94 case boolean of 95 true: ( 96 p: String; 97 ); 98 false: ( 99 c: array[0..255] of char 100 ); 101 end; 102 103 DmSearchStateType = packed array[1..8] of Integer; 104 105 SystemPreferencesType = packed record 106 version: Integer; 107 country: byte; 108 dateFormat: byte; 109 longDateFormat: byte; 110 weekStartDay: byte; 111 timeFormat: byte; 112 numberFormat: byte; 113 autoOffDuration: byte; 114 sysSoundLevel: byte; 115 alarmSoundLevel: byte; 116 hideSecretRecords: byte; 117 deviceLocked: byte; 118 sysPrefFlags: Integer; 119 sysBatteryKind: byte; 120 end; 121 122 RectangleType = record 123 left: Integer; 124 top: Integer; 125 width: Integer; 126 Height: Integer; 127 end; 128 129 DateTimeType = packed record 130 second: Integer; 131 minute: Integer; 132 hour: Integer; 133 day: Integer; 134 month: Integer; 135 year: Integer; 136 weekDay: Integer; 137 end; 138 139 TimeType = packed record 140 hours: Byte; 141 Minues: Byte; 142 end; 143 144 SysAppInfoType = packed record 145 cmd: Integer; 146 cmdPBP: Ptr; 147 launchFlags: Integer; 148 taskID: Longint; 149 codeH: Handle; 150 dbP: Integer; 151 stackP: Ptr; 152 globalsChunkP: Ptr; 153 memOwnerID: Integer; 154 dmAccessP: Ptr; 155 dmLastErr: Integer; 156 errExceptionP: Ptr 157 end; 158 159 SysAppInfoPtr = ^SySAppInfoType; 160 161 ListType = packed record 162 id: integer; 163 Left: Integer; 164 Top: Integer; 165 Width: Integer; 166 Height: Integer; 167 attr: byte; 168 padding: byte; 169 itemsText: longint; 170 numItems: integer; 171 currentItem: integer; 172 topItem: integer; 173 font: integer; 174 popupWin: longint; 175 drawItemsCallback: longint; 176 end; 177 178 ListPtr = ^ListType; 179 180 ControlType = packed record 181 id: integer; 182 Left: Integer; 183 Top: Integer; 184 Width: Integer; 185 Height: Integer; 186 text: Longint; 187 attr: integer; 188 style: byte; 189 font: byte; 190 group: byte; 191 padding: byte; 192 end; 193 194 ControlPtr = ^ControlType; 195 196 eventType = packed record 197 eType: Integer; 198 penDown: Boolean; 199 screenX: Integer; 200 screenY: Integer; 201 case Integer of 202 0: ( 203 data1, data2, data3, data4, data5, data6, data7, data8: Integer 204 ); 205 penUpEvent: ( 206 startX, startY, endX, endY: Integer 207 ); 208 ctlSelectEvent: ( 209 controlID: Integer; 210 pControl: Ptr; 211 on: Boolean 212 ); 213 menuEvent: ( 214 itemID: Integer; 215 ); 216 frmLoadEvent: ( 217 formID: Integer 218 ); 219 lstEnterEvent: ( 220 listID: Integer; 221 pList: Ptr; 222 selection: Integer; 223 ); 224 tblSelectEvent: ( 225 tableID: Integer; 226 pTable: Ptr; 227 row: Integer; 228 column: Integer; 229 ); 230 popSelectEvent: ( 231 popControlID: Integer; 232 controlP: Ptr; 233 popListID: Integer; 234 listP: Ptr; 235 popSelection: Integer; 236 priorSelection: Integer; 237 ); 238 keyDownEvent: ( 239 chr: Integer; 240 keyCode: Integer; 241 modifiers: Integer; 242 ); 243 sclEnterEvent, sclExitEvent, sclRepeatEvent: ( 244 scrollBarID: Integer; 245 scrollBar: Ptr; 246 value, newValue: Integer; 247 time: LongInt; 248 ); 249 end; 250 251 CustomPatternType = array[1..2] of LongInt; 252 253{ ------------- Alm ------------- } 254 255 function AlmGetAlarm (var ref: LongInt; id: LongInt; card: Integer): Longint; 256 syscall SysTrapAlmGetAlarm; 257 258 procedure AlmSetAlarm (quiet: Integer; theSeconds: Longint; ref: LongInt; id: Longint; card: Integer); 259 syscall SysTrapAlmSetAlarm; 260 261{ ------------- Ctl ------------- } 262 function CtlGetLabel (ControlP: Ptr): Ptr; 263 syscall SysTrapCtlGetLabel; 264 265 function CtlGetValue (ControlP: Ptr): Integer; 266 syscall SysTrapCtlGetValue; 267 268 procedure CtlHideControl (ControlP: Ptr); 269 syscall SysTrapCtlHideControl; 270 271 procedure CtlSetLabel (newLabel: Ptr; ControlP: Ptr); 272 syscall SysTrapCtlSetLabel; 273 274 procedure CtlSetUsable (status: Integer; ControlP: Ptr); 275 syscall SysTrapCtlSetUsable; 276 277 procedure CtlSetValue (newValue: Integer; ControlP: Ptr); 278 syscall SysTrapCtlSetValue; 279 280 procedure CtlShowControl (ControlP: Ptr); 281 syscall SysTrapCtlShowControl; 282 283{ ------------- Dm ------------- } 284 285 procedure DmCloseDatabase (db: Ptr); 286 syscall SysTrapDmCloseDatabase; 287 288 function DmCreateDatabase (resDB: Integer; theType, theCreator: OSType; theName: Ptr; cardNo: Integer): Integer; 289 syscall SysTrapDmCreateDatabase; 290 291 function DmDatabaseInfo (theCreator, theType, sortInfoID, appInfoID, modNum, bckUpDate, modDate, crDate, version, attributes, theName: Ptr; dbID: LongInt; cardNo: Integer): Integer; 292 syscall SysTrapDmDatabaseInfo; 293 294 function DmDeleteDatabase (localID: LongInt; cardNo: Integer): Integer; 295 syscall SysTrapDmDeleteDatabase; 296 297 procedure DmDeleteRecord (index: Integer; db: Ptr); 298 syscall SysTrapDmDeleteRecord; 299 300 function DmFindDatabase (theName: Ptr; cardNo: Integer): LongInt; 301 syscall SysTrapDmFindDatabase; 302 303 function DmGetNextDatabaseByTypeCreator (var dbID: LongInt; var cardNo: Integer; onlyLatestVersion: Integer; creator, myType: OSType; stateInfo: DmSearchStateType; newSearch: Integer): Integer; 304 syscall SysTrapDmGetNextDatabaseByTypeCreator; 305 306 function DmGetRecord (index: Integer; db: Ptr): Ptr; 307 syscall SysTrapDmGetRecord; 308 309 function DmGet1Resource (ID: Integer; ResType: OSType): Ptr; 310 syscall SysTrapDmGet1Resource; 311 312 function DmNewRecord (size: Longint; var at: Integer; db: Ptr): Ptr; 313 syscall SysTrapDmNewRecord; 314 315 function DmNumRecords (db: Ptr): Integer; 316 syscall SysTrapDmNumRecords; 317 318 function DmNumRecordsInCategory (category: Integer; db: Ptr): Integer; 319 syscall SysTrapDmNumRecordsInCategory; 320 321 function DmOpenDatabase (mode: Integer; dbID: Ptr; cardNo: Integer): Ptr; 322 syscall SysTrapDmOpenDatabase; 323 324 function DmOpenDatabaseByTypeCreator (mode: Integer; theCreator, theType: OSType): Ptr; 325 syscall SysTrapDmOpenDatabaseByTypeCreator; 326 327{mode=1:read, 2:write; 3:readWrite} 328 329 function DmOpenDatabaseInfo (resDB, cardNo, mode, openCount, dbID, db: Ptr): Integer; 330 syscall SysTrapDmOpenDatabaseInfo; 331 332 function DmQueryNextInCategory (category: Integer; var index: Integer; db: Ptr): Ptr; 333 syscall SysTrapDmQueryNextInCategory; 334 335 function DmQueryRecord (index: Integer; db: Ptr): Ptr; 336 syscall SysTrapDmQueryRecord; 337 338 function DmRecordInfo (localIDP, chunkIDP: Ptr; var attr: Integer; index: Integer; db: Ptr): Integer; 339 syscall SysTrapDmRecordInfo; 340 341 procedure DmReleaseRecord (dirty, index: Integer; db: Ptr); 342 syscall SysTrapDmReleaseRecord; 343 344 procedure DmRemoveRecord (index: Integer; db: Ptr); 345 syscall SysTrapDmRemoveRecord; 346 347 function DmSeekRecordInCategory (Category, Direction, Offset: Integer; var Index: Integer; dbRef: Ptr): Integer; 348 syscall SysTrapDmSeekRecordInCategory; 349 350 function DmSet (byteValue: Integer; bytes, offset: LongInt; recordP: Ptr): Integer; 351 syscall SysTrapDmSet; 352 353 function DmSetDatabaseInfo (theCreator, theType, sortInfoID, appInfoID, modNum, bckUpDate, modDate, crDate, version, attributes, theName: Ptr; dbID: LongInt; cardNo: Integer): Integer; 354 syscall SysTrapDmSetDatabaseInfo; 355 356 function DmSetRecordInfo (localIDP: Ptr; var attr: Integer; index: Integer; db: Ptr): Integer; 357 syscall SysTrapDmSetRecordInfo; 358 359 function DmWrite (bytes: LongInt; src: Ptr; offset: LongInt; recordP: Ptr): Integer; 360 syscall SysTrapDmWrite; 361 362{ ------------- Evt ------------- } 363 364 procedure EvtGetEvent (timeOut: LongInt; var event: EventType); 365 syscall SysTrapEvtGetEvent; 366 367 procedure EvtFlushPenQueue; 368 syscall SysTrapEvtFlushPenQueue; 369 370{ ------------- Fld ------------- } 371 372 procedure FldCopy (fld: Ptr); 373 syscall SysTrapFldCopy; 374 375 procedure FldCut (fld: Ptr); 376 syscall SysTrapFldCut; 377 378 procedure FldDelete (last, first: Integer; fld: Ptr); 379 syscall SysTrapFldDelete; 380 381 procedure FldEraseField (fld: Ptr); 382 syscall SysTrapFldEraseField; 383 384 function FldGetTextHandle (fld: Ptr): Ptr; 385 syscall SysTrapFldGetTextHandle; 386 387 function FldGetTextLength (fld: Ptr): Integer; 388 syscall SysTrapFldGetTextLength; 389 390 function FldGetTextPtr (fld: Ptr): Ptr; 391 syscall SysTrapFldGetTextPtr; 392 393 procedure FldGrabFocus (fld: Ptr); 394 syscall SysTrapFldGrabFocus; 395 396 function FldInsert (insertLen: Integer; insertChars, FieldPtr: Ptr): Integer; 397 syscall SysTrapFldInsert; 398 399 procedure FldPaste (fld: Ptr); 400 syscall SysTrapFldPaste; 401 402 procedure FldSetInsPtPosition (pos: Integer; fld: Ptr); 403 syscall SysTrapFldSetInsPtPosition; 404 405 procedure FldSetTextPtr (textPtr, fld: Ptr); 406 syscall SysTrapFldSetTextPtr; 407 408 procedure FldSetTextHandle (textHandle, fld: Ptr); 409 syscall SysTrapFldSetTextHandle; 410 411 procedure FldSetSelection (endPosition: Integer; startPosition: Integer; fld: Ptr); 412 syscall SysTrapFldSetSelection; 413 414 procedure FldUndo (fld: Ptr); 415 syscall SysTrapFldUndo; 416 417{ ------------- Fnt ------------- } 418 419 procedure FntCharsInWidth (fit, textLen, width, recText: Ptr); 420 syscall SysTrapFntCharsInWidth; 421 422 function FntCharsWidth (theLength: Integer; theString: Ptr): Integer; 423 syscall SysTrapFntCharsWidth; 424 425 function FntDefineFont (fontP: Ptr; FontID: Integer): Integer; 426 syscall SysTrapFntDefineFont; 427 428 function FntSetFont (fontID: Integer): Integer; 429 syscall SysTrapFntSetFont; 430 431{ ------------- Frm ------------- } 432 433 function FrmAlert (alertID: Integer): Integer; 434 syscall SysTrapFrmAlert; 435 436 procedure FrmCloseAllForms; 437 syscall SysTrapFrmCloseAllForms; 438 439 procedure FrmDeleteForm (frm: Ptr); 440 syscall SysTrapFrmDeleteForm; 441 442 procedure FrmDoDialog (theForm: Ptr); 443 syscall SysTrapFrmDoDialog; 444 445 procedure FrmDrawForm (theForm: Ptr); 446 syscall SysTrapFrmDrawForm; 447 448 function FrmGetActiveForm: Ptr; 449 syscall SysTrapFrmGetActiveForm; 450 451 function FrmGetActiveFormID: Integer; 452 syscall SysTrapFrmGetActiveFormID; 453 454 function FrmGetFocus (theForm: Ptr): Integer; 455 syscall sysTrapFrmGetFocus; 456 457 function FrmGetFormPtr (id: Integer): Ptr; 458 syscall SysTrapFrmGetFormPtr; 459 460 function FrmGetObjectID (ObjIndex: Integer; frm: Ptr): Integer; 461 syscall SysTrapFrmGetObjectID; 462 463 function FrmGetObjectIndex (ObjID: Integer; frm: Ptr): Integer; 464 syscall SysTrapFrmGetObjectIndex; 465 466 function FrmGetObjectPtr (ObjIndex: Integer; frm: Ptr): Ptr; 467 syscall SysTrapFrmGetObjectPtr; 468 469 procedure FrmGotoForm (frmID: integer); 470 syscall SysTrapFrmGotoForm; 471 472 function FrmHandleEvent (event: eventType; frm: Ptr): Integer; 473 syscall SysTrapFrmHandleEvent; 474 475 procedure FrmHideObject (objIndex: Integer; frm: Ptr); 476 syscall SysTrapFrmHideObject; 477 478 function FrmInitForm (frmID: integer): Ptr; 479 syscall SysTrapFrmInitForm; 480 481 procedure FrmPopupForm (frmID: integer); 482 syscall SysTrapFrmPopupForm; 483 484 procedure FrmReturnToForm (frmID: integer); 485 syscall SysTrapFrmReturnToForm; 486 487 procedure FrmSetActiveForm (theForm: Ptr); 488 syscall SysTrapFrmSetActiveForm; 489 490 procedure FrmSetFocus (fieldIndex: Integer; frm: Ptr); 491 syscall sysTrapFrmSetFocus; 492 493 procedure FrmShowObject (objIndex: Integer; frm: Ptr); 494 syscall SysTrapFrmShowObject; 495 496{ ------------- Grf ------------- } 497 498 procedure GrfSetState (upperShift, numLock, capsLock: Integer); 499 syscall sysTrapGrfSetState; 500 501{ ------------- Lst ------------- } 502 503 function LstGetSelection (theList: Ptr): Integer; 504 syscall SysTrapLstGetSelection; 505 506 function LstGetSelectionText (itemNum: Integer; theList: Ptr): Ptr; 507 syscall SysTrapLstGetSelectionText; 508 509 procedure LstSetHeight (visibleItems: Integer; theList: Ptr); 510 syscall SysTrapLstSetHeight; 511 512 procedure LstSetListChoices (numItems: Integer; LstArray: Ptr; theList: Ptr); 513 syscall SysTrapLstSetListChoices; 514 515 procedure LstSetPosition (y, x: Integer; theList: Ptr); 516 syscall SysTrapLstSetPosition; 517 518 procedure LstSetSelection (itemNum: Integer; theList: Ptr); 519 syscall SysTrapLstSetSelection; 520 521{ ------------- Mem ------------- } 522 523 function MemHandleLock (h: Ptr): Ptr; 524 syscall SysTrapMemHandleLock; 525 526 function MemHandleNew (size: LongInt): Ptr; 527 syscall SysTrapMemHandleNew; 528 529 function MemHandleResize (size: LongInt; h: Ptr): Integer; 530 syscall SysTrapMemHandleResize; 531 532 procedure MemMove (length: LongInt; source, dest: Ptr); 533 syscall SysTrapMemMove; 534 535 function MemHandleUnLock (h: Ptr): Integer; 536 syscall SysTrapMemHandleUnLock; 537 538 function MemPtrUnlock (p: Ptr): Integer; 539 syscall SysTrapMemPtrUnlock; 540 541{ ------------- Menu ------------- } 542 543 procedure MenuDispose (theMenu: Ptr); 544 syscall SysTrapMenuDispose; 545 546 function MenuGetActiveMenu: Ptr; 547 syscall SysTrapMenuGetActiveMenu; 548 549 procedure MenuEraseStatus (theMenu: Ptr); 550 syscall SysTrapMenuEraseStatus; 551 552 function MenuHandleEvent (var error: Integer; event: eventType; menuP: Ptr): Integer; 553 syscall SysTrapMenuHandleEvent; 554 555 function MenuInit (menuID: Integer): Ptr; 556 syscall SysTrapMenuInit; 557 558 function MenuSetActiveMenu (theMenu: Ptr): Ptr; 559 syscall SysTrapMenuSetActiveMenu; 560 561{ ------------- Pref ------------- } 562 563 procedure PrefGetPreferences (var prefs: SystemPreferencesType); 564 syscall SysTrapPrefGetPreferences; 565 566 function PrefGetAppPreferencesV10 (prefsSize: Integer; prefs: Ptr; version: Integer; Creator: OSType): Integer; 567 syscall SysTrapPrefGetAppPreferencesV10; 568 569 procedure PrefSetAppPreferencesV10 (prefsSize: Integer; prefs: Ptr; version: Integer; Creator: OSType); 570 syscall SysTrapPrefSetAppPreferencesV10; 571 572{ ------------- Scroll ------------- } 573 574 procedure SclDrawScrollBar (theBar: Ptr); 575 syscall sysTrapSclDrawScrollBar; 576 577 function SclHandleEvent (event: eventType; ScrollBar: Ptr): Integer; 578 syscall SysTrapSclHandleEvent; 579 580 procedure SclSetScrollBar (pageSize, max, min, value: Integer; theBar: Ptr); 581 syscall sysTrapSclSetScrollBar; 582 583{ ------------- Snd ------------- } 584 585 procedure SndPlaySystemSound (beepID: Byte); 586 syscall SysTrapSndPlaySystemSound; 587 588{ ------------- Str ------------- } 589 590 procedure StrCopy (s, d: Ptr); 591 syscall SysTrapStrCopy; 592 593 procedure StrIToA (i: Longint; s: Ptr); 594 syscall SysTrapStrIToA; 595 596 function StrLen (s: Ptr): Integer; 597 syscall SysTrapStrLen; 598 599{ ------------- Sys ------------- } 600 601 procedure SysCurAppDatabase (var id: Longint; var card: Integer); 602 syscall SysTrapSysCurAppDatabase; 603 604 function SysFormPointerArrayToStrings (numFields: Integer; p: Ptr): Ptr; 605 syscall SysTrapSysFormPointerArrayToStrings; 606 607 function SysHandleEvent (event: eventType): Integer; 608 syscall SysTrapSysHandleEvent; 609 610 procedure SysKeyboardDialog; 611 syscall SysTrapSysKeyboardDialog; 612 613 function SysUIAppSwitch (cmdPBP: Ptr; cmd: Integer; dbID: LongInt; cardNo: Integer): Integer; 614 syscall SysTrapSysUIAppSwitch; 615 616{ ------------- Tbl ------------- } 617 618 procedure TblDrawTable (table: Ptr); 619 syscall SysTrapTblDrawTable; 620 621 function TblGetItemInt (column, row: Integer; table: Ptr): Integer; 622 syscall SysTrapTblGetItemInt; 623 624 function TblGetNumberOfRows (table: Ptr): Integer; 625 syscall SysTrapTblGetNumberOfRows; 626 627 procedure TblSetColumnUsable (usable, row: Integer; table: Ptr); 628 syscall SysTrapTblSetColumnUsable; 629 630 procedure TblSetItemInt (value, column, row: Integer; table: Ptr); 631 syscall SysTrapTblSetItemInt; 632 633 procedure TblSetItemPtr (thePtr: Ptr; column, row: Integer; table: Ptr); 634 syscall SysTrapTblSetItemPtr; 635 636 procedure TblSetItemStyle (style, column, row: Integer; table: Ptr); 637 syscall SysTrapTblSetItemStyle; 638 639 procedure TblSetRowSelectable (selectable, row: Integer; table: Ptr); 640 syscall SysTrapTblSetRowSelectable; 641 642 procedure TblSetRowUsable (usable, row: Integer; table: Ptr); 643 syscall SysTrapTblSetRowUsable; 644 645{ ------------- Tim ------------- } 646 647 function DaysInMonth (year, month: Integer): Integer; 648 syscall SysTrapDaysInMonth; 649 650 function DayOfWeek (year, day, month: Integer): Integer; 651 syscall SysTrapDayOfWeek; 652 653 function TimDateTimeToSeconds (var dt: DateTimeType): LongInt; 654 syscall SysTrapTimDateTimeToSeconds; 655 656 function TimGetSeconds: LongInt; 657 syscall SysTrapTimGetSeconds; 658 659 procedure TimSetSeconds (theSeconds: LongInt); 660 syscall SysTrapTimSetSeconds; 661 662 procedure TimSecondsToDateTime (var dt: DateTimeType; theSecs: Longint); 663 syscall SysTrapTimSecondsToDateTime; 664 665{ ------------- Win ------------- } 666 667 procedure WinDrawChars (y, x, len: Integer; theString: Ptr); 668 syscall SysTrapWinDrawChars; 669 670 procedure WinDrawGrayRectangleFrame (var theRect: Rectangletype; frameType: Integer); 671 syscall SysTrapWinDrawGrayRectangleFrame; 672 673 procedure WinDrawRectangle (cornerDiam: Integer; var theRect: Rectangletype); 674 syscall SysTrapWinDrawRectangle; 675 676 procedure WinEraseRectangle (corenerDiam: Integer; var theRect: Rectangletype); 677 syscall SysTrapWinEraseRectangle; 678 679 procedure WinFillRectangle (cornerDiam: Integer; var theRect: Rectangletype); 680 syscall SysTrapWinFillRectangle; 681 682 procedure WinSetPattern (var pattern: CustomPatternType); 683 syscall SysTrapWinSetPattern; 684 685 686implementation 687 688end. 689