ResKnife/Cocoa/Plug-Ins/ResKnifeResourceProtocol.h
2003-08-05 06:08:19 +02:00

90 lines
3.4 KiB
Objective-C

/* =============================================================================
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-08-05 UK Added nameForEditorWindow.
2003-07-31 UK Added document accessor, commented.
========================================================================== */
/* -----------------------------------------------------------------------------
Headers:
-------------------------------------------------------------------------- */
#import <Cocoa/Cocoa.h>
/* -----------------------------------------------------------------------------
Protocol:
-------------------------------------------------------------------------- */
@protocol ResKnifeResourceProtocol
-(void) touch;
-(BOOL) isDirty;
-(NSString*) name;
-(void) setName: (NSString*)newName;
-(NSString*) nameForEditorWindow;
-(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;