/Mac/Modules/OSATerminology.c
http://unladen-swallow.googlecode.com/ · C · 98 lines · 78 code · 9 blank · 11 comment · 7 complexity · ae2a1511d6e1ca000013825b0d80d077 MD5 · raw file
- /*
- ** This module is a one-trick pony: given an FSSpec it gets the aeut
- ** resources. It was written by Donovan Preston and slightly modified
- ** by Jack.
- **
- ** It should be considered a placeholder, it will probably be replaced
- ** by a full interface to OpenScripting.
- */
- #include "Python.h"
- #include "pymactoolbox.h"
- #include <Carbon/Carbon.h>
- #ifndef __LP64__
- static PyObject *
- PyOSA_GetAppTerminology(PyObject* self, PyObject* args)
- {
- AEDesc theDesc = {0,0};
- FSSpec fss;
- ComponentInstance defaultComponent = NULL;
- SInt16 defaultTerminology = 0;
- Boolean didLaunch = 0;
- OSAError err;
- long modeFlags = 0;
-
- if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &modeFlags))
- return NULL;
-
- defaultComponent = OpenDefaultComponent (kOSAComponentType, 'ascr');
- err = GetComponentInstanceError (defaultComponent);
- if (err) return PyMac_Error(err);
- err = OSAGetAppTerminology (
- defaultComponent,
- modeFlags,
- &fss,
- defaultTerminology,
- &didLaunch,
- &theDesc
- );
- if (err) return PyMac_Error(err);
- return Py_BuildValue("O&i", AEDesc_New, &theDesc, didLaunch);
- }
- static PyObject *
- PyOSA_GetSysTerminology(PyObject* self, PyObject* args)
- {
- AEDesc theDesc = {0,0};
- FSSpec fss;
- ComponentInstance defaultComponent = NULL;
- SInt16 defaultTerminology = 0;
- Boolean didLaunch = 0;
- OSAError err;
- long modeFlags = 0;
-
- if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &modeFlags))
- return NULL;
-
- defaultComponent = OpenDefaultComponent (kOSAComponentType, 'ascr');
- err = GetComponentInstanceError (defaultComponent);
- if (err) return PyMac_Error(err);
- err = OSAGetAppTerminology (
- defaultComponent,
- modeFlags,
- &fss,
- defaultTerminology,
- &didLaunch,
- &theDesc
- );
- if (err) return PyMac_Error(err);
- return Py_BuildValue("O&i", AEDesc_New, &theDesc, didLaunch);
- }
- #endif /* !__LP64__ */
- /*
- * List of methods defined in the module
- */
- static struct PyMethodDef OSATerminology_methods[] =
- {
- #ifndef __LP64__
- {"GetAppTerminology",
- (PyCFunction) PyOSA_GetAppTerminology,
- METH_VARARGS,
- "Get an applications terminology, as an AEDesc object."},
- {"GetSysTerminology",
- (PyCFunction) PyOSA_GetSysTerminology,
- METH_VARARGS,
- "Get an applications system terminology, as an AEDesc object."},
- #endif /* !__LP64__ */
- {NULL, (PyCFunction) NULL, 0, NULL}
- };
- void
- initOSATerminology(void)
- {
- if (PyErr_WarnPy3k("In 3.x, OSATerminology is removed.", 1) < 0)
- return;
- Py_InitModule("OSATerminology", OSATerminology_methods);
- }