diff options
Diffstat (limited to 'common/quicktime_win32/Icons.h')
| -rw-r--r-- | common/quicktime_win32/Icons.h | 2412 |
1 files changed, 2412 insertions, 0 deletions
diff --git a/common/quicktime_win32/Icons.h b/common/quicktime_win32/Icons.h new file mode 100644 index 0000000..dd9050f --- /dev/null +++ b/common/quicktime_win32/Icons.h @@ -0,0 +1,2412 @@ +/* + File: Icons.h + + Contains: Icon Utilities and Icon Services Interfaces. + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1990-2001 by Apple Computer, Inc. All rights reserved + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef __ICONS__ +#define __ICONS__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __FILES__ +#include <Files.h> +#endif + +#ifndef __CODEFRAGMENTS__ +#include <CodeFragments.h> +#endif + +#ifndef __QUICKDRAW__ +#include <Quickdraw.h> +#endif + +#ifndef __CGCONTEXT__ +#include <CGContext.h> +#endif + +#ifndef __ICONSTORAGE__ +#include <IconStorage.h> +#endif + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/* The following are icons for which there are both icon suites and SICNs. */ +/* Avoid using icon resources if possible. Use IconServices instead. */ +enum { + kGenericDocumentIconResource = -4000, + kGenericStationeryIconResource = -3985, + kGenericEditionFileIconResource = -3989, + kGenericApplicationIconResource = -3996, + kGenericDeskAccessoryIconResource = -3991, + kGenericFolderIconResource = -3999, + kPrivateFolderIconResource = -3994, + kFloppyIconResource = -3998, + kTrashIconResource = -3993, + kGenericRAMDiskIconResource = -3988, + kGenericCDROMIconResource = -3987 +}; + +/* The following are icons for which there are SICNs only. */ +/* Avoid using icon resources if possible. Use IconServices instead. */ +enum { + kDesktopIconResource = -3992, + kOpenFolderIconResource = -3997, + kGenericHardDiskIconResource = -3995, + kGenericFileServerIconResource = -3972, + kGenericSuitcaseIconResource = -3970, + kGenericMoverObjectIconResource = -3969 +}; + +/* The following are icons for which there are icon suites only. */ +/* Avoid using icon resources if possible. Use IconServices instead. */ +enum { + kGenericPreferencesIconResource = -3971, + kGenericQueryDocumentIconResource = -16506, + kGenericExtensionIconResource = -16415, + kSystemFolderIconResource = -3983, + kHelpIconResource = -20271, + kAppleMenuFolderIconResource = -3982 +}; + +/* Obsolete. Use named constants defined above. */ +enum { + genericDocumentIconResource = kGenericDocumentIconResource, + genericStationeryIconResource = kGenericStationeryIconResource, + genericEditionFileIconResource = kGenericEditionFileIconResource, + genericApplicationIconResource = kGenericApplicationIconResource, + genericDeskAccessoryIconResource = kGenericDeskAccessoryIconResource, + genericFolderIconResource = kGenericFolderIconResource, + privateFolderIconResource = kPrivateFolderIconResource, + floppyIconResource = kFloppyIconResource, + trashIconResource = kTrashIconResource, + genericRAMDiskIconResource = kGenericRAMDiskIconResource, + genericCDROMIconResource = kGenericCDROMIconResource, + desktopIconResource = kDesktopIconResource, + openFolderIconResource = kOpenFolderIconResource, + genericHardDiskIconResource = kGenericHardDiskIconResource, + genericFileServerIconResource = kGenericFileServerIconResource, + genericSuitcaseIconResource = kGenericSuitcaseIconResource, + genericMoverObjectIconResource = kGenericMoverObjectIconResource, + genericPreferencesIconResource = kGenericPreferencesIconResource, + genericQueryDocumentIconResource = kGenericQueryDocumentIconResource, + genericExtensionIconResource = kGenericExtensionIconResource, + systemFolderIconResource = kSystemFolderIconResource, + appleMenuFolderIconResource = kAppleMenuFolderIconResource +}; + +/* Avoid using icon resources if possible. Use IconServices instead. */ +enum { + kStartupFolderIconResource = -3981, + kOwnedFolderIconResource = -3980, + kDropFolderIconResource = -3979, + kSharedFolderIconResource = -3978, + kMountedFolderIconResource = -3977, + kControlPanelFolderIconResource = -3976, + kPrintMonitorFolderIconResource = -3975, + kPreferencesFolderIconResource = -3974, + kExtensionsFolderIconResource = -3973, + kFontsFolderIconResource = -3968, + kFullTrashIconResource = -3984 +}; + +/* Obsolete. Use named constants defined above. */ +enum { + startupFolderIconResource = kStartupFolderIconResource, + ownedFolderIconResource = kOwnedFolderIconResource, + dropFolderIconResource = kDropFolderIconResource, + sharedFolderIconResource = kSharedFolderIconResource, + mountedFolderIconResource = kMountedFolderIconResource, + controlPanelFolderIconResource = kControlPanelFolderIconResource, + printMonitorFolderIconResource = kPrintMonitorFolderIconResource, + preferencesFolderIconResource = kPreferencesFolderIconResource, + extensionsFolderIconResource = kExtensionsFolderIconResource, + fontsFolderIconResource = kFontsFolderIconResource, + fullTrashIconResource = kFullTrashIconResource +}; + +/* Alignment type values. */ +enum { + kAlignNone = 0x00, + kAlignVerticalCenter = 0x01, + kAlignTop = 0x02, + kAlignBottom = 0x03, + kAlignHorizontalCenter = 0x04, + kAlignAbsoluteCenter = kAlignVerticalCenter | kAlignHorizontalCenter, + kAlignCenterTop = kAlignTop | kAlignHorizontalCenter, + kAlignCenterBottom = kAlignBottom | kAlignHorizontalCenter, + kAlignLeft = 0x08, + kAlignCenterLeft = kAlignVerticalCenter | kAlignLeft, + kAlignTopLeft = kAlignTop | kAlignLeft, + kAlignBottomLeft = kAlignBottom | kAlignLeft, + kAlignRight = 0x0C, + kAlignCenterRight = kAlignVerticalCenter | kAlignRight, + kAlignTopRight = kAlignTop | kAlignRight, + kAlignBottomRight = kAlignBottom | kAlignRight +}; + +/* Obsolete. Use names defined above. */ +enum { + atNone = kAlignNone, + atVerticalCenter = kAlignVerticalCenter, + atTop = kAlignTop, + atBottom = kAlignBottom, + atHorizontalCenter = kAlignHorizontalCenter, + atAbsoluteCenter = kAlignAbsoluteCenter, + atCenterTop = kAlignCenterTop, + atCenterBottom = kAlignCenterBottom, + atLeft = kAlignLeft, + atCenterLeft = kAlignCenterLeft, + atTopLeft = kAlignTopLeft, + atBottomLeft = kAlignBottomLeft, + atRight = kAlignRight, + atCenterRight = kAlignCenterRight, + atTopRight = kAlignTopRight, + atBottomRight = kAlignBottomRight +}; + +typedef SInt16 IconAlignmentType; +/* Transform type values. */ +enum { + kTransformNone = 0x00, + kTransformDisabled = 0x01, + kTransformOffline = 0x02, + kTransformOpen = 0x03, + kTransformLabel1 = 0x0100, + kTransformLabel2 = 0x0200, + kTransformLabel3 = 0x0300, + kTransformLabel4 = 0x0400, + kTransformLabel5 = 0x0500, + kTransformLabel6 = 0x0600, + kTransformLabel7 = 0x0700, + kTransformSelected = 0x4000, + kTransformSelectedDisabled = kTransformSelected | kTransformDisabled, + kTransformSelectedOffline = kTransformSelected | kTransformOffline, + kTransformSelectedOpen = kTransformSelected | kTransformOpen +}; + +/* Obsolete. Use names defined above. */ +enum { + ttNone = kTransformNone, + ttDisabled = kTransformDisabled, + ttOffline = kTransformOffline, + ttOpen = kTransformOpen, + ttLabel1 = kTransformLabel1, + ttLabel2 = kTransformLabel2, + ttLabel3 = kTransformLabel3, + ttLabel4 = kTransformLabel4, + ttLabel5 = kTransformLabel5, + ttLabel6 = kTransformLabel6, + ttLabel7 = kTransformLabel7, + ttSelected = kTransformSelected, + ttSelectedDisabled = kTransformSelectedDisabled, + ttSelectedOffline = kTransformSelectedOffline, + ttSelectedOpen = kTransformSelectedOpen +}; + +typedef SInt16 IconTransformType; +/* Selector mask values. */ +enum { + kSelectorLarge1Bit = 0x00000001, + kSelectorLarge4Bit = 0x00000002, + kSelectorLarge8Bit = 0x00000004, + kSelectorLarge32Bit = 0x00000008, + kSelectorLarge8BitMask = 0x00000010, + kSelectorSmall1Bit = 0x00000100, + kSelectorSmall4Bit = 0x00000200, + kSelectorSmall8Bit = 0x00000400, + kSelectorSmall32Bit = 0x00000800, + kSelectorSmall8BitMask = 0x00001000, + kSelectorMini1Bit = 0x00010000, + kSelectorMini4Bit = 0x00020000, + kSelectorMini8Bit = 0x00040000, + kSelectorHuge1Bit = 0x01000000, + kSelectorHuge4Bit = 0x02000000, + kSelectorHuge8Bit = 0x04000000, + kSelectorHuge32Bit = 0x08000000, + kSelectorHuge8BitMask = 0x10000000, + kSelectorAllLargeData = 0x000000FF, + kSelectorAllSmallData = 0x0000FF00, + kSelectorAllMiniData = 0x00FF0000, + kSelectorAllHugeData = (long)0xFF000000, + kSelectorAll1BitData = kSelectorLarge1Bit | kSelectorSmall1Bit | kSelectorMini1Bit | kSelectorHuge1Bit, + kSelectorAll4BitData = kSelectorLarge4Bit | kSelectorSmall4Bit | kSelectorMini4Bit | kSelectorHuge4Bit, + kSelectorAll8BitData = kSelectorLarge8Bit | kSelectorSmall8Bit | kSelectorMini8Bit | kSelectorHuge8Bit, + kSelectorAll32BitData = kSelectorLarge32Bit | kSelectorSmall32Bit | kSelectorHuge32Bit, + kSelectorAllAvailableData = (long)0xFFFFFFFF +}; + + +/* Obsolete. Use names defined above. */ +enum { + svLarge1Bit = kSelectorLarge1Bit, + svLarge4Bit = kSelectorLarge4Bit, + svLarge8Bit = kSelectorLarge8Bit, + svSmall1Bit = kSelectorSmall1Bit, + svSmall4Bit = kSelectorSmall4Bit, + svSmall8Bit = kSelectorSmall8Bit, + svMini1Bit = kSelectorMini1Bit, + svMini4Bit = kSelectorMini4Bit, + svMini8Bit = kSelectorMini8Bit, + svAllLargeData = kSelectorAllLargeData, + svAllSmallData = kSelectorAllSmallData, + svAllMiniData = kSelectorAllMiniData, + svAll1BitData = kSelectorAll1BitData, + svAll4BitData = kSelectorAll4BitData, + svAll8BitData = kSelectorAll8BitData, + svAllAvailableData = kSelectorAllAvailableData +}; + +typedef UInt32 IconSelectorValue; +typedef CALLBACK_API( OSErr , IconActionProcPtr )(ResType theType, Handle *theIcon, void *yourDataPtr); +typedef CALLBACK_API( Handle , IconGetterProcPtr )(ResType theType, void *yourDataPtr); +typedef STACK_UPP_TYPE(IconActionProcPtr) IconActionUPP; +typedef STACK_UPP_TYPE(IconGetterProcPtr) IconGetterUPP; +/* + * NewIconActionUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( IconActionUPP ) +NewIconActionUPP(IconActionProcPtr userRoutine); +#if !OPAQUE_UPP_TYPES + enum { uppIconActionProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */ + #ifdef __cplusplus + inline DEFINE_API_C(IconActionUPP) NewIconActionUPP(IconActionProcPtr userRoutine) { return (IconActionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture()); } + #else + #define NewIconActionUPP(userRoutine) (IconActionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture()) + #endif +#endif + +/* + * NewIconGetterUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( IconGetterUPP ) +NewIconGetterUPP(IconGetterProcPtr userRoutine); +#if !OPAQUE_UPP_TYPES + enum { uppIconGetterProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */ + #ifdef __cplusplus + inline DEFINE_API_C(IconGetterUPP) NewIconGetterUPP(IconGetterProcPtr userRoutine) { return (IconGetterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture()); } + #else + #define NewIconGetterUPP(userRoutine) (IconGetterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture()) + #endif +#endif + +/* + * DisposeIconActionUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +DisposeIconActionUPP(IconActionUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(void) DisposeIconActionUPP(IconActionUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } + #else + #define DisposeIconActionUPP(userUPP) DisposeRoutineDescriptor(userUPP) + #endif +#endif + +/* + * DisposeIconGetterUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +DisposeIconGetterUPP(IconGetterUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(void) DisposeIconGetterUPP(IconGetterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } + #else + #define DisposeIconGetterUPP(userUPP) DisposeRoutineDescriptor(userUPP) + #endif +#endif + +/* + * InvokeIconActionUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSErr ) +InvokeIconActionUPP( + ResType theType, + Handle * theIcon, + void * yourDataPtr, + IconActionUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(OSErr) InvokeIconActionUPP(ResType theType, Handle * theIcon, void * yourDataPtr, IconActionUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppIconActionProcInfo, theType, theIcon, yourDataPtr); } + #else + #define InvokeIconActionUPP(theType, theIcon, yourDataPtr, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppIconActionProcInfo, (theType), (theIcon), (yourDataPtr)) + #endif +#endif + +/* + * InvokeIconGetterUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( Handle ) +InvokeIconGetterUPP( + ResType theType, + void * yourDataPtr, + IconGetterUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(Handle) InvokeIconGetterUPP(ResType theType, void * yourDataPtr, IconGetterUPP userUPP) { return (Handle)CALL_TWO_PARAMETER_UPP(userUPP, uppIconGetterProcInfo, theType, yourDataPtr); } + #else + #define InvokeIconGetterUPP(theType, yourDataPtr, userUPP) (Handle)CALL_TWO_PARAMETER_UPP((userUPP), uppIconGetterProcInfo, (theType), (yourDataPtr)) + #endif +#endif + +#if CALL_NOT_IN_CARBON || OLDROUTINENAMES + /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ + #define NewIconActionProc(userRoutine) NewIconActionUPP(userRoutine) + #define NewIconGetterProc(userRoutine) NewIconGetterUPP(userRoutine) + #define CallIconActionProc(userRoutine, theType, theIcon, yourDataPtr) InvokeIconActionUPP(theType, theIcon, yourDataPtr, userRoutine) + #define CallIconGetterProc(userRoutine, theType, yourDataPtr) InvokeIconGetterUPP(theType, yourDataPtr, userRoutine) +#endif /* CALL_NOT_IN_CARBON */ + +typedef IconGetterProcPtr IconGetter; +typedef IconActionProcPtr IconAction; +/* CIconHandle, GetCIcon(), PlotCIcon(), and DisposeCIcon() moved here from Quickdraw.h*/ +struct CIcon { + PixMap iconPMap; /*the icon's pixMap*/ + BitMap iconMask; /*the icon's mask*/ + BitMap iconBMap; /*the icon's bitMap*/ + Handle iconData; /*the icon's data*/ + SInt16 iconMaskData[1]; /*icon's mask and BitMap data*/ +}; +typedef struct CIcon CIcon; +typedef CIcon * CIconPtr; +typedef CIconPtr * CIconHandle; +/* + * GetCIcon() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( CIconHandle ) +GetCIcon(SInt16 iconID) ONEWORDINLINE(0xAA1E); + + +/* + * PlotCIcon() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( void ) +PlotCIcon( + const Rect * theRect, + CIconHandle theIcon) ONEWORDINLINE(0xAA1F); + + +/* + * DisposeCIcon() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( void ) +DisposeCIcon(CIconHandle theIcon) ONEWORDINLINE(0xAA25); + + + +/* GetIcon and PlotIcon moved here from ToolUtils*/ +/* + * GetIcon() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Handle ) +GetIcon(SInt16 iconID) ONEWORDINLINE(0xA9BB); + + +/* + * PlotIcon() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( void ) +PlotIcon( + const Rect * theRect, + Handle theIcon) ONEWORDINLINE(0xA94B); + + + + +/* + Note: IconSuiteRef and IconCacheRef should be an abstract types, + but too much source code already relies on them being of type Handle. +*/ +typedef Handle IconSuiteRef; +typedef Handle IconCacheRef; +/* IconRefs are 32-bit values identifying cached icon data. IconRef 0 is invalid.*/ +typedef struct OpaqueIconRef* IconRef; +/* + * PlotIconID() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +PlotIconID( + const Rect * theRect, + IconAlignmentType align, + IconTransformType transform, + SInt16 theResID) THREEWORDINLINE(0x303C, 0x0500, 0xABC9); + + +/* + * NewIconSuite() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +NewIconSuite(IconSuiteRef * theIconSuite) THREEWORDINLINE(0x303C, 0x0207, 0xABC9); + + +/* + * AddIconToSuite() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +AddIconToSuite( + Handle theIconData, + IconSuiteRef theSuite, + ResType theType) THREEWORDINLINE(0x303C, 0x0608, 0xABC9); + + +/* + * GetIconFromSuite() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconFromSuite( + Handle * theIconData, + IconSuiteRef theSuite, + ResType theType) THREEWORDINLINE(0x303C, 0x0609, 0xABC9); + + +/* + * ForEachIconDo() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +ForEachIconDo( + IconSuiteRef theSuite, + IconSelectorValue selector, + IconActionUPP action, + void * yourDataPtr) THREEWORDINLINE(0x303C, 0x080A, 0xABC9); + + +/* + * GetIconSuite() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconSuite( + IconSuiteRef * theIconSuite, + SInt16 theResID, + IconSelectorValue selector) THREEWORDINLINE(0x303C, 0x0501, 0xABC9); + + +/* + * DisposeIconSuite() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +DisposeIconSuite( + IconSuiteRef theIconSuite, + Boolean disposeData) THREEWORDINLINE(0x303C, 0x0302, 0xABC9); + + +/* + * PlotIconSuite() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +PlotIconSuite( + const Rect * theRect, + IconAlignmentType align, + IconTransformType transform, + IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0603, 0xABC9); + + +/* + * MakeIconCache() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +MakeIconCache( + IconCacheRef * theCache, + IconGetterUPP makeIcon, + void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0604, 0xABC9); + + +/* + * LoadIconCache() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +LoadIconCache( + const Rect * theRect, + IconAlignmentType align, + IconTransformType transform, + IconCacheRef theIconCache) THREEWORDINLINE(0x303C, 0x0606, 0xABC9); + + +/* + * PlotIconMethod() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +PlotIconMethod( + const Rect * theRect, + IconAlignmentType align, + IconTransformType transform, + IconGetterUPP theMethod, + void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0805, 0xABC9); + + +/* + * GetLabel() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetLabel( + SInt16 labelNumber, + RGBColor * labelColor, + Str255 labelString) THREEWORDINLINE(0x303C, 0x050B, 0xABC9); + + +/* + * PtInIconID() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +PtInIconID( + Point testPt, + const Rect * iconRect, + IconAlignmentType align, + SInt16 iconID) THREEWORDINLINE(0x303C, 0x060D, 0xABC9); + + +/* + * PtInIconSuite() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +PtInIconSuite( + Point testPt, + const Rect * iconRect, + IconAlignmentType align, + IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x070E, 0xABC9); + + +/* + * PtInIconMethod() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +PtInIconMethod( + Point testPt, + const Rect * iconRect, + IconAlignmentType align, + IconGetterUPP theMethod, + void * yourDataPtr) THREEWORDINLINE(0x303C, 0x090F, 0xABC9); + + +/* + * RectInIconID() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +RectInIconID( + const Rect * testRect, + const Rect * iconRect, + IconAlignmentType align, + SInt16 iconID) THREEWORDINLINE(0x303C, 0x0610, 0xABC9); + + +/* + * RectInIconSuite() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +RectInIconSuite( + const Rect * testRect, + const Rect * iconRect, + IconAlignmentType align, + IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0711, 0xABC9); + + +/* + * RectInIconMethod() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +RectInIconMethod( + const Rect * testRect, + const Rect * iconRect, + IconAlignmentType align, + IconGetterUPP theMethod, + void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0912, 0xABC9); + + +/* + * IconIDToRgn() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +IconIDToRgn( + RgnHandle theRgn, + const Rect * iconRect, + IconAlignmentType align, + SInt16 iconID) THREEWORDINLINE(0x303C, 0x0613, 0xABC9); + + +/* + * IconSuiteToRgn() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +IconSuiteToRgn( + RgnHandle theRgn, + const Rect * iconRect, + IconAlignmentType align, + IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0714, 0xABC9); + + +/* + * IconMethodToRgn() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +IconMethodToRgn( + RgnHandle theRgn, + const Rect * iconRect, + IconAlignmentType align, + IconGetterUPP theMethod, + void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0915, 0xABC9); + + +/* + * SetSuiteLabel() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +SetSuiteLabel( + IconSuiteRef theSuite, + SInt16 theLabel) THREEWORDINLINE(0x303C, 0x0316, 0xABC9); + + +/* + * GetSuiteLabel() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( SInt16 ) +GetSuiteLabel(IconSuiteRef theSuite) THREEWORDINLINE(0x303C, 0x0217, 0xABC9); + + +/* + * GetIconCacheData() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconCacheData( + IconCacheRef theCache, + void ** theData) THREEWORDINLINE(0x303C, 0x0419, 0xABC9); + + +/* + * SetIconCacheData() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +SetIconCacheData( + IconCacheRef theCache, + void * theData) THREEWORDINLINE(0x303C, 0x041A, 0xABC9); + + +/* + * GetIconCacheProc() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconCacheProc( + IconCacheRef theCache, + IconGetterUPP * theProc) THREEWORDINLINE(0x303C, 0x041B, 0xABC9); + + +/* + * SetIconCacheProc() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +SetIconCacheProc( + IconCacheRef theCache, + IconGetterUPP theProc) THREEWORDINLINE(0x303C, 0x041C, 0xABC9); + + +/* + * PlotIconHandle() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +PlotIconHandle( + const Rect * theRect, + IconAlignmentType align, + IconTransformType transform, + Handle theIcon) THREEWORDINLINE(0x303C, 0x061D, 0xABC9); + + +/* + * PlotSICNHandle() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +PlotSICNHandle( + const Rect * theRect, + IconAlignmentType align, + IconTransformType transform, + Handle theSICN) THREEWORDINLINE(0x303C, 0x061E, 0xABC9); + + +/* + * PlotCIconHandle() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +PlotCIconHandle( + const Rect * theRect, + IconAlignmentType align, + IconTransformType transform, + CIconHandle theCIcon) THREEWORDINLINE(0x303C, 0x061F, 0xABC9); + + + + + + + + + + + + +/* + IconServices is an efficient mechanism to share icon data amongst multiple + clients. It avoids duplication of data; it provides efficient caching, + releasing memory when the icon data is no longer needed; it can provide + the appropriate icon for any filesystem object; it can provide commonly + used icons (caution, note, help...); it is Appearance-savvy: the icons + are switched when appropriate. + IconServices refer to cached icon data using IconRef, a 32-bit opaque + value. IconRefs are reference counted. When there are no more "owners" + of an IconRef, the memory used by the icon bitmap is disposed of. + Two files of same type and creator with no custom icon will have the same IconRef. + Files with custom icons will have their own IconRef. +*/ + +/* + Use the special creator kSystemIconsCreator to get "standard" icons + that are not associated with a file, such as the help icon. + Note that all lowercase creators are reserved by Apple. +*/ +enum { + kSystemIconsCreator = FOUR_CHAR_CODE('macs') +}; + + +/* + Type of the predefined/generic icons. For example, the call: + err = GetIconRef(kOnSystemDisk, kSystemIconsCreator, kHelpIcon, &iconRef); + will retun in iconRef the IconRef for the standard help icon. +*/ + +/* Generic Finder icons */ +enum { + kClipboardIcon = FOUR_CHAR_CODE('CLIP'), + kClippingUnknownTypeIcon = FOUR_CHAR_CODE('clpu'), + kClippingPictureTypeIcon = FOUR_CHAR_CODE('clpp'), + kClippingTextTypeIcon = FOUR_CHAR_CODE('clpt'), + kClippingSoundTypeIcon = FOUR_CHAR_CODE('clps'), + kDesktopIcon = FOUR_CHAR_CODE('desk'), + kFinderIcon = FOUR_CHAR_CODE('FNDR'), + kFontSuitcaseIcon = FOUR_CHAR_CODE('FFIL'), + kFullTrashIcon = FOUR_CHAR_CODE('ftrh'), + kGenericApplicationIcon = FOUR_CHAR_CODE('APPL'), + kGenericCDROMIcon = FOUR_CHAR_CODE('cddr'), + kGenericControlPanelIcon = FOUR_CHAR_CODE('APPC'), + kGenericControlStripModuleIcon = FOUR_CHAR_CODE('sdev'), + kGenericComponentIcon = FOUR_CHAR_CODE('thng'), + kGenericDeskAccessoryIcon = FOUR_CHAR_CODE('APPD'), + kGenericDocumentIcon = FOUR_CHAR_CODE('docu'), + kGenericEditionFileIcon = FOUR_CHAR_CODE('edtf'), + kGenericExtensionIcon = FOUR_CHAR_CODE('INIT'), + kGenericFileServerIcon = FOUR_CHAR_CODE('srvr'), + kGenericFontIcon = FOUR_CHAR_CODE('ffil'), + kGenericFontScalerIcon = FOUR_CHAR_CODE('sclr'), + kGenericFloppyIcon = FOUR_CHAR_CODE('flpy'), + kGenericHardDiskIcon = FOUR_CHAR_CODE('hdsk'), + kGenericIDiskIcon = FOUR_CHAR_CODE('idsk'), + kGenericRemovableMediaIcon = FOUR_CHAR_CODE('rmov'), + kGenericMoverObjectIcon = FOUR_CHAR_CODE('movr'), + kGenericPCCardIcon = FOUR_CHAR_CODE('pcmc'), + kGenericPreferencesIcon = FOUR_CHAR_CODE('pref'), + kGenericQueryDocumentIcon = FOUR_CHAR_CODE('qery'), + kGenericRAMDiskIcon = FOUR_CHAR_CODE('ramd'), + kGenericSharedLibaryIcon = FOUR_CHAR_CODE('shlb'), + kGenericStationeryIcon = FOUR_CHAR_CODE('sdoc'), + kGenericSuitcaseIcon = FOUR_CHAR_CODE('suit'), + kGenericURLIcon = FOUR_CHAR_CODE('gurl'), + kGenericWORMIcon = FOUR_CHAR_CODE('worm'), + kInternationalResourcesIcon = FOUR_CHAR_CODE('ifil'), + kKeyboardLayoutIcon = FOUR_CHAR_CODE('kfil'), + kSoundFileIcon = FOUR_CHAR_CODE('sfil'), + kSystemSuitcaseIcon = FOUR_CHAR_CODE('zsys'), + kTrashIcon = FOUR_CHAR_CODE('trsh'), + kTrueTypeFontIcon = FOUR_CHAR_CODE('tfil'), + kTrueTypeFlatFontIcon = FOUR_CHAR_CODE('sfnt'), + kTrueTypeMultiFlatFontIcon = FOUR_CHAR_CODE('ttcf'), + kUserIDiskIcon = FOUR_CHAR_CODE('udsk'), + kUnknownFSObjectIcon = FOUR_CHAR_CODE('unfs'), + kInternationResourcesIcon = kInternationalResourcesIcon /* old name*/ +}; + +/* Internet locations */ +enum { + kInternetLocationHTTPIcon = FOUR_CHAR_CODE('ilht'), + kInternetLocationFTPIcon = FOUR_CHAR_CODE('ilft'), + kInternetLocationAppleShareIcon = FOUR_CHAR_CODE('ilaf'), + kInternetLocationAppleTalkZoneIcon = FOUR_CHAR_CODE('ilat'), + kInternetLocationFileIcon = FOUR_CHAR_CODE('ilfi'), + kInternetLocationMailIcon = FOUR_CHAR_CODE('ilma'), + kInternetLocationNewsIcon = FOUR_CHAR_CODE('ilnw'), + kInternetLocationNSLNeighborhoodIcon = FOUR_CHAR_CODE('ilns'), + kInternetLocationGenericIcon = FOUR_CHAR_CODE('ilge') +}; + +/* Folders */ +enum { + kGenericFolderIcon = FOUR_CHAR_CODE('fldr'), + kDropFolderIcon = FOUR_CHAR_CODE('dbox'), + kMountedFolderIcon = FOUR_CHAR_CODE('mntd'), + kOpenFolderIcon = FOUR_CHAR_CODE('ofld'), + kOwnedFolderIcon = FOUR_CHAR_CODE('ownd'), + kPrivateFolderIcon = FOUR_CHAR_CODE('prvf'), + kSharedFolderIcon = FOUR_CHAR_CODE('shfl') +}; + +/* Sharing Privileges icons */ +enum { + kSharingPrivsNotApplicableIcon = FOUR_CHAR_CODE('shna'), + kSharingPrivsReadOnlyIcon = FOUR_CHAR_CODE('shro'), + kSharingPrivsReadWriteIcon = FOUR_CHAR_CODE('shrw'), + kSharingPrivsUnknownIcon = FOUR_CHAR_CODE('shuk'), + kSharingPrivsWritableIcon = FOUR_CHAR_CODE('writ') +}; + + +/* Users and Groups icons */ +enum { + kUserFolderIcon = FOUR_CHAR_CODE('ufld'), + kWorkgroupFolderIcon = FOUR_CHAR_CODE('wfld'), + kGuestUserIcon = FOUR_CHAR_CODE('gusr'), + kUserIcon = FOUR_CHAR_CODE('user'), + kOwnerIcon = FOUR_CHAR_CODE('susr'), + kGroupIcon = FOUR_CHAR_CODE('grup') +}; + +/* Special folders */ +enum { + kAppearanceFolderIcon = FOUR_CHAR_CODE('appr'), + kAppleExtrasFolderIcon = 0x616578C4, + kAppleMenuFolderIcon = FOUR_CHAR_CODE('amnu'), + kApplicationsFolderIcon = FOUR_CHAR_CODE('apps'), + kApplicationSupportFolderIcon = FOUR_CHAR_CODE('asup'), + kAssistantsFolderIcon = 0x617374C4, + kColorSyncFolderIcon = FOUR_CHAR_CODE('prof'), + kContextualMenuItemsFolderIcon = FOUR_CHAR_CODE('cmnu'), + kControlPanelDisabledFolderIcon = FOUR_CHAR_CODE('ctrD'), + kControlPanelFolderIcon = FOUR_CHAR_CODE('ctrl'), + kControlStripModulesFolderIcon = 0x736476C4, + kDocumentsFolderIcon = FOUR_CHAR_CODE('docs'), + kExtensionsDisabledFolderIcon = FOUR_CHAR_CODE('extD'), + kExtensionsFolderIcon = FOUR_CHAR_CODE('extn'), + kFavoritesFolderIcon = FOUR_CHAR_CODE('favs'), + kFontsFolderIcon = FOUR_CHAR_CODE('font'), + kHelpFolderIcon = 0xC4686C70, + kInternetFolderIcon = 0x696E74C4, + kInternetPlugInFolderIcon = 0xC46E6574, + kInternetSearchSitesFolderIcon = FOUR_CHAR_CODE('issf'), + kLocalesFolderIcon = 0xC46C6F63, + kMacOSReadMeFolderIcon = 0x6D6F72C4, + kPublicFolderIcon = FOUR_CHAR_CODE('pubf'), + kPreferencesFolderIcon = 0x707266C4, + kPrinterDescriptionFolderIcon = FOUR_CHAR_CODE('ppdf'), + kPrinterDriverFolderIcon = 0xC4707264, + kPrintMonitorFolderIcon = FOUR_CHAR_CODE('prnt'), + kRecentApplicationsFolderIcon = FOUR_CHAR_CODE('rapp'), + kRecentDocumentsFolderIcon = FOUR_CHAR_CODE('rdoc'), + kRecentServersFolderIcon = FOUR_CHAR_CODE('rsrv'), + kScriptingAdditionsFolderIcon = 0xC4736372, + kSharedLibrariesFolderIcon = 0xC46C6962, + kScriptsFolderIcon = 0x736372C4, + kShutdownItemsDisabledFolderIcon = FOUR_CHAR_CODE('shdD'), + kShutdownItemsFolderIcon = FOUR_CHAR_CODE('shdf'), + kSpeakableItemsFolder = FOUR_CHAR_CODE('spki'), + kStartupItemsDisabledFolderIcon = FOUR_CHAR_CODE('strD'), + kStartupItemsFolderIcon = FOUR_CHAR_CODE('strt'), + kSystemExtensionDisabledFolderIcon = FOUR_CHAR_CODE('macD'), + kSystemFolderIcon = FOUR_CHAR_CODE('macs'), + kTextEncodingsFolderIcon = 0xC4746578, + kUsersFolderIcon = 0x757372C4, + kUtilitiesFolderIcon = 0x757469C4, + kVoicesFolderIcon = FOUR_CHAR_CODE('fvoc') +}; + +/* Badges */ +enum { + kAppleScriptBadgeIcon = FOUR_CHAR_CODE('scrp'), + kLockedBadgeIcon = FOUR_CHAR_CODE('lbdg'), + kMountedBadgeIcon = FOUR_CHAR_CODE('mbdg'), + kSharedBadgeIcon = FOUR_CHAR_CODE('sbdg'), + kAliasBadgeIcon = FOUR_CHAR_CODE('abdg'), + kAlertCautionBadgeIcon = FOUR_CHAR_CODE('cbdg') +}; + +/* Alert icons */ +enum { + kAlertNoteIcon = FOUR_CHAR_CODE('note'), + kAlertCautionIcon = FOUR_CHAR_CODE('caut'), + kAlertStopIcon = FOUR_CHAR_CODE('stop') +}; + +/* Networking icons */ +enum { + kAppleTalkIcon = FOUR_CHAR_CODE('atlk'), + kAppleTalkZoneIcon = FOUR_CHAR_CODE('atzn'), + kAFPServerIcon = FOUR_CHAR_CODE('afps'), + kFTPServerIcon = FOUR_CHAR_CODE('ftps'), + kHTTPServerIcon = FOUR_CHAR_CODE('htps'), + kGenericNetworkIcon = FOUR_CHAR_CODE('gnet'), + kIPFileServerIcon = FOUR_CHAR_CODE('isrv') +}; + +/* Toolbar icons */ +enum { + kToolbarCustomizeIcon = FOUR_CHAR_CODE('tcus'), + kToolbarDeleteIcon = FOUR_CHAR_CODE('tdel'), + kToolbarFavoritesIcon = FOUR_CHAR_CODE('tfav'), + kToolbarHomeIcon = FOUR_CHAR_CODE('thom') +}; + +/* Other icons */ +enum { + kAppleLogoIcon = FOUR_CHAR_CODE('capl'), + kAppleMenuIcon = FOUR_CHAR_CODE('sapl'), + kBackwardArrowIcon = FOUR_CHAR_CODE('baro'), + kFavoriteItemsIcon = FOUR_CHAR_CODE('favr'), + kForwardArrowIcon = FOUR_CHAR_CODE('faro'), + kGridIcon = FOUR_CHAR_CODE('grid'), + kHelpIcon = FOUR_CHAR_CODE('help'), + kKeepArrangedIcon = FOUR_CHAR_CODE('arng'), + kLockedIcon = FOUR_CHAR_CODE('lock'), + kNoFilesIcon = FOUR_CHAR_CODE('nfil'), + kNoFolderIcon = FOUR_CHAR_CODE('nfld'), + kNoWriteIcon = FOUR_CHAR_CODE('nwrt'), + kProtectedApplicationFolderIcon = FOUR_CHAR_CODE('papp'), + kProtectedSystemFolderIcon = FOUR_CHAR_CODE('psys'), + kRecentItemsIcon = FOUR_CHAR_CODE('rcnt'), + kShortcutIcon = FOUR_CHAR_CODE('shrt'), + kSortAscendingIcon = FOUR_CHAR_CODE('asnd'), + kSortDescendingIcon = FOUR_CHAR_CODE('dsnd'), + kUnlockedIcon = FOUR_CHAR_CODE('ulck'), + kConnectToIcon = FOUR_CHAR_CODE('cnct'), + kGenericWindowIcon = FOUR_CHAR_CODE('gwin'), + kQuestionMarkIcon = FOUR_CHAR_CODE('ques'), + kDeleteAliasIcon = FOUR_CHAR_CODE('dali'), + kEjectMediaIcon = FOUR_CHAR_CODE('ejec'), + kBurningIcon = FOUR_CHAR_CODE('burn'), + kRightContainerArrowIcon = FOUR_CHAR_CODE('rcar') +}; + + + +/* IconServicesUsageFlags */ +typedef UInt32 IconServicesUsageFlags; +enum { + kIconServicesNormalUsageFlag = 0 +}; + + +/* + kIconServicesCatalogInfoMask - Minimal bitmask for use with + GetIconRefFromFileInfo(). Use this mask with FSGetCatalogInfo + before calling GetIconRefFromFileInfo(). +*/ +enum { + kIconServicesCatalogInfoMask = (kFSCatInfoNodeID | kFSCatInfoParentDirID | kFSCatInfoVolume | kFSCatInfoNodeFlags | kFSCatInfoFinderInfo | kFSCatInfoFinderXInfo | kFSCatInfoUserAccess) +}; + + +/* + * PlotIconRefFlags + * + * Discussion: + * Flags that can be passed to the PlotIconRefInContext routine. + */ +typedef UInt32 PlotIconRefFlags; +enum { + + /* + * Draw the icon image and alpha channel. + */ + kPlotIconRefNormalFlags = 0L, + + /* + * Only draw the alpha channel. + */ + kPlotIconRefNoImage = (1 << 1), + + /* + * Only draw the image. + */ + kPlotIconRefNoMask = (1 << 2) +}; + + + + +/* + ============================================================================== + Initialization and Termination + ============================================================================== +*/ + +/* + IconServicesInit + + Call this routine once per classic 68K application initialization. + This routine does not need to be called at boot time. +*/ + +#if CALL_NOT_IN_CARBON +/* + * IconServicesInit() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +IconServicesInit(CFragInitBlockPtr initBlockPtr) TWOWORDINLINE(0x7015, 0xAA75); + + + +/* + IconServicesTerminate: + + Call this routine once from the termination of a classic 68K application. + This routine does not need to be called at boot time. +*/ + +/* + * IconServicesTerminate() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( void ) +IconServicesTerminate(void) TWOWORDINLINE(0x7016, 0xAA75); + + +#endif /* CALL_NOT_IN_CARBON */ + +/* + ============================================================================== + Converting data structures + ============================================================================== +*/ + + +/* + IconRefToIconFamily + This routines returns a new IconFamily that contains the data corresponding + to the specified IconRef. +*/ + +/* + * IconRefToIconFamily() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +IconRefToIconFamily( + IconRef theIconRef, + IconSelectorValue whichIcons, + IconFamilyHandle * iconFamily) TWOWORDINLINE(0x7024, 0xAA75); + + + +/* + IconFamilyToIconSuite + This routine transfers the data from an icon family handle into an icon suite. +*/ + +/* + * IconFamilyToIconSuite() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +IconFamilyToIconSuite( + IconFamilyHandle iconFamily, + IconSelectorValue whichIcons, + IconSuiteRef * iconSuite) TWOWORDINLINE(0x7025, 0xAA75); + + + +/* + IconSuiteToIconFamily + This routine transfers the data in an icon suite into an icon family. +*/ + +/* + * IconSuiteToIconFamily() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +IconSuiteToIconFamily( + IconSuiteRef iconSuite, + IconSelectorValue whichIcons, + IconFamilyHandle * iconFamily) TWOWORDINLINE(0x7026, 0xAA75); + + + +/* + SetIconFamilyData + Change the data of an icon family. The data is copied. + The type can be one of the icon type, or 'PICT'. + The data will be compressed if needed. +*/ + +/* + * SetIconFamilyData() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +SetIconFamilyData( + IconFamilyHandle iconFamily, + OSType iconType, + Handle h) TWOWORDINLINE(0x7030, 0xAA75); + + + +/* + GetIconFamilyData + Return a copy of the data in the icon family. + The type can be one of the icon type, or 'PICT' + The data will be returned uncompressed. + The handle (h) will be resized as appropriate. If no data of the + requested type is present, the handle size will be set to 0. +*/ + +/* + * GetIconFamilyData() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconFamilyData( + IconFamilyHandle iconFamily, + OSType iconType, + Handle h) TWOWORDINLINE(0x7031, 0xAA75); + + + +/* + ============================================================================== + Reference counting + ============================================================================== +*/ + + +/* + GetIconRefOwners + + This routine returns the reference count for the IconRef, or number of owners. + + A valid IconRef always has at least one owner. +*/ + +/* + * GetIconRefOwners() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconRefOwners( + IconRef theIconRef, + UInt16 * owners) TWOWORDINLINE(0x700B, 0xAA75); + + + +/* + AcquireIconRef + This routine increments the reference count for the IconRef +*/ + +/* + * AcquireIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +AcquireIconRef(IconRef theIconRef) TWOWORDINLINE(0x7027, 0xAA75); + + + + +/* + ReleaseIconRef + + This routine decrements the reference count for the IconRef. + + When the reference count reaches 0, all memory allocated for the icon + is disposed. Any subsequent use of the IconRef is invalid. +*/ + +/* + * ReleaseIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +ReleaseIconRef(IconRef theIconRef) TWOWORDINLINE(0x7028, 0xAA75); + + + + +/* + ============================================================================== + Getting an IconRef + ============================================================================== +*/ + + +/* + GetIconRefFromFile + + This routine returns an icon ref for the specified file, folder or volume. + The label information is provided separately, since two files with the same icon + but a different label would share the same iconRef. The label can be used in + PlotIconRef() for example. + + Use this routine if you have no information about the file system object. If + you have already done a GetCatInfo on the file and want to save some I/O, + call GetIconRefFromFolder() if you know it's a folder with no custom icon or + call GetIconRef() if it's a file with no custom icon. + This routine increments the reference count of the returned IconRef. Call + ReleaseIconRef() when you're done with it. +*/ + +/* + * GetIconRefFromFile() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconRefFromFile( + const FSSpec * theFile, + IconRef * theIconRef, + SInt16 * theLabel) TWOWORDINLINE(0x7002, 0xAA75); + + + + +/* + GetIconRef + + This routine returns an icon ref for an icon in the desktop database or + for a registered icon. + The system registers a set of icon such as the help icon with the creator + code kSystemIconsCreator. See above for a list of the registered system types. + The vRefNum is used as a hint on where to look for the icon first. Use + kOnSystemDisk if you don't know what to pass. + This routine increments the reference count of the returned IconRef. Call + ReleaseIconRef() when you're done with it. +*/ + +/* + * GetIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconRef( + SInt16 vRefNum, + OSType creator, + OSType iconType, + IconRef * theIconRef) TWOWORDINLINE(0x7021, 0xAA75); + + + + +/* + GetIconRefFromFolder + + This routine returns an icon ref for a folder with no custom icon. + Use the more generic, but slightly slower, GetIconRefFromFile() if + you don't already have the necessary info about the file. + Attributes should be CInfoPBRec.dirInfo.ioFlAttrib for this folder. + Access privileges should be CInfoPBRec.dirInfo.ioACUser for this folder. + This routine increments the reference count of the IconRef. Call ReleaseIconRef() + when you're done with it. +*/ + +/* + * GetIconRefFromFolder() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconRefFromFolder( + SInt16 vRefNum, + SInt32 parentFolderID, + SInt32 folderID, + SInt8 attributes, + SInt8 accessPrivileges, + IconRef * theIconRef) TWOWORDINLINE(0x7022, 0xAA75); + + +/* GetIconRefFromFileInfo*/ +/* + * GetIconRefFromFileInfo() + * + * Summary: + * This routine returns an IconRef for a file with minimal file I/O. + * + * Discussion: + * To minimize file operations, FSGetCatalogInfo should be called + * prior to calling this routine. The FSCatalogInfo should + * correspond to kIconServicesCatalogInfoMask The name should be + * fetched and passed in. If either the name or the correct catalog + * info is not passed in, this routine will do file operations for + * this information instead. + * + * Parameters: + * + * inRef: + * An FSRef for the target file + * + * inFileNameLength: + * The length of the name of the target file + * + * inFileName: + * The name of the target file + * + * inWhichInfo: + * The mask of file info already acquired. + * + * inCatalogInfo: + * The catalog info already acquired. + * + * inUsageFlags: + * The usage flags for this call (use + * kIconServicesNormalUsageFlag). + * + * outIconRef: + * The output IconRef for the routine. + * + * outLabel: + * The output label for the icon/file. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +GetIconRefFromFileInfo( + const FSRef * inRef, + UniCharCount inFileNameLength, + const UniChar * inFileName, /* can be NULL */ + FSCatalogInfoBitmap inWhichInfo, + const FSCatalogInfo * inCatalogInfo, /* can be NULL */ + IconServicesUsageFlags inUsageFlags, + IconRef * outIconRef, + SInt16 * outLabel); + + +/* + ============================================================================== + Adding and modifying IconRef + ============================================================================== +*/ + + +/* + RegisterIconRefFromIconFamily + This routine adds a new entry to the IconRef registry. Other clients will be + able to access it using the (creator, iconType) pair specified here. + Lower-case creators are reserved for the system. + Consider using RegisterIconRefFromResource() if possible, since the data + registered using RegisterIconRefFromFamily() cannot be purged. + The iconFamily data is copied and the caller is reponsible for disposing of it. + This routine increments the reference count of the IconRef. Call ReleaseIconRef() + when you're done with it. +*/ + +/* + * RegisterIconRefFromIconFamily() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +RegisterIconRefFromIconFamily( + OSType creator, + OSType iconType, + IconFamilyHandle iconFamily, + IconRef * theIconRef) TWOWORDINLINE(0x701C, 0xAA75); + + + +/* + RegisterIconRefFromResource + + Registers an IconRef from a resouce file. + Lower-case creators are reserved for the system. + The icon data to be fetched is either classic icon data or an icon family. + The 'icns' icon family is searched for before the classic icon data. + This routine increments the reference count of the IconRef. Call ReleaseIconRef() + when you're done with it. +*/ + +/* + * RegisterIconRefFromResource() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +RegisterIconRefFromResource( + OSType creator, + OSType iconType, + const FSSpec * resourceFile, + SInt16 resourceID, + IconRef * theIconRef) TWOWORDINLINE(0x7023, 0xAA75); + + +/* RegisterIconRefFromFSRef*/ +/* + * RegisterIconRefFromFSRef() + * + * Discussion: + * This routine registers an IconRef from a ".icns" file and + * associates it with a creator/type pair. + * + * Parameters: + * + * creator: + * The creator code for the icns file. + * + * iconType: + * The type code for the icns file + * + * iconFile: + * The FSRef of the icns file. + * + * theIconRef: + * The output IconRef for the routine. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +RegisterIconRefFromFSRef( + OSType creator, + OSType iconType, + const FSRef * iconFile, + IconRef * theIconRef); + + +/* + UnregisterIconRef + + Removes the specified icon from the icon cache (if there are no users of it). + If some clients are using this iconRef, then the IconRef will be removed when the + last user calls ReleaseIconRef. +*/ + +/* + * UnregisterIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +UnregisterIconRef( + OSType creator, + OSType iconType) TWOWORDINLINE(0x7008, 0xAA75); + + + + +/* + UpdateIconRef + + Call this routine to force an update of the data for iconRef. + + For example after changing an icon in the desktop database or changing the custom + icon of a file. Note that after _adding_ a custom icon to file or folder, you + need to call GetIconRefFromFile() to get a new IconRef specific to this file. + + This routine does nothing if the IconRef is a registered icon. +*/ + +/* + * UpdateIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +UpdateIconRef(IconRef theIconRef) TWOWORDINLINE(0x7009, 0xAA75); + + + + +/* + OverrideIconRefFromResource + + This routines replaces the bitmaps of the specified IconRef with the ones + in the specified resource file. +*/ + +/* + * OverrideIconRefFromResource() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +OverrideIconRefFromResource( + IconRef theIconRef, + const FSSpec * resourceFile, + SInt16 resourceID) TWOWORDINLINE(0x702A, 0xAA75); + + + + +/* + OverrideIconRef + + This routines replaces the bitmaps of the specified IconRef with the ones + from the new IconRef. +*/ + +/* + * OverrideIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +OverrideIconRef( + IconRef oldIconRef, + IconRef newIconRef) TWOWORDINLINE(0x702B, 0xAA75); + + + +/* + RemoveIconRefOverride + This routine remove an override if one was applied to the icon and + reverts back to the original bitmap data. +*/ + +/* + * RemoveIconRefOverride() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +RemoveIconRefOverride(IconRef theIconRef) TWOWORDINLINE(0x701E, 0xAA75); + + + + +/* + ============================================================================== + Creating composite IconRef + ============================================================================== +*/ + + +/* + CompositeIconRef + + Superimposes an IconRef on top of another one +*/ + +/* + * CompositeIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +CompositeIconRef( + IconRef backgroundIconRef, + IconRef foregroundIconRef, + IconRef * compositeIconRef) TWOWORDINLINE(0x7014, 0xAA75); + + + +/* + IsIconRefComposite + Indicates if a given icon ref is a composite of two other icon refs (and which ones) + If it isn't a composite, backgroundIconRef and foreGroundIconRef will be 0. +*/ + +/* + * IsIconRefComposite() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +IsIconRefComposite( + IconRef compositeIconRef, + IconRef * backgroundIconRef, + IconRef * foregroundIconRef) TWOWORDINLINE(0x701A, 0xAA75); + + + + +/* + ============================================================================== + Using IconRef + ============================================================================== +*/ + +/* + IsValidIconRef + Return true if the iconRef passed in is a valid icon ref +*/ + +/* + * IsValidIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +IsValidIconRef(IconRef theIconRef) TWOWORDINLINE(0x7032, 0xAA75); + + + +/* + PlotIconRef + + This routine plots the IconRef. It mostly takes the same parameters as + PlotIconSuite. Pass kIconServicesNormalUsageFlag as a default value for + IconServicesUsageFlags. +*/ + +/* + * PlotIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +PlotIconRef( + const Rect * theRect, + IconAlignmentType align, + IconTransformType transform, + IconServicesUsageFlags theIconServicesUsageFlags, + IconRef theIconRef) TWOWORDINLINE(0x700E, 0xAA75); + + + +/* PlotIconRefInContext*/ +/* + * PlotIconRefInContext() + * + * Discussion: + * This routines plots an IconRef using Quartz/CoreGraphics. + * + * Parameters: + * + * inContext: + * The graphics context to use. + * + * inRect: + * The rect to plot the icon in. + * + * inAlign: + * The icon alignment. + * + * inTransform: + * The icon transform. + * + * inLabelColor: + * The icon label color. + * + * inFlags: + * The drawing flags to use (usually kPlotIconRefNormalFlags). + * + * inIconRef: + * The IconRef to plot. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +PlotIconRefInContext( + CGContextRef inContext, + const CGRect * inRect, + IconAlignmentType inAlign, + IconTransformType inTransform, + const RGBColor * inLabelColor, + PlotIconRefFlags inFlags, + IconRef inIconRef); + + + +/* + PtInIconRef + + This routine indicates if testPt would hit the icon designated by iconRef. + It mostly takes the same parameters as PtInIconSuite. + Pass kIconServicesNormalUsageFlag as a default value for IconServicesUsageFlags. +*/ + + +/* + * PtInIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +PtInIconRef( + const Point * testPt, + const Rect * iconRect, + IconAlignmentType align, + IconServicesUsageFlags theIconServicesUsageFlags, + IconRef theIconRef) TWOWORDINLINE(0x700F, 0xAA75); + + + +/* + RectInIconRef + + This routine indicates if testRect would intersect the icon designated by iconRef. + It mostly takes the same parameters as RectInIconSuite. + Pass kIconServicesNormalUsageFlag as a default value for IconServicesUsageFlags. +*/ + + +/* + * RectInIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +RectInIconRef( + const Rect * testRect, + const Rect * iconRect, + IconAlignmentType align, + IconServicesUsageFlags iconServicesUsageFlags, + IconRef theIconRef) TWOWORDINLINE(0x7010, 0xAA75); + + + +/* + IconRefToRgn + + This routine returns a region for the icon. + It mostly takes the same parameters as IconSuiteToRgn. + Pass kIconServicesNormalUsageFlag as a default value for IconServicesUsageFlags. +*/ + +/* + * IconRefToRgn() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +IconRefToRgn( + RgnHandle theRgn, + const Rect * iconRect, + IconAlignmentType align, + IconServicesUsageFlags iconServicesUsageFlags, + IconRef theIconRef) TWOWORDINLINE(0x7011, 0xAA75); + + + +/* + GetIconSizesFromIconRef + + This routine returns an IconSelectorValue indicating the depths and sizes of + icon data which are actually available. It takes an IconSelectorValue + indicating which sizes/depths the caller is interested and returns an + IconSelectorValue indicating which sizes/depths exist. + + Caution: + + This is potentially an extremely expensive call as IconServices may be forced + to attempt fetching the data for the IconRef's sizes/depths which may result + in hitting the local disk or even the network to obtain the data to determine + which sizes/depths actually exist. + Pass kIconServicesNormalUsageFlag as a default value for IconServicesUsageFlags. +*/ + +/* + * GetIconSizesFromIconRef() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetIconSizesFromIconRef( + IconSelectorValue iconSelectorInput, + IconSelectorValue * iconSelectorOutputPtr, + IconServicesUsageFlags iconServicesUsageFlags, + IconRef theIconRef) TWOWORDINLINE(0x7012, 0xAA75); + + + + +/* + ============================================================================== + Flushing IconRef data + ============================================================================== +*/ + + +/* + FlushIconRefs + + Making this call will dispose of all the data for the specified icons if + the data can be reacquired, for example if the data is provided from a resource. + '****' is a wildcard for all types or all creators. +*/ + +/* + * FlushIconRefs() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +FlushIconRefs( + OSType creator, + OSType iconType) TWOWORDINLINE(0x7029, 0xAA75); + + + +/* + FlushIconRefsByVolume + + This routine disposes of the data for the icons related to the indicated volume + if this data can be reacquired, for example if the data is provided from a + resource. +*/ + +/* + * FlushIconRefsByVolume() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +FlushIconRefsByVolume(SInt16 vRefNum) TWOWORDINLINE(0x7018, 0xAA75); + + + + +/* + ============================================================================== + Controling custom icons + ============================================================================== +*/ + + +/* + SetCustomIconsEnabled + + Enable or disable custom icons on the specified volume. +*/ + +/* + * SetCustomIconsEnabled() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +SetCustomIconsEnabled( + SInt16 vRefNum, + Boolean enableCustomIcons) TWOWORDINLINE(0x701F, 0xAA75); + + + +/* + GetCustomIconsEnabled + + Return true if custom icons are enabled on the specified volume, false otherwise. +*/ + +/* + * GetCustomIconsEnabled() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetCustomIconsEnabled( + SInt16 vRefNum, + Boolean * customIconsEnabled) TWOWORDINLINE(0x7020, 0xAA75); + + + +/* + IsIconRefMaskEmpty + Returns true if the mask for this icon is blank +*/ + +/* + * IsIconRefMaskEmpty() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 8.5 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( Boolean ) +IsIconRefMaskEmpty(IconRef iconRef) TWOWORDINLINE(0x7033, 0xAA75); + + + +/* + GetIconRefVariant + Icon variants allows different images to be used with different icon state. + For example, the 'open' variant for a folder could be represented with + an open folder. + Given an icon ref and a desired variant, this routine returns an icon + ref (which may be the same as the input icon ref) and a transformation + which should be used with PlotIconRef() to render the icon appropriately. + The returned icon ref should be used to do hit-testing. +*/ + +/* + * GetIconRefVariant() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 9.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( IconRef ) +GetIconRefVariant( + IconRef inIconRef, + OSType inVariant, + IconTransformType * outTransform) TWOWORDINLINE(0x7034, 0xAA75); + + + + +/* + ============================================================================== + Icon files (.icns files) + ============================================================================== +*/ + + +/* + RegisterIconRefFromIconFile + This routine adds a new entry to the IconRef registry. Other clients will be + able to access it using the (creator, iconType) pair specified here. + Lower-case creators are reserved for the system. + If the creator is kSystemIconsCreator and the iconType is 0, a new IconRef + is always returned. Otherwise, if the creator and type have already been + registered, the previously registered IconRef is returned. + This routine increments the reference count of the IconRef. Call ReleaseIconRef() + when you're done with it. +*/ + +/* + * RegisterIconRefFromIconFile() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 9.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +RegisterIconRefFromIconFile( + OSType creator, + OSType iconType, + const FSSpec * iconFile, + IconRef * theIconRef) TWOWORDINLINE(0x7035, 0xAA75); + + + +/* + ReadIconFile + Read the specified icon file into the icon family handle. + The caller is responsible for disposing the iconFamily +*/ + +/* + * ReadIconFile() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 9.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +ReadIconFile( + const FSSpec * iconFile, + IconFamilyHandle * iconFamily) TWOWORDINLINE(0x7036, 0xAA75); + + +/* ReadIconFromFSRef*/ +/* + * ReadIconFromFSRef() + * + * Discussion: + * This routine reads an icon (icns) file into memory. + * + * Parameters: + * + * ref: + * The FSRef for the icon file. + * + * iconFamily: + * The handle for the icon family. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSStatus ) +ReadIconFromFSRef( + const FSRef * ref, + IconFamilyHandle * iconFamily); + + + +/* + WriteIconFile + Write the iconFamily handle to the specified file +*/ + +/* + * WriteIconFile() + * + * Availability: + * Non-Carbon CFM: in IconServicesLib 9.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +WriteIconFile( + IconFamilyHandle iconFamily, + const FSSpec * iconFile) TWOWORDINLINE(0x7037, 0xAA75); + + + + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __ICONS__ */ + |