diff options
Diffstat (limited to 'Mac')
-rw-r--r-- | Mac/Modules/qd/Qdmodule.c | 302 | ||||
-rw-r--r-- | Mac/Modules/qd/qdgen.py | 67 | ||||
-rw-r--r-- | Mac/Modules/qd/qdscan.py | 8 | ||||
-rw-r--r-- | Mac/Modules/qd/qdsupport.py | 24 |
4 files changed, 395 insertions, 6 deletions
diff --git a/Mac/Modules/qd/Qdmodule.c b/Mac/Modules/qd/Qdmodule.c index a9f1865..14d5a4d 100644 --- a/Mac/Modules/qd/Qdmodule.c +++ b/Mac/Modules/qd/Qdmodule.c @@ -415,6 +415,28 @@ static PyObject *Qd_ClipRect(_self, _args) return _res; } +static PyObject *Qd_BackPat(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + Pattern *pat__in__; + int pat__in_len__; + if (!PyArg_ParseTuple(_args, "s#", + (char **)&pat__in__, &pat__in_len__)) + return NULL; + if (pat__in_len__ != sizeof(Pattern)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)"); + goto pat__error__; + } + BackPat(pat__in__); + Py_INCREF(Py_None); + _res = Py_None; + pat__error__: ; + return _res; +} + static PyObject *Qd_InitCursor(_self, _args) PyObject *_self; PyObject *_args; @@ -530,6 +552,43 @@ static PyObject *Qd_GetPen(_self, _args) return _res; } +static PyObject *Qd_GetPenState(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + PenState pnState__out__; + if (!PyArg_ParseTuple(_args, "")) + return NULL; + GetPenState(&pnState__out__); + _res = Py_BuildValue("s#", + (char *)&pnState__out__, (int)sizeof(PenState)); + pnState__error__: ; + return _res; +} + +static PyObject *Qd_SetPenState(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + PenState *pnState__in__; + int pnState__in_len__; + if (!PyArg_ParseTuple(_args, "s#", + (char **)&pnState__in__, &pnState__in_len__)) + return NULL; + if (pnState__in_len__ != sizeof(PenState)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(PenState)"); + goto pnState__error__; + } + SetPenState(pnState__in__); + Py_INCREF(Py_None); + _res = Py_None; + pnState__error__: ; + return _res; +} + static PyObject *Qd_PenSize(_self, _args) PyObject *_self; PyObject *_args; @@ -563,6 +622,28 @@ static PyObject *Qd_PenMode(_self, _args) return _res; } +static PyObject *Qd_PenPat(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + Pattern *pat__in__; + int pat__in_len__; + if (!PyArg_ParseTuple(_args, "s#", + (char **)&pat__in__, &pat__in_len__)) + return NULL; + if (pat__in_len__ != sizeof(Pattern)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)"); + goto pat__error__; + } + PenPat(pat__in__); + Py_INCREF(Py_None); + _res = Py_None; + pat__error__: ; + return _res; +} + static PyObject *Qd_PenNormal(_self, _args) PyObject *_self; PyObject *_args; @@ -898,6 +979,31 @@ static PyObject *Qd_InvertRect(_self, _args) return _res; } +static PyObject *Qd_FillRect(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + Rect r; + Pattern *pat__in__; + int pat__in_len__; + if (!PyArg_ParseTuple(_args, "O&s#", + PyMac_GetRect, &r, + (char **)&pat__in__, &pat__in_len__)) + return NULL; + if (pat__in_len__ != sizeof(Pattern)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)"); + goto pat__error__; + } + FillRect(&r, + pat__in__); + Py_INCREF(Py_None); + _res = Py_None; + pat__error__: ; + return _res; +} + static PyObject *Qd_FrameOval(_self, _args) PyObject *_self; PyObject *_args; @@ -958,6 +1064,31 @@ static PyObject *Qd_InvertOval(_self, _args) return _res; } +static PyObject *Qd_FillOval(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + Rect r; + Pattern *pat__in__; + int pat__in_len__; + if (!PyArg_ParseTuple(_args, "O&s#", + PyMac_GetRect, &r, + (char **)&pat__in__, &pat__in_len__)) + return NULL; + if (pat__in_len__ != sizeof(Pattern)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)"); + goto pat__error__; + } + FillOval(&r, + pat__in__); + Py_INCREF(Py_None); + _res = Py_None; + pat__error__: ; + return _res; +} + static PyObject *Qd_FrameRoundRect(_self, _args) PyObject *_self; PyObject *_args; @@ -1042,6 +1173,37 @@ static PyObject *Qd_InvertRoundRect(_self, _args) return _res; } +static PyObject *Qd_FillRoundRect(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + Rect r; + short ovalWidth; + short ovalHeight; + Pattern *pat__in__; + int pat__in_len__; + if (!PyArg_ParseTuple(_args, "O&hhs#", + PyMac_GetRect, &r, + &ovalWidth, + &ovalHeight, + (char **)&pat__in__, &pat__in_len__)) + return NULL; + if (pat__in_len__ != sizeof(Pattern)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)"); + goto pat__error__; + } + FillRoundRect(&r, + ovalWidth, + ovalHeight, + pat__in__); + Py_INCREF(Py_None); + _res = Py_None; + pat__error__: ; + return _res; +} + static PyObject *Qd_FrameArc(_self, _args) PyObject *_self; PyObject *_args; @@ -1126,6 +1288,37 @@ static PyObject *Qd_InvertArc(_self, _args) return _res; } +static PyObject *Qd_FillArc(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + Rect r; + short startAngle; + short arcAngle; + Pattern *pat__in__; + int pat__in_len__; + if (!PyArg_ParseTuple(_args, "O&hhs#", + PyMac_GetRect, &r, + &startAngle, + &arcAngle, + (char **)&pat__in__, &pat__in_len__)) + return NULL; + if (pat__in_len__ != sizeof(Pattern)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)"); + goto pat__error__; + } + FillArc(&r, + startAngle, + arcAngle, + pat__in__); + Py_INCREF(Py_None); + _res = Py_None; + pat__error__: ; + return _res; +} + static PyObject *Qd_NewRgn(_self, _args) PyObject *_self; PyObject *_args; @@ -1521,6 +1714,31 @@ static PyObject *Qd_InvertRgn(_self, _args) return _res; } +static PyObject *Qd_FillRgn(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + RgnHandle rgn; + Pattern *pat__in__; + int pat__in_len__; + if (!PyArg_ParseTuple(_args, "O&s#", + ResObj_Convert, &rgn, + (char **)&pat__in__, &pat__in_len__)) + return NULL; + if (pat__in_len__ != sizeof(Pattern)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)"); + goto pat__error__; + } + FillRgn(rgn, + pat__in__); + Py_INCREF(Py_None); + _res = Py_None; + pat__error__: ; + return _res; +} + static PyObject *Qd_ScrollRect(_self, _args) PyObject *_self; PyObject *_args; @@ -1811,6 +2029,31 @@ static PyObject *Qd_InvertPoly(_self, _args) return _res; } +static PyObject *Qd_FillPoly(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + PolyHandle poly; + Pattern *pat__in__; + int pat__in_len__; + if (!PyArg_ParseTuple(_args, "O&s#", + ResObj_Convert, &poly, + (char **)&pat__in__, &pat__in_len__)) + return NULL; + if (pat__in_len__ != sizeof(Pattern)) + { + PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)"); + goto pat__error__; + } + FillPoly(poly, + pat__in__); + Py_INCREF(Py_None); + _res = Py_None; + pat__error__: ; + return _res; +} + static PyObject *Qd_SetPt(_self, _args) PyObject *_self; PyObject *_args; @@ -2875,6 +3118,27 @@ static PyObject *Qd_ScreenRes(_self, _args) return _res; } +static PyObject *Qd_GetIndPattern(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + Pattern thePat__out__; + short patternListID; + short index; + if (!PyArg_ParseTuple(_args, "hh", + &patternListID, + &index)) + return NULL; + GetIndPattern(&thePat__out__, + patternListID, + index); + _res = Py_BuildValue("s#", + (char *)&thePat__out__, (int)sizeof(Pattern)); + thePat__error__: ; + return _res; +} + static PyObject *Qd_TextFont(_self, _args) PyObject *_self; PyObject *_args; @@ -3154,6 +3418,8 @@ static PyMethodDef Qd_methods[] = { "(RgnHandle rgn) -> None"}, {"ClipRect", (PyCFunction)Qd_ClipRect, 1, "(Rect r) -> None"}, + {"BackPat", (PyCFunction)Qd_BackPat, 1, + "(Pattern pat) -> None"}, {"InitCursor", (PyCFunction)Qd_InitCursor, 1, "() -> None"}, {"SetCursor", (PyCFunction)Qd_SetCursor, 1, @@ -3170,10 +3436,16 @@ static PyMethodDef Qd_methods[] = { "() -> None"}, {"GetPen", (PyCFunction)Qd_GetPen, 1, "(Point pt) -> (Point pt)"}, + {"GetPenState", (PyCFunction)Qd_GetPenState, 1, + "() -> (PenState pnState)"}, + {"SetPenState", (PyCFunction)Qd_SetPenState, 1, + "(PenState pnState) -> None"}, {"PenSize", (PyCFunction)Qd_PenSize, 1, "(short width, short height) -> None"}, {"PenMode", (PyCFunction)Qd_PenMode, 1, "(short mode) -> None"}, + {"PenPat", (PyCFunction)Qd_PenPat, 1, + "(Pattern pat) -> None"}, {"PenNormal", (PyCFunction)Qd_PenNormal, 1, "() -> None"}, {"MoveTo", (PyCFunction)Qd_MoveTo, 1, @@ -3212,6 +3484,8 @@ static PyMethodDef Qd_methods[] = { "(Rect r) -> None"}, {"InvertRect", (PyCFunction)Qd_InvertRect, 1, "(Rect r) -> None"}, + {"FillRect", (PyCFunction)Qd_FillRect, 1, + "(Rect r, Pattern pat) -> None"}, {"FrameOval", (PyCFunction)Qd_FrameOval, 1, "(Rect r) -> None"}, {"PaintOval", (PyCFunction)Qd_PaintOval, 1, @@ -3220,6 +3494,8 @@ static PyMethodDef Qd_methods[] = { "(Rect r) -> None"}, {"InvertOval", (PyCFunction)Qd_InvertOval, 1, "(Rect r) -> None"}, + {"FillOval", (PyCFunction)Qd_FillOval, 1, + "(Rect r, Pattern pat) -> None"}, {"FrameRoundRect", (PyCFunction)Qd_FrameRoundRect, 1, "(Rect r, short ovalWidth, short ovalHeight) -> None"}, {"PaintRoundRect", (PyCFunction)Qd_PaintRoundRect, 1, @@ -3228,6 +3504,8 @@ static PyMethodDef Qd_methods[] = { "(Rect r, short ovalWidth, short ovalHeight) -> None"}, {"InvertRoundRect", (PyCFunction)Qd_InvertRoundRect, 1, "(Rect r, short ovalWidth, short ovalHeight) -> None"}, + {"FillRoundRect", (PyCFunction)Qd_FillRoundRect, 1, + "(Rect r, short ovalWidth, short ovalHeight, Pattern pat) -> None"}, {"FrameArc", (PyCFunction)Qd_FrameArc, 1, "(Rect r, short startAngle, short arcAngle) -> None"}, {"PaintArc", (PyCFunction)Qd_PaintArc, 1, @@ -3236,6 +3514,8 @@ static PyMethodDef Qd_methods[] = { "(Rect r, short startAngle, short arcAngle) -> None"}, {"InvertArc", (PyCFunction)Qd_InvertArc, 1, "(Rect r, short startAngle, short arcAngle) -> None"}, + {"FillArc", (PyCFunction)Qd_FillArc, 1, + "(Rect r, short startAngle, short arcAngle, Pattern pat) -> None"}, {"NewRgn", (PyCFunction)Qd_NewRgn, 1, "() -> (RgnHandle _rv)"}, {"OpenRgn", (PyCFunction)Qd_OpenRgn, 1, @@ -3280,6 +3560,8 @@ static PyMethodDef Qd_methods[] = { "(RgnHandle rgn) -> None"}, {"InvertRgn", (PyCFunction)Qd_InvertRgn, 1, "(RgnHandle rgn) -> None"}, + {"FillRgn", (PyCFunction)Qd_FillRgn, 1, + "(RgnHandle rgn, Pattern pat) -> None"}, {"ScrollRect", (PyCFunction)Qd_ScrollRect, 1, "(Rect r, short dh, short dv, RgnHandle updateRgn) -> None"}, {"CopyBits", (PyCFunction)Qd_CopyBits, 1, @@ -3312,6 +3594,8 @@ static PyMethodDef Qd_methods[] = { "(PolyHandle poly) -> None"}, {"InvertPoly", (PyCFunction)Qd_InvertPoly, 1, "(PolyHandle poly) -> None"}, + {"FillPoly", (PyCFunction)Qd_FillPoly, 1, + "(PolyHandle poly, Pattern pat) -> None"}, {"SetPt", (PyCFunction)Qd_SetPt, 1, "(Point pt, short h, short v) -> (Point pt)"}, {"LocalToGlobal", (PyCFunction)Qd_LocalToGlobal, 1, @@ -3432,6 +3716,8 @@ static PyMethodDef Qd_methods[] = { "(Rect shieldRect, Point offsetPt) -> None"}, {"ScreenRes", (PyCFunction)Qd_ScreenRes, 1, "() -> (short scrnHRes, short scrnVRes)"}, + {"GetIndPattern", (PyCFunction)Qd_GetIndPattern, 1, + "(short patternListID, short index) -> (Pattern thePat)"}, {"TextFont", (PyCFunction)Qd_TextFont, 1, "(short font) -> None"}, {"TextFace", (PyCFunction)Qd_TextFace, 1, @@ -3487,6 +3773,22 @@ void initQd() o = PyString_FromStringAndSize((char *)&qd.arrow, sizeof(qd.arrow)); if (o == NULL || PyDict_SetItemString(d, "arrow", o) != 0) Py_FatalError("can't initialize Qd.arrow"); + o = PyString_FromStringAndSize((char *)&qd.black, sizeof(qd.black)); + if (o == NULL || PyDict_SetItemString(d, "black", o) != 0) + Py_FatalError("can't initialize Qd.black"); + o = PyString_FromStringAndSize((char *)&qd.white, sizeof(qd.white)); + if (o == NULL || PyDict_SetItemString(d, "white", o) != 0) + Py_FatalError("can't initialize Qd.white"); + o = PyString_FromStringAndSize((char *)&qd.gray, sizeof(qd.gray)); + if (o == NULL || PyDict_SetItemString(d, "gray", o) != 0) + Py_FatalError("can't initialize Qd.gray"); + o = PyString_FromStringAndSize((char *)&qd.ltGray, sizeof(qd.ltGray)); + if (o == NULL || PyDict_SetItemString(d, "ltGray", o) != 0) + Py_FatalError("can't initialize Qd.ltGray"); + o = PyString_FromStringAndSize((char *)&qd.dkGray, sizeof(qd.dkGray)); + if (o == NULL || PyDict_SetItemString(d, "dkGray", o) != 0) + Py_FatalError("can't initialize Qd.dkGray"); + /* thePort, screenBits and randSeed still missing... */ } diff --git a/Mac/Modules/qd/qdgen.py b/Mac/Modules/qd/qdgen.py index 105eab7..7ea15fe 100644 --- a/Mac/Modules/qd/qdgen.py +++ b/Mac/Modules/qd/qdgen.py @@ -53,6 +53,11 @@ f = Function(void, 'ClipRect', ) functions.append(f) +f = Function(void, 'BackPat', + (Pattern_ptr, 'pat', InMode), +) +functions.append(f) + f = Function(void, 'InitCursor', ) functions.append(f) @@ -87,6 +92,16 @@ f = Function(void, 'GetPen', ) functions.append(f) +f = Function(void, 'GetPenState', + (PenState, 'pnState', OutMode), +) +functions.append(f) + +f = Function(void, 'SetPenState', + (PenState_ptr, 'pnState', InMode), +) +functions.append(f) + f = Function(void, 'PenSize', (short, 'width', InMode), (short, 'height', InMode), @@ -98,6 +113,11 @@ f = Function(void, 'PenMode', ) functions.append(f) +f = Function(void, 'PenPat', + (Pattern_ptr, 'pat', InMode), +) +functions.append(f) + f = Function(void, 'PenNormal', ) functions.append(f) @@ -209,6 +229,12 @@ f = Function(void, 'InvertRect', ) functions.append(f) +f = Function(void, 'FillRect', + (Rect_ptr, 'r', InMode), + (Pattern_ptr, 'pat', InMode), +) +functions.append(f) + f = Function(void, 'FrameOval', (Rect_ptr, 'r', InMode), ) @@ -229,6 +255,12 @@ f = Function(void, 'InvertOval', ) functions.append(f) +f = Function(void, 'FillOval', + (Rect_ptr, 'r', InMode), + (Pattern_ptr, 'pat', InMode), +) +functions.append(f) + f = Function(void, 'FrameRoundRect', (Rect_ptr, 'r', InMode), (short, 'ovalWidth', InMode), @@ -257,6 +289,14 @@ f = Function(void, 'InvertRoundRect', ) functions.append(f) +f = Function(void, 'FillRoundRect', + (Rect_ptr, 'r', InMode), + (short, 'ovalWidth', InMode), + (short, 'ovalHeight', InMode), + (Pattern_ptr, 'pat', InMode), +) +functions.append(f) + f = Function(void, 'FrameArc', (Rect_ptr, 'r', InMode), (short, 'startAngle', InMode), @@ -285,6 +325,14 @@ f = Function(void, 'InvertArc', ) functions.append(f) +f = Function(void, 'FillArc', + (Rect_ptr, 'r', InMode), + (short, 'startAngle', InMode), + (short, 'arcAngle', InMode), + (Pattern_ptr, 'pat', InMode), +) +functions.append(f) + f = Function(RgnHandle, 'NewRgn', ) functions.append(f) @@ -414,6 +462,12 @@ f = Function(void, 'InvertRgn', ) functions.append(f) +f = Function(void, 'FillRgn', + (RgnHandle, 'rgn', InMode), + (Pattern_ptr, 'pat', InMode), +) +functions.append(f) + f = Function(void, 'ScrollRect', (Rect_ptr, 'r', InMode), (short, 'dh', InMode), @@ -509,6 +563,12 @@ f = Function(void, 'InvertPoly', ) functions.append(f) +f = Function(void, 'FillPoly', + (PolyHandle, 'poly', InMode), + (Pattern_ptr, 'pat', InMode), +) +functions.append(f) + f = Function(void, 'SetPt', (Point, 'pt', InOutMode), (short, 'h', InMode), @@ -859,6 +919,13 @@ f = Function(void, 'ScreenRes', ) functions.append(f) +f = Function(void, 'GetIndPattern', + (Pattern, 'thePat', OutMode), + (short, 'patternListID', InMode), + (short, 'index', InMode), +) +functions.append(f) + # Generated from 'Sap:CodeWarrior7:Metrowerks CodeWarrior:MacOS Support:Headers:Universal Headers:QuickDrawText.h' f = Function(void, 'TextFont', diff --git a/Mac/Modules/qd/qdscan.py b/Mac/Modules/qd/qdscan.py index 013f6b1..2838c06 100644 --- a/Mac/Modules/qd/qdscan.py +++ b/Mac/Modules/qd/qdscan.py @@ -85,8 +85,8 @@ class MyScanner(Scanner): 'ColorSearchProcPtr', 'ColorSearchUPP', 'ConstPatternParam', - 'Pattern_ptr', - 'Pattern', +## 'Pattern_ptr', +## 'Pattern', ## 'Cursor_ptr', 'DeviceLoopDrawingProcPtr', 'DeviceLoopFlags', @@ -94,8 +94,8 @@ class MyScanner(Scanner): 'GDHandle', 'GrafVerb', 'OpenCPicParams_ptr', - 'PenState', - 'PenState_ptr', +## 'PenState', +## 'PenState_ptr', 'Ptr', 'QDProcs', 'ReqListRec', diff --git a/Mac/Modules/qd/qdsupport.py b/Mac/Modules/qd/qdsupport.py index 387ee9c..e295c14 100644 --- a/Mac/Modules/qd/qdsupport.py +++ b/Mac/Modules/qd/qdsupport.py @@ -45,8 +45,12 @@ GrafPtr = OpaqueByValueType("GrafPtr", "GrafObj") BitMap_ptr = OpaqueByValueType("BitMapPtr", "BMObj") RGBColor = OpaqueType('RGBColor', 'QdRGB') RGBColor_ptr = RGBColor -Cursor = StructInputBufferType('Cursor') -Cursor_ptr = Cursor + +Cursor_ptr = StructInputBufferType('Cursor') +Pattern = StructOutputBufferType('Pattern') +Pattern_ptr = StructInputBufferType('Pattern') +PenState = StructOutputBufferType('PenState') +PenState_ptr = StructInputBufferType('PenState') includestuff = includestuff + """ #include <%s>""" % MACHEADERFILE + """ @@ -87,6 +91,22 @@ variablestuff = """ o = PyString_FromStringAndSize((char *)&qd.arrow, sizeof(qd.arrow)); if (o == NULL || PyDict_SetItemString(d, "arrow", o) != 0) Py_FatalError("can't initialize Qd.arrow"); + o = PyString_FromStringAndSize((char *)&qd.black, sizeof(qd.black)); + if (o == NULL || PyDict_SetItemString(d, "black", o) != 0) + Py_FatalError("can't initialize Qd.black"); + o = PyString_FromStringAndSize((char *)&qd.white, sizeof(qd.white)); + if (o == NULL || PyDict_SetItemString(d, "white", o) != 0) + Py_FatalError("can't initialize Qd.white"); + o = PyString_FromStringAndSize((char *)&qd.gray, sizeof(qd.gray)); + if (o == NULL || PyDict_SetItemString(d, "gray", o) != 0) + Py_FatalError("can't initialize Qd.gray"); + o = PyString_FromStringAndSize((char *)&qd.ltGray, sizeof(qd.ltGray)); + if (o == NULL || PyDict_SetItemString(d, "ltGray", o) != 0) + Py_FatalError("can't initialize Qd.ltGray"); + o = PyString_FromStringAndSize((char *)&qd.dkGray, sizeof(qd.dkGray)); + if (o == NULL || PyDict_SetItemString(d, "dkGray", o) != 0) + Py_FatalError("can't initialize Qd.dkGray"); + /* thePort, screenBits and randSeed still missing... */ } """ |