ftp.nice.ch/peanuts/GeneralData/Documents/books/AlexNeXTSTEPSource.tar.gz#/NSProgramming/Chapter8_Prefs/Money/SwitchView.m

This is SwitchView.m in view mode; [Download] [Up]

#import <appkit/appkit.h>
#import "SwitchView.h"

@implementation SwitchView

- drawSelf:(const NXRect *)rects :(int)rectCount
{
	// erase the entire area
	PSsetlinewidth(1.0);
	PSsetgray(NX_LTGRAY);
	NXRectFill(&bounds);

	// draw upper line at view's boundary
	PSsetgray(NX_DKGRAY);
	PSmoveto(bounds.origin.x,
		bounds.size.height);
	PSrlineto(bounds.size.width, 0);
	PSstroke();

	// draw lower line for bezel effect
	PSsetgray(NX_WHITE);
	PSmoveto(bounds.origin.x,
		bounds.size.height - 1.0);
	PSrlineto(bounds.size.width, 0);
	PSstroke();

	return self;
}

- switchToView:newView
{
	NXRect rect;

	// remove the old view
	[accessoryView removeFromSuperview];

	// add the new subview
	accessoryView = newView;
	[self addSubview:accessoryView];

	// center the view
	[accessoryView getFrame:&rect];	
		rect.origin.y = bounds.origin.y +
		(bounds.size.height -
	rect.size.height) / 2.0;
	rect.origin.x = bounds.origin.x +
		(bounds.size.width  -
		rect.size.width) / 2.0;
	[accessoryView moveTo:rect.origin.x
		:rect.origin.y];

	// display ourselves -- display
	// sends drawSelf:: to first erase the
	// switchview and then ask the subview
	// (the accessoryView) to display itself	
	[self display];
	return self;
}

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.