1 
2 /* =========================== Module _TE =========================== */
3 
4 #include "Python.h"
5 #include "pymactoolbox.h"
6 
7 #if APPLE_SUPPORTS_QUICKTIME
8 
9 
10 
11 /* Macro to test whether a weak-loaded CFM function exists */
12 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL )  {\
13         PyErr_SetString(PyExc_NotImplementedError, \
14             "Not available in this shared library/OS version"); \
15         return NULL; \
16     }} while(0)
17 
18 
19 #include <Carbon/Carbon.h>
20 
21 #ifdef USE_TOOLBOX_OBJECT_GLUE
22 extern PyObject *_TEObj_New(TEHandle);
23 extern int _TEObj_Convert(PyObject *, TEHandle *);
24 
25 #define TEObj_New _TEObj_New
26 #define TEObj_Convert _TEObj_Convert
27 #endif
28 
29 #define as_TE(h) ((TEHandle)h)
30 #define as_Resource(teh) ((Handle)teh)
31 
32 /*
33 ** Parse/generate TextStyle records
34 */
35 static PyObject *
TextStyle_New(TextStylePtr itself)36 TextStyle_New(TextStylePtr itself)
37 {
38 
39     return Py_BuildValue("lllO&", (long)itself->tsFont, (long)itself->tsFace, (long)itself->tsSize, QdRGB_New,
40                             &itself->tsColor);
41 }
42 
43 static int
TextStyle_Convert(PyObject * v,TextStylePtr p_itself)44 TextStyle_Convert(PyObject *v, TextStylePtr p_itself)
45 {
46     long font, face, size;
47 
48     if( !PyArg_ParseTuple(v, "lllO&", &font, &face, &size, QdRGB_Convert, &p_itself->tsColor) )
49         return 0;
50     p_itself->tsFont = (short)font;
51     p_itself->tsFace = (Style)face;
52     p_itself->tsSize = (short)size;
53     return 1;
54 }
55 
56 static PyObject *TE_Error;
57 
58 /* ------------------------- Object type TE ------------------------- */
59 
60 PyTypeObject TE_Type;
61 
62 #define TEObj_Check(x) ((x)->ob_type == &TE_Type || PyObject_TypeCheck((x), &TE_Type))
63 
64 typedef struct TEObject {
65     PyObject_HEAD
66     TEHandle ob_itself;
67 } TEObject;
68 
TEObj_New(TEHandle itself)69 PyObject *TEObj_New(TEHandle itself)
70 {
71     TEObject *it;
72     if (itself == NULL) {
73                                     PyErr_SetString(TE_Error,"Cannot create null TE");
74                                     return NULL;
75                             }
76     it = PyObject_NEW(TEObject, &TE_Type);
77     if (it == NULL) return NULL;
78     it->ob_itself = itself;
79     return (PyObject *)it;
80 }
81 
TEObj_Convert(PyObject * v,TEHandle * p_itself)82 int TEObj_Convert(PyObject *v, TEHandle *p_itself)
83 {
84     if (!TEObj_Check(v))
85     {
86         PyErr_SetString(PyExc_TypeError, "TE required");
87         return 0;
88     }
89     *p_itself = ((TEObject *)v)->ob_itself;
90     return 1;
91 }
92 
TEObj_dealloc(TEObject * self)93 static void TEObj_dealloc(TEObject *self)
94 {
95     TEDispose(self->ob_itself);
96     self->ob_type->tp_free((PyObject *)self);
97 }
98 
TEObj_TESetText(TEObject * _self,PyObject * _args)99 static PyObject *TEObj_TESetText(TEObject *_self, PyObject *_args)
100 {
101     PyObject *_res = NULL;
102     char *text__in__;
103     long text__len__;
104     int text__in_len__;
105 #ifndef TESetText
106     PyMac_PRECHECK(TESetText);
107 #endif
108     if (!PyArg_ParseTuple(_args, "s#",
109                           &text__in__, &text__in_len__))
110         return NULL;
111     text__len__ = text__in_len__;
112     TESetText(text__in__, text__len__,
113               _self->ob_itself);
114     Py_INCREF(Py_None);
115     _res = Py_None;
116     return _res;
117 }
118 
TEObj_TEGetText(TEObject * _self,PyObject * _args)119 static PyObject *TEObj_TEGetText(TEObject *_self, PyObject *_args)
120 {
121     PyObject *_res = NULL;
122     CharsHandle _rv;
123 #ifndef TEGetText
124     PyMac_PRECHECK(TEGetText);
125 #endif
126     if (!PyArg_ParseTuple(_args, ""))
127         return NULL;
128     _rv = TEGetText(_self->ob_itself);
129     _res = Py_BuildValue("O&",
130                          ResObj_New, _rv);
131     return _res;
132 }
133 
TEObj_TEIdle(TEObject * _self,PyObject * _args)134 static PyObject *TEObj_TEIdle(TEObject *_self, PyObject *_args)
135 {
136     PyObject *_res = NULL;
137 #ifndef TEIdle
138     PyMac_PRECHECK(TEIdle);
139 #endif
140     if (!PyArg_ParseTuple(_args, ""))
141         return NULL;
142     TEIdle(_self->ob_itself);
143     Py_INCREF(Py_None);
144     _res = Py_None;
145     return _res;
146 }
147 
TEObj_TESetSelect(TEObject * _self,PyObject * _args)148 static PyObject *TEObj_TESetSelect(TEObject *_self, PyObject *_args)
149 {
150     PyObject *_res = NULL;
151     long selStart;
152     long selEnd;
153 #ifndef TESetSelect
154     PyMac_PRECHECK(TESetSelect);
155 #endif
156     if (!PyArg_ParseTuple(_args, "ll",
157                           &selStart,
158                           &selEnd))
159         return NULL;
160     TESetSelect(selStart,
161                 selEnd,
162                 _self->ob_itself);
163     Py_INCREF(Py_None);
164     _res = Py_None;
165     return _res;
166 }
167 
TEObj_TEActivate(TEObject * _self,PyObject * _args)168 static PyObject *TEObj_TEActivate(TEObject *_self, PyObject *_args)
169 {
170     PyObject *_res = NULL;
171 #ifndef TEActivate
172     PyMac_PRECHECK(TEActivate);
173 #endif
174     if (!PyArg_ParseTuple(_args, ""))
175         return NULL;
176     TEActivate(_self->ob_itself);
177     Py_INCREF(Py_None);
178     _res = Py_None;
179     return _res;
180 }
181 
TEObj_TEDeactivate(TEObject * _self,PyObject * _args)182 static PyObject *TEObj_TEDeactivate(TEObject *_self, PyObject *_args)
183 {
184     PyObject *_res = NULL;
185 #ifndef TEDeactivate
186     PyMac_PRECHECK(TEDeactivate);
187 #endif
188     if (!PyArg_ParseTuple(_args, ""))
189         return NULL;
190     TEDeactivate(_self->ob_itself);
191     Py_INCREF(Py_None);
192     _res = Py_None;
193     return _res;
194 }
195 
TEObj_TEKey(TEObject * _self,PyObject * _args)196 static PyObject *TEObj_TEKey(TEObject *_self, PyObject *_args)
197 {
198     PyObject *_res = NULL;
199     CharParameter key;
200 #ifndef TEKey
201     PyMac_PRECHECK(TEKey);
202 #endif
203     if (!PyArg_ParseTuple(_args, "h",
204                           &key))
205         return NULL;
206     TEKey(key,
207           _self->ob_itself);
208     Py_INCREF(Py_None);
209     _res = Py_None;
210     return _res;
211 }
212 
TEObj_TECut(TEObject * _self,PyObject * _args)213 static PyObject *TEObj_TECut(TEObject *_self, PyObject *_args)
214 {
215     PyObject *_res = NULL;
216 #ifndef TECut
217     PyMac_PRECHECK(TECut);
218 #endif
219     if (!PyArg_ParseTuple(_args, ""))
220         return NULL;
221     TECut(_self->ob_itself);
222     Py_INCREF(Py_None);
223     _res = Py_None;
224     return _res;
225 }
226 
TEObj_TECopy(TEObject * _self,PyObject * _args)227 static PyObject *TEObj_TECopy(TEObject *_self, PyObject *_args)
228 {
229     PyObject *_res = NULL;
230 #ifndef TECopy
231     PyMac_PRECHECK(TECopy);
232 #endif
233     if (!PyArg_ParseTuple(_args, ""))
234         return NULL;
235     TECopy(_self->ob_itself);
236     Py_INCREF(Py_None);
237     _res = Py_None;
238     return _res;
239 }
240 
TEObj_TEPaste(TEObject * _self,PyObject * _args)241 static PyObject *TEObj_TEPaste(TEObject *_self, PyObject *_args)
242 {
243     PyObject *_res = NULL;
244 #ifndef TEPaste
245     PyMac_PRECHECK(TEPaste);
246 #endif
247     if (!PyArg_ParseTuple(_args, ""))
248         return NULL;
249     TEPaste(_self->ob_itself);
250     Py_INCREF(Py_None);
251     _res = Py_None;
252     return _res;
253 }
254 
TEObj_TEDelete(TEObject * _self,PyObject * _args)255 static PyObject *TEObj_TEDelete(TEObject *_self, PyObject *_args)
256 {
257     PyObject *_res = NULL;
258 #ifndef TEDelete
259     PyMac_PRECHECK(TEDelete);
260 #endif
261     if (!PyArg_ParseTuple(_args, ""))
262         return NULL;
263     TEDelete(_self->ob_itself);
264     Py_INCREF(Py_None);
265     _res = Py_None;
266     return _res;
267 }
268 
TEObj_TEInsert(TEObject * _self,PyObject * _args)269 static PyObject *TEObj_TEInsert(TEObject *_self, PyObject *_args)
270 {
271     PyObject *_res = NULL;
272     char *text__in__;
273     long text__len__;
274     int text__in_len__;
275 #ifndef TEInsert
276     PyMac_PRECHECK(TEInsert);
277 #endif
278     if (!PyArg_ParseTuple(_args, "s#",
279                           &text__in__, &text__in_len__))
280         return NULL;
281     text__len__ = text__in_len__;
282     TEInsert(text__in__, text__len__,
283              _self->ob_itself);
284     Py_INCREF(Py_None);
285     _res = Py_None;
286     return _res;
287 }
288 
TEObj_TESetAlignment(TEObject * _self,PyObject * _args)289 static PyObject *TEObj_TESetAlignment(TEObject *_self, PyObject *_args)
290 {
291     PyObject *_res = NULL;
292     short just;
293 #ifndef TESetAlignment
294     PyMac_PRECHECK(TESetAlignment);
295 #endif
296     if (!PyArg_ParseTuple(_args, "h",
297                           &just))
298         return NULL;
299     TESetAlignment(just,
300                    _self->ob_itself);
301     Py_INCREF(Py_None);
302     _res = Py_None;
303     return _res;
304 }
305 
TEObj_TEUpdate(TEObject * _self,PyObject * _args)306 static PyObject *TEObj_TEUpdate(TEObject *_self, PyObject *_args)
307 {
308     PyObject *_res = NULL;
309     Rect rUpdate;
310 #ifndef TEUpdate
311     PyMac_PRECHECK(TEUpdate);
312 #endif
313     if (!PyArg_ParseTuple(_args, "O&",
314                           PyMac_GetRect, &rUpdate))
315         return NULL;
316     TEUpdate(&rUpdate,
317              _self->ob_itself);
318     Py_INCREF(Py_None);
319     _res = Py_None;
320     return _res;
321 }
322 
TEObj_TEScroll(TEObject * _self,PyObject * _args)323 static PyObject *TEObj_TEScroll(TEObject *_self, PyObject *_args)
324 {
325     PyObject *_res = NULL;
326     short dh;
327     short dv;
328 #ifndef TEScroll
329     PyMac_PRECHECK(TEScroll);
330 #endif
331     if (!PyArg_ParseTuple(_args, "hh",
332                           &dh,
333                           &dv))
334         return NULL;
335     TEScroll(dh,
336              dv,
337              _self->ob_itself);
338     Py_INCREF(Py_None);
339     _res = Py_None;
340     return _res;
341 }
342 
TEObj_TESelView(TEObject * _self,PyObject * _args)343 static PyObject *TEObj_TESelView(TEObject *_self, PyObject *_args)
344 {
345     PyObject *_res = NULL;
346 #ifndef TESelView
347     PyMac_PRECHECK(TESelView);
348 #endif
349     if (!PyArg_ParseTuple(_args, ""))
350         return NULL;
351     TESelView(_self->ob_itself);
352     Py_INCREF(Py_None);
353     _res = Py_None;
354     return _res;
355 }
356 
TEObj_TEPinScroll(TEObject * _self,PyObject * _args)357 static PyObject *TEObj_TEPinScroll(TEObject *_self, PyObject *_args)
358 {
359     PyObject *_res = NULL;
360     short dh;
361     short dv;
362 #ifndef TEPinScroll
363     PyMac_PRECHECK(TEPinScroll);
364 #endif
365     if (!PyArg_ParseTuple(_args, "hh",
366                           &dh,
367                           &dv))
368         return NULL;
369     TEPinScroll(dh,
370                 dv,
371                 _self->ob_itself);
372     Py_INCREF(Py_None);
373     _res = Py_None;
374     return _res;
375 }
376 
TEObj_TEAutoView(TEObject * _self,PyObject * _args)377 static PyObject *TEObj_TEAutoView(TEObject *_self, PyObject *_args)
378 {
379     PyObject *_res = NULL;
380     Boolean fAuto;
381 #ifndef TEAutoView
382     PyMac_PRECHECK(TEAutoView);
383 #endif
384     if (!PyArg_ParseTuple(_args, "b",
385                           &fAuto))
386         return NULL;
387     TEAutoView(fAuto,
388                _self->ob_itself);
389     Py_INCREF(Py_None);
390     _res = Py_None;
391     return _res;
392 }
393 
TEObj_TECalText(TEObject * _self,PyObject * _args)394 static PyObject *TEObj_TECalText(TEObject *_self, PyObject *_args)
395 {
396     PyObject *_res = NULL;
397 #ifndef TECalText
398     PyMac_PRECHECK(TECalText);
399 #endif
400     if (!PyArg_ParseTuple(_args, ""))
401         return NULL;
402     TECalText(_self->ob_itself);
403     Py_INCREF(Py_None);
404     _res = Py_None;
405     return _res;
406 }
407 
TEObj_TEGetOffset(TEObject * _self,PyObject * _args)408 static PyObject *TEObj_TEGetOffset(TEObject *_self, PyObject *_args)
409 {
410     PyObject *_res = NULL;
411     short _rv;
412     Point pt;
413 #ifndef TEGetOffset
414     PyMac_PRECHECK(TEGetOffset);
415 #endif
416     if (!PyArg_ParseTuple(_args, "O&",
417                           PyMac_GetPoint, &pt))
418         return NULL;
419     _rv = TEGetOffset(pt,
420                       _self->ob_itself);
421     _res = Py_BuildValue("h",
422                          _rv);
423     return _res;
424 }
425 
TEObj_TEGetPoint(TEObject * _self,PyObject * _args)426 static PyObject *TEObj_TEGetPoint(TEObject *_self, PyObject *_args)
427 {
428     PyObject *_res = NULL;
429     Point _rv;
430     short offset;
431 #ifndef TEGetPoint
432     PyMac_PRECHECK(TEGetPoint);
433 #endif
434     if (!PyArg_ParseTuple(_args, "h",
435                           &offset))
436         return NULL;
437     _rv = TEGetPoint(offset,
438                      _self->ob_itself);
439     _res = Py_BuildValue("O&",
440                          PyMac_BuildPoint, _rv);
441     return _res;
442 }
443 
TEObj_TEClick(TEObject * _self,PyObject * _args)444 static PyObject *TEObj_TEClick(TEObject *_self, PyObject *_args)
445 {
446     PyObject *_res = NULL;
447     Point pt;
448     Boolean fExtend;
449 #ifndef TEClick
450     PyMac_PRECHECK(TEClick);
451 #endif
452     if (!PyArg_ParseTuple(_args, "O&b",
453                           PyMac_GetPoint, &pt,
454                           &fExtend))
455         return NULL;
456     TEClick(pt,
457         fExtend,
458         _self->ob_itself);
459     Py_INCREF(Py_None);
460     _res = Py_None;
461     return _res;
462 }
463 
TEObj_TESetStyleHandle(TEObject * _self,PyObject * _args)464 static PyObject *TEObj_TESetStyleHandle(TEObject *_self, PyObject *_args)
465 {
466     PyObject *_res = NULL;
467     TEStyleHandle theHandle;
468 #ifndef TESetStyleHandle
469     PyMac_PRECHECK(TESetStyleHandle);
470 #endif
471     if (!PyArg_ParseTuple(_args, "O&",
472                           ResObj_Convert, &theHandle))
473         return NULL;
474     TESetStyleHandle(theHandle,
475                      _self->ob_itself);
476     Py_INCREF(Py_None);
477     _res = Py_None;
478     return _res;
479 }
480 
TEObj_TEGetStyleHandle(TEObject * _self,PyObject * _args)481 static PyObject *TEObj_TEGetStyleHandle(TEObject *_self, PyObject *_args)
482 {
483     PyObject *_res = NULL;
484     TEStyleHandle _rv;
485 #ifndef TEGetStyleHandle
486     PyMac_PRECHECK(TEGetStyleHandle);
487 #endif
488     if (!PyArg_ParseTuple(_args, ""))
489         return NULL;
490     _rv = TEGetStyleHandle(_self->ob_itself);
491     _res = Py_BuildValue("O&",
492                          ResObj_New, _rv);
493     return _res;
494 }
495 
TEObj_TEGetStyle(TEObject * _self,PyObject * _args)496 static PyObject *TEObj_TEGetStyle(TEObject *_self, PyObject *_args)
497 {
498     PyObject *_res = NULL;
499     short offset;
500     TextStyle theStyle;
501     short lineHeight;
502     short fontAscent;
503 #ifndef TEGetStyle
504     PyMac_PRECHECK(TEGetStyle);
505 #endif
506     if (!PyArg_ParseTuple(_args, "h",
507                           &offset))
508         return NULL;
509     TEGetStyle(offset,
510                &theStyle,
511                &lineHeight,
512                &fontAscent,
513                _self->ob_itself);
514     _res = Py_BuildValue("O&hh",
515                          TextStyle_New, &theStyle,
516                          lineHeight,
517                          fontAscent);
518     return _res;
519 }
520 
TEObj_TEStylePaste(TEObject * _self,PyObject * _args)521 static PyObject *TEObj_TEStylePaste(TEObject *_self, PyObject *_args)
522 {
523     PyObject *_res = NULL;
524 #ifndef TEStylePaste
525     PyMac_PRECHECK(TEStylePaste);
526 #endif
527     if (!PyArg_ParseTuple(_args, ""))
528         return NULL;
529     TEStylePaste(_self->ob_itself);
530     Py_INCREF(Py_None);
531     _res = Py_None;
532     return _res;
533 }
534 
TEObj_TESetStyle(TEObject * _self,PyObject * _args)535 static PyObject *TEObj_TESetStyle(TEObject *_self, PyObject *_args)
536 {
537     PyObject *_res = NULL;
538     short mode;
539     TextStyle newStyle;
540     Boolean fRedraw;
541 #ifndef TESetStyle
542     PyMac_PRECHECK(TESetStyle);
543 #endif
544     if (!PyArg_ParseTuple(_args, "hO&b",
545                           &mode,
546                           TextStyle_Convert, &newStyle,
547                           &fRedraw))
548         return NULL;
549     TESetStyle(mode,
550                &newStyle,
551                fRedraw,
552                _self->ob_itself);
553     Py_INCREF(Py_None);
554     _res = Py_None;
555     return _res;
556 }
557 
TEObj_TEReplaceStyle(TEObject * _self,PyObject * _args)558 static PyObject *TEObj_TEReplaceStyle(TEObject *_self, PyObject *_args)
559 {
560     PyObject *_res = NULL;
561     short mode;
562     TextStyle oldStyle;
563     TextStyle newStyle;
564     Boolean fRedraw;
565 #ifndef TEReplaceStyle
566     PyMac_PRECHECK(TEReplaceStyle);
567 #endif
568     if (!PyArg_ParseTuple(_args, "hO&O&b",
569                           &mode,
570                           TextStyle_Convert, &oldStyle,
571                           TextStyle_Convert, &newStyle,
572                           &fRedraw))
573         return NULL;
574     TEReplaceStyle(mode,
575                    &oldStyle,
576                    &newStyle,
577                    fRedraw,
578                    _self->ob_itself);
579     Py_INCREF(Py_None);
580     _res = Py_None;
581     return _res;
582 }
583 
TEObj_TEGetStyleScrapHandle(TEObject * _self,PyObject * _args)584 static PyObject *TEObj_TEGetStyleScrapHandle(TEObject *_self, PyObject *_args)
585 {
586     PyObject *_res = NULL;
587     StScrpHandle _rv;
588 #ifndef TEGetStyleScrapHandle
589     PyMac_PRECHECK(TEGetStyleScrapHandle);
590 #endif
591     if (!PyArg_ParseTuple(_args, ""))
592         return NULL;
593     _rv = TEGetStyleScrapHandle(_self->ob_itself);
594     _res = Py_BuildValue("O&",
595                          ResObj_New, _rv);
596     return _res;
597 }
598 
TEObj_TEStyleInsert(TEObject * _self,PyObject * _args)599 static PyObject *TEObj_TEStyleInsert(TEObject *_self, PyObject *_args)
600 {
601     PyObject *_res = NULL;
602     char *text__in__;
603     long text__len__;
604     int text__in_len__;
605     StScrpHandle hST;
606 #ifndef TEStyleInsert
607     PyMac_PRECHECK(TEStyleInsert);
608 #endif
609     if (!PyArg_ParseTuple(_args, "s#O&",
610                           &text__in__, &text__in_len__,
611                           ResObj_Convert, &hST))
612         return NULL;
613     text__len__ = text__in_len__;
614     TEStyleInsert(text__in__, text__len__,
615                   hST,
616                   _self->ob_itself);
617     Py_INCREF(Py_None);
618     _res = Py_None;
619     return _res;
620 }
621 
TEObj_TEGetHeight(TEObject * _self,PyObject * _args)622 static PyObject *TEObj_TEGetHeight(TEObject *_self, PyObject *_args)
623 {
624     PyObject *_res = NULL;
625     long _rv;
626     long endLine;
627     long startLine;
628 #ifndef TEGetHeight
629     PyMac_PRECHECK(TEGetHeight);
630 #endif
631     if (!PyArg_ParseTuple(_args, "ll",
632                           &endLine,
633                           &startLine))
634         return NULL;
635     _rv = TEGetHeight(endLine,
636                       startLine,
637                       _self->ob_itself);
638     _res = Py_BuildValue("l",
639                          _rv);
640     return _res;
641 }
642 
TEObj_TEContinuousStyle(TEObject * _self,PyObject * _args)643 static PyObject *TEObj_TEContinuousStyle(TEObject *_self, PyObject *_args)
644 {
645     PyObject *_res = NULL;
646     Boolean _rv;
647     short mode;
648     TextStyle aStyle;
649 #ifndef TEContinuousStyle
650     PyMac_PRECHECK(TEContinuousStyle);
651 #endif
652     if (!PyArg_ParseTuple(_args, "hO&",
653                           &mode,
654                           TextStyle_Convert, &aStyle))
655         return NULL;
656     _rv = TEContinuousStyle(&mode,
657                             &aStyle,
658                             _self->ob_itself);
659     _res = Py_BuildValue("bhO&",
660                          _rv,
661                          mode,
662                          TextStyle_New, &aStyle);
663     return _res;
664 }
665 
TEObj_TEUseStyleScrap(TEObject * _self,PyObject * _args)666 static PyObject *TEObj_TEUseStyleScrap(TEObject *_self, PyObject *_args)
667 {
668     PyObject *_res = NULL;
669     long rangeStart;
670     long rangeEnd;
671     StScrpHandle newStyles;
672     Boolean fRedraw;
673 #ifndef TEUseStyleScrap
674     PyMac_PRECHECK(TEUseStyleScrap);
675 #endif
676     if (!PyArg_ParseTuple(_args, "llO&b",
677                           &rangeStart,
678                           &rangeEnd,
679                           ResObj_Convert, &newStyles,
680                           &fRedraw))
681         return NULL;
682     TEUseStyleScrap(rangeStart,
683                     rangeEnd,
684                     newStyles,
685                     fRedraw,
686                     _self->ob_itself);
687     Py_INCREF(Py_None);
688     _res = Py_None;
689     return _res;
690 }
691 
TEObj_TENumStyles(TEObject * _self,PyObject * _args)692 static PyObject *TEObj_TENumStyles(TEObject *_self, PyObject *_args)
693 {
694     PyObject *_res = NULL;
695     long _rv;
696     long rangeStart;
697     long rangeEnd;
698 #ifndef TENumStyles
699     PyMac_PRECHECK(TENumStyles);
700 #endif
701     if (!PyArg_ParseTuple(_args, "ll",
702                           &rangeStart,
703                           &rangeEnd))
704         return NULL;
705     _rv = TENumStyles(rangeStart,
706                       rangeEnd,
707                       _self->ob_itself);
708     _res = Py_BuildValue("l",
709                          _rv);
710     return _res;
711 }
712 
TEObj_TEFeatureFlag(TEObject * _self,PyObject * _args)713 static PyObject *TEObj_TEFeatureFlag(TEObject *_self, PyObject *_args)
714 {
715     PyObject *_res = NULL;
716     short _rv;
717     short feature;
718     short action;
719 #ifndef TEFeatureFlag
720     PyMac_PRECHECK(TEFeatureFlag);
721 #endif
722     if (!PyArg_ParseTuple(_args, "hh",
723                           &feature,
724                           &action))
725         return NULL;
726     _rv = TEFeatureFlag(feature,
727                         action,
728                         _self->ob_itself);
729     _res = Py_BuildValue("h",
730                          _rv);
731     return _res;
732 }
733 
TEObj_TEGetHiliteRgn(TEObject * _self,PyObject * _args)734 static PyObject *TEObj_TEGetHiliteRgn(TEObject *_self, PyObject *_args)
735 {
736     PyObject *_res = NULL;
737     OSErr _err;
738     RgnHandle region;
739 #ifndef TEGetHiliteRgn
740     PyMac_PRECHECK(TEGetHiliteRgn);
741 #endif
742     if (!PyArg_ParseTuple(_args, "O&",
743                           ResObj_Convert, &region))
744         return NULL;
745     _err = TEGetHiliteRgn(region,
746                           _self->ob_itself);
747     if (_err != noErr) return PyMac_Error(_err);
748     Py_INCREF(Py_None);
749     _res = Py_None;
750     return _res;
751 }
752 
TEObj_as_Resource(TEObject * _self,PyObject * _args)753 static PyObject *TEObj_as_Resource(TEObject *_self, PyObject *_args)
754 {
755     PyObject *_res = NULL;
756     Handle _rv;
757 #ifndef as_Resource
758     PyMac_PRECHECK(as_Resource);
759 #endif
760     if (!PyArg_ParseTuple(_args, ""))
761         return NULL;
762     _rv = as_Resource(_self->ob_itself);
763     _res = Py_BuildValue("O&",
764                          ResObj_New, _rv);
765     return _res;
766 }
767 
768 static PyMethodDef TEObj_methods[] = {
769     {"TESetText", (PyCFunction)TEObj_TESetText, 1,
770      PyDoc_STR("(Buffer text) -> None")},
771     {"TEGetText", (PyCFunction)TEObj_TEGetText, 1,
772      PyDoc_STR("() -> (CharsHandle _rv)")},
773     {"TEIdle", (PyCFunction)TEObj_TEIdle, 1,
774      PyDoc_STR("() -> None")},
775     {"TESetSelect", (PyCFunction)TEObj_TESetSelect, 1,
776      PyDoc_STR("(long selStart, long selEnd) -> None")},
777     {"TEActivate", (PyCFunction)TEObj_TEActivate, 1,
778      PyDoc_STR("() -> None")},
779     {"TEDeactivate", (PyCFunction)TEObj_TEDeactivate, 1,
780      PyDoc_STR("() -> None")},
781     {"TEKey", (PyCFunction)TEObj_TEKey, 1,
782      PyDoc_STR("(CharParameter key) -> None")},
783     {"TECut", (PyCFunction)TEObj_TECut, 1,
784      PyDoc_STR("() -> None")},
785     {"TECopy", (PyCFunction)TEObj_TECopy, 1,
786      PyDoc_STR("() -> None")},
787     {"TEPaste", (PyCFunction)TEObj_TEPaste, 1,
788      PyDoc_STR("() -> None")},
789     {"TEDelete", (PyCFunction)TEObj_TEDelete, 1,
790      PyDoc_STR("() -> None")},
791     {"TEInsert", (PyCFunction)TEObj_TEInsert, 1,
792      PyDoc_STR("(Buffer text) -> None")},
793     {"TESetAlignment", (PyCFunction)TEObj_TESetAlignment, 1,
794      PyDoc_STR("(short just) -> None")},
795     {"TEUpdate", (PyCFunction)TEObj_TEUpdate, 1,
796      PyDoc_STR("(Rect rUpdate) -> None")},
797     {"TEScroll", (PyCFunction)TEObj_TEScroll, 1,
798      PyDoc_STR("(short dh, short dv) -> None")},
799     {"TESelView", (PyCFunction)TEObj_TESelView, 1,
800      PyDoc_STR("() -> None")},
801     {"TEPinScroll", (PyCFunction)TEObj_TEPinScroll, 1,
802      PyDoc_STR("(short dh, short dv) -> None")},
803     {"TEAutoView", (PyCFunction)TEObj_TEAutoView, 1,
804      PyDoc_STR("(Boolean fAuto) -> None")},
805     {"TECalText", (PyCFunction)TEObj_TECalText, 1,
806      PyDoc_STR("() -> None")},
807     {"TEGetOffset", (PyCFunction)TEObj_TEGetOffset, 1,
808      PyDoc_STR("(Point pt) -> (short _rv)")},
809     {"TEGetPoint", (PyCFunction)TEObj_TEGetPoint, 1,
810      PyDoc_STR("(short offset) -> (Point _rv)")},
811     {"TEClick", (PyCFunction)TEObj_TEClick, 1,
812      PyDoc_STR("(Point pt, Boolean fExtend) -> None")},
813     {"TESetStyleHandle", (PyCFunction)TEObj_TESetStyleHandle, 1,
814      PyDoc_STR("(TEStyleHandle theHandle) -> None")},
815     {"TEGetStyleHandle", (PyCFunction)TEObj_TEGetStyleHandle, 1,
816      PyDoc_STR("() -> (TEStyleHandle _rv)")},
817     {"TEGetStyle", (PyCFunction)TEObj_TEGetStyle, 1,
818      PyDoc_STR("(short offset) -> (TextStyle theStyle, short lineHeight, short fontAscent)")},
819     {"TEStylePaste", (PyCFunction)TEObj_TEStylePaste, 1,
820      PyDoc_STR("() -> None")},
821     {"TESetStyle", (PyCFunction)TEObj_TESetStyle, 1,
822      PyDoc_STR("(short mode, TextStyle newStyle, Boolean fRedraw) -> None")},
823     {"TEReplaceStyle", (PyCFunction)TEObj_TEReplaceStyle, 1,
824      PyDoc_STR("(short mode, TextStyle oldStyle, TextStyle newStyle, Boolean fRedraw) -> None")},
825     {"TEGetStyleScrapHandle", (PyCFunction)TEObj_TEGetStyleScrapHandle, 1,
826      PyDoc_STR("() -> (StScrpHandle _rv)")},
827     {"TEStyleInsert", (PyCFunction)TEObj_TEStyleInsert, 1,
828      PyDoc_STR("(Buffer text, StScrpHandle hST) -> None")},
829     {"TEGetHeight", (PyCFunction)TEObj_TEGetHeight, 1,
830      PyDoc_STR("(long endLine, long startLine) -> (long _rv)")},
831     {"TEContinuousStyle", (PyCFunction)TEObj_TEContinuousStyle, 1,
832      PyDoc_STR("(short mode, TextStyle aStyle) -> (Boolean _rv, short mode, TextStyle aStyle)")},
833     {"TEUseStyleScrap", (PyCFunction)TEObj_TEUseStyleScrap, 1,
834      PyDoc_STR("(long rangeStart, long rangeEnd, StScrpHandle newStyles, Boolean fRedraw) -> None")},
835     {"TENumStyles", (PyCFunction)TEObj_TENumStyles, 1,
836      PyDoc_STR("(long rangeStart, long rangeEnd) -> (long _rv)")},
837     {"TEFeatureFlag", (PyCFunction)TEObj_TEFeatureFlag, 1,
838      PyDoc_STR("(short feature, short action) -> (short _rv)")},
839     {"TEGetHiliteRgn", (PyCFunction)TEObj_TEGetHiliteRgn, 1,
840      PyDoc_STR("(RgnHandle region) -> None")},
841     {"as_Resource", (PyCFunction)TEObj_as_Resource, 1,
842      PyDoc_STR("() -> (Handle _rv)")},
843     {NULL, NULL, 0}
844 };
845 
TEObj_get_destRect(TEObject * self,void * closure)846 static PyObject *TEObj_get_destRect(TEObject *self, void *closure)
847 {
848     return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->destRect);
849 }
850 
851 #define TEObj_set_destRect NULL
852 
TEObj_get_viewRect(TEObject * self,void * closure)853 static PyObject *TEObj_get_viewRect(TEObject *self, void *closure)
854 {
855     return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->viewRect);
856 }
857 
858 #define TEObj_set_viewRect NULL
859 
TEObj_get_selRect(TEObject * self,void * closure)860 static PyObject *TEObj_get_selRect(TEObject *self, void *closure)
861 {
862     return Py_BuildValue("O&", PyMac_BuildRect, &(*self->ob_itself)->selRect);
863 }
864 
865 #define TEObj_set_selRect NULL
866 
TEObj_get_lineHeight(TEObject * self,void * closure)867 static PyObject *TEObj_get_lineHeight(TEObject *self, void *closure)
868 {
869     return Py_BuildValue("h", (*self->ob_itself)->lineHeight);
870 }
871 
872 #define TEObj_set_lineHeight NULL
873 
TEObj_get_fontAscent(TEObject * self,void * closure)874 static PyObject *TEObj_get_fontAscent(TEObject *self, void *closure)
875 {
876     return Py_BuildValue("h", (*self->ob_itself)->fontAscent);
877 }
878 
879 #define TEObj_set_fontAscent NULL
880 
TEObj_get_selPoint(TEObject * self,void * closure)881 static PyObject *TEObj_get_selPoint(TEObject *self, void *closure)
882 {
883     return Py_BuildValue("O&", PyMac_BuildPoint, (*self->ob_itself)->selPoint);
884 }
885 
886 #define TEObj_set_selPoint NULL
887 
TEObj_get_selStart(TEObject * self,void * closure)888 static PyObject *TEObj_get_selStart(TEObject *self, void *closure)
889 {
890     return Py_BuildValue("h", (*self->ob_itself)->selStart);
891 }
892 
893 #define TEObj_set_selStart NULL
894 
TEObj_get_selEnd(TEObject * self,void * closure)895 static PyObject *TEObj_get_selEnd(TEObject *self, void *closure)
896 {
897     return Py_BuildValue("h", (*self->ob_itself)->selEnd);
898 }
899 
900 #define TEObj_set_selEnd NULL
901 
TEObj_get_active(TEObject * self,void * closure)902 static PyObject *TEObj_get_active(TEObject *self, void *closure)
903 {
904     return Py_BuildValue("h", (*self->ob_itself)->active);
905 }
906 
907 #define TEObj_set_active NULL
908 
TEObj_get_just(TEObject * self,void * closure)909 static PyObject *TEObj_get_just(TEObject *self, void *closure)
910 {
911     return Py_BuildValue("h", (*self->ob_itself)->just);
912 }
913 
914 #define TEObj_set_just NULL
915 
TEObj_get_teLength(TEObject * self,void * closure)916 static PyObject *TEObj_get_teLength(TEObject *self, void *closure)
917 {
918     return Py_BuildValue("h", (*self->ob_itself)->teLength);
919 }
920 
921 #define TEObj_set_teLength NULL
922 
TEObj_get_txFont(TEObject * self,void * closure)923 static PyObject *TEObj_get_txFont(TEObject *self, void *closure)
924 {
925     return Py_BuildValue("h", (*self->ob_itself)->txFont);
926 }
927 
928 #define TEObj_set_txFont NULL
929 
TEObj_get_txFace(TEObject * self,void * closure)930 static PyObject *TEObj_get_txFace(TEObject *self, void *closure)
931 {
932     return Py_BuildValue("h", (*self->ob_itself)->txFace);
933 }
934 
935 #define TEObj_set_txFace NULL
936 
TEObj_get_txMode(TEObject * self,void * closure)937 static PyObject *TEObj_get_txMode(TEObject *self, void *closure)
938 {
939     return Py_BuildValue("h", (*self->ob_itself)->txMode);
940 }
941 
942 #define TEObj_set_txMode NULL
943 
TEObj_get_txSize(TEObject * self,void * closure)944 static PyObject *TEObj_get_txSize(TEObject *self, void *closure)
945 {
946     return Py_BuildValue("h", (*self->ob_itself)->txSize);
947 }
948 
949 #define TEObj_set_txSize NULL
950 
TEObj_get_nLines(TEObject * self,void * closure)951 static PyObject *TEObj_get_nLines(TEObject *self, void *closure)
952 {
953     return Py_BuildValue("h", (*self->ob_itself)->nLines);
954 }
955 
956 #define TEObj_set_nLines NULL
957 
958 static PyGetSetDef TEObj_getsetlist[] = {
959     {"destRect", (getter)TEObj_get_destRect, (setter)TEObj_set_destRect, "Destination rectangle"},
960     {"viewRect", (getter)TEObj_get_viewRect, (setter)TEObj_set_viewRect, "Viewing rectangle"},
961     {"selRect", (getter)TEObj_get_selRect, (setter)TEObj_set_selRect, "Selection rectangle"},
962     {"lineHeight", (getter)TEObj_get_lineHeight, (setter)TEObj_set_lineHeight, "Height of a line"},
963     {"fontAscent", (getter)TEObj_get_fontAscent, (setter)TEObj_set_fontAscent, "Ascent of a line"},
964     {"selPoint", (getter)TEObj_get_selPoint, (setter)TEObj_set_selPoint, "Selection Point"},
965     {"selStart", (getter)TEObj_get_selStart, (setter)TEObj_set_selStart, "Start of selection"},
966     {"selEnd", (getter)TEObj_get_selEnd, (setter)TEObj_set_selEnd, "End of selection"},
967     {"active", (getter)TEObj_get_active, (setter)TEObj_set_active, "TBD"},
968     {"just", (getter)TEObj_get_just, (setter)TEObj_set_just, "Justification"},
969     {"teLength", (getter)TEObj_get_teLength, (setter)TEObj_set_teLength, "TBD"},
970     {"txFont", (getter)TEObj_get_txFont, (setter)TEObj_set_txFont, "Current font"},
971     {"txFace", (getter)TEObj_get_txFace, (setter)TEObj_set_txFace, "Current font variant"},
972     {"txMode", (getter)TEObj_get_txMode, (setter)TEObj_set_txMode, "Current text-drawing mode"},
973     {"txSize", (getter)TEObj_get_txSize, (setter)TEObj_set_txSize, "Current font size"},
974     {"nLines", (getter)TEObj_get_nLines, (setter)TEObj_set_nLines, "TBD"},
975     {NULL, NULL, NULL, NULL},
976 };
977 
978 
979 #define TEObj_compare NULL
980 
981 #define TEObj_repr NULL
982 
983 #define TEObj_hash NULL
984 #define TEObj_tp_init 0
985 
986 #define TEObj_tp_alloc PyType_GenericAlloc
987 
TEObj_tp_new(PyTypeObject * type,PyObject * _args,PyObject * _kwds)988 static PyObject *TEObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
989 {
990     PyObject *_self;
991     TEHandle itself;
992     char *kw[] = {"itself", 0};
993 
994     if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, TEObj_Convert, &itself)) return NULL;
995     if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
996     ((TEObject *)_self)->ob_itself = itself;
997     return _self;
998 }
999 
1000 #define TEObj_tp_free PyObject_Del
1001 
1002 
1003 PyTypeObject TE_Type = {
1004     PyObject_HEAD_INIT(NULL)
1005     0, /*ob_size*/
1006     "_TE.TE", /*tp_name*/
1007     sizeof(TEObject), /*tp_basicsize*/
1008     0, /*tp_itemsize*/
1009     /* methods */
1010     (destructor) TEObj_dealloc, /*tp_dealloc*/
1011     0, /*tp_print*/
1012     (getattrfunc)0, /*tp_getattr*/
1013     (setattrfunc)0, /*tp_setattr*/
1014     (cmpfunc) TEObj_compare, /*tp_compare*/
1015     (reprfunc) TEObj_repr, /*tp_repr*/
1016     (PyNumberMethods *)0, /* tp_as_number */
1017     (PySequenceMethods *)0, /* tp_as_sequence */
1018     (PyMappingMethods *)0, /* tp_as_mapping */
1019     (hashfunc) TEObj_hash, /*tp_hash*/
1020     0, /*tp_call*/
1021     0, /*tp_str*/
1022     PyObject_GenericGetAttr, /*tp_getattro*/
1023     PyObject_GenericSetAttr, /*tp_setattro */
1024     0, /*tp_as_buffer*/
1025     Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1026     0, /*tp_doc*/
1027     0, /*tp_traverse*/
1028     0, /*tp_clear*/
1029     0, /*tp_richcompare*/
1030     0, /*tp_weaklistoffset*/
1031     0, /*tp_iter*/
1032     0, /*tp_iternext*/
1033     TEObj_methods, /* tp_methods */
1034     0, /*tp_members*/
1035     TEObj_getsetlist, /*tp_getset*/
1036     0, /*tp_base*/
1037     0, /*tp_dict*/
1038     0, /*tp_descr_get*/
1039     0, /*tp_descr_set*/
1040     0, /*tp_dictoffset*/
1041     TEObj_tp_init, /* tp_init */
1042     TEObj_tp_alloc, /* tp_alloc */
1043     TEObj_tp_new, /* tp_new */
1044     TEObj_tp_free, /* tp_free */
1045 };
1046 
1047 /* ----------------------- End object type TE ----------------------- */
1048 
1049 
TE_TEScrapHandle(PyObject * _self,PyObject * _args)1050 static PyObject *TE_TEScrapHandle(PyObject *_self, PyObject *_args)
1051 {
1052     PyObject *_res = NULL;
1053     Handle _rv;
1054 #ifndef TEScrapHandle
1055     PyMac_PRECHECK(TEScrapHandle);
1056 #endif
1057     if (!PyArg_ParseTuple(_args, ""))
1058         return NULL;
1059     _rv = TEScrapHandle();
1060     _res = Py_BuildValue("O&",
1061                          ResObj_New, _rv);
1062     return _res;
1063 }
1064 
TE_TEGetScrapLength(PyObject * _self,PyObject * _args)1065 static PyObject *TE_TEGetScrapLength(PyObject *_self, PyObject *_args)
1066 {
1067     PyObject *_res = NULL;
1068     long _rv;
1069 #ifndef TEGetScrapLength
1070     PyMac_PRECHECK(TEGetScrapLength);
1071 #endif
1072     if (!PyArg_ParseTuple(_args, ""))
1073         return NULL;
1074     _rv = TEGetScrapLength();
1075     _res = Py_BuildValue("l",
1076                          _rv);
1077     return _res;
1078 }
1079 
TE_TENew(PyObject * _self,PyObject * _args)1080 static PyObject *TE_TENew(PyObject *_self, PyObject *_args)
1081 {
1082     PyObject *_res = NULL;
1083     TEHandle _rv;
1084     Rect destRect;
1085     Rect viewRect;
1086 #ifndef TENew
1087     PyMac_PRECHECK(TENew);
1088 #endif
1089     if (!PyArg_ParseTuple(_args, "O&O&",
1090                           PyMac_GetRect, &destRect,
1091                           PyMac_GetRect, &viewRect))
1092         return NULL;
1093     _rv = TENew(&destRect,
1094                 &viewRect);
1095     _res = Py_BuildValue("O&",
1096                          TEObj_New, _rv);
1097     return _res;
1098 }
1099 
TE_TETextBox(PyObject * _self,PyObject * _args)1100 static PyObject *TE_TETextBox(PyObject *_self, PyObject *_args)
1101 {
1102     PyObject *_res = NULL;
1103     char *text__in__;
1104     long text__len__;
1105     int text__in_len__;
1106     Rect box;
1107     short just;
1108 #ifndef TETextBox
1109     PyMac_PRECHECK(TETextBox);
1110 #endif
1111     if (!PyArg_ParseTuple(_args, "s#O&h",
1112                           &text__in__, &text__in_len__,
1113                           PyMac_GetRect, &box,
1114                           &just))
1115         return NULL;
1116     text__len__ = text__in_len__;
1117     TETextBox(text__in__, text__len__,
1118               &box,
1119               just);
1120     Py_INCREF(Py_None);
1121     _res = Py_None;
1122     return _res;
1123 }
1124 
TE_TEStyleNew(PyObject * _self,PyObject * _args)1125 static PyObject *TE_TEStyleNew(PyObject *_self, PyObject *_args)
1126 {
1127     PyObject *_res = NULL;
1128     TEHandle _rv;
1129     Rect destRect;
1130     Rect viewRect;
1131 #ifndef TEStyleNew
1132     PyMac_PRECHECK(TEStyleNew);
1133 #endif
1134     if (!PyArg_ParseTuple(_args, "O&O&",
1135                           PyMac_GetRect, &destRect,
1136                           PyMac_GetRect, &viewRect))
1137         return NULL;
1138     _rv = TEStyleNew(&destRect,
1139                      &viewRect);
1140     _res = Py_BuildValue("O&",
1141                          TEObj_New, _rv);
1142     return _res;
1143 }
1144 
TE_TESetScrapLength(PyObject * _self,PyObject * _args)1145 static PyObject *TE_TESetScrapLength(PyObject *_self, PyObject *_args)
1146 {
1147     PyObject *_res = NULL;
1148     long length;
1149 #ifndef TESetScrapLength
1150     PyMac_PRECHECK(TESetScrapLength);
1151 #endif
1152     if (!PyArg_ParseTuple(_args, "l",
1153                           &length))
1154         return NULL;
1155     TESetScrapLength(length);
1156     Py_INCREF(Py_None);
1157     _res = Py_None;
1158     return _res;
1159 }
1160 
TE_TEFromScrap(PyObject * _self,PyObject * _args)1161 static PyObject *TE_TEFromScrap(PyObject *_self, PyObject *_args)
1162 {
1163     PyObject *_res = NULL;
1164     OSErr _err;
1165 #ifndef TEFromScrap
1166     PyMac_PRECHECK(TEFromScrap);
1167 #endif
1168     if (!PyArg_ParseTuple(_args, ""))
1169         return NULL;
1170     _err = TEFromScrap();
1171     if (_err != noErr) return PyMac_Error(_err);
1172     Py_INCREF(Py_None);
1173     _res = Py_None;
1174     return _res;
1175 }
1176 
TE_TEToScrap(PyObject * _self,PyObject * _args)1177 static PyObject *TE_TEToScrap(PyObject *_self, PyObject *_args)
1178 {
1179     PyObject *_res = NULL;
1180     OSErr _err;
1181 #ifndef TEToScrap
1182     PyMac_PRECHECK(TEToScrap);
1183 #endif
1184     if (!PyArg_ParseTuple(_args, ""))
1185         return NULL;
1186     _err = TEToScrap();
1187     if (_err != noErr) return PyMac_Error(_err);
1188     Py_INCREF(Py_None);
1189     _res = Py_None;
1190     return _res;
1191 }
1192 
TE_TEGetScrapHandle(PyObject * _self,PyObject * _args)1193 static PyObject *TE_TEGetScrapHandle(PyObject *_self, PyObject *_args)
1194 {
1195     PyObject *_res = NULL;
1196     Handle _rv;
1197 #ifndef TEGetScrapHandle
1198     PyMac_PRECHECK(TEGetScrapHandle);
1199 #endif
1200     if (!PyArg_ParseTuple(_args, ""))
1201         return NULL;
1202     _rv = TEGetScrapHandle();
1203     _res = Py_BuildValue("O&",
1204                          ResObj_New, _rv);
1205     return _res;
1206 }
1207 
TE_TESetScrapHandle(PyObject * _self,PyObject * _args)1208 static PyObject *TE_TESetScrapHandle(PyObject *_self, PyObject *_args)
1209 {
1210     PyObject *_res = NULL;
1211     Handle value;
1212 #ifndef TESetScrapHandle
1213     PyMac_PRECHECK(TESetScrapHandle);
1214 #endif
1215     if (!PyArg_ParseTuple(_args, "O&",
1216                           ResObj_Convert, &value))
1217         return NULL;
1218     TESetScrapHandle(value);
1219     Py_INCREF(Py_None);
1220     _res = Py_None;
1221     return _res;
1222 }
1223 
TE_LMGetWordRedraw(PyObject * _self,PyObject * _args)1224 static PyObject *TE_LMGetWordRedraw(PyObject *_self, PyObject *_args)
1225 {
1226     PyObject *_res = NULL;
1227     UInt8 _rv;
1228 #ifndef LMGetWordRedraw
1229     PyMac_PRECHECK(LMGetWordRedraw);
1230 #endif
1231     if (!PyArg_ParseTuple(_args, ""))
1232         return NULL;
1233     _rv = LMGetWordRedraw();
1234     _res = Py_BuildValue("b",
1235                          _rv);
1236     return _res;
1237 }
1238 
TE_LMSetWordRedraw(PyObject * _self,PyObject * _args)1239 static PyObject *TE_LMSetWordRedraw(PyObject *_self, PyObject *_args)
1240 {
1241     PyObject *_res = NULL;
1242     UInt8 value;
1243 #ifndef LMSetWordRedraw
1244     PyMac_PRECHECK(LMSetWordRedraw);
1245 #endif
1246     if (!PyArg_ParseTuple(_args, "b",
1247                           &value))
1248         return NULL;
1249     LMSetWordRedraw(value);
1250     Py_INCREF(Py_None);
1251     _res = Py_None;
1252     return _res;
1253 }
1254 
TE_as_TE(PyObject * _self,PyObject * _args)1255 static PyObject *TE_as_TE(PyObject *_self, PyObject *_args)
1256 {
1257     PyObject *_res = NULL;
1258     TEHandle _rv;
1259     Handle h;
1260 #ifndef as_TE
1261     PyMac_PRECHECK(as_TE);
1262 #endif
1263     if (!PyArg_ParseTuple(_args, "O&",
1264                           ResObj_Convert, &h))
1265         return NULL;
1266     _rv = as_TE(h);
1267     _res = Py_BuildValue("O&",
1268                          TEObj_New, _rv);
1269     return _res;
1270 }
1271 #endif /* APPLE_SUPPORTS_QUICKTIME */
1272 
1273 static PyMethodDef TE_methods[] = {
1274 #if APPLE_SUPPORTS_QUICKTIME
1275     {"TEScrapHandle", (PyCFunction)TE_TEScrapHandle, 1,
1276      PyDoc_STR("() -> (Handle _rv)")},
1277     {"TEGetScrapLength", (PyCFunction)TE_TEGetScrapLength, 1,
1278      PyDoc_STR("() -> (long _rv)")},
1279     {"TENew", (PyCFunction)TE_TENew, 1,
1280      PyDoc_STR("(Rect destRect, Rect viewRect) -> (TEHandle _rv)")},
1281     {"TETextBox", (PyCFunction)TE_TETextBox, 1,
1282      PyDoc_STR("(Buffer text, Rect box, short just) -> None")},
1283     {"TEStyleNew", (PyCFunction)TE_TEStyleNew, 1,
1284      PyDoc_STR("(Rect destRect, Rect viewRect) -> (TEHandle _rv)")},
1285     {"TESetScrapLength", (PyCFunction)TE_TESetScrapLength, 1,
1286      PyDoc_STR("(long length) -> None")},
1287     {"TEFromScrap", (PyCFunction)TE_TEFromScrap, 1,
1288      PyDoc_STR("() -> None")},
1289     {"TEToScrap", (PyCFunction)TE_TEToScrap, 1,
1290      PyDoc_STR("() -> None")},
1291     {"TEGetScrapHandle", (PyCFunction)TE_TEGetScrapHandle, 1,
1292      PyDoc_STR("() -> (Handle _rv)")},
1293     {"TESetScrapHandle", (PyCFunction)TE_TESetScrapHandle, 1,
1294      PyDoc_STR("(Handle value) -> None")},
1295     {"LMGetWordRedraw", (PyCFunction)TE_LMGetWordRedraw, 1,
1296      PyDoc_STR("() -> (UInt8 _rv)")},
1297     {"LMSetWordRedraw", (PyCFunction)TE_LMSetWordRedraw, 1,
1298      PyDoc_STR("(UInt8 value) -> None")},
1299     {"as_TE", (PyCFunction)TE_as_TE, 1,
1300      PyDoc_STR("(Handle h) -> (TEHandle _rv)")},
1301 #endif /* APPLE_SUPPORTS_QUICKTIME */
1302     {NULL, NULL, 0}
1303 };
1304 
1305 
1306 
1307 
init_TE(void)1308 void init_TE(void)
1309 {
1310     PyObject *m;
1311 #if APPLE_SUPPORTS_QUICKTIME
1312     PyObject *d;
1313 
1314 
1315 
1316         PyMac_INIT_TOOLBOX_OBJECT_NEW(TEHandle, TEObj_New);
1317         PyMac_INIT_TOOLBOX_OBJECT_CONVERT(TEHandle, TEObj_Convert);
1318 
1319 #endif /* APPLE_SUPPORTS_QUICKTIME */
1320 
1321     m = Py_InitModule("_TE", TE_methods);
1322 #if APPLE_SUPPORTS_QUICKTIME
1323     d = PyModule_GetDict(m);
1324     TE_Error = PyMac_GetOSErrException();
1325     if (TE_Error == NULL ||
1326         PyDict_SetItemString(d, "Error", TE_Error) != 0)
1327         return;
1328     TE_Type.ob_type = &PyType_Type;
1329     if (PyType_Ready(&TE_Type) < 0) return;
1330     Py_INCREF(&TE_Type);
1331     PyModule_AddObject(m, "TE", (PyObject *)&TE_Type);
1332     /* Backward-compatible name */
1333     Py_INCREF(&TE_Type);
1334     PyModule_AddObject(m, "TEType", (PyObject *)&TE_Type);
1335 #endif /* APPLE_SUPPORTS_QUICKTIME */
1336 }
1337 
1338 /* ========================= End module _TE ========================= */
1339 
1340