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.