ResKnife/Cocoa/Plug-Ins/ResKnifeResourceProtocol.h

75 lines
2.9 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.
========================================================================== */
#import <Cocoa/Cocoa.h>
@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;
- (NSString *)defaultWindowTitle;
- (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 *)searchDocument;
// The next two return the first matching resource found, or nil.
+ (id)resourceOfType:(NSString *)typeValue andID:(NSNumber *)resIDValue inDocument:(NSDocument *)searchDocument;
+ (id)resourceOfType:(NSString *)typeValue withName:(NSString *)nameValue inDocument:(NSDocument *)searchDocument;
@end
// See note in Notifications.m about usage of these
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;