This is RZTextToken.m in view mode; [Download] [Up]
/*
* RZTextToken - support object for the RZBrowserCell that represents
* a piece of text with a particular font and color
*
* You may freely copy, distribute and reuse the code in this example.
* This code is provided AS IS without warranty of any kind, expressed
* or implied, as to its fitness for any particular use.
*
* Copyright 1995 Ralph Zazula (rzazula@next.com). All Rights Reserved.
*
*/
#import "RZTextToken.h"
#import "RZSimpleString.h"
#import <appkit/NXImage.h>
#import <stdio.h>
#import <stdarg.h>
#define FONT_STYLE_NORM 0
#define FONT_STYLE_BOLD 1
#define FONT_STYLE_ITALIC 2
#define FONT_STYLE_BOLD_ITALIC 3
#define DEFAULT_FONT FONT_STYLE_NORM
#define DEFAULT_COLOR NX_BLACK
@implementation RZTextToken
- init
{
return [self notImplemented:_cmd];
}
- initText:(const char *)format at:(unsigned)i,...
{
va_list args;
static char buf[1024];
va_start(args, format);
vsprintf(buf, format, args);
return [self initText:buf at:i font:DEFAULT_FONT color:DEFAULT_COLOR];
}
- initText:(const char *)format at:(unsigned)i font:(char)font color:(char)color,...
{
va_list args;
static char buf[1024];
va_start(args, format);
vsprintf(buf, format, args);
return [self initData:buf at:i isText:YES font:font color:color];
}
- initImage:(const char *)d at:(unsigned)i
{
return [self initData:d at:i isText:NO font:0 color:0];
}
- initData:(const char *)d at:(unsigned)i isText:(BOOL)isText font:(char)font color:(char)color
{
if(self = [super init]) {
if(isText) {
data = [[RZSimpleString alloc] initWith:d];
} else {
data = [NXImage findImageNamed:d];
if(!data) {
/* see if it's a filename */
data = [[NXImage alloc] init];
if(![data loadFromFile:d]) {
data = [data free];
}
}
}
if(data) {
index = i;
_flags.text = isText;
_flags.font = font;
_flags.color = color;
}
}
return self;
}
- (unsigned)position { return index; }
- data { return data; }
- (BOOL)isText { return _flags.text; }
- (char)font { return _flags.font; }
- (char)color { return _flags.color; }
- write:(NXTypedStream *)ts
{
[super write:ts];
NXWriteTypes(ts, "i@i", &index, &data, _flags);
return self;
}
- read:(NXTypedStream *)ts
{
[super read:ts];
NXReadTypes(ts, "i@i", &index, &data, _flags);
return self;
}
@end
@implementation RZTextToken(RZSortableObjects)
- (unsigned)sortIndex
{
return index;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.