ftp.nice.ch/Attic/openStep/developer/resources/MiscKit.2.0.5.s.gnutar.gz#/MiscKit2/Temp/Adder/MiscControllerKit.subproj/MiscWindowManager.h

This is MiscWindowManager.h in view mode; [Download] [Up]

/*
   MiscWindowManager.h
   Authors: Todd Thomas and Dave Slotnick
  
  $Id:$
*/


// Headers
#import <Foundation/NSObject.h>

// Forward class declarations
@class NSWindow;
@class NSArray;
@class NSString;
@class NSNotification;
@class MiscNibManager;

// Notifications
// You can use this notification for other objects in the nib
// that should go away as soon as the window and window manager
// are released. The MiscInspectorMediator
// is the only object in the MiscController hierarchy that
// currently makes use of this notification but it would probably 
// be useful for any object you add to a nib that should release
// when the window manager goes away. 
extern NSString* MiscWindowManagerWillReleaseNotification;


@interface MiscWindowManager : NSObject
{
#if HACK_FOR_IB_OUTLETS
    id nibManager;
    id window;
#endif

@private    
    MiscNibManager* _nibManager; 	/*" Our nib manager "*/
    NSWindow* _window;	        	/*" Outlet to our window "*/
    BOOL _autosavesWindowFrame; 	/*" Save frame when it changes? "*/
    NSString* _windowFrameName;		/*" Window frame default name "*/
    NSString* _name;	    		/*" Allows for named managers. "*/
    float _xOffset;					/*"	X offset for cascading. "*/
    float _yOffset;					/*"	Y offset for cascading. "*/
    BOOL _autoCascadesWindow;		/*" Do we cascade our window? "*/
    BOOL _releasedWhenWindowClosed;	/*" We go when window goes? "*/
}

/*" Class initialization "*/
+ (void) initialize;

/*" Loading nib manager "*/
+ (Class) nibManagerClass;
+ (void) setNibManagerClass:(Class)newNibManagerClass;

/*" Manager instances "*/
 + (NSArray*) allWindowManagers;

/*" Managers by class "*/
+ (NSArray*) windowManagersOfClass:(Class)managerClass;
//+ (MiscWindowManager*) windowManagerOfClass:(Class)managerClass;
+ (id) windowManagerOfClass:(Class)managerClass;
/*" Managers by name "*/
+ (NSArray*) windowManagersWithName:(NSString*)aName;
//+ (MiscWindowManager*) windowManagerWithName:(NSString*)aName;
+ (id) windowManagerWithName:(NSString*)aName;

/*" Initialization / deallocation "*/
- (id) init;
- (void) dealloc;

/*" Named managers "*/
- (NSString *) name;
- (void) setName:(NSString *)ourName;

/*" Our nib manager "*/
- (MiscNibManager*) nibManager;
- (void) setNibManager:(MiscNibManager*)newNibManager;

/*" Accessing the window "*/
- (NSWindow*) window;
- (void) setWindow:(NSWindow*)newWindow;
- (NSString*) windowTitle;
- (void) setWindowTitle:(NSString*)title;

/*" Window cascading "*/
- (BOOL) autoCascadesWindow;
- (void) setAutoCascadesWindow:(BOOL)cascadeIt;
- (void) setCascadeOffset:(float)x :(float)y;

/*" Check the document status "*/
- (BOOL) isDocumentEdited;
- (void) setDocumentEdited:(BOOL)docNowEdited;

/*" Display management "*/
- (void) makeKeyConditionallyAndOrderFront:sender;
- (BOOL) isVisible;

/*" Closing "*/
- (void) performClose:(id)sender;
- (void) close;

/*" Window frame management "*/
- (BOOL) autosavesWindowFrame;
- (void) setAutosavesWindowFrame:(BOOL)saveFrame;
- (NSString*) windowFrameName;
- (void) setWindowFrameName:(NSString*)frameName;

- (void) setWindowFrameFromDefaults;
- (void) saveWindowFrameToDefaults;

/*" Releasing "*/ 
- (BOOL) isReleasedWhenWindowClosed;
- (void) setReleasedWhenWindowClosed:(BOOL)freeUs;
 
@end


/*
   Any headers from here on are protected and should only be used by
   subclasses. They should be considered more volitile than the
   public API.
*/


@interface MiscWindowManager (Protected)

/*" Customizing the Window close "*/
- (NSString*) _closeAlertMessage;
- (SEL) _closeAction;
- (NSArray*) _closePanelButtonTitles;

/*" Window closing messages "*/
- (BOOL) _alertUserOfWindowClose:(NSWindow*)ourWindow;
- (BOOL) _shouldSendCloseAction;
- (BOOL) _windowShouldClose:(NSWindow*)ourWindow;
- (void) _windowClosed;

/*" Accessing the miniwindow icon "*/
- (NSString*) _miniwindowIcon;

/*" Autosave frame support "*/
- (void) _possiblySetupWindowFrameAutosaving;

/*" Window cascading "*/
- (void) _tryToCascadeWindow;

/*" Initialization hooks "*/
- (void) _initializeUI;

@end


@interface MiscWindowManager (WindowDelegate)

//- (void) windowDidBecomeKey:(NSNotification*)aNotification;
//- (void) windowDidBecomeMain:(NSNotification*)aNotification;
//- (void) windowDidChangeScreen:(NSNotification*)aNotification;
//- (void) windowDidDeminiaturize:(NSNotification*)aNotification;
//- (void) windowDidExpose:(NSNotification*)aNotification;
//- (void) windowDidMiniaturize:(NSNotification*)aNotification;
//- (void) windowDidMove:(NSNotification*)aNotification;
//- (void) windowDidResignKey:(NSNotification*)aNotification;
//- (void) windowDidResize:(NSNotification*)aNotification;
//- (void) windowDidUpdate:(NSNotification*)aNotification;
- (BOOL) windowShouldClose:(id)ourWindow;
//- (void) windowWillClose:(NSNotification*)notification;
- (void) windowWillMiniaturize:(NSNotification*)notification;
//- (void) windowWillMove:(NSNotification*)notification;

@end


@interface MiscWindowManager (MiscNibManagerNotification)

- (void) _notifyNibManagerOfRelease;

@end


@interface MiscWindowManager (NibNotification)

- (void) awakeFromNib;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.