mirror of https://github.com/python/cpython.git
added acces to the cellSize field, rewrote setattr code
This commit is contained in:
parent
b26fbc6447
commit
3b5074b0fb
|
@ -607,11 +607,12 @@ PyMethodChain ListObj_chain = { ListObj_methods, NULL };
|
||||||
static PyObject *ListObj_getattr(ListObject *self, char *name)
|
static PyObject *ListObj_getattr(ListObject *self, char *name)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
/* XXXX Should we HLock() here?? */
|
|
||||||
if ( strcmp(name, "listFlags") == 0 )
|
if ( strcmp(name, "listFlags") == 0 )
|
||||||
return Py_BuildValue("l", (long)GetListFlags(self->ob_itself) & 0xff);
|
return Py_BuildValue("l", (long)GetListFlags(self->ob_itself) & 0xff);
|
||||||
if ( strcmp(name, "selFlags") == 0 )
|
if ( strcmp(name, "selFlags") == 0 )
|
||||||
return Py_BuildValue("l", (long)GetListSelectionFlags(self->ob_itself) & 0xff);
|
return Py_BuildValue("l", (long)GetListSelectionFlags(self->ob_itself) & 0xff);
|
||||||
|
if ( strcmp(name, "cellSize") == 0 )
|
||||||
|
return Py_BuildValue("O&", PyMac_BuildPoint, (*self->ob_itself)->cellSize);
|
||||||
}
|
}
|
||||||
return Py_FindMethodInChain(&ListObj_chain, (PyObject *)self, name);
|
return Py_FindMethodInChain(&ListObj_chain, (PyObject *)self, name);
|
||||||
}
|
}
|
||||||
|
@ -620,19 +621,22 @@ static int
|
||||||
ListObj_setattr(ListObject *self, char *name, PyObject *value)
|
ListObj_setattr(ListObject *self, char *name, PyObject *value)
|
||||||
{
|
{
|
||||||
long intval;
|
long intval;
|
||||||
|
int err = 0;
|
||||||
if ( value == NULL || !PyInt_Check(value) )
|
|
||||||
|
if ( value == NULL ) {
|
||||||
|
PyErr_SetString(PyExc_AttributeError, "Cannot delete attribute");
|
||||||
return -1;
|
return -1;
|
||||||
intval = PyInt_AsLong(value);
|
|
||||||
if (strcmp(name, "listFlags") == 0 ) {
|
|
||||||
SetListFlags(self->ob_itself, intval);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
if (strcmp(name, "selFlags") == 0 ) {
|
if (strcmp(name, "listFlags") == 0 )
|
||||||
SetListSelectionFlags(self->ob_itself, intval);
|
err = PyArg_Parse(value, "B", &(*self->ob_itself)->listFlags);
|
||||||
return 0;
|
else if (strcmp(name, "selFlags") == 0 )
|
||||||
}
|
err = PyArg_Parse(value, "B", &(*self->ob_itself)->selFlags);
|
||||||
return -1;
|
else if (strcmp(name, "cellSize") == 0 )
|
||||||
|
err = PyArg_Parse(value, "O&", PyMac_GetPoint, &(*self->ob_itself)->cellSize);
|
||||||
|
else
|
||||||
|
PyErr_SetString(PyExc_AttributeError, "No such attribute");
|
||||||
|
if (err) return 0;
|
||||||
|
else return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -137,11 +137,12 @@ def parseArgumentList(self, args):
|
||||||
self.argumentList.append(self.itself)
|
self.argumentList.append(self.itself)
|
||||||
|
|
||||||
getattrHookCode = """{
|
getattrHookCode = """{
|
||||||
/* XXXX Should we HLock() here?? */
|
|
||||||
if ( strcmp(name, "listFlags") == 0 )
|
if ( strcmp(name, "listFlags") == 0 )
|
||||||
return Py_BuildValue("l", (long)GetListFlags(self->ob_itself) & 0xff);
|
return Py_BuildValue("l", (long)GetListFlags(self->ob_itself) & 0xff);
|
||||||
if ( strcmp(name, "selFlags") == 0 )
|
if ( strcmp(name, "selFlags") == 0 )
|
||||||
return Py_BuildValue("l", (long)GetListSelectionFlags(self->ob_itself) & 0xff);
|
return Py_BuildValue("l", (long)GetListSelectionFlags(self->ob_itself) & 0xff);
|
||||||
|
if ( strcmp(name, "cellSize") == 0 )
|
||||||
|
return Py_BuildValue("O&", PyMac_BuildPoint, (*self->ob_itself)->cellSize);
|
||||||
}"""
|
}"""
|
||||||
|
|
||||||
setattrCode = """
|
setattrCode = """
|
||||||
|
@ -149,19 +150,22 @@ def parseArgumentList(self, args):
|
||||||
ListObj_setattr(ListObject *self, char *name, PyObject *value)
|
ListObj_setattr(ListObject *self, char *name, PyObject *value)
|
||||||
{
|
{
|
||||||
long intval;
|
long intval;
|
||||||
|
int err = 0;
|
||||||
if ( value == NULL || !PyInt_Check(value) )
|
|
||||||
|
if ( value == NULL ) {
|
||||||
|
PyErr_SetString(PyExc_AttributeError, "Cannot delete attribute");
|
||||||
return -1;
|
return -1;
|
||||||
intval = PyInt_AsLong(value);
|
|
||||||
if (strcmp(name, "listFlags") == 0 ) {
|
|
||||||
SetListFlags(self->ob_itself, intval);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
if (strcmp(name, "selFlags") == 0 ) {
|
if (strcmp(name, "listFlags") == 0 )
|
||||||
SetListSelectionFlags(self->ob_itself, intval);
|
err = PyArg_Parse(value, "B", &(*self->ob_itself)->listFlags);
|
||||||
return 0;
|
else if (strcmp(name, "selFlags") == 0 )
|
||||||
}
|
err = PyArg_Parse(value, "B", &(*self->ob_itself)->selFlags);
|
||||||
return -1;
|
else if (strcmp(name, "cellSize") == 0 )
|
||||||
|
err = PyArg_Parse(value, "O&", PyMac_GetPoint, &(*self->ob_itself)->cellSize);
|
||||||
|
else
|
||||||
|
PyErr_SetString(PyExc_AttributeError, "No such attribute");
|
||||||
|
if (err) return 0;
|
||||||
|
else return -1;
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue