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.