1 2 /* ========================== Module _Ctl =========================== */ 3 4 #include "Python.h" 5 #include "pymactoolbox.h" 6 7 #if APPLE_SUPPORTS_QUICKTIME 8 9 10 11 /* Macro to test whether a weak-loaded CFM function exists */ 12 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ 13 PyErr_SetString(PyExc_NotImplementedError, \ 14 "Not available in this shared library/OS version"); \ 15 return NULL; \ 16 }} while(0) 17 18 19 #include <Carbon/Carbon.h> 20 21 #ifdef USE_TOOLBOX_OBJECT_GLUE 22 extern PyObject *_CtlObj_New(ControlHandle); 23 extern int _CtlObj_Convert(PyObject *, ControlHandle *); 24 25 #define CtlObj_New _CtlObj_New 26 #define CtlObj_Convert _CtlObj_Convert 27 #endif 28 29 static PyObject *CtlObj_WhichControl(ControlHandle); 30 31 #define as_Control(h) ((ControlHandle)h) 32 #define as_Resource(ctl) ((Handle)ctl) 33 #define GetControlRect(ctl, rectp) GetControlBounds(ctl, rectp) 34 35 #define MAXTABS 32 /* maximum number of tabs that we support in a tabs control */ 36 /* 37 ** Parse/generate ControlFontStyleRec records 38 */ 39 #if 0 /* Not needed */ 40 static PyObject * 41 ControlFontStyle_New(ControlFontStyleRec *itself) 42 { 43 44 return Py_BuildValue("hhhhhhO&O&", itself->flags, itself->font, 45 itself->size, itself->style, itself->mode, itself->just, 46 QdRGB_New, &itself->foreColor, QdRGB_New, &itself->backColor); 47 } 48 #endif 49 50 static int 51 ControlFontStyle_Convert(PyObject *v, ControlFontStyleRec *itself) 52 { 53 return PyArg_Parse(v, "(hhhhhhO&O&)", &itself->flags, 54 &itself->font, &itself->size, &itself->style, &itself->mode, 55 &itself->just, QdRGB_Convert, &itself->foreColor, 56 QdRGB_Convert, &itself->backColor); 57 } 58 59 /* 60 ** Parse/generate ControlID records 61 */ 62 static PyObject * 63 PyControlID_New(ControlID *itself) 64 { 65 66 return Py_BuildValue("O&l", PyMac_BuildOSType, itself->signature, itself->id); 67 } 68 69 static int 70 PyControlID_Convert(PyObject *v, ControlID *itself) 71 { 72 return PyArg_Parse(v, "(O&l)", PyMac_GetOSType, &itself->signature, &itself->id); 73 } 74 75 /* 76 ** generate DataBrowserListViewColumnDesc records 77 */ 78 static int 79 DataBrowserTableViewColumnDesc_Convert(PyObject *v, DataBrowserTableViewColumnDesc *itself) 80 { 81 return PyArg_Parse(v, "(lO&l)", 82 &itself->propertyID, 83 PyMac_GetOSType, &itself->propertyType, 84 &itself->propertyFlags); 85 } 86 87 static int 88 ControlButtonContentInfo_Convert(PyObject *v, ControlButtonContentInfo *itself) 89 { 90 return PyArg_Parse(v, "(hO&)", 91 &itself->contentType, 92 OptResObj_Convert, &itself->u.iconSuite); 93 } 94 95 static int 96 DataBrowserListViewHeaderDesc_Convert(PyObject *v, DataBrowserListViewHeaderDesc *itself) 97 { 98 itself->version = kDataBrowserListViewLatestHeaderDesc; 99 return PyArg_Parse(v, "(HHhO&HO&O&)", 100 &itself->minimumWidth, 101 &itself->maximumWidth, 102 &itself->titleOffset, 103 CFStringRefObj_Convert, &itself->titleString, 104 &itself->initialOrder, 105 ControlFontStyle_Convert, &itself->btnFontStyle, 106 ControlButtonContentInfo_Convert, &itself->btnContentInfo); 107 } 108 109 static int 110 DataBrowserListViewColumnDesc_Convert(PyObject *v, DataBrowserListViewColumnDesc *itself) 111 { 112 return PyArg_Parse(v, "(O&O&)", 113 DataBrowserTableViewColumnDesc_Convert, &itself->propertyDesc, 114 DataBrowserListViewHeaderDesc_Convert, &itself->headerBtnDesc); 115 } 116 117 /* TrackControl and HandleControlClick callback support */ 118 #define kMyControlActionProcTag 'ACTN' /* not an official tag, only for internal use */ 119 static PyObject *tracker; 120 static ControlActionUPP mytracker_upp; 121 static ControlActionUPP myactionproc_upp; 122 static ControlUserPaneKeyDownUPP mykeydownproc_upp; 123 static ControlUserPaneFocusUPP myfocusproc_upp; 124 static ControlUserPaneDrawUPP mydrawproc_upp; 125 static ControlUserPaneIdleUPP myidleproc_upp; 126 static ControlUserPaneHitTestUPP myhittestproc_upp; 127 static ControlUserPaneTrackingUPP mytrackingproc_upp; 128 129 static int settrackfunc(PyObject *); /* forward */ 130 static void clrtrackfunc(void); /* forward */ 131 static int setcallback(PyObject *, OSType, PyObject *, UniversalProcPtr *); 132 133 static PyObject *Ctl_Error; 134 135 /* ---------------------- Object type Control ----------------------- */ 136 137 PyTypeObject Control_Type; 138 139 #define CtlObj_Check(x) ((x)->ob_type == &Control_Type || PyObject_TypeCheck((x), &Control_Type)) 140 141 typedef struct ControlObject { 142 PyObject_HEAD 143 ControlHandle ob_itself; 144 PyObject *ob_callbackdict; 145 } ControlObject; 146 147 PyObject *CtlObj_New(ControlHandle itself) 148 { 149 ControlObject *it; 150 if (itself == NULL) return PyMac_Error(resNotFound); 151 it = PyObject_NEW(ControlObject, &Control_Type); 152 if (it == NULL) return NULL; 153 it->ob_itself = itself; 154 SetControlReference(itself, (long)it); 155 it->ob_callbackdict = NULL; 156 return (PyObject *)it; 157 } 158 159 int CtlObj_Convert(PyObject *v, ControlHandle *p_itself) 160 { 161 if (!CtlObj_Check(v)) 162 { 163 PyErr_SetString(PyExc_TypeError, "Control required"); 164 return 0; 165 } 166 *p_itself = ((ControlObject *)v)->ob_itself; 167 return 1; 168 } 169 170 static void CtlObj_dealloc(ControlObject *self) 171 { 172 Py_XDECREF(self->ob_callbackdict); 173 if (self->ob_itself)SetControlReference(self->ob_itself, (long)0); /* Make it forget about us */ 174 self->ob_type->tp_free((PyObject *)self); 175 } 176 177 static PyObject *CtlObj_HiliteControl(ControlObject *_self, PyObject *_args) 178 { 179 PyObject *_res = NULL; 180 ControlPartCode hiliteState; 181 #ifndef HiliteControl 182 PyMac_PRECHECK(HiliteControl); 183 #endif 184 if (!PyArg_ParseTuple(_args, "h", 185 &hiliteState)) 186 return NULL; 187 HiliteControl(_self->ob_itself, 188 hiliteState); 189 Py_INCREF(Py_None); 190 _res = Py_None; 191 return _res; 192 } 193 194 static PyObject *CtlObj_ShowControl(ControlObject *_self, PyObject *_args) 195 { 196 PyObject *_res = NULL; 197 #ifndef ShowControl 198 PyMac_PRECHECK(ShowControl); 199 #endif 200 if (!PyArg_ParseTuple(_args, "")) 201 return NULL; 202 ShowControl(_self->ob_itself); 203 Py_INCREF(Py_None); 204 _res = Py_None; 205 return _res; 206 } 207 208 static PyObject *CtlObj_HideControl(ControlObject *_self, PyObject *_args) 209 { 210 PyObject *_res = NULL; 211 #ifndef HideControl 212 PyMac_PRECHECK(HideControl); 213 #endif 214 if (!PyArg_ParseTuple(_args, "")) 215 return NULL; 216 HideControl(_self->ob_itself); 217 Py_INCREF(Py_None); 218 _res = Py_None; 219 return _res; 220 } 221 222 static PyObject *CtlObj_IsControlActive(ControlObject *_self, PyObject *_args) 223 { 224 PyObject *_res = NULL; 225 Boolean _rv; 226 #ifndef IsControlActive 227 PyMac_PRECHECK(IsControlActive); 228 #endif 229 if (!PyArg_ParseTuple(_args, "")) 230 return NULL; 231 _rv = IsControlActive(_self->ob_itself); 232 _res = Py_BuildValue("b", 233 _rv); 234 return _res; 235 } 236 237 static PyObject *CtlObj_IsControlVisible(ControlObject *_self, PyObject *_args) 238 { 239 PyObject *_res = NULL; 240 Boolean _rv; 241 #ifndef IsControlVisible 242 PyMac_PRECHECK(IsControlVisible); 243 #endif 244 if (!PyArg_ParseTuple(_args, "")) 245 return NULL; 246 _rv = IsControlVisible(_self->ob_itself); 247 _res = Py_BuildValue("b", 248 _rv); 249 return _res; 250 } 251 252 static PyObject *CtlObj_ActivateControl(ControlObject *_self, PyObject *_args) 253 { 254 PyObject *_res = NULL; 255 OSErr _err; 256 #ifndef ActivateControl 257 PyMac_PRECHECK(ActivateControl); 258 #endif 259 if (!PyArg_ParseTuple(_args, "")) 260 return NULL; 261 _err = ActivateControl(_self->ob_itself); 262 if (_err != noErr) return PyMac_Error(_err); 263 Py_INCREF(Py_None); 264 _res = Py_None; 265 return _res; 266 } 267 268 static PyObject *CtlObj_DeactivateControl(ControlObject *_self, PyObject *_args) 269 { 270 PyObject *_res = NULL; 271 OSErr _err; 272 #ifndef DeactivateControl 273 PyMac_PRECHECK(DeactivateControl); 274 #endif 275 if (!PyArg_ParseTuple(_args, "")) 276 return NULL; 277 _err = DeactivateControl(_self->ob_itself); 278 if (_err != noErr) return PyMac_Error(_err); 279 Py_INCREF(Py_None); 280 _res = Py_None; 281 return _res; 282 } 283 284 static PyObject *CtlObj_SetControlVisibility(ControlObject *_self, PyObject *_args) 285 { 286 PyObject *_res = NULL; 287 OSErr _err; 288 Boolean inIsVisible; 289 Boolean inDoDraw; 290 #ifndef SetControlVisibility 291 PyMac_PRECHECK(SetControlVisibility); 292 #endif 293 if (!PyArg_ParseTuple(_args, "bb", 294 &inIsVisible, 295 &inDoDraw)) 296 return NULL; 297 _err = SetControlVisibility(_self->ob_itself, 298 inIsVisible, 299 inDoDraw); 300 if (_err != noErr) return PyMac_Error(_err); 301 Py_INCREF(Py_None); 302 _res = Py_None; 303 return _res; 304 } 305 306 static PyObject *CtlObj_IsControlEnabled(ControlObject *_self, PyObject *_args) 307 { 308 PyObject *_res = NULL; 309 Boolean _rv; 310 #ifndef IsControlEnabled 311 PyMac_PRECHECK(IsControlEnabled); 312 #endif 313 if (!PyArg_ParseTuple(_args, "")) 314 return NULL; 315 _rv = IsControlEnabled(_self->ob_itself); 316 _res = Py_BuildValue("b", 317 _rv); 318 return _res; 319 } 320 321 static PyObject *CtlObj_EnableControl(ControlObject *_self, PyObject *_args) 322 { 323 PyObject *_res = NULL; 324 OSStatus _err; 325 #ifndef EnableControl 326 PyMac_PRECHECK(EnableControl); 327 #endif 328 if (!PyArg_ParseTuple(_args, "")) 329 return NULL; 330 _err = EnableControl(_self->ob_itself); 331 if (_err != noErr) return PyMac_Error(_err); 332 Py_INCREF(Py_None); 333 _res = Py_None; 334 return _res; 335 } 336 337 static PyObject *CtlObj_DisableControl(ControlObject *_self, PyObject *_args) 338 { 339 PyObject *_res = NULL; 340 OSStatus _err; 341 #ifndef DisableControl 342 PyMac_PRECHECK(DisableControl); 343 #endif 344 if (!PyArg_ParseTuple(_args, "")) 345 return NULL; 346 _err = DisableControl(_self->ob_itself); 347 if (_err != noErr) return PyMac_Error(_err); 348 Py_INCREF(Py_None); 349 _res = Py_None; 350 return _res; 351 } 352 353 static PyObject *CtlObj_Draw1Control(ControlObject *_self, PyObject *_args) 354 { 355 PyObject *_res = NULL; 356 #ifndef Draw1Control 357 PyMac_PRECHECK(Draw1Control); 358 #endif 359 if (!PyArg_ParseTuple(_args, "")) 360 return NULL; 361 Draw1Control(_self->ob_itself); 362 Py_INCREF(Py_None); 363 _res = Py_None; 364 return _res; 365 } 366 367 static PyObject *CtlObj_GetBestControlRect(ControlObject *_self, PyObject *_args) 368 { 369 PyObject *_res = NULL; 370 OSErr _err; 371 Rect outRect; 372 SInt16 outBaseLineOffset; 373 #ifndef GetBestControlRect 374 PyMac_PRECHECK(GetBestControlRect); 375 #endif 376 if (!PyArg_ParseTuple(_args, "")) 377 return NULL; 378 _err = GetBestControlRect(_self->ob_itself, 379 &outRect, 380 &outBaseLineOffset); 381 if (_err != noErr) return PyMac_Error(_err); 382 _res = Py_BuildValue("O&h", 383 PyMac_BuildRect, &outRect, 384 outBaseLineOffset); 385 return _res; 386 } 387 388 static PyObject *CtlObj_SetControlFontStyle(ControlObject *_self, PyObject *_args) 389 { 390 PyObject *_res = NULL; 391 OSErr _err; 392 ControlFontStyleRec inStyle; 393 #ifndef SetControlFontStyle 394 PyMac_PRECHECK(SetControlFontStyle); 395 #endif 396 if (!PyArg_ParseTuple(_args, "O&", 397 ControlFontStyle_Convert, &inStyle)) 398 return NULL; 399 _err = SetControlFontStyle(_self->ob_itself, 400 &inStyle); 401 if (_err != noErr) return PyMac_Error(_err); 402 Py_INCREF(Py_None); 403 _res = Py_None; 404 return _res; 405 } 406 407 static PyObject *CtlObj_DrawControlInCurrentPort(ControlObject *_self, PyObject *_args) 408 { 409 PyObject *_res = NULL; 410 #ifndef DrawControlInCurrentPort 411 PyMac_PRECHECK(DrawControlInCurrentPort); 412 #endif 413 if (!PyArg_ParseTuple(_args, "")) 414 return NULL; 415 DrawControlInCurrentPort(_self->ob_itself); 416 Py_INCREF(Py_None); 417 _res = Py_None; 418 return _res; 419 } 420 421 static PyObject *CtlObj_SetUpControlBackground(ControlObject *_self, PyObject *_args) 422 { 423 PyObject *_res = NULL; 424 OSErr _err; 425 SInt16 inDepth; 426 Boolean inIsColorDevice; 427 #ifndef SetUpControlBackground 428 PyMac_PRECHECK(SetUpControlBackground); 429 #endif 430 if (!PyArg_ParseTuple(_args, "hb", 431 &inDepth, 432 &inIsColorDevice)) 433 return NULL; 434 _err = SetUpControlBackground(_self->ob_itself, 435 inDepth, 436 inIsColorDevice); 437 if (_err != noErr) return PyMac_Error(_err); 438 Py_INCREF(Py_None); 439 _res = Py_None; 440 return _res; 441 } 442 443 static PyObject *CtlObj_SetUpControlTextColor(ControlObject *_self, PyObject *_args) 444 { 445 PyObject *_res = NULL; 446 OSErr _err; 447 SInt16 inDepth; 448 Boolean inIsColorDevice; 449 #ifndef SetUpControlTextColor 450 PyMac_PRECHECK(SetUpControlTextColor); 451 #endif 452 if (!PyArg_ParseTuple(_args, "hb", 453 &inDepth, 454 &inIsColorDevice)) 455 return NULL; 456 _err = SetUpControlTextColor(_self->ob_itself, 457 inDepth, 458 inIsColorDevice); 459 if (_err != noErr) return PyMac_Error(_err); 460 Py_INCREF(Py_None); 461 _res = Py_None; 462 return _res; 463 } 464 465 static PyObject *CtlObj_DragControl(ControlObject *_self, PyObject *_args) 466 { 467 PyObject *_res = NULL; 468 Point startPoint; 469 Rect limitRect; 470 Rect slopRect; 471 DragConstraint axis; 472 #ifndef DragControl 473 PyMac_PRECHECK(DragControl); 474 #endif 475 if (!PyArg_ParseTuple(_args, "O&O&O&H", 476 PyMac_GetPoint, &startPoint, 477 PyMac_GetRect, &limitRect, 478 PyMac_GetRect, &slopRect, 479 &axis)) 480 return NULL; 481 DragControl(_self->ob_itself, 482 startPoint, 483 &limitRect, 484 &slopRect, 485 axis); 486 Py_INCREF(Py_None); 487 _res = Py_None; 488 return _res; 489 } 490 491 static PyObject *CtlObj_TestControl(ControlObject *_self, PyObject *_args) 492 { 493 PyObject *_res = NULL; 494 ControlPartCode _rv; 495 Point testPoint; 496 #ifndef TestControl 497 PyMac_PRECHECK(TestControl); 498 #endif 499 if (!PyArg_ParseTuple(_args, "O&", 500 PyMac_GetPoint, &testPoint)) 501 return NULL; 502 _rv = TestControl(_self->ob_itself, 503 testPoint); 504 _res = Py_BuildValue("h", 505 _rv); 506 return _res; 507 } 508 509 static PyObject *CtlObj_HandleControlContextualMenuClick(ControlObject *_self, PyObject *_args) 510 { 511 PyObject *_res = NULL; 512 OSStatus _err; 513 Point inWhere; 514 Boolean menuDisplayed; 515 #ifndef HandleControlContextualMenuClick 516 PyMac_PRECHECK(HandleControlContextualMenuClick); 517 #endif 518 if (!PyArg_ParseTuple(_args, "O&", 519 PyMac_GetPoint, &inWhere)) 520 return NULL; 521 _err = HandleControlContextualMenuClick(_self->ob_itself, 522 inWhere, 523 &menuDisplayed); 524 if (_err != noErr) return PyMac_Error(_err); 525 _res = Py_BuildValue("b", 526 menuDisplayed); 527 return _res; 528 } 529 530 static PyObject *CtlObj_GetControlClickActivation(ControlObject *_self, PyObject *_args) 531 { 532 PyObject *_res = NULL; 533 OSStatus _err; 534 Point inWhere; 535 EventModifiers inModifiers; 536 ClickActivationResult outResult; 537 #ifndef GetControlClickActivation 538 PyMac_PRECHECK(GetControlClickActivation); 539 #endif 540 if (!PyArg_ParseTuple(_args, "O&H", 541 PyMac_GetPoint, &inWhere, 542 &inModifiers)) 543 return NULL; 544 _err = GetControlClickActivation(_self->ob_itself, 545 inWhere, 546 inModifiers, 547 &outResult); 548 if (_err != noErr) return PyMac_Error(_err); 549 _res = Py_BuildValue("l", 550 outResult); 551 return _res; 552 } 553 554 static PyObject *CtlObj_HandleControlKey(ControlObject *_self, PyObject *_args) 555 { 556 PyObject *_res = NULL; 557 ControlPartCode _rv; 558 SInt16 inKeyCode; 559 SInt16 inCharCode; 560 EventModifiers inModifiers; 561 #ifndef HandleControlKey 562 PyMac_PRECHECK(HandleControlKey); 563 #endif 564 if (!PyArg_ParseTuple(_args, "hhH", 565 &inKeyCode, 566 &inCharCode, 567 &inModifiers)) 568 return NULL; 569 _rv = HandleControlKey(_self->ob_itself, 570 inKeyCode, 571 inCharCode, 572 inModifiers); 573 _res = Py_BuildValue("h", 574 _rv); 575 return _res; 576 } 577 578 static PyObject *CtlObj_HandleControlSetCursor(ControlObject *_self, PyObject *_args) 579 { 580 PyObject *_res = NULL; 581 OSStatus _err; 582 Point localPoint; 583 EventModifiers modifiers; 584 Boolean cursorWasSet; 585 #ifndef HandleControlSetCursor 586 PyMac_PRECHECK(HandleControlSetCursor); 587 #endif 588 if (!PyArg_ParseTuple(_args, "O&H", 589 PyMac_GetPoint, &localPoint, 590 &modifiers)) 591 return NULL; 592 _err = HandleControlSetCursor(_self->ob_itself, 593 localPoint, 594 modifiers, 595 &cursorWasSet); 596 if (_err != noErr) return PyMac_Error(_err); 597 _res = Py_BuildValue("b", 598 cursorWasSet); 599 return _res; 600 } 601 602 static PyObject *CtlObj_MoveControl(ControlObject *_self, PyObject *_args) 603 { 604 PyObject *_res = NULL; 605 SInt16 h; 606 SInt16 v; 607 #ifndef MoveControl 608 PyMac_PRECHECK(MoveControl); 609 #endif 610 if (!PyArg_ParseTuple(_args, "hh", 611 &h, 612 &v)) 613 return NULL; 614 MoveControl(_self->ob_itself, 615 h, 616 v); 617 Py_INCREF(Py_None); 618 _res = Py_None; 619 return _res; 620 } 621 622 static PyObject *CtlObj_SizeControl(ControlObject *_self, PyObject *_args) 623 { 624 PyObject *_res = NULL; 625 SInt16 w; 626 SInt16 h; 627 #ifndef SizeControl 628 PyMac_PRECHECK(SizeControl); 629 #endif 630 if (!PyArg_ParseTuple(_args, "hh", 631 &w, 632 &h)) 633 return NULL; 634 SizeControl(_self->ob_itself, 635 w, 636 h); 637 Py_INCREF(Py_None); 638 _res = Py_None; 639 return _res; 640 } 641 642 static PyObject *CtlObj_SetControlTitle(ControlObject *_self, PyObject *_args) 643 { 644 PyObject *_res = NULL; 645 Str255 title; 646 #ifndef SetControlTitle 647 PyMac_PRECHECK(SetControlTitle); 648 #endif 649 if (!PyArg_ParseTuple(_args, "O&", 650 PyMac_GetStr255, title)) 651 return NULL; 652 SetControlTitle(_self->ob_itself, 653 title); 654 Py_INCREF(Py_None); 655 _res = Py_None; 656 return _res; 657 } 658 659 static PyObject *CtlObj_GetControlTitle(ControlObject *_self, PyObject *_args) 660 { 661 PyObject *_res = NULL; 662 Str255 title; 663 #ifndef GetControlTitle 664 PyMac_PRECHECK(GetControlTitle); 665 #endif 666 if (!PyArg_ParseTuple(_args, "")) 667 return NULL; 668 GetControlTitle(_self->ob_itself, 669 title); 670 _res = Py_BuildValue("O&", 671 PyMac_BuildStr255, title); 672 return _res; 673 } 674 675 static PyObject *CtlObj_SetControlTitleWithCFString(ControlObject *_self, PyObject *_args) 676 { 677 PyObject *_res = NULL; 678 OSStatus _err; 679 CFStringRef inString; 680 #ifndef SetControlTitleWithCFString 681 PyMac_PRECHECK(SetControlTitleWithCFString); 682 #endif 683 if (!PyArg_ParseTuple(_args, "O&", 684 CFStringRefObj_Convert, &inString)) 685 return NULL; 686 _err = SetControlTitleWithCFString(_self->ob_itself, 687 inString); 688 if (_err != noErr) return PyMac_Error(_err); 689 Py_INCREF(Py_None); 690 _res = Py_None; 691 return _res; 692 } 693 694 static PyObject *CtlObj_CopyControlTitleAsCFString(ControlObject *_self, PyObject *_args) 695 { 696 PyObject *_res = NULL; 697 OSStatus _err; 698 CFStringRef outString; 699 #ifndef CopyControlTitleAsCFString 700 PyMac_PRECHECK(CopyControlTitleAsCFString); 701 #endif 702 if (!PyArg_ParseTuple(_args, "")) 703 return NULL; 704 _err = CopyControlTitleAsCFString(_self->ob_itself, 705 &outString); 706 if (_err != noErr) return PyMac_Error(_err); 707 _res = Py_BuildValue("O&", 708 CFStringRefObj_New, outString); 709 return _res; 710 } 711 712 static PyObject *CtlObj_GetControlValue(ControlObject *_self, PyObject *_args) 713 { 714 PyObject *_res = NULL; 715 SInt16 _rv; 716 #ifndef GetControlValue 717 PyMac_PRECHECK(GetControlValue); 718 #endif 719 if (!PyArg_ParseTuple(_args, "")) 720 return NULL; 721 _rv = GetControlValue(_self->ob_itself); 722 _res = Py_BuildValue("h", 723 _rv); 724 return _res; 725 } 726 727 static PyObject *CtlObj_SetControlValue(ControlObject *_self, PyObject *_args) 728 { 729 PyObject *_res = NULL; 730 SInt16 newValue; 731 #ifndef SetControlValue 732 PyMac_PRECHECK(SetControlValue); 733 #endif 734 if (!PyArg_ParseTuple(_args, "h", 735 &newValue)) 736 return NULL; 737 SetControlValue(_self->ob_itself, 738 newValue); 739 Py_INCREF(Py_None); 740 _res = Py_None; 741 return _res; 742 } 743 744 static PyObject *CtlObj_GetControlMinimum(ControlObject *_self, PyObject *_args) 745 { 746 PyObject *_res = NULL; 747 SInt16 _rv; 748 #ifndef GetControlMinimum 749 PyMac_PRECHECK(GetControlMinimum); 750 #endif 751 if (!PyArg_ParseTuple(_args, "")) 752 return NULL; 753 _rv = GetControlMinimum(_self->ob_itself); 754 _res = Py_BuildValue("h", 755 _rv); 756 return _res; 757 } 758 759 static PyObject *CtlObj_SetControlMinimum(ControlObject *_self, PyObject *_args) 760 { 761 PyObject *_res = NULL; 762 SInt16 newMinimum; 763 #ifndef SetControlMinimum 764 PyMac_PRECHECK(SetControlMinimum); 765 #endif 766 if (!PyArg_ParseTuple(_args, "h", 767 &newMinimum)) 768 return NULL; 769 SetControlMinimum(_self->ob_itself, 770 newMinimum); 771 Py_INCREF(Py_None); 772 _res = Py_None; 773 return _res; 774 } 775 776 static PyObject *CtlObj_GetControlMaximum(ControlObject *_self, PyObject *_args) 777 { 778 PyObject *_res = NULL; 779 SInt16 _rv; 780 #ifndef GetControlMaximum 781 PyMac_PRECHECK(GetControlMaximum); 782 #endif 783 if (!PyArg_ParseTuple(_args, "")) 784 return NULL; 785 _rv = GetControlMaximum(_self->ob_itself); 786 _res = Py_BuildValue("h", 787 _rv); 788 return _res; 789 } 790 791 static PyObject *CtlObj_SetControlMaximum(ControlObject *_self, PyObject *_args) 792 { 793 PyObject *_res = NULL; 794 SInt16 newMaximum; 795 #ifndef SetControlMaximum 796 PyMac_PRECHECK(SetControlMaximum); 797 #endif 798 if (!PyArg_ParseTuple(_args, "h", 799 &newMaximum)) 800 return NULL; 801 SetControlMaximum(_self->ob_itself, 802 newMaximum); 803 Py_INCREF(Py_None); 804 _res = Py_None; 805 return _res; 806 } 807 808 static PyObject *CtlObj_GetControlViewSize(ControlObject *_self, PyObject *_args) 809 { 810 PyObject *_res = NULL; 811 SInt32 _rv; 812 #ifndef GetControlViewSize 813 PyMac_PRECHECK(GetControlViewSize); 814 #endif 815 if (!PyArg_ParseTuple(_args, "")) 816 return NULL; 817 _rv = GetControlViewSize(_self->ob_itself); 818 _res = Py_BuildValue("l", 819 _rv); 820 return _res; 821 } 822 823 static PyObject *CtlObj_SetControlViewSize(ControlObject *_self, PyObject *_args) 824 { 825 PyObject *_res = NULL; 826 SInt32 newViewSize; 827 #ifndef SetControlViewSize 828 PyMac_PRECHECK(SetControlViewSize); 829 #endif 830 if (!PyArg_ParseTuple(_args, "l", 831 &newViewSize)) 832 return NULL; 833 SetControlViewSize(_self->ob_itself, 834 newViewSize); 835 Py_INCREF(Py_None); 836 _res = Py_None; 837 return _res; 838 } 839 840 static PyObject *CtlObj_GetControl32BitValue(ControlObject *_self, PyObject *_args) 841 { 842 PyObject *_res = NULL; 843 SInt32 _rv; 844 #ifndef GetControl32BitValue 845 PyMac_PRECHECK(GetControl32BitValue); 846 #endif 847 if (!PyArg_ParseTuple(_args, "")) 848 return NULL; 849 _rv = GetControl32BitValue(_self->ob_itself); 850 _res = Py_BuildValue("l", 851 _rv); 852 return _res; 853 } 854 855 static PyObject *CtlObj_SetControl32BitValue(ControlObject *_self, PyObject *_args) 856 { 857 PyObject *_res = NULL; 858 SInt32 newValue; 859 #ifndef SetControl32BitValue 860 PyMac_PRECHECK(SetControl32BitValue); 861 #endif 862 if (!PyArg_ParseTuple(_args, "l", 863 &newValue)) 864 return NULL; 865 SetControl32BitValue(_self->ob_itself, 866 newValue); 867 Py_INCREF(Py_None); 868 _res = Py_None; 869 return _res; 870 } 871 872 static PyObject *CtlObj_GetControl32BitMaximum(ControlObject *_self, PyObject *_args) 873 { 874 PyObject *_res = NULL; 875 SInt32 _rv; 876 #ifndef GetControl32BitMaximum 877 PyMac_PRECHECK(GetControl32BitMaximum); 878 #endif 879 if (!PyArg_ParseTuple(_args, "")) 880 return NULL; 881 _rv = GetControl32BitMaximum(_self->ob_itself); 882 _res = Py_BuildValue("l", 883 _rv); 884 return _res; 885 } 886 887 static PyObject *CtlObj_SetControl32BitMaximum(ControlObject *_self, PyObject *_args) 888 { 889 PyObject *_res = NULL; 890 SInt32 newMaximum; 891 #ifndef SetControl32BitMaximum 892 PyMac_PRECHECK(SetControl32BitMaximum); 893 #endif 894 if (!PyArg_ParseTuple(_args, "l", 895 &newMaximum)) 896 return NULL; 897 SetControl32BitMaximum(_self->ob_itself, 898 newMaximum); 899 Py_INCREF(Py_None); 900 _res = Py_None; 901 return _res; 902 } 903 904 static PyObject *CtlObj_GetControl32BitMinimum(ControlObject *_self, PyObject *_args) 905 { 906 PyObject *_res = NULL; 907 SInt32 _rv; 908 #ifndef GetControl32BitMinimum 909 PyMac_PRECHECK(GetControl32BitMinimum); 910 #endif 911 if (!PyArg_ParseTuple(_args, "")) 912 return NULL; 913 _rv = GetControl32BitMinimum(_self->ob_itself); 914 _res = Py_BuildValue("l", 915 _rv); 916 return _res; 917 } 918 919 static PyObject *CtlObj_SetControl32BitMinimum(ControlObject *_self, PyObject *_args) 920 { 921 PyObject *_res = NULL; 922 SInt32 newMinimum; 923 #ifndef SetControl32BitMinimum 924 PyMac_PRECHECK(SetControl32BitMinimum); 925 #endif 926 if (!PyArg_ParseTuple(_args, "l", 927 &newMinimum)) 928 return NULL; 929 SetControl32BitMinimum(_self->ob_itself, 930 newMinimum); 931 Py_INCREF(Py_None); 932 _res = Py_None; 933 return _res; 934 } 935 936 static PyObject *CtlObj_IsValidControlHandle(ControlObject *_self, PyObject *_args) 937 { 938 PyObject *_res = NULL; 939 Boolean _rv; 940 #ifndef IsValidControlHandle 941 PyMac_PRECHECK(IsValidControlHandle); 942 #endif 943 if (!PyArg_ParseTuple(_args, "")) 944 return NULL; 945 _rv = IsValidControlHandle(_self->ob_itself); 946 _res = Py_BuildValue("b", 947 _rv); 948 return _res; 949 } 950 951 static PyObject *CtlObj_SetControlID(ControlObject *_self, PyObject *_args) 952 { 953 PyObject *_res = NULL; 954 OSStatus _err; 955 ControlID inID; 956 #ifndef SetControlID 957 PyMac_PRECHECK(SetControlID); 958 #endif 959 if (!PyArg_ParseTuple(_args, "O&", 960 PyControlID_Convert, &inID)) 961 return NULL; 962 _err = SetControlID(_self->ob_itself, 963 &inID); 964 if (_err != noErr) return PyMac_Error(_err); 965 Py_INCREF(Py_None); 966 _res = Py_None; 967 return _res; 968 } 969 970 static PyObject *CtlObj_GetControlID(ControlObject *_self, PyObject *_args) 971 { 972 PyObject *_res = NULL; 973 OSStatus _err; 974 ControlID outID; 975 #ifndef GetControlID 976 PyMac_PRECHECK(GetControlID); 977 #endif 978 if (!PyArg_ParseTuple(_args, "")) 979 return NULL; 980 _err = GetControlID(_self->ob_itself, 981 &outID); 982 if (_err != noErr) return PyMac_Error(_err); 983 _res = Py_BuildValue("O&", 984 PyControlID_New, &outID); 985 return _res; 986 } 987 988 static PyObject *CtlObj_SetControlCommandID(ControlObject *_self, PyObject *_args) 989 { 990 PyObject *_res = NULL; 991 OSStatus _err; 992 UInt32 inCommandID; 993 #ifndef SetControlCommandID 994 PyMac_PRECHECK(SetControlCommandID); 995 #endif 996 if (!PyArg_ParseTuple(_args, "l", 997 &inCommandID)) 998 return NULL; 999 _err = SetControlCommandID(_self->ob_itself, 1000 inCommandID); 1001 if (_err != noErr) return PyMac_Error(_err); 1002 Py_INCREF(Py_None); 1003 _res = Py_None; 1004 return _res; 1005 } 1006 1007 static PyObject *CtlObj_GetControlCommandID(ControlObject *_self, PyObject *_args) 1008 { 1009 PyObject *_res = NULL; 1010 OSStatus _err; 1011 UInt32 outCommandID; 1012 #ifndef GetControlCommandID 1013 PyMac_PRECHECK(GetControlCommandID); 1014 #endif 1015 if (!PyArg_ParseTuple(_args, "")) 1016 return NULL; 1017 _err = GetControlCommandID(_self->ob_itself, 1018 &outCommandID); 1019 if (_err != noErr) return PyMac_Error(_err); 1020 _res = Py_BuildValue("l", 1021 outCommandID); 1022 return _res; 1023 } 1024 1025 static PyObject *CtlObj_RemoveControlProperty(ControlObject *_self, PyObject *_args) 1026 { 1027 PyObject *_res = NULL; 1028 OSStatus _err; 1029 OSType propertyCreator; 1030 OSType propertyTag; 1031 #ifndef RemoveControlProperty 1032 PyMac_PRECHECK(RemoveControlProperty); 1033 #endif 1034 if (!PyArg_ParseTuple(_args, "O&O&", 1035 PyMac_GetOSType, &propertyCreator, 1036 PyMac_GetOSType, &propertyTag)) 1037 return NULL; 1038 _err = RemoveControlProperty(_self->ob_itself, 1039 propertyCreator, 1040 propertyTag); 1041 if (_err != noErr) return PyMac_Error(_err); 1042 Py_INCREF(Py_None); 1043 _res = Py_None; 1044 return _res; 1045 } 1046 1047 static PyObject *CtlObj_GetControlPropertyAttributes(ControlObject *_self, PyObject *_args) 1048 { 1049 PyObject *_res = NULL; 1050 OSStatus _err; 1051 OSType propertyCreator; 1052 OSType propertyTag; 1053 UInt32 attributes; 1054 #ifndef GetControlPropertyAttributes 1055 PyMac_PRECHECK(GetControlPropertyAttributes); 1056 #endif 1057 if (!PyArg_ParseTuple(_args, "O&O&", 1058 PyMac_GetOSType, &propertyCreator, 1059 PyMac_GetOSType, &propertyTag)) 1060 return NULL; 1061 _err = GetControlPropertyAttributes(_self->ob_itself, 1062 propertyCreator, 1063 propertyTag, 1064 &attributes); 1065 if (_err != noErr) return PyMac_Error(_err); 1066 _res = Py_BuildValue("l", 1067 attributes); 1068 return _res; 1069 } 1070 1071 static PyObject *CtlObj_ChangeControlPropertyAttributes(ControlObject *_self, PyObject *_args) 1072 { 1073 PyObject *_res = NULL; 1074 OSStatus _err; 1075 OSType propertyCreator; 1076 OSType propertyTag; 1077 UInt32 attributesToSet; 1078 UInt32 attributesToClear; 1079 #ifndef ChangeControlPropertyAttributes 1080 PyMac_PRECHECK(ChangeControlPropertyAttributes); 1081 #endif 1082 if (!PyArg_ParseTuple(_args, "O&O&ll", 1083 PyMac_GetOSType, &propertyCreator, 1084 PyMac_GetOSType, &propertyTag, 1085 &attributesToSet, 1086 &attributesToClear)) 1087 return NULL; 1088 _err = ChangeControlPropertyAttributes(_self->ob_itself, 1089 propertyCreator, 1090 propertyTag, 1091 attributesToSet, 1092 attributesToClear); 1093 if (_err != noErr) return PyMac_Error(_err); 1094 Py_INCREF(Py_None); 1095 _res = Py_None; 1096 return _res; 1097 } 1098 1099 static PyObject *CtlObj_GetControlRegion(ControlObject *_self, PyObject *_args) 1100 { 1101 PyObject *_res = NULL; 1102 OSStatus _err; 1103 ControlPartCode inPart; 1104 RgnHandle outRegion; 1105 #ifndef GetControlRegion 1106 PyMac_PRECHECK(GetControlRegion); 1107 #endif 1108 if (!PyArg_ParseTuple(_args, "hO&", 1109 &inPart, 1110 ResObj_Convert, &outRegion)) 1111 return NULL; 1112 _err = GetControlRegion(_self->ob_itself, 1113 inPart, 1114 outRegion); 1115 if (_err != noErr) return PyMac_Error(_err); 1116 Py_INCREF(Py_None); 1117 _res = Py_None; 1118 return _res; 1119 } 1120 1121 static PyObject *CtlObj_GetControlVariant(ControlObject *_self, PyObject *_args) 1122 { 1123 PyObject *_res = NULL; 1124 ControlVariant _rv; 1125 #ifndef GetControlVariant 1126 PyMac_PRECHECK(GetControlVariant); 1127 #endif 1128 if (!PyArg_ParseTuple(_args, "")) 1129 return NULL; 1130 _rv = GetControlVariant(_self->ob_itself); 1131 _res = Py_BuildValue("h", 1132 _rv); 1133 return _res; 1134 } 1135 1136 static PyObject *CtlObj_SetControlAction(ControlObject *_self, PyObject *_args) 1137 { 1138 PyObject *_res = NULL; 1139 PyObject* actionProc; 1140 UniversalProcPtr c_callback; 1141 #ifndef SetControlAction 1142 PyMac_PRECHECK(SetControlAction); 1143 #endif 1144 if (!PyArg_ParseTuple(_args, "O", 1145 &actionProc)) 1146 return NULL; 1147 SetControlAction(_self->ob_itself, 1148 myactionproc_upp); 1149 Py_INCREF(Py_None); 1150 _res = Py_None; 1151 setcallback((PyObject*)_self, kMyControlActionProcTag, actionProc, &c_callback); 1152 return _res; 1153 } 1154 1155 static PyObject *CtlObj_SetControlReference(ControlObject *_self, PyObject *_args) 1156 { 1157 PyObject *_res = NULL; 1158 SInt32 data; 1159 #ifndef SetControlReference 1160 PyMac_PRECHECK(SetControlReference); 1161 #endif 1162 if (!PyArg_ParseTuple(_args, "l", 1163 &data)) 1164 return NULL; 1165 SetControlReference(_self->ob_itself, 1166 data); 1167 Py_INCREF(Py_None); 1168 _res = Py_None; 1169 return _res; 1170 } 1171 1172 static PyObject *CtlObj_GetControlReference(ControlObject *_self, PyObject *_args) 1173 { 1174 PyObject *_res = NULL; 1175 SInt32 _rv; 1176 #ifndef GetControlReference 1177 PyMac_PRECHECK(GetControlReference); 1178 #endif 1179 if (!PyArg_ParseTuple(_args, "")) 1180 return NULL; 1181 _rv = GetControlReference(_self->ob_itself); 1182 _res = Py_BuildValue("l", 1183 _rv); 1184 return _res; 1185 } 1186 1187 static PyObject *CtlObj_EmbedControl(ControlObject *_self, PyObject *_args) 1188 { 1189 PyObject *_res = NULL; 1190 OSErr _err; 1191 ControlHandle inContainer; 1192 #ifndef EmbedControl 1193 PyMac_PRECHECK(EmbedControl); 1194 #endif 1195 if (!PyArg_ParseTuple(_args, "O&", 1196 CtlObj_Convert, &inContainer)) 1197 return NULL; 1198 _err = EmbedControl(_self->ob_itself, 1199 inContainer); 1200 if (_err != noErr) return PyMac_Error(_err); 1201 Py_INCREF(Py_None); 1202 _res = Py_None; 1203 return _res; 1204 } 1205 1206 static PyObject *CtlObj_AutoEmbedControl(ControlObject *_self, PyObject *_args) 1207 { 1208 PyObject *_res = NULL; 1209 OSErr _err; 1210 WindowPtr inWindow; 1211 #ifndef AutoEmbedControl 1212 PyMac_PRECHECK(AutoEmbedControl); 1213 #endif 1214 if (!PyArg_ParseTuple(_args, "O&", 1215 WinObj_Convert, &inWindow)) 1216 return NULL; 1217 _err = AutoEmbedControl(_self->ob_itself, 1218 inWindow); 1219 if (_err != noErr) return PyMac_Error(_err); 1220 Py_INCREF(Py_None); 1221 _res = Py_None; 1222 return _res; 1223 } 1224 1225 static PyObject *CtlObj_GetSuperControl(ControlObject *_self, PyObject *_args) 1226 { 1227 PyObject *_res = NULL; 1228 OSErr _err; 1229 ControlHandle outParent; 1230 #ifndef GetSuperControl 1231 PyMac_PRECHECK(GetSuperControl); 1232 #endif 1233 if (!PyArg_ParseTuple(_args, "")) 1234 return NULL; 1235 _err = GetSuperControl(_self->ob_itself, 1236 &outParent); 1237 if (_err != noErr) return PyMac_Error(_err); 1238 _res = Py_BuildValue("O&", 1239 CtlObj_WhichControl, outParent); 1240 return _res; 1241 } 1242 1243 static PyObject *CtlObj_CountSubControls(ControlObject *_self, PyObject *_args) 1244 { 1245 PyObject *_res = NULL; 1246 OSErr _err; 1247 UInt16 outNumChildren; 1248 #ifndef CountSubControls 1249 PyMac_PRECHECK(CountSubControls); 1250 #endif 1251 if (!PyArg_ParseTuple(_args, "")) 1252 return NULL; 1253 _err = CountSubControls(_self->ob_itself, 1254 &outNumChildren); 1255 if (_err != noErr) return PyMac_Error(_err); 1256 _res = Py_BuildValue("H", 1257 outNumChildren); 1258 return _res; 1259 } 1260 1261 static PyObject *CtlObj_GetIndexedSubControl(ControlObject *_self, PyObject *_args) 1262 { 1263 PyObject *_res = NULL; 1264 OSErr _err; 1265 UInt16 inIndex; 1266 ControlHandle outSubControl; 1267 #ifndef GetIndexedSubControl 1268 PyMac_PRECHECK(GetIndexedSubControl); 1269 #endif 1270 if (!PyArg_ParseTuple(_args, "H", 1271 &inIndex)) 1272 return NULL; 1273 _err = GetIndexedSubControl(_self->ob_itself, 1274 inIndex, 1275 &outSubControl); 1276 if (_err != noErr) return PyMac_Error(_err); 1277 _res = Py_BuildValue("O&", 1278 CtlObj_WhichControl, outSubControl); 1279 return _res; 1280 } 1281 1282 static PyObject *CtlObj_SetControlSupervisor(ControlObject *_self, PyObject *_args) 1283 { 1284 PyObject *_res = NULL; 1285 OSErr _err; 1286 ControlHandle inBoss; 1287 #ifndef SetControlSupervisor 1288 PyMac_PRECHECK(SetControlSupervisor); 1289 #endif 1290 if (!PyArg_ParseTuple(_args, "O&", 1291 CtlObj_Convert, &inBoss)) 1292 return NULL; 1293 _err = SetControlSupervisor(_self->ob_itself, 1294 inBoss); 1295 if (_err != noErr) return PyMac_Error(_err); 1296 Py_INCREF(Py_None); 1297 _res = Py_None; 1298 return _res; 1299 } 1300 1301 static PyObject *CtlObj_GetControlFeatures(ControlObject *_self, PyObject *_args) 1302 { 1303 PyObject *_res = NULL; 1304 OSErr _err; 1305 UInt32 outFeatures; 1306 #ifndef GetControlFeatures 1307 PyMac_PRECHECK(GetControlFeatures); 1308 #endif 1309 if (!PyArg_ParseTuple(_args, "")) 1310 return NULL; 1311 _err = GetControlFeatures(_self->ob_itself, 1312 &outFeatures); 1313 if (_err != noErr) return PyMac_Error(_err); 1314 _res = Py_BuildValue("l", 1315 outFeatures); 1316 return _res; 1317 } 1318 1319 static PyObject *CtlObj_GetControlDataSize(ControlObject *_self, PyObject *_args) 1320 { 1321 PyObject *_res = NULL; 1322 OSErr _err; 1323 ControlPartCode inPart; 1324 ResType inTagName; 1325 Size outMaxSize; 1326 #ifndef GetControlDataSize 1327 PyMac_PRECHECK(GetControlDataSize); 1328 #endif 1329 if (!PyArg_ParseTuple(_args, "hO&", 1330 &inPart, 1331 PyMac_GetOSType, &inTagName)) 1332 return NULL; 1333 _err = GetControlDataSize(_self->ob_itself, 1334 inPart, 1335 inTagName, 1336 &outMaxSize); 1337 if (_err != noErr) return PyMac_Error(_err); 1338 _res = Py_BuildValue("l", 1339 outMaxSize); 1340 return _res; 1341 } 1342 1343 static PyObject *CtlObj_HandleControlDragTracking(ControlObject *_self, PyObject *_args) 1344 { 1345 PyObject *_res = NULL; 1346 OSStatus _err; 1347 DragTrackingMessage inMessage; 1348 DragReference inDrag; 1349 Boolean outLikesDrag; 1350 #ifndef HandleControlDragTracking 1351 PyMac_PRECHECK(HandleControlDragTracking); 1352 #endif 1353 if (!PyArg_ParseTuple(_args, "hO&", 1354 &inMessage, 1355 DragObj_Convert, &inDrag)) 1356 return NULL; 1357 _err = HandleControlDragTracking(_self->ob_itself, 1358 inMessage, 1359 inDrag, 1360 &outLikesDrag); 1361 if (_err != noErr) return PyMac_Error(_err); 1362 _res = Py_BuildValue("b", 1363 outLikesDrag); 1364 return _res; 1365 } 1366 1367 static PyObject *CtlObj_HandleControlDragReceive(ControlObject *_self, PyObject *_args) 1368 { 1369 PyObject *_res = NULL; 1370 OSStatus _err; 1371 DragReference inDrag; 1372 #ifndef HandleControlDragReceive 1373 PyMac_PRECHECK(HandleControlDragReceive); 1374 #endif 1375 if (!PyArg_ParseTuple(_args, "O&", 1376 DragObj_Convert, &inDrag)) 1377 return NULL; 1378 _err = HandleControlDragReceive(_self->ob_itself, 1379 inDrag); 1380 if (_err != noErr) return PyMac_Error(_err); 1381 Py_INCREF(Py_None); 1382 _res = Py_None; 1383 return _res; 1384 } 1385 1386 static PyObject *CtlObj_SetControlDragTrackingEnabled(ControlObject *_self, PyObject *_args) 1387 { 1388 PyObject *_res = NULL; 1389 OSStatus _err; 1390 Boolean inTracks; 1391 #ifndef SetControlDragTrackingEnabled 1392 PyMac_PRECHECK(SetControlDragTrackingEnabled); 1393 #endif 1394 if (!PyArg_ParseTuple(_args, "b", 1395 &inTracks)) 1396 return NULL; 1397 _err = SetControlDragTrackingEnabled(_self->ob_itself, 1398 inTracks); 1399 if (_err != noErr) return PyMac_Error(_err); 1400 Py_INCREF(Py_None); 1401 _res = Py_None; 1402 return _res; 1403 } 1404 1405 static PyObject *CtlObj_IsControlDragTrackingEnabled(ControlObject *_self, PyObject *_args) 1406 { 1407 PyObject *_res = NULL; 1408 OSStatus _err; 1409 Boolean outTracks; 1410 #ifndef IsControlDragTrackingEnabled 1411 PyMac_PRECHECK(IsControlDragTrackingEnabled); 1412 #endif 1413 if (!PyArg_ParseTuple(_args, "")) 1414 return NULL; 1415 _err = IsControlDragTrackingEnabled(_self->ob_itself, 1416 &outTracks); 1417 if (_err != noErr) return PyMac_Error(_err); 1418 _res = Py_BuildValue("b", 1419 outTracks); 1420 return _res; 1421 } 1422 1423 static PyObject *CtlObj_GetControlBounds(ControlObject *_self, PyObject *_args) 1424 { 1425 PyObject *_res = NULL; 1426 Rect bounds; 1427 #ifndef GetControlBounds 1428 PyMac_PRECHECK(GetControlBounds); 1429 #endif 1430 if (!PyArg_ParseTuple(_args, "")) 1431 return NULL; 1432 GetControlBounds(_self->ob_itself, 1433 &bounds); 1434 _res = Py_BuildValue("O&", 1435 PyMac_BuildRect, &bounds); 1436 return _res; 1437 } 1438 1439 static PyObject *CtlObj_IsControlHilited(ControlObject *_self, PyObject *_args) 1440 { 1441 PyObject *_res = NULL; 1442 Boolean _rv; 1443 #ifndef IsControlHilited 1444 PyMac_PRECHECK(IsControlHilited); 1445 #endif 1446 if (!PyArg_ParseTuple(_args, "")) 1447 return NULL; 1448 _rv = IsControlHilited(_self->ob_itself); 1449 _res = Py_BuildValue("b", 1450 _rv); 1451 return _res; 1452 } 1453 1454 static PyObject *CtlObj_GetControlHilite(ControlObject *_self, PyObject *_args) 1455 { 1456 PyObject *_res = NULL; 1457 UInt16 _rv; 1458 #ifndef GetControlHilite 1459 PyMac_PRECHECK(GetControlHilite); 1460 #endif 1461 if (!PyArg_ParseTuple(_args, "")) 1462 return NULL; 1463 _rv = GetControlHilite(_self->ob_itself); 1464 _res = Py_BuildValue("H", 1465 _rv); 1466 return _res; 1467 } 1468 1469 static PyObject *CtlObj_GetControlOwner(ControlObject *_self, PyObject *_args) 1470 { 1471 PyObject *_res = NULL; 1472 WindowPtr _rv; 1473 #ifndef GetControlOwner 1474 PyMac_PRECHECK(GetControlOwner); 1475 #endif 1476 if (!PyArg_ParseTuple(_args, "")) 1477 return NULL; 1478 _rv = GetControlOwner(_self->ob_itself); 1479 _res = Py_BuildValue("O&", 1480 WinObj_New, _rv); 1481 return _res; 1482 } 1483 1484 static PyObject *CtlObj_GetControlDataHandle(ControlObject *_self, PyObject *_args) 1485 { 1486 PyObject *_res = NULL; 1487 Handle _rv; 1488 #ifndef GetControlDataHandle 1489 PyMac_PRECHECK(GetControlDataHandle); 1490 #endif 1491 if (!PyArg_ParseTuple(_args, "")) 1492 return NULL; 1493 _rv = GetControlDataHandle(_self->ob_itself); 1494 _res = Py_BuildValue("O&", 1495 ResObj_New, _rv); 1496 return _res; 1497 } 1498 1499 static PyObject *CtlObj_GetControlPopupMenuHandle(ControlObject *_self, PyObject *_args) 1500 { 1501 PyObject *_res = NULL; 1502 MenuHandle _rv; 1503 #ifndef GetControlPopupMenuHandle 1504 PyMac_PRECHECK(GetControlPopupMenuHandle); 1505 #endif 1506 if (!PyArg_ParseTuple(_args, "")) 1507 return NULL; 1508 _rv = GetControlPopupMenuHandle(_self->ob_itself); 1509 _res = Py_BuildValue("O&", 1510 MenuObj_New, _rv); 1511 return _res; 1512 } 1513 1514 static PyObject *CtlObj_GetControlPopupMenuID(ControlObject *_self, PyObject *_args) 1515 { 1516 PyObject *_res = NULL; 1517 short _rv; 1518 #ifndef GetControlPopupMenuID 1519 PyMac_PRECHECK(GetControlPopupMenuID); 1520 #endif 1521 if (!PyArg_ParseTuple(_args, "")) 1522 return NULL; 1523 _rv = GetControlPopupMenuID(_self->ob_itself); 1524 _res = Py_BuildValue("h", 1525 _rv); 1526 return _res; 1527 } 1528 1529 static PyObject *CtlObj_SetControlDataHandle(ControlObject *_self, PyObject *_args) 1530 { 1531 PyObject *_res = NULL; 1532 Handle dataHandle; 1533 #ifndef SetControlDataHandle 1534 PyMac_PRECHECK(SetControlDataHandle); 1535 #endif 1536 if (!PyArg_ParseTuple(_args, "O&", 1537 ResObj_Convert, &dataHandle)) 1538 return NULL; 1539 SetControlDataHandle(_self->ob_itself, 1540 dataHandle); 1541 Py_INCREF(Py_None); 1542 _res = Py_None; 1543 return _res; 1544 } 1545 1546 static PyObject *CtlObj_SetControlBounds(ControlObject *_self, PyObject *_args) 1547 { 1548 PyObject *_res = NULL; 1549 Rect bounds; 1550 #ifndef SetControlBounds 1551 PyMac_PRECHECK(SetControlBounds); 1552 #endif 1553 if (!PyArg_ParseTuple(_args, "O&", 1554 PyMac_GetRect, &bounds)) 1555 return NULL; 1556 SetControlBounds(_self->ob_itself, 1557 &bounds); 1558 Py_INCREF(Py_None); 1559 _res = Py_None; 1560 return _res; 1561 } 1562 1563 static PyObject *CtlObj_SetControlPopupMenuHandle(ControlObject *_self, PyObject *_args) 1564 { 1565 PyObject *_res = NULL; 1566 MenuHandle popupMenu; 1567 #ifndef SetControlPopupMenuHandle 1568 PyMac_PRECHECK(SetControlPopupMenuHandle); 1569 #endif 1570 if (!PyArg_ParseTuple(_args, "O&", 1571 MenuObj_Convert, &popupMenu)) 1572 return NULL; 1573 SetControlPopupMenuHandle(_self->ob_itself, 1574 popupMenu); 1575 Py_INCREF(Py_None); 1576 _res = Py_None; 1577 return _res; 1578 } 1579 1580 static PyObject *CtlObj_SetControlPopupMenuID(ControlObject *_self, PyObject *_args) 1581 { 1582 PyObject *_res = NULL; 1583 short menuID; 1584 #ifndef SetControlPopupMenuID 1585 PyMac_PRECHECK(SetControlPopupMenuID); 1586 #endif 1587 if (!PyArg_ParseTuple(_args, "h", 1588 &menuID)) 1589 return NULL; 1590 SetControlPopupMenuID(_self->ob_itself, 1591 menuID); 1592 Py_INCREF(Py_None); 1593 _res = Py_None; 1594 return _res; 1595 } 1596 1597 static PyObject *CtlObj_GetBevelButtonMenuValue(ControlObject *_self, PyObject *_args) 1598 { 1599 PyObject *_res = NULL; 1600 OSErr _err; 1601 UInt16 outValue; 1602 #ifndef GetBevelButtonMenuValue 1603 PyMac_PRECHECK(GetBevelButtonMenuValue); 1604 #endif 1605 if (!PyArg_ParseTuple(_args, "")) 1606 return NULL; 1607 _err = GetBevelButtonMenuValue(_self->ob_itself, 1608 &outValue); 1609 if (_err != noErr) return PyMac_Error(_err); 1610 _res = Py_BuildValue("h", 1611 outValue); 1612 return _res; 1613 } 1614 1615 static PyObject *CtlObj_SetBevelButtonMenuValue(ControlObject *_self, PyObject *_args) 1616 { 1617 PyObject *_res = NULL; 1618 OSErr _err; 1619 SInt16 inValue; 1620 #ifndef SetBevelButtonMenuValue 1621 PyMac_PRECHECK(SetBevelButtonMenuValue); 1622 #endif 1623 if (!PyArg_ParseTuple(_args, "h", 1624 &inValue)) 1625 return NULL; 1626 _err = SetBevelButtonMenuValue(_self->ob_itself, 1627 inValue); 1628 if (_err != noErr) return PyMac_Error(_err); 1629 Py_INCREF(Py_None); 1630 _res = Py_None; 1631 return _res; 1632 } 1633 1634 static PyObject *CtlObj_GetBevelButtonMenuHandle(ControlObject *_self, PyObject *_args) 1635 { 1636 PyObject *_res = NULL; 1637 OSErr _err; 1638 MenuHandle outHandle; 1639 #ifndef GetBevelButtonMenuHandle 1640 PyMac_PRECHECK(GetBevelButtonMenuHandle); 1641 #endif 1642 if (!PyArg_ParseTuple(_args, "")) 1643 return NULL; 1644 _err = GetBevelButtonMenuHandle(_self->ob_itself, 1645 &outHandle); 1646 if (_err != noErr) return PyMac_Error(_err); 1647 _res = Py_BuildValue("O&", 1648 MenuObj_New, outHandle); 1649 return _res; 1650 } 1651 1652 static PyObject *CtlObj_SetBevelButtonContentInfo(ControlObject *_self, PyObject *_args) 1653 { 1654 PyObject *_res = NULL; 1655 OSErr _err; 1656 ControlButtonContentInfo inContent; 1657 #ifndef SetBevelButtonContentInfo 1658 PyMac_PRECHECK(SetBevelButtonContentInfo); 1659 #endif 1660 if (!PyArg_ParseTuple(_args, "O&", 1661 ControlButtonContentInfo_Convert, &inContent)) 1662 return NULL; 1663 _err = SetBevelButtonContentInfo(_self->ob_itself, 1664 &inContent); 1665 if (_err != noErr) return PyMac_Error(_err); 1666 Py_INCREF(Py_None); 1667 _res = Py_None; 1668 return _res; 1669 } 1670 1671 static PyObject *CtlObj_SetBevelButtonTransform(ControlObject *_self, PyObject *_args) 1672 { 1673 PyObject *_res = NULL; 1674 OSErr _err; 1675 IconTransformType transform; 1676 #ifndef SetBevelButtonTransform 1677 PyMac_PRECHECK(SetBevelButtonTransform); 1678 #endif 1679 if (!PyArg_ParseTuple(_args, "h", 1680 &transform)) 1681 return NULL; 1682 _err = SetBevelButtonTransform(_self->ob_itself, 1683 transform); 1684 if (_err != noErr) return PyMac_Error(_err); 1685 Py_INCREF(Py_None); 1686 _res = Py_None; 1687 return _res; 1688 } 1689 1690 static PyObject *CtlObj_SetDisclosureTriangleLastValue(ControlObject *_self, PyObject *_args) 1691 { 1692 PyObject *_res = NULL; 1693 OSErr _err; 1694 SInt16 inValue; 1695 #ifndef SetDisclosureTriangleLastValue 1696 PyMac_PRECHECK(SetDisclosureTriangleLastValue); 1697 #endif 1698 if (!PyArg_ParseTuple(_args, "h", 1699 &inValue)) 1700 return NULL; 1701 _err = SetDisclosureTriangleLastValue(_self->ob_itself, 1702 inValue); 1703 if (_err != noErr) return PyMac_Error(_err); 1704 Py_INCREF(Py_None); 1705 _res = Py_None; 1706 return _res; 1707 } 1708 1709 static PyObject *CtlObj_GetTabContentRect(ControlObject *_self, PyObject *_args) 1710 { 1711 PyObject *_res = NULL; 1712 OSErr _err; 1713 Rect outContentRect; 1714 #ifndef GetTabContentRect 1715 PyMac_PRECHECK(GetTabContentRect); 1716 #endif 1717 if (!PyArg_ParseTuple(_args, "")) 1718 return NULL; 1719 _err = GetTabContentRect(_self->ob_itself, 1720 &outContentRect); 1721 if (_err != noErr) return PyMac_Error(_err); 1722 _res = Py_BuildValue("O&", 1723 PyMac_BuildRect, &outContentRect); 1724 return _res; 1725 } 1726 1727 static PyObject *CtlObj_SetTabEnabled(ControlObject *_self, PyObject *_args) 1728 { 1729 PyObject *_res = NULL; 1730 OSErr _err; 1731 SInt16 inTabToHilite; 1732 Boolean inEnabled; 1733 #ifndef SetTabEnabled 1734 PyMac_PRECHECK(SetTabEnabled); 1735 #endif 1736 if (!PyArg_ParseTuple(_args, "hb", 1737 &inTabToHilite, 1738 &inEnabled)) 1739 return NULL; 1740 _err = SetTabEnabled(_self->ob_itself, 1741 inTabToHilite, 1742 inEnabled); 1743 if (_err != noErr) return PyMac_Error(_err); 1744 Py_INCREF(Py_None); 1745 _res = Py_None; 1746 return _res; 1747 } 1748 1749 static PyObject *CtlObj_SetImageWellContentInfo(ControlObject *_self, PyObject *_args) 1750 { 1751 PyObject *_res = NULL; 1752 OSErr _err; 1753 ControlButtonContentInfo inContent; 1754 #ifndef SetImageWellContentInfo 1755 PyMac_PRECHECK(SetImageWellContentInfo); 1756 #endif 1757 if (!PyArg_ParseTuple(_args, "O&", 1758 ControlButtonContentInfo_Convert, &inContent)) 1759 return NULL; 1760 _err = SetImageWellContentInfo(_self->ob_itself, 1761 &inContent); 1762 if (_err != noErr) return PyMac_Error(_err); 1763 Py_INCREF(Py_None); 1764 _res = Py_None; 1765 return _res; 1766 } 1767 1768 static PyObject *CtlObj_SetImageWellTransform(ControlObject *_self, PyObject *_args) 1769 { 1770 PyObject *_res = NULL; 1771 OSErr _err; 1772 IconTransformType inTransform; 1773 #ifndef SetImageWellTransform 1774 PyMac_PRECHECK(SetImageWellTransform); 1775 #endif 1776 if (!PyArg_ParseTuple(_args, "h", 1777 &inTransform)) 1778 return NULL; 1779 _err = SetImageWellTransform(_self->ob_itself, 1780 inTransform); 1781 if (_err != noErr) return PyMac_Error(_err); 1782 Py_INCREF(Py_None); 1783 _res = Py_None; 1784 return _res; 1785 } 1786 1787 static PyObject *CtlObj_GetDataBrowserViewStyle(ControlObject *_self, PyObject *_args) 1788 { 1789 PyObject *_res = NULL; 1790 OSStatus _err; 1791 OSType style; 1792 #ifndef GetDataBrowserViewStyle 1793 PyMac_PRECHECK(GetDataBrowserViewStyle); 1794 #endif 1795 if (!PyArg_ParseTuple(_args, "")) 1796 return NULL; 1797 _err = GetDataBrowserViewStyle(_self->ob_itself, 1798 &style); 1799 if (_err != noErr) return PyMac_Error(_err); 1800 _res = Py_BuildValue("O&", 1801 PyMac_BuildOSType, style); 1802 return _res; 1803 } 1804 1805 static PyObject *CtlObj_SetDataBrowserViewStyle(ControlObject *_self, PyObject *_args) 1806 { 1807 PyObject *_res = NULL; 1808 OSStatus _err; 1809 OSType style; 1810 #ifndef SetDataBrowserViewStyle 1811 PyMac_PRECHECK(SetDataBrowserViewStyle); 1812 #endif 1813 if (!PyArg_ParseTuple(_args, "O&", 1814 PyMac_GetOSType, &style)) 1815 return NULL; 1816 _err = SetDataBrowserViewStyle(_self->ob_itself, 1817 style); 1818 if (_err != noErr) return PyMac_Error(_err); 1819 Py_INCREF(Py_None); 1820 _res = Py_None; 1821 return _res; 1822 } 1823 1824 static PyObject *CtlObj_EnableDataBrowserEditCommand(ControlObject *_self, PyObject *_args) 1825 { 1826 PyObject *_res = NULL; 1827 Boolean _rv; 1828 UInt32 command; 1829 #ifndef EnableDataBrowserEditCommand 1830 PyMac_PRECHECK(EnableDataBrowserEditCommand); 1831 #endif 1832 if (!PyArg_ParseTuple(_args, "l", 1833 &command)) 1834 return NULL; 1835 _rv = EnableDataBrowserEditCommand(_self->ob_itself, 1836 command); 1837 _res = Py_BuildValue("b", 1838 _rv); 1839 return _res; 1840 } 1841 1842 static PyObject *CtlObj_ExecuteDataBrowserEditCommand(ControlObject *_self, PyObject *_args) 1843 { 1844 PyObject *_res = NULL; 1845 OSStatus _err; 1846 UInt32 command; 1847 #ifndef ExecuteDataBrowserEditCommand 1848 PyMac_PRECHECK(ExecuteDataBrowserEditCommand); 1849 #endif 1850 if (!PyArg_ParseTuple(_args, "l", 1851 &command)) 1852 return NULL; 1853 _err = ExecuteDataBrowserEditCommand(_self->ob_itself, 1854 command); 1855 if (_err != noErr) return PyMac_Error(_err); 1856 Py_INCREF(Py_None); 1857 _res = Py_None; 1858 return _res; 1859 } 1860 1861 static PyObject *CtlObj_GetDataBrowserSelectionAnchor(ControlObject *_self, PyObject *_args) 1862 { 1863 PyObject *_res = NULL; 1864 OSStatus _err; 1865 UInt32 first; 1866 UInt32 last; 1867 #ifndef GetDataBrowserSelectionAnchor 1868 PyMac_PRECHECK(GetDataBrowserSelectionAnchor); 1869 #endif 1870 if (!PyArg_ParseTuple(_args, "")) 1871 return NULL; 1872 _err = GetDataBrowserSelectionAnchor(_self->ob_itself, 1873 &first, 1874 &last); 1875 if (_err != noErr) return PyMac_Error(_err); 1876 _res = Py_BuildValue("ll", 1877 first, 1878 last); 1879 return _res; 1880 } 1881 1882 static PyObject *CtlObj_MoveDataBrowserSelectionAnchor(ControlObject *_self, PyObject *_args) 1883 { 1884 PyObject *_res = NULL; 1885 OSStatus _err; 1886 UInt32 direction; 1887 Boolean extendSelection; 1888 #ifndef MoveDataBrowserSelectionAnchor 1889 PyMac_PRECHECK(MoveDataBrowserSelectionAnchor); 1890 #endif 1891 if (!PyArg_ParseTuple(_args, "lb", 1892 &direction, 1893 &extendSelection)) 1894 return NULL; 1895 _err = MoveDataBrowserSelectionAnchor(_self->ob_itself, 1896 direction, 1897 extendSelection); 1898 if (_err != noErr) return PyMac_Error(_err); 1899 Py_INCREF(Py_None); 1900 _res = Py_None; 1901 return _res; 1902 } 1903 1904 static PyObject *CtlObj_OpenDataBrowserContainer(ControlObject *_self, PyObject *_args) 1905 { 1906 PyObject *_res = NULL; 1907 OSStatus _err; 1908 UInt32 container; 1909 #ifndef OpenDataBrowserContainer 1910 PyMac_PRECHECK(OpenDataBrowserContainer); 1911 #endif 1912 if (!PyArg_ParseTuple(_args, "l", 1913 &container)) 1914 return NULL; 1915 _err = OpenDataBrowserContainer(_self->ob_itself, 1916 container); 1917 if (_err != noErr) return PyMac_Error(_err); 1918 Py_INCREF(Py_None); 1919 _res = Py_None; 1920 return _res; 1921 } 1922 1923 static PyObject *CtlObj_CloseDataBrowserContainer(ControlObject *_self, PyObject *_args) 1924 { 1925 PyObject *_res = NULL; 1926 OSStatus _err; 1927 UInt32 container; 1928 #ifndef CloseDataBrowserContainer 1929 PyMac_PRECHECK(CloseDataBrowserContainer); 1930 #endif 1931 if (!PyArg_ParseTuple(_args, "l", 1932 &container)) 1933 return NULL; 1934 _err = CloseDataBrowserContainer(_self->ob_itself, 1935 container); 1936 if (_err != noErr) return PyMac_Error(_err); 1937 Py_INCREF(Py_None); 1938 _res = Py_None; 1939 return _res; 1940 } 1941 1942 static PyObject *CtlObj_SortDataBrowserContainer(ControlObject *_self, PyObject *_args) 1943 { 1944 PyObject *_res = NULL; 1945 OSStatus _err; 1946 UInt32 container; 1947 Boolean sortChildren; 1948 #ifndef SortDataBrowserContainer 1949 PyMac_PRECHECK(SortDataBrowserContainer); 1950 #endif 1951 if (!PyArg_ParseTuple(_args, "lb", 1952 &container, 1953 &sortChildren)) 1954 return NULL; 1955 _err = SortDataBrowserContainer(_self->ob_itself, 1956 container, 1957 sortChildren); 1958 if (_err != noErr) return PyMac_Error(_err); 1959 Py_INCREF(Py_None); 1960 _res = Py_None; 1961 return _res; 1962 } 1963 1964 static PyObject *CtlObj_GetDataBrowserItems(ControlObject *_self, PyObject *_args) 1965 { 1966 PyObject *_res = NULL; 1967 OSStatus _err; 1968 UInt32 container; 1969 Boolean recurse; 1970 UInt32 state; 1971 Handle items; 1972 #ifndef GetDataBrowserItems 1973 PyMac_PRECHECK(GetDataBrowserItems); 1974 #endif 1975 if (!PyArg_ParseTuple(_args, "lblO&", 1976 &container, 1977 &recurse, 1978 &state, 1979 ResObj_Convert, &items)) 1980 return NULL; 1981 _err = GetDataBrowserItems(_self->ob_itself, 1982 container, 1983 recurse, 1984 state, 1985 items); 1986 if (_err != noErr) return PyMac_Error(_err); 1987 Py_INCREF(Py_None); 1988 _res = Py_None; 1989 return _res; 1990 } 1991 1992 static PyObject *CtlObj_GetDataBrowserItemCount(ControlObject *_self, PyObject *_args) 1993 { 1994 PyObject *_res = NULL; 1995 OSStatus _err; 1996 UInt32 container; 1997 Boolean recurse; 1998 UInt32 state; 1999 UInt32 numItems; 2000 #ifndef GetDataBrowserItemCount 2001 PyMac_PRECHECK(GetDataBrowserItemCount); 2002 #endif 2003 if (!PyArg_ParseTuple(_args, "lbl", 2004 &container, 2005 &recurse, 2006 &state)) 2007 return NULL; 2008 _err = GetDataBrowserItemCount(_self->ob_itself, 2009 container, 2010 recurse, 2011 state, 2012 &numItems); 2013 if (_err != noErr) return PyMac_Error(_err); 2014 _res = Py_BuildValue("l", 2015 numItems); 2016 return _res; 2017 } 2018 2019 static PyObject *CtlObj_IsDataBrowserItemSelected(ControlObject *_self, PyObject *_args) 2020 { 2021 PyObject *_res = NULL; 2022 Boolean _rv; 2023 UInt32 item; 2024 #ifndef IsDataBrowserItemSelected 2025 PyMac_PRECHECK(IsDataBrowserItemSelected); 2026 #endif 2027 if (!PyArg_ParseTuple(_args, "l", 2028 &item)) 2029 return NULL; 2030 _rv = IsDataBrowserItemSelected(_self->ob_itself, 2031 item); 2032 _res = Py_BuildValue("b", 2033 _rv); 2034 return _res; 2035 } 2036 2037 static PyObject *CtlObj_GetDataBrowserItemState(ControlObject *_self, PyObject *_args) 2038 { 2039 PyObject *_res = NULL; 2040 OSStatus _err; 2041 UInt32 item; 2042 UInt32 state; 2043 #ifndef GetDataBrowserItemState 2044 PyMac_PRECHECK(GetDataBrowserItemState); 2045 #endif 2046 if (!PyArg_ParseTuple(_args, "l", 2047 &item)) 2048 return NULL; 2049 _err = GetDataBrowserItemState(_self->ob_itself, 2050 item, 2051 &state); 2052 if (_err != noErr) return PyMac_Error(_err); 2053 _res = Py_BuildValue("l", 2054 state); 2055 return _res; 2056 } 2057 2058 static PyObject *CtlObj_RevealDataBrowserItem(ControlObject *_self, PyObject *_args) 2059 { 2060 PyObject *_res = NULL; 2061 OSStatus _err; 2062 UInt32 item; 2063 UInt32 propertyID; 2064 UInt8 options; 2065 #ifndef RevealDataBrowserItem 2066 PyMac_PRECHECK(RevealDataBrowserItem); 2067 #endif 2068 if (!PyArg_ParseTuple(_args, "llb", 2069 &item, 2070 &propertyID, 2071 &options)) 2072 return NULL; 2073 _err = RevealDataBrowserItem(_self->ob_itself, 2074 item, 2075 propertyID, 2076 options); 2077 if (_err != noErr) return PyMac_Error(_err); 2078 Py_INCREF(Py_None); 2079 _res = Py_None; 2080 return _res; 2081 } 2082 2083 static PyObject *CtlObj_SetDataBrowserActiveItems(ControlObject *_self, PyObject *_args) 2084 { 2085 PyObject *_res = NULL; 2086 OSStatus _err; 2087 Boolean active; 2088 #ifndef SetDataBrowserActiveItems 2089 PyMac_PRECHECK(SetDataBrowserActiveItems); 2090 #endif 2091 if (!PyArg_ParseTuple(_args, "b", 2092 &active)) 2093 return NULL; 2094 _err = SetDataBrowserActiveItems(_self->ob_itself, 2095 active); 2096 if (_err != noErr) return PyMac_Error(_err); 2097 Py_INCREF(Py_None); 2098 _res = Py_None; 2099 return _res; 2100 } 2101 2102 static PyObject *CtlObj_GetDataBrowserActiveItems(ControlObject *_self, PyObject *_args) 2103 { 2104 PyObject *_res = NULL; 2105 OSStatus _err; 2106 Boolean active; 2107 #ifndef GetDataBrowserActiveItems 2108 PyMac_PRECHECK(GetDataBrowserActiveItems); 2109 #endif 2110 if (!PyArg_ParseTuple(_args, "")) 2111 return NULL; 2112 _err = GetDataBrowserActiveItems(_self->ob_itself, 2113 &active); 2114 if (_err != noErr) return PyMac_Error(_err); 2115 _res = Py_BuildValue("b", 2116 active); 2117 return _res; 2118 } 2119 2120 static PyObject *CtlObj_SetDataBrowserScrollBarInset(ControlObject *_self, PyObject *_args) 2121 { 2122 PyObject *_res = NULL; 2123 OSStatus _err; 2124 Rect insetRect; 2125 #ifndef SetDataBrowserScrollBarInset 2126 PyMac_PRECHECK(SetDataBrowserScrollBarInset); 2127 #endif 2128 if (!PyArg_ParseTuple(_args, "")) 2129 return NULL; 2130 _err = SetDataBrowserScrollBarInset(_self->ob_itself, 2131 &insetRect); 2132 if (_err != noErr) return PyMac_Error(_err); 2133 _res = Py_BuildValue("O&", 2134 PyMac_BuildRect, &insetRect); 2135 return _res; 2136 } 2137 2138 static PyObject *CtlObj_GetDataBrowserScrollBarInset(ControlObject *_self, PyObject *_args) 2139 { 2140 PyObject *_res = NULL; 2141 OSStatus _err; 2142 Rect insetRect; 2143 #ifndef GetDataBrowserScrollBarInset 2144 PyMac_PRECHECK(GetDataBrowserScrollBarInset); 2145 #endif 2146 if (!PyArg_ParseTuple(_args, "")) 2147 return NULL; 2148 _err = GetDataBrowserScrollBarInset(_self->ob_itself, 2149 &insetRect); 2150 if (_err != noErr) return PyMac_Error(_err); 2151 _res = Py_BuildValue("O&", 2152 PyMac_BuildRect, &insetRect); 2153 return _res; 2154 } 2155 2156 static PyObject *CtlObj_SetDataBrowserTarget(ControlObject *_self, PyObject *_args) 2157 { 2158 PyObject *_res = NULL; 2159 OSStatus _err; 2160 UInt32 target; 2161 #ifndef SetDataBrowserTarget 2162 PyMac_PRECHECK(SetDataBrowserTarget); 2163 #endif 2164 if (!PyArg_ParseTuple(_args, "l", 2165 &target)) 2166 return NULL; 2167 _err = SetDataBrowserTarget(_self->ob_itself, 2168 target); 2169 if (_err != noErr) return PyMac_Error(_err); 2170 Py_INCREF(Py_None); 2171 _res = Py_None; 2172 return _res; 2173 } 2174 2175 static PyObject *CtlObj_GetDataBrowserTarget(ControlObject *_self, PyObject *_args) 2176 { 2177 PyObject *_res = NULL; 2178 OSStatus _err; 2179 UInt32 target; 2180 #ifndef GetDataBrowserTarget 2181 PyMac_PRECHECK(GetDataBrowserTarget); 2182 #endif 2183 if (!PyArg_ParseTuple(_args, "")) 2184 return NULL; 2185 _err = GetDataBrowserTarget(_self->ob_itself, 2186 &target); 2187 if (_err != noErr) return PyMac_Error(_err); 2188 _res = Py_BuildValue("l", 2189 target); 2190 return _res; 2191 } 2192 2193 static PyObject *CtlObj_SetDataBrowserSortOrder(ControlObject *_self, PyObject *_args) 2194 { 2195 PyObject *_res = NULL; 2196 OSStatus _err; 2197 UInt16 order; 2198 #ifndef SetDataBrowserSortOrder 2199 PyMac_PRECHECK(SetDataBrowserSortOrder); 2200 #endif 2201 if (!PyArg_ParseTuple(_args, "H", 2202 &order)) 2203 return NULL; 2204 _err = SetDataBrowserSortOrder(_self->ob_itself, 2205 order); 2206 if (_err != noErr) return PyMac_Error(_err); 2207 Py_INCREF(Py_None); 2208 _res = Py_None; 2209 return _res; 2210 } 2211 2212 static PyObject *CtlObj_GetDataBrowserSortOrder(ControlObject *_self, PyObject *_args) 2213 { 2214 PyObject *_res = NULL; 2215 OSStatus _err; 2216 UInt16 order; 2217 #ifndef GetDataBrowserSortOrder 2218 PyMac_PRECHECK(GetDataBrowserSortOrder); 2219 #endif 2220 if (!PyArg_ParseTuple(_args, "")) 2221 return NULL; 2222 _err = GetDataBrowserSortOrder(_self->ob_itself, 2223 &order); 2224 if (_err != noErr) return PyMac_Error(_err); 2225 _res = Py_BuildValue("H", 2226 order); 2227 return _res; 2228 } 2229 2230 static PyObject *CtlObj_SetDataBrowserScrollPosition(ControlObject *_self, PyObject *_args) 2231 { 2232 PyObject *_res = NULL; 2233 OSStatus _err; 2234 UInt32 top; 2235 UInt32 left; 2236 #ifndef SetDataBrowserScrollPosition 2237 PyMac_PRECHECK(SetDataBrowserScrollPosition); 2238 #endif 2239 if (!PyArg_ParseTuple(_args, "ll", 2240 &top, 2241 &left)) 2242 return NULL; 2243 _err = SetDataBrowserScrollPosition(_self->ob_itself, 2244 top, 2245 left); 2246 if (_err != noErr) return PyMac_Error(_err); 2247 Py_INCREF(Py_None); 2248 _res = Py_None; 2249 return _res; 2250 } 2251 2252 static PyObject *CtlObj_GetDataBrowserScrollPosition(ControlObject *_self, PyObject *_args) 2253 { 2254 PyObject *_res = NULL; 2255 OSStatus _err; 2256 UInt32 top; 2257 UInt32 left; 2258 #ifndef GetDataBrowserScrollPosition 2259 PyMac_PRECHECK(GetDataBrowserScrollPosition); 2260 #endif 2261 if (!PyArg_ParseTuple(_args, "")) 2262 return NULL; 2263 _err = GetDataBrowserScrollPosition(_self->ob_itself, 2264 &top, 2265 &left); 2266 if (_err != noErr) return PyMac_Error(_err); 2267 _res = Py_BuildValue("ll", 2268 top, 2269 left); 2270 return _res; 2271 } 2272 2273 static PyObject *CtlObj_SetDataBrowserHasScrollBars(ControlObject *_self, PyObject *_args) 2274 { 2275 PyObject *_res = NULL; 2276 OSStatus _err; 2277 Boolean horiz; 2278 Boolean vert; 2279 #ifndef SetDataBrowserHasScrollBars 2280 PyMac_PRECHECK(SetDataBrowserHasScrollBars); 2281 #endif 2282 if (!PyArg_ParseTuple(_args, "bb", 2283 &horiz, 2284 &vert)) 2285 return NULL; 2286 _err = SetDataBrowserHasScrollBars(_self->ob_itself, 2287 horiz, 2288 vert); 2289 if (_err != noErr) return PyMac_Error(_err); 2290 Py_INCREF(Py_None); 2291 _res = Py_None; 2292 return _res; 2293 } 2294 2295 static PyObject *CtlObj_GetDataBrowserHasScrollBars(ControlObject *_self, PyObject *_args) 2296 { 2297 PyObject *_res = NULL; 2298 OSStatus _err; 2299 Boolean horiz; 2300 Boolean vert; 2301 #ifndef GetDataBrowserHasScrollBars 2302 PyMac_PRECHECK(GetDataBrowserHasScrollBars); 2303 #endif 2304 if (!PyArg_ParseTuple(_args, "")) 2305 return NULL; 2306 _err = GetDataBrowserHasScrollBars(_self->ob_itself, 2307 &horiz, 2308 &vert); 2309 if (_err != noErr) return PyMac_Error(_err); 2310 _res = Py_BuildValue("bb", 2311 horiz, 2312 vert); 2313 return _res; 2314 } 2315 2316 static PyObject *CtlObj_SetDataBrowserSortProperty(ControlObject *_self, PyObject *_args) 2317 { 2318 PyObject *_res = NULL; 2319 OSStatus _err; 2320 UInt32 property; 2321 #ifndef SetDataBrowserSortProperty 2322 PyMac_PRECHECK(SetDataBrowserSortProperty); 2323 #endif 2324 if (!PyArg_ParseTuple(_args, "l", 2325 &property)) 2326 return NULL; 2327 _err = SetDataBrowserSortProperty(_self->ob_itself, 2328 property); 2329 if (_err != noErr) return PyMac_Error(_err); 2330 Py_INCREF(Py_None); 2331 _res = Py_None; 2332 return _res; 2333 } 2334 2335 static PyObject *CtlObj_GetDataBrowserSortProperty(ControlObject *_self, PyObject *_args) 2336 { 2337 PyObject *_res = NULL; 2338 OSStatus _err; 2339 UInt32 property; 2340 #ifndef GetDataBrowserSortProperty 2341 PyMac_PRECHECK(GetDataBrowserSortProperty); 2342 #endif 2343 if (!PyArg_ParseTuple(_args, "")) 2344 return NULL; 2345 _err = GetDataBrowserSortProperty(_self->ob_itself, 2346 &property); 2347 if (_err != noErr) return PyMac_Error(_err); 2348 _res = Py_BuildValue("l", 2349 property); 2350 return _res; 2351 } 2352 2353 static PyObject *CtlObj_SetDataBrowserSelectionFlags(ControlObject *_self, PyObject *_args) 2354 { 2355 PyObject *_res = NULL; 2356 OSStatus _err; 2357 UInt32 selectionFlags; 2358 #ifndef SetDataBrowserSelectionFlags 2359 PyMac_PRECHECK(SetDataBrowserSelectionFlags); 2360 #endif 2361 if (!PyArg_ParseTuple(_args, "l", 2362 &selectionFlags)) 2363 return NULL; 2364 _err = SetDataBrowserSelectionFlags(_self->ob_itself, 2365 selectionFlags); 2366 if (_err != noErr) return PyMac_Error(_err); 2367 Py_INCREF(Py_None); 2368 _res = Py_None; 2369 return _res; 2370 } 2371 2372 static PyObject *CtlObj_GetDataBrowserSelectionFlags(ControlObject *_self, PyObject *_args) 2373 { 2374 PyObject *_res = NULL; 2375 OSStatus _err; 2376 UInt32 selectionFlags; 2377 #ifndef GetDataBrowserSelectionFlags 2378 PyMac_PRECHECK(GetDataBrowserSelectionFlags); 2379 #endif 2380 if (!PyArg_ParseTuple(_args, "")) 2381 return NULL; 2382 _err = GetDataBrowserSelectionFlags(_self->ob_itself, 2383 &selectionFlags); 2384 if (_err != noErr) return PyMac_Error(_err); 2385 _res = Py_BuildValue("l", 2386 selectionFlags); 2387 return _res; 2388 } 2389 2390 static PyObject *CtlObj_SetDataBrowserPropertyFlags(ControlObject *_self, PyObject *_args) 2391 { 2392 PyObject *_res = NULL; 2393 OSStatus _err; 2394 UInt32 property; 2395 UInt32 flags; 2396 #ifndef SetDataBrowserPropertyFlags 2397 PyMac_PRECHECK(SetDataBrowserPropertyFlags); 2398 #endif 2399 if (!PyArg_ParseTuple(_args, "ll", 2400 &property, 2401 &flags)) 2402 return NULL; 2403 _err = SetDataBrowserPropertyFlags(_self->ob_itself, 2404 property, 2405 flags); 2406 if (_err != noErr) return PyMac_Error(_err); 2407 Py_INCREF(Py_None); 2408 _res = Py_None; 2409 return _res; 2410 } 2411 2412 static PyObject *CtlObj_GetDataBrowserPropertyFlags(ControlObject *_self, PyObject *_args) 2413 { 2414 PyObject *_res = NULL; 2415 OSStatus _err; 2416 UInt32 property; 2417 UInt32 flags; 2418 #ifndef GetDataBrowserPropertyFlags 2419 PyMac_PRECHECK(GetDataBrowserPropertyFlags); 2420 #endif 2421 if (!PyArg_ParseTuple(_args, "l", 2422 &property)) 2423 return NULL; 2424 _err = GetDataBrowserPropertyFlags(_self->ob_itself, 2425 property, 2426 &flags); 2427 if (_err != noErr) return PyMac_Error(_err); 2428 _res = Py_BuildValue("l", 2429 flags); 2430 return _res; 2431 } 2432 2433 static PyObject *CtlObj_SetDataBrowserEditText(ControlObject *_self, PyObject *_args) 2434 { 2435 PyObject *_res = NULL; 2436 OSStatus _err; 2437 CFStringRef text; 2438 #ifndef SetDataBrowserEditText 2439 PyMac_PRECHECK(SetDataBrowserEditText); 2440 #endif 2441 if (!PyArg_ParseTuple(_args, "O&", 2442 CFStringRefObj_Convert, &text)) 2443 return NULL; 2444 _err = SetDataBrowserEditText(_self->ob_itself, 2445 text); 2446 if (_err != noErr) return PyMac_Error(_err); 2447 Py_INCREF(Py_None); 2448 _res = Py_None; 2449 return _res; 2450 } 2451 2452 static PyObject *CtlObj_CopyDataBrowserEditText(ControlObject *_self, PyObject *_args) 2453 { 2454 PyObject *_res = NULL; 2455 OSStatus _err; 2456 CFStringRef text; 2457 #ifndef CopyDataBrowserEditText 2458 PyMac_PRECHECK(CopyDataBrowserEditText); 2459 #endif 2460 if (!PyArg_ParseTuple(_args, "")) 2461 return NULL; 2462 _err = CopyDataBrowserEditText(_self->ob_itself, 2463 &text); 2464 if (_err != noErr) return PyMac_Error(_err); 2465 _res = Py_BuildValue("O&", 2466 CFStringRefObj_New, text); 2467 return _res; 2468 } 2469 2470 static PyObject *CtlObj_GetDataBrowserEditText(ControlObject *_self, PyObject *_args) 2471 { 2472 PyObject *_res = NULL; 2473 OSStatus _err; 2474 CFMutableStringRef text; 2475 #ifndef GetDataBrowserEditText 2476 PyMac_PRECHECK(GetDataBrowserEditText); 2477 #endif 2478 if (!PyArg_ParseTuple(_args, "O&", 2479 CFMutableStringRefObj_Convert, &text)) 2480 return NULL; 2481 _err = GetDataBrowserEditText(_self->ob_itself, 2482 text); 2483 if (_err != noErr) return PyMac_Error(_err); 2484 Py_INCREF(Py_None); 2485 _res = Py_None; 2486 return _res; 2487 } 2488 2489 static PyObject *CtlObj_SetDataBrowserEditItem(ControlObject *_self, PyObject *_args) 2490 { 2491 PyObject *_res = NULL; 2492 OSStatus _err; 2493 UInt32 item; 2494 UInt32 property; 2495 #ifndef SetDataBrowserEditItem 2496 PyMac_PRECHECK(SetDataBrowserEditItem); 2497 #endif 2498 if (!PyArg_ParseTuple(_args, "ll", 2499 &item, 2500 &property)) 2501 return NULL; 2502 _err = SetDataBrowserEditItem(_self->ob_itself, 2503 item, 2504 property); 2505 if (_err != noErr) return PyMac_Error(_err); 2506 Py_INCREF(Py_None); 2507 _res = Py_None; 2508 return _res; 2509 } 2510 2511 static PyObject *CtlObj_GetDataBrowserEditItem(ControlObject *_self, PyObject *_args) 2512 { 2513 PyObject *_res = NULL; 2514 OSStatus _err; 2515 UInt32 item; 2516 UInt32 property; 2517 #ifndef GetDataBrowserEditItem 2518 PyMac_PRECHECK(GetDataBrowserEditItem); 2519 #endif 2520 if (!PyArg_ParseTuple(_args, "")) 2521 return NULL; 2522 _err = GetDataBrowserEditItem(_self->ob_itself, 2523 &item, 2524 &property); 2525 if (_err != noErr) return PyMac_Error(_err); 2526 _res = Py_BuildValue("ll", 2527 item, 2528 property); 2529 return _res; 2530 } 2531 2532 static PyObject *CtlObj_GetDataBrowserItemPartBounds(ControlObject *_self, PyObject *_args) 2533 { 2534 PyObject *_res = NULL; 2535 OSStatus _err; 2536 UInt32 item; 2537 UInt32 property; 2538 OSType part; 2539 Rect bounds; 2540 #ifndef GetDataBrowserItemPartBounds 2541 PyMac_PRECHECK(GetDataBrowserItemPartBounds); 2542 #endif 2543 if (!PyArg_ParseTuple(_args, "llO&", 2544 &item, 2545 &property, 2546 PyMac_GetOSType, &part)) 2547 return NULL; 2548 _err = GetDataBrowserItemPartBounds(_self->ob_itself, 2549 item, 2550 property, 2551 part, 2552 &bounds); 2553 if (_err != noErr) return PyMac_Error(_err); 2554 _res = Py_BuildValue("O&", 2555 PyMac_BuildRect, &bounds); 2556 return _res; 2557 } 2558 2559 static PyObject *CtlObj_RemoveDataBrowserTableViewColumn(ControlObject *_self, PyObject *_args) 2560 { 2561 PyObject *_res = NULL; 2562 OSStatus _err; 2563 UInt32 column; 2564 #ifndef RemoveDataBrowserTableViewColumn 2565 PyMac_PRECHECK(RemoveDataBrowserTableViewColumn); 2566 #endif 2567 if (!PyArg_ParseTuple(_args, "l", 2568 &column)) 2569 return NULL; 2570 _err = RemoveDataBrowserTableViewColumn(_self->ob_itself, 2571 column); 2572 if (_err != noErr) return PyMac_Error(_err); 2573 Py_INCREF(Py_None); 2574 _res = Py_None; 2575 return _res; 2576 } 2577 2578 static PyObject *CtlObj_GetDataBrowserTableViewColumnCount(ControlObject *_self, PyObject *_args) 2579 { 2580 PyObject *_res = NULL; 2581 OSStatus _err; 2582 UInt32 numColumns; 2583 #ifndef GetDataBrowserTableViewColumnCount 2584 PyMac_PRECHECK(GetDataBrowserTableViewColumnCount); 2585 #endif 2586 if (!PyArg_ParseTuple(_args, "")) 2587 return NULL; 2588 _err = GetDataBrowserTableViewColumnCount(_self->ob_itself, 2589 &numColumns); 2590 if (_err != noErr) return PyMac_Error(_err); 2591 _res = Py_BuildValue("l", 2592 numColumns); 2593 return _res; 2594 } 2595 2596 static PyObject *CtlObj_SetDataBrowserTableViewHiliteStyle(ControlObject *_self, PyObject *_args) 2597 { 2598 PyObject *_res = NULL; 2599 OSStatus _err; 2600 UInt32 hiliteStyle; 2601 #ifndef SetDataBrowserTableViewHiliteStyle 2602 PyMac_PRECHECK(SetDataBrowserTableViewHiliteStyle); 2603 #endif 2604 if (!PyArg_ParseTuple(_args, "l", 2605 &hiliteStyle)) 2606 return NULL; 2607 _err = SetDataBrowserTableViewHiliteStyle(_self->ob_itself, 2608 hiliteStyle); 2609 if (_err != noErr) return PyMac_Error(_err); 2610 Py_INCREF(Py_None); 2611 _res = Py_None; 2612 return _res; 2613 } 2614 2615 static PyObject *CtlObj_GetDataBrowserTableViewHiliteStyle(ControlObject *_self, PyObject *_args) 2616 { 2617 PyObject *_res = NULL; 2618 OSStatus _err; 2619 UInt32 hiliteStyle; 2620 #ifndef GetDataBrowserTableViewHiliteStyle 2621 PyMac_PRECHECK(GetDataBrowserTableViewHiliteStyle); 2622 #endif 2623 if (!PyArg_ParseTuple(_args, "")) 2624 return NULL; 2625 _err = GetDataBrowserTableViewHiliteStyle(_self->ob_itself, 2626 &hiliteStyle); 2627 if (_err != noErr) return PyMac_Error(_err); 2628 _res = Py_BuildValue("l", 2629 hiliteStyle); 2630 return _res; 2631 } 2632 2633 static PyObject *CtlObj_SetDataBrowserTableViewRowHeight(ControlObject *_self, PyObject *_args) 2634 { 2635 PyObject *_res = NULL; 2636 OSStatus _err; 2637 UInt16 height; 2638 #ifndef SetDataBrowserTableViewRowHeight 2639 PyMac_PRECHECK(SetDataBrowserTableViewRowHeight); 2640 #endif 2641 if (!PyArg_ParseTuple(_args, "H", 2642 &height)) 2643 return NULL; 2644 _err = SetDataBrowserTableViewRowHeight(_self->ob_itself, 2645 height); 2646 if (_err != noErr) return PyMac_Error(_err); 2647 Py_INCREF(Py_None); 2648 _res = Py_None; 2649 return _res; 2650 } 2651 2652 static PyObject *CtlObj_GetDataBrowserTableViewRowHeight(ControlObject *_self, PyObject *_args) 2653 { 2654 PyObject *_res = NULL; 2655 OSStatus _err; 2656 UInt16 height; 2657 #ifndef GetDataBrowserTableViewRowHeight 2658 PyMac_PRECHECK(GetDataBrowserTableViewRowHeight); 2659 #endif 2660 if (!PyArg_ParseTuple(_args, "")) 2661 return NULL; 2662 _err = GetDataBrowserTableViewRowHeight(_self->ob_itself, 2663 &height); 2664 if (_err != noErr) return PyMac_Error(_err); 2665 _res = Py_BuildValue("H", 2666 height); 2667 return _res; 2668 } 2669 2670 static PyObject *CtlObj_SetDataBrowserTableViewColumnWidth(ControlObject *_self, PyObject *_args) 2671 { 2672 PyObject *_res = NULL; 2673 OSStatus _err; 2674 UInt16 width; 2675 #ifndef SetDataBrowserTableViewColumnWidth 2676 PyMac_PRECHECK(SetDataBrowserTableViewColumnWidth); 2677 #endif 2678 if (!PyArg_ParseTuple(_args, "H", 2679 &width)) 2680 return NULL; 2681 _err = SetDataBrowserTableViewColumnWidth(_self->ob_itself, 2682 width); 2683 if (_err != noErr) return PyMac_Error(_err); 2684 Py_INCREF(Py_None); 2685 _res = Py_None; 2686 return _res; 2687 } 2688 2689 static PyObject *CtlObj_GetDataBrowserTableViewColumnWidth(ControlObject *_self, PyObject *_args) 2690 { 2691 PyObject *_res = NULL; 2692 OSStatus _err; 2693 UInt16 width; 2694 #ifndef GetDataBrowserTableViewColumnWidth 2695 PyMac_PRECHECK(GetDataBrowserTableViewColumnWidth); 2696 #endif 2697 if (!PyArg_ParseTuple(_args, "")) 2698 return NULL; 2699 _err = GetDataBrowserTableViewColumnWidth(_self->ob_itself, 2700 &width); 2701 if (_err != noErr) return PyMac_Error(_err); 2702 _res = Py_BuildValue("H", 2703 width); 2704 return _res; 2705 } 2706 2707 static PyObject *CtlObj_SetDataBrowserTableViewItemRowHeight(ControlObject *_self, PyObject *_args) 2708 { 2709 PyObject *_res = NULL; 2710 OSStatus _err; 2711 UInt32 item; 2712 UInt16 height; 2713 #ifndef SetDataBrowserTableViewItemRowHeight 2714 PyMac_PRECHECK(SetDataBrowserTableViewItemRowHeight); 2715 #endif 2716 if (!PyArg_ParseTuple(_args, "lH", 2717 &item, 2718 &height)) 2719 return NULL; 2720 _err = SetDataBrowserTableViewItemRowHeight(_self->ob_itself, 2721 item, 2722 height); 2723 if (_err != noErr) return PyMac_Error(_err); 2724 Py_INCREF(Py_None); 2725 _res = Py_None; 2726 return _res; 2727 } 2728 2729 static PyObject *CtlObj_GetDataBrowserTableViewItemRowHeight(ControlObject *_self, PyObject *_args) 2730 { 2731 PyObject *_res = NULL; 2732 OSStatus _err; 2733 UInt32 item; 2734 UInt16 height; 2735 #ifndef GetDataBrowserTableViewItemRowHeight 2736 PyMac_PRECHECK(GetDataBrowserTableViewItemRowHeight); 2737 #endif 2738 if (!PyArg_ParseTuple(_args, "l", 2739 &item)) 2740 return NULL; 2741 _err = GetDataBrowserTableViewItemRowHeight(_self->ob_itself, 2742 item, 2743 &height); 2744 if (_err != noErr) return PyMac_Error(_err); 2745 _res = Py_BuildValue("H", 2746 height); 2747 return _res; 2748 } 2749 2750 static PyObject *CtlObj_SetDataBrowserTableViewNamedColumnWidth(ControlObject *_self, PyObject *_args) 2751 { 2752 PyObject *_res = NULL; 2753 OSStatus _err; 2754 UInt32 column; 2755 UInt16 width; 2756 #ifndef SetDataBrowserTableViewNamedColumnWidth 2757 PyMac_PRECHECK(SetDataBrowserTableViewNamedColumnWidth); 2758 #endif 2759 if (!PyArg_ParseTuple(_args, "lH", 2760 &column, 2761 &width)) 2762 return NULL; 2763 _err = SetDataBrowserTableViewNamedColumnWidth(_self->ob_itself, 2764 column, 2765 width); 2766 if (_err != noErr) return PyMac_Error(_err); 2767 Py_INCREF(Py_None); 2768 _res = Py_None; 2769 return _res; 2770 } 2771 2772 static PyObject *CtlObj_GetDataBrowserTableViewNamedColumnWidth(ControlObject *_self, PyObject *_args) 2773 { 2774 PyObject *_res = NULL; 2775 OSStatus _err; 2776 UInt32 column; 2777 UInt16 width; 2778 #ifndef GetDataBrowserTableViewNamedColumnWidth 2779 PyMac_PRECHECK(GetDataBrowserTableViewNamedColumnWidth); 2780 #endif 2781 if (!PyArg_ParseTuple(_args, "l", 2782 &column)) 2783 return NULL; 2784 _err = GetDataBrowserTableViewNamedColumnWidth(_self->ob_itself, 2785 column, 2786 &width); 2787 if (_err != noErr) return PyMac_Error(_err); 2788 _res = Py_BuildValue("H", 2789 width); 2790 return _res; 2791 } 2792 2793 static PyObject *CtlObj_SetDataBrowserTableViewGeometry(ControlObject *_self, PyObject *_args) 2794 { 2795 PyObject *_res = NULL; 2796 OSStatus _err; 2797 Boolean variableWidthColumns; 2798 Boolean variableHeightRows; 2799 #ifndef SetDataBrowserTableViewGeometry 2800 PyMac_PRECHECK(SetDataBrowserTableViewGeometry); 2801 #endif 2802 if (!PyArg_ParseTuple(_args, "bb", 2803 &variableWidthColumns, 2804 &variableHeightRows)) 2805 return NULL; 2806 _err = SetDataBrowserTableViewGeometry(_self->ob_itself, 2807 variableWidthColumns, 2808 variableHeightRows); 2809 if (_err != noErr) return PyMac_Error(_err); 2810 Py_INCREF(Py_None); 2811 _res = Py_None; 2812 return _res; 2813 } 2814 2815 static PyObject *CtlObj_GetDataBrowserTableViewGeometry(ControlObject *_self, PyObject *_args) 2816 { 2817 PyObject *_res = NULL; 2818 OSStatus _err; 2819 Boolean variableWidthColumns; 2820 Boolean variableHeightRows; 2821 #ifndef GetDataBrowserTableViewGeometry 2822 PyMac_PRECHECK(GetDataBrowserTableViewGeometry); 2823 #endif 2824 if (!PyArg_ParseTuple(_args, "")) 2825 return NULL; 2826 _err = GetDataBrowserTableViewGeometry(_self->ob_itself, 2827 &variableWidthColumns, 2828 &variableHeightRows); 2829 if (_err != noErr) return PyMac_Error(_err); 2830 _res = Py_BuildValue("bb", 2831 variableWidthColumns, 2832 variableHeightRows); 2833 return _res; 2834 } 2835 2836 static PyObject *CtlObj_GetDataBrowserTableViewItemID(ControlObject *_self, PyObject *_args) 2837 { 2838 PyObject *_res = NULL; 2839 OSStatus _err; 2840 UInt32 row; 2841 UInt32 item; 2842 #ifndef GetDataBrowserTableViewItemID 2843 PyMac_PRECHECK(GetDataBrowserTableViewItemID); 2844 #endif 2845 if (!PyArg_ParseTuple(_args, "l", 2846 &row)) 2847 return NULL; 2848 _err = GetDataBrowserTableViewItemID(_self->ob_itself, 2849 row, 2850 &item); 2851 if (_err != noErr) return PyMac_Error(_err); 2852 _res = Py_BuildValue("l", 2853 item); 2854 return _res; 2855 } 2856 2857 static PyObject *CtlObj_SetDataBrowserTableViewItemRow(ControlObject *_self, PyObject *_args) 2858 { 2859 PyObject *_res = NULL; 2860 OSStatus _err; 2861 UInt32 item; 2862 UInt32 row; 2863 #ifndef SetDataBrowserTableViewItemRow 2864 PyMac_PRECHECK(SetDataBrowserTableViewItemRow); 2865 #endif 2866 if (!PyArg_ParseTuple(_args, "ll", 2867 &item, 2868 &row)) 2869 return NULL; 2870 _err = SetDataBrowserTableViewItemRow(_self->ob_itself, 2871 item, 2872 row); 2873 if (_err != noErr) return PyMac_Error(_err); 2874 Py_INCREF(Py_None); 2875 _res = Py_None; 2876 return _res; 2877 } 2878 2879 static PyObject *CtlObj_GetDataBrowserTableViewItemRow(ControlObject *_self, PyObject *_args) 2880 { 2881 PyObject *_res = NULL; 2882 OSStatus _err; 2883 UInt32 item; 2884 UInt32 row; 2885 #ifndef GetDataBrowserTableViewItemRow 2886 PyMac_PRECHECK(GetDataBrowserTableViewItemRow); 2887 #endif 2888 if (!PyArg_ParseTuple(_args, "l", 2889 &item)) 2890 return NULL; 2891 _err = GetDataBrowserTableViewItemRow(_self->ob_itself, 2892 item, 2893 &row); 2894 if (_err != noErr) return PyMac_Error(_err); 2895 _res = Py_BuildValue("l", 2896 row); 2897 return _res; 2898 } 2899 2900 static PyObject *CtlObj_SetDataBrowserTableViewColumnPosition(ControlObject *_self, PyObject *_args) 2901 { 2902 PyObject *_res = NULL; 2903 OSStatus _err; 2904 UInt32 column; 2905 UInt32 position; 2906 #ifndef SetDataBrowserTableViewColumnPosition 2907 PyMac_PRECHECK(SetDataBrowserTableViewColumnPosition); 2908 #endif 2909 if (!PyArg_ParseTuple(_args, "ll", 2910 &column, 2911 &position)) 2912 return NULL; 2913 _err = SetDataBrowserTableViewColumnPosition(_self->ob_itself, 2914 column, 2915 position); 2916 if (_err != noErr) return PyMac_Error(_err); 2917 Py_INCREF(Py_None); 2918 _res = Py_None; 2919 return _res; 2920 } 2921 2922 static PyObject *CtlObj_GetDataBrowserTableViewColumnPosition(ControlObject *_self, PyObject *_args) 2923 { 2924 PyObject *_res = NULL; 2925 OSStatus _err; 2926 UInt32 column; 2927 UInt32 position; 2928 #ifndef GetDataBrowserTableViewColumnPosition 2929 PyMac_PRECHECK(GetDataBrowserTableViewColumnPosition); 2930 #endif 2931 if (!PyArg_ParseTuple(_args, "l", 2932 &column)) 2933 return NULL; 2934 _err = GetDataBrowserTableViewColumnPosition(_self->ob_itself, 2935 column, 2936 &position); 2937 if (_err != noErr) return PyMac_Error(_err); 2938 _res = Py_BuildValue("l", 2939 position); 2940 return _res; 2941 } 2942 2943 static PyObject *CtlObj_GetDataBrowserTableViewColumnProperty(ControlObject *_self, PyObject *_args) 2944 { 2945 PyObject *_res = NULL; 2946 OSStatus _err; 2947 UInt32 column; 2948 UInt32 property; 2949 #ifndef GetDataBrowserTableViewColumnProperty 2950 PyMac_PRECHECK(GetDataBrowserTableViewColumnProperty); 2951 #endif 2952 if (!PyArg_ParseTuple(_args, "l", 2953 &column)) 2954 return NULL; 2955 _err = GetDataBrowserTableViewColumnProperty(_self->ob_itself, 2956 column, 2957 &property); 2958 if (_err != noErr) return PyMac_Error(_err); 2959 _res = Py_BuildValue("l", 2960 property); 2961 return _res; 2962 } 2963 2964 static PyObject *CtlObj_AutoSizeDataBrowserListViewColumns(ControlObject *_self, PyObject *_args) 2965 { 2966 PyObject *_res = NULL; 2967 OSStatus _err; 2968 #ifndef AutoSizeDataBrowserListViewColumns 2969 PyMac_PRECHECK(AutoSizeDataBrowserListViewColumns); 2970 #endif 2971 if (!PyArg_ParseTuple(_args, "")) 2972 return NULL; 2973 _err = AutoSizeDataBrowserListViewColumns(_self->ob_itself); 2974 if (_err != noErr) return PyMac_Error(_err); 2975 Py_INCREF(Py_None); 2976 _res = Py_None; 2977 return _res; 2978 } 2979 2980 static PyObject *CtlObj_AddDataBrowserListViewColumn(ControlObject *_self, PyObject *_args) 2981 { 2982 PyObject *_res = NULL; 2983 OSStatus _err; 2984 DataBrowserListViewColumnDesc columnDesc; 2985 UInt32 position; 2986 #ifndef AddDataBrowserListViewColumn 2987 PyMac_PRECHECK(AddDataBrowserListViewColumn); 2988 #endif 2989 if (!PyArg_ParseTuple(_args, "O&l", 2990 DataBrowserListViewColumnDesc_Convert, &columnDesc, 2991 &position)) 2992 return NULL; 2993 _err = AddDataBrowserListViewColumn(_self->ob_itself, 2994 &columnDesc, 2995 position); 2996 if (_err != noErr) return PyMac_Error(_err); 2997 Py_INCREF(Py_None); 2998 _res = Py_None; 2999 return _res; 3000 } 3001 3002 static PyObject *CtlObj_SetDataBrowserListViewHeaderBtnHeight(ControlObject *_self, PyObject *_args) 3003 { 3004 PyObject *_res = NULL; 3005 OSStatus _err; 3006 UInt16 height; 3007 #ifndef SetDataBrowserListViewHeaderBtnHeight 3008 PyMac_PRECHECK(SetDataBrowserListViewHeaderBtnHeight); 3009 #endif 3010 if (!PyArg_ParseTuple(_args, "H", 3011 &height)) 3012 return NULL; 3013 _err = SetDataBrowserListViewHeaderBtnHeight(_self->ob_itself, 3014 height); 3015 if (_err != noErr) return PyMac_Error(_err); 3016 Py_INCREF(Py_None); 3017 _res = Py_None; 3018 return _res; 3019 } 3020 3021 static PyObject *CtlObj_GetDataBrowserListViewHeaderBtnHeight(ControlObject *_self, PyObject *_args) 3022 { 3023 PyObject *_res = NULL; 3024 OSStatus _err; 3025 UInt16 height; 3026 #ifndef GetDataBrowserListViewHeaderBtnHeight 3027 PyMac_PRECHECK(GetDataBrowserListViewHeaderBtnHeight); 3028 #endif 3029 if (!PyArg_ParseTuple(_args, "")) 3030 return NULL; 3031 _err = GetDataBrowserListViewHeaderBtnHeight(_self->ob_itself, 3032 &height); 3033 if (_err != noErr) return PyMac_Error(_err); 3034 _res = Py_BuildValue("H", 3035 height); 3036 return _res; 3037 } 3038 3039 static PyObject *CtlObj_SetDataBrowserListViewUsePlainBackground(ControlObject *_self, PyObject *_args) 3040 { 3041 PyObject *_res = NULL; 3042 OSStatus _err; 3043 Boolean usePlainBackground; 3044 #ifndef SetDataBrowserListViewUsePlainBackground 3045 PyMac_PRECHECK(SetDataBrowserListViewUsePlainBackground); 3046 #endif 3047 if (!PyArg_ParseTuple(_args, "b", 3048 &usePlainBackground)) 3049 return NULL; 3050 _err = SetDataBrowserListViewUsePlainBackground(_self->ob_itself, 3051 usePlainBackground); 3052 if (_err != noErr) return PyMac_Error(_err); 3053 Py_INCREF(Py_None); 3054 _res = Py_None; 3055 return _res; 3056 } 3057 3058 static PyObject *CtlObj_GetDataBrowserListViewUsePlainBackground(ControlObject *_self, PyObject *_args) 3059 { 3060 PyObject *_res = NULL; 3061 OSStatus _err; 3062 Boolean usePlainBackground; 3063 #ifndef GetDataBrowserListViewUsePlainBackground 3064 PyMac_PRECHECK(GetDataBrowserListViewUsePlainBackground); 3065 #endif 3066 if (!PyArg_ParseTuple(_args, "")) 3067 return NULL; 3068 _err = GetDataBrowserListViewUsePlainBackground(_self->ob_itself, 3069 &usePlainBackground); 3070 if (_err != noErr) return PyMac_Error(_err); 3071 _res = Py_BuildValue("b", 3072 usePlainBackground); 3073 return _res; 3074 } 3075 3076 static PyObject *CtlObj_SetDataBrowserListViewDisclosureColumn(ControlObject *_self, PyObject *_args) 3077 { 3078 PyObject *_res = NULL; 3079 OSStatus _err; 3080 UInt32 column; 3081 Boolean expandableRows; 3082 #ifndef SetDataBrowserListViewDisclosureColumn 3083 PyMac_PRECHECK(SetDataBrowserListViewDisclosureColumn); 3084 #endif 3085 if (!PyArg_ParseTuple(_args, "lb", 3086 &column, 3087 &expandableRows)) 3088 return NULL; 3089 _err = SetDataBrowserListViewDisclosureColumn(_self->ob_itself, 3090 column, 3091 expandableRows); 3092 if (_err != noErr) return PyMac_Error(_err); 3093 Py_INCREF(Py_None); 3094 _res = Py_None; 3095 return _res; 3096 } 3097 3098 static PyObject *CtlObj_GetDataBrowserListViewDisclosureColumn(ControlObject *_self, PyObject *_args) 3099 { 3100 PyObject *_res = NULL; 3101 OSStatus _err; 3102 UInt32 column; 3103 Boolean expandableRows; 3104 #ifndef GetDataBrowserListViewDisclosureColumn 3105 PyMac_PRECHECK(GetDataBrowserListViewDisclosureColumn); 3106 #endif 3107 if (!PyArg_ParseTuple(_args, "")) 3108 return NULL; 3109 _err = GetDataBrowserListViewDisclosureColumn(_self->ob_itself, 3110 &column, 3111 &expandableRows); 3112 if (_err != noErr) return PyMac_Error(_err); 3113 _res = Py_BuildValue("lb", 3114 column, 3115 expandableRows); 3116 return _res; 3117 } 3118 3119 static PyObject *CtlObj_GetDataBrowserColumnViewPath(ControlObject *_self, PyObject *_args) 3120 { 3121 PyObject *_res = NULL; 3122 OSStatus _err; 3123 Handle path; 3124 #ifndef GetDataBrowserColumnViewPath 3125 PyMac_PRECHECK(GetDataBrowserColumnViewPath); 3126 #endif 3127 if (!PyArg_ParseTuple(_args, "O&", 3128 ResObj_Convert, &path)) 3129 return NULL; 3130 _err = GetDataBrowserColumnViewPath(_self->ob_itself, 3131 path); 3132 if (_err != noErr) return PyMac_Error(_err); 3133 Py_INCREF(Py_None); 3134 _res = Py_None; 3135 return _res; 3136 } 3137 3138 static PyObject *CtlObj_GetDataBrowserColumnViewPathLength(ControlObject *_self, PyObject *_args) 3139 { 3140 PyObject *_res = NULL; 3141 OSStatus _err; 3142 UInt32 pathLength; 3143 #ifndef GetDataBrowserColumnViewPathLength 3144 PyMac_PRECHECK(GetDataBrowserColumnViewPathLength); 3145 #endif 3146 if (!PyArg_ParseTuple(_args, "")) 3147 return NULL; 3148 _err = GetDataBrowserColumnViewPathLength(_self->ob_itself, 3149 &pathLength); 3150 if (_err != noErr) return PyMac_Error(_err); 3151 _res = Py_BuildValue("l", 3152 pathLength); 3153 return _res; 3154 } 3155 3156 static PyObject *CtlObj_SetDataBrowserColumnViewDisplayType(ControlObject *_self, PyObject *_args) 3157 { 3158 PyObject *_res = NULL; 3159 OSStatus _err; 3160 OSType propertyType; 3161 #ifndef SetDataBrowserColumnViewDisplayType 3162 PyMac_PRECHECK(SetDataBrowserColumnViewDisplayType); 3163 #endif 3164 if (!PyArg_ParseTuple(_args, "O&", 3165 PyMac_GetOSType, &propertyType)) 3166 return NULL; 3167 _err = SetDataBrowserColumnViewDisplayType(_self->ob_itself, 3168 propertyType); 3169 if (_err != noErr) return PyMac_Error(_err); 3170 Py_INCREF(Py_None); 3171 _res = Py_None; 3172 return _res; 3173 } 3174 3175 static PyObject *CtlObj_GetDataBrowserColumnViewDisplayType(ControlObject *_self, PyObject *_args) 3176 { 3177 PyObject *_res = NULL; 3178 OSStatus _err; 3179 OSType propertyType; 3180 #ifndef GetDataBrowserColumnViewDisplayType 3181 PyMac_PRECHECK(GetDataBrowserColumnViewDisplayType); 3182 #endif 3183 if (!PyArg_ParseTuple(_args, "")) 3184 return NULL; 3185 _err = GetDataBrowserColumnViewDisplayType(_self->ob_itself, 3186 &propertyType); 3187 if (_err != noErr) return PyMac_Error(_err); 3188 _res = Py_BuildValue("O&", 3189 PyMac_BuildOSType, propertyType); 3190 return _res; 3191 } 3192 3193 static PyObject *CtlObj_as_Resource(ControlObject *_self, PyObject *_args) 3194 { 3195 PyObject *_res = NULL; 3196 Handle _rv; 3197 #ifndef as_Resource 3198 PyMac_PRECHECK(as_Resource); 3199 #endif 3200 if (!PyArg_ParseTuple(_args, "")) 3201 return NULL; 3202 _rv = as_Resource(_self->ob_itself); 3203 _res = Py_BuildValue("O&", 3204 ResObj_New, _rv); 3205 return _res; 3206 } 3207 3208 static PyObject *CtlObj_GetControlRect(ControlObject *_self, PyObject *_args) 3209 { 3210 PyObject *_res = NULL; 3211 Rect rect; 3212 #ifndef GetControlRect 3213 PyMac_PRECHECK(GetControlRect); 3214 #endif 3215 if (!PyArg_ParseTuple(_args, "")) 3216 return NULL; 3217 GetControlRect(_self->ob_itself, 3218 &rect); 3219 _res = Py_BuildValue("O&", 3220 PyMac_BuildRect, &rect); 3221 return _res; 3222 } 3223 3224 static PyObject *CtlObj_DisposeControl(ControlObject *_self, PyObject *_args) 3225 { 3226 PyObject *_res = NULL; 3227 3228 if (!PyArg_ParseTuple(_args, "")) 3229 return NULL; 3230 if ( _self->ob_itself ) { 3231 SetControlReference(_self->ob_itself, (long)0); /* Make it forget about us */ 3232 DisposeControl(_self->ob_itself); 3233 _self->ob_itself = NULL; 3234 } 3235 Py_INCREF(Py_None); 3236 _res = Py_None; 3237 return _res; 3238 3239 } 3240 3241 static PyObject *CtlObj_TrackControl(ControlObject *_self, PyObject *_args) 3242 { 3243 PyObject *_res = NULL; 3244 3245 ControlPartCode _rv; 3246 Point startPoint; 3247 ControlActionUPP upp = 0; 3248 PyObject *callback = 0; 3249 3250 if (!PyArg_ParseTuple(_args, "O&|O", 3251 PyMac_GetPoint, &startPoint, &callback)) 3252 return NULL; 3253 if (callback && callback != Py_None) { 3254 if (PyInt_Check(callback) && PyInt_AS_LONG(callback) == -1) 3255 upp = (ControlActionUPP)-1; 3256 else { 3257 settrackfunc(callback); 3258 upp = mytracker_upp; 3259 } 3260 } 3261 _rv = TrackControl(_self->ob_itself, 3262 startPoint, 3263 upp); 3264 clrtrackfunc(); 3265 _res = Py_BuildValue("h", 3266 _rv); 3267 return _res; 3268 3269 } 3270 3271 static PyObject *CtlObj_HandleControlClick(ControlObject *_self, PyObject *_args) 3272 { 3273 PyObject *_res = NULL; 3274 3275 ControlPartCode _rv; 3276 Point startPoint; 3277 SInt16 modifiers; 3278 ControlActionUPP upp = 0; 3279 PyObject *callback = 0; 3280 3281 if (!PyArg_ParseTuple(_args, "O&h|O", 3282 PyMac_GetPoint, &startPoint, 3283 &modifiers, 3284 &callback)) 3285 return NULL; 3286 if (callback && callback != Py_None) { 3287 if (PyInt_Check(callback) && PyInt_AS_LONG(callback) == -1) 3288 upp = (ControlActionUPP)-1; 3289 else { 3290 settrackfunc(callback); 3291 upp = mytracker_upp; 3292 } 3293 } 3294 _rv = HandleControlClick(_self->ob_itself, 3295 startPoint, 3296 modifiers, 3297 upp); 3298 clrtrackfunc(); 3299 _res = Py_BuildValue("h", 3300 _rv); 3301 return _res; 3302 3303 } 3304 3305 static PyObject *CtlObj_SetControlData(ControlObject *_self, PyObject *_args) 3306 { 3307 PyObject *_res = NULL; 3308 3309 OSErr _err; 3310 ControlPartCode inPart; 3311 ResType inTagName; 3312 Size bufferSize; 3313 Ptr buffer; 3314 3315 if (!PyArg_ParseTuple(_args, "hO&s#", 3316 &inPart, 3317 PyMac_GetOSType, &inTagName, 3318 &buffer, &bufferSize)) 3319 return NULL; 3320 3321 _err = SetControlData(_self->ob_itself, 3322 inPart, 3323 inTagName, 3324 bufferSize, 3325 buffer); 3326 3327 if (_err != noErr) 3328 return PyMac_Error(_err); 3329 _res = Py_None; 3330 return _res; 3331 3332 } 3333 3334 static PyObject *CtlObj_GetControlData(ControlObject *_self, PyObject *_args) 3335 { 3336 PyObject *_res = NULL; 3337 3338 OSErr _err; 3339 ControlPartCode inPart; 3340 ResType inTagName; 3341 Size bufferSize; 3342 Ptr buffer; 3343 Size outSize; 3344 3345 if (!PyArg_ParseTuple(_args, "hO&", 3346 &inPart, 3347 PyMac_GetOSType, &inTagName)) 3348 return NULL; 3349 3350 /* allocate a buffer for the data */ 3351 _err = GetControlDataSize(_self->ob_itself, 3352 inPart, 3353 inTagName, 3354 &bufferSize); 3355 if (_err != noErr) 3356 return PyMac_Error(_err); 3357 buffer = PyMem_NEW(char, bufferSize); 3358 if (buffer == NULL) 3359 return PyErr_NoMemory(); 3360 3361 _err = GetControlData(_self->ob_itself, 3362 inPart, 3363 inTagName, 3364 bufferSize, 3365 buffer, 3366 &outSize); 3367 3368 if (_err != noErr) { 3369 PyMem_DEL(buffer); 3370 return PyMac_Error(_err); 3371 } 3372 _res = Py_BuildValue("s#", buffer, outSize); 3373 PyMem_DEL(buffer); 3374 return _res; 3375 3376 } 3377 3378 static PyObject *CtlObj_SetControlData_Handle(ControlObject *_self, PyObject *_args) 3379 { 3380 PyObject *_res = NULL; 3381 3382 OSErr _err; 3383 ControlPartCode inPart; 3384 ResType inTagName; 3385 Handle buffer; 3386 3387 if (!PyArg_ParseTuple(_args, "hO&O&", 3388 &inPart, 3389 PyMac_GetOSType, &inTagName, 3390 OptResObj_Convert, &buffer)) 3391 return NULL; 3392 3393 _err = SetControlData(_self->ob_itself, 3394 inPart, 3395 inTagName, 3396 sizeof(buffer), 3397 (Ptr)&buffer); 3398 3399 if (_err != noErr) 3400 return PyMac_Error(_err); 3401 _res = Py_None; 3402 return _res; 3403 3404 } 3405 3406 static PyObject *CtlObj_GetControlData_Handle(ControlObject *_self, PyObject *_args) 3407 { 3408 PyObject *_res = NULL; 3409 3410 OSErr _err; 3411 ControlPartCode inPart; 3412 ResType inTagName; 3413 Size bufferSize; 3414 Handle hdl; 3415 3416 if (!PyArg_ParseTuple(_args, "hO&", 3417 &inPart, 3418 PyMac_GetOSType, &inTagName)) 3419 return NULL; 3420 3421 /* Check it is handle-sized */ 3422 _err = GetControlDataSize(_self->ob_itself, 3423 inPart, 3424 inTagName, 3425 &bufferSize); 3426 if (_err != noErr) 3427 return PyMac_Error(_err); 3428 if (bufferSize != sizeof(Handle)) { 3429 PyErr_SetString(Ctl_Error, "GetControlDataSize() != sizeof(Handle)"); 3430 return NULL; 3431 } 3432 3433 _err = GetControlData(_self->ob_itself, 3434 inPart, 3435 inTagName, 3436 sizeof(Handle), 3437 (Ptr)&hdl, 3438 &bufferSize); 3439 3440 if (_err != noErr) { 3441 return PyMac_Error(_err); 3442 } 3443 _res = Py_BuildValue("O&", OptResObj_New, hdl); 3444 return _res; 3445 3446 } 3447 3448 static PyObject *CtlObj_SetControlData_Callback(ControlObject *_self, PyObject *_args) 3449 { 3450 PyObject *_res = NULL; 3451 3452 OSErr _err; 3453 ControlPartCode inPart; 3454 ResType inTagName; 3455 PyObject *callback; 3456 UniversalProcPtr c_callback; 3457 3458 if (!PyArg_ParseTuple(_args, "hO&O", 3459 &inPart, 3460 PyMac_GetOSType, &inTagName, 3461 &callback)) 3462 return NULL; 3463 3464 if ( setcallback((PyObject *)_self, inTagName, callback, &c_callback) < 0 ) 3465 return NULL; 3466 _err = SetControlData(_self->ob_itself, 3467 inPart, 3468 inTagName, 3469 sizeof(c_callback), 3470 (Ptr)&c_callback); 3471 3472 if (_err != noErr) 3473 return PyMac_Error(_err); 3474 _res = Py_None; 3475 return _res; 3476 3477 } 3478 3479 static PyMethodDef CtlObj_methods[] = { 3480 {"HiliteControl", (PyCFunction)CtlObj_HiliteControl, 1, 3481 PyDoc_STR("(ControlPartCode hiliteState) -> None")}, 3482 {"ShowControl", (PyCFunction)CtlObj_ShowControl, 1, 3483 PyDoc_STR("() -> None")}, 3484 {"HideControl", (PyCFunction)CtlObj_HideControl, 1, 3485 PyDoc_STR("() -> None")}, 3486 {"IsControlActive", (PyCFunction)CtlObj_IsControlActive, 1, 3487 PyDoc_STR("() -> (Boolean _rv)")}, 3488 {"IsControlVisible", (PyCFunction)CtlObj_IsControlVisible, 1, 3489 PyDoc_STR("() -> (Boolean _rv)")}, 3490 {"ActivateControl", (PyCFunction)CtlObj_ActivateControl, 1, 3491 PyDoc_STR("() -> None")}, 3492 {"DeactivateControl", (PyCFunction)CtlObj_DeactivateControl, 1, 3493 PyDoc_STR("() -> None")}, 3494 {"SetControlVisibility", (PyCFunction)CtlObj_SetControlVisibility, 1, 3495 PyDoc_STR("(Boolean inIsVisible, Boolean inDoDraw) -> None")}, 3496 {"IsControlEnabled", (PyCFunction)CtlObj_IsControlEnabled, 1, 3497 PyDoc_STR("() -> (Boolean _rv)")}, 3498 {"EnableControl", (PyCFunction)CtlObj_EnableControl, 1, 3499 PyDoc_STR("() -> None")}, 3500 {"DisableControl", (PyCFunction)CtlObj_DisableControl, 1, 3501 PyDoc_STR("() -> None")}, 3502 {"Draw1Control", (PyCFunction)CtlObj_Draw1Control, 1, 3503 PyDoc_STR("() -> None")}, 3504 {"GetBestControlRect", (PyCFunction)CtlObj_GetBestControlRect, 1, 3505 PyDoc_STR("() -> (Rect outRect, SInt16 outBaseLineOffset)")}, 3506 {"SetControlFontStyle", (PyCFunction)CtlObj_SetControlFontStyle, 1, 3507 PyDoc_STR("(ControlFontStyleRec inStyle) -> None")}, 3508 {"DrawControlInCurrentPort", (PyCFunction)CtlObj_DrawControlInCurrentPort, 1, 3509 PyDoc_STR("() -> None")}, 3510 {"SetUpControlBackground", (PyCFunction)CtlObj_SetUpControlBackground, 1, 3511 PyDoc_STR("(SInt16 inDepth, Boolean inIsColorDevice) -> None")}, 3512 {"SetUpControlTextColor", (PyCFunction)CtlObj_SetUpControlTextColor, 1, 3513 PyDoc_STR("(SInt16 inDepth, Boolean inIsColorDevice) -> None")}, 3514 {"DragControl", (PyCFunction)CtlObj_DragControl, 1, 3515 PyDoc_STR("(Point startPoint, Rect limitRect, Rect slopRect, DragConstraint axis) -> None")}, 3516 {"TestControl", (PyCFunction)CtlObj_TestControl, 1, 3517 PyDoc_STR("(Point testPoint) -> (ControlPartCode _rv)")}, 3518 {"HandleControlContextualMenuClick", (PyCFunction)CtlObj_HandleControlContextualMenuClick, 1, 3519 PyDoc_STR("(Point inWhere) -> (Boolean menuDisplayed)")}, 3520 {"GetControlClickActivation", (PyCFunction)CtlObj_GetControlClickActivation, 1, 3521 PyDoc_STR("(Point inWhere, EventModifiers inModifiers) -> (ClickActivationResult outResult)")}, 3522 {"HandleControlKey", (PyCFunction)CtlObj_HandleControlKey, 1, 3523 PyDoc_STR("(SInt16 inKeyCode, SInt16 inCharCode, EventModifiers inModifiers) -> (ControlPartCode _rv)")}, 3524 {"HandleControlSetCursor", (PyCFunction)CtlObj_HandleControlSetCursor, 1, 3525 PyDoc_STR("(Point localPoint, EventModifiers modifiers) -> (Boolean cursorWasSet)")}, 3526 {"MoveControl", (PyCFunction)CtlObj_MoveControl, 1, 3527 PyDoc_STR("(SInt16 h, SInt16 v) -> None")}, 3528 {"SizeControl", (PyCFunction)CtlObj_SizeControl, 1, 3529 PyDoc_STR("(SInt16 w, SInt16 h) -> None")}, 3530 {"SetControlTitle", (PyCFunction)CtlObj_SetControlTitle, 1, 3531 PyDoc_STR("(Str255 title) -> None")}, 3532 {"GetControlTitle", (PyCFunction)CtlObj_GetControlTitle, 1, 3533 PyDoc_STR("() -> (Str255 title)")}, 3534 {"SetControlTitleWithCFString", (PyCFunction)CtlObj_SetControlTitleWithCFString, 1, 3535 PyDoc_STR("(CFStringRef inString) -> None")}, 3536 {"CopyControlTitleAsCFString", (PyCFunction)CtlObj_CopyControlTitleAsCFString, 1, 3537 PyDoc_STR("() -> (CFStringRef outString)")}, 3538 {"GetControlValue", (PyCFunction)CtlObj_GetControlValue, 1, 3539 PyDoc_STR("() -> (SInt16 _rv)")}, 3540 {"SetControlValue", (PyCFunction)CtlObj_SetControlValue, 1, 3541 PyDoc_STR("(SInt16 newValue) -> None")}, 3542 {"GetControlMinimum", (PyCFunction)CtlObj_GetControlMinimum, 1, 3543 PyDoc_STR("() -> (SInt16 _rv)")}, 3544 {"SetControlMinimum", (PyCFunction)CtlObj_SetControlMinimum, 1, 3545 PyDoc_STR("(SInt16 newMinimum) -> None")}, 3546 {"GetControlMaximum", (PyCFunction)CtlObj_GetControlMaximum, 1, 3547 PyDoc_STR("() -> (SInt16 _rv)")}, 3548 {"SetControlMaximum", (PyCFunction)CtlObj_SetControlMaximum, 1, 3549 PyDoc_STR("(SInt16 newMaximum) -> None")}, 3550 {"GetControlViewSize", (PyCFunction)CtlObj_GetControlViewSize, 1, 3551 PyDoc_STR("() -> (SInt32 _rv)")}, 3552 {"SetControlViewSize", (PyCFunction)CtlObj_SetControlViewSize, 1, 3553 PyDoc_STR("(SInt32 newViewSize) -> None")}, 3554 {"GetControl32BitValue", (PyCFunction)CtlObj_GetControl32BitValue, 1, 3555 PyDoc_STR("() -> (SInt32 _rv)")}, 3556 {"SetControl32BitValue", (PyCFunction)CtlObj_SetControl32BitValue, 1, 3557 PyDoc_STR("(SInt32 newValue) -> None")}, 3558 {"GetControl32BitMaximum", (PyCFunction)CtlObj_GetControl32BitMaximum, 1, 3559 PyDoc_STR("() -> (SInt32 _rv)")}, 3560 {"SetControl32BitMaximum", (PyCFunction)CtlObj_SetControl32BitMaximum, 1, 3561 PyDoc_STR("(SInt32 newMaximum) -> None")}, 3562 {"GetControl32BitMinimum", (PyCFunction)CtlObj_GetControl32BitMinimum, 1, 3563 PyDoc_STR("() -> (SInt32 _rv)")}, 3564 {"SetControl32BitMinimum", (PyCFunction)CtlObj_SetControl32BitMinimum, 1, 3565 PyDoc_STR("(SInt32 newMinimum) -> None")}, 3566 {"IsValidControlHandle", (PyCFunction)CtlObj_IsValidControlHandle, 1, 3567 PyDoc_STR("() -> (Boolean _rv)")}, 3568 {"SetControlID", (PyCFunction)CtlObj_SetControlID, 1, 3569 PyDoc_STR("(ControlID inID) -> None")}, 3570 {"GetControlID", (PyCFunction)CtlObj_GetControlID, 1, 3571 PyDoc_STR("() -> (ControlID outID)")}, 3572 {"SetControlCommandID", (PyCFunction)CtlObj_SetControlCommandID, 1, 3573 PyDoc_STR("(UInt32 inCommandID) -> None")}, 3574 {"GetControlCommandID", (PyCFunction)CtlObj_GetControlCommandID, 1, 3575 PyDoc_STR("() -> (UInt32 outCommandID)")}, 3576 {"RemoveControlProperty", (PyCFunction)CtlObj_RemoveControlProperty, 1, 3577 PyDoc_STR("(OSType propertyCreator, OSType propertyTag) -> None")}, 3578 {"GetControlPropertyAttributes", (PyCFunction)CtlObj_GetControlPropertyAttributes, 1, 3579 PyDoc_STR("(OSType propertyCreator, OSType propertyTag) -> (UInt32 attributes)")}, 3580 {"ChangeControlPropertyAttributes", (PyCFunction)CtlObj_ChangeControlPropertyAttributes, 1, 3581 PyDoc_STR("(OSType propertyCreator, OSType propertyTag, UInt32 attributesToSet, UInt32 attributesToClear) -> None")}, 3582 {"GetControlRegion", (PyCFunction)CtlObj_GetControlRegion, 1, 3583 PyDoc_STR("(ControlPartCode inPart, RgnHandle outRegion) -> None")}, 3584 {"GetControlVariant", (PyCFunction)CtlObj_GetControlVariant, 1, 3585 PyDoc_STR("() -> (ControlVariant _rv)")}, 3586 {"SetControlAction", (PyCFunction)CtlObj_SetControlAction, 1, 3587 PyDoc_STR("(PyObject* actionProc) -> None")}, 3588 {"SetControlReference", (PyCFunction)CtlObj_SetControlReference, 1, 3589 PyDoc_STR("(SInt32 data) -> None")}, 3590 {"GetControlReference", (PyCFunction)CtlObj_GetControlReference, 1, 3591 PyDoc_STR("() -> (SInt32 _rv)")}, 3592 {"EmbedControl", (PyCFunction)CtlObj_EmbedControl, 1, 3593 PyDoc_STR("(ControlHandle inContainer) -> None")}, 3594 {"AutoEmbedControl", (PyCFunction)CtlObj_AutoEmbedControl, 1, 3595 PyDoc_STR("(WindowPtr inWindow) -> None")}, 3596 {"GetSuperControl", (PyCFunction)CtlObj_GetSuperControl, 1, 3597 PyDoc_STR("() -> (ControlHandle outParent)")}, 3598 {"CountSubControls", (PyCFunction)CtlObj_CountSubControls, 1, 3599 PyDoc_STR("() -> (UInt16 outNumChildren)")}, 3600 {"GetIndexedSubControl", (PyCFunction)CtlObj_GetIndexedSubControl, 1, 3601 PyDoc_STR("(UInt16 inIndex) -> (ControlHandle outSubControl)")}, 3602 {"SetControlSupervisor", (PyCFunction)CtlObj_SetControlSupervisor, 1, 3603 PyDoc_STR("(ControlHandle inBoss) -> None")}, 3604 {"GetControlFeatures", (PyCFunction)CtlObj_GetControlFeatures, 1, 3605 PyDoc_STR("() -> (UInt32 outFeatures)")}, 3606 {"GetControlDataSize", (PyCFunction)CtlObj_GetControlDataSize, 1, 3607 PyDoc_STR("(ControlPartCode inPart, ResType inTagName) -> (Size outMaxSize)")}, 3608 {"HandleControlDragTracking", (PyCFunction)CtlObj_HandleControlDragTracking, 1, 3609 PyDoc_STR("(DragTrackingMessage inMessage, DragReference inDrag) -> (Boolean outLikesDrag)")}, 3610 {"HandleControlDragReceive", (PyCFunction)CtlObj_HandleControlDragReceive, 1, 3611 PyDoc_STR("(DragReference inDrag) -> None")}, 3612 {"SetControlDragTrackingEnabled", (PyCFunction)CtlObj_SetControlDragTrackingEnabled, 1, 3613 PyDoc_STR("(Boolean inTracks) -> None")}, 3614 {"IsControlDragTrackingEnabled", (PyCFunction)CtlObj_IsControlDragTrackingEnabled, 1, 3615 PyDoc_STR("() -> (Boolean outTracks)")}, 3616 {"GetControlBounds", (PyCFunction)CtlObj_GetControlBounds, 1, 3617 PyDoc_STR("() -> (Rect bounds)")}, 3618 {"IsControlHilited", (PyCFunction)CtlObj_IsControlHilited, 1, 3619 PyDoc_STR("() -> (Boolean _rv)")}, 3620 {"GetControlHilite", (PyCFunction)CtlObj_GetControlHilite, 1, 3621 PyDoc_STR("() -> (UInt16 _rv)")}, 3622 {"GetControlOwner", (PyCFunction)CtlObj_GetControlOwner, 1, 3623 PyDoc_STR("() -> (WindowPtr _rv)")}, 3624 {"GetControlDataHandle", (PyCFunction)CtlObj_GetControlDataHandle, 1, 3625 PyDoc_STR("() -> (Handle _rv)")}, 3626 {"GetControlPopupMenuHandle", (PyCFunction)CtlObj_GetControlPopupMenuHandle, 1, 3627 PyDoc_STR("() -> (MenuHandle _rv)")}, 3628 {"GetControlPopupMenuID", (PyCFunction)CtlObj_GetControlPopupMenuID, 1, 3629 PyDoc_STR("() -> (short _rv)")}, 3630 {"SetControlDataHandle", (PyCFunction)CtlObj_SetControlDataHandle, 1, 3631 PyDoc_STR("(Handle dataHandle) -> None")}, 3632 {"SetControlBounds", (PyCFunction)CtlObj_SetControlBounds, 1, 3633 PyDoc_STR("(Rect bounds) -> None")}, 3634 {"SetControlPopupMenuHandle", (PyCFunction)CtlObj_SetControlPopupMenuHandle, 1, 3635 PyDoc_STR("(MenuHandle popupMenu) -> None")}, 3636 {"SetControlPopupMenuID", (PyCFunction)CtlObj_SetControlPopupMenuID, 1, 3637 PyDoc_STR("(short menuID) -> None")}, 3638 {"GetBevelButtonMenuValue", (PyCFunction)CtlObj_GetBevelButtonMenuValue, 1, 3639 PyDoc_STR("() -> (SInt16 outValue)")}, 3640 {"SetBevelButtonMenuValue", (PyCFunction)CtlObj_SetBevelButtonMenuValue, 1, 3641 PyDoc_STR("(SInt16 inValue) -> None")}, 3642 {"GetBevelButtonMenuHandle", (PyCFunction)CtlObj_GetBevelButtonMenuHandle, 1, 3643 PyDoc_STR("() -> (MenuHandle outHandle)")}, 3644 {"SetBevelButtonContentInfo", (PyCFunction)CtlObj_SetBevelButtonContentInfo, 1, 3645 PyDoc_STR("(ControlButtonContentInfo inContent) -> None")}, 3646 {"SetBevelButtonTransform", (PyCFunction)CtlObj_SetBevelButtonTransform, 1, 3647 PyDoc_STR("(IconTransformType transform) -> None")}, 3648 {"SetDisclosureTriangleLastValue", (PyCFunction)CtlObj_SetDisclosureTriangleLastValue, 1, 3649 PyDoc_STR("(SInt16 inValue) -> None")}, 3650 {"GetTabContentRect", (PyCFunction)CtlObj_GetTabContentRect, 1, 3651 PyDoc_STR("() -> (Rect outContentRect)")}, 3652 {"SetTabEnabled", (PyCFunction)CtlObj_SetTabEnabled, 1, 3653 PyDoc_STR("(SInt16 inTabToHilite, Boolean inEnabled) -> None")}, 3654 {"SetImageWellContentInfo", (PyCFunction)CtlObj_SetImageWellContentInfo, 1, 3655 PyDoc_STR("(ControlButtonContentInfo inContent) -> None")}, 3656 {"SetImageWellTransform", (PyCFunction)CtlObj_SetImageWellTransform, 1, 3657 PyDoc_STR("(IconTransformType inTransform) -> None")}, 3658 {"GetDataBrowserViewStyle", (PyCFunction)CtlObj_GetDataBrowserViewStyle, 1, 3659 PyDoc_STR("() -> (OSType style)")}, 3660 {"SetDataBrowserViewStyle", (PyCFunction)CtlObj_SetDataBrowserViewStyle, 1, 3661 PyDoc_STR("(OSType style) -> None")}, 3662 {"EnableDataBrowserEditCommand", (PyCFunction)CtlObj_EnableDataBrowserEditCommand, 1, 3663 PyDoc_STR("(UInt32 command) -> (Boolean _rv)")}, 3664 {"ExecuteDataBrowserEditCommand", (PyCFunction)CtlObj_ExecuteDataBrowserEditCommand, 1, 3665 PyDoc_STR("(UInt32 command) -> None")}, 3666 {"GetDataBrowserSelectionAnchor", (PyCFunction)CtlObj_GetDataBrowserSelectionAnchor, 1, 3667 PyDoc_STR("() -> (UInt32 first, UInt32 last)")}, 3668 {"MoveDataBrowserSelectionAnchor", (PyCFunction)CtlObj_MoveDataBrowserSelectionAnchor, 1, 3669 PyDoc_STR("(UInt32 direction, Boolean extendSelection) -> None")}, 3670 {"OpenDataBrowserContainer", (PyCFunction)CtlObj_OpenDataBrowserContainer, 1, 3671 PyDoc_STR("(UInt32 container) -> None")}, 3672 {"CloseDataBrowserContainer", (PyCFunction)CtlObj_CloseDataBrowserContainer, 1, 3673 PyDoc_STR("(UInt32 container) -> None")}, 3674 {"SortDataBrowserContainer", (PyCFunction)CtlObj_SortDataBrowserContainer, 1, 3675 PyDoc_STR("(UInt32 container, Boolean sortChildren) -> None")}, 3676 {"GetDataBrowserItems", (PyCFunction)CtlObj_GetDataBrowserItems, 1, 3677 PyDoc_STR("(UInt32 container, Boolean recurse, UInt32 state, Handle items) -> None")}, 3678 {"GetDataBrowserItemCount", (PyCFunction)CtlObj_GetDataBrowserItemCount, 1, 3679 PyDoc_STR("(UInt32 container, Boolean recurse, UInt32 state) -> (UInt32 numItems)")}, 3680 {"IsDataBrowserItemSelected", (PyCFunction)CtlObj_IsDataBrowserItemSelected, 1, 3681 PyDoc_STR("(UInt32 item) -> (Boolean _rv)")}, 3682 {"GetDataBrowserItemState", (PyCFunction)CtlObj_GetDataBrowserItemState, 1, 3683 PyDoc_STR("(UInt32 item) -> (UInt32 state)")}, 3684 {"RevealDataBrowserItem", (PyCFunction)CtlObj_RevealDataBrowserItem, 1, 3685 PyDoc_STR("(UInt32 item, UInt32 propertyID, UInt8 options) -> None")}, 3686 {"SetDataBrowserActiveItems", (PyCFunction)CtlObj_SetDataBrowserActiveItems, 1, 3687 PyDoc_STR("(Boolean active) -> None")}, 3688 {"GetDataBrowserActiveItems", (PyCFunction)CtlObj_GetDataBrowserActiveItems, 1, 3689 PyDoc_STR("() -> (Boolean active)")}, 3690 {"SetDataBrowserScrollBarInset", (PyCFunction)CtlObj_SetDataBrowserScrollBarInset, 1, 3691 PyDoc_STR("() -> (Rect insetRect)")}, 3692 {"GetDataBrowserScrollBarInset", (PyCFunction)CtlObj_GetDataBrowserScrollBarInset, 1, 3693 PyDoc_STR("() -> (Rect insetRect)")}, 3694 {"SetDataBrowserTarget", (PyCFunction)CtlObj_SetDataBrowserTarget, 1, 3695 PyDoc_STR("(UInt32 target) -> None")}, 3696 {"GetDataBrowserTarget", (PyCFunction)CtlObj_GetDataBrowserTarget, 1, 3697 PyDoc_STR("() -> (UInt32 target)")}, 3698 {"SetDataBrowserSortOrder", (PyCFunction)CtlObj_SetDataBrowserSortOrder, 1, 3699 PyDoc_STR("(UInt16 order) -> None")}, 3700 {"GetDataBrowserSortOrder", (PyCFunction)CtlObj_GetDataBrowserSortOrder, 1, 3701 PyDoc_STR("() -> (UInt16 order)")}, 3702 {"SetDataBrowserScrollPosition", (PyCFunction)CtlObj_SetDataBrowserScrollPosition, 1, 3703 PyDoc_STR("(UInt32 top, UInt32 left) -> None")}, 3704 {"GetDataBrowserScrollPosition", (PyCFunction)CtlObj_GetDataBrowserScrollPosition, 1, 3705 PyDoc_STR("() -> (UInt32 top, UInt32 left)")}, 3706 {"SetDataBrowserHasScrollBars", (PyCFunction)CtlObj_SetDataBrowserHasScrollBars, 1, 3707 PyDoc_STR("(Boolean horiz, Boolean vert) -> None")}, 3708 {"GetDataBrowserHasScrollBars", (PyCFunction)CtlObj_GetDataBrowserHasScrollBars, 1, 3709 PyDoc_STR("() -> (Boolean horiz, Boolean vert)")}, 3710 {"SetDataBrowserSortProperty", (PyCFunction)CtlObj_SetDataBrowserSortProperty, 1, 3711 PyDoc_STR("(UInt32 property) -> None")}, 3712 {"GetDataBrowserSortProperty", (PyCFunction)CtlObj_GetDataBrowserSortProperty, 1, 3713 PyDoc_STR("() -> (UInt32 property)")}, 3714 {"SetDataBrowserSelectionFlags", (PyCFunction)CtlObj_SetDataBrowserSelectionFlags, 1, 3715 PyDoc_STR("(UInt32 selectionFlags) -> None")}, 3716 {"GetDataBrowserSelectionFlags", (PyCFunction)CtlObj_GetDataBrowserSelectionFlags, 1, 3717 PyDoc_STR("() -> (UInt32 selectionFlags)")}, 3718 {"SetDataBrowserPropertyFlags", (PyCFunction)CtlObj_SetDataBrowserPropertyFlags, 1, 3719 PyDoc_STR("(UInt32 property, UInt32 flags) -> None")}, 3720 {"GetDataBrowserPropertyFlags", (PyCFunction)CtlObj_GetDataBrowserPropertyFlags, 1, 3721 PyDoc_STR("(UInt32 property) -> (UInt32 flags)")}, 3722 {"SetDataBrowserEditText", (PyCFunction)CtlObj_SetDataBrowserEditText, 1, 3723 PyDoc_STR("(CFStringRef text) -> None")}, 3724 {"CopyDataBrowserEditText", (PyCFunction)CtlObj_CopyDataBrowserEditText, 1, 3725 PyDoc_STR("() -> (CFStringRef text)")}, 3726 {"GetDataBrowserEditText", (PyCFunction)CtlObj_GetDataBrowserEditText, 1, 3727 PyDoc_STR("(CFMutableStringRef text) -> None")}, 3728 {"SetDataBrowserEditItem", (PyCFunction)CtlObj_SetDataBrowserEditItem, 1, 3729 PyDoc_STR("(UInt32 item, UInt32 property) -> None")}, 3730 {"GetDataBrowserEditItem", (PyCFunction)CtlObj_GetDataBrowserEditItem, 1, 3731 PyDoc_STR("() -> (UInt32 item, UInt32 property)")}, 3732 {"GetDataBrowserItemPartBounds", (PyCFunction)CtlObj_GetDataBrowserItemPartBounds, 1, 3733 PyDoc_STR("(UInt32 item, UInt32 property, OSType part) -> (Rect bounds)")}, 3734 {"RemoveDataBrowserTableViewColumn", (PyCFunction)CtlObj_RemoveDataBrowserTableViewColumn, 1, 3735 PyDoc_STR("(UInt32 column) -> None")}, 3736 {"GetDataBrowserTableViewColumnCount", (PyCFunction)CtlObj_GetDataBrowserTableViewColumnCount, 1, 3737 PyDoc_STR("() -> (UInt32 numColumns)")}, 3738 {"SetDataBrowserTableViewHiliteStyle", (PyCFunction)CtlObj_SetDataBrowserTableViewHiliteStyle, 1, 3739 PyDoc_STR("(UInt32 hiliteStyle) -> None")}, 3740 {"GetDataBrowserTableViewHiliteStyle", (PyCFunction)CtlObj_GetDataBrowserTableViewHiliteStyle, 1, 3741 PyDoc_STR("() -> (UInt32 hiliteStyle)")}, 3742 {"SetDataBrowserTableViewRowHeight", (PyCFunction)CtlObj_SetDataBrowserTableViewRowHeight, 1, 3743 PyDoc_STR("(UInt16 height) -> None")}, 3744 {"GetDataBrowserTableViewRowHeight", (PyCFunction)CtlObj_GetDataBrowserTableViewRowHeight, 1, 3745 PyDoc_STR("() -> (UInt16 height)")}, 3746 {"SetDataBrowserTableViewColumnWidth", (PyCFunction)CtlObj_SetDataBrowserTableViewColumnWidth, 1, 3747 PyDoc_STR("(UInt16 width) -> None")}, 3748 {"GetDataBrowserTableViewColumnWidth", (PyCFunction)CtlObj_GetDataBrowserTableViewColumnWidth, 1, 3749 PyDoc_STR("() -> (UInt16 width)")}, 3750 {"SetDataBrowserTableViewItemRowHeight", (PyCFunction)CtlObj_SetDataBrowserTableViewItemRowHeight, 1, 3751 PyDoc_STR("(UInt32 item, UInt16 height) -> None")}, 3752 {"GetDataBrowserTableViewItemRowHeight", (PyCFunction)CtlObj_GetDataBrowserTableViewItemRowHeight, 1, 3753 PyDoc_STR("(UInt32 item) -> (UInt16 height)")}, 3754 {"SetDataBrowserTableViewNamedColumnWidth", (PyCFunction)CtlObj_SetDataBrowserTableViewNamedColumnWidth, 1, 3755 PyDoc_STR("(UInt32 column, UInt16 width) -> None")}, 3756 {"GetDataBrowserTableViewNamedColumnWidth", (PyCFunction)CtlObj_GetDataBrowserTableViewNamedColumnWidth, 1, 3757 PyDoc_STR("(UInt32 column) -> (UInt16 width)")}, 3758 {"SetDataBrowserTableViewGeometry", (PyCFunction)CtlObj_SetDataBrowserTableViewGeometry, 1, 3759 PyDoc_STR("(Boolean variableWidthColumns, Boolean variableHeightRows) -> None")}, 3760 {"GetDataBrowserTableViewGeometry", (PyCFunction)CtlObj_GetDataBrowserTableViewGeometry, 1, 3761 PyDoc_STR("() -> (Boolean variableWidthColumns, Boolean variableHeightRows)")}, 3762 {"GetDataBrowserTableViewItemID", (PyCFunction)CtlObj_GetDataBrowserTableViewItemID, 1, 3763 PyDoc_STR("(UInt32 row) -> (UInt32 item)")}, 3764 {"SetDataBrowserTableViewItemRow", (PyCFunction)CtlObj_SetDataBrowserTableViewItemRow, 1, 3765 PyDoc_STR("(UInt32 item, UInt32 row) -> None")}, 3766 {"GetDataBrowserTableViewItemRow", (PyCFunction)CtlObj_GetDataBrowserTableViewItemRow, 1, 3767 PyDoc_STR("(UInt32 item) -> (UInt32 row)")}, 3768 {"SetDataBrowserTableViewColumnPosition", (PyCFunction)CtlObj_SetDataBrowserTableViewColumnPosition, 1, 3769 PyDoc_STR("(UInt32 column, UInt32 position) -> None")}, 3770 {"GetDataBrowserTableViewColumnPosition", (PyCFunction)CtlObj_GetDataBrowserTableViewColumnPosition, 1, 3771 PyDoc_STR("(UInt32 column) -> (UInt32 position)")}, 3772 {"GetDataBrowserTableViewColumnProperty", (PyCFunction)CtlObj_GetDataBrowserTableViewColumnProperty, 1, 3773 PyDoc_STR("(UInt32 column) -> (UInt32 property)")}, 3774 {"AutoSizeDataBrowserListViewColumns", (PyCFunction)CtlObj_AutoSizeDataBrowserListViewColumns, 1, 3775 PyDoc_STR("() -> None")}, 3776 {"AddDataBrowserListViewColumn", (PyCFunction)CtlObj_AddDataBrowserListViewColumn, 1, 3777 PyDoc_STR("(DataBrowserListViewColumnDesc columnDesc, UInt32 position) -> None")}, 3778 {"SetDataBrowserListViewHeaderBtnHeight", (PyCFunction)CtlObj_SetDataBrowserListViewHeaderBtnHeight, 1, 3779 PyDoc_STR("(UInt16 height) -> None")}, 3780 {"GetDataBrowserListViewHeaderBtnHeight", (PyCFunction)CtlObj_GetDataBrowserListViewHeaderBtnHeight, 1, 3781 PyDoc_STR("() -> (UInt16 height)")}, 3782 {"SetDataBrowserListViewUsePlainBackground", (PyCFunction)CtlObj_SetDataBrowserListViewUsePlainBackground, 1, 3783 PyDoc_STR("(Boolean usePlainBackground) -> None")}, 3784 {"GetDataBrowserListViewUsePlainBackground", (PyCFunction)CtlObj_GetDataBrowserListViewUsePlainBackground, 1, 3785 PyDoc_STR("() -> (Boolean usePlainBackground)")}, 3786 {"SetDataBrowserListViewDisclosureColumn", (PyCFunction)CtlObj_SetDataBrowserListViewDisclosureColumn, 1, 3787 PyDoc_STR("(UInt32 column, Boolean expandableRows) -> None")}, 3788 {"GetDataBrowserListViewDisclosureColumn", (PyCFunction)CtlObj_GetDataBrowserListViewDisclosureColumn, 1, 3789 PyDoc_STR("() -> (UInt32 column, Boolean expandableRows)")}, 3790 {"GetDataBrowserColumnViewPath", (PyCFunction)CtlObj_GetDataBrowserColumnViewPath, 1, 3791 PyDoc_STR("(Handle path) -> None")}, 3792 {"GetDataBrowserColumnViewPathLength", (PyCFunction)CtlObj_GetDataBrowserColumnViewPathLength, 1, 3793 PyDoc_STR("() -> (UInt32 pathLength)")}, 3794 {"SetDataBrowserColumnViewDisplayType", (PyCFunction)CtlObj_SetDataBrowserColumnViewDisplayType, 1, 3795 PyDoc_STR("(OSType propertyType) -> None")}, 3796 {"GetDataBrowserColumnViewDisplayType", (PyCFunction)CtlObj_GetDataBrowserColumnViewDisplayType, 1, 3797 PyDoc_STR("() -> (OSType propertyType)")}, 3798 {"as_Resource", (PyCFunction)CtlObj_as_Resource, 1, 3799 PyDoc_STR("() -> (Handle _rv)")}, 3800 {"GetControlRect", (PyCFunction)CtlObj_GetControlRect, 1, 3801 PyDoc_STR("() -> (Rect rect)")}, 3802 {"DisposeControl", (PyCFunction)CtlObj_DisposeControl, 1, 3803 PyDoc_STR("() -> None")}, 3804 {"TrackControl", (PyCFunction)CtlObj_TrackControl, 1, 3805 PyDoc_STR("(Point startPoint [,trackercallback]) -> (ControlPartCode _rv)")}, 3806 {"HandleControlClick", (PyCFunction)CtlObj_HandleControlClick, 1, 3807 PyDoc_STR("(Point startPoint, Integer modifiers, [,trackercallback]) -> (ControlPartCode _rv)")}, 3808 {"SetControlData", (PyCFunction)CtlObj_SetControlData, 1, 3809 PyDoc_STR("(stuff) -> None")}, 3810 {"GetControlData", (PyCFunction)CtlObj_GetControlData, 1, 3811 PyDoc_STR("(part, type) -> String")}, 3812 {"SetControlData_Handle", (PyCFunction)CtlObj_SetControlData_Handle, 1, 3813 PyDoc_STR("(ResObj) -> None")}, 3814 {"GetControlData_Handle", (PyCFunction)CtlObj_GetControlData_Handle, 1, 3815 PyDoc_STR("(part, type) -> ResObj")}, 3816 {"SetControlData_Callback", (PyCFunction)CtlObj_SetControlData_Callback, 1, 3817 PyDoc_STR("(callbackfunc) -> None")}, 3818 {NULL, NULL, 0} 3819 }; 3820 3821 #define CtlObj_getsetlist NULL 3822 3823 3824 static int CtlObj_compare(ControlObject *self, ControlObject *other) 3825 { 3826 unsigned long v, w; 3827 3828 if (!CtlObj_Check((PyObject *)other)) 3829 { 3830 v=(unsigned long)self; 3831 w=(unsigned long)other; 3832 } 3833 else 3834 { 3835 v=(unsigned long)self->ob_itself; 3836 w=(unsigned long)other->ob_itself; 3837 } 3838 if( v < w ) return -1; 3839 if( v > w ) return 1; 3840 return 0; 3841 } 3842 3843 #define CtlObj_repr NULL 3844 3845 static long CtlObj_hash(ControlObject *self) 3846 { 3847 return (long)self->ob_itself; 3848 } 3849 #define CtlObj_tp_init 0 3850 3851 #define CtlObj_tp_alloc PyType_GenericAlloc 3852 3853 static PyObject *CtlObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) 3854 { 3855 PyObject *_self; 3856 ControlHandle itself; 3857 char *kw[] = {"itself", 0}; 3858 3859 if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CtlObj_Convert, &itself)) return NULL; 3860 if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL; 3861 ((ControlObject *)_self)->ob_itself = itself; 3862 return _self; 3863 } 3864 3865 #define CtlObj_tp_free PyObject_Del 3866 3867 3868 PyTypeObject Control_Type = { 3869 PyObject_HEAD_INIT(NULL) 3870 0, /*ob_size*/ 3871 "_Ctl.Control", /*tp_name*/ 3872 sizeof(ControlObject), /*tp_basicsize*/ 3873 0, /*tp_itemsize*/ 3874 /* methods */ 3875 (destructor) CtlObj_dealloc, /*tp_dealloc*/ 3876 0, /*tp_print*/ 3877 (getattrfunc)0, /*tp_getattr*/ 3878 (setattrfunc)0, /*tp_setattr*/ 3879 (cmpfunc) CtlObj_compare, /*tp_compare*/ 3880 (reprfunc) CtlObj_repr, /*tp_repr*/ 3881 (PyNumberMethods *)0, /* tp_as_number */ 3882 (PySequenceMethods *)0, /* tp_as_sequence */ 3883 (PyMappingMethods *)0, /* tp_as_mapping */ 3884 (hashfunc) CtlObj_hash, /*tp_hash*/ 3885 0, /*tp_call*/ 3886 0, /*tp_str*/ 3887 PyObject_GenericGetAttr, /*tp_getattro*/ 3888 PyObject_GenericSetAttr, /*tp_setattro */ 3889 0, /*tp_as_buffer*/ 3890 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ 3891 0, /*tp_doc*/ 3892 0, /*tp_traverse*/ 3893 0, /*tp_clear*/ 3894 0, /*tp_richcompare*/ 3895 0, /*tp_weaklistoffset*/ 3896 0, /*tp_iter*/ 3897 0, /*tp_iternext*/ 3898 CtlObj_methods, /* tp_methods */ 3899 0, /*tp_members*/ 3900 CtlObj_getsetlist, /*tp_getset*/ 3901 0, /*tp_base*/ 3902 0, /*tp_dict*/ 3903 0, /*tp_descr_get*/ 3904 0, /*tp_descr_set*/ 3905 0, /*tp_dictoffset*/ 3906 CtlObj_tp_init, /* tp_init */ 3907 CtlObj_tp_alloc, /* tp_alloc */ 3908 CtlObj_tp_new, /* tp_new */ 3909 CtlObj_tp_free, /* tp_free */ 3910 }; 3911 3912 /* -------------------- End object type Control --------------------- */ 3913 3914 3915 static PyObject *Ctl_NewControl(PyObject *_self, PyObject *_args) 3916 { 3917 PyObject *_res = NULL; 3918 ControlHandle _rv; 3919 WindowPtr owningWindow; 3920 Rect boundsRect; 3921 Str255 controlTitle; 3922 Boolean initiallyVisible; 3923 SInt16 initialValue; 3924 SInt16 minimumValue; 3925 SInt16 maximumValue; 3926 SInt16 procID; 3927 SInt32 controlReference; 3928 #ifndef NewControl 3929 PyMac_PRECHECK(NewControl); 3930 #endif 3931 if (!PyArg_ParseTuple(_args, "O&O&O&bhhhhl", 3932 WinObj_Convert, &owningWindow, 3933 PyMac_GetRect, &boundsRect, 3934 PyMac_GetStr255, controlTitle, 3935 &initiallyVisible, 3936 &initialValue, 3937 &minimumValue, 3938 &maximumValue, 3939 &procID, 3940 &controlReference)) 3941 return NULL; 3942 _rv = NewControl(owningWindow, 3943 &boundsRect, 3944 controlTitle, 3945 initiallyVisible, 3946 initialValue, 3947 minimumValue, 3948 maximumValue, 3949 procID, 3950 controlReference); 3951 _res = Py_BuildValue("O&", 3952 CtlObj_New, _rv); 3953 return _res; 3954 } 3955 3956 static PyObject *Ctl_GetNewControl(PyObject *_self, PyObject *_args) 3957 { 3958 PyObject *_res = NULL; 3959 ControlHandle _rv; 3960 SInt16 resourceID; 3961 WindowPtr owningWindow; 3962 #ifndef GetNewControl 3963 PyMac_PRECHECK(GetNewControl); 3964 #endif 3965 if (!PyArg_ParseTuple(_args, "hO&", 3966 &resourceID, 3967 WinObj_Convert, &owningWindow)) 3968 return NULL; 3969 _rv = GetNewControl(resourceID, 3970 owningWindow); 3971 _res = Py_BuildValue("O&", 3972 CtlObj_New, _rv); 3973 return _res; 3974 } 3975 3976 static PyObject *Ctl_DrawControls(PyObject *_self, PyObject *_args) 3977 { 3978 PyObject *_res = NULL; 3979 WindowPtr theWindow; 3980 #ifndef DrawControls 3981 PyMac_PRECHECK(DrawControls); 3982 #endif 3983 if (!PyArg_ParseTuple(_args, "O&", 3984 WinObj_Convert, &theWindow)) 3985 return NULL; 3986 DrawControls(theWindow); 3987 Py_INCREF(Py_None); 3988 _res = Py_None; 3989 return _res; 3990 } 3991 3992 static PyObject *Ctl_UpdateControls(PyObject *_self, PyObject *_args) 3993 { 3994 PyObject *_res = NULL; 3995 WindowPtr inWindow; 3996 RgnHandle inUpdateRegion; 3997 #ifndef UpdateControls 3998 PyMac_PRECHECK(UpdateControls); 3999 #endif 4000 if (!PyArg_ParseTuple(_args, "O&O&", 4001 WinObj_Convert, &inWindow, 4002 ResObj_Convert, &inUpdateRegion)) 4003 return NULL; 4004 UpdateControls(inWindow, 4005 inUpdateRegion); 4006 Py_INCREF(Py_None); 4007 _res = Py_None; 4008 return _res; 4009 } 4010 4011 static PyObject *Ctl_FindControl(PyObject *_self, PyObject *_args) 4012 { 4013 PyObject *_res = NULL; 4014 ControlPartCode _rv; 4015 Point testPoint; 4016 WindowPtr theWindow; 4017 ControlHandle theControl; 4018 #ifndef FindControl 4019 PyMac_PRECHECK(FindControl); 4020 #endif 4021 if (!PyArg_ParseTuple(_args, "O&O&", 4022 PyMac_GetPoint, &testPoint, 4023 WinObj_Convert, &theWindow)) 4024 return NULL; 4025 _rv = FindControl(testPoint, 4026 theWindow, 4027 &theControl); 4028 _res = Py_BuildValue("hO&", 4029 _rv, 4030 CtlObj_WhichControl, theControl); 4031 return _res; 4032 } 4033 4034 static PyObject *Ctl_IdleControls(PyObject *_self, PyObject *_args) 4035 { 4036 PyObject *_res = NULL; 4037 WindowPtr inWindow; 4038 #ifndef IdleControls 4039 PyMac_PRECHECK(IdleControls); 4040 #endif 4041 if (!PyArg_ParseTuple(_args, "O&", 4042 WinObj_Convert, &inWindow)) 4043 return NULL; 4044 IdleControls(inWindow); 4045 Py_INCREF(Py_None); 4046 _res = Py_None; 4047 return _res; 4048 } 4049 4050 static PyObject *Ctl_GetControlByID(PyObject *_self, PyObject *_args) 4051 { 4052 PyObject *_res = NULL; 4053 OSStatus _err; 4054 WindowPtr inWindow; 4055 ControlID inID; 4056 ControlHandle outControl; 4057 #ifndef GetControlByID 4058 PyMac_PRECHECK(GetControlByID); 4059 #endif 4060 if (!PyArg_ParseTuple(_args, "O&O&", 4061 WinObj_Convert, &inWindow, 4062 PyControlID_Convert, &inID)) 4063 return NULL; 4064 _err = GetControlByID(inWindow, 4065 &inID, 4066 &outControl); 4067 if (_err != noErr) return PyMac_Error(_err); 4068 _res = Py_BuildValue("O&", 4069 CtlObj_WhichControl, outControl); 4070 return _res; 4071 } 4072 4073 static PyObject *Ctl_DumpControlHierarchy(PyObject *_self, PyObject *_args) 4074 { 4075 PyObject *_res = NULL; 4076 OSErr _err; 4077 WindowPtr inWindow; 4078 FSSpec inDumpFile; 4079 #ifndef DumpControlHierarchy 4080 PyMac_PRECHECK(DumpControlHierarchy); 4081 #endif 4082 if (!PyArg_ParseTuple(_args, "O&O&", 4083 WinObj_Convert, &inWindow, 4084 PyMac_GetFSSpec, &inDumpFile)) 4085 return NULL; 4086 _err = DumpControlHierarchy(inWindow, 4087 &inDumpFile); 4088 if (_err != noErr) return PyMac_Error(_err); 4089 Py_INCREF(Py_None); 4090 _res = Py_None; 4091 return _res; 4092 } 4093 4094 static PyObject *Ctl_CreateRootControl(PyObject *_self, PyObject *_args) 4095 { 4096 PyObject *_res = NULL; 4097 OSErr _err; 4098 WindowPtr inWindow; 4099 ControlHandle outControl; 4100 #ifndef CreateRootControl 4101 PyMac_PRECHECK(CreateRootControl); 4102 #endif 4103 if (!PyArg_ParseTuple(_args, "O&", 4104 WinObj_Convert, &inWindow)) 4105 return NULL; 4106 _err = CreateRootControl(inWindow, 4107 &outControl); 4108 if (_err != noErr) return PyMac_Error(_err); 4109 _res = Py_BuildValue("O&", 4110 CtlObj_New, outControl); 4111 return _res; 4112 } 4113 4114 static PyObject *Ctl_GetRootControl(PyObject *_self, PyObject *_args) 4115 { 4116 PyObject *_res = NULL; 4117 OSErr _err; 4118 WindowPtr inWindow; 4119 ControlHandle outControl; 4120 #ifndef GetRootControl 4121 PyMac_PRECHECK(GetRootControl); 4122 #endif 4123 if (!PyArg_ParseTuple(_args, "O&", 4124 WinObj_Convert, &inWindow)) 4125 return NULL; 4126 _err = GetRootControl(inWindow, 4127 &outControl); 4128 if (_err != noErr) return PyMac_Error(_err); 4129 _res = Py_BuildValue("O&", 4130 CtlObj_WhichControl, outControl); 4131 return _res; 4132 } 4133 4134 static PyObject *Ctl_GetKeyboardFocus(PyObject *_self, PyObject *_args) 4135 { 4136 PyObject *_res = NULL; 4137 OSErr _err; 4138 WindowPtr inWindow; 4139 ControlHandle outControl; 4140 #ifndef GetKeyboardFocus 4141 PyMac_PRECHECK(GetKeyboardFocus); 4142 #endif 4143 if (!PyArg_ParseTuple(_args, "O&", 4144 WinObj_Convert, &inWindow)) 4145 return NULL; 4146 _err = GetKeyboardFocus(inWindow, 4147 &outControl); 4148 if (_err != noErr) return PyMac_Error(_err); 4149 _res = Py_BuildValue("O&", 4150 CtlObj_WhichControl, outControl); 4151 return _res; 4152 } 4153 4154 static PyObject *Ctl_SetKeyboardFocus(PyObject *_self, PyObject *_args) 4155 { 4156 PyObject *_res = NULL; 4157 OSErr _err; 4158 WindowPtr inWindow; 4159 ControlHandle inControl; 4160 ControlFocusPart inPart; 4161 #ifndef SetKeyboardFocus 4162 PyMac_PRECHECK(SetKeyboardFocus); 4163 #endif 4164 if (!PyArg_ParseTuple(_args, "O&O&h", 4165 WinObj_Convert, &inWindow, 4166 CtlObj_Convert, &inControl, 4167 &inPart)) 4168 return NULL; 4169 _err = SetKeyboardFocus(inWindow, 4170 inControl, 4171 inPart); 4172 if (_err != noErr) return PyMac_Error(_err); 4173 Py_INCREF(Py_None); 4174 _res = Py_None; 4175 return _res; 4176 } 4177 4178 static PyObject *Ctl_AdvanceKeyboardFocus(PyObject *_self, PyObject *_args) 4179 { 4180 PyObject *_res = NULL; 4181 OSErr _err; 4182 WindowPtr inWindow; 4183 #ifndef AdvanceKeyboardFocus 4184 PyMac_PRECHECK(AdvanceKeyboardFocus); 4185 #endif 4186 if (!PyArg_ParseTuple(_args, "O&", 4187 WinObj_Convert, &inWindow)) 4188 return NULL; 4189 _err = AdvanceKeyboardFocus(inWindow); 4190 if (_err != noErr) return PyMac_Error(_err); 4191 Py_INCREF(Py_None); 4192 _res = Py_None; 4193 return _res; 4194 } 4195 4196 static PyObject *Ctl_ReverseKeyboardFocus(PyObject *_self, PyObject *_args) 4197 { 4198 PyObject *_res = NULL; 4199 OSErr _err; 4200 WindowPtr inWindow; 4201 #ifndef ReverseKeyboardFocus 4202 PyMac_PRECHECK(ReverseKeyboardFocus); 4203 #endif 4204 if (!PyArg_ParseTuple(_args, "O&", 4205 WinObj_Convert, &inWindow)) 4206 return NULL; 4207 _err = ReverseKeyboardFocus(inWindow); 4208 if (_err != noErr) return PyMac_Error(_err); 4209 Py_INCREF(Py_None); 4210 _res = Py_None; 4211 return _res; 4212 } 4213 4214 static PyObject *Ctl_ClearKeyboardFocus(PyObject *_self, PyObject *_args) 4215 { 4216 PyObject *_res = NULL; 4217 OSErr _err; 4218 WindowPtr inWindow; 4219 #ifndef ClearKeyboardFocus 4220 PyMac_PRECHECK(ClearKeyboardFocus); 4221 #endif 4222 if (!PyArg_ParseTuple(_args, "O&", 4223 WinObj_Convert, &inWindow)) 4224 return NULL; 4225 _err = ClearKeyboardFocus(inWindow); 4226 if (_err != noErr) return PyMac_Error(_err); 4227 Py_INCREF(Py_None); 4228 _res = Py_None; 4229 return _res; 4230 } 4231 4232 static PyObject *Ctl_SetAutomaticControlDragTrackingEnabledForWindow(PyObject *_self, PyObject *_args) 4233 { 4234 PyObject *_res = NULL; 4235 OSStatus _err; 4236 WindowPtr inWindow; 4237 Boolean inTracks; 4238 #ifndef SetAutomaticControlDragTrackingEnabledForWindow 4239 PyMac_PRECHECK(SetAutomaticControlDragTrackingEnabledForWindow); 4240 #endif 4241 if (!PyArg_ParseTuple(_args, "O&b", 4242 WinObj_Convert, &inWindow, 4243 &inTracks)) 4244 return NULL; 4245 _err = SetAutomaticControlDragTrackingEnabledForWindow(inWindow, 4246 inTracks); 4247 if (_err != noErr) return PyMac_Error(_err); 4248 Py_INCREF(Py_None); 4249 _res = Py_None; 4250 return _res; 4251 } 4252 4253 static PyObject *Ctl_IsAutomaticControlDragTrackingEnabledForWindow(PyObject *_self, PyObject *_args) 4254 { 4255 PyObject *_res = NULL; 4256 OSStatus _err; 4257 WindowPtr inWindow; 4258 Boolean outTracks; 4259 #ifndef IsAutomaticControlDragTrackingEnabledForWindow 4260 PyMac_PRECHECK(IsAutomaticControlDragTrackingEnabledForWindow); 4261 #endif 4262 if (!PyArg_ParseTuple(_args, "O&", 4263 WinObj_Convert, &inWindow)) 4264 return NULL; 4265 _err = IsAutomaticControlDragTrackingEnabledForWindow(inWindow, 4266 &outTracks); 4267 if (_err != noErr) return PyMac_Error(_err); 4268 _res = Py_BuildValue("b", 4269 outTracks); 4270 return _res; 4271 } 4272 4273 static PyObject *Ctl_CreateBevelButtonControl(PyObject *_self, PyObject *_args) 4274 { 4275 PyObject *_res = NULL; 4276 OSStatus _err; 4277 WindowPtr window; 4278 Rect boundsRect; 4279 CFStringRef title; 4280 UInt16 thickness; 4281 UInt16 behavior; 4282 ControlButtonContentInfo info; 4283 SInt16 menuID; 4284 UInt16 menuBehavior; 4285 UInt16 menuPlacement; 4286 ControlHandle outControl; 4287 #ifndef CreateBevelButtonControl 4288 PyMac_PRECHECK(CreateBevelButtonControl); 4289 #endif 4290 if (!PyArg_ParseTuple(_args, "O&O&O&HHO&hHH", 4291 WinObj_Convert, &window, 4292 PyMac_GetRect, &boundsRect, 4293 CFStringRefObj_Convert, &title, 4294 &thickness, 4295 &behavior, 4296 ControlButtonContentInfo_Convert, &info, 4297 &menuID, 4298 &menuBehavior, 4299 &menuPlacement)) 4300 return NULL; 4301 _err = CreateBevelButtonControl(window, 4302 &boundsRect, 4303 title, 4304 thickness, 4305 behavior, 4306 &info, 4307 menuID, 4308 menuBehavior, 4309 menuPlacement, 4310 &outControl); 4311 if (_err != noErr) return PyMac_Error(_err); 4312 _res = Py_BuildValue("O&", 4313 CtlObj_New, outControl); 4314 return _res; 4315 } 4316 4317 static PyObject *Ctl_CreateSliderControl(PyObject *_self, PyObject *_args) 4318 { 4319 PyObject *_res = NULL; 4320 OSStatus _err; 4321 WindowPtr window; 4322 Rect boundsRect; 4323 SInt32 value; 4324 SInt32 minimum; 4325 SInt32 maximum; 4326 UInt16 orientation; 4327 UInt16 numTickMarks; 4328 Boolean liveTracking; 4329 PyObject* liveTrackingProc; 4330 UniversalProcPtr c_callback; 4331 ControlHandle outControl; 4332 #ifndef CreateSliderControl 4333 PyMac_PRECHECK(CreateSliderControl); 4334 #endif 4335 if (!PyArg_ParseTuple(_args, "O&O&lllHHbO", 4336 WinObj_Convert, &window, 4337 PyMac_GetRect, &boundsRect, 4338 &value, 4339 &minimum, 4340 &maximum, 4341 &orientation, 4342 &numTickMarks, 4343 &liveTracking, 4344 &liveTrackingProc)) 4345 return NULL; 4346 _err = CreateSliderControl(window, 4347 &boundsRect, 4348 value, 4349 minimum, 4350 maximum, 4351 orientation, 4352 numTickMarks, 4353 liveTracking, 4354 myactionproc_upp, 4355 &outControl); 4356 if (_err != noErr) return PyMac_Error(_err); 4357 _res = Py_BuildValue("O&", 4358 CtlObj_New, outControl); 4359 setcallback(_res, kMyControlActionProcTag, liveTrackingProc, &c_callback); 4360 return _res; 4361 } 4362 4363 static PyObject *Ctl_CreateDisclosureTriangleControl(PyObject *_self, PyObject *_args) 4364 { 4365 PyObject *_res = NULL; 4366 OSStatus _err; 4367 WindowPtr inWindow; 4368 Rect inBoundsRect; 4369 UInt16 inOrientation; 4370 CFStringRef inTitle; 4371 SInt32 inInitialValue; 4372 Boolean inDrawTitle; 4373 Boolean inAutoToggles; 4374 ControlHandle outControl; 4375 #ifndef CreateDisclosureTriangleControl 4376 PyMac_PRECHECK(CreateDisclosureTriangleControl); 4377 #endif 4378 if (!PyArg_ParseTuple(_args, "O&O&HO&lbb", 4379 WinObj_Convert, &inWindow, 4380 PyMac_GetRect, &inBoundsRect, 4381 &inOrientation, 4382 CFStringRefObj_Convert, &inTitle, 4383 &inInitialValue, 4384 &inDrawTitle, 4385 &inAutoToggles)) 4386 return NULL; 4387 _err = CreateDisclosureTriangleControl(inWindow, 4388 &inBoundsRect, 4389 inOrientation, 4390 inTitle, 4391 inInitialValue, 4392 inDrawTitle, 4393 inAutoToggles, 4394 &outControl); 4395 if (_err != noErr) return PyMac_Error(_err); 4396 _res = Py_BuildValue("O&", 4397 CtlObj_New, outControl); 4398 return _res; 4399 } 4400 4401 static PyObject *Ctl_CreateProgressBarControl(PyObject *_self, PyObject *_args) 4402 { 4403 PyObject *_res = NULL; 4404 OSStatus _err; 4405 WindowPtr window; 4406 Rect boundsRect; 4407 SInt32 value; 4408 SInt32 minimum; 4409 SInt32 maximum; 4410 Boolean indeterminate; 4411 ControlHandle outControl; 4412 #ifndef CreateProgressBarControl 4413 PyMac_PRECHECK(CreateProgressBarControl); 4414 #endif 4415 if (!PyArg_ParseTuple(_args, "O&O&lllb", 4416 WinObj_Convert, &window, 4417 PyMac_GetRect, &boundsRect, 4418 &value, 4419 &minimum, 4420 &maximum, 4421 &indeterminate)) 4422 return NULL; 4423 _err = CreateProgressBarControl(window, 4424 &boundsRect, 4425 value, 4426 minimum, 4427 maximum, 4428 indeterminate, 4429 &outControl); 4430 if (_err != noErr) return PyMac_Error(_err); 4431 _res = Py_BuildValue("O&", 4432 CtlObj_New, outControl); 4433 return _res; 4434 } 4435 4436 static PyObject *Ctl_CreateRelevanceBarControl(PyObject *_self, PyObject *_args) 4437 { 4438 PyObject *_res = NULL; 4439 OSStatus _err; 4440 WindowPtr window; 4441 Rect boundsRect; 4442 SInt32 value; 4443 SInt32 minimum; 4444 SInt32 maximum; 4445 ControlHandle outControl; 4446 #ifndef CreateRelevanceBarControl 4447 PyMac_PRECHECK(CreateRelevanceBarControl); 4448 #endif 4449 if (!PyArg_ParseTuple(_args, "O&O&lll", 4450 WinObj_Convert, &window, 4451 PyMac_GetRect, &boundsRect, 4452 &value, 4453 &minimum, 4454 &maximum)) 4455 return NULL; 4456 _err = CreateRelevanceBarControl(window, 4457 &boundsRect, 4458 value, 4459 minimum, 4460 maximum, 4461 &outControl); 4462 if (_err != noErr) return PyMac_Error(_err); 4463 _res = Py_BuildValue("O&", 4464 CtlObj_New, outControl); 4465 return _res; 4466 } 4467 4468 static PyObject *Ctl_CreateLittleArrowsControl(PyObject *_self, PyObject *_args) 4469 { 4470 PyObject *_res = NULL; 4471 OSStatus _err; 4472 WindowPtr window; 4473 Rect boundsRect; 4474 SInt32 value; 4475 SInt32 minimum; 4476 SInt32 maximum; 4477 SInt32 increment; 4478 ControlHandle outControl; 4479 #ifndef CreateLittleArrowsControl 4480 PyMac_PRECHECK(CreateLittleArrowsControl); 4481 #endif 4482 if (!PyArg_ParseTuple(_args, "O&O&llll", 4483 WinObj_Convert, &window, 4484 PyMac_GetRect, &boundsRect, 4485 &value, 4486 &minimum, 4487 &maximum, 4488 &increment)) 4489 return NULL; 4490 _err = CreateLittleArrowsControl(window, 4491 &boundsRect, 4492 value, 4493 minimum, 4494 maximum, 4495 increment, 4496 &outControl); 4497 if (_err != noErr) return PyMac_Error(_err); 4498 _res = Py_BuildValue("O&", 4499 CtlObj_New, outControl); 4500 return _res; 4501 } 4502 4503 static PyObject *Ctl_CreateChasingArrowsControl(PyObject *_self, PyObject *_args) 4504 { 4505 PyObject *_res = NULL; 4506 OSStatus _err; 4507 WindowPtr window; 4508 Rect boundsRect; 4509 ControlHandle outControl; 4510 #ifndef CreateChasingArrowsControl 4511 PyMac_PRECHECK(CreateChasingArrowsControl); 4512 #endif 4513 if (!PyArg_ParseTuple(_args, "O&O&", 4514 WinObj_Convert, &window, 4515 PyMac_GetRect, &boundsRect)) 4516 return NULL; 4517 _err = CreateChasingArrowsControl(window, 4518 &boundsRect, 4519 &outControl); 4520 if (_err != noErr) return PyMac_Error(_err); 4521 _res = Py_BuildValue("O&", 4522 CtlObj_New, outControl); 4523 return _res; 4524 } 4525 4526 static PyObject *Ctl_CreateSeparatorControl(PyObject *_self, PyObject *_args) 4527 { 4528 PyObject *_res = NULL; 4529 OSStatus _err; 4530 WindowPtr window; 4531 Rect boundsRect; 4532 ControlHandle outControl; 4533 #ifndef CreateSeparatorControl 4534 PyMac_PRECHECK(CreateSeparatorControl); 4535 #endif 4536 if (!PyArg_ParseTuple(_args, "O&O&", 4537 WinObj_Convert, &window, 4538 PyMac_GetRect, &boundsRect)) 4539 return NULL; 4540 _err = CreateSeparatorControl(window, 4541 &boundsRect, 4542 &outControl); 4543 if (_err != noErr) return PyMac_Error(_err); 4544 _res = Py_BuildValue("O&", 4545 CtlObj_New, outControl); 4546 return _res; 4547 } 4548 4549 static PyObject *Ctl_CreateGroupBoxControl(PyObject *_self, PyObject *_args) 4550 { 4551 PyObject *_res = NULL; 4552 OSStatus _err; 4553 WindowPtr window; 4554 Rect boundsRect; 4555 CFStringRef title; 4556 Boolean primary; 4557 ControlHandle outControl; 4558 #ifndef CreateGroupBoxControl 4559 PyMac_PRECHECK(CreateGroupBoxControl); 4560 #endif 4561 if (!PyArg_ParseTuple(_args, "O&O&O&b", 4562 WinObj_Convert, &window, 4563 PyMac_GetRect, &boundsRect, 4564 CFStringRefObj_Convert, &title, 4565 &primary)) 4566 return NULL; 4567 _err = CreateGroupBoxControl(window, 4568 &boundsRect, 4569 title, 4570 primary, 4571 &outControl); 4572 if (_err != noErr) return PyMac_Error(_err); 4573 _res = Py_BuildValue("O&", 4574 CtlObj_New, outControl); 4575 return _res; 4576 } 4577 4578 static PyObject *Ctl_CreateCheckGroupBoxControl(PyObject *_self, PyObject *_args) 4579 { 4580 PyObject *_res = NULL; 4581 OSStatus _err; 4582 WindowPtr window; 4583 Rect boundsRect; 4584 CFStringRef title; 4585 SInt32 initialValue; 4586 Boolean primary; 4587 Boolean autoToggle; 4588 ControlHandle outControl; 4589 #ifndef CreateCheckGroupBoxControl 4590 PyMac_PRECHECK(CreateCheckGroupBoxControl); 4591 #endif 4592 if (!PyArg_ParseTuple(_args, "O&O&O&lbb", 4593 WinObj_Convert, &window, 4594 PyMac_GetRect, &boundsRect, 4595 CFStringRefObj_Convert, &title, 4596 &initialValue, 4597 &primary, 4598 &autoToggle)) 4599 return NULL; 4600 _err = CreateCheckGroupBoxControl(window, 4601 &boundsRect, 4602 title, 4603 initialValue, 4604 primary, 4605 autoToggle, 4606 &outControl); 4607 if (_err != noErr) return PyMac_Error(_err); 4608 _res = Py_BuildValue("O&", 4609 CtlObj_New, outControl); 4610 return _res; 4611 } 4612 4613 static PyObject *Ctl_CreatePopupGroupBoxControl(PyObject *_self, PyObject *_args) 4614 { 4615 PyObject *_res = NULL; 4616 OSStatus _err; 4617 WindowPtr window; 4618 Rect boundsRect; 4619 CFStringRef title; 4620 Boolean primary; 4621 SInt16 menuID; 4622 Boolean variableWidth; 4623 SInt16 titleWidth; 4624 SInt16 titleJustification; 4625 Style titleStyle; 4626 ControlHandle outControl; 4627 #ifndef CreatePopupGroupBoxControl 4628 PyMac_PRECHECK(CreatePopupGroupBoxControl); 4629 #endif 4630 if (!PyArg_ParseTuple(_args, "O&O&O&bhbhhb", 4631 WinObj_Convert, &window, 4632 PyMac_GetRect, &boundsRect, 4633 CFStringRefObj_Convert, &title, 4634 &primary, 4635 &menuID, 4636 &variableWidth, 4637 &titleWidth, 4638 &titleJustification, 4639 &titleStyle)) 4640 return NULL; 4641 _err = CreatePopupGroupBoxControl(window, 4642 &boundsRect, 4643 title, 4644 primary, 4645 menuID, 4646 variableWidth, 4647 titleWidth, 4648 titleJustification, 4649 titleStyle, 4650 &outControl); 4651 if (_err != noErr) return PyMac_Error(_err); 4652 _res = Py_BuildValue("O&", 4653 CtlObj_New, outControl); 4654 return _res; 4655 } 4656 4657 static PyObject *Ctl_CreateImageWellControl(PyObject *_self, PyObject *_args) 4658 { 4659 PyObject *_res = NULL; 4660 OSStatus _err; 4661 WindowPtr window; 4662 Rect boundsRect; 4663 ControlButtonContentInfo info; 4664 ControlHandle outControl; 4665 #ifndef CreateImageWellControl 4666 PyMac_PRECHECK(CreateImageWellControl); 4667 #endif 4668 if (!PyArg_ParseTuple(_args, "O&O&O&", 4669 WinObj_Convert, &window, 4670 PyMac_GetRect, &boundsRect, 4671 ControlButtonContentInfo_Convert, &info)) 4672 return NULL; 4673 _err = CreateImageWellControl(window, 4674 &boundsRect, 4675 &info, 4676 &outControl); 4677 if (_err != noErr) return PyMac_Error(_err); 4678 _res = Py_BuildValue("O&", 4679 CtlObj_New, outControl); 4680 return _res; 4681 } 4682 4683 static PyObject *Ctl_CreatePopupArrowControl(PyObject *_self, PyObject *_args) 4684 { 4685 PyObject *_res = NULL; 4686 OSStatus _err; 4687 WindowPtr window; 4688 Rect boundsRect; 4689 UInt16 orientation; 4690 UInt16 size; 4691 ControlHandle outControl; 4692 #ifndef CreatePopupArrowControl 4693 PyMac_PRECHECK(CreatePopupArrowControl); 4694 #endif 4695 if (!PyArg_ParseTuple(_args, "O&O&HH", 4696 WinObj_Convert, &window, 4697 PyMac_GetRect, &boundsRect, 4698 &orientation, 4699 &size)) 4700 return NULL; 4701 _err = CreatePopupArrowControl(window, 4702 &boundsRect, 4703 orientation, 4704 size, 4705 &outControl); 4706 if (_err != noErr) return PyMac_Error(_err); 4707 _res = Py_BuildValue("O&", 4708 CtlObj_New, outControl); 4709 return _res; 4710 } 4711 4712 static PyObject *Ctl_CreatePlacardControl(PyObject *_self, PyObject *_args) 4713 { 4714 PyObject *_res = NULL; 4715 OSStatus _err; 4716 WindowPtr window; 4717 Rect boundsRect; 4718 ControlHandle outControl; 4719 #ifndef CreatePlacardControl 4720 PyMac_PRECHECK(CreatePlacardControl); 4721 #endif 4722 if (!PyArg_ParseTuple(_args, "O&O&", 4723 WinObj_Convert, &window, 4724 PyMac_GetRect, &boundsRect)) 4725 return NULL; 4726 _err = CreatePlacardControl(window, 4727 &boundsRect, 4728 &outControl); 4729 if (_err != noErr) return PyMac_Error(_err); 4730 _res = Py_BuildValue("O&", 4731 CtlObj_New, outControl); 4732 return _res; 4733 } 4734 4735 static PyObject *Ctl_CreateClockControl(PyObject *_self, PyObject *_args) 4736 { 4737 PyObject *_res = NULL; 4738 OSStatus _err; 4739 WindowPtr window; 4740 Rect boundsRect; 4741 UInt16 clockType; 4742 UInt32 clockFlags; 4743 ControlHandle outControl; 4744 #ifndef CreateClockControl 4745 PyMac_PRECHECK(CreateClockControl); 4746 #endif 4747 if (!PyArg_ParseTuple(_args, "O&O&Hl", 4748 WinObj_Convert, &window, 4749 PyMac_GetRect, &boundsRect, 4750 &clockType, 4751 &clockFlags)) 4752 return NULL; 4753 _err = CreateClockControl(window, 4754 &boundsRect, 4755 clockType, 4756 clockFlags, 4757 &outControl); 4758 if (_err != noErr) return PyMac_Error(_err); 4759 _res = Py_BuildValue("O&", 4760 CtlObj_New, outControl); 4761 return _res; 4762 } 4763 4764 static PyObject *Ctl_CreateUserPaneControl(PyObject *_self, PyObject *_args) 4765 { 4766 PyObject *_res = NULL; 4767 OSStatus _err; 4768 WindowPtr window; 4769 Rect boundsRect; 4770 UInt32 features; 4771 ControlHandle outControl; 4772 #ifndef CreateUserPaneControl 4773 PyMac_PRECHECK(CreateUserPaneControl); 4774 #endif 4775 if (!PyArg_ParseTuple(_args, "O&O&l", 4776 WinObj_Convert, &window, 4777 PyMac_GetRect, &boundsRect, 4778 &features)) 4779 return NULL; 4780 _err = CreateUserPaneControl(window, 4781 &boundsRect, 4782 features, 4783 &outControl); 4784 if (_err != noErr) return PyMac_Error(_err); 4785 _res = Py_BuildValue("O&", 4786 CtlObj_New, outControl); 4787 return _res; 4788 } 4789 4790 static PyObject *Ctl_CreateEditTextControl(PyObject *_self, PyObject *_args) 4791 { 4792 PyObject *_res = NULL; 4793 OSStatus _err; 4794 WindowPtr window; 4795 Rect boundsRect; 4796 CFStringRef text; 4797 Boolean isPassword; 4798 Boolean useInlineInput; 4799 ControlFontStyleRec style; 4800 ControlHandle outControl; 4801 #ifndef CreateEditTextControl 4802 PyMac_PRECHECK(CreateEditTextControl); 4803 #endif 4804 if (!PyArg_ParseTuple(_args, "O&O&O&bbO&", 4805 WinObj_Convert, &window, 4806 PyMac_GetRect, &boundsRect, 4807 CFStringRefObj_Convert, &text, 4808 &isPassword, 4809 &useInlineInput, 4810 ControlFontStyle_Convert, &style)) 4811 return NULL; 4812 _err = CreateEditTextControl(window, 4813 &boundsRect, 4814 text, 4815 isPassword, 4816 useInlineInput, 4817 &style, 4818 &outControl); 4819 if (_err != noErr) return PyMac_Error(_err); 4820 _res = Py_BuildValue("O&", 4821 CtlObj_New, outControl); 4822 return _res; 4823 } 4824 4825 static PyObject *Ctl_CreateStaticTextControl(PyObject *_self, PyObject *_args) 4826 { 4827 PyObject *_res = NULL; 4828 OSStatus _err; 4829 WindowPtr window; 4830 Rect boundsRect; 4831 CFStringRef text; 4832 ControlFontStyleRec style; 4833 ControlHandle outControl; 4834 #ifndef CreateStaticTextControl 4835 PyMac_PRECHECK(CreateStaticTextControl); 4836 #endif 4837 if (!PyArg_ParseTuple(_args, "O&O&O&O&", 4838 WinObj_Convert, &window, 4839 PyMac_GetRect, &boundsRect, 4840 CFStringRefObj_Convert, &text, 4841 ControlFontStyle_Convert, &style)) 4842 return NULL; 4843 _err = CreateStaticTextControl(window, 4844 &boundsRect, 4845 text, 4846 &style, 4847 &outControl); 4848 if (_err != noErr) return PyMac_Error(_err); 4849 _res = Py_BuildValue("O&", 4850 CtlObj_New, outControl); 4851 return _res; 4852 } 4853 4854 static PyObject *Ctl_CreatePictureControl(PyObject *_self, PyObject *_args) 4855 { 4856 PyObject *_res = NULL; 4857 OSStatus _err; 4858 WindowPtr window; 4859 Rect boundsRect; 4860 ControlButtonContentInfo content; 4861 Boolean dontTrack; 4862 ControlHandle outControl; 4863 #ifndef CreatePictureControl 4864 PyMac_PRECHECK(CreatePictureControl); 4865 #endif 4866 if (!PyArg_ParseTuple(_args, "O&O&O&b", 4867 WinObj_Convert, &window, 4868 PyMac_GetRect, &boundsRect, 4869 ControlButtonContentInfo_Convert, &content, 4870 &dontTrack)) 4871 return NULL; 4872 _err = CreatePictureControl(window, 4873 &boundsRect, 4874 &content, 4875 dontTrack, 4876 &outControl); 4877 if (_err != noErr) return PyMac_Error(_err); 4878 _res = Py_BuildValue("O&", 4879 CtlObj_New, outControl); 4880 return _res; 4881 } 4882 4883 static PyObject *Ctl_CreateIconControl(PyObject *_self, PyObject *_args) 4884 { 4885 PyObject *_res = NULL; 4886 OSStatus _err; 4887 WindowPtr inWindow; 4888 Rect inBoundsRect; 4889 ControlButtonContentInfo inIconContent; 4890 Boolean inDontTrack; 4891 ControlHandle outControl; 4892 #ifndef CreateIconControl 4893 PyMac_PRECHECK(CreateIconControl); 4894 #endif 4895 if (!PyArg_ParseTuple(_args, "O&O&O&b", 4896 WinObj_Convert, &inWindow, 4897 PyMac_GetRect, &inBoundsRect, 4898 ControlButtonContentInfo_Convert, &inIconContent, 4899 &inDontTrack)) 4900 return NULL; 4901 _err = CreateIconControl(inWindow, 4902 &inBoundsRect, 4903 &inIconContent, 4904 inDontTrack, 4905 &outControl); 4906 if (_err != noErr) return PyMac_Error(_err); 4907 _res = Py_BuildValue("O&", 4908 CtlObj_New, outControl); 4909 return _res; 4910 } 4911 4912 static PyObject *Ctl_CreateWindowHeaderControl(PyObject *_self, PyObject *_args) 4913 { 4914 PyObject *_res = NULL; 4915 OSStatus _err; 4916 WindowPtr window; 4917 Rect boundsRect; 4918 Boolean isListHeader; 4919 ControlHandle outControl; 4920 #ifndef CreateWindowHeaderControl 4921 PyMac_PRECHECK(CreateWindowHeaderControl); 4922 #endif 4923 if (!PyArg_ParseTuple(_args, "O&O&b", 4924 WinObj_Convert, &window, 4925 PyMac_GetRect, &boundsRect, 4926 &isListHeader)) 4927 return NULL; 4928 _err = CreateWindowHeaderControl(window, 4929 &boundsRect, 4930 isListHeader, 4931 &outControl); 4932 if (_err != noErr) return PyMac_Error(_err); 4933 _res = Py_BuildValue("O&", 4934 CtlObj_New, outControl); 4935 return _res; 4936 } 4937 4938 static PyObject *Ctl_CreatePushButtonControl(PyObject *_self, PyObject *_args) 4939 { 4940 PyObject *_res = NULL; 4941 OSStatus _err; 4942 WindowPtr window; 4943 Rect boundsRect; 4944 CFStringRef title; 4945 ControlHandle outControl; 4946 #ifndef CreatePushButtonControl 4947 PyMac_PRECHECK(CreatePushButtonControl); 4948 #endif 4949 if (!PyArg_ParseTuple(_args, "O&O&O&", 4950 WinObj_Convert, &window, 4951 PyMac_GetRect, &boundsRect, 4952 CFStringRefObj_Convert, &title)) 4953 return NULL; 4954 _err = CreatePushButtonControl(window, 4955 &boundsRect, 4956 title, 4957 &outControl); 4958 if (_err != noErr) return PyMac_Error(_err); 4959 _res = Py_BuildValue("O&", 4960 CtlObj_New, outControl); 4961 return _res; 4962 } 4963 4964 static PyObject *Ctl_CreatePushButtonWithIconControl(PyObject *_self, PyObject *_args) 4965 { 4966 PyObject *_res = NULL; 4967 OSStatus _err; 4968 WindowPtr window; 4969 Rect boundsRect; 4970 CFStringRef title; 4971 ControlButtonContentInfo icon; 4972 UInt16 iconAlignment; 4973 ControlHandle outControl; 4974 #ifndef CreatePushButtonWithIconControl 4975 PyMac_PRECHECK(CreatePushButtonWithIconControl); 4976 #endif 4977 if (!PyArg_ParseTuple(_args, "O&O&O&O&H", 4978 WinObj_Convert, &window, 4979 PyMac_GetRect, &boundsRect, 4980 CFStringRefObj_Convert, &title, 4981 ControlButtonContentInfo_Convert, &icon, 4982 &iconAlignment)) 4983 return NULL; 4984 _err = CreatePushButtonWithIconControl(window, 4985 &boundsRect, 4986 title, 4987 &icon, 4988 iconAlignment, 4989 &outControl); 4990 if (_err != noErr) return PyMac_Error(_err); 4991 _res = Py_BuildValue("O&", 4992 CtlObj_New, outControl); 4993 return _res; 4994 } 4995 4996 static PyObject *Ctl_CreateRadioButtonControl(PyObject *_self, PyObject *_args) 4997 { 4998 PyObject *_res = NULL; 4999 OSStatus _err; 5000 WindowPtr window; 5001 Rect boundsRect; 5002 CFStringRef title; 5003 SInt32 initialValue; 5004 Boolean autoToggle; 5005 ControlHandle outControl; 5006 #ifndef CreateRadioButtonControl 5007 PyMac_PRECHECK(CreateRadioButtonControl); 5008 #endif 5009 if (!PyArg_ParseTuple(_args, "O&O&O&lb", 5010 WinObj_Convert, &window, 5011 PyMac_GetRect, &boundsRect, 5012 CFStringRefObj_Convert, &title, 5013 &initialValue, 5014 &autoToggle)) 5015 return NULL; 5016 _err = CreateRadioButtonControl(window, 5017 &boundsRect, 5018 title, 5019 initialValue, 5020 autoToggle, 5021 &outControl); 5022 if (_err != noErr) return PyMac_Error(_err); 5023 _res = Py_BuildValue("O&", 5024 CtlObj_New, outControl); 5025 return _res; 5026 } 5027 5028 static PyObject *Ctl_CreateCheckBoxControl(PyObject *_self, PyObject *_args) 5029 { 5030 PyObject *_res = NULL; 5031 OSStatus _err; 5032 WindowPtr window; 5033 Rect boundsRect; 5034 CFStringRef title; 5035 SInt32 initialValue; 5036 Boolean autoToggle; 5037 ControlHandle outControl; 5038 #ifndef CreateCheckBoxControl 5039 PyMac_PRECHECK(CreateCheckBoxControl); 5040 #endif 5041 if (!PyArg_ParseTuple(_args, "O&O&O&lb", 5042 WinObj_Convert, &window, 5043 PyMac_GetRect, &boundsRect, 5044 CFStringRefObj_Convert, &title, 5045 &initialValue, 5046 &autoToggle)) 5047 return NULL; 5048 _err = CreateCheckBoxControl(window, 5049 &boundsRect, 5050 title, 5051 initialValue, 5052 autoToggle, 5053 &outControl); 5054 if (_err != noErr) return PyMac_Error(_err); 5055 _res = Py_BuildValue("O&", 5056 CtlObj_New, outControl); 5057 return _res; 5058 } 5059 5060 static PyObject *Ctl_CreateScrollBarControl(PyObject *_self, PyObject *_args) 5061 { 5062 PyObject *_res = NULL; 5063 OSStatus _err; 5064 WindowPtr window; 5065 Rect boundsRect; 5066 SInt32 value; 5067 SInt32 minimum; 5068 SInt32 maximum; 5069 SInt32 viewSize; 5070 Boolean liveTracking; 5071 PyObject* liveTrackingProc; 5072 UniversalProcPtr c_callback; 5073 ControlHandle outControl; 5074 #ifndef CreateScrollBarControl 5075 PyMac_PRECHECK(CreateScrollBarControl); 5076 #endif 5077 if (!PyArg_ParseTuple(_args, "O&O&llllbO", 5078 WinObj_Convert, &window, 5079 PyMac_GetRect, &boundsRect, 5080 &value, 5081 &minimum, 5082 &maximum, 5083 &viewSize, 5084 &liveTracking, 5085 &liveTrackingProc)) 5086 return NULL; 5087 _err = CreateScrollBarControl(window, 5088 &boundsRect, 5089 value, 5090 minimum, 5091 maximum, 5092 viewSize, 5093 liveTracking, 5094 myactionproc_upp, 5095 &outControl); 5096 if (_err != noErr) return PyMac_Error(_err); 5097 _res = Py_BuildValue("O&", 5098 CtlObj_New, outControl); 5099 setcallback(_res, kMyControlActionProcTag, liveTrackingProc, &c_callback); 5100 return _res; 5101 } 5102 5103 static PyObject *Ctl_CreatePopupButtonControl(PyObject *_self, PyObject *_args) 5104 { 5105 PyObject *_res = NULL; 5106 OSStatus _err; 5107 WindowPtr window; 5108 Rect boundsRect; 5109 CFStringRef title; 5110 SInt16 menuID; 5111 Boolean variableWidth; 5112 SInt16 titleWidth; 5113 SInt16 titleJustification; 5114 Style titleStyle; 5115 ControlHandle outControl; 5116 #ifndef CreatePopupButtonControl 5117 PyMac_PRECHECK(CreatePopupButtonControl); 5118 #endif 5119 if (!PyArg_ParseTuple(_args, "O&O&O&hbhhb", 5120 WinObj_Convert, &window, 5121 PyMac_GetRect, &boundsRect, 5122 CFStringRefObj_Convert, &title, 5123 &menuID, 5124 &variableWidth, 5125 &titleWidth, 5126 &titleJustification, 5127 &titleStyle)) 5128 return NULL; 5129 _err = CreatePopupButtonControl(window, 5130 &boundsRect, 5131 title, 5132 menuID, 5133 variableWidth, 5134 titleWidth, 5135 titleJustification, 5136 titleStyle, 5137 &outControl); 5138 if (_err != noErr) return PyMac_Error(_err); 5139 _res = Py_BuildValue("O&", 5140 CtlObj_New, outControl); 5141 return _res; 5142 } 5143 5144 static PyObject *Ctl_CreateRadioGroupControl(PyObject *_self, PyObject *_args) 5145 { 5146 PyObject *_res = NULL; 5147 OSStatus _err; 5148 WindowPtr window; 5149 Rect boundsRect; 5150 ControlHandle outControl; 5151 #ifndef CreateRadioGroupControl 5152 PyMac_PRECHECK(CreateRadioGroupControl); 5153 #endif 5154 if (!PyArg_ParseTuple(_args, "O&O&", 5155 WinObj_Convert, &window, 5156 PyMac_GetRect, &boundsRect)) 5157 return NULL; 5158 _err = CreateRadioGroupControl(window, 5159 &boundsRect, 5160 &outControl); 5161 if (_err != noErr) return PyMac_Error(_err); 5162 _res = Py_BuildValue("O&", 5163 CtlObj_New, outControl); 5164 return _res; 5165 } 5166 5167 static PyObject *Ctl_CreateScrollingTextBoxControl(PyObject *_self, PyObject *_args) 5168 { 5169 PyObject *_res = NULL; 5170 OSStatus _err; 5171 WindowPtr window; 5172 Rect boundsRect; 5173 SInt16 contentResID; 5174 Boolean autoScroll; 5175 UInt32 delayBeforeAutoScroll; 5176 UInt32 delayBetweenAutoScroll; 5177 UInt16 autoScrollAmount; 5178 ControlHandle outControl; 5179 #ifndef CreateScrollingTextBoxControl 5180 PyMac_PRECHECK(CreateScrollingTextBoxControl); 5181 #endif 5182 if (!PyArg_ParseTuple(_args, "O&O&hbllH", 5183 WinObj_Convert, &window, 5184 PyMac_GetRect, &boundsRect, 5185 &contentResID, 5186 &autoScroll, 5187 &delayBeforeAutoScroll, 5188 &delayBetweenAutoScroll, 5189 &autoScrollAmount)) 5190 return NULL; 5191 _err = CreateScrollingTextBoxControl(window, 5192 &boundsRect, 5193 contentResID, 5194 autoScroll, 5195 delayBeforeAutoScroll, 5196 delayBetweenAutoScroll, 5197 autoScrollAmount, 5198 &outControl); 5199 if (_err != noErr) return PyMac_Error(_err); 5200 _res = Py_BuildValue("O&", 5201 CtlObj_New, outControl); 5202 return _res; 5203 } 5204 5205 static PyObject *Ctl_CreateDisclosureButtonControl(PyObject *_self, PyObject *_args) 5206 { 5207 PyObject *_res = NULL; 5208 OSStatus _err; 5209 WindowPtr inWindow; 5210 Rect inBoundsRect; 5211 SInt32 inValue; 5212 Boolean inAutoToggles; 5213 ControlHandle outControl; 5214 #ifndef CreateDisclosureButtonControl 5215 PyMac_PRECHECK(CreateDisclosureButtonControl); 5216 #endif 5217 if (!PyArg_ParseTuple(_args, "O&O&lb", 5218 WinObj_Convert, &inWindow, 5219 PyMac_GetRect, &inBoundsRect, 5220 &inValue, 5221 &inAutoToggles)) 5222 return NULL; 5223 _err = CreateDisclosureButtonControl(inWindow, 5224 &inBoundsRect, 5225 inValue, 5226 inAutoToggles, 5227 &outControl); 5228 if (_err != noErr) return PyMac_Error(_err); 5229 _res = Py_BuildValue("O&", 5230 CtlObj_New, outControl); 5231 return _res; 5232 } 5233 5234 static PyObject *Ctl_CreateRoundButtonControl(PyObject *_self, PyObject *_args) 5235 { 5236 PyObject *_res = NULL; 5237 OSStatus _err; 5238 WindowPtr inWindow; 5239 Rect inBoundsRect; 5240 SInt16 inSize; 5241 ControlButtonContentInfo inContent; 5242 ControlHandle outControl; 5243 #ifndef CreateRoundButtonControl 5244 PyMac_PRECHECK(CreateRoundButtonControl); 5245 #endif 5246 if (!PyArg_ParseTuple(_args, "O&O&hO&", 5247 WinObj_Convert, &inWindow, 5248 PyMac_GetRect, &inBoundsRect, 5249 &inSize, 5250 ControlButtonContentInfo_Convert, &inContent)) 5251 return NULL; 5252 _err = CreateRoundButtonControl(inWindow, 5253 &inBoundsRect, 5254 inSize, 5255 &inContent, 5256 &outControl); 5257 if (_err != noErr) return PyMac_Error(_err); 5258 _res = Py_BuildValue("O&", 5259 CtlObj_New, outControl); 5260 return _res; 5261 } 5262 5263 static PyObject *Ctl_CreateDataBrowserControl(PyObject *_self, PyObject *_args) 5264 { 5265 PyObject *_res = NULL; 5266 OSStatus _err; 5267 WindowPtr window; 5268 Rect boundsRect; 5269 OSType style; 5270 ControlHandle outControl; 5271 #ifndef CreateDataBrowserControl 5272 PyMac_PRECHECK(CreateDataBrowserControl); 5273 #endif 5274 if (!PyArg_ParseTuple(_args, "O&O&O&", 5275 WinObj_Convert, &window, 5276 PyMac_GetRect, &boundsRect, 5277 PyMac_GetOSType, &style)) 5278 return NULL; 5279 _err = CreateDataBrowserControl(window, 5280 &boundsRect, 5281 style, 5282 &outControl); 5283 if (_err != noErr) return PyMac_Error(_err); 5284 _res = Py_BuildValue("O&", 5285 CtlObj_New, outControl); 5286 return _res; 5287 } 5288 5289 static PyObject *Ctl_CreateEditUnicodeTextControl(PyObject *_self, PyObject *_args) 5290 { 5291 PyObject *_res = NULL; 5292 OSStatus _err; 5293 WindowPtr window; 5294 Rect boundsRect; 5295 CFStringRef text; 5296 Boolean isPassword; 5297 ControlFontStyleRec style; 5298 ControlHandle outControl; 5299 #ifndef CreateEditUnicodeTextControl 5300 PyMac_PRECHECK(CreateEditUnicodeTextControl); 5301 #endif 5302 if (!PyArg_ParseTuple(_args, "O&O&O&bO&", 5303 WinObj_Convert, &window, 5304 PyMac_GetRect, &boundsRect, 5305 CFStringRefObj_Convert, &text, 5306 &isPassword, 5307 ControlFontStyle_Convert, &style)) 5308 return NULL; 5309 _err = CreateEditUnicodeTextControl(window, 5310 &boundsRect, 5311 text, 5312 isPassword, 5313 &style, 5314 &outControl); 5315 if (_err != noErr) return PyMac_Error(_err); 5316 _res = Py_BuildValue("O&", 5317 CtlObj_New, outControl); 5318 return _res; 5319 } 5320 5321 static PyObject *Ctl_FindControlUnderMouse(PyObject *_self, PyObject *_args) 5322 { 5323 PyObject *_res = NULL; 5324 ControlHandle _rv; 5325 Point inWhere; 5326 WindowPtr inWindow; 5327 SInt16 outPart; 5328 #ifndef FindControlUnderMouse 5329 PyMac_PRECHECK(FindControlUnderMouse); 5330 #endif 5331 if (!PyArg_ParseTuple(_args, "O&O&", 5332 PyMac_GetPoint, &inWhere, 5333 WinObj_Convert, &inWindow)) 5334 return NULL; 5335 _rv = FindControlUnderMouse(inWhere, 5336 inWindow, 5337 &outPart); 5338 _res = Py_BuildValue("O&h", 5339 CtlObj_WhichControl, _rv, 5340 outPart); 5341 return _res; 5342 } 5343 5344 static PyObject *Ctl_as_Control(PyObject *_self, PyObject *_args) 5345 { 5346 PyObject *_res = NULL; 5347 ControlHandle _rv; 5348 Handle h; 5349 #ifndef as_Control 5350 PyMac_PRECHECK(as_Control); 5351 #endif 5352 if (!PyArg_ParseTuple(_args, "O&", 5353 ResObj_Convert, &h)) 5354 return NULL; 5355 _rv = as_Control(h); 5356 _res = Py_BuildValue("O&", 5357 CtlObj_New, _rv); 5358 return _res; 5359 } 5360 5361 static PyObject *Ctl_CreateTabsControl(PyObject *_self, PyObject *_args) 5362 { 5363 PyObject *_res = NULL; 5364 OSStatus _err; 5365 WindowPtr window; 5366 Rect boundsRect; 5367 UInt16 size; 5368 UInt16 direction; 5369 int i; 5370 UInt16 numTabs; 5371 ControlTabEntry tabArray[MAXTABS]; 5372 ControlHandle outControl; 5373 PyObject *tabArrayObj, *tabEntry; 5374 5375 #ifndef CreateTabsControl 5376 PyMac_PRECHECK(CreateTabsControl); 5377 #endif 5378 if (!PyArg_ParseTuple(_args, "O&O&HHO", 5379 WinObj_Convert, &window, 5380 PyMac_GetRect, &boundsRect, 5381 &size, 5382 &direction, 5383 &tabArrayObj)) 5384 return NULL; 5385 5386 i = PySequence_Length(tabArrayObj); 5387 if (i == -1) 5388 return NULL; 5389 if (i > MAXTABS) { 5390 PyErr_SetString(Ctl_Error, "Too many tabs"); 5391 return NULL; 5392 } 5393 numTabs = i; 5394 for (i=0; i<numTabs; i++) { 5395 tabEntry = PySequence_GetItem(tabArrayObj, i); 5396 if (tabEntry == NULL) 5397 return NULL; 5398 if (!PyArg_Parse(tabEntry, "(O&O&B)", 5399 ControlButtonContentInfo_Convert, &tabArray[i].icon, 5400 CFStringRefObj_Convert, &tabArray[i].name, 5401 &tabArray[i].enabled 5402 )) 5403 return NULL; 5404 } 5405 5406 _err = CreateTabsControl(window, 5407 &boundsRect, 5408 size, 5409 direction, 5410 numTabs, 5411 tabArray, 5412 &outControl); 5413 if (_err != noErr) return PyMac_Error(_err); 5414 _res = Py_BuildValue("O&", 5415 CtlObj_New, outControl); 5416 return _res; 5417 } 5418 5419 static PyMethodDef Ctl_methods[] = { 5420 {"NewControl", (PyCFunction)Ctl_NewControl, 1, 5421 PyDoc_STR("(WindowPtr owningWindow, Rect boundsRect, Str255 controlTitle, Boolean initiallyVisible, SInt16 initialValue, SInt16 minimumValue, SInt16 maximumValue, SInt16 procID, SInt32 controlReference) -> (ControlHandle _rv)")}, 5422 {"GetNewControl", (PyCFunction)Ctl_GetNewControl, 1, 5423 PyDoc_STR("(SInt16 resourceID, WindowPtr owningWindow) -> (ControlHandle _rv)")}, 5424 {"DrawControls", (PyCFunction)Ctl_DrawControls, 1, 5425 PyDoc_STR("(WindowPtr theWindow) -> None")}, 5426 {"UpdateControls", (PyCFunction)Ctl_UpdateControls, 1, 5427 PyDoc_STR("(WindowPtr inWindow, RgnHandle inUpdateRegion) -> None")}, 5428 {"FindControl", (PyCFunction)Ctl_FindControl, 1, 5429 PyDoc_STR("(Point testPoint, WindowPtr theWindow) -> (ControlPartCode _rv, ControlHandle theControl)")}, 5430 {"IdleControls", (PyCFunction)Ctl_IdleControls, 1, 5431 PyDoc_STR("(WindowPtr inWindow) -> None")}, 5432 {"GetControlByID", (PyCFunction)Ctl_GetControlByID, 1, 5433 PyDoc_STR("(WindowPtr inWindow, ControlID inID) -> (ControlHandle outControl)")}, 5434 {"DumpControlHierarchy", (PyCFunction)Ctl_DumpControlHierarchy, 1, 5435 PyDoc_STR("(WindowPtr inWindow, FSSpec inDumpFile) -> None")}, 5436 {"CreateRootControl", (PyCFunction)Ctl_CreateRootControl, 1, 5437 PyDoc_STR("(WindowPtr inWindow) -> (ControlHandle outControl)")}, 5438 {"GetRootControl", (PyCFunction)Ctl_GetRootControl, 1, 5439 PyDoc_STR("(WindowPtr inWindow) -> (ControlHandle outControl)")}, 5440 {"GetKeyboardFocus", (PyCFunction)Ctl_GetKeyboardFocus, 1, 5441 PyDoc_STR("(WindowPtr inWindow) -> (ControlHandle outControl)")}, 5442 {"SetKeyboardFocus", (PyCFunction)Ctl_SetKeyboardFocus, 1, 5443 PyDoc_STR("(WindowPtr inWindow, ControlHandle inControl, ControlFocusPart inPart) -> None")}, 5444 {"AdvanceKeyboardFocus", (PyCFunction)Ctl_AdvanceKeyboardFocus, 1, 5445 PyDoc_STR("(WindowPtr inWindow) -> None")}, 5446 {"ReverseKeyboardFocus", (PyCFunction)Ctl_ReverseKeyboardFocus, 1, 5447 PyDoc_STR("(WindowPtr inWindow) -> None")}, 5448 {"ClearKeyboardFocus", (PyCFunction)Ctl_ClearKeyboardFocus, 1, 5449 PyDoc_STR("(WindowPtr inWindow) -> None")}, 5450 {"SetAutomaticControlDragTrackingEnabledForWindow", (PyCFunction)Ctl_SetAutomaticControlDragTrackingEnabledForWindow, 1, 5451 PyDoc_STR("(WindowPtr inWindow, Boolean inTracks) -> None")}, 5452 {"IsAutomaticControlDragTrackingEnabledForWindow", (PyCFunction)Ctl_IsAutomaticControlDragTrackingEnabledForWindow, 1, 5453 PyDoc_STR("(WindowPtr inWindow) -> (Boolean outTracks)")}, 5454 {"CreateBevelButtonControl", (PyCFunction)Ctl_CreateBevelButtonControl, 1, 5455 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title, UInt16 thickness, UInt16 behavior, ControlButtonContentInfo info, SInt16 menuID, UInt16 menuBehavior, UInt16 menuPlacement) -> (ControlHandle outControl)")}, 5456 {"CreateSliderControl", (PyCFunction)Ctl_CreateSliderControl, 1, 5457 PyDoc_STR("(WindowPtr window, Rect boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, UInt16 orientation, UInt16 numTickMarks, Boolean liveTracking, PyObject* liveTrackingProc) -> (ControlHandle outControl)")}, 5458 {"CreateDisclosureTriangleControl", (PyCFunction)Ctl_CreateDisclosureTriangleControl, 1, 5459 PyDoc_STR("(WindowPtr inWindow, Rect inBoundsRect, UInt16 inOrientation, CFStringRef inTitle, SInt32 inInitialValue, Boolean inDrawTitle, Boolean inAutoToggles) -> (ControlHandle outControl)")}, 5460 {"CreateProgressBarControl", (PyCFunction)Ctl_CreateProgressBarControl, 1, 5461 PyDoc_STR("(WindowPtr window, Rect boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, Boolean indeterminate) -> (ControlHandle outControl)")}, 5462 {"CreateRelevanceBarControl", (PyCFunction)Ctl_CreateRelevanceBarControl, 1, 5463 PyDoc_STR("(WindowPtr window, Rect boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum) -> (ControlHandle outControl)")}, 5464 {"CreateLittleArrowsControl", (PyCFunction)Ctl_CreateLittleArrowsControl, 1, 5465 PyDoc_STR("(WindowPtr window, Rect boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, SInt32 increment) -> (ControlHandle outControl)")}, 5466 {"CreateChasingArrowsControl", (PyCFunction)Ctl_CreateChasingArrowsControl, 1, 5467 PyDoc_STR("(WindowPtr window, Rect boundsRect) -> (ControlHandle outControl)")}, 5468 {"CreateSeparatorControl", (PyCFunction)Ctl_CreateSeparatorControl, 1, 5469 PyDoc_STR("(WindowPtr window, Rect boundsRect) -> (ControlHandle outControl)")}, 5470 {"CreateGroupBoxControl", (PyCFunction)Ctl_CreateGroupBoxControl, 1, 5471 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title, Boolean primary) -> (ControlHandle outControl)")}, 5472 {"CreateCheckGroupBoxControl", (PyCFunction)Ctl_CreateCheckGroupBoxControl, 1, 5473 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title, SInt32 initialValue, Boolean primary, Boolean autoToggle) -> (ControlHandle outControl)")}, 5474 {"CreatePopupGroupBoxControl", (PyCFunction)Ctl_CreatePopupGroupBoxControl, 1, 5475 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title, Boolean primary, SInt16 menuID, Boolean variableWidth, SInt16 titleWidth, SInt16 titleJustification, Style titleStyle) -> (ControlHandle outControl)")}, 5476 {"CreateImageWellControl", (PyCFunction)Ctl_CreateImageWellControl, 1, 5477 PyDoc_STR("(WindowPtr window, Rect boundsRect, ControlButtonContentInfo info) -> (ControlHandle outControl)")}, 5478 {"CreatePopupArrowControl", (PyCFunction)Ctl_CreatePopupArrowControl, 1, 5479 PyDoc_STR("(WindowPtr window, Rect boundsRect, UInt16 orientation, UInt16 size) -> (ControlHandle outControl)")}, 5480 {"CreatePlacardControl", (PyCFunction)Ctl_CreatePlacardControl, 1, 5481 PyDoc_STR("(WindowPtr window, Rect boundsRect) -> (ControlHandle outControl)")}, 5482 {"CreateClockControl", (PyCFunction)Ctl_CreateClockControl, 1, 5483 PyDoc_STR("(WindowPtr window, Rect boundsRect, UInt16 clockType, UInt32 clockFlags) -> (ControlHandle outControl)")}, 5484 {"CreateUserPaneControl", (PyCFunction)Ctl_CreateUserPaneControl, 1, 5485 PyDoc_STR("(WindowPtr window, Rect boundsRect, UInt32 features) -> (ControlHandle outControl)")}, 5486 {"CreateEditTextControl", (PyCFunction)Ctl_CreateEditTextControl, 1, 5487 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef text, Boolean isPassword, Boolean useInlineInput, ControlFontStyleRec style) -> (ControlHandle outControl)")}, 5488 {"CreateStaticTextControl", (PyCFunction)Ctl_CreateStaticTextControl, 1, 5489 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef text, ControlFontStyleRec style) -> (ControlHandle outControl)")}, 5490 {"CreatePictureControl", (PyCFunction)Ctl_CreatePictureControl, 1, 5491 PyDoc_STR("(WindowPtr window, Rect boundsRect, ControlButtonContentInfo content, Boolean dontTrack) -> (ControlHandle outControl)")}, 5492 {"CreateIconControl", (PyCFunction)Ctl_CreateIconControl, 1, 5493 PyDoc_STR("(WindowPtr inWindow, Rect inBoundsRect, ControlButtonContentInfo inIconContent, Boolean inDontTrack) -> (ControlHandle outControl)")}, 5494 {"CreateWindowHeaderControl", (PyCFunction)Ctl_CreateWindowHeaderControl, 1, 5495 PyDoc_STR("(WindowPtr window, Rect boundsRect, Boolean isListHeader) -> (ControlHandle outControl)")}, 5496 {"CreatePushButtonControl", (PyCFunction)Ctl_CreatePushButtonControl, 1, 5497 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title) -> (ControlHandle outControl)")}, 5498 {"CreatePushButtonWithIconControl", (PyCFunction)Ctl_CreatePushButtonWithIconControl, 1, 5499 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title, ControlButtonContentInfo icon, UInt16 iconAlignment) -> (ControlHandle outControl)")}, 5500 {"CreateRadioButtonControl", (PyCFunction)Ctl_CreateRadioButtonControl, 1, 5501 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title, SInt32 initialValue, Boolean autoToggle) -> (ControlHandle outControl)")}, 5502 {"CreateCheckBoxControl", (PyCFunction)Ctl_CreateCheckBoxControl, 1, 5503 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title, SInt32 initialValue, Boolean autoToggle) -> (ControlHandle outControl)")}, 5504 {"CreateScrollBarControl", (PyCFunction)Ctl_CreateScrollBarControl, 1, 5505 PyDoc_STR("(WindowPtr window, Rect boundsRect, SInt32 value, SInt32 minimum, SInt32 maximum, SInt32 viewSize, Boolean liveTracking, PyObject* liveTrackingProc) -> (ControlHandle outControl)")}, 5506 {"CreatePopupButtonControl", (PyCFunction)Ctl_CreatePopupButtonControl, 1, 5507 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef title, SInt16 menuID, Boolean variableWidth, SInt16 titleWidth, SInt16 titleJustification, Style titleStyle) -> (ControlHandle outControl)")}, 5508 {"CreateRadioGroupControl", (PyCFunction)Ctl_CreateRadioGroupControl, 1, 5509 PyDoc_STR("(WindowPtr window, Rect boundsRect) -> (ControlHandle outControl)")}, 5510 {"CreateScrollingTextBoxControl", (PyCFunction)Ctl_CreateScrollingTextBoxControl, 1, 5511 PyDoc_STR("(WindowPtr window, Rect boundsRect, SInt16 contentResID, Boolean autoScroll, UInt32 delayBeforeAutoScroll, UInt32 delayBetweenAutoScroll, UInt16 autoScrollAmount) -> (ControlHandle outControl)")}, 5512 {"CreateDisclosureButtonControl", (PyCFunction)Ctl_CreateDisclosureButtonControl, 1, 5513 PyDoc_STR("(WindowPtr inWindow, Rect inBoundsRect, SInt32 inValue, Boolean inAutoToggles) -> (ControlHandle outControl)")}, 5514 {"CreateRoundButtonControl", (PyCFunction)Ctl_CreateRoundButtonControl, 1, 5515 PyDoc_STR("(WindowPtr inWindow, Rect inBoundsRect, SInt16 inSize, ControlButtonContentInfo inContent) -> (ControlHandle outControl)")}, 5516 {"CreateDataBrowserControl", (PyCFunction)Ctl_CreateDataBrowserControl, 1, 5517 PyDoc_STR("(WindowPtr window, Rect boundsRect, OSType style) -> (ControlHandle outControl)")}, 5518 {"CreateEditUnicodeTextControl", (PyCFunction)Ctl_CreateEditUnicodeTextControl, 1, 5519 PyDoc_STR("(WindowPtr window, Rect boundsRect, CFStringRef text, Boolean isPassword, ControlFontStyleRec style) -> (ControlHandle outControl)")}, 5520 {"FindControlUnderMouse", (PyCFunction)Ctl_FindControlUnderMouse, 1, 5521 PyDoc_STR("(Point inWhere, WindowPtr inWindow) -> (ControlHandle _rv, SInt16 outPart)")}, 5522 {"as_Control", (PyCFunction)Ctl_as_Control, 1, 5523 PyDoc_STR("(Handle h) -> (ControlHandle _rv)")}, 5524 {"CreateTabsControl", (PyCFunction)Ctl_CreateTabsControl, 1, 5525 PyDoc_STR("(WindowPtr window, Rect boundsRect, UInt16 size, UInt16 direction, ControlTabEntry tabArray) -> (ControlHandle outControl)")}, 5526 {NULL, NULL, 0} 5527 }; 5528 5529 5530 5531 static PyObject * 5532 CtlObj_NewUnmanaged(ControlHandle itself) 5533 { 5534 ControlObject *it; 5535 if (itself == NULL) return PyMac_Error(resNotFound); 5536 it = PyObject_NEW(ControlObject, &Control_Type); 5537 if (it == NULL) return NULL; 5538 it->ob_itself = itself; 5539 it->ob_callbackdict = NULL; 5540 return (PyObject *)it; 5541 } 5542 5543 static PyObject * 5544 CtlObj_WhichControl(ControlHandle c) 5545 { 5546 PyObject *it; 5547 5548 if (c == NULL) 5549 it = Py_None; 5550 else { 5551 it = (PyObject *) GetControlReference(c); 5552 /* 5553 ** If the refcon is zero or doesn't point back to the Python object 5554 ** the control is not ours. Return a temporary object. 5555 */ 5556 if (it == NULL || ((ControlObject *)it)->ob_itself != c) 5557 return CtlObj_NewUnmanaged(c); 5558 } 5559 Py_INCREF(it); 5560 return it; 5561 } 5562 5563 static int 5564 settrackfunc(PyObject *obj) 5565 { 5566 if (tracker) { 5567 PyErr_SetString(Ctl_Error, "Tracker function in use"); 5568 return 0; 5569 } 5570 tracker = obj; 5571 Py_INCREF(tracker); 5572 return 1; 5573 } 5574 5575 static void 5576 clrtrackfunc(void) 5577 { 5578 Py_XDECREF(tracker); 5579 tracker = 0; 5580 } 5581 5582 static pascal void 5583 mytracker(ControlHandle ctl, short part) 5584 { 5585 PyObject *args, *rv=0; 5586 5587 args = Py_BuildValue("(O&i)", CtlObj_WhichControl, ctl, (int)part); 5588 if (args && tracker) { 5589 rv = PyEval_CallObject(tracker, args); 5590 Py_DECREF(args); 5591 } 5592 if (rv) 5593 Py_DECREF(rv); 5594 else { 5595 PySys_WriteStderr("TrackControl or HandleControlClick: exception in tracker function\n"); 5596 PyErr_Print(); 5597 } 5598 } 5599 5600 static int 5601 setcallback(PyObject *myself, OSType which, PyObject *callback, UniversalProcPtr *uppp) 5602 { 5603 ControlObject *self = (ControlObject *)myself; 5604 char keybuf[9]; 5605 5606 if ( which == kMyControlActionProcTag ) 5607 *uppp = (UniversalProcPtr)myactionproc_upp; 5608 else if ( which == kControlUserPaneKeyDownProcTag ) 5609 *uppp = (UniversalProcPtr)mykeydownproc_upp; 5610 else if ( which == kControlUserPaneFocusProcTag ) 5611 *uppp = (UniversalProcPtr)myfocusproc_upp; 5612 else if ( which == kControlUserPaneDrawProcTag ) 5613 *uppp = (UniversalProcPtr)mydrawproc_upp; 5614 else if ( which == kControlUserPaneIdleProcTag ) 5615 *uppp = (UniversalProcPtr)myidleproc_upp; 5616 else if ( which == kControlUserPaneHitTestProcTag ) 5617 *uppp = (UniversalProcPtr)myhittestproc_upp; 5618 else if ( which == kControlUserPaneTrackingProcTag ) 5619 *uppp = (UniversalProcPtr)mytrackingproc_upp; 5620 else 5621 return -1; 5622 /* Only now do we test for clearing of the callback: */ 5623 if ( callback == Py_None ) 5624 *uppp = NULL; 5625 /* Create the dict if it doesn't exist yet (so we don't get such a dict for every control) */ 5626 if ( self->ob_callbackdict == NULL ) 5627 if ( (self->ob_callbackdict = PyDict_New()) == NULL ) 5628 return -1; 5629 /* And store the Python callback */ 5630 sprintf(keybuf, "%x", (unsigned)which); 5631 if (PyDict_SetItemString(self->ob_callbackdict, keybuf, callback) < 0) 5632 return -1; 5633 return 0; 5634 } 5635 5636 static PyObject * 5637 callcallback(ControlObject *self, OSType which, PyObject *arglist) 5638 { 5639 char keybuf[9]; 5640 PyObject *func, *rv; 5641 5642 sprintf(keybuf, "%x", (unsigned)which); 5643 if ( self->ob_callbackdict == NULL || 5644 (func = PyDict_GetItemString(self->ob_callbackdict, keybuf)) == NULL ) { 5645 PySys_WriteStderr("Control callback %x without callback object\n", (unsigned)which); 5646 return NULL; 5647 } 5648 rv = PyEval_CallObject(func, arglist); 5649 if ( rv == NULL ) { 5650 PySys_WriteStderr("Exception in control callback %x handler\n", (unsigned)which); 5651 PyErr_Print(); 5652 } 5653 return rv; 5654 } 5655 5656 static pascal void 5657 myactionproc(ControlHandle control, SInt16 part) 5658 { 5659 ControlObject *ctl_obj; 5660 PyObject *arglist, *rv; 5661 5662 ctl_obj = (ControlObject *)CtlObj_WhichControl(control); 5663 arglist = Py_BuildValue("Oh", ctl_obj, part); 5664 rv = callcallback(ctl_obj, kMyControlActionProcTag, arglist); 5665 Py_XDECREF(arglist); 5666 Py_XDECREF(rv); 5667 } 5668 5669 static pascal ControlPartCode 5670 mykeydownproc(ControlHandle control, SInt16 keyCode, SInt16 charCode, SInt16 modifiers) 5671 { 5672 ControlObject *ctl_obj; 5673 PyObject *arglist, *rv; 5674 short c_rv = 0; 5675 5676 ctl_obj = (ControlObject *)CtlObj_WhichControl(control); 5677 arglist = Py_BuildValue("Ohhh", ctl_obj, keyCode, charCode, modifiers); 5678 rv = callcallback(ctl_obj, kControlUserPaneKeyDownProcTag, arglist); 5679 Py_XDECREF(arglist); 5680 if ( rv ) 5681 if (!PyArg_Parse(rv, "h", &c_rv)) 5682 PyErr_Clear(); 5683 Py_XDECREF(rv); 5684 return (ControlPartCode)c_rv; 5685 } 5686 5687 static pascal ControlPartCode 5688 myfocusproc(ControlHandle control, ControlPartCode part) 5689 { 5690 ControlObject *ctl_obj; 5691 PyObject *arglist, *rv; 5692 short c_rv = kControlFocusNoPart; 5693 5694 ctl_obj = (ControlObject *)CtlObj_WhichControl(control); 5695 arglist = Py_BuildValue("Oh", ctl_obj, part); 5696 rv = callcallback(ctl_obj, kControlUserPaneFocusProcTag, arglist); 5697 Py_XDECREF(arglist); 5698 if ( rv ) 5699 if (!PyArg_Parse(rv, "h", &c_rv)) 5700 PyErr_Clear(); 5701 Py_XDECREF(rv); 5702 return (ControlPartCode)c_rv; 5703 } 5704 5705 static pascal void 5706 mydrawproc(ControlHandle control, SInt16 part) 5707 { 5708 ControlObject *ctl_obj; 5709 PyObject *arglist, *rv; 5710 5711 ctl_obj = (ControlObject *)CtlObj_WhichControl(control); 5712 arglist = Py_BuildValue("Oh", ctl_obj, part); 5713 rv = callcallback(ctl_obj, kControlUserPaneDrawProcTag, arglist); 5714 Py_XDECREF(arglist); 5715 Py_XDECREF(rv); 5716 } 5717 5718 static pascal void 5719 myidleproc(ControlHandle control) 5720 { 5721 ControlObject *ctl_obj; 5722 PyObject *arglist, *rv; 5723 5724 ctl_obj = (ControlObject *)CtlObj_WhichControl(control); 5725 arglist = Py_BuildValue("O", ctl_obj); 5726 rv = callcallback(ctl_obj, kControlUserPaneIdleProcTag, arglist); 5727 Py_XDECREF(arglist); 5728 Py_XDECREF(rv); 5729 } 5730 5731 static pascal ControlPartCode 5732 myhittestproc(ControlHandle control, Point where) 5733 { 5734 ControlObject *ctl_obj; 5735 PyObject *arglist, *rv; 5736 short c_rv = -1; 5737 5738 ctl_obj = (ControlObject *)CtlObj_WhichControl(control); 5739 arglist = Py_BuildValue("OO&", ctl_obj, PyMac_BuildPoint, where); 5740 rv = callcallback(ctl_obj, kControlUserPaneHitTestProcTag, arglist); 5741 Py_XDECREF(arglist); 5742 /* Ignore errors, nothing we can do about them */ 5743 if ( rv ) 5744 if (!PyArg_Parse(rv, "h", &c_rv)) 5745 PyErr_Clear(); 5746 Py_XDECREF(rv); 5747 return (ControlPartCode)c_rv; 5748 } 5749 5750 static pascal ControlPartCode 5751 mytrackingproc(ControlHandle control, Point startPt, ControlActionUPP actionProc) 5752 { 5753 ControlObject *ctl_obj; 5754 PyObject *arglist, *rv; 5755 short c_rv = -1; 5756 5757 ctl_obj = (ControlObject *)CtlObj_WhichControl(control); 5758 /* We cannot pass the actionProc without lots of work */ 5759 arglist = Py_BuildValue("OO&", ctl_obj, PyMac_BuildPoint, startPt); 5760 rv = callcallback(ctl_obj, kControlUserPaneTrackingProcTag, arglist); 5761 Py_XDECREF(arglist); 5762 if ( rv ) 5763 if (!PyArg_Parse(rv, "h", &c_rv)) 5764 PyErr_Clear(); 5765 Py_XDECREF(rv); 5766 return (ControlPartCode)c_rv; 5767 } 5768 5769 #else /* APPLE_SUPPORTS_QUICKTIME */ 5770 5771 static PyMethodDef Ctl_methods[] = { 5772 {NULL, NULL, 0} 5773 }; 5774 5775 #endif /* APPLE_SUPPORTS_QUICKTIME */ 5776 5777 void init_Ctl(void) 5778 { 5779 PyObject *m; 5780 5781 #if APPLE_SUPPORTS_QUICKTIME 5782 PyObject *d; 5783 5784 mytracker_upp = NewControlActionUPP(mytracker); 5785 myactionproc_upp = NewControlActionUPP(myactionproc); 5786 mykeydownproc_upp = NewControlUserPaneKeyDownUPP(mykeydownproc); 5787 myfocusproc_upp = NewControlUserPaneFocusUPP(myfocusproc); 5788 mydrawproc_upp = NewControlUserPaneDrawUPP(mydrawproc); 5789 myidleproc_upp = NewControlUserPaneIdleUPP(myidleproc); 5790 myhittestproc_upp = NewControlUserPaneHitTestUPP(myhittestproc); 5791 mytrackingproc_upp = NewControlUserPaneTrackingUPP(mytrackingproc); 5792 PyMac_INIT_TOOLBOX_OBJECT_NEW(ControlHandle, CtlObj_New); 5793 PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ControlHandle, CtlObj_Convert); 5794 #endif /* APPLE_SUPPORTS_QUICKTIME */ 5795 5796 m = Py_InitModule("_Ctl", Ctl_methods); 5797 5798 #if APPLE_SUPPORTS_QUICKTIME 5799 d = PyModule_GetDict(m); 5800 Ctl_Error = PyMac_GetOSErrException(); 5801 if (Ctl_Error == NULL || 5802 PyDict_SetItemString(d, "Error", Ctl_Error) != 0) 5803 return; 5804 Control_Type.ob_type = &PyType_Type; 5805 if (PyType_Ready(&Control_Type) < 0) return; 5806 Py_INCREF(&Control_Type); 5807 PyModule_AddObject(m, "Control", (PyObject *)&Control_Type); 5808 /* Backward-compatible name */ 5809 Py_INCREF(&Control_Type); 5810 PyModule_AddObject(m, "ControlType", (PyObject *)&Control_Type); 5811 #endif /* APPLE_SUPPORTS_QUICKTIME */ 5812 } 5813 5814 /* ======================== End module _Ctl ========================= */ 5815