This is BBCUI.m in view mode; [Download] [Up]
///////////////////////////////////////////////////////////////////////////////
// FILENAME: BBCUI.m
// SUMMARY: User Interface for a Billiard-Ball Computation Annotation
// SUPERCLASS: Object
// INTERFACE: BBCUI
// PROTOCOLS: <Inspectable>
// AUTHOR: Rohit Khare
// COPYRIGHT: (c) 1994 California Institure of Technology, eText Project
///////////////////////////////////////////////////////////////////////////////
// DESCRIPTION
// Implementation of a shared inspector for BBCs
// Separated out controller from old BilliardView code.
///////////////////////////////////////////////////////////////////////////////
// HISTORY
// 05/29/94: Created.
///////////////////////////////////////////////////////////////////////////////
#import "BBC.h"
#define CONT "Controls"
@implementation BBCUI
// id fileWell;
// id nameField;
// id accelSwitch;
// id editSwitch;
// id pathSwitch;
// id fwdButton;
// id backButton;
// id hresField;
// id vresField;
// id bbcPanel;
// id bbcView;
// id theBBC;
+ new
{
static BBCUI *bbcui = nil;
if (!bbcui) {
bbcui = [[BBCUI alloc] init];
}
return bbcui;
}
- init
{
char buf[MAXPATHLEN];
NXBundle *bundle;
[super init];
bundle = [NXBundle bundleForClass:[BBCUI class]];
if ( [bundle getPath:buf forResource:"BBCUI" ofType:"nib"] ) {
[NXApp loadNibFile:buf owner:self withNames:NO];
} else {
NXLogError("NIB not found: BBCUI");
}
bbcView = [bbcPanel contentView];
[fwdButton setPeriodicDelay:0 andInterval:0.2];
[backButton setPeriodicDelay:0 andInterval:0.2];
return self;
}
- free {return self;}
- (const NXAtom *) types:sender
{
static NXAtom types[2] = {NULL, NULL};
if (!types[0]) {
types[0] = NXUniqueString(CONT);
}
return types;
}
- (char *) inspectorTitle
{
return (char *) NXUniqueString("Billiard-Ball Computation");
}
- resignInspector: (View *) oldInspector ofType: (char *) type :sender
{
return self;
}
- activateInspector: (View *) newInspector ofType: (char *) type :sender
{
return self;
}
- inspectorForType:(char *) type :sender
{
if(!strcmp(type,CONT))
return bbcView;
else NXLogError("Massive Inspector Failure: Asked BBCUI for: %s", type);
return bbcView;
}
- setName:sender {[theBBC setName:NXUniqueString([sender stringValue])]; return self;}
- setShowPath:sender {[theBBC setShowPath:[pathSwitch state]]; return self;}
- setAccelerated:sender {[theBBC setAccelerated:![accelSwitch state]]; return self;}
- setEditable:sender {[theBBC setEditable:[editSwitch state]]; return self;}
- clickFwd:sender{[theBBC stepForward]; return self;}
- clickBack:sender{[theBBC stepBackward]; return self;}
- setRes:sender{[theBBC setRes:[hresField intValue] :[vresField intValue]]; return self;}
- setBBC:newBBC
{
theBBC = newBBC;
return [self load];
}
- bbc {return theBBC;}
- load
{
[nameField setStringValue:[theBBC name]];
[accelSwitch setState:![theBBC isAccelerated]];
[pathSwitch setState:[theBBC doesShowPath]];
[editSwitch setState:[theBBC isEditable]];
[hresField setIntValue:[theBBC hres]];
[vresField setIntValue:[theBBC vres]];
return self;
}
@endThese are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.