1 
2 /* ========================== Module _Mlte ========================== */
3 
4 #include "Python.h"
5 #include "pymactoolbox.h"
6 
7 #if APPLE_SUPPORTS_QUICKTIME
8 
9 
10 /* Macro to test whether a weak-loaded CFM function exists */
11 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL )  {\
12         PyErr_SetString(PyExc_NotImplementedError, \
13             "Not available in this shared library/OS version"); \
14         return NULL; \
15     }} while(0)
16 
17 
18 #include <Carbon/Carbon.h>
19 
20 /* For now we declare them forward here. They'll go to mactoolbox later */
21 static PyObject *TXNObj_New(TXNObject);
22 static int TXNObj_Convert(PyObject *, TXNObject *);
23 static PyObject *TXNFontMenuObj_New(TXNFontMenuObject);
24 static int TXNFontMenuObj_Convert(PyObject *, TXNFontMenuObject *);
25 
26 // ADD declarations
27 #ifdef NOTYET_USE_TOOLBOX_OBJECT_GLUE
28 //extern PyObject *_CFTypeRefObj_New(CFTypeRef);
29 //extern int _CFTypeRefObj_Convert(PyObject *, CFTypeRef *);
30 
31 //#define CFTypeRefObj_New _CFTypeRefObj_New
32 //#define CFTypeRefObj_Convert _CFTypeRefObj_Convert
33 #endif
34 
35 /*
36 ** Parse an optional fsspec
37 */
38 static int
OptFSSpecPtr_Convert(PyObject * v,FSSpec ** p_itself)39 OptFSSpecPtr_Convert(PyObject *v, FSSpec **p_itself)
40 {
41     static FSSpec fss;
42     if (v == Py_None)
43     {
44         *p_itself = NULL;
45         return 1;
46     }
47     *p_itself = &fss;
48     return PyMac_GetFSSpec(v, *p_itself);
49 }
50 
51 /*
52 ** Parse an optional GWorld
53 */
54 static int
OptGWorldObj_Convert(PyObject * v,GWorldPtr * p_itself)55 OptGWorldObj_Convert(PyObject *v, GWorldPtr *p_itself)
56 {
57     if (v == Py_None)
58     {
59         *p_itself = NULL;
60         return 1;
61     }
62     return GWorldObj_Convert(v, p_itself);
63 }
64 
65 
66 static PyObject *Mlte_Error;
67 
68 /* --------------------- Object type TXNObject ---------------------- */
69 
70 PyTypeObject TXNObject_Type;
71 
72 #define TXNObj_Check(x) ((x)->ob_type == &TXNObject_Type || PyObject_TypeCheck((x), &TXNObject_Type))
73 
74 typedef struct TXNObjectObject {
75     PyObject_HEAD
76     TXNObject ob_itself;
77 } TXNObjectObject;
78 
TXNObj_New(TXNObject itself)79 PyObject *TXNObj_New(TXNObject itself)
80 {
81     TXNObjectObject *it;
82     if (itself == NULL) return PyMac_Error(resNotFound);
83     it = PyObject_NEW(TXNObjectObject, &TXNObject_Type);
84     if (it == NULL) return NULL;
85     it->ob_itself = itself;
86     return (PyObject *)it;
87 }
88 
TXNObj_Convert(PyObject * v,TXNObject * p_itself)89 int TXNObj_Convert(PyObject *v, TXNObject *p_itself)
90 {
91     if (!TXNObj_Check(v))
92     {
93         PyErr_SetString(PyExc_TypeError, "TXNObject required");
94         return 0;
95     }
96     *p_itself = ((TXNObjectObject *)v)->ob_itself;
97     return 1;
98 }
99 
TXNObj_dealloc(TXNObjectObject * self)100 static void TXNObj_dealloc(TXNObjectObject *self)
101 {
102     /* Cleanup of self->ob_itself goes here */
103     self->ob_type->tp_free((PyObject *)self);
104 }
105 
TXNObj_TXNDeleteObject(TXNObjectObject * _self,PyObject * _args)106 static PyObject *TXNObj_TXNDeleteObject(TXNObjectObject *_self, PyObject *_args)
107 {
108     PyObject *_res = NULL;
109 #ifndef TXNDeleteObject
110     PyMac_PRECHECK(TXNDeleteObject);
111 #endif
112     if (!PyArg_ParseTuple(_args, ""))
113         return NULL;
114     TXNDeleteObject(_self->ob_itself);
115     Py_INCREF(Py_None);
116     _res = Py_None;
117     return _res;
118 }
119 
TXNObj_TXNResizeFrame(TXNObjectObject * _self,PyObject * _args)120 static PyObject *TXNObj_TXNResizeFrame(TXNObjectObject *_self, PyObject *_args)
121 {
122     PyObject *_res = NULL;
123     UInt32 iWidth;
124     UInt32 iHeight;
125     TXNFrameID iTXNFrameID;
126 #ifndef TXNResizeFrame
127     PyMac_PRECHECK(TXNResizeFrame);
128 #endif
129     if (!PyArg_ParseTuple(_args, "lll",
130                           &iWidth,
131                           &iHeight,
132                           &iTXNFrameID))
133         return NULL;
134     TXNResizeFrame(_self->ob_itself,
135                    iWidth,
136                    iHeight,
137                    iTXNFrameID);
138     Py_INCREF(Py_None);
139     _res = Py_None;
140     return _res;
141 }
142 
TXNObj_TXNSetFrameBounds(TXNObjectObject * _self,PyObject * _args)143 static PyObject *TXNObj_TXNSetFrameBounds(TXNObjectObject *_self, PyObject *_args)
144 {
145     PyObject *_res = NULL;
146     SInt32 iTop;
147     SInt32 iLeft;
148     SInt32 iBottom;
149     SInt32 iRight;
150     TXNFrameID iTXNFrameID;
151 #ifndef TXNSetFrameBounds
152     PyMac_PRECHECK(TXNSetFrameBounds);
153 #endif
154     if (!PyArg_ParseTuple(_args, "lllll",
155                           &iTop,
156                           &iLeft,
157                           &iBottom,
158                           &iRight,
159                           &iTXNFrameID))
160         return NULL;
161     TXNSetFrameBounds(_self->ob_itself,
162                       iTop,
163                       iLeft,
164                       iBottom,
165                       iRight,
166                       iTXNFrameID);
167     Py_INCREF(Py_None);
168     _res = Py_None;
169     return _res;
170 }
171 
TXNObj_TXNKeyDown(TXNObjectObject * _self,PyObject * _args)172 static PyObject *TXNObj_TXNKeyDown(TXNObjectObject *_self, PyObject *_args)
173 {
174     PyObject *_res = NULL;
175     EventRecord iEvent;
176 #ifndef TXNKeyDown
177     PyMac_PRECHECK(TXNKeyDown);
178 #endif
179     if (!PyArg_ParseTuple(_args, "O&",
180                           PyMac_GetEventRecord, &iEvent))
181         return NULL;
182     TXNKeyDown(_self->ob_itself,
183                &iEvent);
184     Py_INCREF(Py_None);
185     _res = Py_None;
186     return _res;
187 }
188 
TXNObj_TXNAdjustCursor(TXNObjectObject * _self,PyObject * _args)189 static PyObject *TXNObj_TXNAdjustCursor(TXNObjectObject *_self, PyObject *_args)
190 {
191     PyObject *_res = NULL;
192     RgnHandle ioCursorRgn;
193 #ifndef TXNAdjustCursor
194     PyMac_PRECHECK(TXNAdjustCursor);
195 #endif
196     if (!PyArg_ParseTuple(_args, "O&",
197                           OptResObj_Convert, &ioCursorRgn))
198         return NULL;
199     TXNAdjustCursor(_self->ob_itself,
200                     ioCursorRgn);
201     Py_INCREF(Py_None);
202     _res = Py_None;
203     return _res;
204 }
205 
TXNObj_TXNClick(TXNObjectObject * _self,PyObject * _args)206 static PyObject *TXNObj_TXNClick(TXNObjectObject *_self, PyObject *_args)
207 {
208     PyObject *_res = NULL;
209     EventRecord iEvent;
210 #ifndef TXNClick
211     PyMac_PRECHECK(TXNClick);
212 #endif
213     if (!PyArg_ParseTuple(_args, "O&",
214                           PyMac_GetEventRecord, &iEvent))
215         return NULL;
216     TXNClick(_self->ob_itself,
217              &iEvent);
218     Py_INCREF(Py_None);
219     _res = Py_None;
220     return _res;
221 }
222 
TXNObj_TXNSelectAll(TXNObjectObject * _self,PyObject * _args)223 static PyObject *TXNObj_TXNSelectAll(TXNObjectObject *_self, PyObject *_args)
224 {
225     PyObject *_res = NULL;
226 #ifndef TXNSelectAll
227     PyMac_PRECHECK(TXNSelectAll);
228 #endif
229     if (!PyArg_ParseTuple(_args, ""))
230         return NULL;
231     TXNSelectAll(_self->ob_itself);
232     Py_INCREF(Py_None);
233     _res = Py_None;
234     return _res;
235 }
236 
TXNObj_TXNFocus(TXNObjectObject * _self,PyObject * _args)237 static PyObject *TXNObj_TXNFocus(TXNObjectObject *_self, PyObject *_args)
238 {
239     PyObject *_res = NULL;
240     Boolean iBecomingFocused;
241 #ifndef TXNFocus
242     PyMac_PRECHECK(TXNFocus);
243 #endif
244     if (!PyArg_ParseTuple(_args, "b",
245                           &iBecomingFocused))
246         return NULL;
247     TXNFocus(_self->ob_itself,
248              iBecomingFocused);
249     Py_INCREF(Py_None);
250     _res = Py_None;
251     return _res;
252 }
253 
TXNObj_TXNUpdate(TXNObjectObject * _self,PyObject * _args)254 static PyObject *TXNObj_TXNUpdate(TXNObjectObject *_self, PyObject *_args)
255 {
256     PyObject *_res = NULL;
257 #ifndef TXNUpdate
258     PyMac_PRECHECK(TXNUpdate);
259 #endif
260     if (!PyArg_ParseTuple(_args, ""))
261         return NULL;
262     TXNUpdate(_self->ob_itself);
263     Py_INCREF(Py_None);
264     _res = Py_None;
265     return _res;
266 }
267 
TXNObj_TXNDraw(TXNObjectObject * _self,PyObject * _args)268 static PyObject *TXNObj_TXNDraw(TXNObjectObject *_self, PyObject *_args)
269 {
270     PyObject *_res = NULL;
271     GWorldPtr iDrawPort;
272 #ifndef TXNDraw
273     PyMac_PRECHECK(TXNDraw);
274 #endif
275     if (!PyArg_ParseTuple(_args, "O&",
276                           OptGWorldObj_Convert, &iDrawPort))
277         return NULL;
278     TXNDraw(_self->ob_itself,
279         iDrawPort);
280     Py_INCREF(Py_None);
281     _res = Py_None;
282     return _res;
283 }
284 
TXNObj_TXNForceUpdate(TXNObjectObject * _self,PyObject * _args)285 static PyObject *TXNObj_TXNForceUpdate(TXNObjectObject *_self, PyObject *_args)
286 {
287     PyObject *_res = NULL;
288 #ifndef TXNForceUpdate
289     PyMac_PRECHECK(TXNForceUpdate);
290 #endif
291     if (!PyArg_ParseTuple(_args, ""))
292         return NULL;
293     TXNForceUpdate(_self->ob_itself);
294     Py_INCREF(Py_None);
295     _res = Py_None;
296     return _res;
297 }
298 
TXNObj_TXNGetSleepTicks(TXNObjectObject * _self,PyObject * _args)299 static PyObject *TXNObj_TXNGetSleepTicks(TXNObjectObject *_self, PyObject *_args)
300 {
301     PyObject *_res = NULL;
302     UInt32 _rv;
303 #ifndef TXNGetSleepTicks
304     PyMac_PRECHECK(TXNGetSleepTicks);
305 #endif
306     if (!PyArg_ParseTuple(_args, ""))
307         return NULL;
308     _rv = TXNGetSleepTicks(_self->ob_itself);
309     _res = Py_BuildValue("l",
310                          _rv);
311     return _res;
312 }
313 
TXNObj_TXNIdle(TXNObjectObject * _self,PyObject * _args)314 static PyObject *TXNObj_TXNIdle(TXNObjectObject *_self, PyObject *_args)
315 {
316     PyObject *_res = NULL;
317 #ifndef TXNIdle
318     PyMac_PRECHECK(TXNIdle);
319 #endif
320     if (!PyArg_ParseTuple(_args, ""))
321         return NULL;
322     TXNIdle(_self->ob_itself);
323     Py_INCREF(Py_None);
324     _res = Py_None;
325     return _res;
326 }
327 
TXNObj_TXNGrowWindow(TXNObjectObject * _self,PyObject * _args)328 static PyObject *TXNObj_TXNGrowWindow(TXNObjectObject *_self, PyObject *_args)
329 {
330     PyObject *_res = NULL;
331     EventRecord iEvent;
332 #ifndef TXNGrowWindow
333     PyMac_PRECHECK(TXNGrowWindow);
334 #endif
335     if (!PyArg_ParseTuple(_args, "O&",
336                           PyMac_GetEventRecord, &iEvent))
337         return NULL;
338     TXNGrowWindow(_self->ob_itself,
339                   &iEvent);
340     Py_INCREF(Py_None);
341     _res = Py_None;
342     return _res;
343 }
344 
TXNObj_TXNZoomWindow(TXNObjectObject * _self,PyObject * _args)345 static PyObject *TXNObj_TXNZoomWindow(TXNObjectObject *_self, PyObject *_args)
346 {
347     PyObject *_res = NULL;
348     SInt16 iPart;
349 #ifndef TXNZoomWindow
350     PyMac_PRECHECK(TXNZoomWindow);
351 #endif
352     if (!PyArg_ParseTuple(_args, "h",
353                           &iPart))
354         return NULL;
355     TXNZoomWindow(_self->ob_itself,
356                   iPart);
357     Py_INCREF(Py_None);
358     _res = Py_None;
359     return _res;
360 }
361 
TXNObj_TXNCanUndo(TXNObjectObject * _self,PyObject * _args)362 static PyObject *TXNObj_TXNCanUndo(TXNObjectObject *_self, PyObject *_args)
363 {
364     PyObject *_res = NULL;
365     Boolean _rv;
366     TXNActionKey oTXNActionKey;
367 #ifndef TXNCanUndo
368     PyMac_PRECHECK(TXNCanUndo);
369 #endif
370     if (!PyArg_ParseTuple(_args, ""))
371         return NULL;
372     _rv = TXNCanUndo(_self->ob_itself,
373                      &oTXNActionKey);
374     _res = Py_BuildValue("bl",
375                          _rv,
376                          oTXNActionKey);
377     return _res;
378 }
379 
TXNObj_TXNUndo(TXNObjectObject * _self,PyObject * _args)380 static PyObject *TXNObj_TXNUndo(TXNObjectObject *_self, PyObject *_args)
381 {
382     PyObject *_res = NULL;
383 #ifndef TXNUndo
384     PyMac_PRECHECK(TXNUndo);
385 #endif
386     if (!PyArg_ParseTuple(_args, ""))
387         return NULL;
388     TXNUndo(_self->ob_itself);
389     Py_INCREF(Py_None);
390     _res = Py_None;
391     return _res;
392 }
393 
TXNObj_TXNCanRedo(TXNObjectObject * _self,PyObject * _args)394 static PyObject *TXNObj_TXNCanRedo(TXNObjectObject *_self, PyObject *_args)
395 {
396     PyObject *_res = NULL;
397     Boolean _rv;
398     TXNActionKey oTXNActionKey;
399 #ifndef TXNCanRedo
400     PyMac_PRECHECK(TXNCanRedo);
401 #endif
402     if (!PyArg_ParseTuple(_args, ""))
403         return NULL;
404     _rv = TXNCanRedo(_self->ob_itself,
405                      &oTXNActionKey);
406     _res = Py_BuildValue("bl",
407                          _rv,
408                          oTXNActionKey);
409     return _res;
410 }
411 
TXNObj_TXNRedo(TXNObjectObject * _self,PyObject * _args)412 static PyObject *TXNObj_TXNRedo(TXNObjectObject *_self, PyObject *_args)
413 {
414     PyObject *_res = NULL;
415 #ifndef TXNRedo
416     PyMac_PRECHECK(TXNRedo);
417 #endif
418     if (!PyArg_ParseTuple(_args, ""))
419         return NULL;
420     TXNRedo(_self->ob_itself);
421     Py_INCREF(Py_None);
422     _res = Py_None;
423     return _res;
424 }
425 
TXNObj_TXNCut(TXNObjectObject * _self,PyObject * _args)426 static PyObject *TXNObj_TXNCut(TXNObjectObject *_self, PyObject *_args)
427 {
428     PyObject *_res = NULL;
429     OSStatus _err;
430 #ifndef TXNCut
431     PyMac_PRECHECK(TXNCut);
432 #endif
433     if (!PyArg_ParseTuple(_args, ""))
434         return NULL;
435     _err = TXNCut(_self->ob_itself);
436     if (_err != noErr) return PyMac_Error(_err);
437     Py_INCREF(Py_None);
438     _res = Py_None;
439     return _res;
440 }
441 
TXNObj_TXNCopy(TXNObjectObject * _self,PyObject * _args)442 static PyObject *TXNObj_TXNCopy(TXNObjectObject *_self, PyObject *_args)
443 {
444     PyObject *_res = NULL;
445     OSStatus _err;
446 #ifndef TXNCopy
447     PyMac_PRECHECK(TXNCopy);
448 #endif
449     if (!PyArg_ParseTuple(_args, ""))
450         return NULL;
451     _err = TXNCopy(_self->ob_itself);
452     if (_err != noErr) return PyMac_Error(_err);
453     Py_INCREF(Py_None);
454     _res = Py_None;
455     return _res;
456 }
457 
TXNObj_TXNPaste(TXNObjectObject * _self,PyObject * _args)458 static PyObject *TXNObj_TXNPaste(TXNObjectObject *_self, PyObject *_args)
459 {
460     PyObject *_res = NULL;
461     OSStatus _err;
462 #ifndef TXNPaste
463     PyMac_PRECHECK(TXNPaste);
464 #endif
465     if (!PyArg_ParseTuple(_args, ""))
466         return NULL;
467     _err = TXNPaste(_self->ob_itself);
468     if (_err != noErr) return PyMac_Error(_err);
469     Py_INCREF(Py_None);
470     _res = Py_None;
471     return _res;
472 }
473 
TXNObj_TXNClear(TXNObjectObject * _self,PyObject * _args)474 static PyObject *TXNObj_TXNClear(TXNObjectObject *_self, PyObject *_args)
475 {
476     PyObject *_res = NULL;
477     OSStatus _err;
478 #ifndef TXNClear
479     PyMac_PRECHECK(TXNClear);
480 #endif
481     if (!PyArg_ParseTuple(_args, ""))
482         return NULL;
483     _err = TXNClear(_self->ob_itself);
484     if (_err != noErr) return PyMac_Error(_err);
485     Py_INCREF(Py_None);
486     _res = Py_None;
487     return _res;
488 }
489 
TXNObj_TXNGetSelection(TXNObjectObject * _self,PyObject * _args)490 static PyObject *TXNObj_TXNGetSelection(TXNObjectObject *_self, PyObject *_args)
491 {
492     PyObject *_res = NULL;
493     TXNOffset oStartOffset;
494     TXNOffset oEndOffset;
495 #ifndef TXNGetSelection
496     PyMac_PRECHECK(TXNGetSelection);
497 #endif
498     if (!PyArg_ParseTuple(_args, ""))
499         return NULL;
500     TXNGetSelection(_self->ob_itself,
501                     &oStartOffset,
502                     &oEndOffset);
503     _res = Py_BuildValue("ll",
504                          oStartOffset,
505                          oEndOffset);
506     return _res;
507 }
508 
TXNObj_TXNShowSelection(TXNObjectObject * _self,PyObject * _args)509 static PyObject *TXNObj_TXNShowSelection(TXNObjectObject *_self, PyObject *_args)
510 {
511     PyObject *_res = NULL;
512     Boolean iShowEnd;
513 #ifndef TXNShowSelection
514     PyMac_PRECHECK(TXNShowSelection);
515 #endif
516     if (!PyArg_ParseTuple(_args, "b",
517                           &iShowEnd))
518         return NULL;
519     TXNShowSelection(_self->ob_itself,
520                      iShowEnd);
521     Py_INCREF(Py_None);
522     _res = Py_None;
523     return _res;
524 }
525 
TXNObj_TXNIsSelectionEmpty(TXNObjectObject * _self,PyObject * _args)526 static PyObject *TXNObj_TXNIsSelectionEmpty(TXNObjectObject *_self, PyObject *_args)
527 {
528     PyObject *_res = NULL;
529     Boolean _rv;
530 #ifndef TXNIsSelectionEmpty
531     PyMac_PRECHECK(TXNIsSelectionEmpty);
532 #endif
533     if (!PyArg_ParseTuple(_args, ""))
534         return NULL;
535     _rv = TXNIsSelectionEmpty(_self->ob_itself);
536     _res = Py_BuildValue("b",
537                          _rv);
538     return _res;
539 }
540 
TXNObj_TXNSetSelection(TXNObjectObject * _self,PyObject * _args)541 static PyObject *TXNObj_TXNSetSelection(TXNObjectObject *_self, PyObject *_args)
542 {
543     PyObject *_res = NULL;
544     OSStatus _err;
545     TXNOffset iStartOffset;
546     TXNOffset iEndOffset;
547 #ifndef TXNSetSelection
548     PyMac_PRECHECK(TXNSetSelection);
549 #endif
550     if (!PyArg_ParseTuple(_args, "ll",
551                           &iStartOffset,
552                           &iEndOffset))
553         return NULL;
554     _err = TXNSetSelection(_self->ob_itself,
555                            iStartOffset,
556                            iEndOffset);
557     if (_err != noErr) return PyMac_Error(_err);
558     Py_INCREF(Py_None);
559     _res = Py_None;
560     return _res;
561 }
562 
TXNObj_TXNCountRunsInRange(TXNObjectObject * _self,PyObject * _args)563 static PyObject *TXNObj_TXNCountRunsInRange(TXNObjectObject *_self, PyObject *_args)
564 {
565     PyObject *_res = NULL;
566     OSStatus _err;
567     TXNOffset iStartOffset;
568     TXNOffset iEndOffset;
569     ItemCount oRunCount;
570 #ifndef TXNCountRunsInRange
571     PyMac_PRECHECK(TXNCountRunsInRange);
572 #endif
573     if (!PyArg_ParseTuple(_args, "ll",
574                           &iStartOffset,
575                           &iEndOffset))
576         return NULL;
577     _err = TXNCountRunsInRange(_self->ob_itself,
578                                iStartOffset,
579                                iEndOffset,
580                                &oRunCount);
581     if (_err != noErr) return PyMac_Error(_err);
582     _res = Py_BuildValue("l",
583                          oRunCount);
584     return _res;
585 }
586 
TXNObj_TXNDataSize(TXNObjectObject * _self,PyObject * _args)587 static PyObject *TXNObj_TXNDataSize(TXNObjectObject *_self, PyObject *_args)
588 {
589     PyObject *_res = NULL;
590     ByteCount _rv;
591 #ifndef TXNDataSize
592     PyMac_PRECHECK(TXNDataSize);
593 #endif
594     if (!PyArg_ParseTuple(_args, ""))
595         return NULL;
596     _rv = TXNDataSize(_self->ob_itself);
597     _res = Py_BuildValue("l",
598                          _rv);
599     return _res;
600 }
601 
TXNObj_TXNGetData(TXNObjectObject * _self,PyObject * _args)602 static PyObject *TXNObj_TXNGetData(TXNObjectObject *_self, PyObject *_args)
603 {
604     PyObject *_res = NULL;
605     OSStatus _err;
606     TXNOffset iStartOffset;
607     TXNOffset iEndOffset;
608     Handle oDataHandle;
609 #ifndef TXNGetData
610     PyMac_PRECHECK(TXNGetData);
611 #endif
612     if (!PyArg_ParseTuple(_args, "ll",
613                           &iStartOffset,
614                           &iEndOffset))
615         return NULL;
616     _err = TXNGetData(_self->ob_itself,
617                       iStartOffset,
618                       iEndOffset,
619                       &oDataHandle);
620     if (_err != noErr) return PyMac_Error(_err);
621     _res = Py_BuildValue("O&",
622                          ResObj_New, oDataHandle);
623     return _res;
624 }
625 
TXNObj_TXNGetDataEncoded(TXNObjectObject * _self,PyObject * _args)626 static PyObject *TXNObj_TXNGetDataEncoded(TXNObjectObject *_self, PyObject *_args)
627 {
628     PyObject *_res = NULL;
629     OSStatus _err;
630     TXNOffset iStartOffset;
631     TXNOffset iEndOffset;
632     Handle oDataHandle;
633     TXNDataType iEncoding;
634 #ifndef TXNGetDataEncoded
635     PyMac_PRECHECK(TXNGetDataEncoded);
636 #endif
637     if (!PyArg_ParseTuple(_args, "llO&",
638                           &iStartOffset,
639                           &iEndOffset,
640                           PyMac_GetOSType, &iEncoding))
641         return NULL;
642     _err = TXNGetDataEncoded(_self->ob_itself,
643                              iStartOffset,
644                              iEndOffset,
645                              &oDataHandle,
646                              iEncoding);
647     if (_err != noErr) return PyMac_Error(_err);
648     _res = Py_BuildValue("O&",
649                          ResObj_New, oDataHandle);
650     return _res;
651 }
652 
TXNObj_TXNSetDataFromFile(TXNObjectObject * _self,PyObject * _args)653 static PyObject *TXNObj_TXNSetDataFromFile(TXNObjectObject *_self, PyObject *_args)
654 {
655     PyObject *_res = NULL;
656     OSStatus _err;
657     SInt16 iFileRefNum;
658     OSType iFileType;
659     ByteCount iFileLength;
660     TXNOffset iStartOffset;
661     TXNOffset iEndOffset;
662 #ifndef TXNSetDataFromFile
663     PyMac_PRECHECK(TXNSetDataFromFile);
664 #endif
665     if (!PyArg_ParseTuple(_args, "hO&lll",
666                           &iFileRefNum,
667                           PyMac_GetOSType, &iFileType,
668                           &iFileLength,
669                           &iStartOffset,
670                           &iEndOffset))
671         return NULL;
672     _err = TXNSetDataFromFile(_self->ob_itself,
673                               iFileRefNum,
674                               iFileType,
675                               iFileLength,
676                               iStartOffset,
677                               iEndOffset);
678     if (_err != noErr) return PyMac_Error(_err);
679     Py_INCREF(Py_None);
680     _res = Py_None;
681     return _res;
682 }
683 
TXNObj_TXNGetChangeCount(TXNObjectObject * _self,PyObject * _args)684 static PyObject *TXNObj_TXNGetChangeCount(TXNObjectObject *_self, PyObject *_args)
685 {
686     PyObject *_res = NULL;
687     ItemCount _rv;
688 #ifndef TXNGetChangeCount
689     PyMac_PRECHECK(TXNGetChangeCount);
690 #endif
691     if (!PyArg_ParseTuple(_args, ""))
692         return NULL;
693     _rv = TXNGetChangeCount(_self->ob_itself);
694     _res = Py_BuildValue("l",
695                          _rv);
696     return _res;
697 }
698 
TXNObj_TXNSave(TXNObjectObject * _self,PyObject * _args)699 static PyObject *TXNObj_TXNSave(TXNObjectObject *_self, PyObject *_args)
700 {
701     PyObject *_res = NULL;
702     OSStatus _err;
703     TXNFileType iType;
704     OSType iResType;
705     TXNPermanentTextEncodingType iPermanentEncoding;
706     FSSpec iFileSpecification;
707     SInt16 iDataReference;
708     SInt16 iResourceReference;
709 #ifndef TXNSave
710     PyMac_PRECHECK(TXNSave);
711 #endif
712     if (!PyArg_ParseTuple(_args, "O&O&lO&hh",
713                           PyMac_GetOSType, &iType,
714                           PyMac_GetOSType, &iResType,
715                           &iPermanentEncoding,
716                           PyMac_GetFSSpec, &iFileSpecification,
717                           &iDataReference,
718                           &iResourceReference))
719         return NULL;
720     _err = TXNSave(_self->ob_itself,
721                    iType,
722                    iResType,
723                    iPermanentEncoding,
724                    &iFileSpecification,
725                    iDataReference,
726                    iResourceReference);
727     if (_err != noErr) return PyMac_Error(_err);
728     Py_INCREF(Py_None);
729     _res = Py_None;
730     return _res;
731 }
732 
TXNObj_TXNRevert(TXNObjectObject * _self,PyObject * _args)733 static PyObject *TXNObj_TXNRevert(TXNObjectObject *_self, PyObject *_args)
734 {
735     PyObject *_res = NULL;
736     OSStatus _err;
737 #ifndef TXNRevert
738     PyMac_PRECHECK(TXNRevert);
739 #endif
740     if (!PyArg_ParseTuple(_args, ""))
741         return NULL;
742     _err = TXNRevert(_self->ob_itself);
743     if (_err != noErr) return PyMac_Error(_err);
744     Py_INCREF(Py_None);
745     _res = Py_None;
746     return _res;
747 }
748 
TXNObj_TXNPageSetup(TXNObjectObject * _self,PyObject * _args)749 static PyObject *TXNObj_TXNPageSetup(TXNObjectObject *_self, PyObject *_args)
750 {
751     PyObject *_res = NULL;
752     OSStatus _err;
753 #ifndef TXNPageSetup
754     PyMac_PRECHECK(TXNPageSetup);
755 #endif
756     if (!PyArg_ParseTuple(_args, ""))
757         return NULL;
758     _err = TXNPageSetup(_self->ob_itself);
759     if (_err != noErr) return PyMac_Error(_err);
760     Py_INCREF(Py_None);
761     _res = Py_None;
762     return _res;
763 }
764 
TXNObj_TXNPrint(TXNObjectObject * _self,PyObject * _args)765 static PyObject *TXNObj_TXNPrint(TXNObjectObject *_self, PyObject *_args)
766 {
767     PyObject *_res = NULL;
768     OSStatus _err;
769 #ifndef TXNPrint
770     PyMac_PRECHECK(TXNPrint);
771 #endif
772     if (!PyArg_ParseTuple(_args, ""))
773         return NULL;
774     _err = TXNPrint(_self->ob_itself);
775     if (_err != noErr) return PyMac_Error(_err);
776     Py_INCREF(Py_None);
777     _res = Py_None;
778     return _res;
779 }
780 
TXNObj_TXNGetViewRect(TXNObjectObject * _self,PyObject * _args)781 static PyObject *TXNObj_TXNGetViewRect(TXNObjectObject *_self, PyObject *_args)
782 {
783     PyObject *_res = NULL;
784     Rect oViewRect;
785 #ifndef TXNGetViewRect
786     PyMac_PRECHECK(TXNGetViewRect);
787 #endif
788     if (!PyArg_ParseTuple(_args, ""))
789         return NULL;
790     TXNGetViewRect(_self->ob_itself,
791                    &oViewRect);
792     _res = Py_BuildValue("O&",
793                          PyMac_BuildRect, &oViewRect);
794     return _res;
795 }
796 
TXNObj_TXNSetViewRect(TXNObjectObject * _self,PyObject * _args)797 static PyObject *TXNObj_TXNSetViewRect(TXNObjectObject *_self, PyObject *_args)
798 {
799     PyObject *_res = NULL;
800     Rect iViewRect;
801 #ifndef TXNSetViewRect
802     PyMac_PRECHECK(TXNSetViewRect);
803 #endif
804     if (!PyArg_ParseTuple(_args, "O&",
805                           PyMac_GetRect, &iViewRect))
806         return NULL;
807     TXNSetViewRect(_self->ob_itself,
808                    &iViewRect);
809     Py_INCREF(Py_None);
810     _res = Py_None;
811     return _res;
812 }
813 
TXNObj_TXNAttachObjectToWindow(TXNObjectObject * _self,PyObject * _args)814 static PyObject *TXNObj_TXNAttachObjectToWindow(TXNObjectObject *_self, PyObject *_args)
815 {
816     PyObject *_res = NULL;
817     OSStatus _err;
818     GWorldPtr iWindow;
819     Boolean iIsActualWindow;
820 #ifndef TXNAttachObjectToWindow
821     PyMac_PRECHECK(TXNAttachObjectToWindow);
822 #endif
823     if (!PyArg_ParseTuple(_args, "O&b",
824                           GWorldObj_Convert, &iWindow,
825                           &iIsActualWindow))
826         return NULL;
827     _err = TXNAttachObjectToWindow(_self->ob_itself,
828                                    iWindow,
829                                    iIsActualWindow);
830     if (_err != noErr) return PyMac_Error(_err);
831     Py_INCREF(Py_None);
832     _res = Py_None;
833     return _res;
834 }
835 
TXNObj_TXNIsObjectAttachedToWindow(TXNObjectObject * _self,PyObject * _args)836 static PyObject *TXNObj_TXNIsObjectAttachedToWindow(TXNObjectObject *_self, PyObject *_args)
837 {
838     PyObject *_res = NULL;
839     Boolean _rv;
840 #ifndef TXNIsObjectAttachedToWindow
841     PyMac_PRECHECK(TXNIsObjectAttachedToWindow);
842 #endif
843     if (!PyArg_ParseTuple(_args, ""))
844         return NULL;
845     _rv = TXNIsObjectAttachedToWindow(_self->ob_itself);
846     _res = Py_BuildValue("b",
847                          _rv);
848     return _res;
849 }
850 
TXNObj_TXNDragTracker(TXNObjectObject * _self,PyObject * _args)851 static PyObject *TXNObj_TXNDragTracker(TXNObjectObject *_self, PyObject *_args)
852 {
853     PyObject *_res = NULL;
854     OSErr _err;
855     TXNFrameID iTXNFrameID;
856     DragTrackingMessage iMessage;
857     WindowPtr iWindow;
858     DragReference iDragReference;
859     Boolean iDifferentObjectSameWindow;
860 #ifndef TXNDragTracker
861     PyMac_PRECHECK(TXNDragTracker);
862 #endif
863     if (!PyArg_ParseTuple(_args, "lhO&O&b",
864                           &iTXNFrameID,
865                           &iMessage,
866                           WinObj_Convert, &iWindow,
867                           DragObj_Convert, &iDragReference,
868                           &iDifferentObjectSameWindow))
869         return NULL;
870     _err = TXNDragTracker(_self->ob_itself,
871                           iTXNFrameID,
872                           iMessage,
873                           iWindow,
874                           iDragReference,
875                           iDifferentObjectSameWindow);
876     if (_err != noErr) return PyMac_Error(_err);
877     Py_INCREF(Py_None);
878     _res = Py_None;
879     return _res;
880 }
881 
TXNObj_TXNDragReceiver(TXNObjectObject * _self,PyObject * _args)882 static PyObject *TXNObj_TXNDragReceiver(TXNObjectObject *_self, PyObject *_args)
883 {
884     PyObject *_res = NULL;
885     OSErr _err;
886     TXNFrameID iTXNFrameID;
887     WindowPtr iWindow;
888     DragReference iDragReference;
889     Boolean iDifferentObjectSameWindow;
890 #ifndef TXNDragReceiver
891     PyMac_PRECHECK(TXNDragReceiver);
892 #endif
893     if (!PyArg_ParseTuple(_args, "lO&O&b",
894                           &iTXNFrameID,
895                           WinObj_Convert, &iWindow,
896                           DragObj_Convert, &iDragReference,
897                           &iDifferentObjectSameWindow))
898         return NULL;
899     _err = TXNDragReceiver(_self->ob_itself,
900                            iTXNFrameID,
901                            iWindow,
902                            iDragReference,
903                            iDifferentObjectSameWindow);
904     if (_err != noErr) return PyMac_Error(_err);
905     Py_INCREF(Py_None);
906     _res = Py_None;
907     return _res;
908 }
909 
TXNObj_TXNActivate(TXNObjectObject * _self,PyObject * _args)910 static PyObject *TXNObj_TXNActivate(TXNObjectObject *_self, PyObject *_args)
911 {
912     PyObject *_res = NULL;
913     OSStatus _err;
914     TXNFrameID iTXNFrameID;
915     TXNScrollBarState iActiveState;
916 #ifndef TXNActivate
917     PyMac_PRECHECK(TXNActivate);
918 #endif
919     if (!PyArg_ParseTuple(_args, "ll",
920                           &iTXNFrameID,
921                           &iActiveState))
922         return NULL;
923     _err = TXNActivate(_self->ob_itself,
924                        iTXNFrameID,
925                        iActiveState);
926     if (_err != noErr) return PyMac_Error(_err);
927     Py_INCREF(Py_None);
928     _res = Py_None;
929     return _res;
930 }
931 
TXNObj_TXNEchoMode(TXNObjectObject * _self,PyObject * _args)932 static PyObject *TXNObj_TXNEchoMode(TXNObjectObject *_self, PyObject *_args)
933 {
934     PyObject *_res = NULL;
935     OSStatus _err;
936     UniChar iEchoCharacter;
937     TextEncoding iEncoding;
938     Boolean iOn;
939 #ifndef TXNEchoMode
940     PyMac_PRECHECK(TXNEchoMode);
941 #endif
942     if (!PyArg_ParseTuple(_args, "hlb",
943                           &iEchoCharacter,
944                           &iEncoding,
945                           &iOn))
946         return NULL;
947     _err = TXNEchoMode(_self->ob_itself,
948                        iEchoCharacter,
949                        iEncoding,
950                        iOn);
951     if (_err != noErr) return PyMac_Error(_err);
952     Py_INCREF(Py_None);
953     _res = Py_None;
954     return _res;
955 }
956 
TXNObj_TXNDoFontMenuSelection(TXNObjectObject * _self,PyObject * _args)957 static PyObject *TXNObj_TXNDoFontMenuSelection(TXNObjectObject *_self, PyObject *_args)
958 {
959     PyObject *_res = NULL;
960     OSStatus _err;
961     TXNFontMenuObject iTXNFontMenuObject;
962     SInt16 iMenuID;
963     SInt16 iMenuItem;
964 #ifndef TXNDoFontMenuSelection
965     PyMac_PRECHECK(TXNDoFontMenuSelection);
966 #endif
967     if (!PyArg_ParseTuple(_args, "O&hh",
968                           TXNFontMenuObj_Convert, &iTXNFontMenuObject,
969                           &iMenuID,
970                           &iMenuItem))
971         return NULL;
972     _err = TXNDoFontMenuSelection(_self->ob_itself,
973                                   iTXNFontMenuObject,
974                                   iMenuID,
975                                   iMenuItem);
976     if (_err != noErr) return PyMac_Error(_err);
977     Py_INCREF(Py_None);
978     _res = Py_None;
979     return _res;
980 }
981 
TXNObj_TXNPrepareFontMenu(TXNObjectObject * _self,PyObject * _args)982 static PyObject *TXNObj_TXNPrepareFontMenu(TXNObjectObject *_self, PyObject *_args)
983 {
984     PyObject *_res = NULL;
985     OSStatus _err;
986     TXNFontMenuObject iTXNFontMenuObject;
987 #ifndef TXNPrepareFontMenu
988     PyMac_PRECHECK(TXNPrepareFontMenu);
989 #endif
990     if (!PyArg_ParseTuple(_args, "O&",
991                           TXNFontMenuObj_Convert, &iTXNFontMenuObject))
992         return NULL;
993     _err = TXNPrepareFontMenu(_self->ob_itself,
994                               iTXNFontMenuObject);
995     if (_err != noErr) return PyMac_Error(_err);
996     Py_INCREF(Py_None);
997     _res = Py_None;
998     return _res;
999 }
1000 
TXNObj_TXNPointToOffset(TXNObjectObject * _self,PyObject * _args)1001 static PyObject *TXNObj_TXNPointToOffset(TXNObjectObject *_self, PyObject *_args)
1002 {
1003     PyObject *_res = NULL;
1004     OSStatus _err;
1005     Point iPoint;
1006     TXNOffset oOffset;
1007 #ifndef TXNPointToOffset
1008     PyMac_PRECHECK(TXNPointToOffset);
1009 #endif
1010     if (!PyArg_ParseTuple(_args, "O&",
1011                           PyMac_GetPoint, &iPoint))
1012         return NULL;
1013     _err = TXNPointToOffset(_self->ob_itself,
1014                             iPoint,
1015                             &oOffset);
1016     if (_err != noErr) return PyMac_Error(_err);
1017     _res = Py_BuildValue("l",
1018                          oOffset);
1019     return _res;
1020 }
1021 
TXNObj_TXNOffsetToPoint(TXNObjectObject * _self,PyObject * _args)1022 static PyObject *TXNObj_TXNOffsetToPoint(TXNObjectObject *_self, PyObject *_args)
1023 {
1024     PyObject *_res = NULL;
1025     OSStatus _err;
1026     TXNOffset iOffset;
1027     Point oPoint;
1028 #ifndef TXNOffsetToPoint
1029     PyMac_PRECHECK(TXNOffsetToPoint);
1030 #endif
1031     if (!PyArg_ParseTuple(_args, "l",
1032                           &iOffset))
1033         return NULL;
1034     _err = TXNOffsetToPoint(_self->ob_itself,
1035                             iOffset,
1036                             &oPoint);
1037     if (_err != noErr) return PyMac_Error(_err);
1038     _res = Py_BuildValue("O&",
1039                          PyMac_BuildPoint, oPoint);
1040     return _res;
1041 }
1042 
TXNObj_TXNGetLineCount(TXNObjectObject * _self,PyObject * _args)1043 static PyObject *TXNObj_TXNGetLineCount(TXNObjectObject *_self, PyObject *_args)
1044 {
1045     PyObject *_res = NULL;
1046     OSStatus _err;
1047     ItemCount oLineTotal;
1048 #ifndef TXNGetLineCount
1049     PyMac_PRECHECK(TXNGetLineCount);
1050 #endif
1051     if (!PyArg_ParseTuple(_args, ""))
1052         return NULL;
1053     _err = TXNGetLineCount(_self->ob_itself,
1054                            &oLineTotal);
1055     if (_err != noErr) return PyMac_Error(_err);
1056     _res = Py_BuildValue("l",
1057                          oLineTotal);
1058     return _res;
1059 }
1060 
TXNObj_TXNGetLineMetrics(TXNObjectObject * _self,PyObject * _args)1061 static PyObject *TXNObj_TXNGetLineMetrics(TXNObjectObject *_self, PyObject *_args)
1062 {
1063     PyObject *_res = NULL;
1064     OSStatus _err;
1065     UInt32 iLineNumber;
1066     Fixed oLineWidth;
1067     Fixed oLineHeight;
1068 #ifndef TXNGetLineMetrics
1069     PyMac_PRECHECK(TXNGetLineMetrics);
1070 #endif
1071     if (!PyArg_ParseTuple(_args, "l",
1072                           &iLineNumber))
1073         return NULL;
1074     _err = TXNGetLineMetrics(_self->ob_itself,
1075                              iLineNumber,
1076                              &oLineWidth,
1077                              &oLineHeight);
1078     if (_err != noErr) return PyMac_Error(_err);
1079     _res = Py_BuildValue("O&O&",
1080                          PyMac_BuildFixed, oLineWidth,
1081                          PyMac_BuildFixed, oLineHeight);
1082     return _res;
1083 }
1084 
TXNObj_TXNIsObjectAttachedToSpecificWindow(TXNObjectObject * _self,PyObject * _args)1085 static PyObject *TXNObj_TXNIsObjectAttachedToSpecificWindow(TXNObjectObject *_self, PyObject *_args)
1086 {
1087     PyObject *_res = NULL;
1088     OSStatus _err;
1089     WindowPtr iWindow;
1090     Boolean oAttached;
1091 #ifndef TXNIsObjectAttachedToSpecificWindow
1092     PyMac_PRECHECK(TXNIsObjectAttachedToSpecificWindow);
1093 #endif
1094     if (!PyArg_ParseTuple(_args, "O&",
1095                           WinObj_Convert, &iWindow))
1096         return NULL;
1097     _err = TXNIsObjectAttachedToSpecificWindow(_self->ob_itself,
1098                                                iWindow,
1099                                                &oAttached);
1100     if (_err != noErr) return PyMac_Error(_err);
1101     _res = Py_BuildValue("b",
1102                          oAttached);
1103     return _res;
1104 }
1105 
TXNObj_TXNRecalcTextLayout(TXNObjectObject * _self,PyObject * _args)1106 static PyObject *TXNObj_TXNRecalcTextLayout(TXNObjectObject *_self, PyObject *_args)
1107 {
1108     PyObject *_res = NULL;
1109 #ifndef TXNRecalcTextLayout
1110     PyMac_PRECHECK(TXNRecalcTextLayout);
1111 #endif
1112     if (!PyArg_ParseTuple(_args, ""))
1113         return NULL;
1114     TXNRecalcTextLayout(_self->ob_itself);
1115     Py_INCREF(Py_None);
1116     _res = Py_None;
1117     return _res;
1118 }
1119 
1120 static PyMethodDef TXNObj_methods[] = {
1121     {"TXNDeleteObject", (PyCFunction)TXNObj_TXNDeleteObject, 1,
1122      PyDoc_STR("() -> None")},
1123     {"TXNResizeFrame", (PyCFunction)TXNObj_TXNResizeFrame, 1,
1124      PyDoc_STR("(UInt32 iWidth, UInt32 iHeight, TXNFrameID iTXNFrameID) -> None")},
1125     {"TXNSetFrameBounds", (PyCFunction)TXNObj_TXNSetFrameBounds, 1,
1126      PyDoc_STR("(SInt32 iTop, SInt32 iLeft, SInt32 iBottom, SInt32 iRight, TXNFrameID iTXNFrameID) -> None")},
1127     {"TXNKeyDown", (PyCFunction)TXNObj_TXNKeyDown, 1,
1128      PyDoc_STR("(EventRecord iEvent) -> None")},
1129     {"TXNAdjustCursor", (PyCFunction)TXNObj_TXNAdjustCursor, 1,
1130      PyDoc_STR("(RgnHandle ioCursorRgn) -> None")},
1131     {"TXNClick", (PyCFunction)TXNObj_TXNClick, 1,
1132      PyDoc_STR("(EventRecord iEvent) -> None")},
1133     {"TXNSelectAll", (PyCFunction)TXNObj_TXNSelectAll, 1,
1134      PyDoc_STR("() -> None")},
1135     {"TXNFocus", (PyCFunction)TXNObj_TXNFocus, 1,
1136      PyDoc_STR("(Boolean iBecomingFocused) -> None")},
1137     {"TXNUpdate", (PyCFunction)TXNObj_TXNUpdate, 1,
1138      PyDoc_STR("() -> None")},
1139     {"TXNDraw", (PyCFunction)TXNObj_TXNDraw, 1,
1140      PyDoc_STR("(GWorldPtr iDrawPort) -> None")},
1141     {"TXNForceUpdate", (PyCFunction)TXNObj_TXNForceUpdate, 1,
1142      PyDoc_STR("() -> None")},
1143     {"TXNGetSleepTicks", (PyCFunction)TXNObj_TXNGetSleepTicks, 1,
1144      PyDoc_STR("() -> (UInt32 _rv)")},
1145     {"TXNIdle", (PyCFunction)TXNObj_TXNIdle, 1,
1146      PyDoc_STR("() -> None")},
1147     {"TXNGrowWindow", (PyCFunction)TXNObj_TXNGrowWindow, 1,
1148      PyDoc_STR("(EventRecord iEvent) -> None")},
1149     {"TXNZoomWindow", (PyCFunction)TXNObj_TXNZoomWindow, 1,
1150      PyDoc_STR("(SInt16 iPart) -> None")},
1151     {"TXNCanUndo", (PyCFunction)TXNObj_TXNCanUndo, 1,
1152      PyDoc_STR("() -> (Boolean _rv, TXNActionKey oTXNActionKey)")},
1153     {"TXNUndo", (PyCFunction)TXNObj_TXNUndo, 1,
1154      PyDoc_STR("() -> None")},
1155     {"TXNCanRedo", (PyCFunction)TXNObj_TXNCanRedo, 1,
1156      PyDoc_STR("() -> (Boolean _rv, TXNActionKey oTXNActionKey)")},
1157     {"TXNRedo", (PyCFunction)TXNObj_TXNRedo, 1,
1158      PyDoc_STR("() -> None")},
1159     {"TXNCut", (PyCFunction)TXNObj_TXNCut, 1,
1160      PyDoc_STR("() -> None")},
1161     {"TXNCopy", (PyCFunction)TXNObj_TXNCopy, 1,
1162      PyDoc_STR("() -> None")},
1163     {"TXNPaste", (PyCFunction)TXNObj_TXNPaste, 1,
1164      PyDoc_STR("() -> None")},
1165     {"TXNClear", (PyCFunction)TXNObj_TXNClear, 1,
1166      PyDoc_STR("() -> None")},
1167     {"TXNGetSelection", (PyCFunction)TXNObj_TXNGetSelection, 1,
1168      PyDoc_STR("() -> (TXNOffset oStartOffset, TXNOffset oEndOffset)")},
1169     {"TXNShowSelection", (PyCFunction)TXNObj_TXNShowSelection, 1,
1170      PyDoc_STR("(Boolean iShowEnd) -> None")},
1171     {"TXNIsSelectionEmpty", (PyCFunction)TXNObj_TXNIsSelectionEmpty, 1,
1172      PyDoc_STR("() -> (Boolean _rv)")},
1173     {"TXNSetSelection", (PyCFunction)TXNObj_TXNSetSelection, 1,
1174      PyDoc_STR("(TXNOffset iStartOffset, TXNOffset iEndOffset) -> None")},
1175     {"TXNCountRunsInRange", (PyCFunction)TXNObj_TXNCountRunsInRange, 1,
1176      PyDoc_STR("(TXNOffset iStartOffset, TXNOffset iEndOffset) -> (ItemCount oRunCount)")},
1177     {"TXNDataSize", (PyCFunction)TXNObj_TXNDataSize, 1,
1178      PyDoc_STR("() -> (ByteCount _rv)")},
1179     {"TXNGetData", (PyCFunction)TXNObj_TXNGetData, 1,
1180      PyDoc_STR("(TXNOffset iStartOffset, TXNOffset iEndOffset) -> (Handle oDataHandle)")},
1181     {"TXNGetDataEncoded", (PyCFunction)TXNObj_TXNGetDataEncoded, 1,
1182      PyDoc_STR("(TXNOffset iStartOffset, TXNOffset iEndOffset, TXNDataType iEncoding) -> (Handle oDataHandle)")},
1183     {"TXNSetDataFromFile", (PyCFunction)TXNObj_TXNSetDataFromFile, 1,
1184      PyDoc_STR("(SInt16 iFileRefNum, OSType iFileType, ByteCount iFileLength, TXNOffset iStartOffset, TXNOffset iEndOffset) -> None")},
1185     {"TXNGetChangeCount", (PyCFunction)TXNObj_TXNGetChangeCount, 1,
1186      PyDoc_STR("() -> (ItemCount _rv)")},
1187     {"TXNSave", (PyCFunction)TXNObj_TXNSave, 1,
1188      PyDoc_STR("(TXNFileType iType, OSType iResType, TXNPermanentTextEncodingType iPermanentEncoding, FSSpec iFileSpecification, SInt16 iDataReference, SInt16 iResourceReference) -> None")},
1189     {"TXNRevert", (PyCFunction)TXNObj_TXNRevert, 1,
1190      PyDoc_STR("() -> None")},
1191     {"TXNPageSetup", (PyCFunction)TXNObj_TXNPageSetup, 1,
1192      PyDoc_STR("() -> None")},
1193     {"TXNPrint", (PyCFunction)TXNObj_TXNPrint, 1,
1194      PyDoc_STR("() -> None")},
1195     {"TXNGetViewRect", (PyCFunction)TXNObj_TXNGetViewRect, 1,
1196      PyDoc_STR("() -> (Rect oViewRect)")},
1197     {"TXNSetViewRect", (PyCFunction)TXNObj_TXNSetViewRect, 1,
1198      PyDoc_STR("(Rect iViewRect) -> None")},
1199     {"TXNAttachObjectToWindow", (PyCFunction)TXNObj_TXNAttachObjectToWindow, 1,
1200      PyDoc_STR("(GWorldPtr iWindow, Boolean iIsActualWindow) -> None")},
1201     {"TXNIsObjectAttachedToWindow", (PyCFunction)TXNObj_TXNIsObjectAttachedToWindow, 1,
1202      PyDoc_STR("() -> (Boolean _rv)")},
1203     {"TXNDragTracker", (PyCFunction)TXNObj_TXNDragTracker, 1,
1204      PyDoc_STR("(TXNFrameID iTXNFrameID, DragTrackingMessage iMessage, WindowPtr iWindow, DragReference iDragReference, Boolean iDifferentObjectSameWindow) -> None")},
1205     {"TXNDragReceiver", (PyCFunction)TXNObj_TXNDragReceiver, 1,
1206      PyDoc_STR("(TXNFrameID iTXNFrameID, WindowPtr iWindow, DragReference iDragReference, Boolean iDifferentObjectSameWindow) -> None")},
1207     {"TXNActivate", (PyCFunction)TXNObj_TXNActivate, 1,
1208      PyDoc_STR("(TXNFrameID iTXNFrameID, TXNScrollBarState iActiveState) -> None")},
1209     {"TXNEchoMode", (PyCFunction)TXNObj_TXNEchoMode, 1,
1210      PyDoc_STR("(UniChar iEchoCharacter, TextEncoding iEncoding, Boolean iOn) -> None")},
1211     {"TXNDoFontMenuSelection", (PyCFunction)TXNObj_TXNDoFontMenuSelection, 1,
1212      PyDoc_STR("(TXNFontMenuObject iTXNFontMenuObject, SInt16 iMenuID, SInt16 iMenuItem) -> None")},
1213     {"TXNPrepareFontMenu", (PyCFunction)TXNObj_TXNPrepareFontMenu, 1,
1214      PyDoc_STR("(TXNFontMenuObject iTXNFontMenuObject) -> None")},
1215     {"TXNPointToOffset", (PyCFunction)TXNObj_TXNPointToOffset, 1,
1216      PyDoc_STR("(Point iPoint) -> (TXNOffset oOffset)")},
1217     {"TXNOffsetToPoint", (PyCFunction)TXNObj_TXNOffsetToPoint, 1,
1218      PyDoc_STR("(TXNOffset iOffset) -> (Point oPoint)")},
1219     {"TXNGetLineCount", (PyCFunction)TXNObj_TXNGetLineCount, 1,
1220      PyDoc_STR("() -> (ItemCount oLineTotal)")},
1221     {"TXNGetLineMetrics", (PyCFunction)TXNObj_TXNGetLineMetrics, 1,
1222      PyDoc_STR("(UInt32 iLineNumber) -> (Fixed oLineWidth, Fixed oLineHeight)")},
1223     {"TXNIsObjectAttachedToSpecificWindow", (PyCFunction)TXNObj_TXNIsObjectAttachedToSpecificWindow, 1,
1224      PyDoc_STR("(WindowPtr iWindow) -> (Boolean oAttached)")},
1225     {"TXNRecalcTextLayout", (PyCFunction)TXNObj_TXNRecalcTextLayout, 1,
1226      PyDoc_STR("() -> None")},
1227     {NULL, NULL, 0}
1228 };
1229 
1230 #define TXNObj_getsetlist NULL
1231 
1232 
1233 #define TXNObj_compare NULL
1234 
1235 #define TXNObj_repr NULL
1236 
1237 #define TXNObj_hash NULL
1238 #define TXNObj_tp_init 0
1239 
1240 #define TXNObj_tp_alloc PyType_GenericAlloc
1241 
TXNObj_tp_new(PyTypeObject * type,PyObject * _args,PyObject * _kwds)1242 static PyObject *TXNObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
1243 {
1244     PyObject *_self;
1245     TXNObject itself;
1246     char *kw[] = {"itself", 0};
1247 
1248     if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, TXNObj_Convert, &itself)) return NULL;
1249     if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
1250     ((TXNObjectObject *)_self)->ob_itself = itself;
1251     return _self;
1252 }
1253 
1254 #define TXNObj_tp_free PyObject_Del
1255 
1256 
1257 PyTypeObject TXNObject_Type = {
1258     PyObject_HEAD_INIT(NULL)
1259     0, /*ob_size*/
1260     "_Mlte.TXNObject", /*tp_name*/
1261     sizeof(TXNObjectObject), /*tp_basicsize*/
1262     0, /*tp_itemsize*/
1263     /* methods */
1264     (destructor) TXNObj_dealloc, /*tp_dealloc*/
1265     0, /*tp_print*/
1266     (getattrfunc)0, /*tp_getattr*/
1267     (setattrfunc)0, /*tp_setattr*/
1268     (cmpfunc) TXNObj_compare, /*tp_compare*/
1269     (reprfunc) TXNObj_repr, /*tp_repr*/
1270     (PyNumberMethods *)0, /* tp_as_number */
1271     (PySequenceMethods *)0, /* tp_as_sequence */
1272     (PyMappingMethods *)0, /* tp_as_mapping */
1273     (hashfunc) TXNObj_hash, /*tp_hash*/
1274     0, /*tp_call*/
1275     0, /*tp_str*/
1276     PyObject_GenericGetAttr, /*tp_getattro*/
1277     PyObject_GenericSetAttr, /*tp_setattro */
1278     0, /*tp_as_buffer*/
1279     Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1280     0, /*tp_doc*/
1281     0, /*tp_traverse*/
1282     0, /*tp_clear*/
1283     0, /*tp_richcompare*/
1284     0, /*tp_weaklistoffset*/
1285     0, /*tp_iter*/
1286     0, /*tp_iternext*/
1287     TXNObj_methods, /* tp_methods */
1288     0, /*tp_members*/
1289     TXNObj_getsetlist, /*tp_getset*/
1290     0, /*tp_base*/
1291     0, /*tp_dict*/
1292     0, /*tp_descr_get*/
1293     0, /*tp_descr_set*/
1294     0, /*tp_dictoffset*/
1295     TXNObj_tp_init, /* tp_init */
1296     TXNObj_tp_alloc, /* tp_alloc */
1297     TXNObj_tp_new, /* tp_new */
1298     TXNObj_tp_free, /* tp_free */
1299 };
1300 
1301 /* ------------------- End object type TXNObject -------------------- */
1302 
1303 
1304 /* ----------------- Object type TXNFontMenuObject ------------------ */
1305 
1306 PyTypeObject TXNFontMenuObject_Type;
1307 
1308 #define TXNFontMenuObj_Check(x) ((x)->ob_type == &TXNFontMenuObject_Type || PyObject_TypeCheck((x), &TXNFontMenuObject_Type))
1309 
1310 typedef struct TXNFontMenuObjectObject {
1311     PyObject_HEAD
1312     TXNFontMenuObject ob_itself;
1313 } TXNFontMenuObjectObject;
1314 
TXNFontMenuObj_New(TXNFontMenuObject itself)1315 PyObject *TXNFontMenuObj_New(TXNFontMenuObject itself)
1316 {
1317     TXNFontMenuObjectObject *it;
1318     if (itself == NULL) return PyMac_Error(resNotFound);
1319     it = PyObject_NEW(TXNFontMenuObjectObject, &TXNFontMenuObject_Type);
1320     if (it == NULL) return NULL;
1321     it->ob_itself = itself;
1322     return (PyObject *)it;
1323 }
1324 
TXNFontMenuObj_Convert(PyObject * v,TXNFontMenuObject * p_itself)1325 int TXNFontMenuObj_Convert(PyObject *v, TXNFontMenuObject *p_itself)
1326 {
1327     if (!TXNFontMenuObj_Check(v))
1328     {
1329         PyErr_SetString(PyExc_TypeError, "TXNFontMenuObject required");
1330         return 0;
1331     }
1332     *p_itself = ((TXNFontMenuObjectObject *)v)->ob_itself;
1333     return 1;
1334 }
1335 
TXNFontMenuObj_dealloc(TXNFontMenuObjectObject * self)1336 static void TXNFontMenuObj_dealloc(TXNFontMenuObjectObject *self)
1337 {
1338     /* Cleanup of self->ob_itself goes here */
1339     self->ob_type->tp_free((PyObject *)self);
1340 }
1341 
TXNFontMenuObj_TXNGetFontMenuHandle(TXNFontMenuObjectObject * _self,PyObject * _args)1342 static PyObject *TXNFontMenuObj_TXNGetFontMenuHandle(TXNFontMenuObjectObject *_self, PyObject *_args)
1343 {
1344     PyObject *_res = NULL;
1345     OSStatus _err;
1346     MenuHandle oFontMenuHandle;
1347 #ifndef TXNGetFontMenuHandle
1348     PyMac_PRECHECK(TXNGetFontMenuHandle);
1349 #endif
1350     if (!PyArg_ParseTuple(_args, ""))
1351         return NULL;
1352     _err = TXNGetFontMenuHandle(_self->ob_itself,
1353                                 &oFontMenuHandle);
1354     if (_err != noErr) return PyMac_Error(_err);
1355     _res = Py_BuildValue("O&",
1356                          MenuObj_New, oFontMenuHandle);
1357     return _res;
1358 }
1359 
TXNFontMenuObj_TXNDisposeFontMenuObject(TXNFontMenuObjectObject * _self,PyObject * _args)1360 static PyObject *TXNFontMenuObj_TXNDisposeFontMenuObject(TXNFontMenuObjectObject *_self, PyObject *_args)
1361 {
1362     PyObject *_res = NULL;
1363     OSStatus _err;
1364 #ifndef TXNDisposeFontMenuObject
1365     PyMac_PRECHECK(TXNDisposeFontMenuObject);
1366 #endif
1367     if (!PyArg_ParseTuple(_args, ""))
1368         return NULL;
1369     _err = TXNDisposeFontMenuObject(_self->ob_itself);
1370     if (_err != noErr) return PyMac_Error(_err);
1371     Py_INCREF(Py_None);
1372     _res = Py_None;
1373     return _res;
1374 }
1375 
1376 static PyMethodDef TXNFontMenuObj_methods[] = {
1377     {"TXNGetFontMenuHandle", (PyCFunction)TXNFontMenuObj_TXNGetFontMenuHandle, 1,
1378      PyDoc_STR("() -> (MenuHandle oFontMenuHandle)")},
1379     {"TXNDisposeFontMenuObject", (PyCFunction)TXNFontMenuObj_TXNDisposeFontMenuObject, 1,
1380      PyDoc_STR("() -> None")},
1381     {NULL, NULL, 0}
1382 };
1383 
1384 #define TXNFontMenuObj_getsetlist NULL
1385 
1386 
1387 #define TXNFontMenuObj_compare NULL
1388 
1389 #define TXNFontMenuObj_repr NULL
1390 
1391 #define TXNFontMenuObj_hash NULL
1392 #define TXNFontMenuObj_tp_init 0
1393 
1394 #define TXNFontMenuObj_tp_alloc PyType_GenericAlloc
1395 
TXNFontMenuObj_tp_new(PyTypeObject * type,PyObject * _args,PyObject * _kwds)1396 static PyObject *TXNFontMenuObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
1397 {
1398     PyObject *_self;
1399     TXNFontMenuObject itself;
1400     char *kw[] = {"itself", 0};
1401 
1402     if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, TXNFontMenuObj_Convert, &itself)) return NULL;
1403     if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
1404     ((TXNFontMenuObjectObject *)_self)->ob_itself = itself;
1405     return _self;
1406 }
1407 
1408 #define TXNFontMenuObj_tp_free PyObject_Del
1409 
1410 
1411 PyTypeObject TXNFontMenuObject_Type = {
1412     PyObject_HEAD_INIT(NULL)
1413     0, /*ob_size*/
1414     "_Mlte.TXNFontMenuObject", /*tp_name*/
1415     sizeof(TXNFontMenuObjectObject), /*tp_basicsize*/
1416     0, /*tp_itemsize*/
1417     /* methods */
1418     (destructor) TXNFontMenuObj_dealloc, /*tp_dealloc*/
1419     0, /*tp_print*/
1420     (getattrfunc)0, /*tp_getattr*/
1421     (setattrfunc)0, /*tp_setattr*/
1422     (cmpfunc) TXNFontMenuObj_compare, /*tp_compare*/
1423     (reprfunc) TXNFontMenuObj_repr, /*tp_repr*/
1424     (PyNumberMethods *)0, /* tp_as_number */
1425     (PySequenceMethods *)0, /* tp_as_sequence */
1426     (PyMappingMethods *)0, /* tp_as_mapping */
1427     (hashfunc) TXNFontMenuObj_hash, /*tp_hash*/
1428     0, /*tp_call*/
1429     0, /*tp_str*/
1430     PyObject_GenericGetAttr, /*tp_getattro*/
1431     PyObject_GenericSetAttr, /*tp_setattro */
1432     0, /*tp_as_buffer*/
1433     Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1434     0, /*tp_doc*/
1435     0, /*tp_traverse*/
1436     0, /*tp_clear*/
1437     0, /*tp_richcompare*/
1438     0, /*tp_weaklistoffset*/
1439     0, /*tp_iter*/
1440     0, /*tp_iternext*/
1441     TXNFontMenuObj_methods, /* tp_methods */
1442     0, /*tp_members*/
1443     TXNFontMenuObj_getsetlist, /*tp_getset*/
1444     0, /*tp_base*/
1445     0, /*tp_dict*/
1446     0, /*tp_descr_get*/
1447     0, /*tp_descr_set*/
1448     0, /*tp_dictoffset*/
1449     TXNFontMenuObj_tp_init, /* tp_init */
1450     TXNFontMenuObj_tp_alloc, /* tp_alloc */
1451     TXNFontMenuObj_tp_new, /* tp_new */
1452     TXNFontMenuObj_tp_free, /* tp_free */
1453 };
1454 
1455 /* --------------- End object type TXNFontMenuObject ---------------- */
1456 
1457 
Mlte_TXNNewObject(PyObject * _self,PyObject * _args)1458 static PyObject *Mlte_TXNNewObject(PyObject *_self, PyObject *_args)
1459 {
1460     PyObject *_res = NULL;
1461     OSStatus _err;
1462     FSSpec * iFileSpec;
1463     WindowPtr iWindow;
1464     Rect iFrame;
1465     TXNFrameOptions iFrameOptions;
1466     TXNFrameType iFrameType;
1467     TXNFileType iFileType;
1468     TXNPermanentTextEncodingType iPermanentEncoding;
1469     TXNObject oTXNObject;
1470     TXNFrameID oTXNFrameID;
1471 #ifndef TXNNewObject
1472     PyMac_PRECHECK(TXNNewObject);
1473 #endif
1474     if (!PyArg_ParseTuple(_args, "O&O&O&llO&l",
1475                           OptFSSpecPtr_Convert, &iFileSpec,
1476                           WinObj_Convert, &iWindow,
1477                           PyMac_GetRect, &iFrame,
1478                           &iFrameOptions,
1479                           &iFrameType,
1480                           PyMac_GetOSType, &iFileType,
1481                           &iPermanentEncoding))
1482         return NULL;
1483     _err = TXNNewObject(iFileSpec,
1484                         iWindow,
1485                         &iFrame,
1486                         iFrameOptions,
1487                         iFrameType,
1488                         iFileType,
1489                         iPermanentEncoding,
1490                         &oTXNObject,
1491                         &oTXNFrameID,
1492                         (TXNObjectRefcon)0);
1493     if (_err != noErr) return PyMac_Error(_err);
1494     _res = Py_BuildValue("O&l",
1495                          TXNObj_New, oTXNObject,
1496                          oTXNFrameID);
1497     return _res;
1498 }
1499 
Mlte_TXNTerminateTextension(PyObject * _self,PyObject * _args)1500 static PyObject *Mlte_TXNTerminateTextension(PyObject *_self, PyObject *_args)
1501 {
1502     PyObject *_res = NULL;
1503 #ifndef TXNTerminateTextension
1504     PyMac_PRECHECK(TXNTerminateTextension);
1505 #endif
1506     if (!PyArg_ParseTuple(_args, ""))
1507         return NULL;
1508     TXNTerminateTextension();
1509     Py_INCREF(Py_None);
1510     _res = Py_None;
1511     return _res;
1512 }
1513 
Mlte_TXNIsScrapPastable(PyObject * _self,PyObject * _args)1514 static PyObject *Mlte_TXNIsScrapPastable(PyObject *_self, PyObject *_args)
1515 {
1516     PyObject *_res = NULL;
1517     Boolean _rv;
1518 #ifndef TXNIsScrapPastable
1519     PyMac_PRECHECK(TXNIsScrapPastable);
1520 #endif
1521     if (!PyArg_ParseTuple(_args, ""))
1522         return NULL;
1523     _rv = TXNIsScrapPastable();
1524     _res = Py_BuildValue("b",
1525                          _rv);
1526     return _res;
1527 }
1528 
Mlte_TXNConvertToPublicScrap(PyObject * _self,PyObject * _args)1529 static PyObject *Mlte_TXNConvertToPublicScrap(PyObject *_self, PyObject *_args)
1530 {
1531     PyObject *_res = NULL;
1532     OSStatus _err;
1533 #ifndef TXNConvertToPublicScrap
1534     PyMac_PRECHECK(TXNConvertToPublicScrap);
1535 #endif
1536     if (!PyArg_ParseTuple(_args, ""))
1537         return NULL;
1538     _err = TXNConvertToPublicScrap();
1539     if (_err != noErr) return PyMac_Error(_err);
1540     Py_INCREF(Py_None);
1541     _res = Py_None;
1542     return _res;
1543 }
1544 
Mlte_TXNConvertFromPublicScrap(PyObject * _self,PyObject * _args)1545 static PyObject *Mlte_TXNConvertFromPublicScrap(PyObject *_self, PyObject *_args)
1546 {
1547     PyObject *_res = NULL;
1548     OSStatus _err;
1549 #ifndef TXNConvertFromPublicScrap
1550     PyMac_PRECHECK(TXNConvertFromPublicScrap);
1551 #endif
1552     if (!PyArg_ParseTuple(_args, ""))
1553         return NULL;
1554     _err = TXNConvertFromPublicScrap();
1555     if (_err != noErr) return PyMac_Error(_err);
1556     Py_INCREF(Py_None);
1557     _res = Py_None;
1558     return _res;
1559 }
1560 
Mlte_TXNNewFontMenuObject(PyObject * _self,PyObject * _args)1561 static PyObject *Mlte_TXNNewFontMenuObject(PyObject *_self, PyObject *_args)
1562 {
1563     PyObject *_res = NULL;
1564     OSStatus _err;
1565     MenuHandle iFontMenuHandle;
1566     SInt16 iMenuID;
1567     SInt16 iStartHierMenuID;
1568     TXNFontMenuObject oTXNFontMenuObject;
1569 #ifndef TXNNewFontMenuObject
1570     PyMac_PRECHECK(TXNNewFontMenuObject);
1571 #endif
1572     if (!PyArg_ParseTuple(_args, "O&hh",
1573                           MenuObj_Convert, &iFontMenuHandle,
1574                           &iMenuID,
1575                           &iStartHierMenuID))
1576         return NULL;
1577     _err = TXNNewFontMenuObject(iFontMenuHandle,
1578                                 iMenuID,
1579                                 iStartHierMenuID,
1580                                 &oTXNFontMenuObject);
1581     if (_err != noErr) return PyMac_Error(_err);
1582     _res = Py_BuildValue("O&",
1583                          TXNFontMenuObj_New, oTXNFontMenuObject);
1584     return _res;
1585 }
1586 
Mlte_TXNVersionInformation(PyObject * _self,PyObject * _args)1587 static PyObject *Mlte_TXNVersionInformation(PyObject *_self, PyObject *_args)
1588 {
1589     PyObject *_res = NULL;
1590     TXNVersionValue _rv;
1591     TXNFeatureBits oFeatureFlags;
1592 #ifndef TXNVersionInformation
1593     PyMac_PRECHECK(TXNVersionInformation);
1594 #endif
1595     if (!PyArg_ParseTuple(_args, ""))
1596         return NULL;
1597     _rv = TXNVersionInformation(&oFeatureFlags);
1598     _res = Py_BuildValue("ll",
1599                          _rv,
1600                          oFeatureFlags);
1601     return _res;
1602 }
1603 
Mlte_TXNInitTextension(PyObject * _self,PyObject * _args)1604 static PyObject *Mlte_TXNInitTextension(PyObject *_self, PyObject *_args)
1605 {
1606     PyObject *_res = NULL;
1607 
1608     OSStatus _err;
1609     TXNMacOSPreferredFontDescription * iDefaultFonts = NULL;
1610     ItemCount iCountDefaultFonts = 0;
1611     TXNInitOptions iUsageFlags;
1612     PyMac_PRECHECK(TXNInitTextension);
1613     if (!PyArg_ParseTuple(_args, "l", &iUsageFlags))
1614         return NULL;
1615     _err = TXNInitTextension(iDefaultFonts,
1616                              iCountDefaultFonts,
1617                              iUsageFlags);
1618     if (_err != noErr) return PyMac_Error(_err);
1619     Py_INCREF(Py_None);
1620     _res = Py_None;
1621     return _res;
1622 
1623 }
1624 
1625 #endif /* APPLE_SUPPORTS_QUICKTIME */
1626 
1627 static PyMethodDef Mlte_methods[] = {
1628 #if APPLE_SUPPORTS_QUICKTIME
1629     {"TXNNewObject", (PyCFunction)Mlte_TXNNewObject, 1,
1630      PyDoc_STR("(FSSpec * iFileSpec, WindowPtr iWindow, Rect iFrame, TXNFrameOptions iFrameOptions, TXNFrameType iFrameType, TXNFileType iFileType, TXNPermanentTextEncodingType iPermanentEncoding) -> (TXNObject oTXNObject, TXNFrameID oTXNFrameID)")},
1631     {"TXNTerminateTextension", (PyCFunction)Mlte_TXNTerminateTextension, 1,
1632      PyDoc_STR("() -> None")},
1633     {"TXNIsScrapPastable", (PyCFunction)Mlte_TXNIsScrapPastable, 1,
1634      PyDoc_STR("() -> (Boolean _rv)")},
1635     {"TXNConvertToPublicScrap", (PyCFunction)Mlte_TXNConvertToPublicScrap, 1,
1636      PyDoc_STR("() -> None")},
1637     {"TXNConvertFromPublicScrap", (PyCFunction)Mlte_TXNConvertFromPublicScrap, 1,
1638      PyDoc_STR("() -> None")},
1639     {"TXNNewFontMenuObject", (PyCFunction)Mlte_TXNNewFontMenuObject, 1,
1640      PyDoc_STR("(MenuHandle iFontMenuHandle, SInt16 iMenuID, SInt16 iStartHierMenuID) -> (TXNFontMenuObject oTXNFontMenuObject)")},
1641     {"TXNVersionInformation", (PyCFunction)Mlte_TXNVersionInformation, 1,
1642      PyDoc_STR("() -> (TXNVersionValue _rv, TXNFeatureBits oFeatureFlags)")},
1643     {"TXNInitTextension", (PyCFunction)Mlte_TXNInitTextension, 1,
1644      PyDoc_STR("(TXNInitOptions) -> None")},
1645 #endif /* APPLE_SUPPORTS_QUICKTIME */
1646     {NULL, NULL, 0}
1647 };
1648 
1649 
1650 
1651 
init_Mlte(void)1652 void init_Mlte(void)
1653 {
1654     PyObject *m;
1655 #if APPLE_SUPPORTS_QUICKTIME
1656     PyObject *d;
1657 
1658 
1659 
1660     //      PyMac_INIT_TOOLBOX_OBJECT_NEW(xxxx);
1661 
1662 #endif /* APPLE_SUPPORTS_QUICKTIME */
1663 
1664     m = Py_InitModule("_Mlte", Mlte_methods);
1665 #if APPLE_SUPPORTS_QUICKTIME
1666     d = PyModule_GetDict(m);
1667     Mlte_Error = PyMac_GetOSErrException();
1668     if (Mlte_Error == NULL ||
1669         PyDict_SetItemString(d, "Error", Mlte_Error) != 0)
1670         return;
1671     TXNObject_Type.ob_type = &PyType_Type;
1672     if (PyType_Ready(&TXNObject_Type) < 0) return;
1673     Py_INCREF(&TXNObject_Type);
1674     PyModule_AddObject(m, "TXNObject", (PyObject *)&TXNObject_Type);
1675     /* Backward-compatible name */
1676     Py_INCREF(&TXNObject_Type);
1677     PyModule_AddObject(m, "TXNObjectType", (PyObject *)&TXNObject_Type);
1678     TXNFontMenuObject_Type.ob_type = &PyType_Type;
1679     if (PyType_Ready(&TXNFontMenuObject_Type) < 0) return;
1680     Py_INCREF(&TXNFontMenuObject_Type);
1681     PyModule_AddObject(m, "TXNFontMenuObject", (PyObject *)&TXNFontMenuObject_Type);
1682     /* Backward-compatible name */
1683     Py_INCREF(&TXNFontMenuObject_Type);
1684     PyModule_AddObject(m, "TXNFontMenuObjectType", (PyObject *)&TXNFontMenuObject_Type);
1685 #endif /* APPLE_SUPPORTS_QUICKTIME */
1686 }
1687 
1688 /* ======================== End module _Mlte ======================== */
1689 
1690