/* ============================================================================= PROJECT: ResKnife FILE: ResKnifeResourceProtocol.h PURPOSE: This protocol wraps up whatever implementation the host application (i.e. ResKnife) uses for resources in a way that every editor can get enough information about the resource being edited. Or in Nick's immortal words (which I found only *after* I had written the stuff above): This protocol allows your plug to interrogate a resource to find out information about it. AUTHORS: Nick Shanks, nick(at)nickshanks.com, (c) ~2001. M. Uli Kusterer, witness(at)zathras.de, (c) 2003. REVISIONS: 2003-07-31 UK Added document accessor, commented. ========================================================================== */ /* ----------------------------------------------------------------------------- Headers: -------------------------------------------------------------------------- */ #import /* ----------------------------------------------------------------------------- Protocol: -------------------------------------------------------------------------- */ @protocol ResKnifeResourceProtocol -(void) touch; -(BOOL) isDirty; -(NSString*) name; -(void) setName: (NSString*)newName; -(NSString*) type; -(void) setType: (NSString*)newType; -(NSNumber*) resID; -(void) setResID: (NSNumber*)newResID; -(NSNumber*) attributes; -(void) setAttributes: (NSNumber*)newAttributes; -(NSNumber*) size; -(NSData*) data; -(void) setData: (NSData*)newData; -(NSDocument*) document; // Owner of this resource. Useful for looking for resources in same file as yours. // These methods are used to retrieve resources other than the one you're editing. // Passing a document of nil will indicate to search in all open documents. // There is currently no way to search in files which haven't been opened. // All returned objects are auoreleased. Retain if you want to keep them. // This method may return an empty array + (NSArray *)allResourcesOfType:(NSString *)typeValue inDocument:(NSDocument *)document; // The next two return the first matching resource found, or nil. + (id)resourceOfType:(NSString *)typeValue andID:(NSNumber *)resIDValue inDocument:(NSDocument *)document; + (id)resourceOfType:(NSString *)typeValue withName:(NSString *)nameValue inDocument:(NSDocument *)document; @end /* ----------------------------------------------------------------------------- Resource Notifications: See note in Notifications.m about usage. -------------------------------------------------------------------------- */ extern NSString *ResourceWillChangeNotification; extern NSString *ResourceNameWillChangeNotification; extern NSString *ResourceTypeWillChangeNotification; extern NSString *ResourceIDWillChangeNotification; extern NSString *ResourceAttributesWillChangeNotification; extern NSString *ResourceDataWillChangeNotification; extern NSString *ResourceWillBeSavedNotification; extern NSString *ResourceNameDidChangeNotification; extern NSString *ResourceTypeDidChangeNotification; extern NSString *ResourceIDDidChangeNotification; extern NSString *ResourceAttributesDidChangeNotification; extern NSString *ResourceDataDidChangeNotification; extern NSString *ResourceDidChangeNotification; extern NSString *ResourceWasSavedNotification;