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