#import <Cocoa/Cocoa.h>

@protocol SS_PreferencePaneProtocol


    //	preferencePanes is called whenever the calling application wants to instantiate preference panes.
    //	This method returns an array of preference pane instances. This array is autoreleased,
    //	so the calling application needs to retain whatever it wants to keep.
    //	If no instances were generated, this returns nil.

+ (NSArray *)preferencePanes;


    //	paneView returns a preference pane's view. This must not be nil.

- (NSView *)paneView;


    //	paneName returns the name associated with a preference pane's view.
    //	This is used as the label of the pane's toolbar item in the Preferences window,
    //	and as the title of the Preferences window when the pane is selected.
    //	This must not be nil or an empty string.

- (NSString *)paneName;


    //  paneIcon returns a preference pane's icon as an NSImage.
    //	The icon will be scaled to the default size for a toolbar icon (if necessary),
    //	and shown in the toolbar in the Preferences window.

- (NSImage *)paneIcon;


    //  paneToolTip returns the ToolTip to be used for a preference pane's icon in the
    //	Preferences window's toolbar. You can return nil or an empty string to disable
    //	the ToolTip for this preference pane.

- (NSString *)paneToolTip;


    //  allowsHorizontalResizing and allowsVerticalResizing determine whether the Preferences window
    //	will be resizable in the respective directions when the receiver is the visible preference
    //	pane. The initial size of the receiver's view will be used as the minimum size of the
    //	Preferences window.

- (BOOL)allowsHorizontalResizing;
- (BOOL)allowsVerticalResizing;


@end
