ยปCore Development>Code coverage>Mac/Modules/cm/_Cmmodule.c

Python code coverage for Mac/Modules/cm/_Cmmodule.c

#countcontent
1n/a
2n/a/* =========================== Module _Cm =========================== */
3n/a
4n/a#include "Python.h"
5n/a
6n/a
7n/a
8n/a#include "pymactoolbox.h"
9n/a
10n/a/* Macro to test whether a weak-loaded CFM function exists */
11n/a#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
12n/a PyErr_SetString(PyExc_NotImplementedError, \
13n/a "Not available in this shared library/OS version"); \
14n/a return NULL; \
15n/a }} while(0)
16n/a
17n/a
18n/a#include <Carbon/Carbon.h>
19n/a
20n/a#ifdef USE_TOOLBOX_OBJECT_GLUE
21n/aextern PyObject *_CmpObj_New(Component);
22n/aextern int _CmpObj_Convert(PyObject *, Component *);
23n/aextern PyObject *_CmpInstObj_New(ComponentInstance);
24n/aextern int _CmpInstObj_Convert(PyObject *, ComponentInstance *);
25n/a
26n/a#define CmpObj_New _CmpObj_New
27n/a#define CmpObj_Convert _CmpObj_Convert
28n/a#define CmpInstObj_New _CmpInstObj_New
29n/a#define CmpInstObj_Convert _CmpInstObj_Convert
30n/a#endif
31n/a
32n/a/*
33n/a** Parse/generate ComponentDescriptor records
34n/a*/
35n/astatic PyObject *
36n/aCmpDesc_New(ComponentDescription *itself)
37n/a{
38n/a
39n/a return Py_BuildValue("O&O&O&ll",
40n/a PyMac_BuildOSType, itself->componentType,
41n/a PyMac_BuildOSType, itself->componentSubType,
42n/a PyMac_BuildOSType, itself->componentManufacturer,
43n/a itself->componentFlags, itself->componentFlagsMask);
44n/a}
45n/a
46n/astatic int
47n/aCmpDesc_Convert(PyObject *v, ComponentDescription *p_itself)
48n/a{
49n/a return PyArg_ParseTuple(v, "O&O&O&ll",
50n/a PyMac_GetOSType, &p_itself->componentType,
51n/a PyMac_GetOSType, &p_itself->componentSubType,
52n/a PyMac_GetOSType, &p_itself->componentManufacturer,
53n/a &p_itself->componentFlags, &p_itself->componentFlagsMask);
54n/a}
55n/a
56n/a
57n/astatic PyObject *Cm_Error;
58n/a
59n/a/* ----------------- Object type ComponentInstance ------------------ */
60n/a
61n/aPyTypeObject ComponentInstance_Type;
62n/a
63n/a#define CmpInstObj_Check(x) ((x)->ob_type == &ComponentInstance_Type || PyObject_TypeCheck((x), &ComponentInstance_Type))
64n/a
65n/atypedef struct ComponentInstanceObject {
66n/a PyObject_HEAD
67n/a ComponentInstance ob_itself;
68n/a} ComponentInstanceObject;
69n/a
70n/aPyObject *CmpInstObj_New(ComponentInstance itself)
71n/a{
72n/a ComponentInstanceObject *it;
73n/a if (itself == NULL) {
74n/a PyErr_SetString(Cm_Error,"NULL ComponentInstance");
75n/a return NULL;
76n/a }
77n/a it = PyObject_NEW(ComponentInstanceObject, &ComponentInstance_Type);
78n/a if (it == NULL) return NULL;
79n/a it->ob_itself = itself;
80n/a return (PyObject *)it;
81n/a}
82n/a
83n/aint CmpInstObj_Convert(PyObject *v, ComponentInstance *p_itself)
84n/a{
85n/a if (!CmpInstObj_Check(v))
86n/a {
87n/a PyErr_SetString(PyExc_TypeError, "ComponentInstance required");
88n/a return 0;
89n/a }
90n/a *p_itself = ((ComponentInstanceObject *)v)->ob_itself;
91n/a return 1;
92n/a}
93n/a
94n/astatic void CmpInstObj_dealloc(ComponentInstanceObject *self)
95n/a{
96n/a /* Cleanup of self->ob_itself goes here */
97n/a self->ob_type->tp_free((PyObject *)self);
98n/a}
99n/a
100n/astatic PyObject *CmpInstObj_CloseComponent(ComponentInstanceObject *_self, PyObject *_args)
101n/a{
102n/a PyObject *_res = NULL;
103n/a OSErr _err;
104n/a#ifndef CloseComponent
105n/a PyMac_PRECHECK(CloseComponent);
106n/a#endif
107n/a if (!PyArg_ParseTuple(_args, ""))
108n/a return NULL;
109n/a _err = CloseComponent(_self->ob_itself);
110n/a if (_err != noErr) return PyMac_Error(_err);
111n/a Py_INCREF(Py_None);
112n/a _res = Py_None;
113n/a return _res;
114n/a}
115n/a
116n/astatic PyObject *CmpInstObj_GetComponentInstanceError(ComponentInstanceObject *_self, PyObject *_args)
117n/a{
118n/a PyObject *_res = NULL;
119n/a OSErr _err;
120n/a#ifndef GetComponentInstanceError
121n/a PyMac_PRECHECK(GetComponentInstanceError);
122n/a#endif
123n/a if (!PyArg_ParseTuple(_args, ""))
124n/a return NULL;
125n/a _err = GetComponentInstanceError(_self->ob_itself);
126n/a if (_err != noErr) return PyMac_Error(_err);
127n/a Py_INCREF(Py_None);
128n/a _res = Py_None;
129n/a return _res;
130n/a}
131n/a
132n/astatic PyObject *CmpInstObj_SetComponentInstanceError(ComponentInstanceObject *_self, PyObject *_args)
133n/a{
134n/a PyObject *_res = NULL;
135n/a OSErr theError;
136n/a#ifndef SetComponentInstanceError
137n/a PyMac_PRECHECK(SetComponentInstanceError);
138n/a#endif
139n/a if (!PyArg_ParseTuple(_args, "h",
140n/a &theError))
141n/a return NULL;
142n/a SetComponentInstanceError(_self->ob_itself,
143n/a theError);
144n/a Py_INCREF(Py_None);
145n/a _res = Py_None;
146n/a return _res;
147n/a}
148n/a
149n/astatic PyObject *CmpInstObj_GetComponentInstanceStorage(ComponentInstanceObject *_self, PyObject *_args)
150n/a{
151n/a PyObject *_res = NULL;
152n/a Handle _rv;
153n/a#ifndef GetComponentInstanceStorage
154n/a PyMac_PRECHECK(GetComponentInstanceStorage);
155n/a#endif
156n/a if (!PyArg_ParseTuple(_args, ""))
157n/a return NULL;
158n/a _rv = GetComponentInstanceStorage(_self->ob_itself);
159n/a _res = Py_BuildValue("O&",
160n/a ResObj_New, _rv);
161n/a return _res;
162n/a}
163n/a
164n/astatic PyObject *CmpInstObj_SetComponentInstanceStorage(ComponentInstanceObject *_self, PyObject *_args)
165n/a{
166n/a PyObject *_res = NULL;
167n/a Handle theStorage;
168n/a#ifndef SetComponentInstanceStorage
169n/a PyMac_PRECHECK(SetComponentInstanceStorage);
170n/a#endif
171n/a if (!PyArg_ParseTuple(_args, "O&",
172n/a ResObj_Convert, &theStorage))
173n/a return NULL;
174n/a SetComponentInstanceStorage(_self->ob_itself,
175n/a theStorage);
176n/a Py_INCREF(Py_None);
177n/a _res = Py_None;
178n/a return _res;
179n/a}
180n/a
181n/a#ifndef __LP64__
182n/astatic PyObject *CmpInstObj_ComponentFunctionImplemented(ComponentInstanceObject *_self, PyObject *_args)
183n/a{
184n/a PyObject *_res = NULL;
185n/a long _rv;
186n/a short ftnNumber;
187n/a#ifndef ComponentFunctionImplemented
188n/a PyMac_PRECHECK(ComponentFunctionImplemented);
189n/a#endif
190n/a if (!PyArg_ParseTuple(_args, "h",
191n/a &ftnNumber))
192n/a return NULL;
193n/a _rv = ComponentFunctionImplemented(_self->ob_itself,
194n/a ftnNumber);
195n/a _res = Py_BuildValue("l",
196n/a _rv);
197n/a return _res;
198n/a}
199n/a
200n/astatic PyObject *CmpInstObj_GetComponentVersion(ComponentInstanceObject *_self, PyObject *_args)
201n/a{
202n/a PyObject *_res = NULL;
203n/a long _rv;
204n/a#ifndef GetComponentVersion
205n/a PyMac_PRECHECK(GetComponentVersion);
206n/a#endif
207n/a if (!PyArg_ParseTuple(_args, ""))
208n/a return NULL;
209n/a _rv = GetComponentVersion(_self->ob_itself);
210n/a _res = Py_BuildValue("l",
211n/a _rv);
212n/a return _res;
213n/a}
214n/a
215n/astatic PyObject *CmpInstObj_ComponentSetTarget(ComponentInstanceObject *_self, PyObject *_args)
216n/a{
217n/a PyObject *_res = NULL;
218n/a long _rv;
219n/a ComponentInstance target;
220n/a#ifndef ComponentSetTarget
221n/a PyMac_PRECHECK(ComponentSetTarget);
222n/a#endif
223n/a if (!PyArg_ParseTuple(_args, "O&",
224n/a CmpInstObj_Convert, &target))
225n/a return NULL;
226n/a _rv = ComponentSetTarget(_self->ob_itself,
227n/a target);
228n/a _res = Py_BuildValue("l",
229n/a _rv);
230n/a return _res;
231n/a}
232n/a#endif /* !__LP64__*/
233n/a
234n/astatic PyMethodDef CmpInstObj_methods[] = {
235n/a {"CloseComponent", (PyCFunction)CmpInstObj_CloseComponent, 1,
236n/a PyDoc_STR("() -> None")},
237n/a {"GetComponentInstanceError", (PyCFunction)CmpInstObj_GetComponentInstanceError, 1,
238n/a PyDoc_STR("() -> None")},
239n/a {"SetComponentInstanceError", (PyCFunction)CmpInstObj_SetComponentInstanceError, 1,
240n/a PyDoc_STR("(OSErr theError) -> None")},
241n/a {"GetComponentInstanceStorage", (PyCFunction)CmpInstObj_GetComponentInstanceStorage, 1,
242n/a PyDoc_STR("() -> (Handle _rv)")},
243n/a {"SetComponentInstanceStorage", (PyCFunction)CmpInstObj_SetComponentInstanceStorage, 1,
244n/a PyDoc_STR("(Handle theStorage) -> None")},
245n/a#ifndef __LP64__
246n/a {"ComponentFunctionImplemented", (PyCFunction)CmpInstObj_ComponentFunctionImplemented, 1,
247n/a PyDoc_STR("(short ftnNumber) -> (long _rv)")},
248n/a {"GetComponentVersion", (PyCFunction)CmpInstObj_GetComponentVersion, 1,
249n/a PyDoc_STR("() -> (long _rv)")},
250n/a {"ComponentSetTarget", (PyCFunction)CmpInstObj_ComponentSetTarget, 1,
251n/a PyDoc_STR("(ComponentInstance target) -> (long _rv)")},
252n/a#endif /* !__LP64__ */
253n/a {NULL, NULL, 0}
254n/a};
255n/a
256n/a#define CmpInstObj_getsetlist NULL
257n/a
258n/a
259n/a#define CmpInstObj_compare NULL
260n/a
261n/a#define CmpInstObj_repr NULL
262n/a
263n/a#define CmpInstObj_hash NULL
264n/a#define CmpInstObj_tp_init 0
265n/a
266n/a#define CmpInstObj_tp_alloc PyType_GenericAlloc
267n/a
268n/astatic PyObject *CmpInstObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
269n/a{
270n/a PyObject *_self;
271n/a ComponentInstance itself;
272n/a char *kw[] = {"itself", 0};
273n/a
274n/a if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CmpInstObj_Convert, &itself)) return NULL;
275n/a if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
276n/a ((ComponentInstanceObject *)_self)->ob_itself = itself;
277n/a return _self;
278n/a}
279n/a
280n/a#define CmpInstObj_tp_free PyObject_Del
281n/a
282n/a
283n/aPyTypeObject ComponentInstance_Type = {
284n/a PyObject_HEAD_INIT(NULL)
285n/a 0, /*ob_size*/
286n/a "_Cm.ComponentInstance", /*tp_name*/
287n/a sizeof(ComponentInstanceObject), /*tp_basicsize*/
288n/a 0, /*tp_itemsize*/
289n/a /* methods */
290n/a (destructor) CmpInstObj_dealloc, /*tp_dealloc*/
291n/a 0, /*tp_print*/
292n/a (getattrfunc)0, /*tp_getattr*/
293n/a (setattrfunc)0, /*tp_setattr*/
294n/a (cmpfunc) CmpInstObj_compare, /*tp_compare*/
295n/a (reprfunc) CmpInstObj_repr, /*tp_repr*/
296n/a (PyNumberMethods *)0, /* tp_as_number */
297n/a (PySequenceMethods *)0, /* tp_as_sequence */
298n/a (PyMappingMethods *)0, /* tp_as_mapping */
299n/a (hashfunc) CmpInstObj_hash, /*tp_hash*/
300n/a 0, /*tp_call*/
301n/a 0, /*tp_str*/
302n/a PyObject_GenericGetAttr, /*tp_getattro*/
303n/a PyObject_GenericSetAttr, /*tp_setattro */
304n/a 0, /*tp_as_buffer*/
305n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
306n/a 0, /*tp_doc*/
307n/a 0, /*tp_traverse*/
308n/a 0, /*tp_clear*/
309n/a 0, /*tp_richcompare*/
310n/a 0, /*tp_weaklistoffset*/
311n/a 0, /*tp_iter*/
312n/a 0, /*tp_iternext*/
313n/a CmpInstObj_methods, /* tp_methods */
314n/a 0, /*tp_members*/
315n/a CmpInstObj_getsetlist, /*tp_getset*/
316n/a 0, /*tp_base*/
317n/a 0, /*tp_dict*/
318n/a 0, /*tp_descr_get*/
319n/a 0, /*tp_descr_set*/
320n/a 0, /*tp_dictoffset*/
321n/a CmpInstObj_tp_init, /* tp_init */
322n/a CmpInstObj_tp_alloc, /* tp_alloc */
323n/a CmpInstObj_tp_new, /* tp_new */
324n/a CmpInstObj_tp_free, /* tp_free */
325n/a};
326n/a
327n/a/* --------------- End object type ComponentInstance ---------------- */
328n/a
329n/a
330n/a/* --------------------- Object type Component ---------------------- */
331n/a
332n/aPyTypeObject Component_Type;
333n/a
334n/a#define CmpObj_Check(x) ((x)->ob_type == &Component_Type || PyObject_TypeCheck((x), &Component_Type))
335n/a
336n/atypedef struct ComponentObject {
337n/a PyObject_HEAD
338n/a Component ob_itself;
339n/a} ComponentObject;
340n/a
341n/aPyObject *CmpObj_New(Component itself)
342n/a{
343n/a ComponentObject *it;
344n/a if (itself == NULL) {
345n/a /* XXXX Or should we return None? */
346n/a PyErr_SetString(Cm_Error,"No such component");
347n/a return NULL;
348n/a }
349n/a it = PyObject_NEW(ComponentObject, &Component_Type);
350n/a if (it == NULL) return NULL;
351n/a it->ob_itself = itself;
352n/a return (PyObject *)it;
353n/a}
354n/a
355n/aint CmpObj_Convert(PyObject *v, Component *p_itself)
356n/a{
357n/a if ( v == Py_None ) {
358n/a *p_itself = 0;
359n/a return 1;
360n/a }
361n/a if (!CmpObj_Check(v))
362n/a {
363n/a PyErr_SetString(PyExc_TypeError, "Component required");
364n/a return 0;
365n/a }
366n/a *p_itself = ((ComponentObject *)v)->ob_itself;
367n/a return 1;
368n/a}
369n/a
370n/astatic void CmpObj_dealloc(ComponentObject *self)
371n/a{
372n/a /* Cleanup of self->ob_itself goes here */
373n/a self->ob_type->tp_free((PyObject *)self);
374n/a}
375n/a
376n/astatic PyObject *CmpObj_UnregisterComponent(ComponentObject *_self, PyObject *_args)
377n/a{
378n/a PyObject *_res = NULL;
379n/a OSErr _err;
380n/a#ifndef UnregisterComponent
381n/a PyMac_PRECHECK(UnregisterComponent);
382n/a#endif
383n/a if (!PyArg_ParseTuple(_args, ""))
384n/a return NULL;
385n/a _err = UnregisterComponent(_self->ob_itself);
386n/a if (_err != noErr) return PyMac_Error(_err);
387n/a Py_INCREF(Py_None);
388n/a _res = Py_None;
389n/a return _res;
390n/a}
391n/a
392n/astatic PyObject *CmpObj_GetComponentInfo(ComponentObject *_self, PyObject *_args)
393n/a{
394n/a PyObject *_res = NULL;
395n/a OSErr _err;
396n/a ComponentDescription cd;
397n/a Handle componentName;
398n/a Handle componentInfo;
399n/a Handle componentIcon;
400n/a#ifndef GetComponentInfo
401n/a PyMac_PRECHECK(GetComponentInfo);
402n/a#endif
403n/a if (!PyArg_ParseTuple(_args, "O&O&O&",
404n/a ResObj_Convert, &componentName,
405n/a ResObj_Convert, &componentInfo,
406n/a ResObj_Convert, &componentIcon))
407n/a return NULL;
408n/a _err = GetComponentInfo(_self->ob_itself,
409n/a &cd,
410n/a componentName,
411n/a componentInfo,
412n/a componentIcon);
413n/a if (_err != noErr) return PyMac_Error(_err);
414n/a _res = Py_BuildValue("O&",
415n/a CmpDesc_New, &cd);
416n/a return _res;
417n/a}
418n/a
419n/astatic PyObject *CmpObj_OpenComponent(ComponentObject *_self, PyObject *_args)
420n/a{
421n/a PyObject *_res = NULL;
422n/a ComponentInstance _rv;
423n/a#ifndef OpenComponent
424n/a PyMac_PRECHECK(OpenComponent);
425n/a#endif
426n/a if (!PyArg_ParseTuple(_args, ""))
427n/a return NULL;
428n/a _rv = OpenComponent(_self->ob_itself);
429n/a _res = Py_BuildValue("O&",
430n/a CmpInstObj_New, _rv);
431n/a return _res;
432n/a}
433n/a
434n/astatic PyObject *CmpObj_ResolveComponentAlias(ComponentObject *_self, PyObject *_args)
435n/a{
436n/a PyObject *_res = NULL;
437n/a Component _rv;
438n/a#ifndef ResolveComponentAlias
439n/a PyMac_PRECHECK(ResolveComponentAlias);
440n/a#endif
441n/a if (!PyArg_ParseTuple(_args, ""))
442n/a return NULL;
443n/a _rv = ResolveComponentAlias(_self->ob_itself);
444n/a _res = Py_BuildValue("O&",
445n/a CmpObj_New, _rv);
446n/a return _res;
447n/a}
448n/a
449n/astatic PyObject *CmpObj_GetComponentPublicIndString(ComponentObject *_self, PyObject *_args)
450n/a{
451n/a PyObject *_res = NULL;
452n/a OSErr _err;
453n/a Str255 theString;
454n/a short strListID;
455n/a short index;
456n/a#ifndef GetComponentPublicIndString
457n/a PyMac_PRECHECK(GetComponentPublicIndString);
458n/a#endif
459n/a if (!PyArg_ParseTuple(_args, "O&hh",
460n/a PyMac_GetStr255, theString,
461n/a &strListID,
462n/a &index))
463n/a return NULL;
464n/a _err = GetComponentPublicIndString(_self->ob_itself,
465n/a theString,
466n/a strListID,
467n/a index);
468n/a if (_err != noErr) return PyMac_Error(_err);
469n/a Py_INCREF(Py_None);
470n/a _res = Py_None;
471n/a return _res;
472n/a}
473n/a
474n/astatic PyObject *CmpObj_GetComponentRefcon(ComponentObject *_self, PyObject *_args)
475n/a{
476n/a PyObject *_res = NULL;
477n/a long _rv;
478n/a#ifndef GetComponentRefcon
479n/a PyMac_PRECHECK(GetComponentRefcon);
480n/a#endif
481n/a if (!PyArg_ParseTuple(_args, ""))
482n/a return NULL;
483n/a _rv = GetComponentRefcon(_self->ob_itself);
484n/a _res = Py_BuildValue("l",
485n/a _rv);
486n/a return _res;
487n/a}
488n/a
489n/astatic PyObject *CmpObj_SetComponentRefcon(ComponentObject *_self, PyObject *_args)
490n/a{
491n/a PyObject *_res = NULL;
492n/a long theRefcon;
493n/a#ifndef SetComponentRefcon
494n/a PyMac_PRECHECK(SetComponentRefcon);
495n/a#endif
496n/a if (!PyArg_ParseTuple(_args, "l",
497n/a &theRefcon))
498n/a return NULL;
499n/a SetComponentRefcon(_self->ob_itself,
500n/a theRefcon);
501n/a Py_INCREF(Py_None);
502n/a _res = Py_None;
503n/a return _res;
504n/a}
505n/a
506n/astatic PyObject *CmpObj_OpenComponentResFile(ComponentObject *_self, PyObject *_args)
507n/a{
508n/a PyObject *_res = NULL;
509n/a short _rv;
510n/a#ifndef OpenComponentResFile
511n/a PyMac_PRECHECK(OpenComponentResFile);
512n/a#endif
513n/a if (!PyArg_ParseTuple(_args, ""))
514n/a return NULL;
515n/a _rv = OpenComponentResFile(_self->ob_itself);
516n/a _res = Py_BuildValue("h",
517n/a _rv);
518n/a return _res;
519n/a}
520n/a
521n/astatic PyObject *CmpObj_GetComponentResource(ComponentObject *_self, PyObject *_args)
522n/a{
523n/a PyObject *_res = NULL;
524n/a OSErr _err;
525n/a OSType resType;
526n/a short resID;
527n/a Handle theResource;
528n/a#ifndef GetComponentResource
529n/a PyMac_PRECHECK(GetComponentResource);
530n/a#endif
531n/a if (!PyArg_ParseTuple(_args, "O&h",
532n/a PyMac_GetOSType, &resType,
533n/a &resID))
534n/a return NULL;
535n/a _err = GetComponentResource(_self->ob_itself,
536n/a resType,
537n/a resID,
538n/a &theResource);
539n/a if (_err != noErr) return PyMac_Error(_err);
540n/a _res = Py_BuildValue("O&",
541n/a ResObj_New, theResource);
542n/a return _res;
543n/a}
544n/a
545n/astatic PyObject *CmpObj_GetComponentIndString(ComponentObject *_self, PyObject *_args)
546n/a{
547n/a PyObject *_res = NULL;
548n/a OSErr _err;
549n/a Str255 theString;
550n/a short strListID;
551n/a short index;
552n/a#ifndef GetComponentIndString
553n/a PyMac_PRECHECK(GetComponentIndString);
554n/a#endif
555n/a if (!PyArg_ParseTuple(_args, "O&hh",
556n/a PyMac_GetStr255, theString,
557n/a &strListID,
558n/a &index))
559n/a return NULL;
560n/a _err = GetComponentIndString(_self->ob_itself,
561n/a theString,
562n/a strListID,
563n/a index);
564n/a if (_err != noErr) return PyMac_Error(_err);
565n/a Py_INCREF(Py_None);
566n/a _res = Py_None;
567n/a return _res;
568n/a}
569n/a
570n/astatic PyObject *CmpObj_CountComponentInstances(ComponentObject *_self, PyObject *_args)
571n/a{
572n/a PyObject *_res = NULL;
573n/a long _rv;
574n/a#ifndef CountComponentInstances
575n/a PyMac_PRECHECK(CountComponentInstances);
576n/a#endif
577n/a if (!PyArg_ParseTuple(_args, ""))
578n/a return NULL;
579n/a _rv = CountComponentInstances(_self->ob_itself);
580n/a _res = Py_BuildValue("l",
581n/a _rv);
582n/a return _res;
583n/a}
584n/a
585n/astatic PyObject *CmpObj_SetDefaultComponent(ComponentObject *_self, PyObject *_args)
586n/a{
587n/a PyObject *_res = NULL;
588n/a OSErr _err;
589n/a short flags;
590n/a#ifndef SetDefaultComponent
591n/a PyMac_PRECHECK(SetDefaultComponent);
592n/a#endif
593n/a if (!PyArg_ParseTuple(_args, "h",
594n/a &flags))
595n/a return NULL;
596n/a _err = SetDefaultComponent(_self->ob_itself,
597n/a flags);
598n/a if (_err != noErr) return PyMac_Error(_err);
599n/a Py_INCREF(Py_None);
600n/a _res = Py_None;
601n/a return _res;
602n/a}
603n/a
604n/astatic PyObject *CmpObj_CaptureComponent(ComponentObject *_self, PyObject *_args)
605n/a{
606n/a PyObject *_res = NULL;
607n/a Component _rv;
608n/a Component capturingComponent;
609n/a#ifndef CaptureComponent
610n/a PyMac_PRECHECK(CaptureComponent);
611n/a#endif
612n/a if (!PyArg_ParseTuple(_args, "O&",
613n/a CmpObj_Convert, &capturingComponent))
614n/a return NULL;
615n/a _rv = CaptureComponent(_self->ob_itself,
616n/a capturingComponent);
617n/a _res = Py_BuildValue("O&",
618n/a CmpObj_New, _rv);
619n/a return _res;
620n/a}
621n/a
622n/astatic PyObject *CmpObj_UncaptureComponent(ComponentObject *_self, PyObject *_args)
623n/a{
624n/a PyObject *_res = NULL;
625n/a OSErr _err;
626n/a#ifndef UncaptureComponent
627n/a PyMac_PRECHECK(UncaptureComponent);
628n/a#endif
629n/a if (!PyArg_ParseTuple(_args, ""))
630n/a return NULL;
631n/a _err = UncaptureComponent(_self->ob_itself);
632n/a if (_err != noErr) return PyMac_Error(_err);
633n/a Py_INCREF(Py_None);
634n/a _res = Py_None;
635n/a return _res;
636n/a}
637n/a
638n/a#ifndef __LP64__
639n/astatic PyObject *CmpObj_GetComponentIconSuite(ComponentObject *_self, PyObject *_args)
640n/a{
641n/a PyObject *_res = NULL;
642n/a OSErr _err;
643n/a Handle iconSuite;
644n/a#ifndef GetComponentIconSuite
645n/a PyMac_PRECHECK(GetComponentIconSuite);
646n/a#endif
647n/a if (!PyArg_ParseTuple(_args, ""))
648n/a return NULL;
649n/a _err = GetComponentIconSuite(_self->ob_itself,
650n/a &iconSuite);
651n/a if (_err != noErr) return PyMac_Error(_err);
652n/a _res = Py_BuildValue("O&",
653n/a ResObj_New, iconSuite);
654n/a return _res;
655n/a}
656n/a#endif /* !__LP64__ */
657n/a
658n/astatic PyMethodDef CmpObj_methods[] = {
659n/a {"UnregisterComponent", (PyCFunction)CmpObj_UnregisterComponent, 1,
660n/a PyDoc_STR("() -> None")},
661n/a {"GetComponentInfo", (PyCFunction)CmpObj_GetComponentInfo, 1,
662n/a PyDoc_STR("(Handle componentName, Handle componentInfo, Handle componentIcon) -> (ComponentDescription cd)")},
663n/a {"OpenComponent", (PyCFunction)CmpObj_OpenComponent, 1,
664n/a PyDoc_STR("() -> (ComponentInstance _rv)")},
665n/a {"ResolveComponentAlias", (PyCFunction)CmpObj_ResolveComponentAlias, 1,
666n/a PyDoc_STR("() -> (Component _rv)")},
667n/a {"GetComponentPublicIndString", (PyCFunction)CmpObj_GetComponentPublicIndString, 1,
668n/a PyDoc_STR("(Str255 theString, short strListID, short index) -> None")},
669n/a {"GetComponentRefcon", (PyCFunction)CmpObj_GetComponentRefcon, 1,
670n/a PyDoc_STR("() -> (long _rv)")},
671n/a {"SetComponentRefcon", (PyCFunction)CmpObj_SetComponentRefcon, 1,
672n/a PyDoc_STR("(long theRefcon) -> None")},
673n/a {"OpenComponentResFile", (PyCFunction)CmpObj_OpenComponentResFile, 1,
674n/a PyDoc_STR("() -> (short _rv)")},
675n/a {"GetComponentResource", (PyCFunction)CmpObj_GetComponentResource, 1,
676n/a PyDoc_STR("(OSType resType, short resID) -> (Handle theResource)")},
677n/a {"GetComponentIndString", (PyCFunction)CmpObj_GetComponentIndString, 1,
678n/a PyDoc_STR("(Str255 theString, short strListID, short index) -> None")},
679n/a {"CountComponentInstances", (PyCFunction)CmpObj_CountComponentInstances, 1,
680n/a PyDoc_STR("() -> (long _rv)")},
681n/a {"SetDefaultComponent", (PyCFunction)CmpObj_SetDefaultComponent, 1,
682n/a PyDoc_STR("(short flags) -> None")},
683n/a {"CaptureComponent", (PyCFunction)CmpObj_CaptureComponent, 1,
684n/a PyDoc_STR("(Component capturingComponent) -> (Component _rv)")},
685n/a {"UncaptureComponent", (PyCFunction)CmpObj_UncaptureComponent, 1,
686n/a PyDoc_STR("() -> None")},
687n/a#ifndef __LP64__
688n/a {"GetComponentIconSuite", (PyCFunction)CmpObj_GetComponentIconSuite, 1,
689n/a PyDoc_STR("() -> (Handle iconSuite)")},
690n/a#endif /* !__LP64__ */
691n/a {NULL, NULL, 0}
692n/a};
693n/a
694n/a#define CmpObj_getsetlist NULL
695n/a
696n/a
697n/a#define CmpObj_compare NULL
698n/a
699n/a#define CmpObj_repr NULL
700n/a
701n/a#define CmpObj_hash NULL
702n/a#define CmpObj_tp_init 0
703n/a
704n/a#define CmpObj_tp_alloc PyType_GenericAlloc
705n/a
706n/astatic PyObject *CmpObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
707n/a{
708n/a PyObject *_self;
709n/a Component itself;
710n/a char *kw[] = {"itself", 0};
711n/a
712n/a if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CmpObj_Convert, &itself)) return NULL;
713n/a if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
714n/a ((ComponentObject *)_self)->ob_itself = itself;
715n/a return _self;
716n/a}
717n/a
718n/a#define CmpObj_tp_free PyObject_Del
719n/a
720n/a
721n/aPyTypeObject Component_Type = {
722n/a PyObject_HEAD_INIT(NULL)
723n/a 0, /*ob_size*/
724n/a "_Cm.Component", /*tp_name*/
725n/a sizeof(ComponentObject), /*tp_basicsize*/
726n/a 0, /*tp_itemsize*/
727n/a /* methods */
728n/a (destructor) CmpObj_dealloc, /*tp_dealloc*/
729n/a 0, /*tp_print*/
730n/a (getattrfunc)0, /*tp_getattr*/
731n/a (setattrfunc)0, /*tp_setattr*/
732n/a (cmpfunc) CmpObj_compare, /*tp_compare*/
733n/a (reprfunc) CmpObj_repr, /*tp_repr*/
734n/a (PyNumberMethods *)0, /* tp_as_number */
735n/a (PySequenceMethods *)0, /* tp_as_sequence */
736n/a (PyMappingMethods *)0, /* tp_as_mapping */
737n/a (hashfunc) CmpObj_hash, /*tp_hash*/
738n/a 0, /*tp_call*/
739n/a 0, /*tp_str*/
740n/a PyObject_GenericGetAttr, /*tp_getattro*/
741n/a PyObject_GenericSetAttr, /*tp_setattro */
742n/a 0, /*tp_as_buffer*/
743n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
744n/a 0, /*tp_doc*/
745n/a 0, /*tp_traverse*/
746n/a 0, /*tp_clear*/
747n/a 0, /*tp_richcompare*/
748n/a 0, /*tp_weaklistoffset*/
749n/a 0, /*tp_iter*/
750n/a 0, /*tp_iternext*/
751n/a CmpObj_methods, /* tp_methods */
752n/a 0, /*tp_members*/
753n/a CmpObj_getsetlist, /*tp_getset*/
754n/a 0, /*tp_base*/
755n/a 0, /*tp_dict*/
756n/a 0, /*tp_descr_get*/
757n/a 0, /*tp_descr_set*/
758n/a 0, /*tp_dictoffset*/
759n/a CmpObj_tp_init, /* tp_init */
760n/a CmpObj_tp_alloc, /* tp_alloc */
761n/a CmpObj_tp_new, /* tp_new */
762n/a CmpObj_tp_free, /* tp_free */
763n/a};
764n/a
765n/a/* ------------------- End object type Component -------------------- */
766n/a
767n/a
768n/astatic PyObject *Cm_RegisterComponentResource(PyObject *_self, PyObject *_args)
769n/a{
770n/a PyObject *_res = NULL;
771n/a Component _rv;
772n/a ComponentResourceHandle cr;
773n/a short global;
774n/a#ifndef RegisterComponentResource
775n/a PyMac_PRECHECK(RegisterComponentResource);
776n/a#endif
777n/a if (!PyArg_ParseTuple(_args, "O&h",
778n/a ResObj_Convert, &cr,
779n/a &global))
780n/a return NULL;
781n/a _rv = RegisterComponentResource(cr,
782n/a global);
783n/a _res = Py_BuildValue("O&",
784n/a CmpObj_New, _rv);
785n/a return _res;
786n/a}
787n/a
788n/astatic PyObject *Cm_FindNextComponent(PyObject *_self, PyObject *_args)
789n/a{
790n/a PyObject *_res = NULL;
791n/a Component _rv;
792n/a Component aComponent;
793n/a ComponentDescription looking;
794n/a#ifndef FindNextComponent
795n/a PyMac_PRECHECK(FindNextComponent);
796n/a#endif
797n/a if (!PyArg_ParseTuple(_args, "O&O&",
798n/a CmpObj_Convert, &aComponent,
799n/a CmpDesc_Convert, &looking))
800n/a return NULL;
801n/a _rv = FindNextComponent(aComponent,
802n/a &looking);
803n/a _res = Py_BuildValue("O&",
804n/a CmpObj_New, _rv);
805n/a return _res;
806n/a}
807n/a
808n/astatic PyObject *Cm_CountComponents(PyObject *_self, PyObject *_args)
809n/a{
810n/a PyObject *_res = NULL;
811n/a long _rv;
812n/a ComponentDescription looking;
813n/a#ifndef CountComponents
814n/a PyMac_PRECHECK(CountComponents);
815n/a#endif
816n/a if (!PyArg_ParseTuple(_args, "O&",
817n/a CmpDesc_Convert, &looking))
818n/a return NULL;
819n/a _rv = CountComponents(&looking);
820n/a _res = Py_BuildValue("l",
821n/a _rv);
822n/a return _res;
823n/a}
824n/a
825n/astatic PyObject *Cm_GetComponentListModSeed(PyObject *_self, PyObject *_args)
826n/a{
827n/a PyObject *_res = NULL;
828n/a long _rv;
829n/a#ifndef GetComponentListModSeed
830n/a PyMac_PRECHECK(GetComponentListModSeed);
831n/a#endif
832n/a if (!PyArg_ParseTuple(_args, ""))
833n/a return NULL;
834n/a _rv = GetComponentListModSeed();
835n/a _res = Py_BuildValue("l",
836n/a _rv);
837n/a return _res;
838n/a}
839n/a
840n/astatic PyObject *Cm_CloseComponentResFile(PyObject *_self, PyObject *_args)
841n/a{
842n/a PyObject *_res = NULL;
843n/a OSErr _err;
844n/a short refnum;
845n/a#ifndef CloseComponentResFile
846n/a PyMac_PRECHECK(CloseComponentResFile);
847n/a#endif
848n/a if (!PyArg_ParseTuple(_args, "h",
849n/a &refnum))
850n/a return NULL;
851n/a _err = CloseComponentResFile(refnum);
852n/a if (_err != noErr) return PyMac_Error(_err);
853n/a Py_INCREF(Py_None);
854n/a _res = Py_None;
855n/a return _res;
856n/a}
857n/a
858n/astatic PyObject *Cm_OpenDefaultComponent(PyObject *_self, PyObject *_args)
859n/a{
860n/a PyObject *_res = NULL;
861n/a ComponentInstance _rv;
862n/a OSType componentType;
863n/a OSType componentSubType;
864n/a#ifndef OpenDefaultComponent
865n/a PyMac_PRECHECK(OpenDefaultComponent);
866n/a#endif
867n/a if (!PyArg_ParseTuple(_args, "O&O&",
868n/a PyMac_GetOSType, &componentType,
869n/a PyMac_GetOSType, &componentSubType))
870n/a return NULL;
871n/a _rv = OpenDefaultComponent(componentType,
872n/a componentSubType);
873n/a _res = Py_BuildValue("O&",
874n/a CmpInstObj_New, _rv);
875n/a return _res;
876n/a}
877n/a
878n/astatic PyObject *Cm_RegisterComponentResourceFile(PyObject *_self, PyObject *_args)
879n/a{
880n/a PyObject *_res = NULL;
881n/a long _rv;
882n/a short resRefNum;
883n/a short global;
884n/a#ifndef RegisterComponentResourceFile
885n/a PyMac_PRECHECK(RegisterComponentResourceFile);
886n/a#endif
887n/a if (!PyArg_ParseTuple(_args, "hh",
888n/a &resRefNum,
889n/a &global))
890n/a return NULL;
891n/a _rv = RegisterComponentResourceFile(resRefNum,
892n/a global);
893n/a _res = Py_BuildValue("l",
894n/a _rv);
895n/a return _res;
896n/a}
897n/a
898n/astatic PyMethodDef Cm_methods[] = {
899n/a {"RegisterComponentResource", (PyCFunction)Cm_RegisterComponentResource, 1,
900n/a PyDoc_STR("(ComponentResourceHandle cr, short global) -> (Component _rv)")},
901n/a {"FindNextComponent", (PyCFunction)Cm_FindNextComponent, 1,
902n/a PyDoc_STR("(Component aComponent, ComponentDescription looking) -> (Component _rv)")},
903n/a {"CountComponents", (PyCFunction)Cm_CountComponents, 1,
904n/a PyDoc_STR("(ComponentDescription looking) -> (long _rv)")},
905n/a {"GetComponentListModSeed", (PyCFunction)Cm_GetComponentListModSeed, 1,
906n/a PyDoc_STR("() -> (long _rv)")},
907n/a {"CloseComponentResFile", (PyCFunction)Cm_CloseComponentResFile, 1,
908n/a PyDoc_STR("(short refnum) -> None")},
909n/a {"OpenDefaultComponent", (PyCFunction)Cm_OpenDefaultComponent, 1,
910n/a PyDoc_STR("(OSType componentType, OSType componentSubType) -> (ComponentInstance _rv)")},
911n/a {"RegisterComponentResourceFile", (PyCFunction)Cm_RegisterComponentResourceFile, 1,
912n/a PyDoc_STR("(short resRefNum, short global) -> (long _rv)")},
913n/a {NULL, NULL, 0}
914n/a};
915n/a
916n/a
917n/a
918n/a
919n/avoid init_Cm(void)
920n/a{
921n/a PyObject *m;
922n/a PyObject *d;
923n/a
924n/a
925n/a
926n/a PyMac_INIT_TOOLBOX_OBJECT_NEW(Component, CmpObj_New);
927n/a PyMac_INIT_TOOLBOX_OBJECT_CONVERT(Component, CmpObj_Convert);
928n/a PyMac_INIT_TOOLBOX_OBJECT_NEW(ComponentInstance, CmpInstObj_New);
929n/a PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ComponentInstance, CmpInstObj_Convert);
930n/a
931n/a
932n/a m = Py_InitModule("_Cm", Cm_methods);
933n/a d = PyModule_GetDict(m);
934n/a Cm_Error = PyMac_GetOSErrException();
935n/a if (Cm_Error == NULL ||
936n/a PyDict_SetItemString(d, "Error", Cm_Error) != 0)
937n/a return;
938n/a ComponentInstance_Type.ob_type = &PyType_Type;
939n/a if (PyType_Ready(&ComponentInstance_Type) < 0) return;
940n/a Py_INCREF(&ComponentInstance_Type);
941n/a PyModule_AddObject(m, "ComponentInstance", (PyObject *)&ComponentInstance_Type);
942n/a /* Backward-compatible name */
943n/a Py_INCREF(&ComponentInstance_Type);
944n/a PyModule_AddObject(m, "ComponentInstanceType", (PyObject *)&ComponentInstance_Type);
945n/a Component_Type.ob_type = &PyType_Type;
946n/a if (PyType_Ready(&Component_Type) < 0) return;
947n/a Py_INCREF(&Component_Type);
948n/a PyModule_AddObject(m, "Component", (PyObject *)&Component_Type);
949n/a /* Backward-compatible name */
950n/a Py_INCREF(&Component_Type);
951n/a PyModule_AddObject(m, "ComponentType", (PyObject *)&Component_Type);
952n/a}
953n/a
954n/a/* ========================= End module _Cm ========================= */
955n/a