This is RiskNeighborView.m in view mode; [Download] [Up]
//
// This file is a part of Risk by Mike Ferris.
//
#import "Risk.h"
RCSID ("$Id: RiskNeighborView.m,v 1.1.1.1 1997/12/09 07:19:18 nygard Exp $");
#import "RiskNeighborView.h"
#import "RiskNeighbor.h"
#import "SNUtility.h"
#define RiskNeighborView_VERSION 1
@implementation RiskNeighborView
+ (void) initialize
{
if (self == [RiskNeighborView class])
{
[self setVersion:RiskNeighborView_VERSION];
}
}
//----------------------------------------------------------------------
- initWithFrame:(NSRect)frameRect
{
[super initWithFrame:frameRect];
datasource = nil;
return self;
}
//----------------------------------------------------------------------
- (void) dealloc
{
SNRelease (datasource);
[super dealloc];
}
//----------------------------------------------------------------------
- (void) drawRect:(NSRect)rect
{
NSArray *neighborArray;
NSEnumerator *neighborEnumerator;
RiskNeighbor *riskNeighbor;
NSPoint p1, p2;
float xdelta;
float xthresh;
[super drawRect:rect];
//NSLog (@"datasource: %@", datasource);
if (datasource != nil && [datasource respondsToSelector:@selector (riskNeighbors)] == YES)
{
xthresh = [self bounds].size.width / 2;
PSsetlinewidth (3);
neighborArray = [datasource riskNeighbors];
neighborEnumerator = [neighborArray objectEnumerator];
while (riskNeighbor = [neighborEnumerator nextObject])
{
//NSLog (@"neighbor: %@", riskNeighbor);
p1 = [[[riskNeighbor country1] countryShape] centerPoint];
p2 = [[[riskNeighbor country2] countryShape] centerPoint];
//NSLog (@"%f,%f -> %f,%f", p1.x, p1.y, p2.x, p2.y);
xdelta = p1.x - p2.x;
if (xdelta < -xthresh || xdelta > xthresh)
[[NSColor blueColor] set]; // Try to make the Alaska-Kamchatka link stand out
else
[[NSColor redColor] set];
PSmoveto (p1.x, p1.y);
PSlineto (p2.x, p2.y);
PSstroke();
}
}
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.