diff options
Diffstat (limited to 'common/quicktime_win32/IconStorage.h')
| -rw-r--r-- | common/quicktime_win32/IconStorage.h | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/common/quicktime_win32/IconStorage.h b/common/quicktime_win32/IconStorage.h new file mode 100644 index 0000000..1092290 --- /dev/null +++ b/common/quicktime_win32/IconStorage.h @@ -0,0 +1,149 @@ +/* + File: IconStorage.h + + Contains: Services to load and share icon family data. + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 2000-2002 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 __ICONSTORAGE__ +#define __ICONSTORAGE__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#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 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') +}; + +/* Obsolete. Use names defined above. */ +enum { + large1BitMask = kLarge1BitMask, + large4BitData = kLarge4BitData, + large8BitData = kLarge8BitData, + small1BitMask = kSmall1BitMask, + small4BitData = kSmall4BitData, + small8BitData = kSmall8BitData, + mini1BitMask = kMini1BitMask, + mini4BitData = kMini4BitData, + mini8BitData = kMini8BitData +}; + +/* + 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; +/* 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') +}; + + +#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 + + +#endif /* __ICONSTORAGE__ */ + |