/* =========================== Module _CG =========================== */ #include "Python.h" #include "pymactoolbox.h" /* Macro to test whether a weak-loaded CFM function exists */ #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ PyErr_SetString(PyExc_NotImplementedError, \ "Not available in this shared library/OS version"); \ return NULL; \ }} while(0) #include <ApplicationServices/ApplicationServices.h> extern int GrafObj_Convert(PyObject *, GrafPtr *); /* ** Manual converters */ PyObject *CGPoint_New(CGPoint *itself) { return Py_BuildValue("(ff)", itself->x, itself->y); } int CGPoint_Convert(PyObject *v, CGPoint *p_itself) { if( !PyArg_Parse(v, "(ff)", &p_itself->x, &p_itself->y) ) return 0; return 1; } PyObject *CGRect_New(CGRect *itself) { return Py_BuildValue("(ffff)", itself->origin.x, itself->origin.y, itself->size.width, itself->size.height); } int CGRect_Convert(PyObject *v, CGRect *p_itself) { if( !PyArg_Parse(v, "(ffff)", &p_itself->origin.x, &p_itself->origin.y, &p_itself->size.width, &p_itself->size.height) ) return 0; return 1; } PyObject *CGAffineTransform_New(CGAffineTransform *itself) { return Py_BuildValue("(ffffff)", itself->a, itself->b, itself->c, itself->d, itself->tx, itself->ty); } int CGAffineTransform_Convert(PyObject *v, CGAffineTransform *p_itself) { if( !PyArg_Parse(v, "(ffffff)", &p_itself->a, &p_itself->b, &p_itself->c, &p_itself->d, &p_itself->tx, &p_itself->ty) ) return 0; return 1; } static PyObject *CG_Error; /* -------------------- Object type CGContextRef -------------------- */ PyTypeObject CGContextRef_Type; #define CGContextRefObj_Check(x) ((x)->ob_type == &CGContextRef_Type || PyObject_TypeCheck((x), &CGContextRef_Type)) typedef struct CGContextRefObject { PyObject_HEAD CGContextRef ob_itself; } CGContextRefObject; PyObject *CGContextRefObj_New(CGContextRef itself) { CGContextRefObject *it; it = PyObject_NEW(CGContextRefObject, &CGContextRef_Type); if (it == NULL) return NULL; it->ob_itself = itself; return (PyObject *)it; } int CGContextRefObj_Convert(PyObject *v, CGContextRef *p_itself) { if (!CGContextRefObj_Check(v)) { PyErr_SetString(PyExc_TypeError, "CGContextRef required"); return 0; } *p_itself = ((CGContextRefObject *)v)->ob_itself; return 1; } static void CGContextRefObj_dealloc(CGContextRefObject *self) { CGContextRelease(self->ob_itself); self->ob_type->tp_free((PyObject *)self); } static PyObject *CGContextRefObj_CGContextSaveGState(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextSaveGState(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextRestoreGState(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextRestoreGState(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextScaleCTM(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float sx; float sy; if (!PyArg_ParseTuple(_args, "ff", &sx, &sy)) return NULL; CGContextScaleCTM(_self->ob_itself, sx, sy); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextTranslateCTM(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float tx; float ty; if (!PyArg_ParseTuple(_args, "ff", &tx, &ty)) return NULL; CGContextTranslateCTM(_self->ob_itself, tx, ty); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextRotateCTM(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float angle; if (!PyArg_ParseTuple(_args, "f", &angle)) return NULL; CGContextRotateCTM(_self->ob_itself, angle); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextConcatCTM(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGAffineTransform transform; if (!PyArg_ParseTuple(_args, "O&", CGAffineTransform_Convert, &transform)) return NULL; CGContextConcatCTM(_self->ob_itself, transform); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextGetCTM(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGAffineTransform _rv; if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = CGContextGetCTM(_self->ob_itself); _res = Py_BuildValue("O&", CGAffineTransform_New, &_rv); return _res; } static PyObject *CGContextRefObj_CGContextSetLineWidth(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float width; if (!PyArg_ParseTuple(_args, "f", &width)) return NULL; CGContextSetLineWidth(_self->ob_itself, width); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetLineCap(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; int cap; if (!PyArg_ParseTuple(_args, "i", &cap)) return NULL; CGContextSetLineCap(_self->ob_itself, cap); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetLineJoin(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; int join; if (!PyArg_ParseTuple(_args, "i", &join)) return NULL; CGContextSetLineJoin(_self->ob_itself, join); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetMiterLimit(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float limit; if (!PyArg_ParseTuple(_args, "f", &limit)) return NULL; CGContextSetMiterLimit(_self->ob_itself, limit); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetFlatness(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float flatness; if (!PyArg_ParseTuple(_args, "f", &flatness)) return NULL; CGContextSetFlatness(_self->ob_itself, flatness); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetAlpha(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float alpha; if (!PyArg_ParseTuple(_args, "f", &alpha)) return NULL; CGContextSetAlpha(_self->ob_itself, alpha); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextBeginPath(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextBeginPath(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextMoveToPoint(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float x; float y; if (!PyArg_ParseTuple(_args, "ff", &x, &y)) return NULL; CGContextMoveToPoint(_self->ob_itself, x, y); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextAddLineToPoint(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float x; float y; if (!PyArg_ParseTuple(_args, "ff", &x, &y)) return NULL; CGContextAddLineToPoint(_self->ob_itself, x, y); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextAddCurveToPoint(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float cp1x; float cp1y; float cp2x; float cp2y; float x; float y; if (!PyArg_ParseTuple(_args, "ffffff", &cp1x, &cp1y, &cp2x, &cp2y, &x, &y)) return NULL; CGContextAddCurveToPoint(_self->ob_itself, cp1x, cp1y, cp2x, cp2y, x, y); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextAddQuadCurveToPoint(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float cpx; float cpy; float x; float y; if (!PyArg_ParseTuple(_args, "ffff", &cpx, &cpy, &x, &y)) return NULL; CGContextAddQuadCurveToPoint(_self->ob_itself, cpx, cpy, x, y); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextClosePath(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextClosePath(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextAddRect(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGRect rect; if (!PyArg_ParseTuple(_args, "O&", CGRect_Convert, &rect)) return NULL; CGContextAddRect(_self->ob_itself, rect); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextAddArc(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float x; float y; float radius; float startAngle; float endAngle; int clockwise; if (!PyArg_ParseTuple(_args, "fffffi", &x, &y, &radius, &startAngle, &endAngle, &clockwise)) return NULL; CGContextAddArc(_self->ob_itself, x, y, radius, startAngle, endAngle, clockwise); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextAddArcToPoint(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float x1; float y1; float x2; float y2; float radius; if (!PyArg_ParseTuple(_args, "fffff", &x1, &y1, &x2, &y2, &radius)) return NULL; CGContextAddArcToPoint(_self->ob_itself, x1, y1, x2, y2, radius); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextIsPathEmpty(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; int _rv; if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = CGContextIsPathEmpty(_self->ob_itself); _res = Py_BuildValue("i", _rv); return _res; } static PyObject *CGContextRefObj_CGContextGetPathCurrentPoint(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGPoint _rv; if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = CGContextGetPathCurrentPoint(_self->ob_itself); _res = Py_BuildValue("O&", CGPoint_New, &_rv); return _res; } static PyObject *CGContextRefObj_CGContextGetPathBoundingBox(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGRect _rv; if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = CGContextGetPathBoundingBox(_self->ob_itself); _res = Py_BuildValue("O&", CGRect_New, &_rv); return _res; } static PyObject *CGContextRefObj_CGContextDrawPath(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; int mode; if (!PyArg_ParseTuple(_args, "i", &mode)) return NULL; CGContextDrawPath(_self->ob_itself, mode); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextFillPath(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextFillPath(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextEOFillPath(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextEOFillPath(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextStrokePath(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextStrokePath(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextFillRect(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGRect rect; if (!PyArg_ParseTuple(_args, "O&", CGRect_Convert, &rect)) return NULL; CGContextFillRect(_self->ob_itself, rect); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextStrokeRect(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGRect rect; if (!PyArg_ParseTuple(_args, "O&", CGRect_Convert, &rect)) return NULL; CGContextStrokeRect(_self->ob_itself, rect); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextStrokeRectWithWidth(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGRect rect; float width; if (!PyArg_ParseTuple(_args, "O&f", CGRect_Convert, &rect, &width)) return NULL; CGContextStrokeRectWithWidth(_self->ob_itself, rect, width); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextClearRect(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGRect rect; if (!PyArg_ParseTuple(_args, "O&", CGRect_Convert, &rect)) return NULL; CGContextClearRect(_self->ob_itself, rect); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextClip(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextClip(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextEOClip(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextEOClip(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextClipToRect(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGRect rect; if (!PyArg_ParseTuple(_args, "O&", CGRect_Convert, &rect)) return NULL; CGContextClipToRect(_self->ob_itself, rect); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetGrayFillColor(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float gray; float alpha; if (!PyArg_ParseTuple(_args, "ff", &gray, &alpha)) return NULL; CGContextSetGrayFillColor(_self->ob_itself, gray, alpha); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetGrayStrokeColor(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float gray; float alpha; if (!PyArg_ParseTuple(_args, "ff", &gray, &alpha)) return NULL; CGContextSetGrayStrokeColor(_self->ob_itself, gray, alpha); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetRGBFillColor(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float red; float green; float blue; float alpha; if (!PyArg_ParseTuple(_args, "ffff", &red, &green, &blue, &alpha)) return NULL; CGContextSetRGBFillColor(_self->ob_itself, red, green, blue, alpha); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetRGBStrokeColor(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float red; float green; float blue; float alpha; if (!PyArg_ParseTuple(_args, "ffff", &red, &green, &blue, &alpha)) return NULL; CGContextSetRGBStrokeColor(_self->ob_itself, red, green, blue, alpha); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetCMYKFillColor(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float cyan; float magenta; float yellow; float black; float alpha; if (!PyArg_ParseTuple(_args, "fffff", &cyan, &magenta, &yellow, &black, &alpha)) return NULL; CGContextSetCMYKFillColor(_self->ob_itself, cyan, magenta, yellow, black, alpha); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetCMYKStrokeColor(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float cyan; float magenta; float yellow; float black; float alpha; if (!PyArg_ParseTuple(_args, "fffff", &cyan, &magenta, &yellow, &black, &alpha)) return NULL; CGContextSetCMYKStrokeColor(_self->ob_itself, cyan, magenta, yellow, black, alpha); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextGetInterpolationQuality(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; int _rv; if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = CGContextGetInterpolationQuality(_self->ob_itself); _res = Py_BuildValue("i", _rv); return _res; } static PyObject *CGContextRefObj_CGContextSetInterpolationQuality(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; int quality; if (!PyArg_ParseTuple(_args, "i", &quality)) return NULL; CGContextSetInterpolationQuality(_self->ob_itself, quality); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetCharacterSpacing(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float spacing; if (!PyArg_ParseTuple(_args, "f", &spacing)) return NULL; CGContextSetCharacterSpacing(_self->ob_itself, spacing); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetTextPosition(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float x; float y; if (!PyArg_ParseTuple(_args, "ff", &x, &y)) return NULL; CGContextSetTextPosition(_self->ob_itself, x, y); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextGetTextPosition(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGPoint _rv; if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = CGContextGetTextPosition(_self->ob_itself); _res = Py_BuildValue("O&", CGPoint_New, &_rv); return _res; } static PyObject *CGContextRefObj_CGContextSetTextMatrix(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGAffineTransform transform; if (!PyArg_ParseTuple(_args, "O&", CGAffineTransform_Convert, &transform)) return NULL; CGContextSetTextMatrix(_self->ob_itself, transform); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextGetTextMatrix(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGAffineTransform _rv; if (!PyArg_ParseTuple(_args, "")) return NULL; _rv = CGContextGetTextMatrix(_self->ob_itself); _res = Py_BuildValue("O&", CGAffineTransform_New, &_rv); return _res; } static PyObject *CGContextRefObj_CGContextSetTextDrawingMode(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; int mode; if (!PyArg_ParseTuple(_args, "i", &mode)) return NULL; CGContextSetTextDrawingMode(_self->ob_itself, mode); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetFontSize(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float size; if (!PyArg_ParseTuple(_args, "f", &size)) return NULL; CGContextSetFontSize(_self->ob_itself, size); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSelectFont(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; char * name; float size; int textEncoding; if (!PyArg_ParseTuple(_args, "sfi", &name, &size, &textEncoding)) return NULL; CGContextSelectFont(_self->ob_itself, name, size, textEncoding); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextShowText(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; char *cstring__in__; long cstring__len__; int cstring__in_len__; if (!PyArg_ParseTuple(_args, "s#", &cstring__in__, &cstring__in_len__)) return NULL; cstring__len__ = cstring__in_len__; CGContextShowText(_self->ob_itself, cstring__in__, cstring__len__); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextShowTextAtPoint(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; float x; float y; char *cstring__in__; long cstring__len__; int cstring__in_len__; if (!PyArg_ParseTuple(_args, "ffs#", &x, &y, &cstring__in__, &cstring__in_len__)) return NULL; cstring__len__ = cstring__in_len__; CGContextShowTextAtPoint(_self->ob_itself, x, y, cstring__in__, cstring__len__); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextEndPage(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextEndPage(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextFlush(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextFlush(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSynchronize(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; if (!PyArg_ParseTuple(_args, "")) return NULL; CGContextSynchronize(_self->ob_itself); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_CGContextSetShouldAntialias(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; int shouldAntialias; if (!PyArg_ParseTuple(_args, "i", &shouldAntialias)) return NULL; CGContextSetShouldAntialias(_self->ob_itself, shouldAntialias); Py_INCREF(Py_None); _res = Py_None; return _res; } #ifndef __LP64__ static PyObject *CGContextRefObj_SyncCGContextOriginWithPort(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; CGrafPtr port; if (!PyArg_ParseTuple(_args, "O&", GrafObj_Convert, &port)) return NULL; SyncCGContextOriginWithPort(_self->ob_itself, port); Py_INCREF(Py_None); _res = Py_None; return _res; } static PyObject *CGContextRefObj_ClipCGContextToRegion(CGContextRefObject *_self, PyObject *_args) { PyObject *_res = NULL; Rect portRect; RgnHandle region; if (!PyArg_ParseTuple(_args, "O&O&", PyMac_GetRect, &portRect, ResObj_Convert, ®ion)) return NULL; ClipCGContextToRegion(_self->ob_itself, &portRect, region); Py_INCREF(Py_None); _res = Py_None; return _res; } #endif static PyMethodDef CGContextRefObj_methods[] = { {"CGContextSaveGState", (PyCFunction)CGContextRefObj_CGContextSaveGState, 1, PyDoc_STR("() -> None")}, {"CGContextRestoreGState", (PyCFunction)CGContextRefObj_CGContextRestoreGState, 1, PyDoc_STR("() -> None")}, {"CGContextScaleCTM", (PyCFunction)CGContextRefObj_CGContextScaleCTM, 1, PyDoc_STR("(float sx, float sy) -> None")}, {"CGContextTranslateCTM", (PyCFunction)CGContextRefObj_CGContextTranslateCTM, 1, PyDoc_STR("(float tx, float ty) -> None")}, {"CGContextRotateCTM", (PyCFunction)CGContextRefObj_CGContextRotateCTM, 1, PyDoc_STR("(float angle) -> None")}, {"CGContextConcatCTM", (PyCFunction)CGContextRefObj_CGContextConcatCTM, 1, PyDoc_STR("(CGAffineTransform transform) -> None")}, {"CGContextGetCTM", (PyCFunction)CGContextRefObj_CGContextGetCTM, 1, PyDoc_STR("() -> (CGAffineTransform _rv)")}, {"CGContextSetLineWidth", (PyCFunction)CGContextRefObj_CGContextSetLineWidth, 1, PyDoc_STR("(float width) -> None")}, {"CGContextSetLineCap", (PyCFunction)CGContextRefObj_CGContextSetLineCap, 1, PyDoc_STR("(int cap) -> None")}, {"CGContextSetLineJoin", (PyCFunction)CGContextRefObj_CGContextSetLineJoin, 1, PyDoc_STR("(int join) -> None")}, {"CGContextSetMiterLimit", (PyCFunction)CGContextRefObj_CGContextSetMiterLimit, 1, PyDoc_STR("(float limit) -> None")}, {"CGContextSetFlatness", (PyCFunction)CGContextRefObj_CGContextSetFlatness, 1, PyDoc_STR("(float flatness) -> None")}, {"CGContextSetAlpha", (PyCFunction)CGContextRefObj_CGContextSetAlpha, 1, PyDoc_STR("(float alpha) -> None")}, {"CGContextBeginPath", (PyCFunction)CGContextRefObj_CGContextBeginPath, 1, PyDoc_STR("() -> None")}, {"CGContextMoveToPoint", (PyCFunction)CGContextRefObj_CGContextMoveToPoint, 1, PyDoc_STR("(float x, float y) -> None")}, {"CGContextAddLineToPoint", (PyCFunction)CGContextRefObj_CGContextAddLineToPoint, 1, PyDoc_STR("(float x, float y) -> None")}, {"CGContextAddCurveToPoint", (PyCFunction)CGContextRefObj_CGContextAddCurveToPoint, 1, PyDoc_STR("(float cp1x, float cp1y, float cp2x, float cp2y, float x, float y) -> None")}, {"CGContextAddQuadCurveToPoint", (PyCFunction)CGContextRefObj_CGContextAddQuadCurveToPoint, 1, PyDoc_STR("(float cpx, float cpy, float x, float y) -> None")}, {"CGContextClosePath", (PyCFunction)CGContextRefObj_CGContextClosePath, 1, PyDoc_STR("() -> None")}, {"CGContextAddRect", (PyCFunction)CGContextRefObj_CGContextAddRect, 1, PyDoc_STR("(CGRect rect) -> None")}, {"CGContextAddArc", (PyCFunction)CGContextRefObj_CGContextAddArc, 1, PyDoc_STR("(float x, float y, float radius, float startAngle, float endAngle, int clockwise) -> None")}, {"CGContextAddArcToPoint", (PyCFunction)CGContextRefObj_CGContextAddArcToPoint, 1, PyDoc_STR("(float x1, float y1, float x2, float y2, float radius) -> None")}, {"CGContextIsPathEmpty", (PyCFunction)CGContextRefObj_CGContextIsPathEmpty, 1, PyDoc_STR("() -> (int _rv)")}, {"CGContextGetPathCurrentPoint", (PyCFunction)CGContextRefObj_CGContextGetPathCurrentPoint, 1, PyDoc_STR("() -> (CGPoint _rv)")}, {"CGContextGetPathBoundingBox", (PyCFunction)CGContextRefObj_CGContextGetPathBoundingBox, 1, PyDoc_STR("() -> (CGRect _rv)")}, {"CGContextDrawPath", (PyCFunction)CGContextRefObj_CGContextDrawPath, 1, PyDoc_STR("(int mode) -> None")}, {"CGContextFillPath", (PyCFunction)CGContextRefObj_CGContextFillPath, 1, PyDoc_STR("() -> None")}, {"CGContextEOFillPath", (PyCFunction)CGContextRefObj_CGContextEOFillPath, 1, PyDoc_STR("() -> None")}, {"CGContextStrokePath", (PyCFunction)CGContextRefObj_CGContextStrokePath, 1, PyDoc_STR("() -> None")}, {"CGContextFillRect", (PyCFunction)CGContextRefObj_CGContextFillRect, 1, PyDoc_STR("(CGRect rect) -> None")}, {"CGContextStrokeRect", (PyCFunction)CGContextRefObj_CGContextStrokeRect, 1, PyDoc_STR("(CGRect rect) -> None")}, {"CGContextStrokeRectWithWidth", (PyCFunction)CGContextRefObj_CGContextStrokeRectWithWidth, 1, PyDoc_STR("(CGRect rect, float width) -> None")}, {"CGContextClearRect", (PyCFunction)CGContextRefObj_CGContextClearRect, 1, PyDoc_STR("(CGRect rect) -> None")}, {"CGContextClip", (PyCFunction)CGContextRefObj_CGContextClip, 1, PyDoc_STR("() -> None")}, {"CGContextEOClip", (PyCFunction)CGContextRefObj_CGContextEOClip, 1, PyDoc_STR("() -> None")}, {"CGContextClipToRect", (PyCFunction)CGContextRefObj_CGContextClipToRect, 1, PyDoc_STR("(CGRect rect) -> None")}, {"CGContextSetGrayFillColor", (PyCFunction)CGContextRefObj_CGContextSetGrayFillColor, 1, PyDoc_STR("(float gray, float alpha) -> None")}, {"CGContextSetGrayStrokeColor", (PyCFunction)CGContextRefObj_CGContextSetGrayStrokeColor, 1, PyDoc_STR("(float gray, float alpha) -> None")}, {"CGContextSetRGBFillColor", (PyCFunction)CGContextRefObj_CGContextSetRGBFillColor, 1, PyDoc_STR("(float red, float green, float blue, float alpha) -> None")}, {"CGContextSetRGBStrokeColor", (PyCFunction)CGContextRefObj_CGContextSetRGBStrokeColor, 1, PyDoc_STR("(float red, float green, float blue, float alpha) -> None")}, {"CGContextSetCMYKFillColor", (PyCFunction)CGContextRefObj_CGContextSetCMYKFillColor, 1, PyDoc_STR("(float cyan, float magenta, float yellow, float black, float alpha) -> None")}, {"CGContextSetCMYKStrokeColor", (PyCFunction)CGContextRefObj_CGContextSetCMYKStrokeColor, 1, PyDoc_STR("(float cyan, float magenta, float yellow, float black, float alpha) -> None")}, {"CGContextGetInterpolationQuality", (PyCFunction)CGContextRefObj_CGContextGetInterpolationQuality, 1, PyDoc_STR("() -> (int _rv)")}, {"CGContextSetInterpolationQuality", (PyCFunction)CGContextRefObj_CGContextSetInterpolationQuality, 1, PyDoc_STR("(int quality) -> None")}, {"CGContextSetCharacterSpacing", (PyCFunction)CGContextRefObj_CGContextSetCharacterSpacing, 1, PyDoc_STR("(float spacing) -> None")}, {"CGContextSetTextPosition", (PyCFunction)CGContextRefObj_CGContextSetTextPosition, 1, PyDoc_STR("(float x, float y) -> None")}, {"CGContextGetTextPosition", (PyCFunction)CGContextRefObj_CGContextGetTextPosition, 1, PyDoc_STR("() -> (CGPoint _rv)")}, {"CGContextSetTextMatrix", (PyCFunction)CGContextRefObj_CGContextSetTextMatrix, 1, PyDoc_STR("(CGAffineTransform transform) -> None")}, {"CGContextGetTextMatrix", (PyCFunction)CGContextRefObj_CGContextGetTextMatrix, 1, PyDoc_STR("() -> (CGAffineTransform _rv)")}, {"CGContextSetTextDrawingMode", (PyCFunction)CGContextRefObj_CGContextSetTextDrawingMode, 1, PyDoc_STR("(int mode) -> None")}, {"CGContextSetFontSize", (PyCFunction)CGContextRefObj_CGContextSetFontSize, 1, PyDoc_STR("(float size) -> None")}, {"CGContextSelectFont", (PyCFunction)CGContextRefObj_CGContextSelectFont, 1, PyDoc_STR("(char * name, float size, int textEncoding) -> None")}, {"CGContextShowText", (PyCFunction)CGContextRefObj_CGContextShowText, 1, PyDoc_STR("(Buffer cstring) -> None")}, {"CGContextShowTextAtPoint", (PyCFunction)CGContextRefObj_CGContextShowTextAtPoint, 1, PyDoc_STR("(float x, float y, Buffer cstring) -> None")}, {"CGContextEndPage", (PyCFunction)CGContextRefObj_CGContextEndPage, 1, PyDoc_STR("() -> None")}, {"CGContextFlush", (PyCFunction)CGContextRefObj_CGContextFlush, 1, PyDoc_STR("() -> None")}, {"CGContextSynchronize", (PyCFunction)CGContextRefObj_CGContextSynchronize, 1, PyDoc_STR("() -> None")}, {"CGContextSetShouldAntialias", (PyCFunction)CGContextRefObj_CGContextSetShouldAntialias, 1, PyDoc_STR("(int shouldAntialias) -> None")}, #ifndef __LP64__ {"SyncCGContextOriginWithPort", (PyCFunction)CGContextRefObj_SyncCGContextOriginWithPort, 1, PyDoc_STR("(CGrafPtr port) -> None")}, {"ClipCGContextToRegion", (PyCFunction)CGContextRefObj_ClipCGContextToRegion, 1, PyDoc_STR("(Rect portRect, RgnHandle region) -> None")}, #endif {NULL, NULL, 0} }; #define CGContextRefObj_getsetlist NULL #define CGContextRefObj_compare NULL #define CGContextRefObj_repr NULL #define CGContextRefObj_hash NULL #define CGContextRefObj_tp_init 0 #define CGContextRefObj_tp_alloc PyType_GenericAlloc static PyObject *CGContextRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) { PyObject *_self; CGContextRef itself; char *kw[] = {"itself", 0}; if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CGContextRefObj_Convert, &itself)) return NULL; if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL; ((CGContextRefObject *)_self)->ob_itself = itself; return _self; } #define CGContextRefObj_tp_free PyObject_Del PyTypeObject CGContextRef_Type = { PyObject_HEAD_INIT(NULL) 0, /*ob_size*/ "_CG.CGContextRef", /*tp_name*/ sizeof(CGContextRefObject), /*tp_basicsize*/ 0, /*tp_itemsize*/ /* methods */ (destructor) CGContextRefObj_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ (getattrfunc)0, /*tp_getattr*/ (setattrfunc)0, /*tp_setattr*/ (cmpfunc) CGContextRefObj_compare, /*tp_compare*/ (reprfunc) CGContextRefObj_repr, /*tp_repr*/ (PyNumberMethods *)0, /* tp_as_number */ (PySequenceMethods *)0, /* tp_as_sequence */ (PyMappingMethods *)0, /* tp_as_mapping */ (hashfunc) CGContextRefObj_hash, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ PyObject_GenericGetAttr, /*tp_getattro*/ PyObject_GenericSetAttr, /*tp_setattro */ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ CGContextRefObj_methods, /* tp_methods */ 0, /*tp_members*/ CGContextRefObj_getsetlist, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ CGContextRefObj_tp_init, /* tp_init */ CGContextRefObj_tp_alloc, /* tp_alloc */ CGContextRefObj_tp_new, /* tp_new */ CGContextRefObj_tp_free, /* tp_free */ }; /* ------------------ End object type CGContextRef ------------------ */ #ifndef __LP64__ static PyObject *CG_CreateCGContextForPort(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; GrafPtr port; CGContextRef ctx; OSStatus _err; if (!PyArg_ParseTuple(_args, "O&", GrafObj_Convert, &port)) return NULL; _err = CreateCGContextForPort(port, &ctx); if (_err != noErr) if (_err != noErr) return PyMac_Error(_err); _res = Py_BuildValue("O&", CGContextRefObj_New, ctx); return _res; } #endif static PyMethodDef CG_methods[] = { #ifndef __LP64__ {"CreateCGContextForPort", (PyCFunction)CG_CreateCGContextForPort, 1, PyDoc_STR("(CGrafPtr) -> CGContextRef")}, #endif {NULL, NULL, 0} }; void init_CG(void) { PyObject *m; PyObject *d; m = Py_InitModule("_CG", CG_methods); d = PyModule_GetDict(m); CG_Error = PyMac_GetOSErrException(); if (CG_Error == NULL || PyDict_SetItemString(d, "Error", CG_Error) != 0) return; CGContextRef_Type.ob_type = &PyType_Type; if (PyType_Ready(&CGContextRef_Type) < 0) return; Py_INCREF(&CGContextRef_Type); PyModule_AddObject(m, "CGContextRef", (PyObject *)&CGContextRef_Type); /* Backward-compatible name */ Py_INCREF(&CGContextRef_Type); PyModule_AddObject(m, "CGContextRefType", (PyObject *)&CGContextRef_Type); } /* ========================= End module _CG ========================= */