/*
    IBInspector.h
    Interface Builder Kit
    Copyright 2006-2009 Apple Inc.
    All rights reserved.

The IBInspector class manages the display and synchronization of custom class information in the inspector windowIf you are implementing a custom view, control, or object that has user-editable properties, you should provide a custom subclass of IBInspector.
*/

#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5

#import <Cocoa/Cocoa.h>

@class IBDocument;

@interface IBInspector : NSObject {
    @private
    NSArrayController *inspectedObjectsController;
    NSSize minimumViewBoundSize;
    IBOutlet NSView *inspectorView;
    BOOL active;
    void *reserved[8];
}

/* A shared instance of the inspector subclass. */
+ (id)sharedInstance; 

/* A boolean indicating if the inspector supports multiple selection. */
+ (BOOL)supportsMultipleObjectInspection;

/* The label, name of the NIB which provides the view, and the view for the inspector. */
- (NSString *)label;
- (NSString *)viewNibName;
- (NSView *)view;

/* The document, collection of inspected objects, and the (optional) controller for the inspected objects. */
- (IBDocument *)document;
- (NSArray *)inspectedObjects;
- (NSArrayController *)inspectedObjectsController;

/* Refreshed the controller. */
- (void)refresh;
@end

#endif
