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/cm | |
parent | a005b34f14fd4548c84886244b68d2c34e75edbd (diff) | |
download | cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.zip cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.tar.gz cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.tar.bz2 |
Remove the Mac modules
Diffstat (limited to 'Mac/Modules/cm')
-rw-r--r-- | Mac/Modules/cm/_Cmmodule.c | 945 | ||||
-rw-r--r-- | Mac/Modules/cm/cmscan.py | 88 | ||||
-rw-r--r-- | Mac/Modules/cm/cmsupport.py | 125 |
3 files changed, 0 insertions, 1158 deletions
diff --git a/Mac/Modules/cm/_Cmmodule.c b/Mac/Modules/cm/_Cmmodule.c deleted file mode 100644 index c445981..0000000 --- a/Mac/Modules/cm/_Cmmodule.c +++ /dev/null @@ -1,945 +0,0 @@ - -/* =========================== Module _Cm =========================== */ - -#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 *_CmpObj_New(Component); -extern int _CmpObj_Convert(PyObject *, Component *); -extern PyObject *_CmpInstObj_New(ComponentInstance); -extern int _CmpInstObj_Convert(PyObject *, ComponentInstance *); - -#define CmpObj_New _CmpObj_New -#define CmpObj_Convert _CmpObj_Convert -#define CmpInstObj_New _CmpInstObj_New -#define CmpInstObj_Convert _CmpInstObj_Convert -#endif - -/* -** Parse/generate ComponentDescriptor records -*/ -static PyObject * -CmpDesc_New(ComponentDescription *itself) -{ - - return Py_BuildValue("O&O&O&ll", - PyMac_BuildOSType, itself->componentType, - PyMac_BuildOSType, itself->componentSubType, - PyMac_BuildOSType, itself->componentManufacturer, - itself->componentFlags, itself->componentFlagsMask); -} - -static int -CmpDesc_Convert(PyObject *v, ComponentDescription *p_itself) -{ - return PyArg_ParseTuple(v, "O&O&O&ll", - PyMac_GetOSType, &p_itself->componentType, - PyMac_GetOSType, &p_itself->componentSubType, - PyMac_GetOSType, &p_itself->componentManufacturer, - &p_itself->componentFlags, &p_itself->componentFlagsMask); -} - - -static PyObject *Cm_Error; - -/* ----------------- Object type ComponentInstance ------------------ */ - -PyTypeObject ComponentInstance_Type; - -#define CmpInstObj_Check(x) (Py_TYPE(x) == &ComponentInstance_Type || PyObject_TypeCheck((x), &ComponentInstance_Type)) - -typedef struct ComponentInstanceObject { - PyObject_HEAD - ComponentInstance ob_itself; -} ComponentInstanceObject; - -PyObject *CmpInstObj_New(ComponentInstance itself) -{ - ComponentInstanceObject *it; - if (itself == NULL) { - PyErr_SetString(Cm_Error,"NULL ComponentInstance"); - return NULL; - } - it = PyObject_NEW(ComponentInstanceObject, &ComponentInstance_Type); - if (it == NULL) return NULL; - it->ob_itself = itself; - return (PyObject *)it; -} - -int CmpInstObj_Convert(PyObject *v, ComponentInstance *p_itself) -{ - if (!CmpInstObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "ComponentInstance required"); - return 0; - } - *p_itself = ((ComponentInstanceObject *)v)->ob_itself; - return 1; -} - -static void CmpInstObj_dealloc(ComponentInstanceObject *self) -{ - /* Cleanup of self->ob_itself goes here */ - Py_TYPE(self)->tp_free((PyObject *)self); -} - -static PyObject *CmpInstObj_CloseComponent(ComponentInstanceObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; -#ifndef CloseComponent - PyMac_PRECHECK(CloseComponent); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _err = CloseComponent(_self->ob_itself); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpInstObj_GetComponentInstanceError(ComponentInstanceObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; -#ifndef GetComponentInstanceError - PyMac_PRECHECK(GetComponentInstanceError); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _err = GetComponentInstanceError(_self->ob_itself); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpInstObj_SetComponentInstanceError(ComponentInstanceObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr theError; -#ifndef SetComponentInstanceError - PyMac_PRECHECK(SetComponentInstanceError); -#endif - if (!PyArg_ParseTuple(_args, "h", - &theError)) - return NULL; - SetComponentInstanceError(_self->ob_itself, - theError); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpInstObj_GetComponentInstanceStorage(ComponentInstanceObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Handle _rv; -#ifndef GetComponentInstanceStorage - PyMac_PRECHECK(GetComponentInstanceStorage); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetComponentInstanceStorage(_self->ob_itself); - _res = Py_BuildValue("O&", - ResObj_New, _rv); - return _res; -} - -static PyObject *CmpInstObj_SetComponentInstanceStorage(ComponentInstanceObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Handle theStorage; -#ifndef SetComponentInstanceStorage - PyMac_PRECHECK(SetComponentInstanceStorage); -#endif - if (!PyArg_ParseTuple(_args, "O&", - ResObj_Convert, &theStorage)) - return NULL; - SetComponentInstanceStorage(_self->ob_itself, - theStorage); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpInstObj_ComponentFunctionImplemented(ComponentInstanceObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long _rv; - short ftnNumber; -#ifndef ComponentFunctionImplemented - PyMac_PRECHECK(ComponentFunctionImplemented); -#endif - if (!PyArg_ParseTuple(_args, "h", - &ftnNumber)) - return NULL; - _rv = ComponentFunctionImplemented(_self->ob_itself, - ftnNumber); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CmpInstObj_GetComponentVersion(ComponentInstanceObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long _rv; -#ifndef GetComponentVersion - PyMac_PRECHECK(GetComponentVersion); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetComponentVersion(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CmpInstObj_ComponentSetTarget(ComponentInstanceObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long _rv; - ComponentInstance target; -#ifndef ComponentSetTarget - PyMac_PRECHECK(ComponentSetTarget); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CmpInstObj_Convert, &target)) - return NULL; - _rv = ComponentSetTarget(_self->ob_itself, - target); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyMethodDef CmpInstObj_methods[] = { - {"CloseComponent", (PyCFunction)CmpInstObj_CloseComponent, 1, - PyDoc_STR("() -> None")}, - {"GetComponentInstanceError", (PyCFunction)CmpInstObj_GetComponentInstanceError, 1, - PyDoc_STR("() -> None")}, - {"SetComponentInstanceError", (PyCFunction)CmpInstObj_SetComponentInstanceError, 1, - PyDoc_STR("(OSErr theError) -> None")}, - {"GetComponentInstanceStorage", (PyCFunction)CmpInstObj_GetComponentInstanceStorage, 1, - PyDoc_STR("() -> (Handle _rv)")}, - {"SetComponentInstanceStorage", (PyCFunction)CmpInstObj_SetComponentInstanceStorage, 1, - PyDoc_STR("(Handle theStorage) -> None")}, - {"ComponentFunctionImplemented", (PyCFunction)CmpInstObj_ComponentFunctionImplemented, 1, - PyDoc_STR("(short ftnNumber) -> (long _rv)")}, - {"GetComponentVersion", (PyCFunction)CmpInstObj_GetComponentVersion, 1, - PyDoc_STR("() -> (long _rv)")}, - {"ComponentSetTarget", (PyCFunction)CmpInstObj_ComponentSetTarget, 1, - PyDoc_STR("(ComponentInstance target) -> (long _rv)")}, - {NULL, NULL, 0} -}; - -#define CmpInstObj_getsetlist NULL - - -#define CmpInstObj_compare NULL - -#define CmpInstObj_repr NULL - -#define CmpInstObj_hash NULL -#define CmpInstObj_tp_init 0 - -#define CmpInstObj_tp_alloc PyType_GenericAlloc - -static PyObject *CmpInstObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *_self; - ComponentInstance itself; - char *kw[] = {"itself", 0}; - - if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CmpInstObj_Convert, &itself)) return NULL; - if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((ComponentInstanceObject *)_self)->ob_itself = itself; - return _self; -} - -#define CmpInstObj_tp_free PyObject_Del - - -PyTypeObject ComponentInstance_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "_Cm.ComponentInstance", /*tp_name*/ - sizeof(ComponentInstanceObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CmpInstObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CmpInstObj_compare, /*tp_compare*/ - (reprfunc) CmpInstObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CmpInstObj_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*/ - CmpInstObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CmpInstObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CmpInstObj_tp_init, /* tp_init */ - CmpInstObj_tp_alloc, /* tp_alloc */ - CmpInstObj_tp_new, /* tp_new */ - CmpInstObj_tp_free, /* tp_free */ -}; - -/* --------------- End object type ComponentInstance ---------------- */ - - -/* --------------------- Object type Component ---------------------- */ - -PyTypeObject Component_Type; - -#define CmpObj_Check(x) (Py_TYPE(x) == &Component_Type || PyObject_TypeCheck((x), &Component_Type)) - -typedef struct ComponentObject { - PyObject_HEAD - Component ob_itself; -} ComponentObject; - -PyObject *CmpObj_New(Component itself) -{ - ComponentObject *it; - if (itself == NULL) { - /* XXXX Or should we return None? */ - PyErr_SetString(Cm_Error,"No such component"); - return NULL; - } - it = PyObject_NEW(ComponentObject, &Component_Type); - if (it == NULL) return NULL; - it->ob_itself = itself; - return (PyObject *)it; -} - -int CmpObj_Convert(PyObject *v, Component *p_itself) -{ - if ( v == Py_None ) { - *p_itself = 0; - return 1; - } - if (!CmpObj_Check(v)) - { - PyErr_SetString(PyExc_TypeError, "Component required"); - return 0; - } - *p_itself = ((ComponentObject *)v)->ob_itself; - return 1; -} - -static void CmpObj_dealloc(ComponentObject *self) -{ - /* Cleanup of self->ob_itself goes here */ - Py_TYPE(self)->tp_free((PyObject *)self); -} - -static PyObject *CmpObj_UnregisterComponent(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; -#ifndef UnregisterComponent - PyMac_PRECHECK(UnregisterComponent); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _err = UnregisterComponent(_self->ob_itself); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpObj_GetComponentInfo(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; - ComponentDescription cd; - Handle componentName; - Handle componentInfo; - Handle componentIcon; -#ifndef GetComponentInfo - PyMac_PRECHECK(GetComponentInfo); -#endif - if (!PyArg_ParseTuple(_args, "O&O&O&", - ResObj_Convert, &componentName, - ResObj_Convert, &componentInfo, - ResObj_Convert, &componentIcon)) - return NULL; - _err = GetComponentInfo(_self->ob_itself, - &cd, - componentName, - componentInfo, - componentIcon); - if (_err != noErr) return PyMac_Error(_err); - _res = Py_BuildValue("O&", - CmpDesc_New, &cd); - return _res; -} - -static PyObject *CmpObj_OpenComponent(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ComponentInstance _rv; -#ifndef OpenComponent - PyMac_PRECHECK(OpenComponent); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = OpenComponent(_self->ob_itself); - _res = Py_BuildValue("O&", - CmpInstObj_New, _rv); - return _res; -} - -static PyObject *CmpObj_ResolveComponentAlias(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Component _rv; -#ifndef ResolveComponentAlias - PyMac_PRECHECK(ResolveComponentAlias); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = ResolveComponentAlias(_self->ob_itself); - _res = Py_BuildValue("O&", - CmpObj_New, _rv); - return _res; -} - -static PyObject *CmpObj_GetComponentPublicIndString(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; - Str255 theString; - short strListID; - short index; -#ifndef GetComponentPublicIndString - PyMac_PRECHECK(GetComponentPublicIndString); -#endif - if (!PyArg_ParseTuple(_args, "O&hh", - PyMac_GetStr255, theString, - &strListID, - &index)) - return NULL; - _err = GetComponentPublicIndString(_self->ob_itself, - theString, - strListID, - index); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpObj_GetComponentRefcon(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long _rv; -#ifndef GetComponentRefcon - PyMac_PRECHECK(GetComponentRefcon); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetComponentRefcon(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CmpObj_SetComponentRefcon(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long theRefcon; -#ifndef SetComponentRefcon - PyMac_PRECHECK(SetComponentRefcon); -#endif - if (!PyArg_ParseTuple(_args, "l", - &theRefcon)) - return NULL; - SetComponentRefcon(_self->ob_itself, - theRefcon); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpObj_OpenComponentResFile(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - short _rv; -#ifndef OpenComponentResFile - PyMac_PRECHECK(OpenComponentResFile); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = OpenComponentResFile(_self->ob_itself); - _res = Py_BuildValue("h", - _rv); - return _res; -} - -static PyObject *CmpObj_GetComponentResource(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; - OSType resType; - short resID; - Handle theResource; -#ifndef GetComponentResource - PyMac_PRECHECK(GetComponentResource); -#endif - if (!PyArg_ParseTuple(_args, "O&h", - PyMac_GetOSType, &resType, - &resID)) - return NULL; - _err = GetComponentResource(_self->ob_itself, - resType, - resID, - &theResource); - if (_err != noErr) return PyMac_Error(_err); - _res = Py_BuildValue("O&", - ResObj_New, theResource); - return _res; -} - -static PyObject *CmpObj_GetComponentIndString(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; - Str255 theString; - short strListID; - short index; -#ifndef GetComponentIndString - PyMac_PRECHECK(GetComponentIndString); -#endif - if (!PyArg_ParseTuple(_args, "O&hh", - PyMac_GetStr255, theString, - &strListID, - &index)) - return NULL; - _err = GetComponentIndString(_self->ob_itself, - theString, - strListID, - index); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpObj_CountComponentInstances(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long _rv; -#ifndef CountComponentInstances - PyMac_PRECHECK(CountComponentInstances); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = CountComponentInstances(_self->ob_itself); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *CmpObj_SetDefaultComponent(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; - short flags; -#ifndef SetDefaultComponent - PyMac_PRECHECK(SetDefaultComponent); -#endif - if (!PyArg_ParseTuple(_args, "h", - &flags)) - return NULL; - _err = SetDefaultComponent(_self->ob_itself, - flags); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpObj_CaptureComponent(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Component _rv; - Component capturingComponent; -#ifndef CaptureComponent - PyMac_PRECHECK(CaptureComponent); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CmpObj_Convert, &capturingComponent)) - return NULL; - _rv = CaptureComponent(_self->ob_itself, - capturingComponent); - _res = Py_BuildValue("O&", - CmpObj_New, _rv); - return _res; -} - -static PyObject *CmpObj_UncaptureComponent(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; -#ifndef UncaptureComponent - PyMac_PRECHECK(UncaptureComponent); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _err = UncaptureComponent(_self->ob_itself); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *CmpObj_GetComponentIconSuite(ComponentObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; - Handle iconSuite; -#ifndef GetComponentIconSuite - PyMac_PRECHECK(GetComponentIconSuite); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _err = GetComponentIconSuite(_self->ob_itself, - &iconSuite); - if (_err != noErr) return PyMac_Error(_err); - _res = Py_BuildValue("O&", - ResObj_New, iconSuite); - return _res; -} - -static PyMethodDef CmpObj_methods[] = { - {"UnregisterComponent", (PyCFunction)CmpObj_UnregisterComponent, 1, - PyDoc_STR("() -> None")}, - {"GetComponentInfo", (PyCFunction)CmpObj_GetComponentInfo, 1, - PyDoc_STR("(Handle componentName, Handle componentInfo, Handle componentIcon) -> (ComponentDescription cd)")}, - {"OpenComponent", (PyCFunction)CmpObj_OpenComponent, 1, - PyDoc_STR("() -> (ComponentInstance _rv)")}, - {"ResolveComponentAlias", (PyCFunction)CmpObj_ResolveComponentAlias, 1, - PyDoc_STR("() -> (Component _rv)")}, - {"GetComponentPublicIndString", (PyCFunction)CmpObj_GetComponentPublicIndString, 1, - PyDoc_STR("(Str255 theString, short strListID, short index) -> None")}, - {"GetComponentRefcon", (PyCFunction)CmpObj_GetComponentRefcon, 1, - PyDoc_STR("() -> (long _rv)")}, - {"SetComponentRefcon", (PyCFunction)CmpObj_SetComponentRefcon, 1, - PyDoc_STR("(long theRefcon) -> None")}, - {"OpenComponentResFile", (PyCFunction)CmpObj_OpenComponentResFile, 1, - PyDoc_STR("() -> (short _rv)")}, - {"GetComponentResource", (PyCFunction)CmpObj_GetComponentResource, 1, - PyDoc_STR("(OSType resType, short resID) -> (Handle theResource)")}, - {"GetComponentIndString", (PyCFunction)CmpObj_GetComponentIndString, 1, - PyDoc_STR("(Str255 theString, short strListID, short index) -> None")}, - {"CountComponentInstances", (PyCFunction)CmpObj_CountComponentInstances, 1, - PyDoc_STR("() -> (long _rv)")}, - {"SetDefaultComponent", (PyCFunction)CmpObj_SetDefaultComponent, 1, - PyDoc_STR("(short flags) -> None")}, - {"CaptureComponent", (PyCFunction)CmpObj_CaptureComponent, 1, - PyDoc_STR("(Component capturingComponent) -> (Component _rv)")}, - {"UncaptureComponent", (PyCFunction)CmpObj_UncaptureComponent, 1, - PyDoc_STR("() -> None")}, - {"GetComponentIconSuite", (PyCFunction)CmpObj_GetComponentIconSuite, 1, - PyDoc_STR("() -> (Handle iconSuite)")}, - {NULL, NULL, 0} -}; - -#define CmpObj_getsetlist NULL - - -#define CmpObj_compare NULL - -#define CmpObj_repr NULL - -#define CmpObj_hash NULL -#define CmpObj_tp_init 0 - -#define CmpObj_tp_alloc PyType_GenericAlloc - -static PyObject *CmpObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) -{ - PyObject *_self; - Component itself; - char *kw[] = {"itself", 0}; - - if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CmpObj_Convert, &itself)) return NULL; - if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL; - ((ComponentObject *)_self)->ob_itself = itself; - return _self; -} - -#define CmpObj_tp_free PyObject_Del - - -PyTypeObject Component_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - "_Cm.Component", /*tp_name*/ - sizeof(ComponentObject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - /* methods */ - (destructor) CmpObj_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - (getattrfunc)0, /*tp_getattr*/ - (setattrfunc)0, /*tp_setattr*/ - (cmpfunc) CmpObj_compare, /*tp_compare*/ - (reprfunc) CmpObj_repr, /*tp_repr*/ - (PyNumberMethods *)0, /* tp_as_number */ - (PySequenceMethods *)0, /* tp_as_sequence */ - (PyMappingMethods *)0, /* tp_as_mapping */ - (hashfunc) CmpObj_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*/ - CmpObj_methods, /* tp_methods */ - 0, /*tp_members*/ - CmpObj_getsetlist, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - CmpObj_tp_init, /* tp_init */ - CmpObj_tp_alloc, /* tp_alloc */ - CmpObj_tp_new, /* tp_new */ - CmpObj_tp_free, /* tp_free */ -}; - -/* ------------------- End object type Component -------------------- */ - - -static PyObject *Cm_RegisterComponentResource(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Component _rv; - ComponentResourceHandle cr; - short global; -#ifndef RegisterComponentResource - PyMac_PRECHECK(RegisterComponentResource); -#endif - if (!PyArg_ParseTuple(_args, "O&h", - ResObj_Convert, &cr, - &global)) - return NULL; - _rv = RegisterComponentResource(cr, - global); - _res = Py_BuildValue("O&", - CmpObj_New, _rv); - return _res; -} - -static PyObject *Cm_FindNextComponent(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - Component _rv; - Component aComponent; - ComponentDescription looking; -#ifndef FindNextComponent - PyMac_PRECHECK(FindNextComponent); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - CmpObj_Convert, &aComponent, - CmpDesc_Convert, &looking)) - return NULL; - _rv = FindNextComponent(aComponent, - &looking); - _res = Py_BuildValue("O&", - CmpObj_New, _rv); - return _res; -} - -static PyObject *Cm_CountComponents(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long _rv; - ComponentDescription looking; -#ifndef CountComponents - PyMac_PRECHECK(CountComponents); -#endif - if (!PyArg_ParseTuple(_args, "O&", - CmpDesc_Convert, &looking)) - return NULL; - _rv = CountComponents(&looking); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *Cm_GetComponentListModSeed(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long _rv; -#ifndef GetComponentListModSeed - PyMac_PRECHECK(GetComponentListModSeed); -#endif - if (!PyArg_ParseTuple(_args, "")) - return NULL; - _rv = GetComponentListModSeed(); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyObject *Cm_CloseComponentResFile(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - OSErr _err; - short refnum; -#ifndef CloseComponentResFile - PyMac_PRECHECK(CloseComponentResFile); -#endif - if (!PyArg_ParseTuple(_args, "h", - &refnum)) - return NULL; - _err = CloseComponentResFile(refnum); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -} - -static PyObject *Cm_OpenDefaultComponent(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - ComponentInstance _rv; - OSType componentType; - OSType componentSubType; -#ifndef OpenDefaultComponent - PyMac_PRECHECK(OpenDefaultComponent); -#endif - if (!PyArg_ParseTuple(_args, "O&O&", - PyMac_GetOSType, &componentType, - PyMac_GetOSType, &componentSubType)) - return NULL; - _rv = OpenDefaultComponent(componentType, - componentSubType); - _res = Py_BuildValue("O&", - CmpInstObj_New, _rv); - return _res; -} - -static PyObject *Cm_RegisterComponentResourceFile(PyObject *_self, PyObject *_args) -{ - PyObject *_res = NULL; - long _rv; - short resRefNum; - short global; -#ifndef RegisterComponentResourceFile - PyMac_PRECHECK(RegisterComponentResourceFile); -#endif - if (!PyArg_ParseTuple(_args, "hh", - &resRefNum, - &global)) - return NULL; - _rv = RegisterComponentResourceFile(resRefNum, - global); - _res = Py_BuildValue("l", - _rv); - return _res; -} - -static PyMethodDef Cm_methods[] = { - {"RegisterComponentResource", (PyCFunction)Cm_RegisterComponentResource, 1, - PyDoc_STR("(ComponentResourceHandle cr, short global) -> (Component _rv)")}, - {"FindNextComponent", (PyCFunction)Cm_FindNextComponent, 1, - PyDoc_STR("(Component aComponent, ComponentDescription looking) -> (Component _rv)")}, - {"CountComponents", (PyCFunction)Cm_CountComponents, 1, - PyDoc_STR("(ComponentDescription looking) -> (long _rv)")}, - {"GetComponentListModSeed", (PyCFunction)Cm_GetComponentListModSeed, 1, - PyDoc_STR("() -> (long _rv)")}, - {"CloseComponentResFile", (PyCFunction)Cm_CloseComponentResFile, 1, - PyDoc_STR("(short refnum) -> None")}, - {"OpenDefaultComponent", (PyCFunction)Cm_OpenDefaultComponent, 1, - PyDoc_STR("(OSType componentType, OSType componentSubType) -> (ComponentInstance _rv)")}, - {"RegisterComponentResourceFile", (PyCFunction)Cm_RegisterComponentResourceFile, 1, - PyDoc_STR("(short resRefNum, short global) -> (long _rv)")}, - {NULL, NULL, 0} -}; - - - - -void init_Cm(void) -{ - PyObject *m; - PyObject *d; - - - - PyMac_INIT_TOOLBOX_OBJECT_NEW(Component, CmpObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Component, CmpObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(ComponentInstance, CmpInstObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ComponentInstance, CmpInstObj_Convert); - - - m = Py_InitModule("_Cm", Cm_methods); - d = PyModule_GetDict(m); - Cm_Error = PyMac_GetOSErrException(); - if (Cm_Error == NULL || - PyDict_SetItemString(d, "Error", Cm_Error) != 0) - return; - Py_TYPE(&ComponentInstance_Type) = &PyType_Type; - if (PyType_Ready(&ComponentInstance_Type) < 0) return; - Py_INCREF(&ComponentInstance_Type); - PyModule_AddObject(m, "ComponentInstance", (PyObject *)&ComponentInstance_Type); - /* Backward-compatible name */ - Py_INCREF(&ComponentInstance_Type); - PyModule_AddObject(m, "ComponentInstanceType", (PyObject *)&ComponentInstance_Type); - Py_TYPE(&Component_Type) = &PyType_Type; - if (PyType_Ready(&Component_Type) < 0) return; - Py_INCREF(&Component_Type); - PyModule_AddObject(m, "Component", (PyObject *)&Component_Type); - /* Backward-compatible name */ - Py_INCREF(&Component_Type); - PyModule_AddObject(m, "ComponentType", (PyObject *)&Component_Type); -} - -/* ========================= End module _Cm ========================= */ - diff --git a/Mac/Modules/cm/cmscan.py b/Mac/Modules/cm/cmscan.py deleted file mode 100644 index 26cdb5e..0000000 --- a/Mac/Modules/cm/cmscan.py +++ /dev/null @@ -1,88 +0,0 @@ -# Scan an Apple header file, generating a Python file of generator calls. - -import sys -from bgenlocations import TOOLBOXDIR, BGENDIR -sys.path.append(BGENDIR) -from scantools import Scanner - -LONG = "Components" -SHORT = "cm" - -def main(): - input = "Components.h" - output = SHORT + "gen.py" - defsoutput = TOOLBOXDIR + LONG + ".py" - scanner = MyScanner(input, output, defsoutput) - scanner.scan() - scanner.close() - print("=== Testing definitions output code ===") - exec(open(defsoutput).read(), {}, {}) - print("=== Done scanning and generating, now importing the generated code... ===") - exec "import " + SHORT + "support" - print("=== Done. It's up to you to compile it now! ===") - -class MyScanner(Scanner): - - def destination(self, type, name, arglist): - classname = "Function" - listname = "functions" - if arglist: - t, n, m = arglist[0] - # - # FindNextComponent is a special case, since it call also be called - # with None as the argument. Hence, we make it a function - # - if t == "Component" and m == "InMode" and name != "FindNextComponent": - classname = "Method" - listname = "c_methods" - elif t == "ComponentInstance" and m == "InMode": - classname = "Method" - listname = "ci_methods" - return classname, listname - - def writeinitialdefs(self): - self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n") - - def makeblacklistnames(self): - return [ - "OpenADefaultComponent", - "GetComponentTypeModSeed", - "OpenAComponentResFile", - "CallComponentUnregister", - "CallComponentTarget", - "CallComponentRegister", - "CallComponentVersion", - "CallComponentCanDo", - "CallComponentClose", - "CallComponentOpen", - "OpenAComponent", - "GetComponentPublicResource", # Missing in CW Pro 6 - "CallComponentGetPublicResource", # Missing in CW Pro 6 - 'SetComponentInstanceA5', - 'GetComponentInstanceA5', - ] - - def makeblacklisttypes(self): - return [ - "ResourceSpec", - "ComponentResource", - "ComponentPlatformInfo", - "ComponentResourceExtension", - "ComponentPlatformInfoArray", - "ExtComponentResource", - "ComponentParameters", - - "ComponentRoutineUPP", - "ComponentMPWorkFunctionUPP", - "ComponentFunctionUPP", - "GetMissingComponentResourceUPP", - ] - - def makerepairinstructions(self): - return [ - ([('ComponentDescription', 'looking', 'OutMode')], - [('ComponentDescription', '*', 'InMode')]), - ] - -if __name__ == "__main__": - main() diff --git a/Mac/Modules/cm/cmsupport.py b/Mac/Modules/cm/cmsupport.py deleted file mode 100644 index 1653bb3..0000000 --- a/Mac/Modules/cm/cmsupport.py +++ /dev/null @@ -1,125 +0,0 @@ -# This script generates a Python interface for an Apple Macintosh Manager. -# It uses the "bgen" package to generate C code. -# The function specifications are generated by scanning the mamager's header file, -# using the "scantools" package (customized for this particular manager). - -import string - -# Declarations that change for each manager -MACHEADERFILE = 'Components.h' # The Apple header file -MODNAME = '_Cm' # The name of the module - -# The following is *usually* unchanged but may still require tuning -MODPREFIX = 'Cm' # The prefix for module-wide routines -C_OBJECTPREFIX = 'CmpObj' # The prefix for object methods -CI_OBJECTPREFIX = 'CmpInstObj' -INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner -OUTPUTFILE = MODNAME + "module.c" # The file generated by this program - -from macsupport import * - -# Create the type objects - -includestuff = includestuff + """ -#include <Carbon/Carbon.h> - -#ifdef USE_TOOLBOX_OBJECT_GLUE -extern PyObject *_CmpObj_New(Component); -extern int _CmpObj_Convert(PyObject *, Component *); -extern PyObject *_CmpInstObj_New(ComponentInstance); -extern int _CmpInstObj_Convert(PyObject *, ComponentInstance *); - -#define CmpObj_New _CmpObj_New -#define CmpObj_Convert _CmpObj_Convert -#define CmpInstObj_New _CmpInstObj_New -#define CmpInstObj_Convert _CmpInstObj_Convert -#endif - -/* -** Parse/generate ComponentDescriptor records -*/ -static PyObject * -CmpDesc_New(ComponentDescription *itself) -{ - - return Py_BuildValue("O&O&O&ll", - PyMac_BuildOSType, itself->componentType, - PyMac_BuildOSType, itself->componentSubType, - PyMac_BuildOSType, itself->componentManufacturer, - itself->componentFlags, itself->componentFlagsMask); -} - -static int -CmpDesc_Convert(PyObject *v, ComponentDescription *p_itself) -{ - return PyArg_ParseTuple(v, "O&O&O&ll", - PyMac_GetOSType, &p_itself->componentType, - PyMac_GetOSType, &p_itself->componentSubType, - PyMac_GetOSType, &p_itself->componentManufacturer, - &p_itself->componentFlags, &p_itself->componentFlagsMask); -} - -""" - -initstuff = initstuff + """ - PyMac_INIT_TOOLBOX_OBJECT_NEW(Component, CmpObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Component, CmpObj_Convert); - PyMac_INIT_TOOLBOX_OBJECT_NEW(ComponentInstance, CmpInstObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ComponentInstance, CmpInstObj_Convert); -""" - -ComponentDescription = OpaqueType('ComponentDescription', 'CmpDesc') -Component = OpaqueByValueType('Component', C_OBJECTPREFIX) -ComponentInstance = OpaqueByValueType('ComponentInstance', CI_OBJECTPREFIX) -ComponentResult = Type("ComponentResult", "l") - -ComponentResourceHandle = OpaqueByValueType("ComponentResourceHandle", "ResObj") - -class MyCIObjectDefinition(PEP253Mixin, GlobalObjectDefinition): - def outputCheckNewArg(self): - Output("""if (itself == NULL) { - PyErr_SetString(Cm_Error,"NULL ComponentInstance"); - return NULL; - }""") - -class MyCObjectDefinition(PEP253Mixin, GlobalObjectDefinition): - def outputCheckNewArg(self): - Output("""if (itself == NULL) { - /* XXXX Or should we return None? */ - PyErr_SetString(Cm_Error,"No such component"); - return NULL; - }""") - - def outputCheckConvertArg(self): - Output("""if ( v == Py_None ) { - *p_itself = 0; - return 1; - }""") - -# Create the generator groups and link them -module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff) -ci_object = MyCIObjectDefinition('ComponentInstance', CI_OBJECTPREFIX, - 'ComponentInstance') -c_object = MyCObjectDefinition('Component', C_OBJECTPREFIX, 'Component') -module.addobject(ci_object) -module.addobject(c_object) - -# Create the generator classes used to populate the lists -Function = OSErrWeakLinkFunctionGenerator -Method = OSErrWeakLinkMethodGenerator - -# Create and populate the lists -functions = [] -c_methods = [] -ci_methods = [] -exec(open(INPUTFILE).read()) - -# 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) -for f in c_methods: c_object.add(f) -for f in ci_methods: ci_object.add(f) - -# generate output (open the output file as late as possible) -SetOutputFileName(OUTPUTFILE) -module.generate() |