This is MiscDistInspector.m in view mode; [Download] [Up]
// // MiscDistInspector.m -- Inspector object for MiscDistributor. // // Written by Don Yacktman. Copyright 1994 by Don Yacktman. // Version 1.0 All rights reserved. // // This notice may not be removed from this source code. // // This object is included in the MiscKit by permission from the author // and its use is governed by the MiscKit license, found in the file // "LICENSE.rtf" in the MiscKit distribution. Please refer to that file // for a list of all applicable permissions and restrictions. // #import "MiscDistInspector.h" #import "MiscDistributorPrivate.h" #import "_MiscDistributorConnection.h" @implementation MiscDistributor(IBSupport) - (const char *)getInspectorClassName { return "MiscDistributorInspector"; } - (NXImage *)getIBImage { id idBundle; id idImage; char buf[MAXPATHLEN + 1]; idBundle = [NXBundle bundleForClass:[MiscDistributorInspector class]]; [idBundle getPath:buf forResource:"MiscDistributor" ofType:"tiff"]; idImage = [[NXImage alloc] initFromFile:buf]; return idImage; } @end @implementation MiscDistributorInspector - init { char buf[MAXPATHLEN + 1]; id bundle; [super init]; bundle = [NXBundle bundleForClass:[MiscDistributor class]]; [bundle getPath:buf forResource:"MiscDistributorInspector" ofType:"nib"]; [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]]; return self; } - (BOOL)wantsButtons { return NO; } - revert:sender { connections = [object _connectionList]; [self setUpMatrix]; [self selectRow:0 notify:YES]; return [super revert:sender]; } - ok:sender { return [super ok:sender]; } - setUpMatrix { int i; // populate matrix with connections' names [connectionMatrix renewRows:[connections count] cols:1]; for (i=0; i<[connections count]; i++) { [[connectionMatrix cellAt:i :0] setTitle:[[connections objectAt:i] connectionName]]; } [connectionMatrix sizeToCells]; [connectionMatrix display]; return self; } - editName { [window makeFirstResponder:connectionNameText]; [connectionNameText selectText:self]; return self; } - selectRow:(int)i notify:(BOOL)flag { [connectionMatrix selectCellAt:i :0]; [self selectionChanged:connectionMatrix]; [connectionMatrix display]; [self editName]; return self; } - selectionChanged:sender { // change values of name/dir widgets to reflect selected connection selObject = [connections objectAt:[connectionMatrix selectedRow]]; [connectionNameText setStringValue:[selObject connectionName]]; if ([selObject direction] == MiscIn) { [connectionDirMatrix selectCellAt:0 :0]; } else if ([selObject direction] == MiscOut) { [connectionDirMatrix selectCellAt:0 :1]; } else if ([selObject direction] == MiscInout) { [connectionDirMatrix selectCellAt:0 :2]; } [self editName]; return self; } - addConnection:sender { id newConnection = [[_MiscDistributorConnection alloc] init]; // add a connection to the list and matrix, and select it in the matrix [connections addObject:newConnection]; [newConnection setConnectionName:"UNTITLED"]; [newConnection setDirection:MiscInout]; [self setUpMatrix]; [self selectRow:([connections count] - 1) notify:YES]; return self; } - changeConnection:sender { int theRow = [connectionMatrix selectedRow]; // take values of name/dir widgets and change selected connection switch ([connectionDirMatrix selectedCol]) { case 0 : [selObject setDirection:MiscIn]; break; case 1 : [selObject setDirection:MiscOut]; break; case 2 : [selObject setDirection:MiscInout]; break; default: [selObject setDirection:MiscIn]; break; } [selObject setConnectionName:[connectionNameText stringValue]]; [self setUpMatrix]; [self selectRow:theRow notify:NO]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.