Mac OS 9
Icons.h
Go to the documentation of this file.
1 
19 #ifndef __ICONS__
20 #define __ICONS__
21 
22 #ifndef __MACTYPES__
23 #include <MacTypes.h>
24 #endif
25 
26 #ifndef __QUICKDRAW__
27 #include <Quickdraw.h>
28 #endif
29 
30 #ifndef __FILES__
31 #include <Files.h>
32 #endif
33 
34 #ifndef __CODEFRAGMENTS__
35 #include <CodeFragments.h>
36 #endif
37 
38 #ifndef __CGCONTEXT__
39 #include <CGContext.h>
40 #endif
41 
42 #if PRAGMA_ONCE
43 #pragma once
44 #endif
45 
46 #ifdef __cplusplus
47 extern "C"
48 {
49 #endif
50 
51 #if PRAGMA_IMPORT
52 #pragma import on
53 #endif
54 
55 #if PRAGMA_STRUCT_ALIGN
56 #pragma options align = mac68k
57 #elif PRAGMA_STRUCT_PACKPUSH
58 #pragma pack(push, 2)
59 #elif PRAGMA_STRUCT_PACK
60 #pragma pack(2)
61 #endif
62 
63  /* The following are icons for which there are both icon suites and SICNs. */
64  /* Avoid using icon resources if possible. Use IconServices instead. */
65  enum
66  {
67  kGenericDocumentIconResource = -4000,
68  kGenericStationeryIconResource = -3985,
69  kGenericEditionFileIconResource = -3989,
70  kGenericApplicationIconResource = -3996,
71  kGenericDeskAccessoryIconResource = -3991,
72  kGenericFolderIconResource = -3999,
73  kPrivateFolderIconResource = -3994,
74  kFloppyIconResource = -3998,
75  kTrashIconResource = -3993,
76  kGenericRAMDiskIconResource = -3988,
77  kGenericCDROMIconResource = -3987
78  };
79 
80  /* The following are icons for which there are SICNs only. */
81  /* Avoid using icon resources if possible. Use IconServices instead. */
82  enum
83  {
84  kDesktopIconResource = -3992,
85  kOpenFolderIconResource = -3997,
86  kGenericHardDiskIconResource = -3995,
87  kGenericFileServerIconResource = -3972,
88  kGenericSuitcaseIconResource = -3970,
89  kGenericMoverObjectIconResource = -3969
90  };
91 
92  /* The following are icons for which there are icon suites only. */
93  /* Avoid using icon resources if possible. Use IconServices instead. */
94  enum
95  {
96  kGenericPreferencesIconResource = -3971,
97  kGenericQueryDocumentIconResource = -16506,
98  kGenericExtensionIconResource = -16415,
99  kSystemFolderIconResource = -3983,
100  kHelpIconResource = -20271,
101  kAppleMenuFolderIconResource = -3982
102  };
103 
104  /* Obsolete. Use named constants defined above. */
105  enum
106  {
107  genericDocumentIconResource = kGenericDocumentIconResource,
108  genericStationeryIconResource = kGenericStationeryIconResource,
109  genericEditionFileIconResource = kGenericEditionFileIconResource,
110  genericApplicationIconResource = kGenericApplicationIconResource,
111  genericDeskAccessoryIconResource = kGenericDeskAccessoryIconResource,
112  genericFolderIconResource = kGenericFolderIconResource,
113  privateFolderIconResource = kPrivateFolderIconResource,
114  floppyIconResource = kFloppyIconResource,
115  trashIconResource = kTrashIconResource,
116  genericRAMDiskIconResource = kGenericRAMDiskIconResource,
117  genericCDROMIconResource = kGenericCDROMIconResource,
118  desktopIconResource = kDesktopIconResource,
119  openFolderIconResource = kOpenFolderIconResource,
120  genericHardDiskIconResource = kGenericHardDiskIconResource,
121  genericFileServerIconResource = kGenericFileServerIconResource,
122  genericSuitcaseIconResource = kGenericSuitcaseIconResource,
123  genericMoverObjectIconResource = kGenericMoverObjectIconResource,
124  genericPreferencesIconResource = kGenericPreferencesIconResource,
125  genericQueryDocumentIconResource = kGenericQueryDocumentIconResource,
126  genericExtensionIconResource = kGenericExtensionIconResource,
127  systemFolderIconResource = kSystemFolderIconResource,
128  appleMenuFolderIconResource = kAppleMenuFolderIconResource
129  };
130 
131  /* Avoid using icon resources if possible. Use IconServices instead. */
132  enum
133  {
134  kStartupFolderIconResource = -3981,
135  kOwnedFolderIconResource = -3980,
136  kDropFolderIconResource = -3979,
137  kSharedFolderIconResource = -3978,
138  kMountedFolderIconResource = -3977,
139  kControlPanelFolderIconResource = -3976,
140  kPrintMonitorFolderIconResource = -3975,
141  kPreferencesFolderIconResource = -3974,
142  kExtensionsFolderIconResource = -3973,
143  kFontsFolderIconResource = -3968,
144  kFullTrashIconResource = -3984
145  };
146 
147  /* Obsolete. Use named constants defined above. */
148  enum
149  {
150  startupFolderIconResource = kStartupFolderIconResource,
151  ownedFolderIconResource = kOwnedFolderIconResource,
152  dropFolderIconResource = kDropFolderIconResource,
153  sharedFolderIconResource = kSharedFolderIconResource,
154  mountedFolderIconResource = kMountedFolderIconResource,
155  controlPanelFolderIconResource = kControlPanelFolderIconResource,
156  printMonitorFolderIconResource = kPrintMonitorFolderIconResource,
157  preferencesFolderIconResource = kPreferencesFolderIconResource,
158  extensionsFolderIconResource = kExtensionsFolderIconResource,
159  fontsFolderIconResource = kFontsFolderIconResource,
160  fullTrashIconResource = kFullTrashIconResource
161  };
162 
163  /* The following icon types can only be used as an icon element */
164  /* inside a 'icns' icon family */
165  enum
166  {
167  kThumbnail32BitData = FOUR_CHAR_CODE('it32'),
168  kThumbnail8BitMask = FOUR_CHAR_CODE('t8mk')
169  };
170 
171  enum
172  {
173  kHuge1BitMask = FOUR_CHAR_CODE('ich#'),
174  kHuge4BitData = FOUR_CHAR_CODE('ich4'),
175  kHuge8BitData = FOUR_CHAR_CODE('ich8'),
176  kHuge32BitData = FOUR_CHAR_CODE('ih32'),
177  kHuge8BitMask = FOUR_CHAR_CODE('h8mk')
178  };
179 
180  /* The following icon types can be used as a resource type */
181  /* or as an icon element type inside a 'icns' icon family */
182  enum
183  {
184  kLarge1BitMask = FOUR_CHAR_CODE('ICN#'),
185  kLarge4BitData = FOUR_CHAR_CODE('icl4'),
186  kLarge8BitData = FOUR_CHAR_CODE('icl8'),
187  kLarge32BitData = FOUR_CHAR_CODE('il32'),
188  kLarge8BitMask = FOUR_CHAR_CODE('l8mk'),
189  kSmall1BitMask = FOUR_CHAR_CODE('ics#'),
190  kSmall4BitData = FOUR_CHAR_CODE('ics4'),
191  kSmall8BitData = FOUR_CHAR_CODE('ics8'),
192  kSmall32BitData = FOUR_CHAR_CODE('is32'),
193  kSmall8BitMask = FOUR_CHAR_CODE('s8mk'),
194  kMini1BitMask = FOUR_CHAR_CODE('icm#'),
195  kMini4BitData = FOUR_CHAR_CODE('icm4'),
196  kMini8BitData = FOUR_CHAR_CODE('icm8')
197  };
198 
199  /* Icon Variants */
200  /* These can be used as an element of an 'icns' icon family */
201  /* or as a parameter to GetIconRefVariant */
202  enum
203  {
204  kTileIconVariant = FOUR_CHAR_CODE('tile'),
205  kRolloverIconVariant = FOUR_CHAR_CODE('over'),
206  kDropIconVariant = FOUR_CHAR_CODE('drop'),
207  kOpenIconVariant = FOUR_CHAR_CODE('open'),
208  kOpenDropIconVariant = FOUR_CHAR_CODE('odrp')
209  };
210 
211  /* Obsolete. Use names defined above. */
212  enum
213  {
214  large1BitMask = kLarge1BitMask,
215  large4BitData = kLarge4BitData,
216  large8BitData = kLarge8BitData,
217  small1BitMask = kSmall1BitMask,
218  small4BitData = kSmall4BitData,
219  small8BitData = kSmall8BitData,
220  mini1BitMask = kMini1BitMask,
221  mini4BitData = kMini4BitData,
222  mini8BitData = kMini8BitData
223  };
224 
225  /* Alignment type values. */
226  enum
227  {
228  kAlignNone = 0x00,
229  kAlignVerticalCenter = 0x01,
230  kAlignTop = 0x02,
231  kAlignBottom = 0x03,
232  kAlignHorizontalCenter = 0x04,
233  kAlignAbsoluteCenter = kAlignVerticalCenter | kAlignHorizontalCenter,
234  kAlignCenterTop = kAlignTop | kAlignHorizontalCenter,
235  kAlignCenterBottom = kAlignBottom | kAlignHorizontalCenter,
236  kAlignLeft = 0x08,
237  kAlignCenterLeft = kAlignVerticalCenter | kAlignLeft,
238  kAlignTopLeft = kAlignTop | kAlignLeft,
239  kAlignBottomLeft = kAlignBottom | kAlignLeft,
240  kAlignRight = 0x0C,
241  kAlignCenterRight = kAlignVerticalCenter | kAlignRight,
242  kAlignTopRight = kAlignTop | kAlignRight,
243  kAlignBottomRight = kAlignBottom | kAlignRight
244  };
245 
246  /* Obsolete. Use names defined above. */
247  enum
248  {
249  atNone = kAlignNone,
250  atVerticalCenter = kAlignVerticalCenter,
251  atTop = kAlignTop,
252  atBottom = kAlignBottom,
253  atHorizontalCenter = kAlignHorizontalCenter,
254  atAbsoluteCenter = kAlignAbsoluteCenter,
255  atCenterTop = kAlignCenterTop,
256  atCenterBottom = kAlignCenterBottom,
257  atLeft = kAlignLeft,
258  atCenterLeft = kAlignCenterLeft,
259  atTopLeft = kAlignTopLeft,
260  atBottomLeft = kAlignBottomLeft,
261  atRight = kAlignRight,
262  atCenterRight = kAlignCenterRight,
263  atTopRight = kAlignTopRight,
264  atBottomRight = kAlignBottomRight
265  };
266 
267  typedef SInt16 IconAlignmentType;
268  /* Transform type values. */
269  enum
270  {
271  kTransformNone = 0x00,
272  kTransformDisabled = 0x01,
273  kTransformOffline = 0x02,
274  kTransformOpen = 0x03,
275  kTransformLabel1 = 0x0100,
276  kTransformLabel2 = 0x0200,
277  kTransformLabel3 = 0x0300,
278  kTransformLabel4 = 0x0400,
279  kTransformLabel5 = 0x0500,
280  kTransformLabel6 = 0x0600,
281  kTransformLabel7 = 0x0700,
282  kTransformSelected = 0x4000,
283  kTransformSelectedDisabled = kTransformSelected | kTransformDisabled,
284  kTransformSelectedOffline = kTransformSelected | kTransformOffline,
285  kTransformSelectedOpen = kTransformSelected | kTransformOpen
286  };
287 
288  /* Obsolete. Use names defined above. */
289  enum
290  {
291  ttNone = kTransformNone,
292  ttDisabled = kTransformDisabled,
293  ttOffline = kTransformOffline,
294  ttOpen = kTransformOpen,
295  ttLabel1 = kTransformLabel1,
296  ttLabel2 = kTransformLabel2,
297  ttLabel3 = kTransformLabel3,
298  ttLabel4 = kTransformLabel4,
299  ttLabel5 = kTransformLabel5,
300  ttLabel6 = kTransformLabel6,
301  ttLabel7 = kTransformLabel7,
302  ttSelected = kTransformSelected,
303  ttSelectedDisabled = kTransformSelectedDisabled,
304  ttSelectedOffline = kTransformSelectedOffline,
305  ttSelectedOpen = kTransformSelectedOpen
306  };
307 
308  typedef SInt16 IconTransformType;
309  /* Selector mask values. */
310  enum
311  {
312  kSelectorLarge1Bit = 0x00000001,
313  kSelectorLarge4Bit = 0x00000002,
314  kSelectorLarge8Bit = 0x00000004,
315  kSelectorLarge32Bit = 0x00000008,
316  kSelectorLarge8BitMask = 0x00000010,
317  kSelectorSmall1Bit = 0x00000100,
318  kSelectorSmall4Bit = 0x00000200,
319  kSelectorSmall8Bit = 0x00000400,
320  kSelectorSmall32Bit = 0x00000800,
321  kSelectorSmall8BitMask = 0x00001000,
322  kSelectorMini1Bit = 0x00010000,
323  kSelectorMini4Bit = 0x00020000,
324  kSelectorMini8Bit = 0x00040000,
325  kSelectorHuge1Bit = 0x01000000,
326  kSelectorHuge4Bit = 0x02000000,
327  kSelectorHuge8Bit = 0x04000000,
328  kSelectorHuge32Bit = 0x08000000,
329  kSelectorHuge8BitMask = 0x10000000,
330  kSelectorAllLargeData = 0x000000FF,
331  kSelectorAllSmallData = 0x0000FF00,
332  kSelectorAllMiniData = 0x00FF0000,
333  kSelectorAllHugeData = (long)0xFF000000,
334  kSelectorAll1BitData = kSelectorLarge1Bit | kSelectorSmall1Bit |
335  kSelectorMini1Bit | kSelectorHuge1Bit,
336  kSelectorAll4BitData = kSelectorLarge4Bit | kSelectorSmall4Bit |
337  kSelectorMini4Bit | kSelectorHuge4Bit,
338  kSelectorAll8BitData = kSelectorLarge8Bit | kSelectorSmall8Bit |
339  kSelectorMini8Bit | kSelectorHuge8Bit,
340  kSelectorAll32BitData =
341  kSelectorLarge32Bit | kSelectorSmall32Bit | kSelectorHuge32Bit,
342  kSelectorAllAvailableData = (long)0xFFFFFFFF
343  };
344 
345  /* Obsolete. Use names defined above. */
346  enum
347  {
348  svLarge1Bit = kSelectorLarge1Bit,
349  svLarge4Bit = kSelectorLarge4Bit,
350  svLarge8Bit = kSelectorLarge8Bit,
351  svSmall1Bit = kSelectorSmall1Bit,
352  svSmall4Bit = kSelectorSmall4Bit,
353  svSmall8Bit = kSelectorSmall8Bit,
354  svMini1Bit = kSelectorMini1Bit,
355  svMini4Bit = kSelectorMini4Bit,
356  svMini8Bit = kSelectorMini8Bit,
357  svAllLargeData = kSelectorAllLargeData,
358  svAllSmallData = kSelectorAllSmallData,
359  svAllMiniData = kSelectorAllMiniData,
360  svAll1BitData = kSelectorAll1BitData,
361  svAll4BitData = kSelectorAll4BitData,
362  svAll8BitData = kSelectorAll8BitData,
363  svAllAvailableData = kSelectorAllAvailableData
364  };
365 
366  typedef UInt32 IconSelectorValue;
367  typedef CALLBACK_API(OSErr, IconActionProcPtr)(ResType theType, Handle *theIcon,
368  void *yourDataPtr);
369  typedef CALLBACK_API(Handle, IconGetterProcPtr)(ResType theType,
370  void *yourDataPtr);
371  typedef STACK_UPP_TYPE(IconActionProcPtr) IconActionUPP;
372  typedef STACK_UPP_TYPE(IconGetterProcPtr) IconGetterUPP;
381  IconActionUPP
382  NewIconActionUPP(IconActionProcPtr userRoutine);
383 #if !OPAQUE_UPP_TYPES
384  enum
385  {
386  uppIconActionProcInfo = 0x00000FE0
387  }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
388 #ifdef __cplusplus
389  inline IconActionUPP NewIconActionUPP(IconActionProcPtr userRoutine)
390  {
391  return (IconActionUPP)NewRoutineDescriptor(
392  (ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture());
393  }
394 #else
395 #define NewIconActionUPP(userRoutine) \
396  (IconActionUPP) NewRoutineDescriptor( \
397  (ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture())
398 #endif
399 #endif
400 
409  IconGetterUPP
410  NewIconGetterUPP(IconGetterProcPtr userRoutine);
411 #if !OPAQUE_UPP_TYPES
412  enum
413  {
414  uppIconGetterProcInfo = 0x000003F0
415  }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
416 #ifdef __cplusplus
417  inline IconGetterUPP NewIconGetterUPP(IconGetterProcPtr userRoutine)
418  {
419  return (IconGetterUPP)NewRoutineDescriptor(
420  (ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture());
421  }
422 #else
423 #define NewIconGetterUPP(userRoutine) \
424  (IconGetterUPP) NewRoutineDescriptor( \
425  (ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture())
426 #endif
427 #endif
428 
437  void
438  DisposeIconActionUPP(IconActionUPP userUPP);
439 #if !OPAQUE_UPP_TYPES
440 #ifdef __cplusplus
441  inline void DisposeIconActionUPP(IconActionUPP userUPP)
442  {
443  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
444  }
445 #else
446 #define DisposeIconActionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
447 #endif
448 #endif
449 
458  void
459  DisposeIconGetterUPP(IconGetterUPP userUPP);
460 #if !OPAQUE_UPP_TYPES
461 #ifdef __cplusplus
462  inline void DisposeIconGetterUPP(IconGetterUPP userUPP)
463  {
464  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
465  }
466 #else
467 #define DisposeIconGetterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
468 #endif
469 #endif
470 
479  OSErr
480  InvokeIconActionUPP(ResType theType, Handle *theIcon, void *yourDataPtr,
481  IconActionUPP userUPP);
482 #if !OPAQUE_UPP_TYPES
483 #ifdef __cplusplus
484  inline OSErr InvokeIconActionUPP(ResType theType, Handle *theIcon,
485  void *yourDataPtr, IconActionUPP userUPP)
486  {
487  return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppIconActionProcInfo,
488  theType, theIcon, yourDataPtr);
489  }
490 #else
491 #define InvokeIconActionUPP(theType, theIcon, yourDataPtr, userUPP) \
492  (OSErr) CALL_THREE_PARAMETER_UPP((userUPP), uppIconActionProcInfo, \
493  (theType), (theIcon), (yourDataPtr))
494 #endif
495 #endif
496 
505  Handle
506  InvokeIconGetterUPP(ResType theType, void *yourDataPtr, IconGetterUPP userUPP);
507 #if !OPAQUE_UPP_TYPES
508 #ifdef __cplusplus
509  inline Handle InvokeIconGetterUPP(ResType theType, void *yourDataPtr,
510  IconGetterUPP userUPP)
511  {
512  return (Handle)CALL_TWO_PARAMETER_UPP(userUPP, uppIconGetterProcInfo, theType,
513  yourDataPtr);
514  }
515 #else
516 #define InvokeIconGetterUPP(theType, yourDataPtr, userUPP) \
517  (Handle) CALL_TWO_PARAMETER_UPP((userUPP), uppIconGetterProcInfo, (theType), \
518  (yourDataPtr))
519 #endif
520 #endif
521 
522 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
523 /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
524 #define NewIconActionProc(userRoutine) NewIconActionUPP(userRoutine)
525 #define NewIconGetterProc(userRoutine) NewIconGetterUPP(userRoutine)
526 #define CallIconActionProc(userRoutine, theType, theIcon, yourDataPtr) \
527  InvokeIconActionUPP(theType, theIcon, yourDataPtr, userRoutine)
528 #define CallIconGetterProc(userRoutine, theType, yourDataPtr) \
529  InvokeIconGetterUPP(theType, yourDataPtr, userRoutine)
530 #endif /* CALL_NOT_IN_CARBON */
531 
532  typedef IconGetterProcPtr IconGetter;
533  typedef IconActionProcPtr IconAction;
534  /* CIconHandle, GetCIcon(), PlotCIcon(), and DisposeCIcon() moved here from
535  * Quickdraw.h*/
536  struct CIcon
537  {
538  PixMap iconPMap; /*the icon's pixMap*/
539  BitMap iconMask; /*the icon's mask*/
540  BitMap iconBMap; /*the icon's bitMap*/
541  Handle iconData; /*the icon's data*/
542  SInt16 iconMaskData[1]; /*icon's mask and BitMap data*/
543  };
544  typedef struct CIcon CIcon;
545  typedef CIcon *CIconPtr;
546  typedef CIconPtr *CIconHandle;
556  GetCIcon(SInt16 iconID);
557 
566  void
567  PlotCIcon(const Rect *theRect, CIconHandle theIcon);
568 
577  void
579 
580  /* GetIcon and PlotIcon moved here from ToolUtils*/
589  Handle
590  GetIcon(SInt16 iconID);
591 
600  void
601  PlotIcon(const Rect *theRect, Handle theIcon);
602 
608  typedef Handle IconSuiteRef;
609  typedef Handle IconCacheRef;
610  /* IconRefs are 32-bit values identifying cached icon data. IconRef 0 is
611  * invalid.*/
612  typedef struct OpaqueIconRef *IconRef;
621  OSErr
622  PlotIconID(const Rect *theRect, IconAlignmentType align,
623  IconTransformType transform, SInt16 theResID);
624 
633  OSErr
634  NewIconSuite(IconSuiteRef *theIconSuite);
635 
658  OSErr
659  AddIconToSuite(Handle theIconData, IconSuiteRef theSuite, ResType theType);
660 
680  OSErr
681  GetIconFromSuite(Handle *theIconData, IconSuiteRef theSuite, ResType theType);
682 
718  OSErr
719  ForEachIconDo(IconSuiteRef theSuite, IconSelectorValue selector,
720  IconActionUPP action, void *yourDataPtr);
721 
730  OSErr
731  GetIconSuite(IconSuiteRef *theIconSuite, SInt16 theResID,
732  IconSelectorValue selector);
733 
753  OSErr
754  DisposeIconSuite(IconSuiteRef theIconSuite, Boolean disposeData);
755 
764  OSErr
765  PlotIconSuite(const Rect *theRect, IconAlignmentType align,
766  IconTransformType transform, IconSuiteRef theIconSuite);
767 
776  OSErr
777  MakeIconCache(IconCacheRef *theCache, IconGetterUPP makeIcon, void *yourDataPtr);
778 
787  OSErr
788  LoadIconCache(const Rect *theRect, IconAlignmentType align,
789  IconTransformType transform, IconCacheRef theIconCache);
790 
799  OSErr
800  PlotIconMethod(const Rect *theRect, IconAlignmentType align,
801  IconTransformType transform, IconGetterUPP theMethod,
802  void *yourDataPtr);
803 
824  OSErr
825  GetLabel(SInt16 labelNumber, RGBColor *labelColor, Str255 labelString);
826 
835  Boolean
836  PtInIconID(Point testPt, const Rect *iconRect, IconAlignmentType align,
837  SInt16 iconID);
838 
859  Boolean
860  PtInIconSuite(Point testPt, const Rect *iconRect, IconAlignmentType align,
861  IconSuiteRef theIconSuite);
862 
871  Boolean
872  PtInIconMethod(Point testPt, const Rect *iconRect, IconAlignmentType align,
873  IconGetterUPP theMethod, void *yourDataPtr);
874 
883  Boolean
884  RectInIconID(const Rect *testRect, const Rect *iconRect,
885  IconAlignmentType align, SInt16 iconID);
886 
907  Boolean
908  RectInIconSuite(const Rect *testRect, const Rect *iconRect,
909  IconAlignmentType align, IconSuiteRef theIconSuite);
910 
919  Boolean
920  RectInIconMethod(const Rect *testRect, const Rect *iconRect,
921  IconAlignmentType align, IconGetterUPP theMethod,
922  void *yourDataPtr);
923 
932  OSErr
933  IconIDToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align,
934  SInt16 iconID);
935 
959  OSErr
960  IconSuiteToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align,
961  IconSuiteRef theIconSuite);
962 
971  OSErr
972  IconMethodToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align,
973  IconGetterUPP theMethod, void *yourDataPtr);
974 
996  OSErr
997  SetSuiteLabel(IconSuiteRef theSuite, SInt16 theLabel);
998 
1016  SInt16
1018 
1037  OSErr
1038  GetIconCacheData(IconCacheRef theCache, void **theData);
1039 
1058  OSErr
1059  SetIconCacheData(IconCacheRef theCache, void *theData);
1060 
1069  OSErr
1070  GetIconCacheProc(IconCacheRef theCache, IconGetterUPP *theProc);
1071 
1096  OSErr
1097  SetIconCacheProc(IconCacheRef theCache, IconGetterUPP theProc);
1098 
1107  OSErr
1108  PlotIconHandle(const Rect *theRect, IconAlignmentType align,
1109  IconTransformType transform, Handle theIcon);
1110 
1119  OSErr
1120  PlotSICNHandle(const Rect *theRect, IconAlignmentType align,
1121  IconTransformType transform, Handle theSICN);
1122 
1169  OSErr
1170  PlotCIconHandle(const Rect *theRect, IconAlignmentType align,
1171  IconTransformType transform, CIconHandle theCIcon);
1172 
1192  enum
1193  {
1194  kSystemIconsCreator = FOUR_CHAR_CODE('macs')
1195  };
1196 
1203  /* Generic Finder icons */
1204  enum
1205  {
1206  kClipboardIcon = FOUR_CHAR_CODE('CLIP'),
1207  kClippingUnknownTypeIcon = FOUR_CHAR_CODE('clpu'),
1208  kClippingPictureTypeIcon = FOUR_CHAR_CODE('clpp'),
1209  kClippingTextTypeIcon = FOUR_CHAR_CODE('clpt'),
1210  kClippingSoundTypeIcon = FOUR_CHAR_CODE('clps'),
1211  kDesktopIcon = FOUR_CHAR_CODE('desk'),
1212  kFinderIcon = FOUR_CHAR_CODE('FNDR'),
1213  kFontSuitcaseIcon = FOUR_CHAR_CODE('FFIL'),
1214  kFullTrashIcon = FOUR_CHAR_CODE('ftrh'),
1215  kGenericApplicationIcon = FOUR_CHAR_CODE('APPL'),
1216  kGenericCDROMIcon = FOUR_CHAR_CODE('cddr'),
1217  kGenericControlPanelIcon = FOUR_CHAR_CODE('APPC'),
1218  kGenericControlStripModuleIcon = FOUR_CHAR_CODE('sdev'),
1219  kGenericComponentIcon = FOUR_CHAR_CODE('thng'),
1220  kGenericDeskAccessoryIcon = FOUR_CHAR_CODE('APPD'),
1221  kGenericDocumentIcon = FOUR_CHAR_CODE('docu'),
1222  kGenericEditionFileIcon = FOUR_CHAR_CODE('edtf'),
1223  kGenericExtensionIcon = FOUR_CHAR_CODE('INIT'),
1224  kGenericFileServerIcon = FOUR_CHAR_CODE('srvr'),
1225  kGenericFontIcon = FOUR_CHAR_CODE('ffil'),
1226  kGenericFontScalerIcon = FOUR_CHAR_CODE('sclr'),
1227  kGenericFloppyIcon = FOUR_CHAR_CODE('flpy'),
1228  kGenericHardDiskIcon = FOUR_CHAR_CODE('hdsk'),
1229  kGenericIDiskIcon = FOUR_CHAR_CODE('idsk'),
1230  kGenericRemovableMediaIcon = FOUR_CHAR_CODE('rmov'),
1231  kGenericMoverObjectIcon = FOUR_CHAR_CODE('movr'),
1232  kGenericPCCardIcon = FOUR_CHAR_CODE('pcmc'),
1233  kGenericPreferencesIcon = FOUR_CHAR_CODE('pref'),
1234  kGenericQueryDocumentIcon = FOUR_CHAR_CODE('qery'),
1235  kGenericRAMDiskIcon = FOUR_CHAR_CODE('ramd'),
1236  kGenericSharedLibaryIcon = FOUR_CHAR_CODE('shlb'),
1237  kGenericStationeryIcon = FOUR_CHAR_CODE('sdoc'),
1238  kGenericSuitcaseIcon = FOUR_CHAR_CODE('suit'),
1239  kGenericURLIcon = FOUR_CHAR_CODE('gurl'),
1240  kGenericWORMIcon = FOUR_CHAR_CODE('worm'),
1241  kInternationalResourcesIcon = FOUR_CHAR_CODE('ifil'),
1242  kKeyboardLayoutIcon = FOUR_CHAR_CODE('kfil'),
1243  kSoundFileIcon = FOUR_CHAR_CODE('sfil'),
1244  kSystemSuitcaseIcon = FOUR_CHAR_CODE('zsys'),
1245  kTrashIcon = FOUR_CHAR_CODE('trsh'),
1246  kTrueTypeFontIcon = FOUR_CHAR_CODE('tfil'),
1247  kTrueTypeFlatFontIcon = FOUR_CHAR_CODE('sfnt'),
1248  kTrueTypeMultiFlatFontIcon = FOUR_CHAR_CODE('ttcf'),
1249  kUserIDiskIcon = FOUR_CHAR_CODE('udsk'),
1250  kInternationResourcesIcon = kInternationalResourcesIcon /* old misspelling*/
1251  };
1252 
1253  /* Internet locations */
1254  enum
1255  {
1256  kInternetLocationHTTPIcon = FOUR_CHAR_CODE('ilht'),
1257  kInternetLocationFTPIcon = FOUR_CHAR_CODE('ilft'),
1258  kInternetLocationAppleShareIcon = FOUR_CHAR_CODE('ilaf'),
1259  kInternetLocationAppleTalkZoneIcon = FOUR_CHAR_CODE('ilat'),
1260  kInternetLocationFileIcon = FOUR_CHAR_CODE('ilfi'),
1261  kInternetLocationMailIcon = FOUR_CHAR_CODE('ilma'),
1262  kInternetLocationNewsIcon = FOUR_CHAR_CODE('ilnw'),
1263  kInternetLocationNSLNeighborhoodIcon = FOUR_CHAR_CODE('ilns'),
1264  kInternetLocationGenericIcon = FOUR_CHAR_CODE('ilge')
1265  };
1266 
1267  /* Folders */
1268  enum
1269  {
1270  kGenericFolderIcon = FOUR_CHAR_CODE('fldr'),
1271  kDropFolderIcon = FOUR_CHAR_CODE('dbox'),
1272  kMountedFolderIcon = FOUR_CHAR_CODE('mntd'),
1273  kOpenFolderIcon = FOUR_CHAR_CODE('ofld'),
1274  kOwnedFolderIcon = FOUR_CHAR_CODE('ownd'),
1275  kPrivateFolderIcon = FOUR_CHAR_CODE('prvf'),
1276  kSharedFolderIcon = FOUR_CHAR_CODE('shfl')
1277  };
1278 
1279  /* Sharing Privileges icons */
1280  enum
1281  {
1282  kSharingPrivsNotApplicableIcon = FOUR_CHAR_CODE('shna'),
1283  kSharingPrivsReadOnlyIcon = FOUR_CHAR_CODE('shro'),
1284  kSharingPrivsReadWriteIcon = FOUR_CHAR_CODE('shrw'),
1285  kSharingPrivsUnknownIcon = FOUR_CHAR_CODE('shuk'),
1286  kSharingPrivsWritableIcon = FOUR_CHAR_CODE('writ')
1287  };
1288 
1289  /* Users and Groups icons */
1290  enum
1291  {
1292  kUserFolderIcon = FOUR_CHAR_CODE('ufld'),
1293  kWorkgroupFolderIcon = FOUR_CHAR_CODE('wfld'),
1294  kGuestUserIcon = FOUR_CHAR_CODE('gusr'),
1295  kUserIcon = FOUR_CHAR_CODE('user'),
1296  kOwnerIcon = FOUR_CHAR_CODE('susr'),
1297  kGroupIcon = FOUR_CHAR_CODE('grup')
1298  };
1299 
1300  /* Special folders */
1301  enum
1302  {
1303  kAppearanceFolderIcon = FOUR_CHAR_CODE('appr'),
1304  kAppleExtrasFolderIcon = FOUR_CHAR_CODE('aex�'),
1305  kAppleMenuFolderIcon = FOUR_CHAR_CODE('amnu'),
1306  kApplicationsFolderIcon = FOUR_CHAR_CODE('apps'),
1307  kApplicationSupportFolderIcon = FOUR_CHAR_CODE('asup'),
1308  kAssistantsFolderIcon = FOUR_CHAR_CODE('ast�'),
1309  kColorSyncFolderIcon = FOUR_CHAR_CODE('prof'),
1310  kContextualMenuItemsFolderIcon = FOUR_CHAR_CODE('cmnu'),
1311  kControlPanelDisabledFolderIcon = FOUR_CHAR_CODE('ctrD'),
1312  kControlPanelFolderIcon = FOUR_CHAR_CODE('ctrl'),
1313  kControlStripModulesFolderIcon = FOUR_CHAR_CODE('sdv�'),
1314  kDocumentsFolderIcon = FOUR_CHAR_CODE('docs'),
1315  kExtensionsDisabledFolderIcon = FOUR_CHAR_CODE('extD'),
1316  kExtensionsFolderIcon = FOUR_CHAR_CODE('extn'),
1317  kFavoritesFolderIcon = FOUR_CHAR_CODE('favs'),
1318  kFontsFolderIcon = FOUR_CHAR_CODE('font'),
1319  kHelpFolderIcon = FOUR_CHAR_CODE('�hlp'),
1320  kInternetFolderIcon = FOUR_CHAR_CODE('int�'),
1321  kInternetPlugInFolderIcon = FOUR_CHAR_CODE('�net'),
1322  kInternetSearchSitesFolderIcon = FOUR_CHAR_CODE('issf'),
1323  kLocalesFolderIcon = FOUR_CHAR_CODE('�loc'),
1324  kMacOSReadMeFolderIcon = FOUR_CHAR_CODE('mor�'),
1325  kPublicFolderIcon = FOUR_CHAR_CODE('pubf'),
1326  kPreferencesFolderIcon = FOUR_CHAR_CODE('prf�'),
1327  kPrinterDescriptionFolderIcon = FOUR_CHAR_CODE('ppdf'),
1328  kPrinterDriverFolderIcon = FOUR_CHAR_CODE('�prd'),
1329  kPrintMonitorFolderIcon = FOUR_CHAR_CODE('prnt'),
1330  kRecentApplicationsFolderIcon = FOUR_CHAR_CODE('rapp'),
1331  kRecentDocumentsFolderIcon = FOUR_CHAR_CODE('rdoc'),
1332  kRecentServersFolderIcon = FOUR_CHAR_CODE('rsrv'),
1333  kScriptingAdditionsFolderIcon = FOUR_CHAR_CODE('�scr'),
1334  kSharedLibrariesFolderIcon = FOUR_CHAR_CODE('�lib'),
1335  kScriptsFolderIcon = FOUR_CHAR_CODE('scr�'),
1336  kShutdownItemsDisabledFolderIcon = FOUR_CHAR_CODE('shdD'),
1337  kShutdownItemsFolderIcon = FOUR_CHAR_CODE('shdf'),
1338  kSpeakableItemsFolder = FOUR_CHAR_CODE('spki'),
1339  kStartupItemsDisabledFolderIcon = FOUR_CHAR_CODE('strD'),
1340  kStartupItemsFolderIcon = FOUR_CHAR_CODE('strt'),
1341  kSystemExtensionDisabledFolderIcon = FOUR_CHAR_CODE('macD'),
1342  kSystemFolderIcon = FOUR_CHAR_CODE('macs'),
1343  kTextEncodingsFolderIcon = FOUR_CHAR_CODE('�tex'),
1344  kUsersFolderIcon = FOUR_CHAR_CODE('usr�'),
1345  kUtilitiesFolderIcon = FOUR_CHAR_CODE('uti�'),
1346  kVoicesFolderIcon = FOUR_CHAR_CODE('fvoc')
1347  };
1348 
1349  /* Badges */
1350  enum
1351  {
1352  kAppleScriptBadgeIcon = FOUR_CHAR_CODE('scrp'),
1353  kLockedBadgeIcon = FOUR_CHAR_CODE('lbdg'),
1354  kMountedBadgeIcon = FOUR_CHAR_CODE('mbdg'),
1355  kSharedBadgeIcon = FOUR_CHAR_CODE('sbdg'),
1356  kAliasBadgeIcon = FOUR_CHAR_CODE('abdg'),
1357  kAlertCautionBadgeIcon = FOUR_CHAR_CODE('cbdg')
1358  };
1359 
1360  /* Alert icons */
1361  enum
1362  {
1363  kAlertNoteIcon = FOUR_CHAR_CODE('note'),
1364  kAlertCautionIcon = FOUR_CHAR_CODE('caut'),
1365  kAlertStopIcon = FOUR_CHAR_CODE('stop')
1366  };
1367 
1368  /* Networking icons */
1369  enum
1370  {
1371  kAppleTalkIcon = FOUR_CHAR_CODE('atlk'),
1372  kAppleTalkZoneIcon = FOUR_CHAR_CODE('atzn'),
1373  kAFPServerIcon = FOUR_CHAR_CODE('afps'),
1374  kFTPServerIcon = FOUR_CHAR_CODE('ftps'),
1375  kHTTPServerIcon = FOUR_CHAR_CODE('htps'),
1376  kGenericNetworkIcon = FOUR_CHAR_CODE('gnet'),
1377  kIPFileServerIcon = FOUR_CHAR_CODE('isrv')
1378  };
1379 
1380  /* Toolbar icons */
1381  enum
1382  {
1383  kToolbarCustomizeIcon = FOUR_CHAR_CODE('tcus'),
1384  kToolbarDeleteIcon = FOUR_CHAR_CODE('tdel'),
1385  kToolbarFavoritesIcon = FOUR_CHAR_CODE('tfav'),
1386  kToolbarHomeIcon = FOUR_CHAR_CODE('thom')
1387  };
1388 
1389  /* Other icons */
1390  enum
1391  {
1392  kAppleLogoIcon = FOUR_CHAR_CODE('capl'),
1393  kAppleMenuIcon = FOUR_CHAR_CODE('sapl'),
1394  kBackwardArrowIcon = FOUR_CHAR_CODE('baro'),
1395  kFavoriteItemsIcon = FOUR_CHAR_CODE('favr'),
1396  kForwardArrowIcon = FOUR_CHAR_CODE('faro'),
1397  kGridIcon = FOUR_CHAR_CODE('grid'),
1398  kHelpIcon = FOUR_CHAR_CODE('help'),
1399  kKeepArrangedIcon = FOUR_CHAR_CODE('arng'),
1400  kLockedIcon = FOUR_CHAR_CODE('lock'),
1401  kNoFilesIcon = FOUR_CHAR_CODE('nfil'),
1402  kNoFolderIcon = FOUR_CHAR_CODE('nfld'),
1403  kNoWriteIcon = FOUR_CHAR_CODE('nwrt'),
1404  kProtectedApplicationFolderIcon = FOUR_CHAR_CODE('papp'),
1405  kProtectedSystemFolderIcon = FOUR_CHAR_CODE('psys'),
1406  kRecentItemsIcon = FOUR_CHAR_CODE('rcnt'),
1407  kShortcutIcon = FOUR_CHAR_CODE('shrt'),
1408  kSortAscendingIcon = FOUR_CHAR_CODE('asnd'),
1409  kSortDescendingIcon = FOUR_CHAR_CODE('dsnd'),
1410  kUnlockedIcon = FOUR_CHAR_CODE('ulck'),
1411  kConnectToIcon = FOUR_CHAR_CODE('cnct'),
1412  kGenericWindowIcon = FOUR_CHAR_CODE('gwin'),
1413  kQuestionMarkIcon = FOUR_CHAR_CODE('ques'),
1414  kDeleteAliasIcon = FOUR_CHAR_CODE('dali'),
1415  kEjectMediaIcon = FOUR_CHAR_CODE('ejec'),
1416  kBurningIcon = FOUR_CHAR_CODE('burn'),
1417  kRightContainerArrowIcon = FOUR_CHAR_CODE('rcar')
1418  };
1419 
1420  // IconServicesUsageFlags
1421  typedef UInt32 IconServicesUsageFlags;
1422  enum
1423  {
1424  kIconServicesNormalUsageFlag = 0
1425  };
1426 
1432  enum
1433  {
1434  kIconServicesCatalogInfoMask =
1435  (kFSCatInfoNodeID | kFSCatInfoParentDirID | kFSCatInfoVolume |
1436  kFSCatInfoNodeFlags | kFSCatInfoFinderInfo | kFSCatInfoFinderXInfo |
1437  kFSCatInfoUserAccess)
1438  };
1439 
1446  typedef UInt32 PlotIconRefFlags;
1447  enum
1448  {
1449 
1454 
1459 
1463  kPlotIconRefNoMask = (1 << 2)
1464  };
1465 
1481  enum
1482  {
1483  kIconFamilyType = FOUR_CHAR_CODE('icns')
1484  };
1485 
1487  {
1488  OSType elementType; /* 'ICN#', 'icl8', etc...*/
1489  Size elementSize; /* Size of this element*/
1490  unsigned char elementData[1];
1491  };
1492  typedef struct IconFamilyElement IconFamilyElement;
1494  {
1495  OSType resourceType; /* Always 'icns'*/
1496  Size resourceSize; /* Total size of this resource*/
1497  IconFamilyElement elements[1];
1498  };
1499  typedef struct IconFamilyResource IconFamilyResource;
1515 #if CALL_NOT_IN_CARBON
1524  OSErr
1526 
1542  void
1544 
1545 #endif /* CALL_NOT_IN_CARBON */
1546 
1567  OSErr
1568  IconRefToIconFamily(IconRef theIconRef, IconSelectorValue whichIcons,
1569  IconFamilyHandle *iconFamily);
1570 
1585  OSErr
1586  IconFamilyToIconSuite(IconFamilyHandle iconFamily, IconSelectorValue whichIcons,
1587  IconSuiteRef *iconSuite);
1588 
1602  OSErr
1603  IconSuiteToIconFamily(IconSuiteRef iconSuite, IconSelectorValue whichIcons,
1604  IconFamilyHandle *iconFamily);
1605 
1621  OSErr
1622  SetIconFamilyData(IconFamilyHandle iconFamily, OSType iconType, Handle h);
1623 
1641  OSErr
1642  GetIconFamilyData(IconFamilyHandle iconFamily, OSType iconType, Handle h);
1643 
1667  OSErr
1668  GetIconRefOwners(IconRef theIconRef, UInt16 *owners);
1669 
1683  OSErr
1684  AcquireIconRef(IconRef theIconRef);
1685 
1703  OSErr
1704  ReleaseIconRef(IconRef theIconRef);
1705 
1736  OSErr
1737  GetIconRefFromFile(const FSSpec *theFile, IconRef *theIconRef, SInt16 *theLabel);
1738 
1760  OSErr
1761  GetIconRef(SInt16 vRefNum, OSType creator, OSType iconType, IconRef *theIconRef);
1762 
1783  OSErr
1784  GetIconRefFromFolder(SInt16 vRefNum, SInt32 parentFolderID, SInt32 folderID,
1785  SInt8 attributes, SInt8 accessPrivileges,
1786  IconRef *theIconRef);
1787 
1788  /* GetIconRefFromFileInfo*/
1836  OSStatus
1837  GetIconRefFromFileInfo(const FSRef *inRef, UniCharCount inFileNameLength,
1838  const UniChar *inFileName, /* can be NULL */
1839  FSCatalogInfoBitmap inWhichInfo,
1840  const FSCatalogInfo *inCatalogInfo, /* can be NULL */
1841  IconServicesUsageFlags inUsageFlags, IconRef *outIconRef,
1842  SInt16 *outLabel);
1843 
1870  OSErr
1871  RegisterIconRefFromIconFamily(OSType creator, OSType iconType,
1872  IconFamilyHandle iconFamily, IconRef *theIconRef);
1873 
1893  OSErr
1894  RegisterIconRefFromResource(OSType creator, OSType iconType,
1895  const FSSpec *resourceFile, SInt16 resourceID,
1896  IconRef *theIconRef);
1897 
1898  /* RegisterIconRefFromFSRef*/
1926  OSStatus
1927  RegisterIconRefFromFSRef(OSType creator, OSType iconType, const FSRef *iconFile,
1928  IconRef *theIconRef);
1929 
1946  OSErr
1947  UnregisterIconRef(OSType creator, OSType iconType);
1948 
1970  OSErr
1971  UpdateIconRef(IconRef theIconRef);
1972 
1988  OSErr
1989  OverrideIconRefFromResource(IconRef theIconRef, const FSSpec *resourceFile,
1990  SInt16 resourceID);
1991 
2007  OSErr
2008  OverrideIconRef(IconRef oldIconRef, IconRef newIconRef);
2009 
2024  OSErr
2025  RemoveIconRefOverride(IconRef theIconRef);
2026 
2047  OSErr
2048  CompositeIconRef(IconRef backgroundIconRef, IconRef foregroundIconRef,
2049  IconRef *compositeIconRef);
2050 
2066  OSErr
2067  IsIconRefComposite(IconRef compositeIconRef, IconRef *backgroundIconRef,
2068  IconRef *foregroundIconRef);
2069 
2089  Boolean
2090  IsValidIconRef(IconRef theIconRef);
2091 
2108  OSErr
2109  PlotIconRef(const Rect *theRect, IconAlignmentType align,
2110  IconTransformType transform,
2111  IconServicesUsageFlags theIconServicesUsageFlags,
2112  IconRef theIconRef);
2113 
2114  /* PlotIconRefInContext*/
2150  OSStatus
2151  PlotIconRefInContext(CGContextRef inContext, const CGRect *inRect,
2152  IconAlignmentType inAlign, IconTransformType inTransform,
2153  const RGBColor *inLabelColor, PlotIconRefFlags inFlags,
2154  IconRef inIconRef);
2155 
2173  Boolean
2174  PtInIconRef(const Point *testPt, const Rect *iconRect, IconAlignmentType align,
2175  IconServicesUsageFlags theIconServicesUsageFlags,
2176  IconRef theIconRef);
2177 
2194  Boolean
2195  RectInIconRef(const Rect *testRect, const Rect *iconRect,
2196  IconAlignmentType align,
2197  IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef);
2198 
2216  OSErr
2217  IconRefToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align,
2218  IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef);
2219 
2246  OSErr
2247  GetIconSizesFromIconRef(IconSelectorValue iconSelectorInput,
2248  IconSelectorValue *iconSelectorOutputPtr,
2249  IconServicesUsageFlags iconServicesUsageFlags,
2250  IconRef theIconRef);
2251 
2275  OSErr
2276  FlushIconRefs(OSType creator, OSType iconType);
2277 
2294  OSErr
2295  FlushIconRefsByVolume(SInt16 vRefNum);
2296 
2317  OSErr
2318  SetCustomIconsEnabled(SInt16 vRefNum, Boolean enableCustomIcons);
2319 
2335  OSErr
2336  GetCustomIconsEnabled(SInt16 vRefNum, Boolean *customIconsEnabled);
2337 
2351  Boolean
2352  IsIconRefMaskEmpty(IconRef iconRef);
2353 
2373  IconRef
2374  GetIconRefVariant(IconRef inIconRef, OSType inVariant,
2375  IconTransformType *outTransform);
2376 
2403  OSErr
2404  RegisterIconRefFromIconFile(OSType creator, OSType iconType,
2405  const FSSpec *iconFile, IconRef *theIconRef);
2406 
2421  OSErr
2422  ReadIconFile(const FSSpec *iconFile, IconFamilyHandle *iconFamily);
2423 
2424  /* ReadIconFromFSRef*/
2445  OSStatus
2446  ReadIconFromFSRef(const FSRef *ref, IconFamilyHandle *iconFamily);
2447 
2461  OSErr
2462  WriteIconFile(IconFamilyHandle iconFamily, const FSSpec *iconFile);
2463 
2464 #if PRAGMA_STRUCT_ALIGN
2465 #pragma options align = reset
2466 #elif PRAGMA_STRUCT_PACKPUSH
2467 #pragma pack(pop)
2468 #elif PRAGMA_STRUCT_PACK
2469 #pragma pack()
2470 #endif
2471 
2472 #ifdef PRAGMA_IMPORT_OFF
2473 #pragma import off
2474 #elif PRAGMA_IMPORT
2475 #pragma import reset
2476 #endif
2477 
2478 #ifdef __cplusplus
2479 }
2480 #endif
2481 
2482 #endif /* __ICONS__ */
2483 * / or disposing the iconFamily
2484  * /
2485 
2494  OSErr
2495  ReadIconFile(const FSSpec *iconFile, IconFamilyHandle *iconFamily);
2496 
2497 /* ReadIconFromFSRef*/
2518 OSStatus
2519 ReadIconFromFSRef(const FSRef *ref, IconFamilyHandle *iconFamily);
2520 
2534 OSErr WriteIconFile(IconFamilyHandle iconFamily, const FSSpec *iconFile);
2535 
2536 #if PRAGMA_STRUCT_ALIGN
2537 #pragma options align = reset
2538 #elif PRAGMA_STRUCT_PACKPUSH
2539 #pragma pack(pop)
2540 #elif PRAGMA_STRUCT_PACK
2541 #pragma pack()
2542 #endif
2543 
2544 #ifdef PRAGMA_IMPORT_OFF
2545 #pragma import off
2546 #elif PRAGMA_IMPORT
2547 #pragma import reset
2548 #endif
2549 
2550 #ifdef __cplusplus
2551 }
2552 #endif
2553 
2554 #endif /* __ICONS__ */
2555 * /*/*/ * /*/*/ * /*/*/ * /*/*/ */*/
CoreGraphics context.
Public Code Fragment Manager Interfaces.
File Manager (MFS, HFS, and HFS+) Interfaces.
OSErr GetIconRef(SInt16 vRefNum, OSType creator, OSType iconType, IconRef *theIconRef)
OSStatus ReadIconFromFSRef(const FSRef *ref, IconFamilyHandle *iconFamily)
OSErr GetLabel(SInt16 labelNumber, RGBColor *labelColor, Str255 labelString)
Get color and string used in the lable menu of the Finder.
OSErr IconRefToIconFamily(IconRef theIconRef, IconSelectorValue whichIcons, IconFamilyHandle *iconFamily)
Boolean IsValidIconRef(IconRef theIconRef)
OSErr PlotIconID(const Rect *theRect, IconAlignmentType align, IconTransformType transform, SInt16 theResID)
CIconHandle GetCIcon(SInt16 iconID)
Boolean RectInIconMethod(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
OSErr PlotIconMethod(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconGetterUPP theMethod, void *yourDataPtr)
OSErr IconMethodToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
OSErr IconServicesInit(CFragInitBlockPtr initBlockPtr)
OSStatus GetIconRefFromFileInfo(const FSRef *inRef, UniCharCount inFileNameLength, const UniChar *inFileName, FSCatalogInfoBitmap inWhichInfo, const FSCatalogInfo *inCatalogInfo, IconServicesUsageFlags inUsageFlags, IconRef *outIconRef, SInt16 *outLabel)
UInt32 PlotIconRefFlags
Definition: Icons.h:1446
OSErr GetIconFamilyData(IconFamilyHandle iconFamily, OSType iconType, Handle h)
Boolean RectInIconSuite(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, IconSuiteRef theIconSuite)
Hit test a rectangle against indicated icon.
OSErr GetIconCacheData(IconCacheRef theCache, void **theData)
GetIconCacheData Get data associated with an icon cache.
OSErr PlotIconSuite(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconSuiteRef theIconSuite)
OSErr LoadIconCache(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconCacheRef theIconCache)
void DisposeIconActionUPP(IconActionUPP userUPP)
OSErr RemoveIconRefOverride(IconRef theIconRef)
OSErr SetCustomIconsEnabled(SInt16 vRefNum, Boolean enableCustomIcons)
@ kPlotIconRefNormalFlags
Definition: Icons.h:1453
@ kPlotIconRefNoMask
Definition: Icons.h:1463
@ kPlotIconRefNoImage
Definition: Icons.h:1458
OSErr WriteIconFile(IconFamilyHandle iconFamily, const FSSpec *iconFile)
OSErr RegisterIconRefFromResource(OSType creator, OSType iconType, const FSSpec *resourceFile, SInt16 resourceID, IconRef *theIconRef)
Handle IconSuiteRef
Definition: Icons.h:608
void PlotCIcon(const Rect *theRect, CIconHandle theIcon)
OSErr InvokeIconActionUPP(ResType theType, Handle *theIcon, void *yourDataPtr, IconActionUPP userUPP)
Boolean RectInIconRef(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef)
IconGetterUPP NewIconGetterUPP(IconGetterProcPtr userRoutine)
Boolean PtInIconID(Point testPt, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
OSErr PlotCIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, CIconHandle theCIcon)
Display an icon image with System 7 icon resource types.
IconActionUPP NewIconActionUPP(IconActionProcPtr userRoutine)
OSErr AcquireIconRef(IconRef theIconRef)
OSErr NewIconSuite(IconSuiteRef *theIconSuite)
OSErr SetIconFamilyData(IconFamilyHandle iconFamily, OSType iconType, Handle h)
OSErr OverrideIconRefFromResource(IconRef theIconRef, const FSSpec *resourceFile, SInt16 resourceID)
Handle GetIcon(SInt16 iconID)
OSErr IconIDToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
Boolean PtInIconRef(const Point *testPt, const Rect *iconRect, IconAlignmentType align, IconServicesUsageFlags theIconServicesUsageFlags, IconRef theIconRef)
SInt16 GetSuiteLabel(IconSuiteRef theSuite)
Specify a default label for an icon family.
OSErr OverrideIconRef(IconRef oldIconRef, IconRef newIconRef)
OSErr RegisterIconRefFromIconFile(OSType creator, OSType iconType, const FSSpec *iconFile, IconRef *theIconRef)
OSErr UpdateIconRef(IconRef theIconRef)
OSErr GetIconSuite(IconSuiteRef *theIconSuite, SInt16 theResID, IconSelectorValue selector)
OSErr GetIconRefFromFolder(SInt16 vRefNum, SInt32 parentFolderID, SInt32 folderID, SInt8 attributes, SInt8 accessPrivileges, IconRef *theIconRef)
OSErr DisposeIconSuite(IconSuiteRef theIconSuite, Boolean disposeData)
DisposeIconSuite Dispose of icon family.
void DisposeIconGetterUPP(IconGetterUPP userUPP)
void PlotIcon(const Rect *theRect, Handle theIcon)
OSErr IconSuiteToIconFamily(IconSuiteRef iconSuite, IconSelectorValue whichIcons, IconFamilyHandle *iconFamily)
OSErr GetCustomIconsEnabled(SInt16 vRefNum, Boolean *customIconsEnabled)
OSErr IsIconRefComposite(IconRef compositeIconRef, IconRef *backgroundIconRef, IconRef *foregroundIconRef)
Boolean IsIconRefMaskEmpty(IconRef iconRef)
OSErr ReleaseIconRef(IconRef theIconRef)
OSErr ReadIconFile(const FSSpec *iconFile, IconFamilyHandle *iconFamily)
OSErr GetIconCacheProc(IconCacheRef theCache, IconGetterUPP *theProc)
GetIconCacheProc Get procedure associated with an icon cache.
OSErr GetIconSizesFromIconRef(IconSelectorValue iconSelectorInput, IconSelectorValue *iconSelectorOutputPtr, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef)
OSErr AddIconToSuite(Handle theIconData, IconSuiteRef theSuite, ResType theType)
Add an icon to an icon family.
void IconServicesTerminate(void)
OSErr FlushIconRefsByVolume(SInt16 vRefNum)
IconRef GetIconRefVariant(IconRef inIconRef, OSType inVariant, IconTransformType *outTransform)
OSErr GetIconRefOwners(IconRef theIconRef, UInt16 *owners)
OSErr PlotSICNHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theSICN)
OSErr PlotIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIcon)
Boolean RectInIconID(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
OSErr CompositeIconRef(IconRef backgroundIconRef, IconRef foregroundIconRef, IconRef *compositeIconRef)
OSErr IconFamilyToIconSuite(IconFamilyHandle iconFamily, IconSelectorValue whichIcons, IconSuiteRef *iconSuite)
Handle InvokeIconGetterUPP(ResType theType, void *yourDataPtr, IconGetterUPP userUPP)
OSErr PlotIconRef(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconServicesUsageFlags theIconServicesUsageFlags, IconRef theIconRef)
OSErr IconSuiteToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, IconSuiteRef theIconSuite)
Create a region from an icon mask.
OSErr GetIconRefFromFile(const FSSpec *theFile, IconRef *theIconRef, SInt16 *theLabel)
OSErr FlushIconRefs(OSType creator, OSType iconType)
OSErr RegisterIconRefFromIconFamily(OSType creator, OSType iconType, IconFamilyHandle iconFamily, IconRef *theIconRef)
Boolean PtInIconMethod(Point testPt, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
OSErr GetIconFromSuite(Handle *theIconData, IconSuiteRef theSuite, ResType theType)
GetIconFromSuite Obtain a specified icon from an icon family.
void DisposeCIcon(CIconHandle theIcon)
OSStatus PlotIconRefInContext(CGContextRef inContext, const CGRect *inRect, IconAlignmentType inAlign, IconTransformType inTransform, const RGBColor *inLabelColor, PlotIconRefFlags inFlags, IconRef inIconRef)
OSErr IconRefToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef)
OSErr SetIconCacheData(IconCacheRef theCache, void *theData)
SetIconCacheData Set the data associated with an icon cache.
OSErr SetIconCacheProc(IconCacheRef theCache, IconGetterUPP theProc)
SetIconCacheProc Set the procedure associated with an icon cache.
OSErr MakeIconCache(IconCacheRef *theCache, IconGetterUPP makeIcon, void *yourDataPtr)
OSErr ForEachIconDo(IconSuiteRef theSuite, IconSelectorValue selector, IconActionUPP action, void *yourDataPtr)
Perform action for specified members of an icon family.
OSErr SetSuiteLabel(IconSuiteRef theSuite, SInt16 theLabel)
Specify a default label for an icon family.
OSErr UnregisterIconRef(OSType creator, OSType iconType)
Boolean PtInIconSuite(Point testPt, const Rect *iconRect, IconAlignmentType align, IconSuiteRef theIconSuite)
Hit test a point against indicated icon.
Basic Macintosh data types.
unsigned char Boolean
Definition: MacTypes.h:318
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
Interface to Quickdraw Graphics.
Definition: Quickdraw.h:279
Definition: CodeFragments.h:513
Definition: CGGeometry.h:78
Definition: Icons.h:537
Definition: Files.h:6621
Definition: Files.h:6527
Definition: Icons.h:1487
Definition: Icons.h:1494
Definition: Quickdraw.h:306
Definition: Quickdraw.h:2064
Definition: MacTypes.h:520
Definition: Quickdraw.h:1710
Definition: MacTypes.h:527