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