
/* Generated by Interface Builder */

#import "TrafficLightView.h"
#import	"cards.h"
#import	"cheap_strings.h"
#import	"draw_ball.h"
#import	<appkit/graphics.h>
#import	<assert.h>

												// These data structures specify circle information to draw
												//	the read and green lights and two smaller balls that depict
												//	the traffic light lit.  For example, the roll card has the stop
												//	light drawn in black the the green light in light gray.  The balls
												//	are therefore drawn in light gray.  The stop light draws the
												//	green light in black and the red light in dark gray.  The balls
												//	are therefore drawn in dark gray.
	float	redLight[]		= { 40 + 10.0,       90 + 10.0, ( 18 / 2 ) },
			greenLight[]	= { 40 + 10.0,       40 + 10.0, ( 18 / 2 ) },
			ulBall[]		= { 9  +  6.1090,   130 +  6.1090,  ( 11 / 2 ) },
			lrBall[]		= { 80 +  6.1090,     9 +  6.1090,  ( 11 / 2 ) };

@implementation TrafficLightView


- init
{


	[ super init ];
	bottomFaceBitmap = 	[[ CardImage allocFromZone:cardZone ] initFromFile:TRAFFIC_LIGHT_TEMPLATE_BOTTOM_FACE ];
	assert( bottomFaceBitmap );
	
	return self;
}


- drawSelf:( const NXRect * )rects :( int )rectCount
{


	assert( label );
	[ super drawSelf:rects :rectCount ];
	if( !showTopFaceFlag ) {
		float	nameBox[] = { 52, 129, 42, 14 };
		
		draw_ball( redLightColor,		redLight );
		draw_ball( greenLightColor,		greenLight );
		draw_ball( ballAndLabelColor,	ulBall );
		draw_ball( ballAndLabelColor,	lrBall );
		draw_string( nameBox, ballAndLabelColor, 14.0, label );
	}
	
	return self;
}



@end
