mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -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__ */
|
||||
|
||||
Reference in New Issue
Block a user