@protocol JVInspection; @protocol JVInspector - (NSView *) view; - (NSSize) minSize; - (NSString *) title; - (NSString *) type; @end @interface NSObject (JVInspectorOptional) - (void) willLoad; - (void) didLoad; - (BOOL) shouldUnload; - (void) didUnload; @end @protocol JVInspection - (id ) inspector; @end @interface NSObject (JVInspectionOptional) - (void) willBeInspected; @end @protocol JVInspectionDelegator - (id ) objectToInspect; - (IBAction) getInfo:(id) sender; @end @interface JVInspectorController : NSWindowController { BOOL _locked; id _object; id _inspector; } + (JVInspectorController *) sharedInspector; + (IBAction) showInspector:(id) sender; + (JVInspectorController *) inspectorOfObject:(id ) object; - (id) initWithObject:(id ) object lockedOn:(BOOL) locked; - (IBAction) show:(id) sender; - (BOOL) locked; - (void) inspectObject:(id ) object; - (id ) inspectedObject; - (id ) inspector; @end