You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2413 lines
73 KiB
2413 lines
73 KiB
5 years ago
|
/*
|
||
|
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__ */
|
||
|
|