This is ShowAnimApp.m in view mode; [Download] [Up]
// ShowAnimApp.m // 1993 Christoph Marquardt // You may freely copy, distribute, and reuse the code in this program. // the author disclaims any warranty of any kind, expressed or implied, as to its // fitness for any particular use. #import "ShowAnimApp.h" @implementation ShowAnimApp : Application - init { [super init]; infoPanel = nil; return self; } - info:sender /* * Brings up the information panel. */ { if (!infoPanel) { [self loadNibSection:"InfoPanel.nib" owner:self withNames:NO fromZone:[self zone]]; [infoPanel setFrameAutosaveName:"InfoPanel"]; } [infoPanel orderFront:self]; return self; } - open:sender { char *theTypes[] = {"anim", NULL}; if ([[OpenPanel new] runModalForTypes:theTypes]) { const char *fileName = [[OpenPanel new] filename]; [animView openAnim:fileName]; } return self; } - appDidInit:(Application *)sender { int i; [[animView window] setDelegate:animView]; [ControlPanel setFrameAutosaveName:[ControlPanel title]]; [ControlPanel setBecomeKeyOnlyIfNeeded:YES]; [ControlPanel setFloatingPanel:YES]; [ControlPanel orderFront:self]; if (NXArgc > 1) { [animView openAnim:NXArgv[1]]; } return self; } - (int)app:sender openFile:(const char *)path type:(const char *)type /* * This method is performed whenever a user double-clicks on an icon * in the Workspace Manager representing a .anim bundle. */ { if (type && !strcmp(type, "anim")) { [animView openAnim:path]; return YES; } return NO; } - (BOOL)appAcceptsAnotherFile:(Application *)sender /* * We only handle one anim file. */ { return YES; } - appDidHide:sender { [animView pauseAnim:self]; return self; } - appDidUnhide:sender { [animView pauseAnim:self]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.