[Python-checkins] python/dist/src/Mac/Modules/te _TEmodule.c,1.10,1.11 tesupport.py,1.10,1.11
jackjansen@users.sourceforge.net
jackjansen@users.sourceforge.net
Fri, 29 Nov 2002 15:40:49 -0800
Update of /cvsroot/python/python/dist/src/Mac/Modules/te
In directory sc8-pr-cvs1:/tmp/cvs-serv8673/te
Modified Files:
_TEmodule.c tesupport.py
Log Message:
Converted the Carbon modules to use PEP252-style objects, with
descriptors in stead of manual getattr hooks to get at attributes
of the objects.
For Qd I have in stead gotten rid of most of the attribute access
in favor of the carbon-style accessor methods (with the exception
of visRgn, to be done later), and of the Carbon.Qd.qd global object,
for which accessor functions are also available.
For List I have fixed the fact that various methods were incorrectly
generated as functions.
CF is untouched: PEP252 doesn't allow "poor-mans-inheritance" with
basechain, so it will have to wait for PEP253 support.
Index: _TEmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/te/_TEmodule.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** _TEmodule.c 16 Aug 2002 09:09:31 -0000 1.10
--- _TEmodule.c 29 Nov 2002 23:40:47 -0000 1.11
***************
*** 851,900 ****
};
! 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
--- 851,985 ----
};
! static PyObject *TEObj_get_destRect(TEObject *self, void *closure)
! {
! return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->destRect);
! }
! #define TEObj_set_destRect NULL
!
! static PyObject *TEObj_get_viewRect(TEObject *self, void *closure)
{
+ return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->viewRect);
+ }
! #define TEObj_set_viewRect NULL
!
! static PyObject *TEObj_get_selRect(TEObject *self, void *closure)
! {
! return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->selRect);
}
! #define TEObj_set_selRect NULL
!
! static PyObject *TEObj_get_lineHeight(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->lineHeight);
! }
!
! #define TEObj_set_lineHeight NULL
!
! static PyObject *TEObj_get_fontAscent(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->fontAscent);
! }
!
! #define TEObj_set_fontAscent NULL
!
! static PyObject *TEObj_get_selPoint(TEObject *self, void *closure)
! {
! return Py_BuildValue("O&", PyMac_BuildPoint, (*self->ob_itself)->selPoint);
! }
!
! #define TEObj_set_selPoint NULL
!
! static PyObject *TEObj_get_selStart(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->selStart);
! }
!
! #define TEObj_set_selStart NULL
!
! static PyObject *TEObj_get_selEnd(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->selEnd);
! }
!
! #define TEObj_set_selEnd NULL
!
! static PyObject *TEObj_get_active(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->active);
! }
!
! #define TEObj_set_active NULL
!
! static PyObject *TEObj_get_just(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->just);
! }
!
! #define TEObj_set_just NULL
!
! static PyObject *TEObj_get_teLength(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->teLength);
! }
!
! #define TEObj_set_teLength NULL
!
! static PyObject *TEObj_get_txFont(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->txFont);
! }
!
! #define TEObj_set_txFont NULL
!
! static PyObject *TEObj_get_txFace(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->txFace);
! }
!
! #define TEObj_set_txFace NULL
!
! static PyObject *TEObj_get_txMode(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->txMode);
! }
!
! #define TEObj_set_txMode NULL
!
! static PyObject *TEObj_get_txSize(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->txSize);
! }
!
! #define TEObj_set_txSize NULL
!
! static PyObject *TEObj_get_nLines(TEObject *self, void *closure)
! {
! return Py_BuildValue("h", (*self->ob_itself)->nLines);
! }
!
! #define TEObj_set_nLines NULL
!
! static PyGetSetDef TEObj_getsetlist[] = {
! {"destRect", (getter)TEObj_get_destRect, (setter)TEObj_set_destRect, "Destination rectangle"},
! {"viewRect", (getter)TEObj_get_viewRect, (setter)TEObj_set_viewRect, "Viewing rectangle"},
! {"selRect", (getter)TEObj_get_selRect, (setter)TEObj_set_selRect, "Selection rectangle"},
! {"lineHeight", (getter)TEObj_get_lineHeight, (setter)TEObj_set_lineHeight, "Height of a line"},
! {"fontAscent", (getter)TEObj_get_fontAscent, (setter)TEObj_set_fontAscent, "Ascent of a line"},
! {"selPoint", (getter)TEObj_get_selPoint, (setter)TEObj_set_selPoint, "Selection Point"},
! {"selStart", (getter)TEObj_get_selStart, (setter)TEObj_set_selStart, "Start of selection"},
! {"selEnd", (getter)TEObj_get_selEnd, (setter)TEObj_set_selEnd, "End of selection"},
! {"active", (getter)TEObj_get_active, (setter)TEObj_set_active, "TBD"},
! {"just", (getter)TEObj_get_just, (setter)TEObj_set_just, "Justification"},
! {"teLength", (getter)TEObj_get_teLength, (setter)TEObj_set_teLength, "TBD"},
! {"txFont", (getter)TEObj_get_txFont, (setter)TEObj_set_txFont, "Current font"},
! {"txFace", (getter)TEObj_get_txFace, (setter)TEObj_set_txFace, "Current font variant"},
! {"txMode", (getter)TEObj_get_txMode, (setter)TEObj_set_txMode, "Current text-drawing mode"},
! {"txSize", (getter)TEObj_get_txSize, (setter)TEObj_set_txSize, "Current font size"},
! {"nLines", (getter)TEObj_get_nLines, (setter)TEObj_set_nLines, "TBD"},
! };
!
#define TEObj_compare NULL
***************
*** 913,918 ****
(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*/
--- 998,1003 ----
(destructor) TEObj_dealloc, /*tp_dealloc*/
0, /*tp_print*/
! (getattrfunc)0, /*tp_getattr*/
! (setattrfunc)0, /*tp_setattr*/
(cmpfunc) TEObj_compare, /*tp_compare*/
(reprfunc) TEObj_repr, /*tp_repr*/
***************
*** 921,924 ****
--- 1006,1026 ----
(PyMappingMethods *)0, /* tp_as_mapping */
(hashfunc) TEObj_hash, /*tp_hash*/
+ 0, /*tp_call*/
+ 0, /*tp_str*/
+ PyObject_GenericGetAttr, /*tp_getattro*/
+ PyObject_GenericSetAttr, /*tp_setattro */
+ 0, /*outputHook_tp_as_buffer*/
+ 0, /*outputHook_tp_flags*/
+ 0, /*outputHook_tp_doc*/
+ 0, /*outputHook_tp_traverse*/
+ 0, /*outputHook_tp_clear*/
+ 0, /*outputHook_tp_richcompare*/
+ 0, /*outputHook_tp_weaklistoffset*/
+ 0, /*outputHook_tp_iter*/
+ 0, /*outputHook_tp_iternext*/
+ TEObj_methods, /* tp_methods */
+ 0, /*outputHook_tp_members*/
+ TEObj_getsetlist, /*tp_getset*/
+ 0, /*outputHook_tp_base*/
};
Index: tesupport.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/te/tesupport.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** tesupport.py 25 Mar 2002 00:31:27 -0000 1.10
--- tesupport.py 29 Nov 2002 23:40:47 -0000 1.11
***************
*** 94,98 ****
! class MyObjectDefinition(GlobalObjectDefinition):
def outputCheckNewArg(self):
Output("""if (itself == NULL) {
--- 94,182 ----
! class MyObjectDefinition(PEP252Mixin, GlobalObjectDefinition):
! # Attributes that can be set.
! getsetlist = [
! (
! 'destRect',
! 'return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->destRect);',
! None,
! 'Destination rectangle'
! ), (
! 'viewRect',
! 'return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->viewRect);',
! None,
! 'Viewing rectangle'
! ), (
! 'selRect',
! 'return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->selRect);',
! None,
! 'Selection rectangle'
! ), (
! 'lineHeight',
! 'return Py_BuildValue("h", (*self->ob_itself)->lineHeight);',
! None,
! 'Height of a line'
! ), (
! 'fontAscent',
! 'return Py_BuildValue("h", (*self->ob_itself)->fontAscent);',
! None,
! 'Ascent of a line'
! ), (
! "selPoint",
! 'return Py_BuildValue("O&", PyMac_BuildPoint, (*self->ob_itself)->selPoint);',
! None,
! 'Selection Point'
! ), (
! 'selStart',
! 'return Py_BuildValue("h", (*self->ob_itself)->selStart);',
! None,
! 'Start of selection'
! ), (
! 'selEnd',
! 'return Py_BuildValue("h", (*self->ob_itself)->selEnd);',
! None,
! 'End of selection'
! ), (
! 'active',
! 'return Py_BuildValue("h", (*self->ob_itself)->active);',
! None,
! 'TBD'
! ), (
! 'just',
! 'return Py_BuildValue("h", (*self->ob_itself)->just);',
! None,
! 'Justification'
! ), (
! 'teLength',
! 'return Py_BuildValue("h", (*self->ob_itself)->teLength);',
! None,
! 'TBD'
! ), (
! 'txFont',
! 'return Py_BuildValue("h", (*self->ob_itself)->txFont);',
! None,
! 'Current font'
! ), (
! 'txFace',
! 'return Py_BuildValue("h", (*self->ob_itself)->txFace);',
! None,
! 'Current font variant'
! ), (
! 'txMode',
! 'return Py_BuildValue("h", (*self->ob_itself)->txMode);',
! None,
! 'Current text-drawing mode'
! ), (
! 'txSize',
! 'return Py_BuildValue("h", (*self->ob_itself)->txSize);',
! None,
! 'Current font size'
! ), (
! 'nLines',
! 'return Py_BuildValue("h", (*self->ob_itself)->nLines);',
! None,
! 'TBD'
! )]
!
def outputCheckNewArg(self):
Output("""if (itself == NULL) {
***************
*** 103,145 ****
Output("TEDispose(%s);", itselfname)
- def outputGetattrHook(self):
- Output("""
- 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);
- """)
# From here on it's basically all boiler plate...
--- 187,190 ----