This is WoodDoc_OOE.m in view mode; [Download] [Up]
#import "wooddoc.h" #import "ScrollViewDeluxeForOOE.h" @implementation WoodDoc (OOE_Server) - connectToClient:client; { id connectionToClient; const char *path = NULL; isOOEServer = YES; theOOEClient = client; connectionToClient = [client connectionForProxy]; [connectionToClient registerForInvalidationNotification:self]; [client setProtocolForProxy:@protocol(OOE_ClientInterface)]; path = [client OOE_documentPath:self]; if(path) theOOEClientPath = NXCopyStringBuffer(path); [[scrollView theOOEButton] setEnabled:YES]; return self; } - senderIsInvalid:sender; { theOOEClient = nil; [[scrollView theOOEButton] setEnabled:NO]; return self; } - (int)OOE_isDocEdited; { return [window isDocEdited]; } - (int)OOE_orderDocumentFront:sender; { [NXApp activateSelf:YES]; [window makeKeyAndOrderFront:nil]; return 1; } - (int)OOE_getSize:(NXSize *)aSize; { NXRect aRect; [self calculateBoundingBox:&aRect]; NXInsetRect(&aRect, -5, -5); *aSize = aRect.size; return 1; } - calculateBoundingBox:(NXRect *)aRect; { float lh,lw; [tree getTreeBounds:aRect lowerWidth:&lw lowerHeight:&lh]; return self; } - (void)OOE_closeDocument:sender; { isOOEServer = NO; [self clean:self]; [self close:self]; return; } - (int)OOE_document:client savedAs:(const char *)path; { if(theOOEClientPath != NULL) NX_FREE(theOOEClientPath); if(path == NULL) path = "UNTITLED"; theOOEClientPath = NXCopyStringBuffer(path); return 1; } - (int)OOE_provideData:sender; { id pboard = nil; pboard = [Pasteboard newName:OOE_PASTEBOARD]; [self declareOOEPasteboard:pboard]; [self writeDataToPasteboard:pboard]; [self writePostScriptToPasteboard:pboard]; [window setDocEdited:NO]; return 1; } - orderClientDocumentFront:sender; { [theOOEClient OOE_orderClientDocumentFront:self]; return self; } - (BOOL)isOOEServer { return isOOEServer; } - setTitle_OOE:sender; { char buf[MAXPATHLEN+1]; if(theOOEClient == nil && isOOEServer) strcpy(buf, "Embedded: **** DEAD EDITOR ****"); else if(theOOEClientPath == NULL) strcpy(buf, "Embedded: UNTITLED"); else sprintf(buf, "Embedded: %s", theOOEClientPath); [[window contentView] ooeStatusChanged:self]; // OOE 2.0 [window setTitle:buf]; return self; } - docWillClose_OOE:sender; { if(theOOEClient == nil) return self; if(!isOOEServer) return self; [[theOOEClient connectionForProxy] unregisterForInvalidationNotification:self]; NX_DURING [theOOEClient OOE_documentWillClose:self]; NX_HANDLER NXLogError("DOC %s, OOE: Error %d for " "'OOE_documentWillClose:'", [self name], NXLocalHandler.code); NX_ENDHANDLER [NXConnection removeObject:self]; return self; } - free_OOE; { NX_DURING //[theOOEClient free]; // 940824 // causes timeout // why? theOOEClient = nil; NX_HANDLER NXLogError("ERROR, DOC, OOE: Error %d when " "freeing theOOEClient.", NXLocalHandler.code); NX_ENDHANDLER if(theOOEClientPath != NULL) { NX_FREE(theOOEClientPath); theOOEClientPath=NULL; } return self; } - updateOOETarget:sender; { [theOOEClient OOE_documentWasChanged:self]; [theOOEClient OOE_orderClientDocumentFront:self]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.