1 #import "ITMacResource.h"
3 @implementation ITMacResource
5 + (Class)subclassForType:(ITMacResourceType)type {
6 NSEnumerator *subclassEnumerator = [[self subclasses] objectEnumerator];
9 while ((subclass = [subclassEnumerator nextObject])) {
10 if ([subclass supportsResourceType:type]) {
18 + (NSArray *)supportedResourceTypes {
19 return [NSArray array];
22 + (BOOL)supportsResourceType:(ITMacResourceType)type {
23 return [[self supportedResourceTypes] containsObject:[NSString stringWithFourCharCode:type]];
26 + (id)resourceWithHandle:(Handle)handle {
27 return [[[self alloc] initWithHandle:handle] autorelease];
30 - (id)initWithHandle:(Handle)handle {
31 if (self = [super init]) {
44 _data = [NSData dataWithBytes:(*_handle) length:GetHandleSize(_handle)];
49 - (ITMacResourceType)type {
53 GetResInfo(_handle, &_id, &_type, _name);
54 return (ITMacResourceType)_type;
61 GetResInfo(_handle, &_id, &_type, _name);
69 GetResInfo(_handle, &_id, &_type, _name);
70 return [(NSString*)CFStringCreateWithPascalString(NULL,
71 _name, kCFStringEncodingMacRomanLatin1) autorelease];
74 - (Class)nativeRepresentationClass {
78 - (id)nativeRepresentation {
84 ReleaseResource(_handle);