This is ExplodingMenus.m in view mode; [Download] [Up]
// // Copyright 1994 (c) Todd Anthony Nathan. All Rights Reserved. // // Wed Apr 27 21:29:45 GMT-0700 1994 // #import <appkit/appkit.h> #import "ExplodingMenus.h" // This XModule header. #import "ExplodingMenusConstants.h" #import "ExplodingMenu.h" // Stone Design's object #import <appkit/nextstd.h> // NXLogError #import <mach/cthreads.h> /* * Keep track of the mach header where we get loaded * so we can use it to load other stuff later (such as * nib files) * Note: only needed in XModules that load nib files, etc. */ static struct mach_header *loadHeader = NULL; @implementation ProgressPanel : XModule - init { [super init]; return ( self ); } - free { // Do your stuff here... return ( [super free] ); } + (const char *)moduleName { return ( "ProgressPanel" ); } + (const char **)xCmdsAndFcns { static char *handlerList[] = { "showmenus", "hidemenus", "em_version", NULL }; return ( handlerList ); } - prepareToExecuteHandlers { // [self loadInterfaceData]; return ( self ); } - executeHandler:(NXAtom)handlerName { if (!strcmp(handlerName, "showmenus")) { return ( [self showMenus] ); } else if (!strcmp(handlerName, "hidemenus")) { return ( [self hideMenus] ); } else if (!strcmp(handlerName, "em_version")) { return ( [self em_version] ); } else return ( nil ); // handlerName not recognized! } + finishLoading:(struct mach_header *)header { loadHeader = header; // Save this for later use return ( self ); } - loadInterfaceData { //[NXApp loadNibSection:"MyXModule.nib" owner:self // withNames:NO fromHeader:loadHeader] ) return ( self ); } // XModule specific code... // - showMenus { [[ExplodingMenu sharedInstance] explodeMenus:YES]; return ( [[self getEmptyContainer] setString: ""] ); } - hideMenus { [[ExplodingMenu sharedInstance] explodeMenus:NO]; return ( [[self getEmptyContainer] setString: ""] ); } - em_version { id version; version = [[ self getEmptyContainer ] setString:"r" ]; [ version appendString:EM_RELEASE ]; [ version appendString:" v" ]; [ version appendString:EM_VERSION ]; [ version appendString:" " ]; [ version appendString:EM_RELTIME ]; [ version appendString:"\n" ]; [ version appendString:EM_COPYRIGHT ]; return ( version ); } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.