This is MoonIconView.m in view mode; [Download] [Up]
/* MoonIconView.m
* Part of the Moon application for the NeXT computer.
* Author: Geoffrey S. Knauth
* Date: January 4, 1992
*
* Permission to copy this program is hereby granted under the terms
* of the Free Software Foundation's GNU General Public License.
*/
#import <dpsclient/psops.h> /* PSsetgray */
#import "MoonIconView.h"
#import "all.h"
@implementation MoonIconView
- initFrame :(const NXRect *)frameRect
{
[super initFrame:frameRect];
[self setOpaque:YES];
return self;
}
- drawSelf :(const NXRect *)rects :(int)rectCount
{
NXPoint center = {NX_WIDTH(&bounds)/2., NX_HEIGHT(&bounds)/2.};
float yradius = NX_HEIGHT(&bounds)/2.-2.;
float xradius = yradius;
PSsetgray(NX_LTGRAY);
NXRectFill(&bounds);
/* draw the image of the moon */
PSsetgray(NX_WHITE);
PSarc(center.x, center.y, yradius, 0., 360.);
PSfill();
/* now draw the shadow over that part hidden from the sun */
DrawMoonShadow([self phase], ¢er, xradius, yradius, NX_BLACK);
return self;
}
- (float) phase
{
return phase;
}
- setPhase :(float) val
{
phase = val;
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.