This is MyApp.m in view mode; [Download] [Up]
//
// Copyright 1995 (c) Icebox Software Manufactory, Inc. All Rights Reserved.
//
#import "MyApp.h"
#import "LineView.h"
#define BORDER ( 2 )
@implementation MyApp
- appDidInit:sender
{
NXRect appIconFrame;
NXRect lineViewRect;
// Get the appIcon (for later use too), and then
// get the sucker's frame to use to get the content
// view of the appIcon defined by its style.
appIcon = [NXApp appIcon];
[appIcon getFrame:&appIconFrame];
[Window getContentRect:&lineViewRect
forFrameRect:&appIconFrame
style:[appIcon style]];
// Adjust the size and width, size by the BORDER
// and the width and height by the BORDER * 2
NX_X(&lineViewRect) = BORDER;
NX_Y(&lineViewRect) = BORDER;
NX_WIDTH(&lineViewRect) -= BORDER * 2;
NX_HEIGHT(&lineViewRect) -= BORDER * 2;
lineView = [[LineView alloc] initFrame:&lineViewRect];
if ( ! lineView ) {
NXLogError("Can't alloc an instance of 'LineView' class");
[self terminate:nil];
}
[[appIcon contentView] addSubview:lineView];
// Set up the view with some an initial state that represents
// the state of the nib file control widgets.
///
[lineView lineColor:[lineColorWell color]];
[lineView backingColor:[backingColorWell color]];
[lineView lineWidth:[widthSlider floatValue]];
[lineView speed:[speedSlider floatValue]];
[lineView numberOfLines:[numberOfLinesSlider intValue]];
// Crank up the view.
[lineView start];
return ( self );
}
- appWillTerminate:sender
{
[lineView stop];
return ( self ); // Return non-nil to continue the termination.
}
// Action Methods
- lineColor:sender
{
[lineView lineColor:[sender color]];
return ( self );
}
- backingColor:sender
{
[lineView backingColor:[sender color]];
return ( self );
}
- lineWidth:sender
{
[lineView lineWidth:[sender floatValue]];
return ( self );
}
- speed:sender
{
[lineView speed:[sender floatValue]];
return ( self );
}
- numberOfLines:sender
{
[lineView numberOfLines:[sender intValue]];
return ( self );
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.