This is DemoView.m in view mode; [Download] [Up]
#import "DemoView.h" #import "EDBOutlet.h" #import "EDBConnector.h" @implementation DemoView - initFrame:(const NXRect *)frameRect { EDBOutlet *outlet; [super initFrame:frameRect]; outlets = [[List alloc] initCount:4]; outlet = [[EDBOutlet alloc] init]; [outlet setOutletName:NXUniqueString("normalOutlet")]; [outlet setIsTarget:NO]; [outlet setMultiUse:NO]; [outlets addObject:outlet]; outlet = [[EDBOutlet alloc] init]; [outlet setOutletName:NXUniqueString("multiUseOutlet")]; [outlet setIsTarget:NO]; [outlet setMultiUse:YES]; [outlets addObject:outlet]; outlet = [[EDBOutlet alloc] init]; [outlet setOutletName:NXUniqueString("targetOutlet")]; [outlet setIsTarget:YES]; [outlet setMultiUse:NO]; [outlets addObject:outlet]; outlet = [[EDBOutlet alloc] init]; [outlet setOutletName:NXUniqueString("mUseAndTarget")]; [outlet setIsTarget:YES]; [outlet setMultiUse:YES]; [outlets addObject:outlet]; return self; } - drawSelf:(const NXRect *)rect:(int)count { NXRect boundRect; [super drawSelf:rect:count]; [self getBounds:&boundRect]; PSsetgray(NX_WHITE); NXRectFill(&boundRect); PSsetgray(NX_BLACK); PSrectstroke(NX_X(&boundRect),NX_Y(&boundRect)+1, NX_WIDTH(&boundRect)-1,NX_HEIGHT(&boundRect)-1); return self; } - read:(NXTypedStream *)stream { [super read:stream]; outlets = NXReadObject(stream); return self; } - write:(NXTypedStream *)stream { [super write:stream]; NXWriteObject(stream,outlets); return self; } - (const char *)getConnectInspectorClassName { return "EDBConnectInspector"; } - (List *)getOutlets { return outlets; } - establishEDBConnection:connection // called for outlets multiUseOutlet, // targetOutlet and // multiUseAndTargetOutlet, because // there is no corresponding method // setXxx:. { printf("establishingConnection: outletName=%s, selName=%s, sequence=%hd\n", [connection outletName],[connection selName],[connection sequence]); // Here you could put [connection destination] into a list of destinations. // [connection sequence] allows you to perserve ordering. return self; } - setNormalOutlet:sender { printf("Setting normal Outlet\n"); return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.