]> granicus.if.org Git - python/commitdiff
Module to get OSA terminology description through the "official channels",
authorJack Jansen <jack.jansen@cwi.nl>
Thu, 6 Mar 2003 23:02:04 +0000 (23:02 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Thu, 6 Mar 2003 23:02:04 +0000 (23:02 +0000)
in stead of manually getting the AETE/AEUT resource. Donated by Donovan
Preston. This is his original code (but with the filename changed) checked
in for reference only.

Mac/Modules/OSATerminology.c [new file with mode: 0644]

diff --git a/Mac/Modules/OSATerminology.c b/Mac/Modules/OSATerminology.c
new file mode 100644 (file)
index 0000000..f76f49e
--- /dev/null
@@ -0,0 +1,70 @@
+#include <Python/Python.h>
+#include <Carbon/Carbon.h>
+#include <Python/pymactoolbox.h>
+
+PyObject * PyOSA_GetAppTerminology(PyObject* self, PyObject* args) {
+       AEDesc temp;
+       FSSpec tempFSSpec;
+       
+       ComponentInstance defaultComponent;
+       ScriptingComponentSelector theType;
+       SInt16 defaultTerminology;
+       Boolean didLaunch;
+       
+       OSAError err;
+       
+       PyObject * returnVal;
+       
+       if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSSpec, &tempFSSpec)) return NULL;
+       
+  defaultComponent = OpenDefaultComponent (kOSAComponentType,
+                                             'ascr');
+//                                           kOSAGenericScriptingComponentSubtype);
+
+  err = GetComponentInstanceError (defaultComponent);
+       printf("OpenDefaultComponent: %d\n", err);
+       err = OSAGetCurrentDialect(defaultComponent, &defaultTerminology);
+       printf("getcurrentdialect: %d\n", err);
+       err = OSAGetAppTerminology (
+       defaultComponent, 
+       kOSAModeNull, 
+       &tempFSSpec, 
+       defaultTerminology, 
+       &didLaunch, 
+       &temp
+       );
+
+/*     err = ASGetAppTerminology (
+       defaultComponent, 
+       &tempFSSpec, 
+       defaultTerminology, 
+       &didLaunch, 
+       &temp
+       );*/
+
+       printf("getappterminology: %d\n", err);
+
+       returnVal = Py_BuildValue("O&i",
+                       AEDesc_New, &temp, didLaunch);
+       return returnVal;
+}
+
+/* 
+ * List of methods defined in the module
+ */
+static struct PyMethodDef PyOSA_methods[] =
+{
+  {"GetAppTerminology", 
+   (PyCFunction) PyOSA_GetAppTerminology,
+   METH_VARARGS,
+   "Get an applications terminology, as an AEDesc object."},
+
+  {NULL, (PyCFunction) NULL, 0, NULL}
+};
+
+
+void
+initPyOSA(void)
+{
+       Py_InitModule("PyOSA", PyOSA_methods);
+}
\ No newline at end of file