| |
| /* =========================== Module _TE =========================== */ |
| |
| #include "Python.h" |
| |
| |
| |
| #ifdef _WIN32 |
| #include "pywintoolbox.h" |
| #else |
| #include "macglue.h" |
| #include "pymactoolbox.h" |
| #endif |
| |
| /* 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) |
| |
| |
| #ifdef WITHOUT_FRAMEWORKS |
| #include <TextEdit.h> |
| #else |
| #include <Carbon/Carbon.h> |
| #endif |
| |
| #ifdef USE_TOOLBOX_OBJECT_GLUE |
| extern PyObject *_TEObj_New(TEHandle); |
| extern int _TEObj_Convert(PyObject *, TEHandle *); |
| |
| #define TEObj_New _TEObj_New |
| #define TEObj_Convert _TEObj_Convert |
| #endif |
| |
| #define as_TE(h) ((TEHandle)h) |
| #define as_Resource(teh) ((Handle)teh) |
| |
| /* |
| ** Parse/generate TextStyle records |
| */ |
| static PyObject * |
| TextStyle_New(TextStylePtr itself) |
| { |
| |
| return Py_BuildValue("lllO&", (long)itself->tsFont, (long)itself->tsFace, (long)itself->tsSize, QdRGB_New, |
| &itself->tsColor); |
| } |
| |
| static int |
| TextStyle_Convert(PyObject *v, TextStylePtr p_itself) |
| { |
| long font, face, size; |
| |
| if( !PyArg_ParseTuple(v, "lllO&", &font, &face, &size, QdRGB_Convert, &p_itself->tsColor) ) |
| return 0; |
| p_itself->tsFont = (short)font; |
| p_itself->tsFace = (Style)face; |
| p_itself->tsSize = (short)size; |
| return 1; |
| } |
| |
| static PyObject *TE_Error; |
| |
| /* ------------------------- Object type TE ------------------------- */ |
| |
| PyTypeObject TE_Type; |
| |
| #define TEObj_Check(x) ((x)->ob_type == &TE_Type) |
| |
| typedef struct TEObject { |
| PyObject_HEAD |
| TEHandle ob_itself; |
| } TEObject; |
| |
| PyObject *TEObj_New(TEHandle itself) |
| { |
| TEObject *it; |
| if (itself == NULL) { |
| PyErr_SetString(TE_Error,"Cannot create null TE"); |
| return NULL; |
| } |
| it = PyObject_NEW(TEObject, &TE_Type); |
| if (it == NULL) return NULL; |
| it->ob_itself = itself; |
| return (PyObject *)it; |
| } |
| int TEObj_Convert(PyObject *v, TEHandle *p_itself) |
| { |
| if (!TEObj_Check(v)) |
| { |
| PyErr_SetString(PyExc_TypeError, "TE required"); |
| return 0; |
| } |
| *p_itself = ((TEObject *)v)->ob_itself; |
| return 1; |
| } |
| |
| static void TEObj_dealloc(TEObject *self) |
| { |
| TEDispose(self->ob_itself); |
| PyMem_DEL(self); |
| } |
| |
| static PyObject *TEObj_TESetText(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| char *text__in__; |
| long text__len__; |
| int text__in_len__; |
| #ifndef TESetText |
| PyMac_PRECHECK(TESetText); |
| #endif |
| if (!PyArg_ParseTuple(_args, "s#", |
| &text__in__, &text__in_len__)) |
| return NULL; |
| text__len__ = text__in_len__; |
| TESetText(text__in__, text__len__, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEGetText(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| CharsHandle _rv; |
| #ifndef TEGetText |
| PyMac_PRECHECK(TEGetText); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _rv = TEGetText(_self->ob_itself); |
| _res = Py_BuildValue("O&", |
| ResObj_New, _rv); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEIdle(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TEIdle |
| PyMac_PRECHECK(TEIdle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TEIdle(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TESetSelect(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| long selStart; |
| long selEnd; |
| #ifndef TESetSelect |
| PyMac_PRECHECK(TESetSelect); |
| #endif |
| if (!PyArg_ParseTuple(_args, "ll", |
| &selStart, |
| &selEnd)) |
| return NULL; |
| TESetSelect(selStart, |
| selEnd, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEActivate(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TEActivate |
| PyMac_PRECHECK(TEActivate); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TEActivate(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEDeactivate(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TEDeactivate |
| PyMac_PRECHECK(TEDeactivate); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TEDeactivate(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEKey(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| CharParameter key; |
| #ifndef TEKey |
| PyMac_PRECHECK(TEKey); |
| #endif |
| if (!PyArg_ParseTuple(_args, "h", |
| &key)) |
| return NULL; |
| TEKey(key, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TECut(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TECut |
| PyMac_PRECHECK(TECut); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TECut(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TECopy(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TECopy |
| PyMac_PRECHECK(TECopy); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TECopy(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEPaste(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TEPaste |
| PyMac_PRECHECK(TEPaste); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TEPaste(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEDelete(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TEDelete |
| PyMac_PRECHECK(TEDelete); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TEDelete(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEInsert(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| char *text__in__; |
| long text__len__; |
| int text__in_len__; |
| #ifndef TEInsert |
| PyMac_PRECHECK(TEInsert); |
| #endif |
| if (!PyArg_ParseTuple(_args, "s#", |
| &text__in__, &text__in_len__)) |
| return NULL; |
| text__len__ = text__in_len__; |
| TEInsert(text__in__, text__len__, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TESetAlignment(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| short just; |
| #ifndef TESetAlignment |
| PyMac_PRECHECK(TESetAlignment); |
| #endif |
| if (!PyArg_ParseTuple(_args, "h", |
| &just)) |
| return NULL; |
| TESetAlignment(just, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEUpdate(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Rect rUpdate; |
| #ifndef TEUpdate |
| PyMac_PRECHECK(TEUpdate); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&", |
| PyMac_GetRect, &rUpdate)) |
| return NULL; |
| TEUpdate(&rUpdate, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEScroll(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| short dh; |
| short dv; |
| #ifndef TEScroll |
| PyMac_PRECHECK(TEScroll); |
| #endif |
| if (!PyArg_ParseTuple(_args, "hh", |
| &dh, |
| &dv)) |
| return NULL; |
| TEScroll(dh, |
| dv, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TESelView(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TESelView |
| PyMac_PRECHECK(TESelView); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TESelView(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEPinScroll(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| short dh; |
| short dv; |
| #ifndef TEPinScroll |
| PyMac_PRECHECK(TEPinScroll); |
| #endif |
| if (!PyArg_ParseTuple(_args, "hh", |
| &dh, |
| &dv)) |
| return NULL; |
| TEPinScroll(dh, |
| dv, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEAutoView(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Boolean fAuto; |
| #ifndef TEAutoView |
| PyMac_PRECHECK(TEAutoView); |
| #endif |
| if (!PyArg_ParseTuple(_args, "b", |
| &fAuto)) |
| return NULL; |
| TEAutoView(fAuto, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TECalText(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TECalText |
| PyMac_PRECHECK(TECalText); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TECalText(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEGetOffset(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| short _rv; |
| Point pt; |
| #ifndef TEGetOffset |
| PyMac_PRECHECK(TEGetOffset); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&", |
| PyMac_GetPoint, &pt)) |
| return NULL; |
| _rv = TEGetOffset(pt, |
| _self->ob_itself); |
| _res = Py_BuildValue("h", |
| _rv); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEGetPoint(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Point _rv; |
| short offset; |
| #ifndef TEGetPoint |
| PyMac_PRECHECK(TEGetPoint); |
| #endif |
| if (!PyArg_ParseTuple(_args, "h", |
| &offset)) |
| return NULL; |
| _rv = TEGetPoint(offset, |
| _self->ob_itself); |
| _res = Py_BuildValue("O&", |
| PyMac_BuildPoint, _rv); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEClick(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Point pt; |
| Boolean fExtend; |
| #ifndef TEClick |
| PyMac_PRECHECK(TEClick); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&b", |
| PyMac_GetPoint, &pt, |
| &fExtend)) |
| return NULL; |
| TEClick(pt, |
| fExtend, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TESetStyleHandle(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| TEStyleHandle theHandle; |
| #ifndef TESetStyleHandle |
| PyMac_PRECHECK(TESetStyleHandle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&", |
| ResObj_Convert, &theHandle)) |
| return NULL; |
| TESetStyleHandle(theHandle, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEGetStyleHandle(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| TEStyleHandle _rv; |
| #ifndef TEGetStyleHandle |
| PyMac_PRECHECK(TEGetStyleHandle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _rv = TEGetStyleHandle(_self->ob_itself); |
| _res = Py_BuildValue("O&", |
| ResObj_New, _rv); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEGetStyle(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| short offset; |
| TextStyle theStyle; |
| short lineHeight; |
| short fontAscent; |
| #ifndef TEGetStyle |
| PyMac_PRECHECK(TEGetStyle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "h", |
| &offset)) |
| return NULL; |
| TEGetStyle(offset, |
| &theStyle, |
| &lineHeight, |
| &fontAscent, |
| _self->ob_itself); |
| _res = Py_BuildValue("O&hh", |
| TextStyle_New, &theStyle, |
| lineHeight, |
| fontAscent); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEStylePaste(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| #ifndef TEStylePaste |
| PyMac_PRECHECK(TEStylePaste); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| TEStylePaste(_self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TESetStyle(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| short mode; |
| TextStyle newStyle; |
| Boolean fRedraw; |
| #ifndef TESetStyle |
| PyMac_PRECHECK(TESetStyle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "hO&b", |
| &mode, |
| TextStyle_Convert, &newStyle, |
| &fRedraw)) |
| return NULL; |
| TESetStyle(mode, |
| &newStyle, |
| fRedraw, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEReplaceStyle(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| short mode; |
| TextStyle oldStyle; |
| TextStyle newStyle; |
| Boolean fRedraw; |
| #ifndef TEReplaceStyle |
| PyMac_PRECHECK(TEReplaceStyle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "hO&O&b", |
| &mode, |
| TextStyle_Convert, &oldStyle, |
| TextStyle_Convert, &newStyle, |
| &fRedraw)) |
| return NULL; |
| TEReplaceStyle(mode, |
| &oldStyle, |
| &newStyle, |
| fRedraw, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEGetStyleScrapHandle(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| StScrpHandle _rv; |
| #ifndef TEGetStyleScrapHandle |
| PyMac_PRECHECK(TEGetStyleScrapHandle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _rv = TEGetStyleScrapHandle(_self->ob_itself); |
| _res = Py_BuildValue("O&", |
| ResObj_New, _rv); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEStyleInsert(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| char *text__in__; |
| long text__len__; |
| int text__in_len__; |
| StScrpHandle hST; |
| #ifndef TEStyleInsert |
| PyMac_PRECHECK(TEStyleInsert); |
| #endif |
| if (!PyArg_ParseTuple(_args, "s#O&", |
| &text__in__, &text__in_len__, |
| ResObj_Convert, &hST)) |
| return NULL; |
| text__len__ = text__in_len__; |
| TEStyleInsert(text__in__, text__len__, |
| hST, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEGetHeight(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| long _rv; |
| long endLine; |
| long startLine; |
| #ifndef TEGetHeight |
| PyMac_PRECHECK(TEGetHeight); |
| #endif |
| if (!PyArg_ParseTuple(_args, "ll", |
| &endLine, |
| &startLine)) |
| return NULL; |
| _rv = TEGetHeight(endLine, |
| startLine, |
| _self->ob_itself); |
| _res = Py_BuildValue("l", |
| _rv); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEContinuousStyle(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Boolean _rv; |
| short mode; |
| TextStyle aStyle; |
| #ifndef TEContinuousStyle |
| PyMac_PRECHECK(TEContinuousStyle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "hO&", |
| &mode, |
| TextStyle_Convert, &aStyle)) |
| return NULL; |
| _rv = TEContinuousStyle(&mode, |
| &aStyle, |
| _self->ob_itself); |
| _res = Py_BuildValue("bhO&", |
| _rv, |
| mode, |
| TextStyle_New, &aStyle); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEUseStyleScrap(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| long rangeStart; |
| long rangeEnd; |
| StScrpHandle newStyles; |
| Boolean fRedraw; |
| #ifndef TEUseStyleScrap |
| PyMac_PRECHECK(TEUseStyleScrap); |
| #endif |
| if (!PyArg_ParseTuple(_args, "llO&b", |
| &rangeStart, |
| &rangeEnd, |
| ResObj_Convert, &newStyles, |
| &fRedraw)) |
| return NULL; |
| TEUseStyleScrap(rangeStart, |
| rangeEnd, |
| newStyles, |
| fRedraw, |
| _self->ob_itself); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_TENumStyles(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| long _rv; |
| long rangeStart; |
| long rangeEnd; |
| #ifndef TENumStyles |
| PyMac_PRECHECK(TENumStyles); |
| #endif |
| if (!PyArg_ParseTuple(_args, "ll", |
| &rangeStart, |
| &rangeEnd)) |
| return NULL; |
| _rv = TENumStyles(rangeStart, |
| rangeEnd, |
| _self->ob_itself); |
| _res = Py_BuildValue("l", |
| _rv); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEFeatureFlag(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| short _rv; |
| short feature; |
| short action; |
| #ifndef TEFeatureFlag |
| PyMac_PRECHECK(TEFeatureFlag); |
| #endif |
| if (!PyArg_ParseTuple(_args, "hh", |
| &feature, |
| &action)) |
| return NULL; |
| _rv = TEFeatureFlag(feature, |
| action, |
| _self->ob_itself); |
| _res = Py_BuildValue("h", |
| _rv); |
| return _res; |
| } |
| |
| static PyObject *TEObj_TEGetHiliteRgn(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSErr _err; |
| RgnHandle region; |
| #ifndef TEGetHiliteRgn |
| PyMac_PRECHECK(TEGetHiliteRgn); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&", |
| ResObj_Convert, ®ion)) |
| return NULL; |
| _err = TEGetHiliteRgn(region, |
| _self->ob_itself); |
| if (_err != noErr) return PyMac_Error(_err); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TEObj_as_Resource(TEObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Handle _rv; |
| #ifndef as_Resource |
| PyMac_PRECHECK(as_Resource); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _rv = as_Resource(_self->ob_itself); |
| _res = Py_BuildValue("O&", |
| ResObj_New, _rv); |
| return _res; |
| } |
| |
| static PyMethodDef TEObj_methods[] = { |
| {"TESetText", (PyCFunction)TEObj_TESetText, 1, |
| "(Buffer text) -> None"}, |
| {"TEGetText", (PyCFunction)TEObj_TEGetText, 1, |
| "() -> (CharsHandle _rv)"}, |
| {"TEIdle", (PyCFunction)TEObj_TEIdle, 1, |
| "() -> None"}, |
| {"TESetSelect", (PyCFunction)TEObj_TESetSelect, 1, |
| "(long selStart, long selEnd) -> None"}, |
| {"TEActivate", (PyCFunction)TEObj_TEActivate, 1, |
| "() -> None"}, |
| {"TEDeactivate", (PyCFunction)TEObj_TEDeactivate, 1, |
| "() -> None"}, |
| {"TEKey", (PyCFunction)TEObj_TEKey, 1, |
| "(CharParameter key) -> None"}, |
| {"TECut", (PyCFunction)TEObj_TECut, 1, |
| "() -> None"}, |
| {"TECopy", (PyCFunction)TEObj_TECopy, 1, |
| "() -> None"}, |
| {"TEPaste", (PyCFunction)TEObj_TEPaste, 1, |
| "() -> None"}, |
| {"TEDelete", (PyCFunction)TEObj_TEDelete, 1, |
| "() -> None"}, |
| {"TEInsert", (PyCFunction)TEObj_TEInsert, 1, |
| "(Buffer text) -> None"}, |
| {"TESetAlignment", (PyCFunction)TEObj_TESetAlignment, 1, |
| "(short just) -> None"}, |
| {"TEUpdate", (PyCFunction)TEObj_TEUpdate, 1, |
| "(Rect rUpdate) -> None"}, |
| {"TEScroll", (PyCFunction)TEObj_TEScroll, 1, |
| "(short dh, short dv) -> None"}, |
| {"TESelView", (PyCFunction)TEObj_TESelView, 1, |
| "() -> None"}, |
| {"TEPinScroll", (PyCFunction)TEObj_TEPinScroll, 1, |
| "(short dh, short dv) -> None"}, |
| {"TEAutoView", (PyCFunction)TEObj_TEAutoView, 1, |
| "(Boolean fAuto) -> None"}, |
| {"TECalText", (PyCFunction)TEObj_TECalText, 1, |
| "() -> None"}, |
| {"TEGetOffset", (PyCFunction)TEObj_TEGetOffset, 1, |
| "(Point pt) -> (short _rv)"}, |
| {"TEGetPoint", (PyCFunction)TEObj_TEGetPoint, 1, |
| "(short offset) -> (Point _rv)"}, |
| {"TEClick", (PyCFunction)TEObj_TEClick, 1, |
| "(Point pt, Boolean fExtend) -> None"}, |
| {"TESetStyleHandle", (PyCFunction)TEObj_TESetStyleHandle, 1, |
| "(TEStyleHandle theHandle) -> None"}, |
| {"TEGetStyleHandle", (PyCFunction)TEObj_TEGetStyleHandle, 1, |
| "() -> (TEStyleHandle _rv)"}, |
| {"TEGetStyle", (PyCFunction)TEObj_TEGetStyle, 1, |
| "(short offset) -> (TextStyle theStyle, short lineHeight, short fontAscent)"}, |
| {"TEStylePaste", (PyCFunction)TEObj_TEStylePaste, 1, |
| "() -> None"}, |
| {"TESetStyle", (PyCFunction)TEObj_TESetStyle, 1, |
| "(short mode, TextStyle newStyle, Boolean fRedraw) -> None"}, |
| {"TEReplaceStyle", (PyCFunction)TEObj_TEReplaceStyle, 1, |
| "(short mode, TextStyle oldStyle, TextStyle newStyle, Boolean fRedraw) -> None"}, |
| {"TEGetStyleScrapHandle", (PyCFunction)TEObj_TEGetStyleScrapHandle, 1, |
| "() -> (StScrpHandle _rv)"}, |
| {"TEStyleInsert", (PyCFunction)TEObj_TEStyleInsert, 1, |
| "(Buffer text, StScrpHandle hST) -> None"}, |
| {"TEGetHeight", (PyCFunction)TEObj_TEGetHeight, 1, |
| "(long endLine, long startLine) -> (long _rv)"}, |
| {"TEContinuousStyle", (PyCFunction)TEObj_TEContinuousStyle, 1, |
| "(short mode, TextStyle aStyle) -> (Boolean _rv, short mode, TextStyle aStyle)"}, |
| {"TEUseStyleScrap", (PyCFunction)TEObj_TEUseStyleScrap, 1, |
| "(long rangeStart, long rangeEnd, StScrpHandle newStyles, Boolean fRedraw) -> None"}, |
| {"TENumStyles", (PyCFunction)TEObj_TENumStyles, 1, |
| "(long rangeStart, long rangeEnd) -> (long _rv)"}, |
| {"TEFeatureFlag", (PyCFunction)TEObj_TEFeatureFlag, 1, |
| "(short feature, short action) -> (short _rv)"}, |
| {"TEGetHiliteRgn", (PyCFunction)TEObj_TEGetHiliteRgn, 1, |
| "(RgnHandle region) -> None"}, |
| {"as_Resource", (PyCFunction)TEObj_as_Resource, 1, |
| "() -> (Handle _rv)"}, |
| {NULL, NULL, 0} |
| }; |
| |
| PyMethodChain TEObj_chain = { TEObj_methods, NULL }; |
| |
| static PyObject *TEObj_getattr(TEObject *self, char *name) |
| { |
| |
| if( strcmp(name, "destRect") == 0 ) |
| return Py_BuildValue("O&", PyMac_BuildRect, |
| &(*self->ob_itself)->destRect); |
| if( strcmp(name, "viewRect") == 0 ) |
| return Py_BuildValue("O&", PyMac_BuildRect, |
| &(*self->ob_itself)->viewRect); |
| if( strcmp(name, "selRect") == 0 ) |
| return Py_BuildValue("O&", PyMac_BuildRect, |
| &(*self->ob_itself)->selRect); |
| if( strcmp(name, "lineHeight") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->lineHeight); |
| if( strcmp(name, "fontAscent") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->fontAscent); |
| if( strcmp(name, "selPoint") == 0 ) |
| return Py_BuildValue("O&", PyMac_BuildPoint, |
| (*self->ob_itself)->selPoint); |
| if( strcmp(name, "selStart") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->selStart); |
| if( strcmp(name, "selEnd") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->selEnd); |
| if( strcmp(name, "active") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->active); |
| if( strcmp(name, "just") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->just); |
| if( strcmp(name, "teLength") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->teLength); |
| if( strcmp(name, "txFont") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->txFont); |
| if( strcmp(name, "txFace") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->txFace); |
| if( strcmp(name, "txMode") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->txMode); |
| if( strcmp(name, "txSize") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->txSize); |
| if( strcmp(name, "nLines") == 0 ) |
| return Py_BuildValue("h", (*self->ob_itself)->nLines); |
| |
| return Py_FindMethodInChain(&TEObj_chain, (PyObject *)self, name); |
| } |
| |
| #define TEObj_setattr NULL |
| |
| #define TEObj_compare NULL |
| |
| #define TEObj_repr NULL |
| |
| #define TEObj_hash NULL |
| |
| PyTypeObject TE_Type = { |
| PyObject_HEAD_INIT(NULL) |
| 0, /*ob_size*/ |
| "_TE.TE", /*tp_name*/ |
| sizeof(TEObject), /*tp_basicsize*/ |
| 0, /*tp_itemsize*/ |
| /* methods */ |
| (destructor) TEObj_dealloc, /*tp_dealloc*/ |
| 0, /*tp_print*/ |
| (getattrfunc) TEObj_getattr, /*tp_getattr*/ |
| (setattrfunc) TEObj_setattr, /*tp_setattr*/ |
| (cmpfunc) TEObj_compare, /*tp_compare*/ |
| (reprfunc) TEObj_repr, /*tp_repr*/ |
| (PyNumberMethods *)0, /* tp_as_number */ |
| (PySequenceMethods *)0, /* tp_as_sequence */ |
| (PyMappingMethods *)0, /* tp_as_mapping */ |
| (hashfunc) TEObj_hash, /*tp_hash*/ |
| }; |
| |
| /* ----------------------- End object type TE ----------------------- */ |
| |
| |
| static PyObject *TE_TEScrapHandle(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Handle _rv; |
| #ifndef TEScrapHandle |
| PyMac_PRECHECK(TEScrapHandle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _rv = TEScrapHandle(); |
| _res = Py_BuildValue("O&", |
| ResObj_New, _rv); |
| return _res; |
| } |
| |
| static PyObject *TE_TEGetScrapLength(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| long _rv; |
| #ifndef TEGetScrapLength |
| PyMac_PRECHECK(TEGetScrapLength); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _rv = TEGetScrapLength(); |
| _res = Py_BuildValue("l", |
| _rv); |
| return _res; |
| } |
| |
| static PyObject *TE_TENew(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| TEHandle _rv; |
| Rect destRect; |
| Rect viewRect; |
| #ifndef TENew |
| PyMac_PRECHECK(TENew); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&O&", |
| PyMac_GetRect, &destRect, |
| PyMac_GetRect, &viewRect)) |
| return NULL; |
| _rv = TENew(&destRect, |
| &viewRect); |
| _res = Py_BuildValue("O&", |
| TEObj_New, _rv); |
| return _res; |
| } |
| |
| static PyObject *TE_TETextBox(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| char *text__in__; |
| long text__len__; |
| int text__in_len__; |
| Rect box; |
| short just; |
| #ifndef TETextBox |
| PyMac_PRECHECK(TETextBox); |
| #endif |
| if (!PyArg_ParseTuple(_args, "s#O&h", |
| &text__in__, &text__in_len__, |
| PyMac_GetRect, &box, |
| &just)) |
| return NULL; |
| text__len__ = text__in_len__; |
| TETextBox(text__in__, text__len__, |
| &box, |
| just); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TE_TEStyleNew(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| TEHandle _rv; |
| Rect destRect; |
| Rect viewRect; |
| #ifndef TEStyleNew |
| PyMac_PRECHECK(TEStyleNew); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&O&", |
| PyMac_GetRect, &destRect, |
| PyMac_GetRect, &viewRect)) |
| return NULL; |
| _rv = TEStyleNew(&destRect, |
| &viewRect); |
| _res = Py_BuildValue("O&", |
| TEObj_New, _rv); |
| return _res; |
| } |
| |
| static PyObject *TE_TESetScrapLength(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| long length; |
| #ifndef TESetScrapLength |
| PyMac_PRECHECK(TESetScrapLength); |
| #endif |
| if (!PyArg_ParseTuple(_args, "l", |
| &length)) |
| return NULL; |
| TESetScrapLength(length); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TE_TEFromScrap(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSErr _err; |
| #ifndef TEFromScrap |
| PyMac_PRECHECK(TEFromScrap); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _err = TEFromScrap(); |
| if (_err != noErr) return PyMac_Error(_err); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TE_TEToScrap(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSErr _err; |
| #ifndef TEToScrap |
| PyMac_PRECHECK(TEToScrap); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _err = TEToScrap(); |
| if (_err != noErr) return PyMac_Error(_err); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| #if TARGET_API_MAC_CARBON |
| |
| static PyObject *TE_TEGetScrapHandle(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Handle _rv; |
| #ifndef TEGetScrapHandle |
| PyMac_PRECHECK(TEGetScrapHandle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _rv = TEGetScrapHandle(); |
| _res = Py_BuildValue("O&", |
| ResObj_New, _rv); |
| return _res; |
| } |
| #endif |
| |
| #if TARGET_API_MAC_CARBON |
| |
| static PyObject *TE_TESetScrapHandle(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| Handle value; |
| #ifndef TESetScrapHandle |
| PyMac_PRECHECK(TESetScrapHandle); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&", |
| ResObj_Convert, &value)) |
| return NULL; |
| TESetScrapHandle(value); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| #endif |
| |
| static PyObject *TE_LMGetWordRedraw(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| UInt8 _rv; |
| #ifndef LMGetWordRedraw |
| PyMac_PRECHECK(LMGetWordRedraw); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _rv = LMGetWordRedraw(); |
| _res = Py_BuildValue("b", |
| _rv); |
| return _res; |
| } |
| |
| static PyObject *TE_LMSetWordRedraw(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| UInt8 value; |
| #ifndef LMSetWordRedraw |
| PyMac_PRECHECK(LMSetWordRedraw); |
| #endif |
| if (!PyArg_ParseTuple(_args, "b", |
| &value)) |
| return NULL; |
| LMSetWordRedraw(value); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *TE_as_TE(PyObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| TEHandle _rv; |
| Handle h; |
| #ifndef as_TE |
| PyMac_PRECHECK(as_TE); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&", |
| ResObj_Convert, &h)) |
| return NULL; |
| _rv = as_TE(h); |
| _res = Py_BuildValue("O&", |
| TEObj_New, _rv); |
| return _res; |
| } |
| |
| static PyMethodDef TE_methods[] = { |
| {"TEScrapHandle", (PyCFunction)TE_TEScrapHandle, 1, |
| "() -> (Handle _rv)"}, |
| {"TEGetScrapLength", (PyCFunction)TE_TEGetScrapLength, 1, |
| "() -> (long _rv)"}, |
| {"TENew", (PyCFunction)TE_TENew, 1, |
| "(Rect destRect, Rect viewRect) -> (TEHandle _rv)"}, |
| {"TETextBox", (PyCFunction)TE_TETextBox, 1, |
| "(Buffer text, Rect box, short just) -> None"}, |
| {"TEStyleNew", (PyCFunction)TE_TEStyleNew, 1, |
| "(Rect destRect, Rect viewRect) -> (TEHandle _rv)"}, |
| {"TESetScrapLength", (PyCFunction)TE_TESetScrapLength, 1, |
| "(long length) -> None"}, |
| {"TEFromScrap", (PyCFunction)TE_TEFromScrap, 1, |
| "() -> None"}, |
| {"TEToScrap", (PyCFunction)TE_TEToScrap, 1, |
| "() -> None"}, |
| |
| #if TARGET_API_MAC_CARBON |
| {"TEGetScrapHandle", (PyCFunction)TE_TEGetScrapHandle, 1, |
| "() -> (Handle _rv)"}, |
| #endif |
| |
| #if TARGET_API_MAC_CARBON |
| {"TESetScrapHandle", (PyCFunction)TE_TESetScrapHandle, 1, |
| "(Handle value) -> None"}, |
| #endif |
| {"LMGetWordRedraw", (PyCFunction)TE_LMGetWordRedraw, 1, |
| "() -> (UInt8 _rv)"}, |
| {"LMSetWordRedraw", (PyCFunction)TE_LMSetWordRedraw, 1, |
| "(UInt8 value) -> None"}, |
| {"as_TE", (PyCFunction)TE_as_TE, 1, |
| "(Handle h) -> (TEHandle _rv)"}, |
| {NULL, NULL, 0} |
| }; |
| |
| |
| |
| |
| void init_TE(void) |
| { |
| PyObject *m; |
| PyObject *d; |
| |
| |
| |
| PyMac_INIT_TOOLBOX_OBJECT_NEW(TEHandle, TEObj_New); |
| PyMac_INIT_TOOLBOX_OBJECT_CONVERT(TEHandle, TEObj_Convert); |
| |
| |
| m = Py_InitModule("_TE", TE_methods); |
| d = PyModule_GetDict(m); |
| TE_Error = PyMac_GetOSErrException(); |
| if (TE_Error == NULL || |
| PyDict_SetItemString(d, "Error", TE_Error) != 0) |
| return; |
| TE_Type.ob_type = &PyType_Type; |
| Py_INCREF(&TE_Type); |
| if (PyDict_SetItemString(d, "TEType", (PyObject *)&TE_Type) != 0) |
| Py_FatalError("can't initialize TEType"); |
| } |
| |
| /* ========================= End module _TE ========================= */ |
| |