home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Graphics / Misc / Wood.0.72 / Sources / WoodDoc_TreeDelegate.m < prev    next >
Encoding:
Text File  |  1995-08-29  |  1.8 KB  |  103 lines

  1. #import "wooddoc.h"
  2.  
  3. @implementation WoodDoc (TreeDelegate)
  4.  
  5. static BOOL            shouldAlertTextSave = YES;
  6.  
  7. - updateViewsDirty:(BOOL)aBool rect:(NXRect *)aRect flag:(int)aFlag
  8. {
  9.     BOOL resized;
  10.     NXRect scrollRect;
  11.     
  12.     [window disableFlushWindow];
  13.     if(aFlag & CHECK_RESIZE){
  14.         resized = [treeView checkResize:NULL for:tree];
  15.         if(resized){
  16.             [scrollView tile]; 
  17.             [scrollView display];
  18.         }
  19.     }
  20.     if(aFlag & UPDATE_TREEVIEW)
  21.         if(aRect)
  22.             [treeView display:aRect :1];
  23.         else 
  24.             [treeView display];
  25.     if(aFlag & UPDATE_TEXTVIEW)
  26.         [textView display];
  27.     if((aFlag & SCROLL_TREEVIEW) && lastSelectedNode){
  28.         [lastSelectedNode getBounds:&scrollRect];
  29.         [treeView scrollRectToVisible:&scrollRect];
  30.     }
  31.     if(aBool)
  32.         [self dirty:YES];
  33.     [window reenableFlushWindow];
  34.     [window flushWindow];
  35.     [window makeFirstResponder:treeView];
  36.     return self;
  37. }
  38.  
  39. - tree
  40. {
  41.     return tree;
  42. }
  43.  
  44. - declareSelection:aNode
  45. {
  46.     id retVal;
  47.     id text;
  48.     int doIt;
  49.  
  50.     retVal = lastSelectedNode;
  51.     if(lastSelectedNode != aNode){
  52.         if(shouldAlertTextSave && !textViewSaved && lastSelectedNode){
  53.             doIt = NXRunAlertPanel("Node Description", "Save ?", "Yes", "No", NULL);
  54.             if(doIt == NX_ALERTDEFAULT)
  55.                 [self changeDescription:self];
  56.             textViewSaved = YES;
  57.         }
  58.         lastSelectedNode = aNode;
  59.         text = [textView docView];
  60.         [text selectAll:self];
  61.         if(aNode){
  62.             [aNode putDescriptionIn:text];
  63.             [[NXApp inspectorManager] inspect:aNode];
  64.             [aNode setSelected:YES];
  65.         } else {
  66.             [text delete:self];
  67.             [[NXApp inspectorManager] inspect:nil];
  68.         }
  69.         [text selectNull];
  70.         if(retVal)
  71.             [retVal setSelected:NO]; 
  72.     }
  73.     return retVal;
  74. }
  75.  
  76. - (float)docScale
  77. {
  78.     return docScale;
  79. }
  80.  
  81. - setDocScale:(float)aScale
  82. {
  83.     docScale = aScale;
  84.     return self;
  85. }
  86.  
  87. - currentNode    
  88. {
  89.     return lastSelectedNode;
  90. }
  91.  
  92. - (BOOL)showMarker
  93. {
  94.     return showMarker;
  95. }
  96.  
  97. - undoManager
  98. {
  99.     return undoManager;
  100. }
  101.  
  102. @end
  103.