home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / OpenStepConversion / IntermediateFrameworks2 / AppKit.framework / Headers / NSDataLinkManager.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-20  |  4.0 KB  |  127 lines

  1. /*
  2.     NXDataLinkManager
  3.     Application Kit, Release 3.0
  4.     Copyright (c) 1991, NeXT, Inc.  All rights reserved. 
  5. */
  6.  
  7. #import <sys/stat.h>
  8. #import <Foundation/NSObject.h>
  9. #import <objc/List.h>
  10. #import <objc/hashtable.h>
  11. #import "NSPasteboard.h"
  12. #import <machkit/senderIsInvalid.h>
  13. #import "NSDataLink.h"
  14. #import "NSSelection.h"
  15. #import "NSGraphics.h"
  16.  
  17. @interface NSDataLinkManager : NSObject <NXSenderIsInvalid> {
  18.   /* these instance variables are NOT part of the API, are subject to change in future releases */
  19.   @private
  20.     id delegate;
  21.     id ref;
  22.     List *srcLinks;
  23.     List *destLinks;
  24.     struct _lmFlags {
  25.     unsigned int isEdited:1;
  26.     unsigned int doUI:1;
  27.     unsigned int showOutlines:1;
  28.     unsigned int registered:1;
  29.     unsigned int linksDirty:1;
  30.     unsigned int delegateVerifiesLinks:1;
  31.     unsigned int RESERVED:10;
  32.     } lmFlags;
  33.     int destLinksCounter;
  34.     time_t lastEditTime;
  35.     List *linkInfo;
  36.     NSPasteboard *linkInfoPboard;
  37.     int linkInfoChangeCount;
  38.     unsigned int _reservedLinkManager1;
  39. }
  40.  
  41. - init;
  42. - initWithDelegate:obj;
  43. - initWithDelegate:obj fromFile:(NSString *)path;
  44. - (void)dealloc;
  45.  
  46. - delegate;
  47. - (NSString *)filename;
  48. - (BOOL)isEdited;
  49. - setInteractsWithUser:(BOOL)flag;
  50. - (BOOL)interactsWithUser;
  51. - setLinksVerifiedByDelegate:(BOOL)flag;
  52. - (BOOL)areLinksVerifiedByDelegate;
  53.  
  54. /* used to notify DataLinkManager whats happening with the doc */
  55. - documentSaved;
  56. - documentReverted;
  57. - documentSavedAs:(NSString *)path;
  58. - documentSavedTo:(NSString *)path;
  59. - documentClosed;
  60. - documentEdited;
  61.  
  62. /* adds a link to a document */
  63. - addLink:(NSDataLink *)link at:(NSSelection *)selection;
  64. - addLinkAsMarker:(NSDataLink *)link at:(NSSelection *)selection;
  65.  
  66. /* copies info about all existing links into a pasteboard */
  67. - 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. - setLinkOutlinesVisible:(BOOL)flag;
  74. - (BOOL)areLinkOutlinesVisible;
  75.  
  76. /* breaks all links in a document */
  77. - breakAllLinks;
  78.  
  79. - (NSDataLink *)findDestinationLinkWithSelection:(NSSelection *)destSel;
  80.  
  81. /* apps should not rely on this struct's contents */
  82. typedef struct { void *a; void *b; } NSLinkEnumerationState;
  83.  
  84. - prepareEnumerationState:(NSLinkEnumerationState *)state forLinksOfType:(NSDataLinkDisposition)srcOrDest;
  85. - (NSDataLink *)nextLinkUsing:(NSLinkEnumerationState *)state;
  86.  
  87. @end
  88.  
  89.  
  90. /* generic selection messages, sent to the LinkManager's delegate.  Return nil if the selecion arg can not be resolved. */
  91. @interface NSObject(NXSelectionHandling)
  92.  
  93. - (NSSelection *)createSelection;
  94. - setSelection:(NSSelection *)selection;
  95. - showSelection:(NSSelection *)selection;
  96. - copyToPasteboard:(NSPasteboard *)pasteboard at:(NSSelection *)selection cheapCopyAllowed:(BOOL)flag;
  97. - pasteFromPasteboard:(NSPasteboard *)pasteboard at:(NSSelection *)selection;
  98. - importFile:(NSString *)filename at:(NSSelection *)selection;
  99. - windowForSelection:(NSSelection *)selection;
  100.  
  101. @end
  102.  
  103.  
  104. /* delegate methods specific to links */
  105. @interface NSObject(NXDataLinkManagerDelegate)
  106.  
  107. /* used to close documents opened without UI */
  108. - dataLinkManagerCloseDocument:(NSDataLinkManager *)sender;
  109.  
  110. - dataLinkManager:(NSDataLinkManager *)sender didBreakLink:(NSDataLink *)link;
  111. - dataLinkManagerRedrawLinkOutlines:(NSDataLinkManager *)sender;
  112. - dataLinkManagerDidEditLinks:(NSDataLinkManager *)sender;
  113.  
  114. /* if not implemented, doc assumes that whenever the app saves all linking clients need to be updated */
  115. - (BOOL)dataLinkManagerTracksLinksIndividually:(NSDataLinkManager *)sender;
  116.  
  117. - dataLinkManager:(NSDataLinkManager *)sender startTrackingLink:(NSDataLink *)link;
  118. - dataLinkManager:(NSDataLinkManager *)sender stopTrackingLink:(NSDataLink *)link;
  119.  
  120. /* only needed if you do setLinksVerifiedByDelegate:YES */
  121. - (BOOL)dataLinkManager:(NSDataLinkManager *)sender isUpdateNeededForLink:(NSDataLink *)link;
  122.  
  123. @end
  124.  
  125. extern void NSFrameLinkRect(NSRect aRect , BOOL isDestination);
  126. extern float NSLinkFrameThickness(void);
  127.