home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1990-06-14 | 13.0 KB | 422 lines | [TEXT/PMED] |
- IMPLEMENTATION MODULE QuickDraw; (* Franz Kronseder 08.06.85 *)
- (* last modified 12.06.85 fxk *)
-
- FROM SYSTEM IMPORT WORD;
- FROM MacBase IMPORT PTRAP,trapnr,Point,StrPtr;
- IMPORT MacBase;
-
- (* GrafPort Routines *)
- (*$P-,$S-,$T-*)
- PROCEDURE InitGraf (globalPtr: QDPtr); (*INLINE $A86E*)
- BEGIN trapnr:= 0A86EH; PTRAP; END InitGraf;
-
- (*$P-,$S-,$T-*)
- PROCEDURE OpenPort (port: GrafPtr); (*INLINE $A86F*)
- BEGIN trapnr:= 0A86FH; PTRAP; END OpenPort;
-
- (*$P-,$S-,$T-*)
- PROCEDURE InitPort (port: GrafPtr); (*INLINE $A86D*)
- BEGIN trapnr:= 0A860H; PTRAP; END InitPort;
-
- (*$P-,$S-,$T-*)
- PROCEDURE ClosePort (port: GrafPtr); (*INLINE $A87D*)
- BEGIN trapnr:= 0A87DH; PTRAP; END ClosePort;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetPort (port: GrafPtr); (*INLINE $A873*)
- BEGIN trapnr:= 0A873H; PTRAP; END SetPort;
-
- (*$P-,$S-,$T-*)
- PROCEDURE GetPort (VAR port: GrafPtr); (*INLINE $A874*)
- BEGIN trapnr:= 0A874H; PTRAP; END GetPort;
-
- (*$P-,$S-,$T-*)
- PROCEDURE GrafDevice (device: INTEGER); (*INLINE $A872*)
- BEGIN trapnr:= 0A872H; PTRAP; END GrafDevice;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetPortBits(VAR bm: BitMap); (*INLINE $A875*)
- BEGIN trapnr:= 0A875H; PTRAP; END SetPortBits;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PortSize (width,height: INTEGER); (*INLINE $A876*)
- BEGIN trapnr:= 0A876H; PTRAP; END PortSize;
-
- (*$P-,$S-,$T-*)
- PROCEDURE MovePortTo (leftGlobal,topGlobal: INTEGER); (*INLINE $A877*)
- BEGIN trapnr:= 0A877H; PTRAP; END MovePortTo;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetOrigin (h,v: INTEGER); (*INLINE $A878*)
- BEGIN trapnr:= 0A878H; PTRAP; END SetOrigin;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetClip (rgn: RgnHandle); (*INLINE $A879*)
- BEGIN trapnr:= 0A879H; PTRAP; END SetClip;
-
- (*$P-,$S-,$T-*)
- PROCEDURE GetClip (rgn: RgnHandle); (*INLINE $A87A*)
- BEGIN trapnr:= 0A87AH; PTRAP; END GetClip;
-
- (*$P-,$S-,$T-*)
- PROCEDURE ClipRect (VAR r: Rect); (*INLINE $A87B*)
- BEGIN trapnr:= 0A87BH; PTRAP; END ClipRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE BackPat (VAR pat: Pattern); (*INLINE $A87C*)
- BEGIN trapnr:= 0A87CH; PTRAP; END BackPat;
-
-
- (* Cursor Routines *)
-
- (*$P-,$S-,$T-*)
- PROCEDURE InitCursor; (*INLINE $A850*)
- BEGIN trapnr:= 0A850H; PTRAP; END InitCursor;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetCursor(VAR crsr: Cursor); (*INLINE $A851*)
- BEGIN trapnr:= 0A851H; PTRAP; END SetCursor;
-
- (*$P-,$S-,$T-*)
- PROCEDURE HideCursor; (*INLINE $A852*)
- BEGIN trapnr:= 0A852H; PTRAP; END HideCursor;
-
- (*$P-,$S-,$T-*)
- PROCEDURE ShowCursor; (*INLINE $A853*)
- BEGIN trapnr:= 0A853H; PTRAP; END ShowCursor;
-
- (*$P-,$S-,$T-*)
- PROCEDURE ObscureCursor; (*INLINE $A856*)
- BEGIN trapnr:= 0A856H; PTRAP; END ObscureCursor;
-
- (*$P-,$S-,$T-*)
- PROCEDURE GetCursor (cursorID: INTEGER): CursHandle; (*INLINE $A9B9*)
- BEGIN trapnr:= 0A9B9H; PTRAP; END GetCursor;
-
- (*$P-,$S-,$T-*)
- PROCEDURE ShieldCursor(left,top,right,bottom: INTEGER); (*INLINE $A855*)
- BEGIN trapnr:= 0A855H; PTRAP; END ShieldCursor;
-
-
-
- (* Line Routines *)
-
- (*$P-,$S-,$T-*)
- PROCEDURE HidePen; (*INLINE $A896*)
- BEGIN trapnr:= 0A896H; PTRAP; END HidePen;
-
- (*$P-,$S-,$T-*)
- PROCEDURE ShowPen; (*INLINE $A897*)
- BEGIN trapnr:= 0A897H; PTRAP; END ShowPen;
-
- (*$P-,$S-,$T-*)
- PROCEDURE GetPen (VAR pt: Point); (*INLINE $A89A*)
- BEGIN trapnr:= 0A89AH; PTRAP; END GetPen;
-
- (*$P-,$S-,$T-*)
- PROCEDURE GetPenState(VAR pnState: PenState); (*INLINE $A898*)
- BEGIN trapnr:= 0A898H; PTRAP; END GetPenState;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetPenState(VAR pnState: PenState); (*INLINE $A899*)
- BEGIN trapnr:= 0A899H; PTRAP; END SetPenState;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PenSize (width,height: INTEGER); (*INLINE $A89B*)
- BEGIN trapnr:= 0A89BH; PTRAP; END PenSize;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PenMode (mode: INTEGER); (*INLINE $A89C*)
- BEGIN trapnr:= 0A89CH; PTRAP; END PenMode;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PenPat (VAR pat: Pattern); (*INLINE $A89D*)
- BEGIN trapnr:= 0A89DH; PTRAP; END PenPat;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PenNormal; (*INLINE $A89E*)
- BEGIN trapnr:= 0A89EH; PTRAP; END PenNormal;
-
- (*$P-,$S-,$T-*)
- PROCEDURE MoveTo (h,v: INTEGER); (*INLINE $A893*)
- BEGIN trapnr:= 0A893H; PTRAP; END MoveTo;
-
- (*$P-,$S-,$T-*)
- PROCEDURE Move (dh,dv: INTEGER); (*INLINE $A894*)
- BEGIN trapnr:= 0A894H; PTRAP; END Move;
-
- (*$P-,$S-,$T-*)
- PROCEDURE LineTo (h,v: INTEGER); (*INLINE $A891*)
- BEGIN trapnr:= 0A891H; PTRAP; END LineTo;
-
- (*$P-,$S-,$T-*)
- PROCEDURE Line (dh,dv: INTEGER); (*INLINE $A892*)
- BEGIN trapnr:= 0A892H; PTRAP; END Line;
-
- (*$P-,$S-,$T-*)
- PROCEDURE TextFont (font: INTEGER); (*INLINE $A887*)
- BEGIN trapnr:= 0A887H; PTRAP; END TextFont;
-
-
-
- (* Text Routines *)
-
- PROCEDURE TextFace (face: Style); (*INLINE $A888*)
- BEGIN TextFace1(BITSET(face)); END TextFace;
-
- (*$P-,$S-,$T-*)
- PROCEDURE TextFace1(face:BITSET);
- BEGIN trapnr:= 0A888H; PTRAP; END TextFace1;
-
- (*$P-,$S-,$T-*)
- PROCEDURE TextMode (mode: INTEGER); (*INLINE $A889*)
- BEGIN trapnr:= 0A889H; PTRAP; END TextMode;
-
- (*$P-,$S-,$T-*)
- PROCEDURE TextSize (size: INTEGER); (*INLINE $A88A*)
- BEGIN trapnr:= 0A88AH; PTRAP; END TextSize;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SpaceExtra (extra: LongInt); (*INLINE $A88E*)
- BEGIN trapnr:= 0A88EH; PTRAP; END SpaceExtra;
-
- PROCEDURE DrawChar (ch: CHAR); (*INLINE $A883*)
- BEGIN DrawCharWord(WORD(ch)) END DrawChar ;
-
- (*$P-,$S-,$T-*)
- PROCEDURE DrawCharWord (w:WORD);
- BEGIN trapnr:= 0A883H; PTRAP END DrawCharWord;
-
- (*$P-,$S-,$T-*)
- PROCEDURE DrawString (s:StrPtr); (*INLINE $A884*)
- BEGIN trapnr:= 0A884H; PTRAP; END DrawString;
-
-
- (*$P-,$S-,$T-*)
- PROCEDURE DrawText (textBuf: QDPtr; firstByte,byteCount: INTEGER);(*INLINE $A885*)
- BEGIN trapnr:= 0A885H; PTRAP; END DrawText;
-
- PROCEDURE CharWidth (ch: CHAR): INTEGER; (*INLINE $A88D*)
- VAR temp: INTEGER;
- BEGIN temp:= CharWidth1(WORD(ch)); RETURN temp END CharWidth;
-
- (*$P-,$S-,$T-*)
- PROCEDURE CharWidth1 (w:WORD): INTEGER;
- BEGIN trapnr:=0A88DH; PTRAP END CharWidth1;
-
- (*$P-,$S-,$T-*)
- PROCEDURE StringWidth (s:StrPtr): INTEGER; (*INLINE $A88C*)
- BEGIN trapnr:= 0A88CH; PTRAP; END StringWidth;
-
- (*$P-,$S-,$T-*)
- PROCEDURE TextWidth (textBuf: QDPtr; firstByte,byteCount: INTEGER): INTEGER;
- BEGIN trapnr:= 0A886H; PTRAP; END TextWidth; (*INLINE $A886*)
-
-
- (*$P-,$S-,$T-*)
- PROCEDURE GetFontInfo (VAR info: FontInfo); (*INLINE $A88B*)
- BEGIN trapnr:= 0A88BH; PTRAP; END GetFontInfo;
-
- (*$P-,$S-,$T-*)
- PROCEDURE TextBox( inText: Ptr; textLength: LongInt;VAR r: Rect; style: INTEGER );(*INLINE $A9CE*)
- BEGIN trapnr:= 0A9CEH; PTRAP; END TextBox ;
-
-
- (* Point Calculations *)
-
- PROCEDURE AddPt (src: Point; VAR dst: Point); (*INLINE $A87E*)
- BEGIN AddPt1(src.h,src.v,dst) END AddPt;
-
- (*$P-,$S-,$T-*)
- PROCEDURE AddPt1(h,v: INTEGER; VAR dst: Point);
- BEGIN trapnr:= 0A87EH; PTRAP; END AddPt1;
-
-
- PROCEDURE SubPt (src: Point; VAR dst: Point); (*INLINE $A87F*)
- BEGIN SubPt1(src.h,src.v,dst) END SubPt;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SubPt1(h,v: INTEGER; VAR dst: Point);
- BEGIN trapnr:= 0A87FH; PTRAP; END SubPt1;
-
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetPt (VAR pt: Point; h,v: INTEGER); (*INLINE $A880*)
- BEGIN trapnr:= 0A880H; PTRAP; END SetPt;
-
- PROCEDURE EqualPt (pt1,pt2: Point): BOOLEAN; (*INLINE $A881*)
- VAR temp: BOOLEAN;
- BEGIN temp:= EqualPt1(pt1.h,pt1.v,pt2.h,pt2.v); RETURN temp END EqualPt;
-
- (*$P-,$S-,$T-*)
- PROCEDURE EqualPt1(h1,v1,h2,v2: INTEGER):BOOLEAN;
- BEGIN trapnr:= 0A881H; PTRAP; END EqualPt1;
-
-
- (*$P-,$S-,$T-*)
- PROCEDURE ScalePt (VAR pt: Point;VAR fromRect,toRect: Rect);(*INLINE $A8F8*)
- BEGIN trapnr:= 0A8F6H; PTRAP; END ScalePt;
-
- (*$P-,$S-,$T-*)
- PROCEDURE MapPt (VAR pt: Point;VAR fromRect,toRect: Rect);(*INLINE $A8F9*)
- BEGIN trapnr:= 0A8F9H; PTRAP; END MapPt;
-
- (*$P-,$S-,$T-*)
- PROCEDURE LocalToGlobal (VAR pt: Point); (*INLINE $A870*)
- BEGIN trapnr:= 0A870H; PTRAP; END LocalToGlobal;
-
- (*$P-,$S-,$T-*)
- PROCEDURE GlobalToLocal (VAR pt: Point); (*INLINE $A871*)
- BEGIN trapnr:= 0A871H; PTRAP; END GlobalToLocal;
-
-
-
- (* Rectangle Calculations *)
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetRect (VAR r: Rect; left,top,right,bottom: INTEGER);(*INLINE $A8A7*)
- BEGIN trapnr:= 0A8A7H; PTRAP; END SetRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE EqualRect (VAR rect1,rect2: Rect): BOOLEAN; (*INLINE $A8A6*)
- BEGIN trapnr:= 0A8A6H; PTRAP; END EqualRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE EmptyRect (VAR r: Rect): BOOLEAN; (*INLINE $A8AE*)
- BEGIN trapnr:= 0A8AEH; PTRAP; END EmptyRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE OffsetRect (VAR r: Rect; dh,dv: INTEGER); (*INLINE $A8A8*)
- BEGIN trapnr:= 0A8A8H; PTRAP; END OffsetRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE MapRect (VAR r,fromRect,toRect: Rect); (*INLINE $A8FA*)
- BEGIN trapnr:= 0A8FAH; PTRAP; END MapRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE InsetRect (VAR r: Rect; dh,dv: INTEGER); (*INLINE $A8A9*)
- BEGIN trapnr:= 0A8A9H; PTRAP; END InsetRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SectRect (VAR src1,src2,dstRect: Rect): BOOLEAN;(*INLINE $A8AA*)
- BEGIN trapnr:= 0A8AAH; PTRAP; END SectRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE UnionRect (VAR src1,src2,dstRect: Rect); (*INLINE $A8AB*)
- BEGIN trapnr:= 0A8ABH; PTRAP; END UnionRect;
-
- PROCEDURE PtInRect (pt: Point;VAR r: Rect): BOOLEAN; (*INLINE $A8AD*)
-
- VAR temp: BOOLEAN;
-
- BEGIN temp:= PtInRect1(pt.h,pt.v,r); RETURN temp END PtInRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PtInRect1(h,v: INTEGER;VAR r: Rect): BOOLEAN;
- BEGIN trapnr:= 0A8ADH; PTRAP; END PtInRect1;
-
-
- PROCEDURE Pt2Rect (pt1,pt2: Point; VAR dstRect: Rect);(*INLINE $A8AC*)
- BEGIN Pt2Rect1(pt1.h,pt1.v,pt2.h,pt2.v,dstRect) END Pt2Rect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE Pt2Rect1(h1,v1,h2,v2: INTEGER; VAR dstRect: Rect);
- BEGIN trapnr:= 0A8ACH; PTRAP; END Pt2Rect1;
-
-
- (* Graphical Operations on Rectangles *)
-
- (*$P-,$S-,$T-*)
- PROCEDURE FrameRect (VAR r: Rect); (*INLINE $A8A1*)
- BEGIN trapnr:= 0A8A1H; PTRAP; END FrameRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PaintRect (VAR r: Rect); (*INLINE $A8A2*)
- BEGIN trapnr:= 0A8A2H; PTRAP; END PaintRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE EraseRect (VAR r: Rect); (*INLINE $A8A3*)
- BEGIN trapnr:= 0A8A3H; PTRAP; END EraseRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE InvertRect (VAR r: Rect); (*INLINE $A8A4*)
- BEGIN trapnr:= 0A8A4H; PTRAP; END InvertRect;
-
- (*$P-,$S-,$T-*)
- PROCEDURE FillRect (VAR r: Rect;VAR pat: Pattern); (*INLINE $A8A5*)
- BEGIN trapnr:= 0A8A5H; PTRAP; END FillRect;
-
-
- (* Graphical Operations on BitMaps *)
-
- (*$P-,$S-,$T-*)
- PROCEDURE ScrollRect(VAR dstRect: Rect; dh,dv: INTEGER; updateRgn: RgnHandle);
- BEGIN trapnr:= 0A8EFH; PTRAP; END ScrollRect; (*INLINE $A8EF*)
-
- (*$P-,$S-,$T-*)
- PROCEDURE CopyBits (VAR srcBits,dstBits: BitMap;
- VAR srcRect,dstRect: Rect;
- mode: INTEGER;
- maskRgn: RgnHandle); (*INLINE $A8EC*)
- BEGIN trapnr:= 0A8ECH; PTRAP; END CopyBits;
-
- (* Region Handling Routines needed from Module Terminal *)
-
- (*$P-,$S-,$T-*)
- PROCEDURE NewRgn(): RgnHandle; (*INLINE $A8D8*)
- BEGIN trapnr:= 0A8D8H; PTRAP; END NewRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE DisposeRgn(rgn: RgnHandle); (*INLINE $A8D9*)
- BEGIN trapnr:= 0A8D9H; PTRAP; END DisposeRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE CopyRgn (srcRgn,dstRgn: RgnHandle); (*INLINE $A8DC*)
- BEGIN trapnr:= 0A8DCH; PTRAP; END CopyRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetEmptyRgn(rgn: RgnHandle); (*INLINE $A8DD*)
- BEGIN trapnr:= 0A8DDH; PTRAP; END SetEmptyRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE SetRectRgn(rgn: RgnHandle; left,top,right,bottom: INTEGER);(*INLINE $A8DE*)
- BEGIN trapnr:= 0A8DEH; PTRAP; END SetRectRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE FrameRgn (rgn: RgnHandle); (*INLINE $A8D2*)
- BEGIN trapnr:= 0A8D2H; PTRAP; END FrameRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PaintRgn (rgn: RgnHandle); (*INLINE $A8D3*)
- BEGIN trapnr:= 0A8D3H; PTRAP; END PaintRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE EraseRgn (rgn: RgnHandle); (*INLINE $A8D4*)
- BEGIN trapnr:= 0A8D4H; PTRAP; END EraseRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE InvertRgn (rgn: RgnHandle); (*INLINE $A8D5*)
- BEGIN trapnr:= 0A8D5H; PTRAP; END InvertRgn;
-
- (*$P-,$S-,$T-*)
- PROCEDURE FillRgn (rgn: RgnHandle;VAR pat: Pattern); (*INLINE $A8D6*)
- BEGIN trapnr:= 0A8D6H; PTRAP; END FillRgn;
-
-
- (* Miscellanous Routines *)
-
- (*$P-,$S-,$T-*)
- PROCEDURE GetIcon(iconID: INTEGER): Handle; (*INLINE $A9BB*)
- BEGIN trapnr:= 0A9BBH; PTRAP; END GetIcon;
-
- (*$P-,$S-,$T-*)
- PROCEDURE PlotIcon(VAR theRect: Rect; theIcon: Handle); (*INLINE $A94B*)
- BEGIN trapnr:= 0A94BH; PTRAP; END PlotIcon;
-
- (*$P-,$S-,$T-*)
- PROCEDURE GetPattern(patID: INTEGER): PatHandle; (*INLINE $A9B8*)
- BEGIN trapnr:= 0A9B8H; PTRAP; END GetPattern;
-
- BEGIN QDGlobals:=MacBase.RootRecord.patch3;
- END QuickDraw.
-