summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/te
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>1999-12-23 14:32:06 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>1999-12-23 14:32:06 (GMT)
commita1a0fef2ea9ece5b16f9e6c37800778c64844e69 (patch)
tree6af31ec1186b5ebe0aed89f5c4159445fff61381 /Mac/Modules/te
parent7b912120caa517ef4fa65eefc26e63f3dea8009a (diff)
downloadcpython-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.c37
-rw-r--r--Mac/Modules/te/tesupport.py11
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)