ftp.nice.ch/pub/next/developer/resources/classes/RuledViews.s.tar.gz#/RuledViews/BrainRulers/CrosshairView.m

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

#import "CrosshairView.h"
#import <dpsclient/psops.h>

@implementation CrosshairView

- drawSelf:(NXRect *)rects :(int)rectCount
{
	float	x0,y0,x1,y1,yScale;
	x0 = rects[0].origin.x;
	y0 = rects[0].origin.y;
	x1 = x0 + rects[0].size.width;
	y1 = y0 + rects[0].size.height;
	
	PSsetgray(NX_BLACK);
	PSsetlinewidth(0.0);

	yScale = bounds.size.height / bounds.size.width;
	PSscale(1,yScale);

	PSarc(bounds.size.width/2, bounds.size.height/yScale/2, bounds.size.width/2, 0,360);
	PSclip();
	PSmoveto(0,0);
	PSlineto(bounds.size.width, bounds.size.height/yScale);
	PSmoveto(0, bounds.size.height/yScale);
	PSlineto(bounds.size.width, 0);
	PSmoveto(bounds.size.width/2,0);
	PSrlineto(0, bounds.size.height/yScale);
	PSmoveto(0, bounds.size.height/yScale/2);
	PSrlineto(bounds.size.width, 0);
	PSstroke();
	
	return self;
}

@end

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