ORCA-C/ORCACDefs/quickdraw.h

391 lines
21 KiB
C
Raw Normal View History

/********************************************
*
* QuickDraw II
*
* Copyright Apple Computer, Inc.1986-91
* All Rights Reserved
*
* Copyright 1992, 1993, Byte Works, Inc.
*
********************************************/
#ifndef __TYPES__
#include <TYPES.h>
#endif
#ifndef __QUICKDRAW__
#define __QUICKDRAW__
/* Error Codes */
#define alreadyInitialized 0x0401 /* Quickdraw already initialized */
#define cannotReset 0x0402 /* never used */
#define notInitialized 0x0403 /* Quickdraw not initialized */
#define screenReserved 0x0410 /* screen reserved */
#define badRect 0x0411 /* bad rectangle */
#define notEqualChunkiness 0x0420 /* Chunkiness is not equal */
#define rgnAlreadyOpen 0x0430 /* region is already open */
#define rgnNotOpen 0x0431 /* region is not open */
#define rgnScanOverflow 0x0432 /* region scan overflow */
#define rgnFull 0x0433 /* region is full */
#define polyAlreadyOpen 0x0440 /* poly is already open */
#define polyNotOpen 0x0441 /* poly is not open */
#define polyTooBig 0x0442 /* poly is too big */
#define badTableNum 0x0450 /* bad table number */
#define badColorNum 0x0451 /* bad color number */
#define badScanLine 0x0452 /* bad scan line */
#define notImplemented 0x04FF /* not implemented */
#define tsNumber 0x04
/* AnSCBByte Masks */
#define _colorTable 0x0F /* Mask for SCB color table */
#define scbReserved 0x10 /* Mask for SCB reserved bit */
#define scbFill 0x20 /* Mask for SCB fill bit */
#define scbInterrupt 0x40 /* Mask for SCB interrupt bit */
#define scbColorMode 0x80 /* Mask for SCB color mode bit */
/* ColorData */
#define table320 0x32 /* (val=size) */
#define table640 0x32 /* (val=size) */
/* ColorValue */
#define blueMask 0x000F /* Mask for Blue nibble */
#define greenMask 0x00F0 /* Mask for green nibble */
#define redMask 0x0F00 /* Mask for red nibble */
/* FontFlags */
#define widMaxSize 0x0001
#define zeroSize 0x0002
/* GrafPort Sizes */
#define maskSize 0x08 /* Mask Size (val=size) */
#define locSize 0x10 /* Loc Size (val=size) */
#define patsize 0x20 /* Pattern Size (val=size) */
#define pnStateSize 0x32 /* Pen State Size (Val=size) */
#define portSize 0xAA /* Size of GrafPort */
/* MasterColors */
#define black 0x000 /* These work in 320 and 640 mode */
#define blue 0x00F /* These work in 320 and 640 mode */
#define darkGreen320 0x080 /* These work in 320 mode */
#define green320 0x0E0 /* These work in 320 mode */
#define green640 0x0F0 /* These work in 640 mode */
#define lightBlue320 0x4DF /* These work in 320 mode */
#define purple320 0x72C /* These work in 320 mode */
#define darkGray320 0x777 /* These work in 320 mode */
#define periwinkleBlue320 0x78F /* These work in 320 mode */
#define brown320 0x841 /* These work in 320 mode */
#define lightGray320 0x0CCC /* These work in 320 mode */
#define red320 0x0D00 /* These work in 320 mode */
#define lilac320 0x0DAF /* These work in 320 mode */
#define red640 0x0F00 /* These work in 640 mode */
#define orange320 0x0F70 /* These work in 320 mode */
#define flesh320 0x0FA9 /* These work in 320 mode */
#define yellow 0x0FF0 /* These work in 320 and 640 mode */
#define white 0x0FFF /* These work in 320 and 640 mode */
/* PenMode Data */
#define modeCopy 0x0000
#define modeOR 0x0001
#define modeXOR 0x0002
#define modeBIC 0x0003
#define modeForeCopy 0x0004
#define modeForeOR 0x0005
#define modeForeXOR 0x0006
#define modeForeBIC 0x0007
#define modeNOT 0x8000
#define notCopy 0x8000
#define notOR 0x8001
#define notXOR 0x8002
#define notBIC 0x8003
#define notForeCOPY 0x8004
#define notForeOR 0x8005
#define notForeXOR 0x8006
#define notForeBIC 0x8007
/* QDStartup */
#define mode320 0x0000 /* Argument to QDStartup */
#define mode640 0x0080 /* Argument to QDStartup */
typedef Integer ColorValue;
typedef Byte AnSCBByte;
struct Cursor {
Word cursorHeight; /* size in bytes */
Word cursorWidth; /* enclosing rectangle */
Word cursorData[1];
Word cursorMask[1];
Point cursorHotSpot;
};
typedef struct Cursor Cursor, *CursorPtr, **CursorHndl;
struct BufDimRec {
Word maxWidth;
Word textBufHeight;
Word textBufferWords;
Word fontWidth;
};
typedef struct BufDimRec BufDimRec, *BufDimRecPtr, **BufDimRecHndl;
struct FontGlobalsRecord {
Word fgFontID; /* currently 12 bytes long, but may be expanded */
TextStyle fgStyle;
Word fgSize;
Word fgVersion;
Word fgWidMax;
Word fgFBRExtent;
};
typedef struct FontGlobalsRecord FontGlobalsRecord, *FontGlobalsRecPtr, **FontGlobalsRecHndl;
struct FontInfoRecord {
Word ascent;
Word descent;
Word widMax;
Word leading;
};
typedef struct FontInfoRecord FontInfoRecord, *FontInfoRecPtr, **FontInfoRecHndl;
struct PaintParam {
LocInfoPtr ptrToSourceLocInfo;
LocInfoPtr ptrToDestLocInfo;
Rect *ptrToSourceRect;
Point *ptrToDestPoint;
Word mode;
Handle maskHandle; /* clip region */
};
typedef struct PaintParam PaintParam, *PaintParamPtr, **PaintParamHndl;
struct PenState {
Point psPenLoc;
Point psPenSize;
Word psPenMode;
Pattern psPenPat;
Mask psPenMask;
};
typedef struct PenState PenState, *PenStatePtr, **PenStateHndl;
struct RomFontRec {
Word rfFamNum;
Word rfFamStyle;
Word rfSize;
FontHndl rfFontHandle;
Pointer rfNamePtr;
Word rfFBRExtent;
};
typedef struct RomFontRec RomFontRec, *RomFontRecPtr, **RomFontRecHndl;
extern pascal void QDBootInit(void) inline(0x0104,dispatcher);
extern pascal void QDStartUp(Word, Word, Word, Word) inline(0x0204,dispatcher);
extern pascal void QDShutDown(void) inline(0x0304,dispatcher);
extern pascal Word QDVersion(void) inline(0x0404,dispatcher);
extern pascal void QDReset(void) inline(0x0504,dispatcher);
extern pascal Boolean QDStatus(void) inline(0x0604,dispatcher);
extern pascal void AddPt(Point *, Point *) inline(0x8004,dispatcher);
extern pascal void CharBounds(Word, Rect *) inline(0xAC04,dispatcher);
extern pascal Word CharWidth(Word) inline(0xA804,dispatcher);
extern pascal void ClearScreen(Word) inline(0x1504,dispatcher);
extern pascal void ClipRect(Rect *) inline(0x2604,dispatcher);
extern pascal void ClosePoly(void) inline(0xC204,dispatcher);
extern pascal void ClosePort(GrafPortPtr) inline(0x1A04,dispatcher);
extern pascal void CloseRgn(RegionHndl) inline(0x6E04,dispatcher);
extern pascal void CopyRgn(RegionHndl, RegionHndl) inline(0x6904,dispatcher);
extern pascal void CStringBounds(Pointer, Rect *) inline(0xAE04,dispatcher);
extern pascal Word CStringWidth(Pointer) inline(0xAA04,dispatcher);
extern pascal void DiffRgn(RegionHndl, RegionHndl, RegionHndl) inline(0x7304,dispatcher);
extern pascal void DisposeRgn(RegionHndl) inline(0x6804,dispatcher);
extern pascal void DrawChar(Word) inline(0xA404,dispatcher);
extern pascal void DrawCString(Pointer) inline(0xA604,dispatcher);
extern pascal void DrawString(Pointer) inline(0xA504,dispatcher);
extern pascal void DrawText(Pointer, Word) inline(0xA704,dispatcher);
extern pascal Boolean EmptyRgn(RegionHndl) inline(0x7804,dispatcher);
extern pascal Boolean EqualPt(Point *, Point *) inline(0x8304,dispatcher);
extern pascal Boolean EqualRect(Rect *, Rect *) inline(0x5104,dispatcher);
extern pascal Boolean EqualRgn(RegionHndl, RegionHndl) inline(0x7704,dispatcher);
extern pascal void EraseArc(Rect *, Integer, Integer) inline(0x6404,dispatcher);
extern pascal void EraseOval(Rect *) inline(0x5A04,dispatcher);
extern pascal void ErasePoly(Handle) inline(0xBE04,dispatcher);
extern pascal void EraseRect(Rect *) inline(0x5504,dispatcher);
extern pascal void EraseRgn(RegionHndl) inline(0x7B04,dispatcher);
extern pascal void EraseRRect(Rect *, Word, Word) inline(0x5F04,dispatcher);
extern pascal void FillArc(Rect *, Integer, Integer, Pattern) inline(0x6604,dispatcher);
extern pascal void FillOval(Rect *, Pattern) inline(0x5C04,dispatcher);
extern pascal void FillPoly(Handle, Pattern) inline(0xC004,dispatcher);
extern pascal void FillRect(Rect *, Pattern) inline(0x5704,dispatcher);
extern pascal void FillRgn(RegionHndl, Pattern) inline(0x7D04,dispatcher);
extern pascal void FillRRect(Rect *, Word, Word, Pattern) inline(0x6104,dispatcher);
extern pascal void ForceBufDims(Word, Word, Word) inline(0xCC04,dispatcher);
extern pascal void FrameArc(Rect *, Integer, Integer) inline(0x6204,dispatcher);
extern pascal void FrameOval(Rect *) inline(0x5804,dispatcher);
extern pascal void FramePoly(Handle) inline(0xBC04,dispatcher);
extern pascal void FrameRect(Rect *) inline(0x5304,dispatcher);
extern pascal void FrameRgn(RegionHndl) inline(0x7904,dispatcher);
extern pascal void FrameRRect(Rect *, Word, Word) inline(0x5D04,dispatcher);
extern pascal Pointer GetAddress(Word) inline(0x0904,dispatcher);
extern pascal Word GetArcRot(void) inline(0xB104,dispatcher);
extern pascal Word GetBackColor(void) inline(0xA304,dispatcher);
extern pascal void GetBackPat(Pattern) inline(0x3504,dispatcher);
extern pascal Fixed GetCharExtra(void) inline(0xD504,dispatcher);
extern pascal void GetClip(RegionHndl) inline(0x2504,dispatcher);
extern pascal RegionHndl GetClipHandle(void) inline(0xC704,dispatcher);
extern pascal Word GetColorEntry(Word, Word) inline(0x1104,dispatcher);
extern pascal void GetColorTable(Word, ColorTable) inline(0x0F04,dispatcher);
extern pascal Pointer GetCursorAdr(void) inline(0x8F04,dispatcher);
extern pascal Word GetFGSize(void) inline(0xCF04,dispatcher);
extern pascal FontHndl GetFont(void) inline(0x9504,dispatcher);
extern pascal Word GetFontFlags(void) inline(0x9904,dispatcher);
extern pascal void GetFontGlobals(FontGlobalsRecPtr) inline(0x9704,dispatcher);
extern pascal Long GetFontID(void) inline(0xD104,dispatcher);
extern pascal void GetFontInfo(FontInfoRecPtr) inline(0x9604,dispatcher);
extern pascal Word GetFontLore(FontGlobalsRecPtr, Word) inline(0xD904,dispatcher);
extern pascal Word GetForeColor(void) inline(0xA104,dispatcher);
extern pascal QDProcsPtr GetGrafProcs(void) inline(0x4504,dispatcher);
extern pascal Word GetMasterSCB(void) inline(0x1704,dispatcher);
extern pascal void GetPen(Point *) inline(0x2904,dispatcher);
extern pascal void GetPenMask(Mask) inline(0x3304,dispatcher);
extern pascal Word GetPenMode(void) inline(0x2F04,dispatcher);
extern pascal void GetPenPat(Pattern) inline(0x3104,dispatcher);
extern pascal void GetPenSize(Point *) inline(0x2D04,dispatcher);
extern pascal void GetPenState(PenStatePtr) inline(0x2B04,dispatcher);
extern pascal Longint GetPicSave(void) inline(0x3F04,dispatcher);
extern pascal Word GetPixel(Integer, Integer) inline(0x8804,dispatcher);
extern pascal LongWord GetPolySave(void) inline(0x4304,dispatcher);
extern pascal GrafPortPtr GetPort(void) inline(0x1C04,dispatcher);
extern pascal void GetPortLoc(LocInfoPtr) inline(0x1E04,dispatcher);
extern pascal void GetPortRect(Rect *) inline(0x2004,dispatcher);
extern pascal LongWord GetRgnSave(void) inline(0x4104,dispatcher);
extern pascal void GetROMFont(RomFontRecPtr) inline(0xD804,dispatcher);
extern pascal void GetRomFont(RomFontRecPtr) inline(0xD804,dispatcher);
extern pascal Word GetSCB(Word) inline(0x1304,dispatcher);
extern pascal Fixed GetSpaceExtra(void) inline(0x9F04,dispatcher);
extern pascal Word GetStandardSCB(void) inline(0x0C04,dispatcher);
extern pascal Longint GetSysField(void) inline(0x4904,dispatcher);
extern pascal FontHndl GetSysFont(void) inline(0xB304,dispatcher);
extern pascal TextStyle GetTextFace(void) inline(0x9B04,dispatcher);
extern pascal Word GetTextMode(void) inline(0x9D04,dispatcher);
extern pascal Word GetTextSize(void) inline(0xD304,dispatcher);
extern pascal Longint GetUserField(void) inline(0x4704,dispatcher);
extern pascal RegionHndl GetVisHandle(void) inline(0xC904,dispatcher);
extern pascal void GetVisRgn(RegionHndl) inline(0xB504,dispatcher);
extern pascal void GlobalToLocal(Point *) inline(0x8504,dispatcher);
extern pascal void GrafOff(void) inline(0x0B04,dispatcher);
extern pascal void GrafOn(void) inline(0x0A04,dispatcher);
extern pascal void HideCursor(void) inline(0x9004,dispatcher);
extern pascal void HidePen(void) inline(0x2704,dispatcher);
extern pascal void InflateTextBuffer(Word, Word) inline(0xD704,dispatcher);
extern pascal void InitColorTable(ColorTable) inline(0x0D04,dispatcher);
extern pascal void InitCursor(void) inline(0xCA04,dispatcher);
extern pascal void InitPort(GrafPortPtr) inline(0x1904,dispatcher);
extern pascal void InsetRect(Rect *, Integer, Integer) inline(0x4C04,dispatcher);
extern pascal void InsetRgn(RegionHndl, Integer, Integer) inline(0x7004,dispatcher);
extern pascal void InvertArc(Rect *, Integer, Integer) inline(0x6504,dispatcher);
extern pascal void InvertOval(Rect *) inline(0x5B04,dispatcher);
extern pascal void InvertPoly(Handle) inline(0xBF04,dispatcher);
extern pascal void InvertRect(Rect *) inline(0x5604,dispatcher);
extern pascal void InvertRgn(RegionHndl) inline(0x7C04,dispatcher);
extern pascal void InvertRRect(Rect *, Word, Word) inline(0x6004,dispatcher);
extern pascal void KillPoly(Handle) inline(0xC304,dispatcher);
extern pascal void Line(Integer, Integer) inline(0x3D04,dispatcher);
extern pascal void LineTo(Integer, Integer) inline(0x3C04,dispatcher);
extern pascal void LocalToGlobal(Point *) inline(0x8404,dispatcher);
extern pascal void MapPoly(Handle, Rect *, Rect *) inline(0xC504,dispatcher);
extern pascal void MapPt(Point *, Rect *, Rect *) inline(0x8A04,dispatcher);
extern pascal void MapRect(Rect *, Rect *, Rect *) inline(0x8B04,dispatcher);
extern pascal void MapRgn(RegionHndl, Rect *, Rect *) inline(0x8C04,dispatcher);
extern pascal void Move(Integer, Integer) inline(0x3B04,dispatcher);
extern pascal void MovePortTo(Integer, Integer) inline(0x2204,dispatcher);
extern pascal void MoveTo(Integer, Integer) inline(0x3A04,dispatcher);
extern pascal RegionHndl NewRgn(void) inline(0x6704,dispatcher);
extern pascal Boolean NotEmptyRect(Rect *) inline(0x5204,dispatcher);
extern pascal void ObscureCursor(void) inline(0x9204,dispatcher);
extern pascal void OffsetPoly(Handle, Integer, Integer) inline(0xC404,dispatcher);
extern pascal void OffsetRect(Rect *, Integer, Integer) inline(0x4B04,dispatcher);
extern pascal void OffsetRgn(RegionHndl, Integer, Integer) inline(0x6F04,dispatcher);
extern pascal handle OpenPoly(void) inline(0xC104,dispatcher);
extern pascal void OpenPort(GrafPortPtr) inline(0x1804,dispatcher);
extern pascal void OpenRgn(void) inline(0x6D04,dispatcher);
extern pascal void PaintArc(Rect *, Integer, Integer) inline(0x6304,dispatcher);
extern pascal void PaintOval(Rect *) inline(0x5904,dispatcher);
extern pascal void PaintPixels(PaintParamPtr) inline(0x7F04,dispatcher);
extern pascal void PaintPoly(Handle) inline(0xBD04,dispatcher);
extern pascal void PaintRect(Rect *) inline(0x5404,dispatcher);
extern pascal void PaintRgn(RegionHndl) inline(0x7A04,dispatcher);
extern pascal void PaintRRect(Rect *, Word, Word) inline(0x5E04,dispatcher);
extern pascal void PenNormal(void) inline(0x3604,dispatcher);
extern pascal void PPToPort(LocInfoPtr, Rect *, Integer, Integer, Word) inline(0xD604,dispatcher);
extern pascal void Pt2Rect(Point *, Point *, Rect *) inline(0x5004,dispatcher);
extern pascal Boolean PtInRect(Point *, Rect *) inline(0x4F04,dispatcher);
extern pascal Boolean PtInRgn(Point *, RegionHndl) inline(0x7504,dispatcher);
extern pascal Word Random(void) inline(0x8604,dispatcher);
extern pascal Boolean RectInRgn(Rect *, RegionHndl) inline(0x7604,dispatcher);
extern pascal void RectRgn(RegionHndl, Rect *) inline(0x6C04,dispatcher);
extern pascal void RestoreBufDims(BufDimRecPtr) inline(0xCE04,dispatcher);
extern pascal void SaveBufDims(BufDimRecPtr) inline(0xCD04,dispatcher);
extern pascal void ScalePt(Point *, Rect *, Rect *) inline(0x8904,dispatcher);
extern pascal void ScrollRect(Rect *, Integer, Integer, RegionHndl) inline(0x7E04,dispatcher);
extern pascal Boolean SectRect(Rect *, Rect *, Rect *) inline(0x4D04,dispatcher);
extern pascal void SectRgn(RegionHndl, RegionHndl, RegionHndl) inline(0x7104,dispatcher);
extern pascal void SetAllSCBs(Word) inline(0x1404,dispatcher);
extern pascal void SetArcRot(Integer) inline(0xB004,dispatcher);
extern pascal void SetBackColor(Word) inline(0xA204,dispatcher);
extern pascal void SetBackPat(Pattern) inline(0x3404,dispatcher);
extern pascal void SetBufDims(Word, Word, Word) inline(0xCB04,dispatcher);
extern pascal void SetCharExtra(Fixed) inline(0xD404,dispatcher);
extern pascal void SetClip(RegionHndl) inline(0x2404,dispatcher);
extern pascal void SetClipHandle(RegionHndl) inline(0xC604,dispatcher);
extern pascal void SetColorEntry(Word, Word, ColorValue) inline(0x1004,dispatcher);
extern pascal void SetColorTable(Word, ColorTable) inline(0x0E04,dispatcher);
extern pascal void SetCursor(Pointer) inline(0x8E04,dispatcher);
extern pascal void SetEmptyRgn(RegionHndl) inline(0x6A04,dispatcher);
extern pascal void SetFont(FontHndl) inline(0x9404,dispatcher);
extern pascal void SetFontFlags(Word) inline(0x9804,dispatcher);
extern pascal void SetFontID(FontID) inline(0xD004,dispatcher);
extern pascal void SetForeColor(Word) inline(0xA004,dispatcher);
extern pascal void SetGrafProcs(QDProcsPtr) inline(0x4404,dispatcher);
extern pascal void SetIntUse(Word) inline(0xB604,dispatcher);
extern pascal void SetMasterSCB(Word) inline(0x1604,dispatcher);
extern pascal void SetOrigin(Integer, Integer) inline(0x2304,dispatcher);
extern pascal void SetPenMask(Mask) inline(0x3204,dispatcher);
extern pascal void SetPenMode(Word) inline(0x2E04,dispatcher);
extern pascal void SetPenPat(Pattern) inline(0x3004,dispatcher);
extern pascal void SetPenSize(Word, Word) inline(0x2C04,dispatcher);
extern pascal void SetPenState(PenStatePtr) inline(0x2A04,dispatcher);
extern pascal void SetPicSave(Longint) inline(0x3E04,dispatcher);
extern pascal void SetPolySave(Longint) inline(0x4204,dispatcher);
extern pascal void SetPort(GrafPortPtr) inline(0x1B04,dispatcher);
extern pascal void SetPortLoc(LocInfoPtr) inline(0x1D04,dispatcher);
extern pascal void SetPortRect(Rect *) inline(0x1F04,dispatcher);
extern pascal void SetPortSize(Word, Word) inline(0x2104,dispatcher);
extern pascal void SetPt(Point *, Integer, Integer) inline(0x8204,dispatcher);
extern pascal void SetRandSeed(Longint) inline(0x8704,dispatcher);
extern pascal void SetRect(Rect *, Integer, Integer, Integer, Integer) inline(0x4A04,dispatcher);
extern pascal void SetRectRgn(RegionHndl, Integer, Integer, Integer, Integer) inline(0x6B04,dispatcher);
extern pascal void SetRgnSave(Handle) inline(0x4004,dispatcher);
extern pascal void SetSCB(Word, Word) inline(0x1204,dispatcher);
extern pascal void SetSolidBackPat(Word) inline(0x3804,dispatcher);
extern pascal void SetSolidPenPat(Word) inline(0x3704,dispatcher);
extern pascal void SetSpaceExtra(Fixed) inline(0x9E04,dispatcher);
extern pascal void SetStdProcs(QDProcsPtr) inline(0x8D04,dispatcher);
extern pascal void SetSysField(Longint) inline(0x4804,dispatcher);
extern pascal void SetSysFont(FontHndl) inline(0xB204,dispatcher);
extern pascal void SetTextFace(TextStyle) inline(0x9A04,dispatcher);
extern pascal void SetTextMode(Word) inline(0x9C04,dispatcher);
extern pascal void SetTextSize(Word) inline(0xD204,dispatcher);
extern pascal void SetUserField(Longint) inline(0x4604,dispatcher);
extern pascal void SetVisHandle(RegionHndl) inline(0xC804,dispatcher);
extern pascal void SetVisRgn(RegionHndl) inline(0xB404,dispatcher);
extern pascal void ShowCursor(void) inline(0x9104,dispatcher);
extern pascal void ShowPen(void) inline(0x2804,dispatcher);
extern pascal void SolidPattern(Word, Pattern) inline(0x3904,dispatcher);
extern pascal void StringBounds(Pointer, Rect *) inline(0xAD04,dispatcher);
extern pascal Word StringWidth(Pointer) inline(0xA904,dispatcher);
extern pascal void SubPt(Point *, Point *) inline(0x8104,dispatcher);
extern pascal void TextBounds(Pointer, Word, Rect *) inline(0xAF04,dispatcher);
extern pascal Word TextWidth(Pointer, Word) inline(0xAB04,dispatcher);
extern pascal void UnionRect(Rect *, Rect *, Rect *) inline(0x4E04,dispatcher);
extern pascal void UnionRgn(RegionHndl, RegionHndl, RegionHndl) inline(0x7204,dispatcher);
extern pascal void XorRgn(RegionHndl, RegionHndl, RegionHndl) inline(0x7404,dispatcher);
extern pascal PatternPtr Get640Colors(void) inline(0xDA04,dispatcher);
extern pascal void Set640Color(Word) inline(0xDB04,dispatcher);
#endif