This is TreeButton.m in view mode; [Download] [Up]
//
// TreeButton.m -- a class to attach to tree data structures
// Written by Don Yacktman (c) 1993 by Don Yacktman.
// All rights reserved.
//
// I doubt this will be useful for much beyond what it does in the demo
// program supplied in this directory.
//
// You may use and copy this class freely as long as you
// comply with the following terms:
// (1) If you use this class in an application which you
// intend to sell commercially, as shareware, or otherwise,
// you may only do so with express written permission
// of the author. Use in applications which will
// be distributed free of charge is encouraged.
// (2) You must include the source code to this object and
// all accompanying documentation with your application,
// or provide it to users if requested, free of charge.
// (3) Do not remove the author's name or any of the
// copyright notices
//
#import <misckit/MiscString.h>
#import "TreeButton.h"
#import "TreeButtonCell.h"
#import "NamedTree.h"
@implementation TreeButton
static id treeButtonCell;
+ initialize
{
if (self == [TreeButton class]) {
treeButtonCell = [TreeButtonCell class]; // default cell class
}
return self;
}
+ setCellClass:classId
{
treeButtonCell = classId;
return self;
}
- initFrame:(const NXRect *)frameRect
{
id oldCell;
[super initFrame:frameRect];
oldCell = [self setCell:[[[treeButtonCell alloc] init] setParent:self]];
[oldCell free];
return self;
}
- wasSelected:sender
{ // message is sent here by the Cell if the user clicked the button
if ([myTreeNode respondsTo:@selector(activateNode:)])
[myTreeNode activateNode:self];
return self;
}
- treeNode { return myTreeNode; }
- setTreeNode:node { myTreeNode = node; return self; }
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.