mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 11:23:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			93 lines
		
	
	
		
			No EOL
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			No EOL
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
** 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>
 | 
						|
 | 
						|
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);
 | 
						|
}
 | 
						|
 | 
						|
/* 
 | 
						|
 * List of methods defined in the module
 | 
						|
 */
 | 
						|
static struct PyMethodDef OSATerminology_methods[] =
 | 
						|
{
 | 
						|
  	{"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."},
 | 
						|
	{NULL, (PyCFunction) NULL, 0, NULL}
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
void
 | 
						|
initOSATerminology(void)
 | 
						|
{
 | 
						|
	Py_InitModule("OSATerminology", OSATerminology_methods);
 | 
						|
} |