/*
 * NeXThextris Copyright 1994 Mark Gritter, mgritter@gac.edu
 *
 * hextris Copyright 1990 David Markley, dm3e@+andrew.cmu.edu, dam@cs.cmu.edu
 *
 * Permission to use, copy, modify, and distribute, this software and its
 * documentation for any purpose is hereby granted without fee, provided that
 * the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation, and that the name of the copyright holders be used in
 * advertising or publicity pertaining to distribution of the software with
 * specific, written prior permission, and that no fee is charged for further
 * distribution of this software, or any modifications thereof.  The copyright
 * holder make no representations about the suitability of this software for
 * any purpose.  It is provided "as is" without express or implied warranty.
 *
 * THE COPYRIGHT HOLDER DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
 * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 * DATA, PROFITS, QPA OR GPA, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

/* This is just a custom view for displaying the hexes in */

#import "HextrisView.h"
#import "HextrisControl.h"
#import "hex.h"

@implementation HextrisView

- (BOOL)acceptsFirstResponder {
	return YES;
}

- initFrame:(const NXRect *)frameRect {
	[super initFrame:frameRect];
	[self setFlipped:YES];
	return self;
}

- drawHexAt:(int)row :(int)column :(int)fill :(int)type {
	[self lockFocus];
	PSdrawHex(row, column, fill, type);
	[self unlockFocus];
	return self;
}


- drawSelf:(const NXRect *)rects :(int)rectCount {
	[super drawSelf:rects:rectCount];
	return self;
}

- clear {
	[self lockFocus];
	PSeraseRect(bounds.size.width, bounds.size.height);
	[self unlockFocus];
	[self update];
	return self;
}

- keyDown:(NXEvent *)theEvent {
	[controller keyDown:theEvent];
	return self;
}

@end
