This is NewInspector.m in view mode; [Download] [Up]
/* NewInspector.m by Imran Qureshi November 1991 * * Copyright (C) 1991 The Board of Trustees of * The Leland Stanford Junior University. All Rights Reserved. */ #import "NewInspector.h" const char NewInspector_h_rcsid[] = NEWINSPECTOR_H_ID; const char NewInspector_m_rcsid[] = "$Id: NewInspector.m,v 2.9.2.1 1993/10/25 18:14:10 pfkeb Exp $"; #import <appkit/appkit.h> #import "InspectBase.h" @interface NewInspector(Private) - showPanel:(int)insp; /* * put up the requested panel. */ @end @implementation NewInspector static id theInspector = nil; /* makes sure there is only one instantiation of this object */ + new { if (!theInspector) { theInspector = self = [super new]; [self init]; } else self = theInspector; return self; } -init { id protoCell, matrix; NXBundle *bundle; char buffer[MAXPATHLEN + 1]; bundle = [NXBundle bundleForClass:[self class]]; if ([bundle getPath:buffer forResource:"NewInspector" ofType:"nib"]) { [NXApp loadNibFile:buffer owner:self withNames:NO fromZone:[self zone]]; } ViewsList = [[List allocFromZone:[self zone]] init]; SupervisorList = [[List allocFromZone:[self zone]] init]; thePopUpList = [thePopUpListButton target]; [thePopUpList setTarget:self]; [thePopUpList setAction:@selector(toggleInspectorPanels:)]; [thePopUpList removeItemAt:0]; /* * IB comes up with atleast one item in the popupList. We do this to get rid * of that. */ matrix = [thePopUpList itemList]; protoCell = [matrix prototype]; [protoCell setIcon:NULL]; curInsp = 0; // [InspectorPanel setBecomeKeyOnlyIfNeeded:YES]; return self; } -inspectorPanel { return InspectorPanel; } -free { [ViewsList free]; [SupervisorList free]; //[InspectorPanel orderOut:self]; return [super free]; } - orderFrontPanel:sender { [InspectorPanel setFloatingPanel:YES]; [InspectorPanel orderFront:self]; return self; } - orderBackPanel:sender { [InspectorPanel orderBack:self]; return self; } -setTitle:(const char *)theTitle { [InspectorPanel setTitle:theTitle]; return self; } -addView:(id)aView withName:(char *)name withSupervisor:(id)aSupervisor { [ViewsList addObject:aView]; [SupervisorList addObject:aSupervisor]; [thePopUpList addItem:name]; curInsp = [thePopUpList indexOfItem:name]; [InspectorBox setContentView:aView]; [InspectorBox display]; [thePopUpListButton setTitle:name]; return self; } -remove:(char *)name { int i; i = [thePopUpList indexOfItem:name]; [thePopUpList removeItemAt:i]; [ViewsList removeObjectAt:i]; return self; } -replace:(char *)name with:(char *)someName andView:(id)aView { int i; i = [thePopUpList indexOfItem:name]; /* if new name is desired, change the name */ if (someName) { [thePopUpList removeItemAt:i]; [ thePopUpList insertItem: someName at:i]; } [ViewsList replaceObjectAt:i with:aView]; return self; } -showPanelWithName:(char *)name { curInsp = [thePopUpList indexOfItem:name]; [thePopUpListButton setTitle:name]; [self showPanel:curInsp]; return self; } -updateDisplay { [InspectorBox display]; return self; } - windowDidUpdate:sender { id inspector = [self currentInspector]; [inspector windowDidUpdate:sender]; lastSender = sender; return self; } -toggleInspectorPanels:sender { lastSender = sender; curInsp = [sender selectedRow]; [self showPanel:curInsp]; return self; } - currentInspector { return [SupervisorList objectAt:curInsp]; } @end /* Private Methods */ @implementation NewInspector(Private) -showPanel:(int)insp { InspectBase* inspector; inspector = [SupervisorList objectAt:insp]; if ([inspector respondsTo:@selector(comingForward)]) [inspector comingForward]; [inspector windowDidUpdate:lastSender]; [InspectorBox setContentView:[ViewsList objectAt:insp]]; [InspectorBox display]; return self; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.