/* IPIconの破棄 */ OSErr DisposeIPIcon(const IPIconRec *ipIcon) { OSErr err=noErr; if (ipIcon->iconSuite != NULL) err=DisposeIconSuite(ipIcon->iconSuite,true); if (ipIcon->it32Data != NULL) DisposeHandle(ipIcon->it32Data); if (ipIcon->t8mkData != NULL) DisposeHandle(ipIcon->t8mkData); return err; }
static PyObject *Icn_DisposeIconSuite(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; OSErr _err; IconSuiteRef theIconSuite; Boolean disposeData; #ifndef DisposeIconSuite PyMac_PRECHECK(DisposeIconSuite); #endif if (!PyArg_ParseTuple(_args, "O&b", ResObj_Convert, &theIconSuite, &disposeData)) return NULL; _err = DisposeIconSuite(theIconSuite, disposeData); if (_err != noErr) return PyMac_Error(_err); Py_INCREF(Py_None); _res = Py_None; return _res; }
pascal OSErr SafeGetIconSuite(IconSuiteRef *theIconSuite, short theResID, IconSelectorValue selector) { ASBool foundAnIcon = false; *theIconSuite = NULL; OSErr err = noErr; err = NewIconSuite(theIconSuite); if (err == noErr) { if (selector & kSelectorLarge1Bit) if (SafeGetIconSuitePart(*theIconSuite, theResID, 'ICN#')) foundAnIcon = true; if (selector & kSelectorLarge4Bit) if (SafeGetIconSuitePart(*theIconSuite, theResID, 'icl4')) foundAnIcon = true; if (selector & kSelectorLarge8Bit) if (SafeGetIconSuitePart(*theIconSuite, theResID, 'icl8')) foundAnIcon = true; if (selector & kSelectorSmall1Bit) if (SafeGetIconSuitePart(*theIconSuite, theResID, 'ics#')) foundAnIcon = true; if (selector & kSelectorSmall4Bit) if (SafeGetIconSuitePart(*theIconSuite, theResID, 'ics4')) foundAnIcon = true; if (selector & kSelectorSmall8Bit) if (SafeGetIconSuitePart(*theIconSuite, theResID, 'ics8')) foundAnIcon = true; if (IconFamilyToIconSuite != NULL) { Handle iconFamily = SafeGet1Resource('icns', theResID); if (iconFamily) { IconSuiteRef icnsIconSuite = NULL; IconFamilyToIconSuite((IconFamilyHandle)iconFamily, selector, &icnsIconSuite); if (icnsIconSuite) { IconActionUPP AddIconsToSuiteUPP = NewIconActionUPP(AddIconsToSuite); ForEachIconDo(icnsIconSuite, selector, AddIconsToSuiteUPP, *theIconSuite); DisposeIconActionUPP(AddIconsToSuiteUPP); foundAnIcon = true; } ReleaseResource(iconFamily); } } if (!foundAnIcon) { DisposeIconSuite(*theIconSuite, true); *theIconSuite = NULL; err = noSuchIconErr; } } return err; }