This is TestBed.m in view mode; [Download] [Up]
/* MiscTreeBrowserController.m
*
*/
#import <stdio.h>
#import <stdlib.h>
#import <appkit/Font.h>
#import <misckit/MiscTreeBrowser.h>
#import <misckit/MiscTreeBrowserCell.h>
#import "_MiscTreeBrowserNode.h"
#import "TestBed.h"
@implementation MiscTreeBrowserController
- init
{
[super init];
nodeC = 0;
return self;
}
- free
{
return [super free];
}
char *childString = "Child %d";
char *sibString = "Sibling %d";
char *nodeString = "Node %d";
/*(
Initialise MiscTreeBrowser.
)*/
- appDidInit:sender;
{
id root = [[_MiscTreeBrowserNode alloc] initWithString:"Root" parent:nil];
// printf("App did init. TreeBrowser is 0x%8x.\n", (unsigned)treeBrowser);
// add an initial root node
[treeBrowser addNode:root toParent:nil after:nil];
[treeBrowser setFont:[Font newFont:"Helvetica"
size:12
style:0
matrix:NX_FLIPPEDMATRIX]];
[textf setStringValue:nodeString];
return self;
}
/*(
Add a new child node or the selected cell programmatically
)*/
- addChild:sender
/*"
Add a child to the selected node (if any). Example showing how to do it programmatically
"*/
{
char *str = [self getString:childString];
id newNode = [[_MiscTreeBrowserNode alloc] initWithString:str parent:nil];
[treeBrowser addChild:newNode];
return self;
}
- addSibling:sender
/*"
Add a sibling to the selected node (if any). Example showing how to do it programmatically
"*/
{
char *str = [self getString:sibString];
id newNode = [[_MiscTreeBrowserNode alloc] initWithString:str parent:nil];
[treeBrowser addSibling:newNode];
return self;
}
- deleteSelected:sender
/*"
Delete selected node (if any). Example showing how to do it programmatically
"*/
{
[treeBrowser removeNode:[treeBrowser selectedNode]];
return self;
}
- (char *)getString:(char *)defstr
{
static char *theString = NULL;
const char *guiString = [textf stringValue];
if (!theString) theString = (char *)malloc(1024);
nodeC++;
sprintf(theString, (guiString ? guiString : defstr), nodeC);
return theString;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.