Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrevil_xxl <drevil_xxl@users.sourceforge.net>2007-12-27 03:07:03 +0300
committerdrevil_xxl <drevil_xxl@users.sourceforge.net>2007-12-27 03:07:03 +0300
commitb271b75623e1034b309bd8402d5a577fb0ab9b06 (patch)
treea9cbe7545687c306fe0fe6071789f013d02c959e /include/qt
parent91526768df5393f4da84c08989abdb120d433066 (diff)
Applied various patches.
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@349 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'include/qt')
-rw-r--r--include/qt/Icons.h2968
1 files changed, 1484 insertions, 1484 deletions
diff --git a/include/qt/Icons.h b/include/qt/Icons.h
index 89bdf7719..8937b4521 100644
--- a/include/qt/Icons.h
+++ b/include/qt/Icons.h
@@ -1,1484 +1,1484 @@
-/*
- File: Icons.h
-
- Contains: Icon Utilities and Icon Services Interfaces.
-
- Version: Technology: Mac OS 8.5
- Release: QuickTime 6.0.2
-
- Copyright: (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 __QUICKDRAW__
-#include "Quickdraw.h"
-#endif
-
-#ifndef __FILES__
-#include "Files.h"
-#endif
-
-#ifndef __CODEFRAGMENTS__
-#include "CodeFragments.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
-};
-
-/* The following icon types can only be used as an icon element */
-/* inside a 'icns' icon family */
-enum {
- kThumbnail32BitData = FOUR_CHAR_CODE('it32'),
- kThumbnail8BitMask = FOUR_CHAR_CODE('t8mk')
-};
-
-enum {
- kHuge1BitMask = FOUR_CHAR_CODE('ich#'),
- kHuge4BitData = FOUR_CHAR_CODE('ich4'),
- kHuge8BitData = FOUR_CHAR_CODE('ich8'),
- kHuge32BitData = FOUR_CHAR_CODE('ih32'),
- kHuge8BitMask = FOUR_CHAR_CODE('h8mk')
-};
-
-/* The following icon types can be used as a resource type */
-/* or as an icon element type inside a 'icns' icon family */
-enum {
- kLarge1BitMask = FOUR_CHAR_CODE('ICN#'),
- kLarge4BitData = FOUR_CHAR_CODE('icl4'),
- kLarge8BitData = FOUR_CHAR_CODE('icl8'),
- kLarge32BitData = FOUR_CHAR_CODE('il32'),
- kLarge8BitMask = FOUR_CHAR_CODE('l8mk'),
- kSmall1BitMask = FOUR_CHAR_CODE('ics#'),
- kSmall4BitData = FOUR_CHAR_CODE('ics4'),
- kSmall8BitData = FOUR_CHAR_CODE('ics8'),
- kSmall32BitData = FOUR_CHAR_CODE('is32'),
- kSmall8BitMask = FOUR_CHAR_CODE('s8mk'),
- kMini1BitMask = FOUR_CHAR_CODE('icm#'),
- kMini4BitData = FOUR_CHAR_CODE('icm4'),
- kMini8BitData = FOUR_CHAR_CODE('icm8')
-};
-
-/* Icon Variants */
-/* These can be used as an element of an 'icns' icon family */
-/* or as a parameter to GetIconRefVariant */
-enum {
- kTileIconVariant = FOUR_CHAR_CODE('tile'),
- kRolloverIconVariant = FOUR_CHAR_CODE('over'),
- kDropIconVariant = FOUR_CHAR_CODE('drop'),
- kOpenIconVariant = FOUR_CHAR_CODE('open'),
- kOpenDropIconVariant = FOUR_CHAR_CODE('odrp')
-};
-
-/* Obsolete. Use names defined above. */
-enum {
- large1BitMask = kLarge1BitMask,
- large4BitData = kLarge4BitData,
- large8BitData = kLarge8BitData,
- small1BitMask = kSmall1BitMask,
- small4BitData = kSmall4BitData,
- small8BitData = kSmall8BitData,
- mini1BitMask = kMini1BitMask,
- mini4BitData = kMini4BitData,
- mini8BitData = kMini8BitData
-};
-
-/* 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;
-#if OPAQUE_UPP_TYPES
- EXTERN_API(IconActionUPP)
- NewIconActionUPP (IconActionProcPtr userRoutine);
-
- EXTERN_API(IconGetterUPP)
- NewIconGetterUPP (IconGetterProcPtr userRoutine);
-
- EXTERN_API(void)
- DisposeIconActionUPP (IconActionUPP userUPP);
-
- EXTERN_API(void)
- DisposeIconGetterUPP (IconGetterUPP userUPP);
-
- EXTERN_API(OSErr)
- InvokeIconActionUPP (ResType theType,
- Handle * theIcon,
- void * yourDataPtr,
- IconActionUPP userUPP);
-
- EXTERN_API(Handle)
- InvokeIconGetterUPP (ResType theType,
- void * yourDataPtr,
- IconGetterUPP userUPP);
-
-#else
- enum { uppIconActionProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
- enum { uppIconGetterProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
- #define NewIconActionUPP(userRoutine) (IconActionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture())
- #define NewIconGetterUPP(userRoutine) (IconGetterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture())
- #define DisposeIconActionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeIconGetterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeIconActionUPP(theType, theIcon, yourDataPtr, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppIconActionProcInfo, (theType), (theIcon), (yourDataPtr))
- #define InvokeIconGetterUPP(theType, yourDataPtr, userUPP) (Handle)CALL_TWO_PARAMETER_UPP((userUPP), uppIconGetterProcInfo, (theType), (yourDataPtr))
-#endif
-/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
-#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)
-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;
-EXTERN_API( CIconHandle )
-GetCIcon (SInt16 iconID) ONEWORDINLINE(0xAA1E);
-
-EXTERN_API( void )
-PlotCIcon (const Rect * theRect,
- CIconHandle theIcon) ONEWORDINLINE(0xAA1F);
-
-EXTERN_API( void )
-DisposeCIcon (CIconHandle theIcon) ONEWORDINLINE(0xAA25);
-
-
-/* GetIcon and PlotIcon moved here from ToolUtils*/
-EXTERN_API( Handle )
-GetIcon (SInt16 iconID) ONEWORDINLINE(0xA9BB);
-
-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;
-EXTERN_API( OSErr )
-PlotIconID (const Rect * theRect,
- IconAlignmentType align,
- IconTransformType transform,
- SInt16 theResID) THREEWORDINLINE(0x303C, 0x0500, 0xABC9);
-
-EXTERN_API( OSErr )
-NewIconSuite (IconSuiteRef * theIconSuite) THREEWORDINLINE(0x303C, 0x0207, 0xABC9);
-
-EXTERN_API( OSErr )
-AddIconToSuite (Handle theIconData,
- IconSuiteRef theSuite,
- ResType theType) THREEWORDINLINE(0x303C, 0x0608, 0xABC9);
-
-EXTERN_API( OSErr )
-GetIconFromSuite (Handle * theIconData,
- IconSuiteRef theSuite,
- ResType theType) THREEWORDINLINE(0x303C, 0x0609, 0xABC9);
-
-EXTERN_API( OSErr )
-ForEachIconDo (IconSuiteRef theSuite,
- IconSelectorValue selector,
- IconActionUPP action,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x080A, 0xABC9);
-
-EXTERN_API( OSErr )
-GetIconSuite (IconSuiteRef * theIconSuite,
- SInt16 theResID,
- IconSelectorValue selector) THREEWORDINLINE(0x303C, 0x0501, 0xABC9);
-
-EXTERN_API( OSErr )
-DisposeIconSuite (IconSuiteRef theIconSuite,
- Boolean disposeData) THREEWORDINLINE(0x303C, 0x0302, 0xABC9);
-
-EXTERN_API( OSErr )
-PlotIconSuite (const Rect * theRect,
- IconAlignmentType align,
- IconTransformType transform,
- IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0603, 0xABC9);
-
-EXTERN_API( OSErr )
-MakeIconCache (IconCacheRef * theCache,
- IconGetterUPP makeIcon,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0604, 0xABC9);
-
-EXTERN_API( OSErr )
-LoadIconCache (const Rect * theRect,
- IconAlignmentType align,
- IconTransformType transform,
- IconCacheRef theIconCache) THREEWORDINLINE(0x303C, 0x0606, 0xABC9);
-
-EXTERN_API( OSErr )
-PlotIconMethod (const Rect * theRect,
- IconAlignmentType align,
- IconTransformType transform,
- IconGetterUPP theMethod,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0805, 0xABC9);
-
-EXTERN_API( OSErr )
-GetLabel (SInt16 labelNumber,
- RGBColor * labelColor,
- Str255 labelString) THREEWORDINLINE(0x303C, 0x050B, 0xABC9);
-
-EXTERN_API( Boolean )
-PtInIconID (Point testPt,
- const Rect * iconRect,
- IconAlignmentType align,
- SInt16 iconID) THREEWORDINLINE(0x303C, 0x060D, 0xABC9);
-
-EXTERN_API( Boolean )
-PtInIconSuite (Point testPt,
- const Rect * iconRect,
- IconAlignmentType align,
- IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x070E, 0xABC9);
-
-EXTERN_API( Boolean )
-PtInIconMethod (Point testPt,
- const Rect * iconRect,
- IconAlignmentType align,
- IconGetterUPP theMethod,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x090F, 0xABC9);
-
-EXTERN_API( Boolean )
-RectInIconID (const Rect * testRect,
- const Rect * iconRect,
- IconAlignmentType align,
- SInt16 iconID) THREEWORDINLINE(0x303C, 0x0610, 0xABC9);
-
-EXTERN_API( Boolean )
-RectInIconSuite (const Rect * testRect,
- const Rect * iconRect,
- IconAlignmentType align,
- IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0711, 0xABC9);
-
-EXTERN_API( Boolean )
-RectInIconMethod (const Rect * testRect,
- const Rect * iconRect,
- IconAlignmentType align,
- IconGetterUPP theMethod,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0912, 0xABC9);
-
-EXTERN_API( OSErr )
-IconIDToRgn (RgnHandle theRgn,
- const Rect * iconRect,
- IconAlignmentType align,
- SInt16 iconID) THREEWORDINLINE(0x303C, 0x0613, 0xABC9);
-
-EXTERN_API( OSErr )
-IconSuiteToRgn (RgnHandle theRgn,
- const Rect * iconRect,
- IconAlignmentType align,
- IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0714, 0xABC9);
-
-EXTERN_API( OSErr )
-IconMethodToRgn (RgnHandle theRgn,
- const Rect * iconRect,
- IconAlignmentType align,
- IconGetterUPP theMethod,
- void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0915, 0xABC9);
-
-EXTERN_API( OSErr )
-SetSuiteLabel (IconSuiteRef theSuite,
- SInt16 theLabel) THREEWORDINLINE(0x303C, 0x0316, 0xABC9);
-
-EXTERN_API( SInt16 )
-GetSuiteLabel (IconSuiteRef theSuite) THREEWORDINLINE(0x303C, 0x0217, 0xABC9);
-
-EXTERN_API( OSErr )
-GetIconCacheData (IconCacheRef theCache,
- void ** theData) THREEWORDINLINE(0x303C, 0x0419, 0xABC9);
-
-EXTERN_API( OSErr )
-SetIconCacheData (IconCacheRef theCache,
- void * theData) THREEWORDINLINE(0x303C, 0x041A, 0xABC9);
-
-EXTERN_API( OSErr )
-GetIconCacheProc (IconCacheRef theCache,
- IconGetterUPP * theProc) THREEWORDINLINE(0x303C, 0x041B, 0xABC9);
-
-EXTERN_API( OSErr )
-SetIconCacheProc (IconCacheRef theCache,
- IconGetterUPP theProc) THREEWORDINLINE(0x303C, 0x041C, 0xABC9);
-
-EXTERN_API( OSErr )
-PlotIconHandle (const Rect * theRect,
- IconAlignmentType align,
- IconTransformType transform,
- Handle theIcon) THREEWORDINLINE(0x303C, 0x061D, 0xABC9);
-
-EXTERN_API( OSErr )
-PlotSICNHandle (const Rect * theRect,
- IconAlignmentType align,
- IconTransformType transform,
- Handle theSICN) THREEWORDINLINE(0x303C, 0x061E, 0xABC9);
-
-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'),
- 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'),
- kGenericWORMIcon = FOUR_CHAR_CODE('worm'),
- kInternationResourcesIcon = 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')
-};
-
-/* 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 {
- kAppleExtrasFolderIcon = FOUR_CHAR_CODE('aexÄ'),
- kAppleMenuFolderIcon = FOUR_CHAR_CODE('amnu'),
- kApplicationsFolderIcon = FOUR_CHAR_CODE('apps'),
- kApplicationSupportFolderIcon = FOUR_CHAR_CODE('asup'),
- kAssistantsFolderIcon = FOUR_CHAR_CODE('astÄ'),
- kContextualMenuItemsFolderIcon = FOUR_CHAR_CODE('cmnu'),
- kControlPanelDisabledFolderIcon = FOUR_CHAR_CODE('ctrD'),
- kControlPanelFolderIcon = FOUR_CHAR_CODE('ctrl'),
- kControlStripModulesFolderIcon = FOUR_CHAR_CODE('sdvÄ'),
- 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 = FOUR_CHAR_CODE('Ählp'),
- kInternetFolderIcon = FOUR_CHAR_CODE('intÄ'),
- kInternetPlugInFolderIcon = FOUR_CHAR_CODE('Änet'),
- kLocalesFolderIcon = FOUR_CHAR_CODE('Äloc'),
- kMacOSReadMeFolderIcon = FOUR_CHAR_CODE('morÄ'),
- kPreferencesFolderIcon = FOUR_CHAR_CODE('prfÄ'),
- kPrinterDescriptionFolderIcon = FOUR_CHAR_CODE('ppdf'),
- kPrinterDriverFolderIcon = FOUR_CHAR_CODE('Äprd'),
- kPrintMonitorFolderIcon = FOUR_CHAR_CODE('prnt'),
- kRecentApplicationsFolderIcon = FOUR_CHAR_CODE('rapp'),
- kRecentDocumentsFolderIcon = FOUR_CHAR_CODE('rdoc'),
- kRecentServersFolderIcon = FOUR_CHAR_CODE('rsrv'),
- kScriptingAdditionsFolderIcon = FOUR_CHAR_CODE('Äscr'),
- kSharedLibrariesFolderIcon = FOUR_CHAR_CODE('Älib'),
- kScriptsFolderIcon = FOUR_CHAR_CODE('scrÄ'),
- 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 = FOUR_CHAR_CODE('Ätex'),
- kAppearanceFolderIcon = FOUR_CHAR_CODE('appr'),
- kUtilitiesFolderIcon = FOUR_CHAR_CODE('utiÄ'),
- kVoicesFolderIcon = FOUR_CHAR_CODE('fvoc'),
- kColorSyncFolderIcon = FOUR_CHAR_CODE('prof'),
- kInternetSearchSitesFolderIcon = FOUR_CHAR_CODE('issf'),
- kUsersFolderIcon = FOUR_CHAR_CODE('usrÄ')
-};
-
-/* 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')
-};
-
-/* 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')
-};
-
-/* 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')
-};
-
-
-
-/* IconServicesUsageFlags */
-typedef UInt32 IconServicesUsageFlags;
-enum {
- kIconServicesNormalUsageFlag = 0
-};
-
-
-/*
- IconFamily 'icns' resources contain an entire IconFamily (all sizes and depths).
- For custom icons, icns IconFamily resources of the custom icon resource ID are fetched first before
- the classic custom icons (individual 'ics#, ICN#, etc) are fetched. If the fetch of the icns resource
- succeeds then the icns is looked at exclusively for the icon data.
- For custom icons, new icon features such as 32-bit deep icons are only fetched from the icns resource.
- This is to avoid incompatibilities with cut & paste of new style icons with an older version of the
- MacOS Finder.
- DriverGestalt is called with code kdgMediaIconSuite by IconServices after calling FSM to determine a
- driver icon for a particular device. The result of the kdgMediaIconSuite call to DriverGestalt should
- be a pointer an an IconFamily. In this manner driver vendors can provide rich, detailed drive icons
- instead of the 1-bit variety previously supported.
-*/
-enum {
- kIconFamilyType = FOUR_CHAR_CODE('icns')
-};
-
-
-
-struct IconFamilyElement {
- OSType elementType; /* 'ICN#', 'icl8', etc...*/
- Size elementSize; /* Size of this element*/
- unsigned char elementData[1];
-};
-typedef struct IconFamilyElement IconFamilyElement;
-
-struct IconFamilyResource {
- OSType resourceType; /* Always 'icns'*/
- Size resourceSize; /* Total size of this resource*/
- IconFamilyElement elements[1];
-
-};
-typedef struct IconFamilyResource IconFamilyResource;
-
-typedef IconFamilyResource * IconFamilyPtr;
-typedef IconFamilyPtr * IconFamilyHandle;
-/*
- ==============================================================================
- 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
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-EXTERN_API( OSErr )
-GetIconRefOwners (IconRef theIconRef,
- UInt16 * owners) TWOWORDINLINE(0x700B, 0xAA75);
-
-
-/*
- AcquireIconRef
- This routine increments the reference count for the IconRef
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-EXTERN_API( OSErr )
-GetIconRefFromFolder (SInt16 vRefNum,
- SInt32 parentFolderID,
- SInt32 folderID,
- SInt8 attributes,
- SInt8 accessPrivileges,
- IconRef * theIconRef) TWOWORDINLINE(0x7022, 0xAA75);
-
-
-
-/*
- ==============================================================================
- 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.
-*/
-
-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.
-*/
-
-EXTERN_API( OSErr )
-RegisterIconRefFromResource (OSType creator,
- OSType iconType,
- const FSSpec * resourceFile,
- SInt16 resourceID,
- IconRef * theIconRef) TWOWORDINLINE(0x7023, 0xAA75);
-
-
-/*
- 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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-EXTERN_API( OSErr )
-RemoveIconRefOverride (IconRef theIconRef) TWOWORDINLINE(0x701E, 0xAA75);
-
-
-
-/*
- ==============================================================================
- Creating composite IconRef
- ==============================================================================
-*/
-
-
-/*
- CompositeIconRef
-
- Superimposes an IconRef on top of another one
-*/
-
-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.
-*/
-
-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
-*/
-
-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.
-*/
-
-EXTERN_API( OSErr )
-PlotIconRef (const Rect * theRect,
- IconAlignmentType align,
- IconTransformType transform,
- IconServicesUsageFlags theIconServicesUsageFlags,
- IconRef theIconRef) TWOWORDINLINE(0x700E, 0xAA75);
-
-
-/*
- 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.
-*/
-
-
-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.
-*/
-
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-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.
-*/
-
-EXTERN_API( OSErr )
-FlushIconRefsByVolume (SInt16 vRefNum) TWOWORDINLINE(0x7018, 0xAA75);
-
-
-
-/*
- ==============================================================================
- Controling custom icons
- ==============================================================================
-*/
-
-
-/*
- SetCustomIconsEnabled
-
- Enable or disable custom icons on the specified volume.
-*/
-
-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.
-*/
-
-EXTERN_API( OSErr )
-GetCustomIconsEnabled (SInt16 vRefNum,
- Boolean * customIconsEnabled) TWOWORDINLINE(0x7020, 0xAA75);
-
-
-/*
- IsIconRefMaskEmpty
- Returns true if the mask for this icon is blank
-*/
-
-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.
-*/
-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.
-*/
-
-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
-*/
-
-EXTERN_API( OSErr )
-ReadIconFile (const FSSpec * iconFile,
- IconFamilyHandle * iconFamily) TWOWORDINLINE(0x7036, 0xAA75);
-
-
-/*
- WriteIconFile
- Write the iconFamily handle to the specified file
-*/
-
-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__ */
-
+/*
+ File: Icons.h
+
+ Contains: Icon Utilities and Icon Services Interfaces.
+
+ Version: Technology: Mac OS 8.5
+ Release: QuickTime 6.0.2
+
+ Copyright: (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 __QUICKDRAW__
+#include "Quickdraw.h"
+#endif
+
+#ifndef __FILES__
+#include "Files.h"
+#endif
+
+#ifndef __CODEFRAGMENTS__
+#include "CodeFragments.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
+};
+
+/* The following icon types can only be used as an icon element */
+/* inside a 'icns' icon family */
+enum {
+ kThumbnail32BitData = FOUR_CHAR_CODE('it32'),
+ kThumbnail8BitMask = FOUR_CHAR_CODE('t8mk')
+};
+
+enum {
+ kHuge1BitMask = FOUR_CHAR_CODE('ich#'),
+ kHuge4BitData = FOUR_CHAR_CODE('ich4'),
+ kHuge8BitData = FOUR_CHAR_CODE('ich8'),
+ kHuge32BitData = FOUR_CHAR_CODE('ih32'),
+ kHuge8BitMask = FOUR_CHAR_CODE('h8mk')
+};
+
+/* The following icon types can be used as a resource type */
+/* or as an icon element type inside a 'icns' icon family */
+enum {
+ kLarge1BitMask = FOUR_CHAR_CODE('ICN#'),
+ kLarge4BitData = FOUR_CHAR_CODE('icl4'),
+ kLarge8BitData = FOUR_CHAR_CODE('icl8'),
+ kLarge32BitData = FOUR_CHAR_CODE('il32'),
+ kLarge8BitMask = FOUR_CHAR_CODE('l8mk'),
+ kSmall1BitMask = FOUR_CHAR_CODE('ics#'),
+ kSmall4BitData = FOUR_CHAR_CODE('ics4'),
+ kSmall8BitData = FOUR_CHAR_CODE('ics8'),
+ kSmall32BitData = FOUR_CHAR_CODE('is32'),
+ kSmall8BitMask = FOUR_CHAR_CODE('s8mk'),
+ kMini1BitMask = FOUR_CHAR_CODE('icm#'),
+ kMini4BitData = FOUR_CHAR_CODE('icm4'),
+ kMini8BitData = FOUR_CHAR_CODE('icm8')
+};
+
+/* Icon Variants */
+/* These can be used as an element of an 'icns' icon family */
+/* or as a parameter to GetIconRefVariant */
+enum {
+ kTileIconVariant = FOUR_CHAR_CODE('tile'),
+ kRolloverIconVariant = FOUR_CHAR_CODE('over'),
+ kDropIconVariant = FOUR_CHAR_CODE('drop'),
+ kOpenIconVariant = FOUR_CHAR_CODE('open'),
+ kOpenDropIconVariant = FOUR_CHAR_CODE('odrp')
+};
+
+/* Obsolete. Use names defined above. */
+enum {
+ large1BitMask = kLarge1BitMask,
+ large4BitData = kLarge4BitData,
+ large8BitData = kLarge8BitData,
+ small1BitMask = kSmall1BitMask,
+ small4BitData = kSmall4BitData,
+ small8BitData = kSmall8BitData,
+ mini1BitMask = kMini1BitMask,
+ mini4BitData = kMini4BitData,
+ mini8BitData = kMini8BitData
+};
+
+/* 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;
+#if OPAQUE_UPP_TYPES
+ EXTERN_API(IconActionUPP)
+ NewIconActionUPP (IconActionProcPtr userRoutine);
+
+ EXTERN_API(IconGetterUPP)
+ NewIconGetterUPP (IconGetterProcPtr userRoutine);
+
+ EXTERN_API(void)
+ DisposeIconActionUPP (IconActionUPP userUPP);
+
+ EXTERN_API(void)
+ DisposeIconGetterUPP (IconGetterUPP userUPP);
+
+ EXTERN_API(OSErr)
+ InvokeIconActionUPP (ResType theType,
+ Handle * theIcon,
+ void * yourDataPtr,
+ IconActionUPP userUPP);
+
+ EXTERN_API(Handle)
+ InvokeIconGetterUPP (ResType theType,
+ void * yourDataPtr,
+ IconGetterUPP userUPP);
+
+#else
+ enum { uppIconActionProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
+ enum { uppIconGetterProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
+ #define NewIconActionUPP(userRoutine) (IconActionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture())
+ #define NewIconGetterUPP(userRoutine) (IconGetterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture())
+ #define DisposeIconActionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #define DisposeIconGetterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #define InvokeIconActionUPP(theType, theIcon, yourDataPtr, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppIconActionProcInfo, (theType), (theIcon), (yourDataPtr))
+ #define InvokeIconGetterUPP(theType, yourDataPtr, userUPP) (Handle)CALL_TWO_PARAMETER_UPP((userUPP), uppIconGetterProcInfo, (theType), (yourDataPtr))
+#endif
+/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
+#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)
+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;
+EXTERN_API( CIconHandle )
+GetCIcon (SInt16 iconID) ONEWORDINLINE(0xAA1E);
+
+EXTERN_API( void )
+PlotCIcon (const Rect * theRect,
+ CIconHandle theIcon) ONEWORDINLINE(0xAA1F);
+
+EXTERN_API( void )
+DisposeCIcon (CIconHandle theIcon) ONEWORDINLINE(0xAA25);
+
+
+/* GetIcon and PlotIcon moved here from ToolUtils*/
+EXTERN_API( Handle )
+GetIcon (SInt16 iconID) ONEWORDINLINE(0xA9BB);
+
+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;
+EXTERN_API( OSErr )
+PlotIconID (const Rect * theRect,
+ IconAlignmentType align,
+ IconTransformType transform,
+ SInt16 theResID) THREEWORDINLINE(0x303C, 0x0500, 0xABC9);
+
+EXTERN_API( OSErr )
+NewIconSuite (IconSuiteRef * theIconSuite) THREEWORDINLINE(0x303C, 0x0207, 0xABC9);
+
+EXTERN_API( OSErr )
+AddIconToSuite (Handle theIconData,
+ IconSuiteRef theSuite,
+ ResType theType) THREEWORDINLINE(0x303C, 0x0608, 0xABC9);
+
+EXTERN_API( OSErr )
+GetIconFromSuite (Handle * theIconData,
+ IconSuiteRef theSuite,
+ ResType theType) THREEWORDINLINE(0x303C, 0x0609, 0xABC9);
+
+EXTERN_API( OSErr )
+ForEachIconDo (IconSuiteRef theSuite,
+ IconSelectorValue selector,
+ IconActionUPP action,
+ void * yourDataPtr) THREEWORDINLINE(0x303C, 0x080A, 0xABC9);
+
+EXTERN_API( OSErr )
+GetIconSuite (IconSuiteRef * theIconSuite,
+ SInt16 theResID,
+ IconSelectorValue selector) THREEWORDINLINE(0x303C, 0x0501, 0xABC9);
+
+EXTERN_API( OSErr )
+DisposeIconSuite (IconSuiteRef theIconSuite,
+ Boolean disposeData) THREEWORDINLINE(0x303C, 0x0302, 0xABC9);
+
+EXTERN_API( OSErr )
+PlotIconSuite (const Rect * theRect,
+ IconAlignmentType align,
+ IconTransformType transform,
+ IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0603, 0xABC9);
+
+EXTERN_API( OSErr )
+MakeIconCache (IconCacheRef * theCache,
+ IconGetterUPP makeIcon,
+ void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0604, 0xABC9);
+
+EXTERN_API( OSErr )
+LoadIconCache (const Rect * theRect,
+ IconAlignmentType align,
+ IconTransformType transform,
+ IconCacheRef theIconCache) THREEWORDINLINE(0x303C, 0x0606, 0xABC9);
+
+EXTERN_API( OSErr )
+PlotIconMethod (const Rect * theRect,
+ IconAlignmentType align,
+ IconTransformType transform,
+ IconGetterUPP theMethod,
+ void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0805, 0xABC9);
+
+EXTERN_API( OSErr )
+GetLabel (SInt16 labelNumber,
+ RGBColor * labelColor,
+ Str255 labelString) THREEWORDINLINE(0x303C, 0x050B, 0xABC9);
+
+EXTERN_API( Boolean )
+PtInIconID (Point testPt,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ SInt16 iconID) THREEWORDINLINE(0x303C, 0x060D, 0xABC9);
+
+EXTERN_API( Boolean )
+PtInIconSuite (Point testPt,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x070E, 0xABC9);
+
+EXTERN_API( Boolean )
+PtInIconMethod (Point testPt,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ IconGetterUPP theMethod,
+ void * yourDataPtr) THREEWORDINLINE(0x303C, 0x090F, 0xABC9);
+
+EXTERN_API( Boolean )
+RectInIconID (const Rect * testRect,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ SInt16 iconID) THREEWORDINLINE(0x303C, 0x0610, 0xABC9);
+
+EXTERN_API( Boolean )
+RectInIconSuite (const Rect * testRect,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0711, 0xABC9);
+
+EXTERN_API( Boolean )
+RectInIconMethod (const Rect * testRect,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ IconGetterUPP theMethod,
+ void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0912, 0xABC9);
+
+EXTERN_API( OSErr )
+IconIDToRgn (RgnHandle theRgn,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ SInt16 iconID) THREEWORDINLINE(0x303C, 0x0613, 0xABC9);
+
+EXTERN_API( OSErr )
+IconSuiteToRgn (RgnHandle theRgn,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ IconSuiteRef theIconSuite) THREEWORDINLINE(0x303C, 0x0714, 0xABC9);
+
+EXTERN_API( OSErr )
+IconMethodToRgn (RgnHandle theRgn,
+ const Rect * iconRect,
+ IconAlignmentType align,
+ IconGetterUPP theMethod,
+ void * yourDataPtr) THREEWORDINLINE(0x303C, 0x0915, 0xABC9);
+
+EXTERN_API( OSErr )
+SetSuiteLabel (IconSuiteRef theSuite,
+ SInt16 theLabel) THREEWORDINLINE(0x303C, 0x0316, 0xABC9);
+
+EXTERN_API( SInt16 )
+GetSuiteLabel (IconSuiteRef theSuite) THREEWORDINLINE(0x303C, 0x0217, 0xABC9);
+
+EXTERN_API( OSErr )
+GetIconCacheData (IconCacheRef theCache,
+ void ** theData) THREEWORDINLINE(0x303C, 0x0419, 0xABC9);
+
+EXTERN_API( OSErr )
+SetIconCacheData (IconCacheRef theCache,
+ void * theData) THREEWORDINLINE(0x303C, 0x041A, 0xABC9);
+
+EXTERN_API( OSErr )
+GetIconCacheProc (IconCacheRef theCache,
+ IconGetterUPP * theProc) THREEWORDINLINE(0x303C, 0x041B, 0xABC9);
+
+EXTERN_API( OSErr )
+SetIconCacheProc (IconCacheRef theCache,
+ IconGetterUPP theProc) THREEWORDINLINE(0x303C, 0x041C, 0xABC9);
+
+EXTERN_API( OSErr )
+PlotIconHandle (const Rect * theRect,
+ IconAlignmentType align,
+ IconTransformType transform,
+ Handle theIcon) THREEWORDINLINE(0x303C, 0x061D, 0xABC9);
+
+EXTERN_API( OSErr )
+PlotSICNHandle (const Rect * theRect,
+ IconAlignmentType align,
+ IconTransformType transform,
+ Handle theSICN) THREEWORDINLINE(0x303C, 0x061E, 0xABC9);
+
+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'),
+ 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'),
+ kGenericWORMIcon = FOUR_CHAR_CODE('worm'),
+ kInternationResourcesIcon = 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')
+};
+
+/* 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 {
+ kAppleExtrasFolderIcon = FOUR_CHAR_CODE('aexÄ'),
+ kAppleMenuFolderIcon = FOUR_CHAR_CODE('amnu'),
+ kApplicationsFolderIcon = FOUR_CHAR_CODE('apps'),
+ kApplicationSupportFolderIcon = FOUR_CHAR_CODE('asup'),
+ kAssistantsFolderIcon = FOUR_CHAR_CODE('astÄ'),
+ kContextualMenuItemsFolderIcon = FOUR_CHAR_CODE('cmnu'),
+ kControlPanelDisabledFolderIcon = FOUR_CHAR_CODE('ctrD'),
+ kControlPanelFolderIcon = FOUR_CHAR_CODE('ctrl'),
+ kControlStripModulesFolderIcon = FOUR_CHAR_CODE('sdvÄ'),
+ 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 = FOUR_CHAR_CODE('Ählp'),
+ kInternetFolderIcon = FOUR_CHAR_CODE('intÄ'),
+ kInternetPlugInFolderIcon = FOUR_CHAR_CODE('Änet'),
+ kLocalesFolderIcon = FOUR_CHAR_CODE('Äloc'),
+ kMacOSReadMeFolderIcon = FOUR_CHAR_CODE('morÄ'),
+ kPreferencesFolderIcon = FOUR_CHAR_CODE('prfÄ'),
+ kPrinterDescriptionFolderIcon = FOUR_CHAR_CODE('ppdf'),
+ kPrinterDriverFolderIcon = FOUR_CHAR_CODE('Äprd'),
+ kPrintMonitorFolderIcon = FOUR_CHAR_CODE('prnt'),
+ kRecentApplicationsFolderIcon = FOUR_CHAR_CODE('rapp'),
+ kRecentDocumentsFolderIcon = FOUR_CHAR_CODE('rdoc'),
+ kRecentServersFolderIcon = FOUR_CHAR_CODE('rsrv'),
+ kScriptingAdditionsFolderIcon = FOUR_CHAR_CODE('Äscr'),
+ kSharedLibrariesFolderIcon = FOUR_CHAR_CODE('Älib'),
+ kScriptsFolderIcon = FOUR_CHAR_CODE('scrÄ'),
+ 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 = FOUR_CHAR_CODE('Ätex'),
+ kAppearanceFolderIcon = FOUR_CHAR_CODE('appr'),
+ kUtilitiesFolderIcon = FOUR_CHAR_CODE('utiÄ'),
+ kVoicesFolderIcon = FOUR_CHAR_CODE('fvoc'),
+ kColorSyncFolderIcon = FOUR_CHAR_CODE('prof'),
+ kInternetSearchSitesFolderIcon = FOUR_CHAR_CODE('issf'),
+ kUsersFolderIcon = FOUR_CHAR_CODE('usrÄ')
+};
+
+/* 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')
+};
+
+/* 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')
+};
+
+/* 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')
+};
+
+
+
+/* IconServicesUsageFlags */
+typedef UInt32 IconServicesUsageFlags;
+enum {
+ kIconServicesNormalUsageFlag = 0
+};
+
+
+/*
+ IconFamily 'icns' resources contain an entire IconFamily (all sizes and depths).
+ For custom icons, icns IconFamily resources of the custom icon resource ID are fetched first before
+ the classic custom icons (individual 'ics#, ICN#, etc) are fetched. If the fetch of the icns resource
+ succeeds then the icns is looked at exclusively for the icon data.
+ For custom icons, new icon features such as 32-bit deep icons are only fetched from the icns resource.
+ This is to avoid incompatibilities with cut & paste of new style icons with an older version of the
+ MacOS Finder.
+ DriverGestalt is called with code kdgMediaIconSuite by IconServices after calling FSM to determine a
+ driver icon for a particular device. The result of the kdgMediaIconSuite call to DriverGestalt should
+ be a pointer an an IconFamily. In this manner driver vendors can provide rich, detailed drive icons
+ instead of the 1-bit variety previously supported.
+*/
+enum {
+ kIconFamilyType = FOUR_CHAR_CODE('icns')
+};
+
+
+
+struct IconFamilyElement {
+ OSType elementType; /* 'ICN#', 'icl8', etc...*/
+ Size elementSize; /* Size of this element*/
+ unsigned char elementData[1];
+};
+typedef struct IconFamilyElement IconFamilyElement;
+
+struct IconFamilyResource {
+ OSType resourceType; /* Always 'icns'*/
+ Size resourceSize; /* Total size of this resource*/
+ IconFamilyElement elements[1];
+
+};
+typedef struct IconFamilyResource IconFamilyResource;
+
+typedef IconFamilyResource * IconFamilyPtr;
+typedef IconFamilyPtr * IconFamilyHandle;
+/*
+ ==============================================================================
+ 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
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+EXTERN_API( OSErr )
+GetIconRefOwners (IconRef theIconRef,
+ UInt16 * owners) TWOWORDINLINE(0x700B, 0xAA75);
+
+
+/*
+ AcquireIconRef
+ This routine increments the reference count for the IconRef
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+EXTERN_API( OSErr )
+GetIconRefFromFolder (SInt16 vRefNum,
+ SInt32 parentFolderID,
+ SInt32 folderID,
+ SInt8 attributes,
+ SInt8 accessPrivileges,
+ IconRef * theIconRef) TWOWORDINLINE(0x7022, 0xAA75);
+
+
+
+/*
+ ==============================================================================
+ 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.
+*/
+
+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.
+*/
+
+EXTERN_API( OSErr )
+RegisterIconRefFromResource (OSType creator,
+ OSType iconType,
+ const FSSpec * resourceFile,
+ SInt16 resourceID,
+ IconRef * theIconRef) TWOWORDINLINE(0x7023, 0xAA75);
+
+
+/*
+ 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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+EXTERN_API( OSErr )
+RemoveIconRefOverride (IconRef theIconRef) TWOWORDINLINE(0x701E, 0xAA75);
+
+
+
+/*
+ ==============================================================================
+ Creating composite IconRef
+ ==============================================================================
+*/
+
+
+/*
+ CompositeIconRef
+
+ Superimposes an IconRef on top of another one
+*/
+
+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.
+*/
+
+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
+*/
+
+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.
+*/
+
+EXTERN_API( OSErr )
+PlotIconRef (const Rect * theRect,
+ IconAlignmentType align,
+ IconTransformType transform,
+ IconServicesUsageFlags theIconServicesUsageFlags,
+ IconRef theIconRef) TWOWORDINLINE(0x700E, 0xAA75);
+
+
+/*
+ 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.
+*/
+
+
+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.
+*/
+
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+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.
+*/
+
+EXTERN_API( OSErr )
+FlushIconRefsByVolume (SInt16 vRefNum) TWOWORDINLINE(0x7018, 0xAA75);
+
+
+
+/*
+ ==============================================================================
+ Controling custom icons
+ ==============================================================================
+*/
+
+
+/*
+ SetCustomIconsEnabled
+
+ Enable or disable custom icons on the specified volume.
+*/
+
+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.
+*/
+
+EXTERN_API( OSErr )
+GetCustomIconsEnabled (SInt16 vRefNum,
+ Boolean * customIconsEnabled) TWOWORDINLINE(0x7020, 0xAA75);
+
+
+/*
+ IsIconRefMaskEmpty
+ Returns true if the mask for this icon is blank
+*/
+
+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.
+*/
+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.
+*/
+
+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
+*/
+
+EXTERN_API( OSErr )
+ReadIconFile (const FSSpec * iconFile,
+ IconFamilyHandle * iconFamily) TWOWORDINLINE(0x7036, 0xAA75);
+
+
+/*
+ WriteIconFile
+ Write the iconFamily handle to the specified file
+*/
+
+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__ */
+