This is ColCell.m in view mode; [Download] [Up]
/*
* For legal stuff see the file COPYRIGHT
*/
#import "ColCell.h"
/* Font info */
static NXCoord ascender, descender, lineHeight;
@implementation ColCell
- (void)setCellData:(id <ColCellData>)obj
{
[self setStringValue:""];
data = obj;
}
- (id <ColCellData>)cellData
{
return data;
}
- setFont:fontObj
{
[super setFont:fontObj];
/*
* save this info so we don't have to look it up every time we draw
* Note: support for a TextCell is a font object
*/
NXTextFontInfo(support, &ascender, &descender, &lineHeight);
return self;
}
/*
* Override the drawing method to put the data in two columns
*/
- drawInside:(const NXRect *)cellFrame inView:controlView
{
NXCoord baseX, baseY;
ColDesc *colDesc = [data colDesc];
baseX = NX_X(cellFrame);
baseY = NX_Y(cellFrame) + lineHeight - descender;
[super drawInside:cellFrame inView:controlView];
PSsetgray(NX_BLACK);
if ( colDesc ) {
for ( ; colDesc->method; colDesc++ ) {
PSmoveto( baseX + colDesc->offset, baseY );
PSshow( (const char *)[(id)data perform:colDesc->selector] );
}
}
return self;
}
- copyFromZone:(NXZone *)zone
{
ColCell *copy;
copy = [super copyFromZone:zone];
copy->data = data;
return copy;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.