home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NeXTSTEP 3.2 (Developer)
/
NS_dev_3.2.iso
/
NextDeveloper
/
Headers
/
appkit
/
NXDataLinkManager.h
< prev
next >
Wrap
Text File
|
1992-09-11
|
4KB
|
127 lines
/*
NXDataLinkManager
Application Kit, Release 3.0
Copyright (c) 1991, NeXT, Inc. All rights reserved.
*/
#import <sys/stat.h>
#import <objc/Object.h>
#import <objc/List.h>
#import <objc/hashtable.h>
#import "Pasteboard.h"
#import <machkit/senderIsInvalid.h>
#import "NXDataLink.h"
#import "NXSelection.h"
#import "graphics.h"
@interface NXDataLinkManager : Object <NXSenderIsInvalid> {
/* these instance variables are NOT part of the API, are subject to change in future releases */
@private
id delegate;
id ref;
List *srcLinks;
List *destLinks;
struct _lmFlags {
unsigned int isEdited:1;
unsigned int doUI:1;
unsigned int showOutlines:1;
unsigned int registered:1;
unsigned int linksDirty:1;
unsigned int delegateVerifiesLinks:1;
unsigned int RESERVED:10;
} lmFlags;
int destLinksCounter;
time_t lastEditTime;
List *linkInfo;
Pasteboard *linkInfoPboard;
int linkInfoChangeCount;
unsigned int _reservedLinkManager1;
}
- init;
- initWithDelegate:obj;
- initWithDelegate:obj fromFile:(const char *)path;
- free;
- delegate;
- (const char *)filename;
- (BOOL)isEdited;
- setInteractsWithUser:(BOOL)flag;
- (BOOL)interactsWithUser;
- setLinksVerifiedByDelegate:(BOOL)flag;
- (BOOL)areLinksVerifiedByDelegate;
/* used to notify DataLinkManager whats happening with the doc */
- documentSaved;
- documentReverted;
- documentSavedAs:(const char *)path;
- documentSavedTo:(const char *)path;
- documentClosed;
- documentEdited;
/* adds a link to a document */
- addLink:(NXDataLink *)link at:(NXSelection *)selection;
- addLinkAsMarker:(NXDataLink *)link at:(NXSelection *)selection;
/* copies info about all existing links into a pasteboard */
- writeLinksToPasteboard:(Pasteboard *)pasteboard;
/* adds a data link to a document using info from writeLinksToPasteboard: */
- (NXDataLink *)addLinkPreviouslyAt:(NXSelection *)oldSelection fromPasteboard:(Pasteboard *)pasteboard at:(NXSelection *)selection;
/* sets whether to show outlines around linked data */
- setLinkOutlinesVisible:(BOOL)flag;
- (BOOL)areLinkOutlinesVisible;
/* breaks all links in a document */
- breakAllLinks;
- (NXDataLink *)findDestinationLinkWithSelection:(NXSelection *)destSel;
/* apps should not rely on this struct's contents */
typedef struct { void *a; void *b; } NXLinkEnumerationState;
- prepareEnumerationState:(NXLinkEnumerationState *)state forLinksOfType:(NXDataLinkDisposition)srcOrDest;
- (NXDataLink *)nextLinkUsing:(NXLinkEnumerationState *)state;
@end
/* generic selection messages, sent to the LinkManager's delegate. Return nil if the selecion arg can not be resolved. */
@interface Object(NXSelectionHandling)
- (NXSelection *)createSelection;
- setSelection:(NXSelection *)selection;
- showSelection:(NXSelection *)selection;
- copyToPasteboard:(Pasteboard *)pasteboard at:(NXSelection *)selection cheapCopyAllowed:(BOOL)flag;
- pasteFromPasteboard:(Pasteboard *)pasteboard at:(NXSelection *)selection;
- importFile:(const char *)filename at:(NXSelection *)selection;
- windowForSelection:(NXSelection *)selection;
@end
/* delegate methods specific to links */
@interface Object(NXDataLinkManagerDelegate)
/* used to close documents opened without UI */
- dataLinkManagerCloseDocument:(NXDataLinkManager *)sender;
- dataLinkManager:(NXDataLinkManager *)sender didBreakLink:(NXDataLink *)link;
- dataLinkManagerRedrawLinkOutlines:(NXDataLinkManager *)sender;
- dataLinkManagerDidEditLinks:(NXDataLinkManager *)sender;
/* if not implemented, doc assumes that whenever the app saves all linking clients need to be updated */
- (BOOL)dataLinkManagerTracksLinksIndividually:(NXDataLinkManager *)sender;
- dataLinkManager:(NXDataLinkManager *)sender startTrackingLink:(NXDataLink *)link;
- dataLinkManager:(NXDataLinkManager *)sender stopTrackingLink:(NXDataLink *)link;
/* only needed if you do setLinksVerifiedByDelegate:YES */
- (BOOL)dataLinkManager:(NXDataLinkManager *)sender isUpdateNeededForLink:(NXDataLink *)link;
@end
extern void NXFrameLinkRect(const NXRect *aRect, BOOL isDestination);
extern float NXLinkFrameThickness(void);