diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1999-12-23 14:32:06 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1999-12-23 14:32:06 (GMT) |
commit | a1a0fef2ea9ece5b16f9e6c37800778c64844e69 (patch) | |
tree | 6af31ec1186b5ebe0aed89f5c4159445fff61381 /Mac/Modules/te | |
parent | 7b912120caa517ef4fa65eefc26e63f3dea8009a (diff) | |
download | cpython-a1a0fef2ea9ece5b16f9e6c37800778c64844e69.zip cpython-a1a0fef2ea9ece5b16f9e6c37800778c64844e69.tar.gz cpython-a1a0fef2ea9ece5b16f9e6c37800778c64844e69.tar.bz2 |
Unified handle-conversion scheme to
handle = Ctl.as_Resource(ctl)
ctl = Ctl.as_Control(handle)
and similarly for List, Menu, TE. The old handle.as_Control() methods are
still there for backward compatability.
Diffstat (limited to 'Mac/Modules/te')
-rw-r--r-- | Mac/Modules/te/TEmodule.c | 37 | ||||
-rw-r--r-- | Mac/Modules/te/tesupport.py | 11 |
2 files changed, 47 insertions, 1 deletions
diff --git a/Mac/Modules/te/TEmodule.c b/Mac/Modules/te/TEmodule.c index 5d5e05a..5b65020 100644 --- a/Mac/Modules/te/TEmodule.c +++ b/Mac/Modules/te/TEmodule.c @@ -44,6 +44,9 @@ extern PyObject *WinObj_WhichWindow(WindowPtr); #include <TextEdit.h> +#define as_TE(h) ((TEHandle)h) +#define as_Handle(teh) ((Handle)teh) + /* Exported by Qdmodule.c: */ extern PyObject *QdRGB_New(RGBColor *); extern int QdRGB_Convert(PyObject *, RGBColor *); @@ -740,6 +743,20 @@ static PyObject *TEObj_TEGetHiliteRgn(_self, _args) return _res; } +static PyObject *TEObj_as_Handle(_self, _args) + TEObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + Handle _rv; + if (!PyArg_ParseTuple(_args, "")) + return NULL; + _rv = as_Handle(_self->ob_itself); + _res = Py_BuildValue("O&", + ResObj_New, _rv); + return _res; +} + static PyMethodDef TEObj_methods[] = { {"TESetText", (PyCFunction)TEObj_TESetText, 1, "(Buffer text) -> None"}, @@ -813,6 +830,8 @@ static PyMethodDef TEObj_methods[] = { "(short feature, short action) -> (short _rv)"}, {"TEGetHiliteRgn", (PyCFunction)TEObj_TEGetHiliteRgn, 1, "(RgnHandle region) -> None"}, + {"as_Handle", (PyCFunction)TEObj_as_Handle, 1, + "() -> (Handle _rv)"}, {NULL, NULL, 0} }; @@ -1029,6 +1048,22 @@ static PyObject *TE_TEToScrap(_self, _args) return _res; } +static PyObject *TE_as_TE(_self, _args) + PyObject *_self; + PyObject *_args; +{ + PyObject *_res = NULL; + TEHandle _rv; + Handle h; + 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)"}, @@ -1046,6 +1081,8 @@ static PyMethodDef TE_methods[] = { "() -> None"}, {"TEToScrap", (PyCFunction)TE_TEToScrap, 1, "() -> None"}, + {"as_TE", (PyCFunction)TE_as_TE, 1, + "(Handle h) -> (TEHandle _rv)"}, {NULL, NULL, 0} }; diff --git a/Mac/Modules/te/tesupport.py b/Mac/Modules/te/tesupport.py index 7802ae9..b078649 100644 --- a/Mac/Modules/te/tesupport.py +++ b/Mac/Modules/te/tesupport.py @@ -23,7 +23,7 @@ from macsupport import * # Create the type objects TEHandle = OpaqueByValueType("TEHandle", "TEObj") CharsHandle = OpaqueByValueType("CharsHandle", "ResObj") -##Handle = OpaqueByValueType("Handle", "ResObj") +Handle = OpaqueByValueType("Handle", "ResObj") StScrpHandle = OpaqueByValueType("StScrpHandle", "ResObj") TEStyleHandle = OpaqueByValueType("TEStyleHandle", "ResObj") RgnHandle = OpaqueByValueType("RgnHandle", "ResObj") @@ -34,6 +34,9 @@ TextStyle_ptr = TextStyle includestuff = includestuff + """ #include <%s>""" % MACHEADERFILE + """ +#define as_TE(h) ((TEHandle)h) +#define as_Resource(teh) ((Handle)teh) + /* Exported by Qdmodule.c: */ extern PyObject *QdRGB_New(RGBColor *); extern int QdRGB_Convert(PyObject *, RGBColor *); @@ -143,6 +146,12 @@ functions = [] methods = [] execfile(INPUTFILE) +# Converter from/to handle +f = Function(TEHandle, 'as_TE', (Handle, 'h', InMode)) +functions.append(f) +f = Method(Handle, 'as_Resource', (TEHandle, 'teh', InMode)) +methods.append(f) + # add the populated lists to the generator groups # (in a different wordl the scan program would generate this) for f in functions: module.add(f) |