1 2 /* ========================== Module _Icn =========================== */ 3 4 #include "Python.h" 5 #include "pymactoolbox.h" 6 7 8 #if APPLE_SUPPORTS_QUICKTIME 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 22 static PyObject *Icn_Error; 23 24 static PyObject *Icn_GetCIcon(PyObject *_self, PyObject *_args) 25 { 26 PyObject *_res = NULL; 27 CIconHandle _rv; 28 SInt16 iconID; 29 #ifndef GetCIcon 30 PyMac_PRECHECK(GetCIcon); 31 #endif 32 if (!PyArg_ParseTuple(_args, "h", 33 &iconID)) 34 return NULL; 35 _rv = GetCIcon(iconID); 36 _res = Py_BuildValue("O&", 37 ResObj_New, _rv); 38 return _res; 39 } 40 41 static PyObject *Icn_PlotCIcon(PyObject *_self, PyObject *_args) 42 { 43 PyObject *_res = NULL; 44 Rect theRect; 45 CIconHandle theIcon; 46 #ifndef PlotCIcon 47 PyMac_PRECHECK(PlotCIcon); 48 #endif 49 if (!PyArg_ParseTuple(_args, "O&O&", 50 PyMac_GetRect, &theRect, 51 ResObj_Convert, &theIcon)) 52 return NULL; 53 PlotCIcon(&theRect, 54 theIcon); 55 Py_INCREF(Py_None); 56 _res = Py_None; 57 return _res; 58 } 59 60 static PyObject *Icn_DisposeCIcon(PyObject *_self, PyObject *_args) 61 { 62 PyObject *_res = NULL; 63 CIconHandle theIcon; 64 #ifndef DisposeCIcon 65 PyMac_PRECHECK(DisposeCIcon); 66 #endif 67 if (!PyArg_ParseTuple(_args, "O&", 68 ResObj_Convert, &theIcon)) 69 return NULL; 70 DisposeCIcon(theIcon); 71 Py_INCREF(Py_None); 72 _res = Py_None; 73 return _res; 74 } 75 76 static PyObject *Icn_GetIcon(PyObject *_self, PyObject *_args) 77 { 78 PyObject *_res = NULL; 79 Handle _rv; 80 SInt16 iconID; 81 #ifndef GetIcon 82 PyMac_PRECHECK(GetIcon); 83 #endif 84 if (!PyArg_ParseTuple(_args, "h", 85 &iconID)) 86 return NULL; 87 _rv = GetIcon(iconID); 88 _res = Py_BuildValue("O&", 89 ResObj_New, _rv); 90 return _res; 91 } 92 93 static PyObject *Icn_PlotIcon(PyObject *_self, PyObject *_args) 94 { 95 PyObject *_res = NULL; 96 Rect theRect; 97 Handle theIcon; 98 #ifndef PlotIcon 99 PyMac_PRECHECK(PlotIcon); 100 #endif 101 if (!PyArg_ParseTuple(_args, "O&O&", 102 PyMac_GetRect, &theRect, 103 ResObj_Convert, &theIcon)) 104 return NULL; 105 PlotIcon(&theRect, 106 theIcon); 107 Py_INCREF(Py_None); 108 _res = Py_None; 109 return _res; 110 } 111 112 static PyObject *Icn_PlotIconID(PyObject *_self, PyObject *_args) 113 { 114 PyObject *_res = NULL; 115 OSErr _err; 116 Rect theRect; 117 IconAlignmentType align; 118 IconTransformType transform; 119 SInt16 theResID; 120 #ifndef PlotIconID 121 PyMac_PRECHECK(PlotIconID); 122 #endif 123 if (!PyArg_ParseTuple(_args, "O&hhh", 124 PyMac_GetRect, &theRect, 125 &align, 126 &transform, 127 &theResID)) 128 return NULL; 129 _err = PlotIconID(&theRect, 130 align, 131 transform, 132 theResID); 133 if (_err != noErr) return PyMac_Error(_err); 134 Py_INCREF(Py_None); 135 _res = Py_None; 136 return _res; 137 } 138 139 static PyObject *Icn_NewIconSuite(PyObject *_self, PyObject *_args) 140 { 141 PyObject *_res = NULL; 142 OSErr _err; 143 IconSuiteRef theIconSuite; 144 #ifndef NewIconSuite 145 PyMac_PRECHECK(NewIconSuite); 146 #endif 147 if (!PyArg_ParseTuple(_args, "")) 148 return NULL; 149 _err = NewIconSuite(&theIconSuite); 150 if (_err != noErr) return PyMac_Error(_err); 151 _res = Py_BuildValue("O&", 152 ResObj_New, theIconSuite); 153 return _res; 154 } 155 156 static PyObject *Icn_AddIconToSuite(PyObject *_self, PyObject *_args) 157 { 158 PyObject *_res = NULL; 159 OSErr _err; 160 Handle theIconData; 161 IconSuiteRef theSuite; 162 ResType theType; 163 #ifndef AddIconToSuite 164 PyMac_PRECHECK(AddIconToSuite); 165 #endif 166 if (!PyArg_ParseTuple(_args, "O&O&O&", 167 ResObj_Convert, &theIconData, 168 ResObj_Convert, &theSuite, 169 PyMac_GetOSType, &theType)) 170 return NULL; 171 _err = AddIconToSuite(theIconData, 172 theSuite, 173 theType); 174 if (_err != noErr) return PyMac_Error(_err); 175 Py_INCREF(Py_None); 176 _res = Py_None; 177 return _res; 178 } 179 180 static PyObject *Icn_GetIconFromSuite(PyObject *_self, PyObject *_args) 181 { 182 PyObject *_res = NULL; 183 OSErr _err; 184 Handle theIconData; 185 IconSuiteRef theSuite; 186 ResType theType; 187 #ifndef GetIconFromSuite 188 PyMac_PRECHECK(GetIconFromSuite); 189 #endif 190 if (!PyArg_ParseTuple(_args, "O&O&", 191 ResObj_Convert, &theSuite, 192 PyMac_GetOSType, &theType)) 193 return NULL; 194 _err = GetIconFromSuite(&theIconData, 195 theSuite, 196 theType); 197 if (_err != noErr) return PyMac_Error(_err); 198 _res = Py_BuildValue("O&", 199 ResObj_New, theIconData); 200 return _res; 201 } 202 203 static PyObject *Icn_GetIconSuite(PyObject *_self, PyObject *_args) 204 { 205 PyObject *_res = NULL; 206 OSErr _err; 207 IconSuiteRef theIconSuite; 208 SInt16 theResID; 209 IconSelectorValue selector; 210 #ifndef GetIconSuite 211 PyMac_PRECHECK(GetIconSuite); 212 #endif 213 if (!PyArg_ParseTuple(_args, "hl", 214 &theResID, 215 &selector)) 216 return NULL; 217 _err = GetIconSuite(&theIconSuite, 218 theResID, 219 selector); 220 if (_err != noErr) return PyMac_Error(_err); 221 _res = Py_BuildValue("O&", 222 ResObj_New, theIconSuite); 223 return _res; 224 } 225 226 static PyObject *Icn_DisposeIconSuite(PyObject *_self, PyObject *_args) 227 { 228 PyObject *_res = NULL; 229 OSErr _err; 230 IconSuiteRef theIconSuite; 231 Boolean disposeData; 232 #ifndef DisposeIconSuite 233 PyMac_PRECHECK(DisposeIconSuite); 234 #endif 235 if (!PyArg_ParseTuple(_args, "O&b", 236 ResObj_Convert, &theIconSuite, 237 &disposeData)) 238 return NULL; 239 _err = DisposeIconSuite(theIconSuite, 240 disposeData); 241 if (_err != noErr) return PyMac_Error(_err); 242 Py_INCREF(Py_None); 243 _res = Py_None; 244 return _res; 245 } 246 247 static PyObject *Icn_PlotIconSuite(PyObject *_self, PyObject *_args) 248 { 249 PyObject *_res = NULL; 250 OSErr _err; 251 Rect theRect; 252 IconAlignmentType align; 253 IconTransformType transform; 254 IconSuiteRef theIconSuite; 255 #ifndef PlotIconSuite 256 PyMac_PRECHECK(PlotIconSuite); 257 #endif 258 if (!PyArg_ParseTuple(_args, "O&hhO&", 259 PyMac_GetRect, &theRect, 260 &align, 261 &transform, 262 ResObj_Convert, &theIconSuite)) 263 return NULL; 264 _err = PlotIconSuite(&theRect, 265 align, 266 transform, 267 theIconSuite); 268 if (_err != noErr) return PyMac_Error(_err); 269 Py_INCREF(Py_None); 270 _res = Py_None; 271 return _res; 272 } 273 274 static PyObject *Icn_LoadIconCache(PyObject *_self, PyObject *_args) 275 { 276 PyObject *_res = NULL; 277 OSErr _err; 278 Rect theRect; 279 IconAlignmentType align; 280 IconTransformType transform; 281 IconCacheRef theIconCache; 282 #ifndef LoadIconCache 283 PyMac_PRECHECK(LoadIconCache); 284 #endif 285 if (!PyArg_ParseTuple(_args, "O&hhO&", 286 PyMac_GetRect, &theRect, 287 &align, 288 &transform, 289 ResObj_Convert, &theIconCache)) 290 return NULL; 291 _err = LoadIconCache(&theRect, 292 align, 293 transform, 294 theIconCache); 295 if (_err != noErr) return PyMac_Error(_err); 296 Py_INCREF(Py_None); 297 _res = Py_None; 298 return _res; 299 } 300 301 static PyObject *Icn_GetLabel(PyObject *_self, PyObject *_args) 302 { 303 PyObject *_res = NULL; 304 OSErr _err; 305 SInt16 labelNumber; 306 RGBColor labelColor; 307 Str255 labelString; 308 #ifndef GetLabel 309 PyMac_PRECHECK(GetLabel); 310 #endif 311 if (!PyArg_ParseTuple(_args, "hO&", 312 &labelNumber, 313 PyMac_GetStr255, labelString)) 314 return NULL; 315 _err = GetLabel(labelNumber, 316 &labelColor, 317 labelString); 318 if (_err != noErr) return PyMac_Error(_err); 319 _res = Py_BuildValue("O&", 320 QdRGB_New, &labelColor); 321 return _res; 322 } 323 324 static PyObject *Icn_PtInIconID(PyObject *_self, PyObject *_args) 325 { 326 PyObject *_res = NULL; 327 Boolean _rv; 328 Point testPt; 329 Rect iconRect; 330 IconAlignmentType align; 331 SInt16 iconID; 332 #ifndef PtInIconID 333 PyMac_PRECHECK(PtInIconID); 334 #endif 335 if (!PyArg_ParseTuple(_args, "O&O&hh", 336 PyMac_GetPoint, &testPt, 337 PyMac_GetRect, &iconRect, 338 &align, 339 &iconID)) 340 return NULL; 341 _rv = PtInIconID(testPt, 342 &iconRect, 343 align, 344 iconID); 345 _res = Py_BuildValue("b", 346 _rv); 347 return _res; 348 } 349 350 static PyObject *Icn_PtInIconSuite(PyObject *_self, PyObject *_args) 351 { 352 PyObject *_res = NULL; 353 Boolean _rv; 354 Point testPt; 355 Rect iconRect; 356 IconAlignmentType align; 357 IconSuiteRef theIconSuite; 358 #ifndef PtInIconSuite 359 PyMac_PRECHECK(PtInIconSuite); 360 #endif 361 if (!PyArg_ParseTuple(_args, "O&O&hO&", 362 PyMac_GetPoint, &testPt, 363 PyMac_GetRect, &iconRect, 364 &align, 365 ResObj_Convert, &theIconSuite)) 366 return NULL; 367 _rv = PtInIconSuite(testPt, 368 &iconRect, 369 align, 370 theIconSuite); 371 _res = Py_BuildValue("b", 372 _rv); 373 return _res; 374 } 375 376 static PyObject *Icn_RectInIconID(PyObject *_self, PyObject *_args) 377 { 378 PyObject *_res = NULL; 379 Boolean _rv; 380 Rect testRect; 381 Rect iconRect; 382 IconAlignmentType align; 383 SInt16 iconID; 384 #ifndef RectInIconID 385 PyMac_PRECHECK(RectInIconID); 386 #endif 387 if (!PyArg_ParseTuple(_args, "O&O&hh", 388 PyMac_GetRect, &testRect, 389 PyMac_GetRect, &iconRect, 390 &align, 391 &iconID)) 392 return NULL; 393 _rv = RectInIconID(&testRect, 394 &iconRect, 395 align, 396 iconID); 397 _res = Py_BuildValue("b", 398 _rv); 399 return _res; 400 } 401 402 static PyObject *Icn_RectInIconSuite(PyObject *_self, PyObject *_args) 403 { 404 PyObject *_res = NULL; 405 Boolean _rv; 406 Rect testRect; 407 Rect iconRect; 408 IconAlignmentType align; 409 IconSuiteRef theIconSuite; 410 #ifndef RectInIconSuite 411 PyMac_PRECHECK(RectInIconSuite); 412 #endif 413 if (!PyArg_ParseTuple(_args, "O&O&hO&", 414 PyMac_GetRect, &testRect, 415 PyMac_GetRect, &iconRect, 416 &align, 417 ResObj_Convert, &theIconSuite)) 418 return NULL; 419 _rv = RectInIconSuite(&testRect, 420 &iconRect, 421 align, 422 theIconSuite); 423 _res = Py_BuildValue("b", 424 _rv); 425 return _res; 426 } 427 428 static PyObject *Icn_IconIDToRgn(PyObject *_self, PyObject *_args) 429 { 430 PyObject *_res = NULL; 431 OSErr _err; 432 RgnHandle theRgn; 433 Rect iconRect; 434 IconAlignmentType align; 435 SInt16 iconID; 436 #ifndef IconIDToRgn 437 PyMac_PRECHECK(IconIDToRgn); 438 #endif 439 if (!PyArg_ParseTuple(_args, "O&O&hh", 440 ResObj_Convert, &theRgn, 441 PyMac_GetRect, &iconRect, 442 &align, 443 &iconID)) 444 return NULL; 445 _err = IconIDToRgn(theRgn, 446 &iconRect, 447 align, 448 iconID); 449 if (_err != noErr) return PyMac_Error(_err); 450 Py_INCREF(Py_None); 451 _res = Py_None; 452 return _res; 453 } 454 455 static PyObject *Icn_IconSuiteToRgn(PyObject *_self, PyObject *_args) 456 { 457 PyObject *_res = NULL; 458 OSErr _err; 459 RgnHandle theRgn; 460 Rect iconRect; 461 IconAlignmentType align; 462 IconSuiteRef theIconSuite; 463 #ifndef IconSuiteToRgn 464 PyMac_PRECHECK(IconSuiteToRgn); 465 #endif 466 if (!PyArg_ParseTuple(_args, "O&O&hO&", 467 ResObj_Convert, &theRgn, 468 PyMac_GetRect, &iconRect, 469 &align, 470 ResObj_Convert, &theIconSuite)) 471 return NULL; 472 _err = IconSuiteToRgn(theRgn, 473 &iconRect, 474 align, 475 theIconSuite); 476 if (_err != noErr) return PyMac_Error(_err); 477 Py_INCREF(Py_None); 478 _res = Py_None; 479 return _res; 480 } 481 482 static PyObject *Icn_SetSuiteLabel(PyObject *_self, PyObject *_args) 483 { 484 PyObject *_res = NULL; 485 OSErr _err; 486 IconSuiteRef theSuite; 487 SInt16 theLabel; 488 #ifndef SetSuiteLabel 489 PyMac_PRECHECK(SetSuiteLabel); 490 #endif 491 if (!PyArg_ParseTuple(_args, "O&h", 492 ResObj_Convert, &theSuite, 493 &theLabel)) 494 return NULL; 495 _err = SetSuiteLabel(theSuite, 496 theLabel); 497 if (_err != noErr) return PyMac_Error(_err); 498 Py_INCREF(Py_None); 499 _res = Py_None; 500 return _res; 501 } 502 503 static PyObject *Icn_GetSuiteLabel(PyObject *_self, PyObject *_args) 504 { 505 PyObject *_res = NULL; 506 SInt16 _rv; 507 IconSuiteRef theSuite; 508 #ifndef GetSuiteLabel 509 PyMac_PRECHECK(GetSuiteLabel); 510 #endif 511 if (!PyArg_ParseTuple(_args, "O&", 512 ResObj_Convert, &theSuite)) 513 return NULL; 514 _rv = GetSuiteLabel(theSuite); 515 _res = Py_BuildValue("h", 516 _rv); 517 return _res; 518 } 519 520 static PyObject *Icn_PlotIconHandle(PyObject *_self, PyObject *_args) 521 { 522 PyObject *_res = NULL; 523 OSErr _err; 524 Rect theRect; 525 IconAlignmentType align; 526 IconTransformType transform; 527 Handle theIcon; 528 #ifndef PlotIconHandle 529 PyMac_PRECHECK(PlotIconHandle); 530 #endif 531 if (!PyArg_ParseTuple(_args, "O&hhO&", 532 PyMac_GetRect, &theRect, 533 &align, 534 &transform, 535 ResObj_Convert, &theIcon)) 536 return NULL; 537 _err = PlotIconHandle(&theRect, 538 align, 539 transform, 540 theIcon); 541 if (_err != noErr) return PyMac_Error(_err); 542 Py_INCREF(Py_None); 543 _res = Py_None; 544 return _res; 545 } 546 547 static PyObject *Icn_PlotSICNHandle(PyObject *_self, PyObject *_args) 548 { 549 PyObject *_res = NULL; 550 OSErr _err; 551 Rect theRect; 552 IconAlignmentType align; 553 IconTransformType transform; 554 Handle theSICN; 555 #ifndef PlotSICNHandle 556 PyMac_PRECHECK(PlotSICNHandle); 557 #endif 558 if (!PyArg_ParseTuple(_args, "O&hhO&", 559 PyMac_GetRect, &theRect, 560 &align, 561 &transform, 562 ResObj_Convert, &theSICN)) 563 return NULL; 564 _err = PlotSICNHandle(&theRect, 565 align, 566 transform, 567 theSICN); 568 if (_err != noErr) return PyMac_Error(_err); 569 Py_INCREF(Py_None); 570 _res = Py_None; 571 return _res; 572 } 573 574 static PyObject *Icn_PlotCIconHandle(PyObject *_self, PyObject *_args) 575 { 576 PyObject *_res = NULL; 577 OSErr _err; 578 Rect theRect; 579 IconAlignmentType align; 580 IconTransformType transform; 581 CIconHandle theCIcon; 582 #ifndef PlotCIconHandle 583 PyMac_PRECHECK(PlotCIconHandle); 584 #endif 585 if (!PyArg_ParseTuple(_args, "O&hhO&", 586 PyMac_GetRect, &theRect, 587 &align, 588 &transform, 589 ResObj_Convert, &theCIcon)) 590 return NULL; 591 _err = PlotCIconHandle(&theRect, 592 align, 593 transform, 594 theCIcon); 595 if (_err != noErr) return PyMac_Error(_err); 596 Py_INCREF(Py_None); 597 _res = Py_None; 598 return _res; 599 } 600 601 static PyObject *Icn_IconRefToIconFamily(PyObject *_self, PyObject *_args) 602 { 603 PyObject *_res = NULL; 604 OSErr _err; 605 IconRef theIconRef; 606 IconSelectorValue whichIcons; 607 IconFamilyHandle iconFamily; 608 #ifndef IconRefToIconFamily 609 PyMac_PRECHECK(IconRefToIconFamily); 610 #endif 611 if (!PyArg_ParseTuple(_args, "O&l", 612 ResObj_Convert, &theIconRef, 613 &whichIcons)) 614 return NULL; 615 _err = IconRefToIconFamily(theIconRef, 616 whichIcons, 617 &iconFamily); 618 if (_err != noErr) return PyMac_Error(_err); 619 _res = Py_BuildValue("O&", 620 ResObj_New, iconFamily); 621 return _res; 622 } 623 624 static PyObject *Icn_IconFamilyToIconSuite(PyObject *_self, PyObject *_args) 625 { 626 PyObject *_res = NULL; 627 OSErr _err; 628 IconFamilyHandle iconFamily; 629 IconSelectorValue whichIcons; 630 IconSuiteRef iconSuite; 631 #ifndef IconFamilyToIconSuite 632 PyMac_PRECHECK(IconFamilyToIconSuite); 633 #endif 634 if (!PyArg_ParseTuple(_args, "O&l", 635 ResObj_Convert, &iconFamily, 636 &whichIcons)) 637 return NULL; 638 _err = IconFamilyToIconSuite(iconFamily, 639 whichIcons, 640 &iconSuite); 641 if (_err != noErr) return PyMac_Error(_err); 642 _res = Py_BuildValue("O&", 643 ResObj_New, iconSuite); 644 return _res; 645 } 646 647 static PyObject *Icn_IconSuiteToIconFamily(PyObject *_self, PyObject *_args) 648 { 649 PyObject *_res = NULL; 650 OSErr _err; 651 IconSuiteRef iconSuite; 652 IconSelectorValue whichIcons; 653 IconFamilyHandle iconFamily; 654 #ifndef IconSuiteToIconFamily 655 PyMac_PRECHECK(IconSuiteToIconFamily); 656 #endif 657 if (!PyArg_ParseTuple(_args, "O&l", 658 ResObj_Convert, &iconSuite, 659 &whichIcons)) 660 return NULL; 661 _err = IconSuiteToIconFamily(iconSuite, 662 whichIcons, 663 &iconFamily); 664 if (_err != noErr) return PyMac_Error(_err); 665 _res = Py_BuildValue("O&", 666 ResObj_New, iconFamily); 667 return _res; 668 } 669 670 static PyObject *Icn_SetIconFamilyData(PyObject *_self, PyObject *_args) 671 { 672 PyObject *_res = NULL; 673 OSErr _err; 674 IconFamilyHandle iconFamily; 675 OSType iconType; 676 Handle h; 677 #ifndef SetIconFamilyData 678 PyMac_PRECHECK(SetIconFamilyData); 679 #endif 680 if (!PyArg_ParseTuple(_args, "O&O&O&", 681 ResObj_Convert, &iconFamily, 682 PyMac_GetOSType, &iconType, 683 ResObj_Convert, &h)) 684 return NULL; 685 _err = SetIconFamilyData(iconFamily, 686 iconType, 687 h); 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 *Icn_GetIconFamilyData(PyObject *_self, PyObject *_args) 695 { 696 PyObject *_res = NULL; 697 OSErr _err; 698 IconFamilyHandle iconFamily; 699 OSType iconType; 700 Handle h; 701 #ifndef GetIconFamilyData 702 PyMac_PRECHECK(GetIconFamilyData); 703 #endif 704 if (!PyArg_ParseTuple(_args, "O&O&O&", 705 ResObj_Convert, &iconFamily, 706 PyMac_GetOSType, &iconType, 707 ResObj_Convert, &h)) 708 return NULL; 709 _err = GetIconFamilyData(iconFamily, 710 iconType, 711 h); 712 if (_err != noErr) return PyMac_Error(_err); 713 Py_INCREF(Py_None); 714 _res = Py_None; 715 return _res; 716 } 717 718 static PyObject *Icn_GetIconRefOwners(PyObject *_self, PyObject *_args) 719 { 720 PyObject *_res = NULL; 721 OSErr _err; 722 IconRef theIconRef; 723 UInt16 owners; 724 #ifndef GetIconRefOwners 725 PyMac_PRECHECK(GetIconRefOwners); 726 #endif 727 if (!PyArg_ParseTuple(_args, "O&", 728 ResObj_Convert, &theIconRef)) 729 return NULL; 730 _err = GetIconRefOwners(theIconRef, 731 &owners); 732 if (_err != noErr) return PyMac_Error(_err); 733 _res = Py_BuildValue("H", 734 owners); 735 return _res; 736 } 737 738 static PyObject *Icn_AcquireIconRef(PyObject *_self, PyObject *_args) 739 { 740 PyObject *_res = NULL; 741 OSErr _err; 742 IconRef theIconRef; 743 #ifndef AcquireIconRef 744 PyMac_PRECHECK(AcquireIconRef); 745 #endif 746 if (!PyArg_ParseTuple(_args, "O&", 747 ResObj_Convert, &theIconRef)) 748 return NULL; 749 _err = AcquireIconRef(theIconRef); 750 if (_err != noErr) return PyMac_Error(_err); 751 Py_INCREF(Py_None); 752 _res = Py_None; 753 return _res; 754 } 755 756 static PyObject *Icn_ReleaseIconRef(PyObject *_self, PyObject *_args) 757 { 758 PyObject *_res = NULL; 759 OSErr _err; 760 IconRef theIconRef; 761 #ifndef ReleaseIconRef 762 PyMac_PRECHECK(ReleaseIconRef); 763 #endif 764 if (!PyArg_ParseTuple(_args, "O&", 765 ResObj_Convert, &theIconRef)) 766 return NULL; 767 _err = ReleaseIconRef(theIconRef); 768 if (_err != noErr) return PyMac_Error(_err); 769 Py_INCREF(Py_None); 770 _res = Py_None; 771 return _res; 772 } 773 774 static PyObject *Icn_GetIconRefFromFile(PyObject *_self, PyObject *_args) 775 { 776 PyObject *_res = NULL; 777 OSErr _err; 778 FSSpec theFile; 779 IconRef theIconRef; 780 SInt16 theLabel; 781 #ifndef GetIconRefFromFile 782 PyMac_PRECHECK(GetIconRefFromFile); 783 #endif 784 if (!PyArg_ParseTuple(_args, "O&", 785 PyMac_GetFSSpec, &theFile)) 786 return NULL; 787 _err = GetIconRefFromFile(&theFile, 788 &theIconRef, 789 &theLabel); 790 if (_err != noErr) return PyMac_Error(_err); 791 _res = Py_BuildValue("O&h", 792 ResObj_New, theIconRef, 793 theLabel); 794 return _res; 795 } 796 797 static PyObject *Icn_GetIconRef(PyObject *_self, PyObject *_args) 798 { 799 PyObject *_res = NULL; 800 OSErr _err; 801 SInt16 vRefNum; 802 OSType creator; 803 OSType iconType; 804 IconRef theIconRef; 805 #ifndef GetIconRef 806 PyMac_PRECHECK(GetIconRef); 807 #endif 808 if (!PyArg_ParseTuple(_args, "hO&O&", 809 &vRefNum, 810 PyMac_GetOSType, &creator, 811 PyMac_GetOSType, &iconType)) 812 return NULL; 813 _err = GetIconRef(vRefNum, 814 creator, 815 iconType, 816 &theIconRef); 817 if (_err != noErr) return PyMac_Error(_err); 818 _res = Py_BuildValue("O&", 819 ResObj_New, theIconRef); 820 return _res; 821 } 822 823 static PyObject *Icn_GetIconRefFromFolder(PyObject *_self, PyObject *_args) 824 { 825 PyObject *_res = NULL; 826 OSErr _err; 827 SInt16 vRefNum; 828 SInt32 parentFolderID; 829 SInt32 folderID; 830 SInt8 attributes; 831 SInt8 accessPrivileges; 832 IconRef theIconRef; 833 #ifndef GetIconRefFromFolder 834 PyMac_PRECHECK(GetIconRefFromFolder); 835 #endif 836 if (!PyArg_ParseTuple(_args, "hllbb", 837 &vRefNum, 838 &parentFolderID, 839 &folderID, 840 &attributes, 841 &accessPrivileges)) 842 return NULL; 843 _err = GetIconRefFromFolder(vRefNum, 844 parentFolderID, 845 folderID, 846 attributes, 847 accessPrivileges, 848 &theIconRef); 849 if (_err != noErr) return PyMac_Error(_err); 850 _res = Py_BuildValue("O&", 851 ResObj_New, theIconRef); 852 return _res; 853 } 854 855 static PyObject *Icn_RegisterIconRefFromIconFamily(PyObject *_self, PyObject *_args) 856 { 857 PyObject *_res = NULL; 858 OSErr _err; 859 OSType creator; 860 OSType iconType; 861 IconFamilyHandle iconFamily; 862 IconRef theIconRef; 863 #ifndef RegisterIconRefFromIconFamily 864 PyMac_PRECHECK(RegisterIconRefFromIconFamily); 865 #endif 866 if (!PyArg_ParseTuple(_args, "O&O&O&", 867 PyMac_GetOSType, &creator, 868 PyMac_GetOSType, &iconType, 869 ResObj_Convert, &iconFamily)) 870 return NULL; 871 _err = RegisterIconRefFromIconFamily(creator, 872 iconType, 873 iconFamily, 874 &theIconRef); 875 if (_err != noErr) return PyMac_Error(_err); 876 _res = Py_BuildValue("O&", 877 ResObj_New, theIconRef); 878 return _res; 879 } 880 881 static PyObject *Icn_RegisterIconRefFromResource(PyObject *_self, PyObject *_args) 882 { 883 PyObject *_res = NULL; 884 OSErr _err; 885 OSType creator; 886 OSType iconType; 887 FSSpec resourceFile; 888 SInt16 resourceID; 889 IconRef theIconRef; 890 #ifndef RegisterIconRefFromResource 891 PyMac_PRECHECK(RegisterIconRefFromResource); 892 #endif 893 if (!PyArg_ParseTuple(_args, "O&O&O&h", 894 PyMac_GetOSType, &creator, 895 PyMac_GetOSType, &iconType, 896 PyMac_GetFSSpec, &resourceFile, 897 &resourceID)) 898 return NULL; 899 _err = RegisterIconRefFromResource(creator, 900 iconType, 901 &resourceFile, 902 resourceID, 903 &theIconRef); 904 if (_err != noErr) return PyMac_Error(_err); 905 _res = Py_BuildValue("O&", 906 ResObj_New, theIconRef); 907 return _res; 908 } 909 910 static PyObject *Icn_RegisterIconRefFromFSRef(PyObject *_self, PyObject *_args) 911 { 912 PyObject *_res = NULL; 913 OSStatus _err; 914 OSType creator; 915 OSType iconType; 916 FSRef iconFile; 917 IconRef theIconRef; 918 #ifndef RegisterIconRefFromFSRef 919 PyMac_PRECHECK(RegisterIconRefFromFSRef); 920 #endif 921 if (!PyArg_ParseTuple(_args, "O&O&O&", 922 PyMac_GetOSType, &creator, 923 PyMac_GetOSType, &iconType, 924 PyMac_GetFSRef, &iconFile)) 925 return NULL; 926 _err = RegisterIconRefFromFSRef(creator, 927 iconType, 928 &iconFile, 929 &theIconRef); 930 if (_err != noErr) return PyMac_Error(_err); 931 _res = Py_BuildValue("O&", 932 ResObj_New, theIconRef); 933 return _res; 934 } 935 936 static PyObject *Icn_UnregisterIconRef(PyObject *_self, PyObject *_args) 937 { 938 PyObject *_res = NULL; 939 OSErr _err; 940 OSType creator; 941 OSType iconType; 942 #ifndef UnregisterIconRef 943 PyMac_PRECHECK(UnregisterIconRef); 944 #endif 945 if (!PyArg_ParseTuple(_args, "O&O&", 946 PyMac_GetOSType, &creator, 947 PyMac_GetOSType, &iconType)) 948 return NULL; 949 _err = UnregisterIconRef(creator, 950 iconType); 951 if (_err != noErr) return PyMac_Error(_err); 952 Py_INCREF(Py_None); 953 _res = Py_None; 954 return _res; 955 } 956 957 static PyObject *Icn_UpdateIconRef(PyObject *_self, PyObject *_args) 958 { 959 PyObject *_res = NULL; 960 OSErr _err; 961 IconRef theIconRef; 962 #ifndef UpdateIconRef 963 PyMac_PRECHECK(UpdateIconRef); 964 #endif 965 if (!PyArg_ParseTuple(_args, "O&", 966 ResObj_Convert, &theIconRef)) 967 return NULL; 968 _err = UpdateIconRef(theIconRef); 969 if (_err != noErr) return PyMac_Error(_err); 970 Py_INCREF(Py_None); 971 _res = Py_None; 972 return _res; 973 } 974 975 static PyObject *Icn_OverrideIconRefFromResource(PyObject *_self, PyObject *_args) 976 { 977 PyObject *_res = NULL; 978 OSErr _err; 979 IconRef theIconRef; 980 FSSpec resourceFile; 981 SInt16 resourceID; 982 #ifndef OverrideIconRefFromResource 983 PyMac_PRECHECK(OverrideIconRefFromResource); 984 #endif 985 if (!PyArg_ParseTuple(_args, "O&O&h", 986 ResObj_Convert, &theIconRef, 987 PyMac_GetFSSpec, &resourceFile, 988 &resourceID)) 989 return NULL; 990 _err = OverrideIconRefFromResource(theIconRef, 991 &resourceFile, 992 resourceID); 993 if (_err != noErr) return PyMac_Error(_err); 994 Py_INCREF(Py_None); 995 _res = Py_None; 996 return _res; 997 } 998 999 static PyObject *Icn_OverrideIconRef(PyObject *_self, PyObject *_args) 1000 { 1001 PyObject *_res = NULL; 1002 OSErr _err; 1003 IconRef oldIconRef; 1004 IconRef newIconRef; 1005 #ifndef OverrideIconRef 1006 PyMac_PRECHECK(OverrideIconRef); 1007 #endif 1008 if (!PyArg_ParseTuple(_args, "O&O&", 1009 ResObj_Convert, &oldIconRef, 1010 ResObj_Convert, &newIconRef)) 1011 return NULL; 1012 _err = OverrideIconRef(oldIconRef, 1013 newIconRef); 1014 if (_err != noErr) return PyMac_Error(_err); 1015 Py_INCREF(Py_None); 1016 _res = Py_None; 1017 return _res; 1018 } 1019 1020 static PyObject *Icn_RemoveIconRefOverride(PyObject *_self, PyObject *_args) 1021 { 1022 PyObject *_res = NULL; 1023 OSErr _err; 1024 IconRef theIconRef; 1025 #ifndef RemoveIconRefOverride 1026 PyMac_PRECHECK(RemoveIconRefOverride); 1027 #endif 1028 if (!PyArg_ParseTuple(_args, "O&", 1029 ResObj_Convert, &theIconRef)) 1030 return NULL; 1031 _err = RemoveIconRefOverride(theIconRef); 1032 if (_err != noErr) return PyMac_Error(_err); 1033 Py_INCREF(Py_None); 1034 _res = Py_None; 1035 return _res; 1036 } 1037 1038 static PyObject *Icn_CompositeIconRef(PyObject *_self, PyObject *_args) 1039 { 1040 PyObject *_res = NULL; 1041 OSErr _err; 1042 IconRef backgroundIconRef; 1043 IconRef foregroundIconRef; 1044 IconRef compositeIconRef; 1045 #ifndef CompositeIconRef 1046 PyMac_PRECHECK(CompositeIconRef); 1047 #endif 1048 if (!PyArg_ParseTuple(_args, "O&O&", 1049 ResObj_Convert, &backgroundIconRef, 1050 ResObj_Convert, &foregroundIconRef)) 1051 return NULL; 1052 _err = CompositeIconRef(backgroundIconRef, 1053 foregroundIconRef, 1054 &compositeIconRef); 1055 if (_err != noErr) return PyMac_Error(_err); 1056 _res = Py_BuildValue("O&", 1057 ResObj_New, compositeIconRef); 1058 return _res; 1059 } 1060 1061 static PyObject *Icn_IsIconRefComposite(PyObject *_self, PyObject *_args) 1062 { 1063 PyObject *_res = NULL; 1064 OSErr _err; 1065 IconRef compositeIconRef; 1066 IconRef backgroundIconRef; 1067 IconRef foregroundIconRef; 1068 #ifndef IsIconRefComposite 1069 PyMac_PRECHECK(IsIconRefComposite); 1070 #endif 1071 if (!PyArg_ParseTuple(_args, "O&", 1072 ResObj_Convert, &compositeIconRef)) 1073 return NULL; 1074 _err = IsIconRefComposite(compositeIconRef, 1075 &backgroundIconRef, 1076 &foregroundIconRef); 1077 if (_err != noErr) return PyMac_Error(_err); 1078 _res = Py_BuildValue("O&O&", 1079 ResObj_New, backgroundIconRef, 1080 ResObj_New, foregroundIconRef); 1081 return _res; 1082 } 1083 1084 static PyObject *Icn_IsValidIconRef(PyObject *_self, PyObject *_args) 1085 { 1086 PyObject *_res = NULL; 1087 Boolean _rv; 1088 IconRef theIconRef; 1089 #ifndef IsValidIconRef 1090 PyMac_PRECHECK(IsValidIconRef); 1091 #endif 1092 if (!PyArg_ParseTuple(_args, "O&", 1093 ResObj_Convert, &theIconRef)) 1094 return NULL; 1095 _rv = IsValidIconRef(theIconRef); 1096 _res = Py_BuildValue("b", 1097 _rv); 1098 return _res; 1099 } 1100 1101 static PyObject *Icn_PlotIconRef(PyObject *_self, PyObject *_args) 1102 { 1103 PyObject *_res = NULL; 1104 OSErr _err; 1105 Rect theRect; 1106 IconAlignmentType align; 1107 IconTransformType transform; 1108 IconServicesUsageFlags theIconServicesUsageFlags; 1109 IconRef theIconRef; 1110 #ifndef PlotIconRef 1111 PyMac_PRECHECK(PlotIconRef); 1112 #endif 1113 if (!PyArg_ParseTuple(_args, "O&hhlO&", 1114 PyMac_GetRect, &theRect, 1115 &align, 1116 &transform, 1117 &theIconServicesUsageFlags, 1118 ResObj_Convert, &theIconRef)) 1119 return NULL; 1120 _err = PlotIconRef(&theRect, 1121 align, 1122 transform, 1123 theIconServicesUsageFlags, 1124 theIconRef); 1125 if (_err != noErr) return PyMac_Error(_err); 1126 Py_INCREF(Py_None); 1127 _res = Py_None; 1128 return _res; 1129 } 1130 1131 static PyObject *Icn_PtInIconRef(PyObject *_self, PyObject *_args) 1132 { 1133 PyObject *_res = NULL; 1134 Boolean _rv; 1135 Point testPt; 1136 Rect iconRect; 1137 IconAlignmentType align; 1138 IconServicesUsageFlags theIconServicesUsageFlags; 1139 IconRef theIconRef; 1140 #ifndef PtInIconRef 1141 PyMac_PRECHECK(PtInIconRef); 1142 #endif 1143 if (!PyArg_ParseTuple(_args, "O&O&hlO&", 1144 PyMac_GetPoint, &testPt, 1145 PyMac_GetRect, &iconRect, 1146 &align, 1147 &theIconServicesUsageFlags, 1148 ResObj_Convert, &theIconRef)) 1149 return NULL; 1150 _rv = PtInIconRef(&testPt, 1151 &iconRect, 1152 align, 1153 theIconServicesUsageFlags, 1154 theIconRef); 1155 _res = Py_BuildValue("b", 1156 _rv); 1157 return _res; 1158 } 1159 1160 static PyObject *Icn_RectInIconRef(PyObject *_self, PyObject *_args) 1161 { 1162 PyObject *_res = NULL; 1163 Boolean _rv; 1164 Rect testRect; 1165 Rect iconRect; 1166 IconAlignmentType align; 1167 IconServicesUsageFlags iconServicesUsageFlags; 1168 IconRef theIconRef; 1169 #ifndef RectInIconRef 1170 PyMac_PRECHECK(RectInIconRef); 1171 #endif 1172 if (!PyArg_ParseTuple(_args, "O&O&hlO&", 1173 PyMac_GetRect, &testRect, 1174 PyMac_GetRect, &iconRect, 1175 &align, 1176 &iconServicesUsageFlags, 1177 ResObj_Convert, &theIconRef)) 1178 return NULL; 1179 _rv = RectInIconRef(&testRect, 1180 &iconRect, 1181 align, 1182 iconServicesUsageFlags, 1183 theIconRef); 1184 _res = Py_BuildValue("b", 1185 _rv); 1186 return _res; 1187 } 1188 1189 static PyObject *Icn_IconRefToRgn(PyObject *_self, PyObject *_args) 1190 { 1191 PyObject *_res = NULL; 1192 OSErr _err; 1193 RgnHandle theRgn; 1194 Rect iconRect; 1195 IconAlignmentType align; 1196 IconServicesUsageFlags iconServicesUsageFlags; 1197 IconRef theIconRef; 1198 #ifndef IconRefToRgn 1199 PyMac_PRECHECK(IconRefToRgn); 1200 #endif 1201 if (!PyArg_ParseTuple(_args, "O&O&hlO&", 1202 ResObj_Convert, &theRgn, 1203 PyMac_GetRect, &iconRect, 1204 &align, 1205 &iconServicesUsageFlags, 1206 ResObj_Convert, &theIconRef)) 1207 return NULL; 1208 _err = IconRefToRgn(theRgn, 1209 &iconRect, 1210 align, 1211 iconServicesUsageFlags, 1212 theIconRef); 1213 if (_err != noErr) return PyMac_Error(_err); 1214 Py_INCREF(Py_None); 1215 _res = Py_None; 1216 return _res; 1217 } 1218 1219 static PyObject *Icn_GetIconSizesFromIconRef(PyObject *_self, PyObject *_args) 1220 { 1221 PyObject *_res = NULL; 1222 OSErr _err; 1223 IconSelectorValue iconSelectorInput; 1224 IconSelectorValue iconSelectorOutputPtr; 1225 IconServicesUsageFlags iconServicesUsageFlags; 1226 IconRef theIconRef; 1227 #ifndef GetIconSizesFromIconRef 1228 PyMac_PRECHECK(GetIconSizesFromIconRef); 1229 #endif 1230 if (!PyArg_ParseTuple(_args, "llO&", 1231 &iconSelectorInput, 1232 &iconServicesUsageFlags, 1233 ResObj_Convert, &theIconRef)) 1234 return NULL; 1235 _err = GetIconSizesFromIconRef(iconSelectorInput, 1236 &iconSelectorOutputPtr, 1237 iconServicesUsageFlags, 1238 theIconRef); 1239 if (_err != noErr) return PyMac_Error(_err); 1240 _res = Py_BuildValue("l", 1241 iconSelectorOutputPtr); 1242 return _res; 1243 } 1244 1245 static PyObject *Icn_FlushIconRefs(PyObject *_self, PyObject *_args) 1246 { 1247 PyObject *_res = NULL; 1248 OSErr _err; 1249 OSType creator; 1250 OSType iconType; 1251 #ifndef FlushIconRefs 1252 PyMac_PRECHECK(FlushIconRefs); 1253 #endif 1254 if (!PyArg_ParseTuple(_args, "O&O&", 1255 PyMac_GetOSType, &creator, 1256 PyMac_GetOSType, &iconType)) 1257 return NULL; 1258 _err = FlushIconRefs(creator, 1259 iconType); 1260 if (_err != noErr) return PyMac_Error(_err); 1261 Py_INCREF(Py_None); 1262 _res = Py_None; 1263 return _res; 1264 } 1265 1266 static PyObject *Icn_FlushIconRefsByVolume(PyObject *_self, PyObject *_args) 1267 { 1268 PyObject *_res = NULL; 1269 OSErr _err; 1270 SInt16 vRefNum; 1271 #ifndef FlushIconRefsByVolume 1272 PyMac_PRECHECK(FlushIconRefsByVolume); 1273 #endif 1274 if (!PyArg_ParseTuple(_args, "h", 1275 &vRefNum)) 1276 return NULL; 1277 _err = FlushIconRefsByVolume(vRefNum); 1278 if (_err != noErr) return PyMac_Error(_err); 1279 Py_INCREF(Py_None); 1280 _res = Py_None; 1281 return _res; 1282 } 1283 1284 static PyObject *Icn_SetCustomIconsEnabled(PyObject *_self, PyObject *_args) 1285 { 1286 PyObject *_res = NULL; 1287 OSErr _err; 1288 SInt16 vRefNum; 1289 Boolean enableCustomIcons; 1290 #ifndef SetCustomIconsEnabled 1291 PyMac_PRECHECK(SetCustomIconsEnabled); 1292 #endif 1293 if (!PyArg_ParseTuple(_args, "hb", 1294 &vRefNum, 1295 &enableCustomIcons)) 1296 return NULL; 1297 _err = SetCustomIconsEnabled(vRefNum, 1298 enableCustomIcons); 1299 if (_err != noErr) return PyMac_Error(_err); 1300 Py_INCREF(Py_None); 1301 _res = Py_None; 1302 return _res; 1303 } 1304 1305 static PyObject *Icn_GetCustomIconsEnabled(PyObject *_self, PyObject *_args) 1306 { 1307 PyObject *_res = NULL; 1308 OSErr _err; 1309 SInt16 vRefNum; 1310 Boolean customIconsEnabled; 1311 #ifndef GetCustomIconsEnabled 1312 PyMac_PRECHECK(GetCustomIconsEnabled); 1313 #endif 1314 if (!PyArg_ParseTuple(_args, "h", 1315 &vRefNum)) 1316 return NULL; 1317 _err = GetCustomIconsEnabled(vRefNum, 1318 &customIconsEnabled); 1319 if (_err != noErr) return PyMac_Error(_err); 1320 _res = Py_BuildValue("b", 1321 customIconsEnabled); 1322 return _res; 1323 } 1324 1325 static PyObject *Icn_IsIconRefMaskEmpty(PyObject *_self, PyObject *_args) 1326 { 1327 PyObject *_res = NULL; 1328 Boolean _rv; 1329 IconRef iconRef; 1330 #ifndef IsIconRefMaskEmpty 1331 PyMac_PRECHECK(IsIconRefMaskEmpty); 1332 #endif 1333 if (!PyArg_ParseTuple(_args, "O&", 1334 ResObj_Convert, &iconRef)) 1335 return NULL; 1336 _rv = IsIconRefMaskEmpty(iconRef); 1337 _res = Py_BuildValue("b", 1338 _rv); 1339 return _res; 1340 } 1341 1342 static PyObject *Icn_GetIconRefVariant(PyObject *_self, PyObject *_args) 1343 { 1344 PyObject *_res = NULL; 1345 IconRef _rv; 1346 IconRef inIconRef; 1347 OSType inVariant; 1348 IconTransformType outTransform; 1349 #ifndef GetIconRefVariant 1350 PyMac_PRECHECK(GetIconRefVariant); 1351 #endif 1352 if (!PyArg_ParseTuple(_args, "O&O&", 1353 ResObj_Convert, &inIconRef, 1354 PyMac_GetOSType, &inVariant)) 1355 return NULL; 1356 _rv = GetIconRefVariant(inIconRef, 1357 inVariant, 1358 &outTransform); 1359 _res = Py_BuildValue("O&h", 1360 ResObj_New, _rv, 1361 outTransform); 1362 return _res; 1363 } 1364 1365 static PyObject *Icn_RegisterIconRefFromIconFile(PyObject *_self, PyObject *_args) 1366 { 1367 PyObject *_res = NULL; 1368 OSErr _err; 1369 OSType creator; 1370 OSType iconType; 1371 FSSpec iconFile; 1372 IconRef theIconRef; 1373 #ifndef RegisterIconRefFromIconFile 1374 PyMac_PRECHECK(RegisterIconRefFromIconFile); 1375 #endif 1376 if (!PyArg_ParseTuple(_args, "O&O&O&", 1377 PyMac_GetOSType, &creator, 1378 PyMac_GetOSType, &iconType, 1379 PyMac_GetFSSpec, &iconFile)) 1380 return NULL; 1381 _err = RegisterIconRefFromIconFile(creator, 1382 iconType, 1383 &iconFile, 1384 &theIconRef); 1385 if (_err != noErr) return PyMac_Error(_err); 1386 _res = Py_BuildValue("O&", 1387 ResObj_New, theIconRef); 1388 return _res; 1389 } 1390 1391 static PyObject *Icn_ReadIconFile(PyObject *_self, PyObject *_args) 1392 { 1393 PyObject *_res = NULL; 1394 OSErr _err; 1395 FSSpec iconFile; 1396 IconFamilyHandle iconFamily; 1397 #ifndef ReadIconFile 1398 PyMac_PRECHECK(ReadIconFile); 1399 #endif 1400 if (!PyArg_ParseTuple(_args, "O&", 1401 PyMac_GetFSSpec, &iconFile)) 1402 return NULL; 1403 _err = ReadIconFile(&iconFile, 1404 &iconFamily); 1405 if (_err != noErr) return PyMac_Error(_err); 1406 _res = Py_BuildValue("O&", 1407 ResObj_New, iconFamily); 1408 return _res; 1409 } 1410 1411 static PyObject *Icn_ReadIconFromFSRef(PyObject *_self, PyObject *_args) 1412 { 1413 PyObject *_res = NULL; 1414 OSStatus _err; 1415 FSRef ref; 1416 IconFamilyHandle iconFamily; 1417 #ifndef ReadIconFromFSRef 1418 PyMac_PRECHECK(ReadIconFromFSRef); 1419 #endif 1420 if (!PyArg_ParseTuple(_args, "O&", 1421 PyMac_GetFSRef, &ref)) 1422 return NULL; 1423 _err = ReadIconFromFSRef(&ref, 1424 &iconFamily); 1425 if (_err != noErr) return PyMac_Error(_err); 1426 _res = Py_BuildValue("O&", 1427 ResObj_New, iconFamily); 1428 return _res; 1429 } 1430 1431 static PyObject *Icn_WriteIconFile(PyObject *_self, PyObject *_args) 1432 { 1433 PyObject *_res = NULL; 1434 OSErr _err; 1435 IconFamilyHandle iconFamily; 1436 FSSpec iconFile; 1437 #ifndef WriteIconFile 1438 PyMac_PRECHECK(WriteIconFile); 1439 #endif 1440 if (!PyArg_ParseTuple(_args, "O&O&", 1441 ResObj_Convert, &iconFamily, 1442 PyMac_GetFSSpec, &iconFile)) 1443 return NULL; 1444 _err = WriteIconFile(iconFamily, 1445 &iconFile); 1446 if (_err != noErr) return PyMac_Error(_err); 1447 Py_INCREF(Py_None); 1448 _res = Py_None; 1449 return _res; 1450 } 1451 #endif /* APPLE_SUPPORTS_QUICKTIME */ 1452 1453 static PyMethodDef Icn_methods[] = { 1454 #if APPLE_SUPPORTS_QUICKTIME 1455 {"GetCIcon", (PyCFunction)Icn_GetCIcon, 1, 1456 PyDoc_STR("(SInt16 iconID) -> (CIconHandle _rv)")}, 1457 {"PlotCIcon", (PyCFunction)Icn_PlotCIcon, 1, 1458 PyDoc_STR("(Rect theRect, CIconHandle theIcon) -> None")}, 1459 {"DisposeCIcon", (PyCFunction)Icn_DisposeCIcon, 1, 1460 PyDoc_STR("(CIconHandle theIcon) -> None")}, 1461 {"GetIcon", (PyCFunction)Icn_GetIcon, 1, 1462 PyDoc_STR("(SInt16 iconID) -> (Handle _rv)")}, 1463 {"PlotIcon", (PyCFunction)Icn_PlotIcon, 1, 1464 PyDoc_STR("(Rect theRect, Handle theIcon) -> None")}, 1465 {"PlotIconID", (PyCFunction)Icn_PlotIconID, 1, 1466 PyDoc_STR("(Rect theRect, IconAlignmentType align, IconTransformType transform, SInt16 theResID) -> None")}, 1467 {"NewIconSuite", (PyCFunction)Icn_NewIconSuite, 1, 1468 PyDoc_STR("() -> (IconSuiteRef theIconSuite)")}, 1469 {"AddIconToSuite", (PyCFunction)Icn_AddIconToSuite, 1, 1470 PyDoc_STR("(Handle theIconData, IconSuiteRef theSuite, ResType theType) -> None")}, 1471 {"GetIconFromSuite", (PyCFunction)Icn_GetIconFromSuite, 1, 1472 PyDoc_STR("(IconSuiteRef theSuite, ResType theType) -> (Handle theIconData)")}, 1473 {"GetIconSuite", (PyCFunction)Icn_GetIconSuite, 1, 1474 PyDoc_STR("(SInt16 theResID, IconSelectorValue selector) -> (IconSuiteRef theIconSuite)")}, 1475 {"DisposeIconSuite", (PyCFunction)Icn_DisposeIconSuite, 1, 1476 PyDoc_STR("(IconSuiteRef theIconSuite, Boolean disposeData) -> None")}, 1477 {"PlotIconSuite", (PyCFunction)Icn_PlotIconSuite, 1, 1478 PyDoc_STR("(Rect theRect, IconAlignmentType align, IconTransformType transform, IconSuiteRef theIconSuite) -> None")}, 1479 {"LoadIconCache", (PyCFunction)Icn_LoadIconCache, 1, 1480 PyDoc_STR("(Rect theRect, IconAlignmentType align, IconTransformType transform, IconCacheRef theIconCache) -> None")}, 1481 {"GetLabel", (PyCFunction)Icn_GetLabel, 1, 1482 PyDoc_STR("(SInt16 labelNumber, Str255 labelString) -> (RGBColor labelColor)")}, 1483 {"PtInIconID", (PyCFunction)Icn_PtInIconID, 1, 1484 PyDoc_STR("(Point testPt, Rect iconRect, IconAlignmentType align, SInt16 iconID) -> (Boolean _rv)")}, 1485 {"PtInIconSuite", (PyCFunction)Icn_PtInIconSuite, 1, 1486 PyDoc_STR("(Point testPt, Rect iconRect, IconAlignmentType align, IconSuiteRef theIconSuite) -> (Boolean _rv)")}, 1487 {"RectInIconID", (PyCFunction)Icn_RectInIconID, 1, 1488 PyDoc_STR("(Rect testRect, Rect iconRect, IconAlignmentType align, SInt16 iconID) -> (Boolean _rv)")}, 1489 {"RectInIconSuite", (PyCFunction)Icn_RectInIconSuite, 1, 1490 PyDoc_STR("(Rect testRect, Rect iconRect, IconAlignmentType align, IconSuiteRef theIconSuite) -> (Boolean _rv)")}, 1491 {"IconIDToRgn", (PyCFunction)Icn_IconIDToRgn, 1, 1492 PyDoc_STR("(RgnHandle theRgn, Rect iconRect, IconAlignmentType align, SInt16 iconID) -> None")}, 1493 {"IconSuiteToRgn", (PyCFunction)Icn_IconSuiteToRgn, 1, 1494 PyDoc_STR("(RgnHandle theRgn, Rect iconRect, IconAlignmentType align, IconSuiteRef theIconSuite) -> None")}, 1495 {"SetSuiteLabel", (PyCFunction)Icn_SetSuiteLabel, 1, 1496 PyDoc_STR("(IconSuiteRef theSuite, SInt16 theLabel) -> None")}, 1497 {"GetSuiteLabel", (PyCFunction)Icn_GetSuiteLabel, 1, 1498 PyDoc_STR("(IconSuiteRef theSuite) -> (SInt16 _rv)")}, 1499 {"PlotIconHandle", (PyCFunction)Icn_PlotIconHandle, 1, 1500 PyDoc_STR("(Rect theRect, IconAlignmentType align, IconTransformType transform, Handle theIcon) -> None")}, 1501 {"PlotSICNHandle", (PyCFunction)Icn_PlotSICNHandle, 1, 1502 PyDoc_STR("(Rect theRect, IconAlignmentType align, IconTransformType transform, Handle theSICN) -> None")}, 1503 {"PlotCIconHandle", (PyCFunction)Icn_PlotCIconHandle, 1, 1504 PyDoc_STR("(Rect theRect, IconAlignmentType align, IconTransformType transform, CIconHandle theCIcon) -> None")}, 1505 {"IconRefToIconFamily", (PyCFunction)Icn_IconRefToIconFamily, 1, 1506 PyDoc_STR("(IconRef theIconRef, IconSelectorValue whichIcons) -> (IconFamilyHandle iconFamily)")}, 1507 {"IconFamilyToIconSuite", (PyCFunction)Icn_IconFamilyToIconSuite, 1, 1508 PyDoc_STR("(IconFamilyHandle iconFamily, IconSelectorValue whichIcons) -> (IconSuiteRef iconSuite)")}, 1509 {"IconSuiteToIconFamily", (PyCFunction)Icn_IconSuiteToIconFamily, 1, 1510 PyDoc_STR("(IconSuiteRef iconSuite, IconSelectorValue whichIcons) -> (IconFamilyHandle iconFamily)")}, 1511 {"SetIconFamilyData", (PyCFunction)Icn_SetIconFamilyData, 1, 1512 PyDoc_STR("(IconFamilyHandle iconFamily, OSType iconType, Handle h) -> None")}, 1513 {"GetIconFamilyData", (PyCFunction)Icn_GetIconFamilyData, 1, 1514 PyDoc_STR("(IconFamilyHandle iconFamily, OSType iconType, Handle h) -> None")}, 1515 {"GetIconRefOwners", (PyCFunction)Icn_GetIconRefOwners, 1, 1516 PyDoc_STR("(IconRef theIconRef) -> (UInt16 owners)")}, 1517 {"AcquireIconRef", (PyCFunction)Icn_AcquireIconRef, 1, 1518 PyDoc_STR("(IconRef theIconRef) -> None")}, 1519 {"ReleaseIconRef", (PyCFunction)Icn_ReleaseIconRef, 1, 1520 PyDoc_STR("(IconRef theIconRef) -> None")}, 1521 {"GetIconRefFromFile", (PyCFunction)Icn_GetIconRefFromFile, 1, 1522 PyDoc_STR("(FSSpec theFile) -> (IconRef theIconRef, SInt16 theLabel)")}, 1523 {"GetIconRef", (PyCFunction)Icn_GetIconRef, 1, 1524 PyDoc_STR("(SInt16 vRefNum, OSType creator, OSType iconType) -> (IconRef theIconRef)")}, 1525 {"GetIconRefFromFolder", (PyCFunction)Icn_GetIconRefFromFolder, 1, 1526 PyDoc_STR("(SInt16 vRefNum, SInt32 parentFolderID, SInt32 folderID, SInt8 attributes, SInt8 accessPrivileges) -> (IconRef theIconRef)")}, 1527 {"RegisterIconRefFromIconFamily", (PyCFunction)Icn_RegisterIconRefFromIconFamily, 1, 1528 PyDoc_STR("(OSType creator, OSType iconType, IconFamilyHandle iconFamily) -> (IconRef theIconRef)")}, 1529 {"RegisterIconRefFromResource", (PyCFunction)Icn_RegisterIconRefFromResource, 1, 1530 PyDoc_STR("(OSType creator, OSType iconType, FSSpec resourceFile, SInt16 resourceID) -> (IconRef theIconRef)")}, 1531 {"RegisterIconRefFromFSRef", (PyCFunction)Icn_RegisterIconRefFromFSRef, 1, 1532 PyDoc_STR("(OSType creator, OSType iconType, FSRef iconFile) -> (IconRef theIconRef)")}, 1533 {"UnregisterIconRef", (PyCFunction)Icn_UnregisterIconRef, 1, 1534 PyDoc_STR("(OSType creator, OSType iconType) -> None")}, 1535 {"UpdateIconRef", (PyCFunction)Icn_UpdateIconRef, 1, 1536 PyDoc_STR("(IconRef theIconRef) -> None")}, 1537 {"OverrideIconRefFromResource", (PyCFunction)Icn_OverrideIconRefFromResource, 1, 1538 PyDoc_STR("(IconRef theIconRef, FSSpec resourceFile, SInt16 resourceID) -> None")}, 1539 {"OverrideIconRef", (PyCFunction)Icn_OverrideIconRef, 1, 1540 PyDoc_STR("(IconRef oldIconRef, IconRef newIconRef) -> None")}, 1541 {"RemoveIconRefOverride", (PyCFunction)Icn_RemoveIconRefOverride, 1, 1542 PyDoc_STR("(IconRef theIconRef) -> None")}, 1543 {"CompositeIconRef", (PyCFunction)Icn_CompositeIconRef, 1, 1544 PyDoc_STR("(IconRef backgroundIconRef, IconRef foregroundIconRef) -> (IconRef compositeIconRef)")}, 1545 {"IsIconRefComposite", (PyCFunction)Icn_IsIconRefComposite, 1, 1546 PyDoc_STR("(IconRef compositeIconRef) -> (IconRef backgroundIconRef, IconRef foregroundIconRef)")}, 1547 {"IsValidIconRef", (PyCFunction)Icn_IsValidIconRef, 1, 1548 PyDoc_STR("(IconRef theIconRef) -> (Boolean _rv)")}, 1549 {"PlotIconRef", (PyCFunction)Icn_PlotIconRef, 1, 1550 PyDoc_STR("(Rect theRect, IconAlignmentType align, IconTransformType transform, IconServicesUsageFlags theIconServicesUsageFlags, IconRef theIconRef) -> None")}, 1551 {"PtInIconRef", (PyCFunction)Icn_PtInIconRef, 1, 1552 PyDoc_STR("(Point testPt, Rect iconRect, IconAlignmentType align, IconServicesUsageFlags theIconServicesUsageFlags, IconRef theIconRef) -> (Boolean _rv)")}, 1553 {"RectInIconRef", (PyCFunction)Icn_RectInIconRef, 1, 1554 PyDoc_STR("(Rect testRect, Rect iconRect, IconAlignmentType align, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef) -> (Boolean _rv)")}, 1555 {"IconRefToRgn", (PyCFunction)Icn_IconRefToRgn, 1, 1556 PyDoc_STR("(RgnHandle theRgn, Rect iconRect, IconAlignmentType align, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef) -> None")}, 1557 {"GetIconSizesFromIconRef", (PyCFunction)Icn_GetIconSizesFromIconRef, 1, 1558 PyDoc_STR("(IconSelectorValue iconSelectorInput, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef) -> (IconSelectorValue iconSelectorOutputPtr)")}, 1559 {"FlushIconRefs", (PyCFunction)Icn_FlushIconRefs, 1, 1560 PyDoc_STR("(OSType creator, OSType iconType) -> None")}, 1561 {"FlushIconRefsByVolume", (PyCFunction)Icn_FlushIconRefsByVolume, 1, 1562 PyDoc_STR("(SInt16 vRefNum) -> None")}, 1563 {"SetCustomIconsEnabled", (PyCFunction)Icn_SetCustomIconsEnabled, 1, 1564 PyDoc_STR("(SInt16 vRefNum, Boolean enableCustomIcons) -> None")}, 1565 {"GetCustomIconsEnabled", (PyCFunction)Icn_GetCustomIconsEnabled, 1, 1566 PyDoc_STR("(SInt16 vRefNum) -> (Boolean customIconsEnabled)")}, 1567 {"IsIconRefMaskEmpty", (PyCFunction)Icn_IsIconRefMaskEmpty, 1, 1568 PyDoc_STR("(IconRef iconRef) -> (Boolean _rv)")}, 1569 {"GetIconRefVariant", (PyCFunction)Icn_GetIconRefVariant, 1, 1570 PyDoc_STR("(IconRef inIconRef, OSType inVariant) -> (IconRef _rv, IconTransformType outTransform)")}, 1571 {"RegisterIconRefFromIconFile", (PyCFunction)Icn_RegisterIconRefFromIconFile, 1, 1572 PyDoc_STR("(OSType creator, OSType iconType, FSSpec iconFile) -> (IconRef theIconRef)")}, 1573 {"ReadIconFile", (PyCFunction)Icn_ReadIconFile, 1, 1574 PyDoc_STR("(FSSpec iconFile) -> (IconFamilyHandle iconFamily)")}, 1575 {"ReadIconFromFSRef", (PyCFunction)Icn_ReadIconFromFSRef, 1, 1576 PyDoc_STR("(FSRef ref) -> (IconFamilyHandle iconFamily)")}, 1577 {"WriteIconFile", (PyCFunction)Icn_WriteIconFile, 1, 1578 PyDoc_STR("(IconFamilyHandle iconFamily, FSSpec iconFile) -> None")}, 1579 #endif /* APPLE_SUPPORTS_QUICKTIME */ 1580 {NULL, NULL, 0} 1581 }; 1582 1583 1584 1585 1586 void init_Icn(void) 1587 { 1588 PyObject *m; 1589 #if APPLE_SUPPORTS_QUICKTIME 1590 PyObject *d; 1591 #endif /* APPLE_SUPPORTS_QUICKTIME */ 1592 1593 1594 1595 1596 m = Py_InitModule("_Icn", Icn_methods); 1597 #if APPLE_SUPPORTS_QUICKTIME 1598 d = PyModule_GetDict(m); 1599 Icn_Error = PyMac_GetOSErrException(); 1600 if (Icn_Error == NULL || 1601 PyDict_SetItemString(d, "Error", Icn_Error) != 0) 1602 return; 1603 #endif /* APPLE_SUPPORTS_QUICKTIME */ 1604 } 1605 1606 /* ======================== End module _Icn ========================= */ 1607 1608