/************************************************************ Created: Monday, July 22, 1991 at 4:45 PM Icons.h C Interface to the Macintosh Libraries Copyright Apple Computer, Inc. 1990-1991 All rights reserved Change History (most recent first): <24> 11/30/92 DTY Turning on full warnings in the C compiler complains about the comment delimiters in the checkin comment for <14>. Do something about that. <23> 6/11/92 DCL Changed "Rect *textRect" to "const Rect *textRect" in RectInIconID, RectInIconSuite, RectInIconMethod. Changed all uses of "alignment" in prototypes to "align" for consistancy within and between the c & h files. Cleanup & formatting to match Interface Stacks. Happy Happy Joy Joy. <22> 5/5/92 DCL Added 'const' to '*iconRect' in prototypes of The PtInIcon__, RectInIcon__, Icon__ToRgn. OK, dave? <21> 3/17/92 DC imported all private routines and typedef's from IconUtilsPriv.h and cleaned up constants to be enums. <20> 7/23/91 JL Checked in File from database. Changed #defines to enums. <19> 1/17/91 DC csd - Add genericExtensionIconResource <18> 1/16/91 JDR (dba) Renamed spoolFolderIconResource into printMonitorFolderIconResource. <17> 1/7/91 JDR (dba) Removing private Icon Utilities routines. <16> 11/29/90 DC ngk - Add interface for GetIconDevice. <15> 11/19/90 DC ngk - Moved System Icon ID's from private to public and added interfaces for PlotIconHandle PlotSICNHandle and PlotCIconHandle interfaces for PlotIconHandle PlotSICNHandle and PlotCIconHandle <14> 10/09/90 JAL DonŐt use C++ comment delimiters for Think C compatability. <13> 9/19/90 DC Changed names of some routines to be more descriptive <12> 9/15/90 DC Removed SetLabel from public interface <11> 9/4/90 DC Fixed interface to icon-to-region conversion routines <10> 7/25/90 DC added interface for Get/Set cache Procs/Data <9> 7/23/90 DC Added interfaces for SetOneScreen, etc <8> 7/12/90 DC Removed support for ttGhost <7> 7/5/90 DC Added interfaces for all hit-testing and region-producing routines. <6> 6/29/90 DC Add labeling transforms <5> 6/13/90 DC changed terminateInterator to haltIterator <4> 6/7/90 ngk Added type definitions for IconSelectorValue, IconAlignmentType, and IconTransformType <3> 5/31/90 DC Minor interface cleanup <2> 5/30/90 DC Fixed name of protection identifier from __ICONUTILS__ to __ICONS__ <1> 5/30/90 DC first checked in as Icons.h <6> 5/22/90 DC Made IconCaches a subclass of iconsuites. <5> 5/4/90 DC Added Interfaces for NewIconSuite, etc. Added new transform ttGhost <4> 4/11/90 DC Changed interfaces for transforms <3> 4/10/90 DC Made PlotIconCache and PlotIconSuite into PlotBestIcon <2> 4/9/90 DC Added new IconCache routines <1> 4/7/90 DC first checked in ************************************************************/ #ifndef __ICONS__ #define __ICONS__ #ifndef __TYPES__ #include #endif #ifndef __QUICKDRAW__ #include #endif enum { /* The following are icons for which there are both icon suites and SICNs. */ genericDocumentIconResource = -4000, genericStationeryIconResource = -3985, genericEditionFileIconResource = -3989, genericApplicationIconResource = -3996, genericDeskAccessoryIconResource = -3991, genericFolderIconResource = -3999, privateFolderIconResource = -3994, floppyIconResource = -3998, trashIconResource = -3993, /* The following are icons for which there are SICNs only. */ desktopIconResource = -3992, openFolderIconResource = -3997, genericHardDiskIconResource = -3995, genericFileServerIconResource = -3972, genericSuitcaseIconResource = -3970, genericMoverObjectIconResource = -3969, /* The following are icons for which there are icon suites only. */ genericPreferencesIconResource = -3971, genericQueryDocumentIconResource = -16506, genericExtensionIconResource = -16415, systemFolderIconResource = -3983, appleMenuFolderIconResource = -3982 }; enum { startupFolderIconResource = -3981, ownedFolderIconResource = -3980, dropFolderIconResource = -3979, sharedFolderIconResource = -3978, mountedFolderIconResource = -3977, controlPanelFolderIconResource = -3976, printMonitorFolderIconResource = -3975, preferencesFolderIconResource = -3974, extensionsFolderIconResource = -3973, fullTrashIconResource = -3984 #define large1BitMask 'ICN#' #define large4BitData 'icl4' #define large8BitData 'icl8' #define small1BitMask 'ics#' #define small4BitData 'ics4' #define small8BitData 'ics8' #define mini1BitMask 'icm#' #define mini4BitData 'icm4' #define mini8BitData 'icm8' }; /* alignment type values */ enum { atNone = 0x0, atVerticalCenter = 0x1, atTop = 0x2, atBottom = 0x3, atHorizontalCenter = 0x4, atAbsoluteCenter = (atVerticalCenter | atHorizontalCenter), atCenterTop = (atTop | atHorizontalCenter), atCenterBottom = (atBottom | atHorizontalCenter), atLeft = 0x8, atCenterLeft = (atVerticalCenter | atLeft), atTopLeft = (atTop | atLeft), atBottomLeft = (atBottom | atLeft), atRight = 0xC, atCenterRight = (atVerticalCenter | atRight), atTopRight = (atTop | atRight), atBottomRight = (atBottom | atRight) }; typedef short IconAlignmentType; /* transform type values */ enum { ttNone = 0x0, ttDisabled = 0x1, ttOffline = 0x2, ttOpen = 0x3, ttLabel1 = 0x0100, ttLabel2 = 0x0200, ttLabel3 = 0x0300, ttLabel4 = 0x0400, ttLabel5 = 0x0500, ttLabel6 = 0x0600, ttLabel7 = 0x0700, ttSelected = 0x4000, ttSelectedDisabled = (ttSelected | ttDisabled), ttSelectedOffline = (ttSelected | ttOffline), ttSelectedOpen = (ttSelected | ttOpen) }; typedef short IconTransformType; /* Selector mask values */ enum { svLarge1Bit = 0x00000001, svLarge4Bit = 0x00000002, svLarge8Bit = 0x00000004, svSmall1Bit = 0x00000100, svSmall4Bit = 0x00000200, svSmall8Bit = 0x00000400, svMini1Bit = 0x00010000, svMini4Bit = 0x00020000, svMini8Bit = 0x00040000, svAllLargeData = 0x000000ff, svAllSmallData = 0x0000ff00, svAllMiniData = 0x00ff0000, svAll1BitData = (svLarge1Bit | svSmall1Bit | svMini1Bit), svAll4BitData = (svLarge4Bit | svSmall4Bit | svMini4Bit), svAll8BitData = (svLarge8Bit | svSmall8Bit | svMini8Bit), svAllAvailableData = 0xffffffff }; typedef unsigned long IconSelectorValue; typedef pascal OSErr (*IconAction)(ResType theType, Handle *theIcon, void *yourDataPtr); typedef pascal Handle (*IconGetter)(ResType theType, void *yourDataPtr); #ifdef __cplusplus extern "C" { #endif pascal OSErr PlotIconID(const Rect *theRect, IconAlignmentType align, IconTransformType transform, short theResID) = {0x303C, 0x0500, 0xABC9}; pascal OSErr NewIconSuite(Handle *theIconSuite) = {0x303C, 0x0207, 0xABC9}; pascal OSErr AddIconToSuite(Handle theIconData, Handle theSuite, ResType theType) = {0x303C, 0x0608, 0xABC9}; pascal OSErr GetIconFromSuite(Handle *theIconData, Handle theSuite, ResType theType) = {0x303C, 0x0609, 0xABC9}; pascal OSErr ForEachIconDo(Handle theSuite, IconSelectorValue selector, IconAction action, void *yourDataPtr) = {0x303C, 0x080A, 0xABC9}; pascal OSErr GetIconSuite(Handle *theIconSuite, short theResID, IconSelectorValue selector) = {0x303C, 0x0501, 0xABC9}; pascal OSErr DisposeIconSuite(Handle theIconSuite, Boolean disposeData) = {0x303C, 0x0302, 0xABC9}; pascal OSErr PlotIconSuite(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconSuite) = {0x303C, 0x0603, 0xABC9}; pascal OSErr MakeIconCache(Handle *theHandle, IconGetter makeIcon, void *yourDataPtr) = {0x303C, 0x0604, 0xABC9}; pascal OSErr LoadIconCache(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconCache) = {0x303C, 0x0606, 0xABC9}; pascal OSErr PlotIconMethod(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconGetter theMethod, void *yourDataPtr) = {0x303C, 0x0805, 0xABC9}; pascal OSErr GetLabel(short labelNumber, RGBColor *labelColor, Str255 labelString) = {0x303C, 0x050B, 0xABC9}; pascal Boolean PtInIconID(Point testPt, const Rect *iconRect, /* <22> */ IconAlignmentType align, short iconID) = {0x303C, 0x060D, 0xABC9}; pascal Boolean PtInIconSuite(Point testPt, const Rect *iconRect, /* <22> */ IconAlignmentType align, Handle theIconSuite) = {0x303C, 0x070E, 0xABC9}; pascal Boolean PtInIconMethod(Point testPt, const Rect *iconRect, /* <22> */ IconAlignmentType align, IconGetter theMethod, void *yourDataPtr) = {0x303C, 0x090F, 0xABC9}; pascal Boolean RectInIconID(const Rect *testRect, const Rect *iconRect, /* <22> */ IconAlignmentType align, short iconID) = {0x303C, 0x0610, 0xABC9}; pascal Boolean RectInIconSuite(const Rect *testRect, const Rect *iconRect, /* <22> */ IconAlignmentType align, Handle theIconSuite) = {0x303C, 0x0711, 0xABC9}; pascal Boolean RectInIconMethod(const Rect *testRect, const Rect *iconRect, /* <22> */ IconAlignmentType align, IconGetter theMethod, void *yourDataPtr) = {0x303C, 0x0912, 0xABC9}; pascal OSErr IconIDToRgn(RgnHandle theRgn, const Rect *iconRect, /* <22> */ IconAlignmentType align, short iconID) = {0x303C, 0x0613, 0xABC9}; pascal OSErr IconSuiteToRgn(RgnHandle theRgn, const Rect *iconRect, /* <22> */ IconAlignmentType align, Handle theIconSuite) = {0x303C, 0x0714, 0xABC9}; pascal OSErr IconMethodToRgn(RgnHandle theRgn, const Rect *iconRect, /* <22> */ IconAlignmentType align, IconGetter theMethod, void *yourDataPtr) = {0x303C, 0x0915, 0xABC9}; pascal OSErr SetSuiteLabel(Handle theSuite, short theLabel) = {0x303C, 0x0316, 0xABC9}; pascal short GetSuiteLabel(Handle theSuite) = {0x303C, 0x0217, 0xABC9}; pascal OSErr GetIconCacheData(Handle theCache, void **theData) = {0x303C, 0x0419, 0xABC9}; pascal OSErr SetIconCacheData(Handle theCache, void *theData) = {0x303C, 0x041A, 0xABC9}; pascal OSErr GetIconCacheProc(Handle theCache, IconGetter *theProc) = {0x303C, 0x041B, 0xABC9}; pascal OSErr SetIconCacheProc(Handle theCache, IconGetter theProc) = {0x303C, 0x041C, 0xABC9}; pascal OSErr PlotIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIcon) = {0x303C, 0x061D, 0xABC9}; pascal OSErr PlotSICNHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theSICN) = {0x303C, 0x061E, 0xABC9}; pascal OSErr PlotCIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, CIconHandle theCIcon) = {0x303C, 0x061F, 0xABC9}; #ifdef __cplusplus } #endif #endif