[Python-checkins] CVS: python/dist/src/Mac/Modules/mlte Mltemodule.c,1.1,1.2

Jack Jansen jackjansen@users.sourceforge.net
Fri, 13 Jul 2001 15:27:10 -0700


Update of /cvsroot/python/python/dist/src/Mac/Modules/mlte
In directory usw-pr-cvs1:/tmp/cvs-serv32192/Python/Mac/Modules/mlte

Modified Files:
	Mltemodule.c 
Log Message:
Fixed the mis-guessed parameters and added support for a few optional parameter types. There's a good chance that this is usable now (but there's no test code yet).

Index: Mltemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/mlte/Mltemodule.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** Mltemodule.c	2001/07/13 20:56:43	1.1
--- Mltemodule.c	2001/07/13 22:27:07	1.2
***************
*** 39,44 ****
  
  /*
! ** Parse/generate ADD records
  */
  
  
--- 39,73 ----
  
  /*
! ** Parse an optional fsspec
  */
+ static int
+ OptFSSpecPtr_Convert(PyObject *v, FSSpec **p_itself)
+ {
+ 	static FSSpec fss;
+ 	if (v == Py_None)
+ 	{
+ 		*p_itself = NULL;
+ 		return 1;
+ 	}
+ 	*p_itself = &fss;
+ 	return PyMac_GetFSSpec(v, *p_itself);
+ }
+ 
+ /*
+ ** Parse an optional rect
+ */
+ static int
+ OptRectPtr_Convert(PyObject *v, Rect **p_itself)
+ {
+ 	static Rect r;
+ 	
+ 	if (v == Py_None)
+ 	{
+ 		*p_itself = NULL;
+ 		return 1;
+ 	}
+ 	*p_itself = &r;
+ 	return PyMac_GetRect(v, *p_itself);
+ }
  
  
***************
*** 193,203 ****
  	EventRecord iEvent;
  	PyMac_PRECHECK(TXNTSMCheck);
! 	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
  	_rv = TXNTSMCheck(_self->ob_itself,
  	                  &iEvent);
! 	_res = Py_BuildValue("bO&",
! 	                     _rv,
! 	                     PyMac_BuildEventRecord, &iEvent);
  	return _res;
  }
--- 222,232 ----
  	EventRecord iEvent;
  	PyMac_PRECHECK(TXNTSMCheck);
! 	if (!PyArg_ParseTuple(_args, "O&",
! 	                      PyMac_GetEventRecord, &iEvent))
  		return NULL;
  	_rv = TXNTSMCheck(_self->ob_itself,
  	                  &iEvent);
! 	_res = Py_BuildValue("b",
! 	                     _rv);
  	return _res;
  }
***************
*** 666,673 ****
  	SInt16 iResourceReference;
  	PyMac_PRECHECK(TXNSave);
! 	if (!PyArg_ParseTuple(_args, "O&O&lhh",
  	                      PyMac_GetOSType, &iType,
  	                      PyMac_GetOSType, &iResType,
  	                      &iPermanentEncoding,
  	                      &iDataReference,
  	                      &iResourceReference))
--- 695,703 ----
  	SInt16 iResourceReference;
  	PyMac_PRECHECK(TXNSave);
! 	if (!PyArg_ParseTuple(_args, "O&O&lO&hh",
  	                      PyMac_GetOSType, &iType,
  	                      PyMac_GetOSType, &iResType,
  	                      &iPermanentEncoding,
+ 	                      PyMac_GetFSSpec, &iFileSpecification,
  	                      &iDataReference,
  	                      &iResourceReference))
***************
*** 681,686 ****
  	               iResourceReference);
  	if (_err != noErr) return PyMac_Error(_err);
! 	_res = Py_BuildValue("O&",
! 	                     PyMac_BuildFSSpec, iFileSpecification);
  	return _res;
  }
--- 711,716 ----
  	               iResourceReference);
  	if (_err != noErr) return PyMac_Error(_err);
! 	Py_INCREF(Py_None);
! 	_res = Py_None;
  	return _res;
  }
***************
*** 904,908 ****
  	 "(EventRecord iEvent) -> None"},
  	{"TXNTSMCheck", (PyCFunction)TXNObj_TXNTSMCheck, 1,
! 	 "() -> (Boolean _rv, EventRecord iEvent)"},
  	{"TXNSelectAll", (PyCFunction)TXNObj_TXNSelectAll, 1,
  	 "() -> None"},
--- 934,938 ----
  	 "(EventRecord iEvent) -> None"},
  	{"TXNTSMCheck", (PyCFunction)TXNObj_TXNTSMCheck, 1,
! 	 "(EventRecord iEvent) -> (Boolean _rv)"},
  	{"TXNSelectAll", (PyCFunction)TXNObj_TXNSelectAll, 1,
  	 "() -> None"},
***************
*** 962,966 ****
  	 "() -> (ItemCount _rv)"},
  	{"TXNSave", (PyCFunction)TXNObj_TXNSave, 1,
! 	 "(OSType iType, OSType iResType, TXNPermanentTextEncodingType iPermanentEncoding, SInt16 iDataReference, SInt16 iResourceReference) -> (FSSpec iFileSpecification)"},
  	{"TXNRevert", (PyCFunction)TXNObj_TXNRevert, 1,
  	 "() -> None"},
--- 992,996 ----
  	 "() -> (ItemCount _rv)"},
  	{"TXNSave", (PyCFunction)TXNObj_TXNSave, 1,
! 	 "(OSType iType, OSType iResType, TXNPermanentTextEncodingType iPermanentEncoding, FSSpec iFileSpecification, SInt16 iDataReference, SInt16 iResourceReference) -> None"},
  	{"TXNRevert", (PyCFunction)TXNObj_TXNRevert, 1,
  	 "() -> None"},
***************
*** 1141,1147 ****
  	PyObject *_res = NULL;
  	OSStatus _err;
! 	FSSpec iFileSpec;
  	WindowPtr iWindow;
! 	Rect iFrame;
  	TXNFrameOptions iFrameOptions;
  	TXNFrameType iFrameType;
--- 1171,1177 ----
  	PyObject *_res = NULL;
  	OSStatus _err;
! 	FSSpec * iFileSpec;
  	WindowPtr iWindow;
! 	Rect * iFrame;
  	TXNFrameOptions iFrameOptions;
  	TXNFrameType iFrameType;
***************
*** 1151,1157 ****
  	TXNFrameID oTXNFrameID;
  	PyMac_PRECHECK(TXNNewObject);
! 	if (!PyArg_ParseTuple(_args, "O&O&llO&l",
! 	                      PyMac_GetFSSpec, &iFileSpec,
  	                      WinObj_Convert, &iWindow,
  	                      &iFrameOptions,
  	                      &iFrameType,
--- 1181,1188 ----
  	TXNFrameID oTXNFrameID;
  	PyMac_PRECHECK(TXNNewObject);
! 	if (!PyArg_ParseTuple(_args, "O&O&O&llO&l",
! 	                      OptFSSpecPtr_Convert, &iFileSpec,
  	                      WinObj_Convert, &iWindow,
+ 	                      OptRectPtr_Convert, &iFrame,
  	                      &iFrameOptions,
  	                      &iFrameType,
***************
*** 1159,1165 ****
  	                      &iPermanentEncoding))
  		return NULL;
! 	_err = TXNNewObject(&iFileSpec,
  	                    iWindow,
! 	                    &iFrame,
  	                    iFrameOptions,
  	                    iFrameType,
--- 1190,1196 ----
  	                      &iPermanentEncoding))
  		return NULL;
! 	_err = TXNNewObject(iFileSpec,
  	                    iWindow,
! 	                    iFrame,
  	                    iFrameOptions,
  	                    iFrameType,
***************
*** 1170,1175 ****
  	                    (TXNObjectRefcon)0);
  	if (_err != noErr) return PyMac_Error(_err);
! 	_res = Py_BuildValue("O&O&l",
! 	                     PyMac_BuildRect, &iFrame,
  	                     TXNObj_New, oTXNObject,
  	                     oTXNFrameID);
--- 1201,1205 ----
  	                    (TXNObjectRefcon)0);
  	if (_err != noErr) return PyMac_Error(_err);
! 	_res = Py_BuildValue("O&l",
  	                     TXNObj_New, oTXNObject,
  	                     oTXNFrameID);
***************
*** 1269,1275 ****
  }
  
  static PyMethodDef Mlte_methods[] = {
  	{"TXNNewObject", (PyCFunction)Mlte_TXNNewObject, 1,
! 	 "(FSSpec iFileSpec, WindowPtr iWindow, TXNFrameOptions iFrameOptions, TXNFrameType iFrameType, TXNFileType iFileType, TXNPermanentTextEncodingType iPermanentEncoding) -> (Rect iFrame, TXNObject oTXNObject, TXNFrameID oTXNFrameID)"},
  	{"TXNTerminateTextension", (PyCFunction)Mlte_TXNTerminateTextension, 1,
  	 "() -> None"},
--- 1299,1326 ----
  }
  
+ static PyObject *Mlte_TXNInitTextension(PyObject *_self, PyObject *_args)
+ {
+ 	PyObject *_res = NULL;
+ 
+ 	OSStatus _err;
+ 	TXNMacOSPreferredFontDescription * iDefaultFonts = NULL;
+ 	ItemCount iCountDefaultFonts = 0;
+ 	TXNInitOptions iUsageFlags;
+ 	PyMac_PRECHECK(TXNInitTextension);
+ 	if (!PyArg_ParseTuple(_args, "l", &iUsageFlags))
+ 		return NULL;
+ 	_err = TXNInitTextension(iDefaultFonts,
+ 	                         iCountDefaultFonts,
+ 	                         iUsageFlags);
+ 	if (_err != noErr) return PyMac_Error(_err);
+ 	Py_INCREF(Py_None);
+ 	_res = Py_None;
+ 	return _res;
+ 
+ }
+ 
  static PyMethodDef Mlte_methods[] = {
  	{"TXNNewObject", (PyCFunction)Mlte_TXNNewObject, 1,
! 	 "(FSSpec * iFileSpec, WindowPtr iWindow, Rect * iFrame, TXNFrameOptions iFrameOptions, TXNFrameType iFrameType, TXNFileType iFileType, TXNPermanentTextEncodingType iPermanentEncoding) -> (TXNObject oTXNObject, TXNFrameID oTXNFrameID)"},
  	{"TXNTerminateTextension", (PyCFunction)Mlte_TXNTerminateTextension, 1,
  	 "() -> None"},
***************
*** 1284,1287 ****
--- 1335,1340 ----
  	{"TXNVersionInformation", (PyCFunction)Mlte_TXNVersionInformation, 1,
  	 "() -> (TXNVersionValue _rv, TXNFeatureBits oFeatureFlags)"},
+ 	{"TXNInitTextension", (PyCFunction)Mlte_TXNInitTextension, 1,
+ 	 "(TXNInitOptions) -> None"},
  	{NULL, NULL, 0}
  };