This is WoodDoc_TreeDelegate.m in view mode; [Download] [Up]
#import "wooddoc.h" @implementation WoodDoc (TreeDelegate) static BOOL shouldAlertTextSave = YES; - updateViewsDirty:(BOOL)aBool rect:(NXRect *)aRect flag:(int)aFlag { BOOL resized; NXRect scrollRect; [window disableFlushWindow]; if(aFlag & CHECK_RESIZE){ resized = [treeView checkResize:NULL for:tree]; if(resized){ [scrollView tile]; [scrollView display]; } } if(aFlag & UPDATE_TREEVIEW) if(aRect) [treeView display:aRect :1]; else [treeView display]; if(aFlag & UPDATE_TEXTVIEW) [textView display]; if((aFlag & SCROLL_TREEVIEW) && lastSelectedNode){ [lastSelectedNode getBounds:&scrollRect]; [treeView scrollRectToVisible:&scrollRect]; } if(aBool) [self dirty:YES]; [window reenableFlushWindow]; [window flushWindow]; [window makeFirstResponder:treeView]; return self; } - tree { return tree; } - declareSelection:aNode { id retVal; id text; int doIt; retVal = lastSelectedNode; if(lastSelectedNode != aNode){ if(shouldAlertTextSave && !textViewSaved && lastSelectedNode){ doIt = NXRunAlertPanel("Node Description", "Save ?", "Yes", "No", NULL); if(doIt == NX_ALERTDEFAULT) [self changeDescription:self]; textViewSaved = YES; } lastSelectedNode = aNode; text = [textView docView]; [text selectAll:self]; if(aNode){ [aNode putDescriptionIn:text]; [[NXApp inspectorManager] inspect:aNode]; [aNode setSelected:YES]; } else { [text delete:self]; [[NXApp inspectorManager] inspect:nil]; } [text selectNull]; if(retVal) [retVal setSelected:NO]; } return retVal; } - (float)docScale { return docScale; } - setDocScale:(float)aScale { docScale = aScale; return self; } - currentNode { return lastSelectedNode; } - (BOOL)showMarker { return showMarker; } - undoManager { return undoManager; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.