This is EditFormatter.m in view mode; [Download] [Up]
// ------------------------------------------------------------------------------------- // EditFormatter.h // This software is without warranty of any kind. Use at your own risk. // ------------------------------------------------------------------------------------- #import <objc/objc.h> #import <appkit/appkit.h> #import <mach/mach.h> #import <dbkit/dbkit.h> #import "DataTable.h" #import "EditFormatter.h" // ------------------------------------------------------------------------------------- // NXRect abbreviations #define X origin.x #define Y origin.y #define W size.width #define H size.height // ------------------------------------------------------------------------------------- // MyTextFieldCell @interface _MyTextFieldCell : TextFieldCell { float cellTextGray; } @end @implementation _MyTextFieldCell - setEditable:(BOOL)flag { return [super setEditable:flag]; } - setTextAttributes:textObj { [super setTextAttributes:textObj]; [textObj setTextGray:cellTextGray]; // [textObj setBackgroundGray:cFlags1.bezeled ? NX_WHITE : NX_LTGRAY]; // [textObj setTextColor:NXConvertGrayToColor([self isEnabled] ? NX_BLACK : NX_DKGRAY)]; // [textObj setBackgroundColor:NXConvertGrayToColor(cFlags1.bezeled ? NX_WHITE : NX_LTGRAY)]; return textObj; } - setTextGray:(float)aGray { cellTextGray = aGray; return self; } @end // ------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------- @implementation EditFormatter // ------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------- // initialization /* init */ - init { [super init]; [drawCell free]; // free old drawCell drawCell = [[_MyTextFieldCell allocFromZone:[self zone]] initTextCell:NULL]; [drawCell setTextGray:NX_BLACK]; [drawCell setBezeled:NO]; [drawCell setBordered:NO]; [drawCell setBackgroundTransparent:YES]; [drawCell setEditable:NO]; return self; } // ------------------------------------------------------------------------------------- // get value - getValueAt:(unsigned int)row :(unsigned int)col withAttributes:(id <DBTableVectors>)ra :(id <DBTableVectors>)ca usePositions:(BOOL)ur :(BOOL)uc; { u_int r = ur? row : (u_int)[ra identifier]; u_int c = uc? col : (u_int)[ca identifier]; [super getValueAt:row:col withAttributes:ra:ca usePositions:ur:uc]; [drawCell setTextGray:([dataSource verifyValueAt:r:c]?NX_BLACK:NX_DKGRAY)]; return value; } // ------------------------------------------------------------------------------------- @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.