This is TestManager.m in view mode; [Download] [Up]
// TestManager.m
//
//
// You may freely copy, distribute, and reuse the code in this example.
// NeXT disclaims any warranty of any kind, expressed or implied, as to its
// fitness for any particular use.
#import "TestManager.h"
#import "EmbeddedGraphic.h"
@implementation TestManager
- init
{
self = [super init];
[EmbeddedGraphic class];//hack to insure text knows right rtf directives
return self;
}
- addGraphic:sender
{
id theEG;
int successful;
static const char *const types[] = {"eps","tiff", NULL};
successful = [[OpenPanel new] runModalForTypes:types];
if (!successful) return self;
theEG = [[EmbeddedGraphic alloc] init];
[theEG setFile:[[OpenPanel new] filename]];
[theText replaceSelWithCell:theEG];
return self;
}
- open:sender
{
int successful;
NXRTFDError openResult;
static const char *const types[] = {"rtfd", NULL};
successful = [[OpenPanel new] runModalForTypes:types];
if (!successful) return self;
openResult = [theText openRTFDFrom:[[OpenPanel new] filename]];
if (openResult != NX_RTFDErrorNone) {
NXRunAlertPanel([NXApp appName],
"Problems opening the file %s. Error %d.",
NULL, NULL, NULL,
[[OpenPanel new] filename], openResult);
return self;
}
[[theText window] setTitleAsFilename:[[OpenPanel new] filename]];
return self;
}
- save:sender
{
int successful;
NXRTFDError saveResult;
[[SavePanel new] setRequiredFileType:"rtfd"];
successful = [[SavePanel new] runModal];
if (!successful) return self;
saveResult = [theText saveRTFDTo:[[SavePanel new] filename]
removeBackup:NO
errorHandler:self];
if (saveResult != NX_RTFDErrorNone) {
NXRunAlertPanel([NXApp appName],
"Problems saving the file %s. Error %d.",
NULL, NULL, NULL,
[[SavePanel new] filename], saveResult);
return self;
}
[[theText window] setTitleAsFilename:[[SavePanel new] filename]];
return self;
}
//Finally, the error handler's method:
- (BOOL)attemptOverwrite:(const char *)filename
{
NXRunAlertPanel([NXApp appName], "Permissions problem: unable to save file %s", NULL, NULL, NULL, filename);
return NO;
}
- awakeFromNib
{
[theText setSel:0 :0];
[[theText window] makeKeyAndOrderFront:self];
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.