home *** CD-ROM | disk | FTP | other *** search
/ OpenStep (Enterprise) / OpenStepENTCD.toast / OEDEV / DEV.Z / NSDataLinkManager.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-09  |  3.8 KB  |  124 lines

  1. /*
  2.     NSDataLinkManager.h
  3.     Application Kit
  4.     Copyright (c) 1994-1996, NeXT Software, Inc.
  5.     All rights reserved.
  6. */
  7.  
  8. #ifndef STRICT_OPENSTEP
  9.  
  10. #import <Foundation/NSObject.h>
  11. #import <AppKit/NSGraphics.h>
  12. #import <AppKit/AppKitDefines.h>
  13.  
  14. @class List;
  15. @class NSPasteboard;
  16. @class NSDataLink;
  17. @class NSSelection;
  18. @class NSWindow;
  19.  
  20. @interface NSDataLinkManager : NSObject <NSCoding> {
  21.   @private
  22.     id delegate;
  23.     id ref;
  24.     List *srcLinks;
  25.     List *destLinks;
  26.     struct _lmFlags {
  27.     unsigned int isEdited:1;
  28.     unsigned int doUI:1;
  29.     unsigned int showOutlines:1;
  30.     unsigned int registered:1;
  31.     unsigned int linksDirty:1;
  32.     unsigned int delegateVerifiesLinks:1;
  33.     unsigned int reserved:26;
  34.     } lmFlags;
  35.     int destLinksCounter;
  36.     long lastEditTime;
  37.     List *linkInfo;
  38.     NSPasteboard *linkInfoPboard;
  39.     int linkInfoChangeCount;
  40.     unsigned int _reservedDataLinkManager1;
  41. }
  42.  
  43. - (id)initWithDelegate:(id)obj;
  44. - (id)initWithDelegate:(id)obj fromFile:(NSString *)path;
  45.  
  46. - (id)delegate;
  47. - (NSString *)filename;
  48. - (BOOL)isEdited;
  49. - (void)setInteractsWithUser:(BOOL)flag;
  50. - (BOOL)interactsWithUser;
  51. - (void)setDelegateVerifiesLinks:(BOOL)flag;
  52. - (BOOL)delegateVerifiesLinks;
  53.  
  54. /* used to notify DataLinkManager whats happening with the doc */
  55. - (void)noteDocumentSaved;
  56. - (void)noteDocumentReverted;
  57. - (void)noteDocumentSavedAs:(NSString *)path;
  58. - (void)noteDocumentSavedTo:(NSString *)path;
  59. - (void)noteDocumentClosed;
  60. - (void)noteDocumentEdited;
  61.  
  62. /* adds a link to a document */
  63. - (BOOL)addLink:(NSDataLink *)link at:(NSSelection *)selection;
  64. - (BOOL)addLinkAsMarker:(NSDataLink *)link at:(NSSelection *)selection;
  65.  
  66. /* copies info about all existing links into a pasteboard */
  67. - (void)writeLinksToPasteboard:(NSPasteboard *)pasteboard;
  68.  
  69. /* adds a data link to a document using info from writeLinksToPasteboard: */
  70. - (NSDataLink *)addLinkPreviouslyAt:(NSSelection *)oldSelection fromPasteboard:(NSPasteboard *)pasteboard at:(NSSelection *)selection;
  71.  
  72. /* sets whether to show outlines around linked data */
  73. - (void)setLinkOutlinesVisible:(BOOL)flag;
  74. - (BOOL)areLinkOutlinesVisible;
  75.  
  76. /* breaks all links in a document */
  77. - (void)breakAllLinks;
  78.  
  79. - (NSDataLink *)destinationLinkWithSelection:(NSSelection *)destSel;
  80.  
  81. - (NSEnumerator *)sourceLinkEnumerator;
  82. - (NSEnumerator *)destinationLinkEnumerator;
  83.  
  84. @end
  85.  
  86.  
  87. /* generic selection messages, sent to the LinkManager's delegate.  Return NO if the selecion arg can not be resolved. */
  88. @interface NSObject(NSSelectionHandling)
  89.  
  90. - (BOOL)showSelection:(NSSelection *)selection;
  91. - (BOOL)copyToPasteboard:(NSPasteboard *)pasteboard at:(NSSelection *)selection cheapCopyAllowed:(BOOL)flag;
  92. - (BOOL)pasteFromPasteboard:(NSPasteboard *)pasteboard at:(NSSelection *)selection;
  93. - (BOOL)importFile:(NSString *)filename at:(NSSelection *)selection;
  94. - (NSWindow *)windowForSelection:(NSSelection *)selection;
  95.  
  96. @end
  97.  
  98.  
  99. /* delegate methods specific to links */
  100. @interface NSObject(NSDataLinkManagerDelegate)
  101.  
  102. /* used to close documents opened without UI */
  103. - (void)dataLinkManagerCloseDocument:(NSDataLinkManager *)sender;
  104.  
  105. - (void)dataLinkManager:(NSDataLinkManager *)sender didBreakLink:(NSDataLink *)link;
  106. - (void)dataLinkManagerRedrawLinkOutlines:(NSDataLinkManager *)sender;
  107. - (void)dataLinkManagerDidEditLinks:(NSDataLinkManager *)sender;
  108.  
  109. /* if not implemented, doc assumes that whenever the app saves all linking clients need to be updated */
  110. - (BOOL)dataLinkManagerTracksLinksIndividually:(NSDataLinkManager *)sender;
  111.  
  112. - (void)dataLinkManager:(NSDataLinkManager *)sender startTrackingLink:(NSDataLink *)link;
  113. - (void)dataLinkManager:(NSDataLinkManager *)sender stopTrackingLink:(NSDataLink *)link;
  114.  
  115. /* only needed if you do setLinksVerifiedByDelegate:Yes */
  116. - (BOOL)dataLinkManager:(NSDataLinkManager *)sender isUpdateNeededForLink:(NSDataLink *)link;
  117.  
  118. @end
  119.  
  120. APPKIT_EXTERN void NSFrameLinkRect(NSRect aRect, BOOL isDestination);
  121. APPKIT_EXTERN float NSLinkFrameThickness(void);
  122.  
  123. #endif STRICT_OPENSTEP
  124.