This is DeckView.m in view mode; [Download] [Up]
// DeckView.m
// Part of Risk by Mike Ferris
#import "DeckView.h"
#import <objc/List.h>
#import <appkit/TextFieldCell.h>
#import <appkit/Text.h>
#import <appkit/Font.h>
#import "Card.h"
#import "CardManager.h"
@implementation DeckView
+ initialize
{
if (self == [DeckView class]) {
[self setVersion:1];
}
return self;
}
- initFrame:(const NXRect *)f
{
[super initFrame:f];
myTextCell = [[TextFieldCell allocFromZone:[self zone]] init];
[myTextCell setBackgroundGray:NX_LTGRAY];
[myTextCell setBezeled:NO];
[myTextCell setBordered:NO];
[myTextCell setFont:[Font newFont:"Times-Roman" size:10.0]];
[myTextCell setAlignment:NX_LEFTALIGNED];
[myTextCell setEditable:NO];
[myTextCell setSelectable:NO];
[myTextCell setTextGray:NX_BLACK];
return self;
}
- free
{
[myTextCell free];
return [super free];
}
- setDeck:anObject
{
myDeck = anObject;
return self;
}
#define X_INIT 6.0
#define Y_INIT 7.0
#define RECTWIDTH 20.0
#define RECTHEIGHT 14.0
- drawSelf:(const NXRect *)rects :(int)rectCount
{
int listCount, i;
NXRect f;
NXDrawGrayBezel(&bounds, NULL);
f.origin.x = X_INIT;
f.origin.y = Y_INIT;
f.size.width = RECTWIDTH;
f.size.height = RECTHEIGHT;
if (myDeck==nil) {
f.size.width = bounds.size.width-(X_INIT*2);
[myTextCell setStringValue:"No Deck"];
[myTextCell drawSelf:&f inView:self];
return self;
}
listCount=[myDeck count];
if (listCount==0) {
f.size.width = bounds.size.width-(X_INIT*2);
[myTextCell setStringValue:"List Empty"];
[myTextCell drawSelf:&f inView:self];
return self;
}
for (i=0;i<listCount;i++) {
[myTextCell setIntValue:[[myDeck objectAt:i] countryNum]];
[myTextCell drawSelf:&f inView:self];
f.origin.x += RECTWIDTH;
}
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.