This is MiscInspectorManager.m in view mode; [Download] [Up]
/* MiscInspectorManager.m created by todd on Sun 05-May-1996 */
#import <AppKit/AppKit.h>
#import "MiscInspectorController.h"
#import "MiscInspectorNibManager.h"
#import "MiscInspectorManager.h"
// Class variables (static)
static Class _inspectorNibManagerClass = nil;
@implementation MiscInspectorManager
/*"
MiscInspectorManager doesn't do much (yet) except provide
access to it's inspector controller. Later on it'll control
the switch views in the inspector window, etc.
"*/
//-------------------------------------------------------------------
// Class initialization
//-------------------------------------------------------------------
+ (void) initialize
{
if (self == [MiscInspectorManager class]) {
[self setInspectorNibManagerClass:[MiscInspectorNibManager class]];
}
}
//-------------------------------------------------------------------
// Our default inspector manager
//-------------------------------------------------------------------
+ (MiscInspectorManager*) defaultInspectorManager
/*"
Returns the current inspector manager if one exists. If it doesn't
it tries to use the inspector nib manager returned by
#inspectorNibManagerClass to load and create one. We return nil
if for some reason we couldn't find nor load the inspector
manager.
"*/
{
MiscInspectorManager* ourInspectorManager;
// Try to find an existing one.
ourInspectorManager =
[MiscWindowManager windowManagerOfClass:[self class]];
// If it doesn't exist then load it by loading our inspector nib
// manager.
if (ourInspectorManager == nil) {
MiscInspectorNibManager* inspectorNibManager;
// We use initWithBundle: instead of just init because
// the inspector manager may reside in a different bundle
// than the nib manager.
inspectorNibManager = [[[self inspectorNibManagerClass] alloc]
initWithBundle:[NSBundle bundleForClass:[self class]]];
// Should probably check whether the object created is
// a subclass of MiscInspectorManager I suppose.
ourInspectorManager = [inspectorNibManager inspectorManager];
}
return ourInspectorManager;
}
//-------------------------------------------------------------------
// Our inspector nib manager class
//-------------------------------------------------------------------
+ (Class) inspectorNibManagerClass
/*"
Returns the info nib manager class that will be loaded to create
a new instance of ourself. Our #defaultInfoWindowManager uses this
method to allocate and initialize our info window manager if it
doesn't already exist.
"*/
{
return _inspectorNibManagerClass;
}
+ (void) setInspectorNibManagerClass:(Class)newInspectorNibManagerClass
{
_inspectorNibManagerClass = newInspectorNibManagerClass;
}
//-------------------------------------------------------------------
// Initialization/deallocation
//-------------------------------------------------------------------
- (id) init
/*"
Sets us so we are not released when the inspector window is closed.
"*/
{
BOOL error = ([super init] == nil);
if (!error) {
[self setReleasedWhenWindowClosed:NO];
if (error) {
[self autorelease];
}
}
return error ? nil : self;
}
- (MiscInspectorController*) inspectorController
/*"
Returns our inspector controller or nil if we don't have one (you should
though).
"*/
{
return (MiscInspectorController*)
[self controllerOfClass:[MiscInspectorController class]];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.