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

Python code coverage for Mac/Modules/OSATerminology.c

#countcontent
1n/a/*
2n/a** An interface to the application scripting related functions of the OSA API.
3n/a**
4n/a** GetAppTerminology - given an FSSpec/posix path to an application,
5n/a** returns its aevt (scripting terminology) resource(s)
6n/a**
7n/a** GetSysTerminology - returns the AppleScript language component's
8n/a** aeut (scripting terminology) resource
9n/a**
10n/a** Written by Donovan Preston and slightly modified by Jack and HAS.
11n/a*/
12n/a#include "Python.h"
13n/a#include "pymactoolbox.h"
14n/a
15n/a#include <Carbon/Carbon.h>
16n/a
17n/a#ifndef __LP64__
18n/astatic PyObject *
19n/aPyOSA_GetAppTerminology(PyObject* self, PyObject* args)
20n/a{
21n/a AEDesc theDesc = {0,0};
22n/a FSSpec fss;
23n/a ComponentInstance defaultComponent = NULL;
24n/a SInt16 defaultTerminology = 0;
25n/a Boolean didLaunch = 0;
26n/a OSAError err;
27n/a long modeFlags = 0;
28n/a
29n/a if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &modeFlags))
30n/a return NULL;
31n/a
32n/a /*
33n/a ** Note that we have to use the AppleScript component here. Who knows why
34n/a ** OSAGetAppTerminology should require a scripting component in the
35n/a ** first place, but it does. Note: doesn't work with the generic scripting
36n/a ** component, which is unfortunate as the AS component is currently very
37n/a ** slow (~1 sec?) to load, but we just have to live with this.
38n/a */
39n/a defaultComponent = OpenDefaultComponent (kOSAComponentType, 'ascr');
40n/a err = GetComponentInstanceError (defaultComponent);
41n/a if (err) return PyMac_Error(err);
42n/a err = OSAGetAppTerminology (
43n/a defaultComponent,
44n/a kOSAModeNull,
45n/a &fss,
46n/a defaultTerminology,
47n/a &didLaunch,
48n/a &theDesc
49n/a );
50n/a if (err) return PyMac_Error(err);
51n/a return Py_BuildValue("O&i", AEDesc_New, &theDesc, didLaunch);
52n/a}
53n/a
54n/astatic PyObject *
55n/aPyOSA_GetSysTerminology(PyObject* self, PyObject* args)
56n/a{
57n/a AEDesc theDesc = {0,0};
58n/a ComponentInstance defaultComponent = NULL;
59n/a SInt16 defaultTerminology = 0;
60n/a OSAError err;
61n/a
62n/a /* Accept any args for sake of backwards compatibility, then ignore them. */
63n/a
64n/a defaultComponent = OpenDefaultComponent (kOSAComponentType, 'ascr');
65n/a err = GetComponentInstanceError (defaultComponent);
66n/a if (err) return PyMac_Error(err);
67n/a err = OSAGetSysTerminology (
68n/a defaultComponent,
69n/a kOSAModeNull,
70n/a defaultTerminology,
71n/a &theDesc
72n/a );
73n/a if (err) return PyMac_Error(err);
74n/a return Py_BuildValue("O&", AEDesc_New, &theDesc);
75n/a}
76n/a#endif /* !__LP64__ */
77n/a
78n/a/*
79n/a * List of methods defined in the module
80n/a */
81n/astatic struct PyMethodDef OSATerminology_methods[] =
82n/a{
83n/a#ifndef __LP64__
84n/a {"GetAppTerminology",
85n/a (PyCFunction) PyOSA_GetAppTerminology,
86n/a METH_VARARGS,
87n/a "Get an application's terminology. GetAppTerminology(path) --> AEDesc"},
88n/a {"GetSysTerminology",
89n/a (PyCFunction) PyOSA_GetSysTerminology,
90n/a METH_VARARGS,
91n/a "Get the AppleScript language's terminology. GetSysTerminology() --> AEDesc"},
92n/a#endif /* !__LP64__ */
93n/a {NULL, (PyCFunction) NULL, 0, NULL}
94n/a};
95n/a
96n/avoid
97n/ainitOSATerminology(void)
98n/a{
99n/a if (PyErr_WarnPy3k("In 3.x, OSATerminology is removed.", 1) < 0)
100n/a return;
101n/a Py_InitModule("OSATerminology", OSATerminology_methods);
102n/a}