This is MailToUI.m in view mode; [Download] [Up]
///////////////////////////////////////////////////////////////////////////////
// FILENAME: MailToUI.m
// SUMMARY: Interface for a UI for setting address and subject
// SUPERCLASS: Object
// INTERFACE: MailToUI.nib
// PROTOCOLS: <Inspectable>
// AUTHOR: Rohit Khare and Tom Zavisca
// COPYRIGHT: (c) 1994 California Institure of Technology, eText Project
///////////////////////////////////////////////////////////////////////////////
// IMPLEMENTATION COMMENTS
// Just maintains two lousy fields.
///////////////////////////////////////////////////////////////////////////////
// HISTORY
// 07/20/94: Revamped to leverage eTImageUI in an "inspection chain"
// 07/04/94: Minimal Creation.
///////////////////////////////////////////////////////////////////////////////
#import "MailTo.h"
@implementation MailToUI
+ new
{
static MailToUI *ui = nil;
if (!ui) {
ui = [[MailToUI alloc] init];
}
return ui;
}
- init
{
char buf[MAXPATHLEN];
NXBundle *bundle;
[super init];
bundle = [NXBundle bundleForClass:[MailToUI class]];
if ( [bundle getPath:buf forResource:"MailToUI" ofType:"nib"] ) {
[NXApp loadNibFile:buf owner:self withNames:NO];
} else {
NXLogError("NIB not found: MailToUI");
}
mailToView = [mailToPanel contentView];
return self;
}
- free {return self;}
///////////////////////////////////
#define PROP "MailTo Properties"
- (const NXAtom *) types
{
static NXAtom *types = NULL;
if (!types) {
int i;
const NXAtom *superTypes = [super types];
for(i=0;superTypes[i];i++);
i++; // make room for terminating NULL
i++; // make room for our type
types = malloc(i * sizeof(NXAtom));
types[0] = NXUniqueString(PROP);
for(i=0;superTypes[i];i++) types[i+1] = superTypes[i];
types[i+1] = NULL;
}
return types;
}
- (const char *) inspectorTitle
{
return NXUniqueString("MailTo");
}
- resignInspector: (View *) oldInspector ofType: (const char *) type
{
if (oldInspector == mailToView) {
[self changeAddress:addressField];
[self changeSubject:subjectField];
} else
[super resignInspector:oldInspector ofType:type];
return self;
}
- activateInspector: (View *) newInspector ofType: (const char *) type
{
if (newInspector != mailToView)
[super activateInspector:newInspector ofType:type];
return self;
}
- inspectorForType:(const char *) type
{
if(!strcmp(type,NXUniqueString(PROP)))
return mailToView;
// else NXLogError("Massive Inspector Failure: Asked MailTo for: %s", type);
// return mailToView;
return [super inspectorForType:type];
}
////////////////////
- setAnnotation:sender
{
[super setAnnotation:sender]; // this is an awkward naming of the "chain"
theMailTo = sender;
[addressField setStringValue:[theMailTo address]];
[subjectField setStringValue:[theMailTo subject]];
return self;
}
- changeAddress:sender
{[theMailTo setAddress:NXUniqueString([sender stringValue])]; return self;}
- changeSubject:sender
{[theMailTo setSubject:NXUniqueString([sender stringValue])]; return self;}
@end;These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.