symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/te/_TEmodule.c
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 
       
     2 /* =========================== Module _TE =========================== */
       
     3 
       
     4 #include "Python.h"
       
     5 
       
     6 #ifndef __LP64__
       
     7 
       
     8 
       
     9 #include "pymactoolbox.h"
       
    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 *
       
    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
       
    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 
       
    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 
       
    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 
       
    93 static void TEObj_dealloc(TEObject *self)
       
    94 {
       
    95 	TEDispose(self->ob_itself);
       
    96 	self->ob_type->tp_free((PyObject *)self);
       
    97 }
       
    98 
       
    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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
   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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 
       
  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 /* __LP64__ */
       
  1272 
       
  1273 static PyMethodDef TE_methods[] = {
       
  1274 #ifndef __LP64__
       
  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 /* __LP64__ */
       
  1302 	{NULL, NULL, 0}
       
  1303 };
       
  1304 
       
  1305 
       
  1306 
       
  1307 
       
  1308 void init_TE(void)
       
  1309 {
       
  1310 	PyObject *m;
       
  1311 #ifndef __LP64__
       
  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 /* __LP64__ */
       
  1320 
       
  1321 	m = Py_InitModule("_TE", TE_methods);
       
  1322 #ifndef __LP64__
       
  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 /* __LP64__ */
       
  1336 }
       
  1337 
       
  1338 /* ========================= End module _TE ========================= */
       
  1339