#if !defined (_QUICKDRAW_H_) #define _QUICKDRAW_H_ /* * Copyright 1986 - 2000 by Abacus Research and Development, Inc. * All rights reserved. * * $Id: QuickDraw.h 63 2004-12-24 18:19:43Z ctm $ */ enum { grafSize = 206 }; /* number of bytes InitGraf needs */ #define srcCopy 0 #define srcOr 1 #define srcXor 2 #define srcBic 3 #define notSrcCopy 4 #define notSrcOr 5 #define notSrcXor 6 #define notSrcBic 7 #define patCopy 8 #define patOr 9 #define patXor 10 #define patBic 11 #define notPatCopy 12 #define notPatOr 13 #define notPatXor 14 #define notPatBic 15 #define grayishTextOr 49 #define hilite 50 #define blackColor 33 #define whiteColor 30 #define redColor 205 #define greenColor 341 #define blueColor 409 #define cyanColor 273 #define magentaColor 137 #define yellowColor 69 #define picLParen 0 #define picRParen 1 typedef enum { bold=1, italic=2, underline=4, outline=8, shadow=16, condense=32, extend=64 } StyleItem; #if 0 /* * The enum doesn't suffice since some compilers will complain if you * try do bitwise arithmetic with the members of an enum * * Unfortunately, we can't do the #defines below because there are structures * that have fields named "bold". */ #define bold 1 #define italic 2 #define underline 4 #define outline 8 #define shadow 16 #define condense 32 #define extend 64 #endif /* 0 */ typedef SignedByte Style; typedef struct { INTEGER rgnSize PACKED; Rect rgnBBox LPACKED; } Region; typedef Region *RgnPtr; typedef struct { RgnPtr p PACKED_P; } HIDDEN_RgnPtr; typedef HIDDEN_RgnPtr *RgnHandle; typedef struct { RgnHandle p PACKED_P; } HIDDEN_RgnHandle; typedef struct { Ptr baseAddr PACKED_P; INTEGER rowBytes PACKED; Rect bounds LPACKED; } BitMap; typedef Byte Pattern[8]; typedef INTEGER Bits16[16]; typedef struct { Bits16 data PACKED; Bits16 mask PACKED; Point hotSpot LPACKED; } Cursor; typedef Cursor *CursPtr; typedef struct { CursPtr p PACKED_P; } HIDDEN_CursPtr; typedef HIDDEN_CursPtr *CursHandle; typedef SignedByte GrafVerb; #define frame 0 #define paint 1 #define erase 2 #define invert 3 #define fill 4 typedef struct { INTEGER polySize PACKED; Rect polyBBox LPACKED; Point polyPoints[1] LPACKED; } Polygon; typedef Polygon *PolyPtr; typedef struct { PolyPtr p PACKED_P; } HIDDEN_PolyPtr; typedef HIDDEN_PolyPtr *PolyHandle; typedef struct { INTEGER ascent PACKED; INTEGER descent PACKED; INTEGER widMax PACKED; INTEGER leading PACKED; } FontInfo; typedef struct { pascal trap void (*textProc)(INTEGER bc, Ptr textb, Point num, Point den) PACKED_P; pascal trap void (*lineProc)(Point drawto) PACKED_P; pascal trap void (*rectProc)(GrafVerb verb, Rect *rp) PACKED_P; pascal trap void (*rRectProc)(GrafVerb verb, Rect *rp, INTEGER ow, INTEGER oh) PACKED_P; pascal trap void (*ovalProc)(GrafVerb verb, Rect *rp) PACKED_P; pascal trap void (*arcProc)(GrafVerb verb, Rect *rp, INTEGER ang, INTEGER arc) PACKED_P; pascal trap void (*polyProc)(GrafVerb verb, PolyHandle poly) PACKED_P; pascal trap void (*rgnProc)(GrafVerb verb, RgnHandle rgn) PACKED_P; pascal trap void (*bitsProc)(BitMap *srcb, Rect *srcr, Rect *dstr, INTEGER mod, RgnHandle mask) PACKED_P; pascal trap void (*commentProc)(INTEGER kind, INTEGER size, Handle data) PACKED_P; pascal trap INTEGER (*txMeasProc)(INTEGER bc, Ptr texta, Point *numer, Point *denom, FontInfo *info) PACKED_P; pascal trap void (*getPicProc)(Ptr data, INTEGER bc) PACKED_P; pascal trap void (*putPicProc)(Ptr data, INTEGER bc) PACKED_P; } QDProcs; typedef QDProcs *QDProcsPtr; typedef struct { INTEGER device PACKED; BitMap portBits LPACKED; Rect portRect LPACKED; RgnHandle visRgn PACKED_P; RgnHandle clipRgn PACKED_P; Pattern bkPat LPACKED; Pattern fillPat LPACKED; Point pnLoc LPACKED; Point pnSize LPACKED; INTEGER pnMode PACKED; Pattern pnPat LPACKED; INTEGER pnVis PACKED; INTEGER txFont PACKED; Style txFace LPACKED; Byte filler LPACKED; INTEGER txMode PACKED; INTEGER txSize PACKED; Fixed spExtra PACKED; LONGINT fgColor PACKED; LONGINT bkColor PACKED; INTEGER colrBit PACKED; INTEGER patStretch PACKED; Handle picSave PACKED_P; Handle rgnSave PACKED_P; Handle polySave PACKED_P; QDProcsPtr grafProcs PACKED_P; } GrafPort; typedef GrafPort *GrafPtr; typedef struct { GrafPtr p PACKED_P; } HIDDEN_GrafPtr; typedef struct { INTEGER picSize PACKED; Rect picFrame LPACKED; } Picture; typedef Picture *PicPtr; typedef struct { PicPtr p PACKED_P; } HIDDEN_PicPtr; typedef HIDDEN_PicPtr *PicHandle; typedef struct { Point pnLoc LPACKED; Point pnSize LPACKED; INTEGER pnMode PACKED; Pattern pnPat LPACKED; } PenState; /* IMV stuff is used when we parse Version 2 pictures, but the IMV calls are not supported in V1.0 */ typedef enum { blend=32, addPin, addOver, subPin, transparent, adMax, subOver, adMin, mask=64 } colormodes; #define pHiliteBit 0 #define defQDColors 127 typedef struct { unsigned short red PACKED; unsigned short green PACKED; unsigned short blue PACKED; } RGBColor; typedef struct { SmallFract hue PACKED; SmallFract saturation PACKED; SmallFract value PACKED; } HSVColor; typedef struct { SmallFract hue PACKED; SmallFract saturation PACKED; SmallFract lightness PACKED; } HSLColor; typedef struct { SmallFract cyan PACKED; SmallFract magenta PACKED; SmallFract yellow PACKED; } CMYColor; typedef struct ColorSpec { INTEGER value PACKED; RGBColor rgb LPACKED; } ColorSpec; typedef ColorSpec cSpecArray[1]; /* can't use 0 */ typedef struct { LONGINT ctSeed PACKED; unsigned short ctFlags PACKED; INTEGER ctSize PACKED; cSpecArray ctTable LPACKED; } ColorTable, *CTabPtr; typedef struct { CTabPtr p PACKED_P; } HIDDEN_CTabPtr; typedef HIDDEN_CTabPtr *CTabHandle; typedef struct { CTabHandle p PACKED_P; } HIDDEN_CTabHandle; typedef struct { Ptr textProc PACKED_P; Ptr lineProc PACKED_P; Ptr rectProc PACKED_P; Ptr rRectProc PACKED_P; Ptr ovalProc PACKED_P; Ptr arcProc PACKED_P; Ptr polyProc PACKED_P; Ptr rgnProc PACKED_P; Ptr bitsProc PACKED_P; Ptr commentProc PACKED_P; Ptr txMeasProc PACKED_P; Ptr getPicProc PACKED_P; Ptr putPicProc PACKED_P; Ptr opcodeProc PACKED_P; Ptr newProc1Proc PACKED_P; Ptr newProc2Proc PACKED_P; Ptr newProc3Proc PACKED_P; Ptr newProc4Proc PACKED_P; Ptr newProc5Proc PACKED_P; Ptr newProc6Proc PACKED_P; } CQDProcs, *CQDProcsPtr; typedef struct { Ptr baseAddr PACKED_P; INTEGER rowBytes PACKED; Rect bounds LPACKED; INTEGER pmVersion PACKED; INTEGER packType PACKED; LONGINT packSize PACKED; Fixed hRes PACKED; Fixed vRes PACKED; INTEGER pixelType PACKED; INTEGER pixelSize PACKED; INTEGER cmpCount PACKED; INTEGER cmpSize PACKED; LONGINT planeBytes PACKED; CTabHandle pmTable PACKED_P; LONGINT pmReserved PACKED; } PixMap, *PixMapPtr; typedef struct { PixMapPtr p PACKED_P; } HIDDEN_PixMapPtr; typedef HIDDEN_PixMapPtr *PixMapHandle; typedef struct { PixMapHandle p PACKED_P; } HIDDEN_PixMapHandle; enum pixmap_pixel_types { chunky_pixel_type, chunky_planar_pixel_type, planar_pixel_type, }; #define ROWMASK 0x1FFF typedef struct { INTEGER patType PACKED; PixMapHandle patMap PACKED_P; Handle patData PACKED_P; Handle patXData PACKED_P; INTEGER patXValid PACKED; Handle patXMap PACKED_P; Pattern pat1Data LPACKED; } PixPat, *PixPatPtr; typedef struct { PixPatPtr p PACKED_P; } HIDDEN_PixPatPtr; typedef HIDDEN_PixPatPtr *PixPatHandle; typedef struct { PixPatHandle p PACKED_P; } HIDDEN_PixPatHandle; typedef struct { INTEGER device PACKED; PixMapHandle portPixMap PACKED_P; INTEGER portVersion PACKED; Handle grafVars PACKED_P; INTEGER chExtra PACKED; INTEGER pnLocHFrac PACKED; Rect portRect LPACKED; RgnHandle visRgn PACKED_P; RgnHandle clipRgn PACKED_P; PixPatHandle bkPixPat PACKED_P; RGBColor rgbFgColor LPACKED; RGBColor rgbBkColor LPACKED; Point pnLoc LPACKED; Point pnSize LPACKED; INTEGER pnMode PACKED; PixPatHandle pnPixPat PACKED_P; PixPatHandle fillPixPat PACKED_P; INTEGER pnVis PACKED; INTEGER txFont PACKED; Style txFace LPACKED; Byte filler LPACKED; INTEGER txMode PACKED; INTEGER txSize PACKED; Fixed spExtra PACKED; LONGINT fgColor PACKED; LONGINT bkColor PACKED; INTEGER colrBit PACKED; INTEGER patStretch PACKED; Handle picSave PACKED_P; Handle rgnSave PACKED_P; Handle polySave PACKED_P; CQDProcsPtr grafProcs PACKED_P; } CGrafPort, *CGrafPtr; typedef struct { CGrafPtr p PACKED_P; } HIDDEN_CGrafPtr; typedef struct { INTEGER crsrType PACKED; PixMapHandle crsrMap PACKED_P; Handle crsrData PACKED_P; Handle crsrXData PACKED_P; INTEGER crsrXValid PACKED; Handle crsrXHandle PACKED_P; Bits16 crsr1Data PACKED; Bits16 crsrMask PACKED; Point crsrHotSpot LPACKED; LONGINT crsrXTable PACKED; LONGINT crsrID PACKED; } CCrsr, *CCrsrPtr; typedef struct { CCrsrPtr p PACKED_P; } HIDDEN_CCrsrPtr; typedef HIDDEN_CCrsrPtr *CCrsrHandle; typedef struct { uint16 red PACKED; uint16 green PACKED; uint16 blue PACKED; int32 matchData PACKED; } MatchRec; typedef struct { HIDDEN_GrafPtr *p PACKED_P; } HIDDEN_GrafPtr_Ptr; typedef struct { Byte *p PACKED_P; } HIDDEN_BytePtr; #define thePort (STARH(STARH((HIDDEN_GrafPtr_Ptr *) (long) SYN68K_TO_US(a5)))) #define thePortX ((*STARH((HIDDEN_GrafPtr_Ptr *) (long) SYN68K_TO_US(a5))).p) #define white (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5)) -8) #define black (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5)) -16) #define gray (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5)) -24) #define ltGray (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5)) -32) #define dkGray (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5)) -40) #define arrowX (* (Cursor *) (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5))-108)) #define screenBitsX (* (BitMap *) (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5))-122)) #define randSeed CL(* (LONGINT *) (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5))-126)) #define randSeedX ((* (LONGINT *) (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5))-126))) #if !defined (RndSeed_L) extern HIDDEN_LONGINT RndSeed_L; extern Byte HiliteMode; /* not really supported in ROMlib-V1.0 */ extern RGBColor HiliteRGB; /* not really supported in ROMlib-V1.0 */ extern HIDDEN_ProcPtr JInitCrsr_H; extern HIDDEN_ProcPtr JHideCursor_H; extern HIDDEN_ProcPtr JShowCursor_H; extern HIDDEN_ProcPtr JShieldCursor_H; extern HIDDEN_ProcPtr JSetCrsr_H; extern HIDDEN_ProcPtr JCrsrObscure_H; extern HIDDEN_ProcPtr JUnknown574_H; extern HIDDEN_Ptr ScrnBase_H; extern HIDDEN_ProcPtr JCrsrTask_H; extern HIDDEN_Ptr Key1Trans_H; extern HIDDEN_Ptr Key2Trans_H; extern INTEGER ScrVRes; extern INTEGER ScrHRes; extern INTEGER ScreenRow; extern Point MouseLocation; extern Point MouseLocation2; extern BOOLEAN CrsrVis; extern Byte CrsrBusy; extern INTEGER CrsrState; extern LONGINT mousemask; extern LONGINT mouseoffset; extern Byte HiliteMode; #endif #define RndSeed (RndSeed_L.l) #define JInitCrsr (JInitCrsr_H.p) #define JHideCursor (JHideCursor_H.p) #define JShowCursor (JShowCursor_H.p) #define JShieldCursor (JShieldCursor_H.p) #define JSetCrsr (JSetCrsr_H.p) #define JCrsrObscure (JCrsrObscure_H.p) #define JUnknown574 (JUnknown574_H.p) #define JCrsrTask (JCrsrTask_H.p) #define ScrnBase (ScrnBase_H.p) #define Key1Trans (Key1Trans_H.p) #define Key2Trans (Key2Trans_H.p) extern trap void C_CopyBits (BitMap *src_bitmap, BitMap *dst_bitmap, const Rect *src_rect, const Rect *dst_rect, INTEGER mode, RgnHandle mask); extern trap void C_ScrollRect( Rect *rp, INTEGER dh, INTEGER dv, RgnHandle updatergn ); extern pascal trap void C_ForeColor( LONGINT c ); extern pascal trap void C_BackColor( LONGINT c ); extern pascal trap void C_ColorBit( INTEGER b ); extern pascal trap void C_SetCursor( Cursor *cp ); extern pascal trap void C_InitCursor( void ); extern pascal trap void C_HideCursor( void ); extern pascal trap void C_ShowCursor( void ); extern pascal trap void C_ObscureCursor( void ); extern pascal trap void C_ShieldCursor( Rect *rp, Point p ); extern pascal trap void C_InitGraf( Ptr gp ); extern pascal trap void C_SetPort( GrafPtr p ); extern pascal trap void C_InitPort( GrafPtr p ); extern pascal trap void C_OpenPort( GrafPtr p ); extern pascal trap void C_ClosePort( GrafPtr p ); extern pascal trap void C_GetPort( HIDDEN_GrafPtr *pp ); extern pascal trap void C_GrafDevice( INTEGER d ); extern pascal trap void C_SetPortBits( BitMap *bm ); extern pascal trap void C_PortSize( INTEGER w, INTEGER h ); extern pascal trap void C_MovePortTo( INTEGER lg, INTEGER tg ); extern pascal trap void C_SetOrigin( INTEGER h, INTEGER v ); extern pascal trap void C_SetClip( RgnHandle r ); extern pascal trap void C_GetClip( RgnHandle r ); extern pascal trap void C_ClipRect( Rect *r ); extern pascal trap void C_BackPat( Pattern pp ); extern pascal trap void C_SeedFill( Ptr srcp, Ptr dstp, INTEGER srcr, INTEGER dstr, INTEGER height, INTEGER width, INTEGER seedh, INTEGER seedv ); extern pascal trap void C_CalcMask( Ptr srcp, Ptr dstp, INTEGER srcr, INTEGER dstr, INTEGER height, INTEGER width ); extern pascal trap void C_CopyMask( BitMap *srcbp, BitMap *mskbp, BitMap *dstbp, Rect *srcrp, Rect * mskrp, Rect *dstrp ); extern a0trap INTEGER *GetMaskTable( void ); extern pascal trap void C_OpColor( RGBColor *colorp ); extern pascal trap void C_RGBBackColor( RGBColor *colorp ); extern pascal trap void C_PenPixPat( PixPatHandle ph ); extern pascal trap void C_HiliteColor( RGBColor *colorp ); extern pascal trap void C_CharExtra( Fixed Extra ); extern pascal trap void C_BackPixPat( PixPatHandle ph ); extern pascal trap void C_RGBForeColor( RGBColor *colorp ); extern pascal trap void C_MakeRGBPat( PixPatHandle ph, RGBColor *colorp ); extern pascal trap void C_DisposPixPat( PixPatHandle pph ); extern pascal trap INTEGER C_Random( void ); extern pascal trap BOOLEAN C_GetPixel( INTEGER h, INTEGER v ); extern pascal trap void C_StuffHex( register Ptr p, StringPtr s ); extern pascal trap void C_ScalePt( Point *pt, Rect *srcr, Rect *dstr ); extern pascal trap void C_MapPt( Point *pt, Rect *srcr, Rect *dstr ); extern pascal trap void C_MapRect( Rect *r, Rect *srcr, Rect *dstr ); extern pascal trap void C_MapRgn( RgnHandle rh, Rect *srcr, Rect *dstr ); extern pascal trap void C_MapPoly( PolyHandle poly, Rect *srcr, Rect *dstr ); extern pascal trap void C_HidePen( void ); extern pascal trap void C_ShowPen( void ); extern pascal trap void C_GetPen( Point *ptp ); extern pascal trap void C_GetPenState( PenState *ps ); extern pascal trap void C_SetPenState( PenState *ps ); extern pascal trap void C_PenSize( INTEGER w, INTEGER h ); extern pascal trap void C_PenMode( INTEGER m ); extern pascal trap void C_PenPat( Pattern pp ); extern pascal trap void C_PenNormal( void ); extern pascal trap void C_MoveTo( INTEGER h, INTEGER v ); extern pascal trap void C_Move( INTEGER dh, INTEGER dv ); extern pascal trap void C_LineTo( INTEGER h, INTEGER v ); extern pascal trap void C_Line( INTEGER dh, INTEGER dv ); extern pascal trap void C_DrawPicture( PicHandle pic, Rect *destrp ); extern pascal trap PicHandle C_OpenPicture( Rect *pf ); extern pascal trap void C_ClosePicture( void ); extern pascal trap void C_PicComment( INTEGER kind, INTEGER size, Handle hand ); extern pascal trap void C_ReadComment( INTEGER kind, INTEGER size, Handle hand ); extern pascal trap void C_KillPicture( PicHandle pic ); extern pascal trap void C_AddPt( Point src, Point *dst ); extern pascal trap void C_SubPt( Point src, Point *dst ); extern pascal trap void C_SetPt( Point *pt, INTEGER h, INTEGER v ); extern pascal trap BOOLEAN C_EqualPt( Point p1, Point p2 ); extern pascal trap void C_LocalToGlobal( Point *pt ); extern pascal trap void C_GlobalToLocal( Point *pt ); extern pascal trap PolyHandle C_OpenPoly( void ); extern pascal trap void C_ClosePoly( void ); extern pascal trap void C_KillPoly( PolyHandle poly ); extern pascal trap void C_OffsetPoly( PolyHandle poly, INTEGER dh, INTEGER dv ); extern pascal trap void C_SetRect( Rect *r, INTEGER left, INTEGER top, INTEGER right, INTEGER bottom ); extern pascal trap void C_OffsetRect( Rect *r, INTEGER dh, INTEGER dv ); extern pascal trap void C_InsetRect( Rect *r, INTEGER dh, INTEGER dv ); extern pascal trap BOOLEAN C_EmptyRect( Rect *r ); extern pascal trap BOOLEAN C_SectRect (const Rect *s1, const Rect *s2, Rect *dest); extern pascal trap void C_UnionRect( Rect *s1, Rect *s2, Rect *dest ); extern pascal trap BOOLEAN C_PtInRect( Point p, Rect *r ); extern pascal trap void C_Pt2Rect( Point p1, Point p2, Rect *dest ); extern pascal trap void C_PtToAngle( Rect *rp, Point p, INTEGER *angle ); extern pascal trap BOOLEAN C_EqualRect( const Rect *r1, const Rect *r2 ); extern pascal trap RgnHandle C_NewRgn( void ); extern pascal trap void C_OpenRgn( void ); extern pascal trap void C_CopyRgn( RgnHandle s, RgnHandle d ); extern pascal trap void C_CloseRgn( RgnHandle rh ); extern pascal trap void C_DisposeRgn( RgnHandle rh ); extern pascal trap void C_SetEmptyRgn( RgnHandle rh ); extern pascal trap void C_SetRectRgn( RgnHandle rh, INTEGER left, INTEGER top, INTEGER right, INTEGER bottom ); extern pascal trap void C_RectRgn( RgnHandle rh, Rect *rect ); extern pascal trap void C_OffsetRgn( RgnHandle rh, INTEGER dh, INTEGER dv ); extern pascal trap BOOLEAN C_PtInRgn( Point p, RgnHandle rh ); extern pascal trap void C_InsetRgn( RgnHandle rh, INTEGER dh, INTEGER dv ); extern pascal trap void C_SectRgn( RgnHandle s1, RgnHandle s2, RgnHandle dest ); extern pascal trap void C_UnionRgn( RgnHandle s1, RgnHandle s2, RgnHandle dest ); extern pascal trap void C_DiffRgn( RgnHandle s1, RgnHandle s2, RgnHandle dest ); extern pascal trap void C_XorRgn( RgnHandle s1, RgnHandle s2, RgnHandle dest ); extern pascal trap BOOLEAN C_RectInRgn( Rect *rp, RgnHandle rh ); extern pascal trap BOOLEAN C_EqualRgn( RgnHandle r1, RgnHandle r2 ); extern pascal trap BOOLEAN C_EmptyRgn( RgnHandle rh ); extern void ROMlib_printrgn( RgnHandle h ); extern void ROMlib_printpairs( INTEGER *p, LONGINT n ); extern pascal trap void C_FrameRect( Rect *r ); extern pascal trap void C_PaintRect( Rect *r ); extern pascal trap void C_EraseRect( Rect *r ); extern pascal trap void C_InvertRect( Rect *r ); extern pascal trap void C_FillRect( Rect *r, Pattern pat ); extern pascal trap void C_FrameOval( Rect *r ); extern pascal trap void C_PaintOval( Rect *r ); extern pascal trap void C_EraseOval( Rect *r ); extern pascal trap void C_InvertOval( Rect *r ); extern pascal trap void C_FillOval( Rect *r, Pattern pat ); extern pascal trap void C_FrameRoundRect( Rect *r, INTEGER ow, INTEGER oh ); extern pascal trap void C_PaintRoundRect( Rect *r, INTEGER ow, INTEGER oh ); extern pascal trap void C_EraseRoundRect( Rect *r, INTEGER ow, INTEGER oh ); extern pascal trap void C_InvertRoundRect( Rect *r, INTEGER ow, INTEGER oh ); extern pascal trap void C_FillRoundRect( Rect *r, INTEGER ow, INTEGER oh, Pattern pat ); extern pascal trap void C_FrameArc( Rect *r, INTEGER start, INTEGER angle ); extern pascal trap void C_PaintArc( Rect *r, INTEGER start, INTEGER angle ); extern pascal trap void C_EraseArc( Rect *r, INTEGER start, INTEGER angle ); extern pascal trap void C_InvertArc( Rect *r, INTEGER start, INTEGER angle ); extern pascal trap void C_FillArc( Rect *r, INTEGER start, INTEGER angle, Pattern pat ); extern pascal trap void C_FrameRgn( RgnHandle rh ); extern pascal trap void C_PaintRgn( RgnHandle rh ); extern pascal trap void C_EraseRgn( RgnHandle rh ); extern pascal trap void C_InvertRgn( RgnHandle rh ); extern pascal trap void C_FillRgn( RgnHandle rh, Pattern pat ); extern pascal trap void C_FramePoly( PolyHandle poly ); extern pascal trap void C_PaintPoly( PolyHandle poly ); extern pascal trap void C_ErasePoly( PolyHandle poly ); extern pascal trap void C_InvertPoly( PolyHandle poly ); extern pascal trap void C_FillPoly( PolyHandle poly, Pattern pat ); extern pascal trap void C_SetStdProcs( QDProcs *procs ); extern pascal trap void C_StdArc( GrafVerb verb, Rect *r, INTEGER starta, INTEGER arca ); extern pascal trap void C_StdBits (BitMap *srcbmp, const Rect *srcrp, const Rect *dstrp, INTEGER mode, RgnHandle mask); extern void StdBitsPicSaveFlag (BitMap *srcbmp, const Rect *srcrp, const Rect *dstrp, INTEGER mode, RgnHandle mask, BOOLEAN savepic); extern void ROMlib_printsegs( INTEGER *ip ); extern pascal trap void C_StdLine( Point p ); extern pascal trap void C_StdOval( GrafVerb v, Rect *rp ); extern pascal trap void C_StdComment( INTEGER kind, INTEGER size, Handle hand ); extern pascal trap void C_StdGetPic( Ptr dp, INTEGER bc ); extern pascal trap void C_StdPutPic( Ptr sp, INTEGER bc ); extern pascal trap void C_StdPoly( GrafVerb verb, PolyHandle ph ); extern pascal trap void C_StdRRect( GrafVerb verb, Rect *r, INTEGER width, INTEGER height ); extern pascal trap void C_StdRect( GrafVerb v, Rect *rp ); extern pascal trap void C_StdRgn( GrafVerb verb, RgnHandle rgn ); extern pascal trap void C_StdText( INTEGER n, Ptr textbufp, Point num, Point den ); extern pascal trap INTEGER C_StdTxMeas( INTEGER n, Ptr p, Point *nump, Point *denp, FontInfo *finfop ); extern INTEGER ROMlib_StdTxMeas( LONGINT n, Ptr p, Point *nump, Point *denp, FontInfo *finfop ); extern pascal trap void C_MeasureText( INTEGER n, Ptr text, Ptr chars ); extern pascal trap void C_TextFont( INTEGER f ); extern pascal trap void C_TextFace( INTEGER thef ); extern pascal trap void C_TextMode( INTEGER m ); extern pascal trap void C_TextSize( INTEGER s ); extern pascal trap void C_SpaceExtra( Fixed e ); extern pascal trap void C_DrawChar( CHAR thec ); extern pascal trap void C_DrawString( StringPtr s ); extern pascal trap void C_DrawText( Ptr tb, INTEGER fb, INTEGER bc ); extern pascal trap INTEGER C_CharWidth( CHAR thec ); extern pascal trap INTEGER C_StringWidth( StringPtr s ); extern pascal trap INTEGER C_TextWidth( Ptr tb, INTEGER fb, INTEGER bc ); extern pascal trap void C_GetFontInfo( FontInfo *ip ); extern pascal trap void C_GetCPixel( INTEGER h, INTEGER v, RGBColor *colorp ); extern pascal trap void C_SetCPixel( INTEGER h, INTEGER v, RGBColor *colorp); extern pascal trap void C_SeedCFill( BitMap *srcbp, BitMap *dstbp, Rect *srcrp, Rect *dstrp, INTEGER seedh, INTEGER seedv, ProcPtr matchprocp, LONGINT matchdata); extern pascal trap void C_CalcCMask( BitMap *srcbp, BitMap *dstbp, Rect *srcrp, Rect *dstrp, RGBColor *seedrgbp, ProcPtr matchprocp, LONGINT matchdata); extern pascal trap void C_IMVI_CopyDeepMask ( BitMap *srcBits, BitMap *maskBits, BitMap *dstBits, Rect *srcRect, Rect *maskRect, Rect *dstRect, INTEGER mode, RgnHandle maskRgn); #endif /* _QUICKDRAW_H_ */