diff options
author | Benjamin Peterson <benjamin@python.org> | 2008-05-12 22:25:16 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2008-05-12 22:25:16 (GMT) |
commit | 69a07fbd9b2c1e2d203532d4babbc6d874d389ee (patch) | |
tree | 822d06c6602339d309b30584ca0bfd05f5b56edc /Mac/Modules/list/_Listmodule.c | |
parent | a005b34f14fd4548c84886244b68d2c34e75edbd (diff) | |
download | cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.zip cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.tar.gz cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.tar.bz2 |
Remove the Mac modules
Diffstat (limited to 'Mac/Modules/list/_Listmodule.c')
-rw-r--r-- | Mac/Modules/list/_Listmodule.c | 1129 |
1 files changed, 0 insertions, 1129 deletions
diff --git a/Mac/Modules/list/_Listmodule.c b/Mac/Modules/list/_Listmodule.c deleted file mode 100644 index 504ceff..0000000 --- a/Mac/Modules/list/_Listmodule.c +++ /dev/null @@ -1,1129 +0,0 @@ - -/* ========================== Module _List ========================== */ - -#include "Python.h" - - - -#include "pymactoolbox.h" - -/* 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) - - -#include <Carbon/Carbon.h> - -#ifdef USE_TOOLBOX_OBJECT_GLUE -extern PyObject *_ListObj_New(ListHandle); -extern int _ListObj_Convert(PyObject *, ListHandle *); - -#define ListObj_New _ListObj_New -#define ListObj_Convert _ListObj_Convert -#endif - -#define as_List(x) ((ListHandle)x) -#define as_Resource(lh) ((Handle)lh) - -static ListDefUPP myListDefFunctionUPP; - - -static PyObject *List_Error; - -/* ------------------------ Object type List ------------------------ */ - -PyTypeObject List_Type; - -#define ListObj_Check(x) (Py_TYPE(x) == &List_Type || PyObject_TypeCheck((x), &List_Type)) - -typedef struct ListObject { - PyObject_HEAD - ListHandle ob_itself; - PyObject *ob_ldef_func; - int ob_must_be_disposed; -} ListObject; - -PyObject *ListObj_New(ListHandle itself) -{ - ListObject *it; - if (itself == NULL) { - PyErr_SetString(List_Error,"Cannot create null List"); - return NULL; - } - it = PyObject_NEW(ListObject, &List_Type); - if (it == NULL) return NULL; - it->ob_itself = itself; - it->ob_ldef_func = NULL; - it->ob_must_be_disposed = 1; - SetListRefCon(itself, (long)it); - return (PyObject *)it; -} - -int ListObj_Convert(PyObject *v, ListHandle *p_itself) -{ - if (!ListObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "List required"); - return 0; - } - *p_itself = ((ListObject *)v)->ob_itself; - return 1; -} - -static void ListObj_dealloc(ListObject *self) -{ - Py_XDECREF(self->ob_ldef_func); - self->ob_ldef_func = NULL; - SetListRefCon(self->ob_itself, (long)0); - if (self->ob_must_be_disposed && self->ob_itself) LDispose(self->ob_itself); - Py_TYPE(self)->tp_free((PyObject *)self); -} - -static PyObject *ListObj_LAddColumn(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - short _rv; - short count; - short colNum; - if (!PyArg_ParseTuple(_args, "hh", - &count, - &colNum)) - return NULL; - _rv = LAddColumn(count, - colNum, - _self->ob_itself); - _res = Py_BuildValue("h", - _rv); - return _res; -} - -static PyObject *ListObj_LAddRow(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - short _rv; - short count; - short rowNum; - if (!PyArg_ParseTuple(_args, "hh", - &count, - &rowNum)) - return NULL; - _rv = LAddRow(count, - rowNum, - _self->ob_itself); - _res = Py_BuildValue("h", - _rv); - return _res; -} - -static PyObject *ListObj_LDelColumn(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - short count; - short colNum; - if (!PyArg_ParseTuple(_args, "hh", - &count, - &colNum)) - return NULL; - LDelColumn(count, - colNum, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LDelRow(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - short count; - short rowNum; - if (!PyArg_ParseTuple(_args, "hh", - &count, - &rowNum)) - return NULL; - LDelRow(count, - rowNum, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LGetSelect(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - Boolean next; - Point theCell; - if (!PyArg_ParseTuple(_args, "bO&", - &next, - PyMac_GetPoint, &theCell)) - return NULL; - _rv = LGetSelect(next, - &theCell, - _self->ob_itself); - _res = Py_BuildValue("bO&", - _rv, - PyMac_BuildPoint, theCell); - return _res; -} - -static PyObject *ListObj_LLastClick(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Point _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = LLastClick(_self->ob_itself); - _res = Py_BuildValue("O&", - PyMac_BuildPoint, _rv); - return _res; -} - -static PyObject *ListObj_LNextCell(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - Boolean hNext; - Boolean vNext; - Point theCell; - if (!PyArg_ParseTuple(_args, "bbO&", - &hNext, - &vNext, - PyMac_GetPoint, &theCell)) - return NULL; - _rv = LNextCell(hNext, - vNext, - &theCell, - _self->ob_itself); - _res = Py_BuildValue("bO&", - _rv, - PyMac_BuildPoint, theCell); - return _res; -} - -static PyObject *ListObj_LSize(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - short listWidth; - short listHeight; - if (!PyArg_ParseTuple(_args, "hh", - &listWidth, - &listHeight)) - return NULL; - LSize(listWidth, - listHeight, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LSetDrawingMode(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean drawIt; - if (!PyArg_ParseTuple(_args, "b", - &drawIt)) - return NULL; - LSetDrawingMode(drawIt, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LScroll(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - short dCols; - short dRows; - if (!PyArg_ParseTuple(_args, "hh", - &dCols, - &dRows)) - return NULL; - LScroll(dCols, - dRows, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LAutoScroll(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - LAutoScroll(_self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LUpdate(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - RgnHandle theRgn; - if (!PyArg_ParseTuple(_args, "O&", - ResObj_Convert, &theRgn)) - return NULL; - LUpdate(theRgn, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LActivate(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean act; - if (!PyArg_ParseTuple(_args, "b", - &act)) - return NULL; - LActivate(act, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LCellSize(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Point cSize; - if (!PyArg_ParseTuple(_args, "O&", - PyMac_GetPoint, &cSize)) - return NULL; - LCellSize(cSize, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LClick(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - Point pt; - EventModifiers modifiers; - if (!PyArg_ParseTuple(_args, "O&H", - PyMac_GetPoint, &pt, - &modifiers)) - return NULL; - _rv = LClick(pt, - modifiers, - _self->ob_itself); - _res = Py_BuildValue("b", - _rv); - return _res; -} - -static PyObject *ListObj_LAddToCell(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - char *dataPtr__in__; - short dataPtr__len__; - int dataPtr__in_len__; - Point theCell; - if (!PyArg_ParseTuple(_args, "s#O&", - &dataPtr__in__, &dataPtr__in_len__, - PyMac_GetPoint, &theCell)) - return NULL; - dataPtr__len__ = dataPtr__in_len__; - LAddToCell(dataPtr__in__, dataPtr__len__, - theCell, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LClrCell(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Point theCell; - if (!PyArg_ParseTuple(_args, "O&", - PyMac_GetPoint, &theCell)) - return NULL; - LClrCell(theCell, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LGetCell(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - char *dataPtr__out__; - short dataPtr__len__; - int dataPtr__in_len__; - Point theCell; - if (!PyArg_ParseTuple(_args, "iO&", - &dataPtr__in_len__, - PyMac_GetPoint, &theCell)) - return NULL; - if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL) - { - PyErr_NoMemory(); - goto dataPtr__error__; - } - dataPtr__len__ = dataPtr__in_len__; - LGetCell(dataPtr__out__, &dataPtr__len__, - theCell, - _self->ob_itself); - _res = Py_BuildValue("s#", - dataPtr__out__, (int)dataPtr__len__); - free(dataPtr__out__); - dataPtr__error__: ; - return _res; -} - -static PyObject *ListObj_LRect(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Rect cellRect; - Point theCell; - if (!PyArg_ParseTuple(_args, "O&", - PyMac_GetPoint, &theCell)) - return NULL; - LRect(&cellRect, - theCell, - _self->ob_itself); - _res = Py_BuildValue("O&", - PyMac_BuildRect, &cellRect); - return _res; -} - -static PyObject *ListObj_LSetCell(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - char *dataPtr__in__; - short dataPtr__len__; - int dataPtr__in_len__; - Point theCell; - if (!PyArg_ParseTuple(_args, "s#O&", - &dataPtr__in__, &dataPtr__in_len__, - PyMac_GetPoint, &theCell)) - return NULL; - dataPtr__len__ = dataPtr__in_len__; - LSetCell(dataPtr__in__, dataPtr__len__, - theCell, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LSetSelect(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean setIt; - Point theCell; - if (!PyArg_ParseTuple(_args, "bO&", - &setIt, - PyMac_GetPoint, &theCell)) - return NULL; - LSetSelect(setIt, - theCell, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LDraw(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Point theCell; - if (!PyArg_ParseTuple(_args, "O&", - PyMac_GetPoint, &theCell)) - return NULL; - LDraw(theCell, - _self->ob_itself); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *ListObj_LGetCellDataLocation(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - short offset; - short len; - Point theCell; - if (!PyArg_ParseTuple(_args, "O&", - PyMac_GetPoint, &theCell)) - return NULL; - LGetCellDataLocation(&offset, - &len, - theCell, - _self->ob_itself); - _res = Py_BuildValue("hh", - offset, - len); - return _res; -} - -static PyObject *ListObj_GetListPort(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - CGrafPtr _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListPort(_self->ob_itself); - _res = Py_BuildValue("O&", - GrafObj_New, _rv); - return _res; -} - -static PyObject *ListObj_GetListVerticalScrollBar(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ControlHandle _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListVerticalScrollBar(_self->ob_itself); - _res = Py_BuildValue("O&", - CtlObj_New, _rv); - return _res; -} - -static PyObject *ListObj_GetListHorizontalScrollBar(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ControlHandle _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListHorizontalScrollBar(_self->ob_itself); - _res = Py_BuildValue("O&", - CtlObj_New, _rv); - return _res; -} - -static PyObject *ListObj_GetListActive(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Boolean _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListActive(_self->ob_itself); - _res = Py_BuildValue("b", - _rv); - return _res; -} - -static PyObject *ListObj_GetListClickTime(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - SInt32 _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListClickTime(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *ListObj_GetListRefCon(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - SInt32 _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListRefCon(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *ListObj_GetListDefinition(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Handle _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListDefinition(_self->ob_itself); - _res = Py_BuildValue("O&", - ResObj_New, _rv); - return _res; -} - -static PyObject *ListObj_GetListUserHandle(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Handle _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListUserHandle(_self->ob_itself); - _res = Py_BuildValue("O&", - ResObj_New, _rv); - return _res; -} - -static PyObject *ListObj_GetListDataHandle(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - DataHandle _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListDataHandle(_self->ob_itself); - _res = Py_BuildValue("O&", - ResObj_New, _rv); - return _res; -} - -static PyObject *ListObj_GetListFlags(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OptionBits _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListFlags(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *ListObj_GetListSelectionFlags(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OptionBits _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetListSelectionFlags(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *ListObj_as_Resource(ListObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Handle _rv; - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = as_Resource(_self->ob_itself); - _res = Py_BuildValue("O&", - ResObj_New, _rv); - return _res; -} - -static PyMethodDef ListObj_methods[] = { - {"LAddColumn", (PyCFunction)ListObj_LAddColumn, 1, - PyDoc_STR("(short count, short colNum) -> (short _rv)")}, - {"LAddRow", (PyCFunction)ListObj_LAddRow, 1, - PyDoc_STR("(short count, short rowNum) -> (short _rv)")}, - {"LDelColumn", (PyCFunction)ListObj_LDelColumn, 1, - PyDoc_STR("(short count, short colNum) -> None")}, - {"LDelRow", (PyCFunction)ListObj_LDelRow, 1, - PyDoc_STR("(short count, short rowNum) -> None")}, - {"LGetSelect", (PyCFunction)ListObj_LGetSelect, 1, - PyDoc_STR("(Boolean next, Point theCell) -> (Boolean _rv, Point theCell)")}, - {"LLastClick", (PyCFunction)ListObj_LLastClick, 1, - PyDoc_STR("() -> (Point _rv)")}, - {"LNextCell", (PyCFunction)ListObj_LNextCell, 1, - PyDoc_STR("(Boolean hNext, Boolean vNext, Point theCell) -> (Boolean _rv, Point theCell)")}, - {"LSize", (PyCFunction)ListObj_LSize, 1, - PyDoc_STR("(short listWidth, short listHeight) -> None")}, - {"LSetDrawingMode", (PyCFunction)ListObj_LSetDrawingMode, 1, - PyDoc_STR("(Boolean drawIt) -> None")}, - {"LScroll", (PyCFunction)ListObj_LScroll, 1, - PyDoc_STR("(short dCols, short dRows) -> None")}, - {"LAutoScroll", (PyCFunction)ListObj_LAutoScroll, 1, - PyDoc_STR("() -> None")}, - {"LUpdate", (PyCFunction)ListObj_LUpdate, 1, - PyDoc_STR("(RgnHandle theRgn) -> None")}, - {"LActivate", (PyCFunction)ListObj_LActivate, 1, - PyDoc_STR("(Boolean act) -> None")}, - {"LCellSize", (PyCFunction)ListObj_LCellSize, 1, - PyDoc_STR("(Point cSize) -> None")}, - {"LClick", (PyCFunction)ListObj_LClick, 1, - PyDoc_STR("(Point pt, EventModifiers modifiers) -> (Boolean _rv)")}, - {"LAddToCell", (PyCFunction)ListObj_LAddToCell, 1, - PyDoc_STR("(Buffer dataPtr, Point theCell) -> None")}, - {"LClrCell", (PyCFunction)ListObj_LClrCell, 1, - PyDoc_STR("(Point theCell) -> None")}, - {"LGetCell", (PyCFunction)ListObj_LGetCell, 1, - PyDoc_STR("(Buffer dataPtr, Point theCell) -> (Buffer dataPtr)")}, - {"LRect", (PyCFunction)ListObj_LRect, 1, - PyDoc_STR("(Point theCell) -> (Rect cellRect)")}, - {"LSetCell", (PyCFunction)ListObj_LSetCell, 1, - PyDoc_STR("(Buffer dataPtr, Point theCell) -> None")}, - {"LSetSelect", (PyCFunction)ListObj_LSetSelect, 1, - PyDoc_STR("(Boolean setIt, Point theCell) -> None")}, - {"LDraw", (PyCFunction)ListObj_LDraw, 1, - PyDoc_STR("(Point theCell) -> None")}, - {"LGetCellDataLocation", (PyCFunction)ListObj_LGetCellDataLocation, 1, - PyDoc_STR("(Point theCell) -> (short offset, short len)")}, - {"GetListPort", (PyCFunction)ListObj_GetListPort, 1, - PyDoc_STR("() -> (CGrafPtr _rv)")}, - {"GetListVerticalScrollBar", (PyCFunction)ListObj_GetListVerticalScrollBar, 1, - PyDoc_STR("() -> (ControlHandle _rv)")}, - {"GetListHorizontalScrollBar", (PyCFunction)ListObj_GetListHorizontalScrollBar, 1, - PyDoc_STR("() -> (ControlHandle _rv)")}, - {"GetListActive", (PyCFunction)ListObj_GetListActive, 1, - PyDoc_STR("() -> (Boolean _rv)")}, - {"GetListClickTime", (PyCFunction)ListObj_GetListClickTime, 1, - PyDoc_STR("() -> (SInt32 _rv)")}, - {"GetListRefCon", (PyCFunction)ListObj_GetListRefCon, 1, - PyDoc_STR("() -> (SInt32 _rv)")}, - {"GetListDefinition", (PyCFunction)ListObj_GetListDefinition, 1, - PyDoc_STR("() -> (Handle _rv)")}, - {"GetListUserHandle", (PyCFunction)ListObj_GetListUserHandle, 1, - PyDoc_STR("() -> (Handle _rv)")}, - {"GetListDataHandle", (PyCFunction)ListObj_GetListDataHandle, 1, - PyDoc_STR("() -> (DataHandle _rv)")}, - {"GetListFlags", (PyCFunction)ListObj_GetListFlags, 1, - PyDoc_STR("() -> (OptionBits _rv)")}, - {"GetListSelectionFlags", (PyCFunction)ListObj_GetListSelectionFlags, 1, - PyDoc_STR("() -> (OptionBits _rv)")}, - {"as_Resource", (PyCFunction)ListObj_as_Resource, 1, - PyDoc_STR("() -> (Handle _rv)")}, - {NULL, NULL, 0} -}; - -static PyObject *ListObj_get_listFlags(ListObject *self, void *closure) -{ - return Py_BuildValue("l", (long)GetListFlags(self->ob_itself) & 0xff); -} - -static int ListObj_set_listFlags(ListObject *self, PyObject *v, void *closure) -{ - if (!PyArg_Parse(v, "B", &(*self->ob_itself)->listFlags)) return -1; - return 0; -} - -static PyObject *ListObj_get_selFlags(ListObject *self, void *closure) -{ - return Py_BuildValue("l", (long)GetListSelectionFlags(self->ob_itself) & 0xff); -} - -static int ListObj_set_selFlags(ListObject *self, PyObject *v, void *closure) -{ - if (!PyArg_Parse(v, "B", &(*self->ob_itself)->selFlags)) return -1; - return 0; -} - -static PyObject *ListObj_get_cellSize(ListObject *self, void *closure) -{ - return Py_BuildValue("O&", PyMac_BuildPoint, (*self->ob_itself)->cellSize); -} - -static int ListObj_set_cellSize(ListObject *self, PyObject *v, void *closure) -{ - if (!PyArg_Parse(v, "O&", PyMac_GetPoint, &(*self->ob_itself)->cellSize)) return -1; - return 0; -} - -static PyGetSetDef ListObj_getsetlist[] = { - {"listFlags", (getter)ListObj_get_listFlags, (setter)ListObj_set_listFlags, NULL}, - {"selFlags", (getter)ListObj_get_selFlags, (setter)ListObj_set_selFlags, NULL}, - {"cellSize", (getter)ListObj_get_cellSize, (setter)ListObj_set_cellSize, NULL}, - {NULL, NULL, NULL, NULL}, -}; - - -#define ListObj_compare NULL - -#define ListObj_repr NULL - -#define ListObj_hash NULL -#define ListObj_tp_init 0 - -#define ListObj_tp_alloc PyType_GenericAlloc - -static PyObject *ListObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *_self; - ListHandle itself; - char *kw[] = {"itself", 0}; - - if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, ListObj_Convert, &itself)) return NULL; - if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((ListObject *)_self)->ob_itself = itself; - return _self; -} - -#define ListObj_tp_free PyObject_Del - - -PyTypeObject List_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "_List.List", /*tp_name*/ - sizeof(ListObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) ListObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) ListObj_compare, /*tp_compare*/ - (reprfunc) ListObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) ListObj_hash, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - PyObject_GenericGetAttr, /*tp_getattro*/ - PyObject_GenericSetAttr, /*tp_setattro */ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - ListObj_methods, /* tp_methods */ - 0, /*tp_members*/ - ListObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - ListObj_tp_init, /* tp_init */ - ListObj_tp_alloc, /* tp_alloc */ - ListObj_tp_new, /* tp_new */ - ListObj_tp_free, /* tp_free */ -}; - -/* ---------------------- End object type List ---------------------- */ - - -static PyObject *List_CreateCustomList(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Rect rView; - Rect dataBounds; - Point cellSize; - - PyObject *listDefFunc; - ListDefSpec theSpec; - WindowPtr theWindow; - Boolean drawIt; - Boolean hasGrow; - Boolean scrollHoriz; - Boolean scrollVert; - ListHandle outList; - - if (!PyArg_ParseTuple(_args, "O&O&O&(iO)O&bbbb", - PyMac_GetRect, &rView, - PyMac_GetRect, &dataBounds, - PyMac_GetPoint, &cellSize, - &theSpec.defType, &listDefFunc, - WinObj_Convert, &theWindow, - &drawIt, - &hasGrow, - &scrollHoriz, - &scrollVert)) - return NULL; - - - /* Carbon applications use the CreateCustomList API */ - theSpec.u.userProc = myListDefFunctionUPP; - CreateCustomList(&rView, - &dataBounds, - cellSize, - &theSpec, - theWindow, - drawIt, - hasGrow, - scrollHoriz, - scrollVert, - &outList); - - - _res = ListObj_New(outList); - if (_res == NULL) - return NULL; - Py_INCREF(listDefFunc); - ((ListObject*)_res)->ob_ldef_func = listDefFunc; - return _res; -} - -static PyObject *List_LNew(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle _rv; - Rect rView; - Rect dataBounds; - Point cSize; - short theProc; - WindowPtr theWindow; - Boolean drawIt; - Boolean hasGrow; - Boolean scrollHoriz; - Boolean scrollVert; - if (!PyArg_ParseTuple(_args, "O&O&O&hO&bbbb", - PyMac_GetRect, &rView, - PyMac_GetRect, &dataBounds, - PyMac_GetPoint, &cSize, - &theProc, - WinObj_Convert, &theWindow, - &drawIt, - &hasGrow, - &scrollHoriz, - &scrollVert)) - return NULL; - _rv = LNew(&rView, - &dataBounds, - cSize, - theProc, - theWindow, - drawIt, - hasGrow, - scrollHoriz, - scrollVert); - _res = Py_BuildValue("O&", - ListObj_New, _rv); - return _res; -} - -static PyObject *List_SetListViewBounds(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle list; - Rect view; - if (!PyArg_ParseTuple(_args, "O&O&", - ListObj_Convert, &list, - PyMac_GetRect, &view)) - return NULL; - SetListViewBounds(list, - &view); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *List_SetListPort(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle list; - CGrafPtr port; - if (!PyArg_ParseTuple(_args, "O&O&", - ListObj_Convert, &list, - GrafObj_Convert, &port)) - return NULL; - SetListPort(list, - port); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *List_SetListCellIndent(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle list; - Point indent; - if (!PyArg_ParseTuple(_args, "O&O&", - ListObj_Convert, &list, - PyMac_GetPoint, &indent)) - return NULL; - SetListCellIndent(list, - &indent); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *List_SetListClickTime(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle list; - SInt32 time; - if (!PyArg_ParseTuple(_args, "O&l", - ListObj_Convert, &list, - &time)) - return NULL; - SetListClickTime(list, - time); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *List_SetListRefCon(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle list; - SInt32 refCon; - if (!PyArg_ParseTuple(_args, "O&l", - ListObj_Convert, &list, - &refCon)) - return NULL; - SetListRefCon(list, - refCon); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *List_SetListUserHandle(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle list; - Handle userHandle; - if (!PyArg_ParseTuple(_args, "O&O&", - ListObj_Convert, &list, - ResObj_Convert, &userHandle)) - return NULL; - SetListUserHandle(list, - userHandle); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *List_SetListFlags(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle list; - OptionBits listFlags; - if (!PyArg_ParseTuple(_args, "O&l", - ListObj_Convert, &list, - &listFlags)) - return NULL; - SetListFlags(list, - listFlags); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *List_SetListSelectionFlags(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ListHandle list; - OptionBits selectionFlags; - if (!PyArg_ParseTuple(_args, "O&l", - ListObj_Convert, &list, - &selectionFlags)) - return NULL; - SetListSelectionFlags(list, - selectionFlags); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *List_as_List(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - - Handle h; - ListObject *l; - if (!PyArg_ParseTuple(_args, "O&", ResObj_Convert, &h)) - return NULL; - l = (ListObject *)ListObj_New(as_List(h)); - l->ob_must_be_disposed = 0; - _res = Py_BuildValue("O", l); - return _res; - -} - -static PyMethodDef List_methods[] = { - {"CreateCustomList", (PyCFunction)List_CreateCustomList, 1, - PyDoc_STR("(Rect rView, Rect dataBounds, Point cellSize, ListDefSpec theSpec, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert) -> (ListHandle outList)")}, - {"LNew", (PyCFunction)List_LNew, 1, - PyDoc_STR("(Rect rView, Rect dataBounds, Point cSize, short theProc, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert) -> (ListHandle _rv)")}, - {"SetListViewBounds", (PyCFunction)List_SetListViewBounds, 1, - PyDoc_STR("(ListHandle list, Rect view) -> None")}, - {"SetListPort", (PyCFunction)List_SetListPort, 1, - PyDoc_STR("(ListHandle list, CGrafPtr port) -> None")}, - {"SetListCellIndent", (PyCFunction)List_SetListCellIndent, 1, - PyDoc_STR("(ListHandle list, Point indent) -> None")}, - {"SetListClickTime", (PyCFunction)List_SetListClickTime, 1, - PyDoc_STR("(ListHandle list, SInt32 time) -> None")}, - {"SetListRefCon", (PyCFunction)List_SetListRefCon, 1, - PyDoc_STR("(ListHandle list, SInt32 refCon) -> None")}, - {"SetListUserHandle", (PyCFunction)List_SetListUserHandle, 1, - PyDoc_STR("(ListHandle list, Handle userHandle) -> None")}, - {"SetListFlags", (PyCFunction)List_SetListFlags, 1, - PyDoc_STR("(ListHandle list, OptionBits listFlags) -> None")}, - {"SetListSelectionFlags", (PyCFunction)List_SetListSelectionFlags, 1, - PyDoc_STR("(ListHandle list, OptionBits selectionFlags) -> None")}, - {"as_List", (PyCFunction)List_as_List, 1, - PyDoc_STR("(Resource)->List.\nReturns List object (which is not auto-freed!)")}, - {NULL, NULL, 0} -}; - - - -static void myListDefFunction(SInt16 message, - Boolean selected, - Rect *cellRect, - Cell theCell, - SInt16 dataOffset, - SInt16 dataLen, - ListHandle theList) -{ - PyObject *listDefFunc, *args, *rv=NULL; - ListObject *self; - - self = (ListObject*)GetListRefCon(theList); - if (self == NULL || self->ob_itself != theList) - return; /* nothing we can do */ - listDefFunc = self->ob_ldef_func; - if (listDefFunc == NULL) - return; /* nothing we can do */ - args = Py_BuildValue("hbO&O&hhO", message, - selected, - PyMac_BuildRect, cellRect, - PyMac_BuildPoint, theCell, - dataOffset, - dataLen, - self); - if (args != NULL) { - rv = PyEval_CallObject(listDefFunc, args); - Py_DECREF(args); - } - if (rv == NULL) { - PySys_WriteStderr("error in list definition callback:\n"); - PyErr_Print(); - } else { - Py_DECREF(rv); - } -} - - -void init_List(void) -{ - PyObject *m; - PyObject *d; - - - - myListDefFunctionUPP = NewListDefUPP((ListDefProcPtr)myListDefFunction); - - PyMac_INIT_TOOLBOX_OBJECT_NEW(ListHandle, ListObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ListHandle, ListObj_Convert); - - - m = Py_InitModule("_List", List_methods); - d = PyModule_GetDict(m); - List_Error = PyMac_GetOSErrException(); - if (List_Error == NULL || - PyDict_SetItemString(d, "Error", List_Error) != 0) - return; - Py_TYPE(&List_Type) = &PyType_Type; - if (PyType_Ready(&List_Type) < 0) return; - Py_INCREF(&List_Type); - PyModule_AddObject(m, "List", (PyObject *)&List_Type); - /* Backward-compatible name */ - Py_INCREF(&List_Type); - PyModule_AddObject(m, "ListType", (PyObject *)&List_Type); -} - -/* ======================== End module _List ======================== */ - |