/*
* ITKit
- * ITTransientStatusWindow
- * NSWindow subclass for quick display of status information.
- * Similar to volume/brightness/eject bezel key windows.
+ * ITTransientStatusWindow.h
*
- * Original Author : Kent Sutherland <joseph.spiros@ithinksw.com>
- * Original Author : Matt Judy <mjudy@ithinksw.com>
- * Responsibility : Matt Judy <mjudy@ithinksw.com>
- * Responsibility : Joseph Spiros <joseph.spiros@ithinksw.com>
+ * NSWindow subclass for quick display of status information, similar to
+ * volume/brightness/eject bezel key windows.
*
- * Copyright (c) 2002 - 2003 iThink Software.
- * All Rights Reserved
+ * Copyright (c) 2005 by iThink Software.
+ * All Rights Reserved.
+ *
+ * $Id$
*
*/
-
#import <Cocoa/Cocoa.h>
+#import <ITKit/ITWindowPositioning.h>
+#import <ITKit/ITWindowEffect.h>
-
-#define DEFAULT_EXIT_DELAY 3.0
-#define DEFAULT_EFFECT_TIME 0.33
-
+#define DEFAULT_EXIT_DELAY 3.0
@class ITTextField;
@class ITGrayRoundedView;
-
-typedef enum {
- ITTransientStatusWindowHiddenState,
- ITTransientStatusWindowEnteringState,
- ITTransientStatusWindowVisibleState,
- ITTransientStatusWindowExitingState
-} ITTransientStatusWindowVisibilityState;
-
typedef enum {
- ITTransientStatusWindowExitOnOrderOut,
- ITTransientStatusWindowExitAfterDelay,
+ ITTransientStatusWindowExitOnCommand,
+ ITTransientStatusWindowExitAfterDelay
} ITTransientStatusWindowExitMode;
typedef enum {
- ITTransientStatusWindowNoBackground,
- ITTransientStatusWindowRounded,
- ITTransientStatusWindowSquare,
- ITTransientStatusWindowMetal,
- ITTransientStatusWindowMetalUtility,
- ITTransientStatusWindowAquaUtility
+ ITTransientStatusWindowNoBackground,
+ ITTransientStatusWindowRounded,
+ ITTransientStatusWindowSquare,
+ ITTransientStatusWindowMetal,
+ ITTransientStatusWindowMetalUtility,
+ ITTransientStatusWindowAquaUtility
} ITTransientStatusWindowBackgroundType;
typedef enum {
- ITTransientStatusWindowPositionTop,
- ITTransientStatusWindowPositionMiddle,
- ITTransientStatusWindowPositionBottom,
- ITTransientStatusWindowPositionLeft,
- ITTransientStatusWindowPositionCenter,
- ITTransientStatusWindowPositionRight,
- ITTransientStatusWindowOther
-} ITTransientStatusWindowPosition;
-
-typedef enum { // Note: Entry effects described here. Exit does the reverse.
- ITTransientStatusWindowEffectNone, // No effect, window just appears.
- ITTransientStatusWindowEffectDissolve, // Fades in.
- ITTransientStatusWindowEffectSlideVertically, // Slides vertically onto the screen from the nearest edge
- ITTransientStatusWindowEffectSlideHorizontally // Slides horizontally onto the screen from the nearest edge
- ITTransientStatusWindowEffectPivot // Rotate into place from perpendicular edge
-} ITTransientStatusWindowEffect;
-
-
-@interface ITTransientStatusWindow : NSWindow {
-
- ITTransientStatusWindowVisibilityState _visibilityState;
- ITTransientStatusWindowExitMode _exitMode;
- float _exitDelay;
- ITTransientStatusWindowBackgroundType _backgroundType;
- ITTransientStatusWindowEffect _entryEffect;
- ITTransientStatusWindowEffect _exitEffect;
- float _effectTime;
- ITTransientStatusWindowPosition _verticalPosition;
- ITTransientStatusWindowPosition _horizontalPosition;
-
- BOOL _reallyIgnoresEvents;
-
- NSTimer *_delayTimer;
- NSTimer *_fadeTimer;
-
-// NSView *_contentSubView;
+ ITTransientStatusWindowRegular,
+ ITTransientStatusWindowSmall,
+ ITTransientStatusWindowMini
+} ITTransientStatusWindowSizing;
+
+@interface ITTransientStatusWindow : NSWindow <ITWindowPositioning, ITWindowMotility> {
+ ITWindowVisibilityState _visibilityState;
+ ITTransientStatusWindowExitMode _exitMode;
+ float _exitDelay;
+ ITTransientStatusWindowBackgroundType _backgroundType;
+ ITWindowEffect *_entryEffect;
+ ITWindowEffect *_exitEffect;
+ double _effectProgress;
+ ITVerticalWindowPosition _verticalPosition;
+ ITHorizontalWindowPosition _horizontalPosition;
+ ITTransientStatusWindowSizing _sizing;
+ float _screenPadding;
+ NSScreen *_screen;
+ BOOL _reallyIgnoresEvents;
+ NSTimer *_exitTimer;
+ NSView *_contentSubView;
}
+ (ITTransientStatusWindow *)sharedWindow;
-- (ITTransientStatusWindowVisibilityState)visibilityState;
+- (id)initWithContentView:(NSView *)contentView exitMode:(ITTransientStatusWindowExitMode)exitMode backgroundType:(ITTransientStatusWindowBackgroundType)backgroundType;
+
+- (void)appear:(id)sender;
+- (void)vanish:(id)sender;
+
+- (void)setSizing:(ITTransientStatusWindowSizing)newSizing;
+- (ITTransientStatusWindowSizing)sizing;
+
+- (ITWindowVisibilityState)visibilityState;
+- (void)setVisibilityState:(ITWindowVisibilityState)newState;
- (ITTransientStatusWindowExitMode)exitMode;
- (void)setExitMode:(ITTransientStatusWindowExitMode)newMode;
- (ITTransientStatusWindowBackgroundType)backgroundType;
- (void)setBackgroundType:(ITTransientStatusWindowBackgroundType)newType;
-- (ITTransientStatusWindowPosition)verticalPosition;
-- (void)setVerticalPosition:(ITTransientStatusWindowPosition)newPosition;
-
-- (ITTransientStatusWindowPosition)horizontalPosition;
-- (void)setHorizontalPosition:(ITTransientStatusWindowPosition)newPosition;
-
-- (ITTransientStatusWindowEffect)entryEffect;
-- (void)setEntryEffect:(ITTransientStatusWindowEffect)newEffect;
-
-- (ITTransientStatusWindowEffect)exitEffect;
-- (void)setExitEffect:(ITTransientStatusWindowEffect)newEffect;
+- (float)effectProgress;
+- (void)setEffectProgress:(float)newProgress;
-- (void)setRotation:(float)angle;
+- (ITWindowEffect *)entryEffect;
+- (void)setEntryEffect:(ITWindowEffect *)newEffect;
+- (ITWindowEffect *)exitEffect;
+- (void)setExitEffect:(ITWindowEffect *)newEffect;
-@end
+@end
\ No newline at end of file