This is EBI.m in view mode; [Download] [Up]
/////////////////////////////////////////////////////////////////////////////// // FILENAME: EBI.m // SUMMARY: an Eight-Ball (TM) Infopanel // SUPERCLASS: Object // INTERFACE: None // PROTOCOLS: <Inspectable> // AUTHOR: Rohit Khare // COPYRIGHT: (c) 1994 California Institure of Technology, eText Project /////////////////////////////////////////////////////////////////////////////// // DESCRIPTION // Stupid infopanel container /////////////////////////////////////////////////////////////////////////////// // HISTORY // 10/31/94: Converted to eText5; modified inspector protocol // 05/22/94: Created. First eText port. /////////////////////////////////////////////////////////////////////////////// #import "../eTextKernel.h" @interface EightBawl:Object <Annotation, Tool> { BOOL highlighted; int animStep; id cimage; NXRect savedFrame; NXPoint savedPoint; } @end @interface EBI:Object <Inspectable> { id infoPanel; id infoView; } +new; @end @implementation EBI // Insurance policy for bundle principal-class ordering + toolAwake:theApp {return [EightBawl toolAwake:theApp];} #define INFO "Info" + new { static EBI *ebi = nil; if (!ebi) { ebi = [[EBI alloc] init]; } return ebi; } - free {return self;} - init { char buf[MAXPATHLEN]; NXBundle *bundle; [super init]; bundle = [NXBundle bundleForClass:[EBI class]]; if ( [bundle getPath:buf forResource:"8Bawl" ofType:"nib"] ) { [NXApp loadNibFile:buf owner:self withNames:NO]; } else { NXLogError("NIB not found: 8Bawl"); } infoView = [infoPanel contentView]; return self; } - (const NXAtom *) types { static NXAtom types[2] = {NULL, NULL}; if (!types[0]) { types[0] = NXUniqueString(INFO); } return types; } - (const char *) inspectorTitle { return NXUniqueString("8Bawl"); } - resignInspector: (View *) oldInspector ofType: (const char *) type { return self; } - activateInspector: (View *) newInspector ofType: (const char *) type { return self; } - inspectorForType:(const char *) type { if(!strcmp(type,INFO)) return infoView; else NXLogError("Massive Inspector Failure: Asked EBI for: %s", type); return infoView; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.