Huge audit of ITKit, mostly everything has been updated to current coding
[ITKit.git] / ITTransientStatusWindow.h
1 /*
2  *      ITKit
3  *      ITTransientStatusWindow.h
4  *
5  *      NSWindow subclass for quick display of status information, similar to
6  *              volume/brightness/eject bezel key windows.
7  *
8  *      Copyright (c) 2005 by iThink Software.
9  *      All Rights Reserved.
10  *
11  *      $Id$
12  *
13  */
14
15 #import <Cocoa/Cocoa.h>
16 #import "ITWindowPositioning.h"
17 #import "ITWindowEffect.h"
18
19 #define DEFAULT_EXIT_DELAY 3.0
20
21 @class ITTextField;
22 @class ITGrayRoundedView;
23
24 typedef enum {
25     ITTransientStatusWindowExitOnCommand,
26     ITTransientStatusWindowExitAfterDelay
27 } ITTransientStatusWindowExitMode;
28
29 typedef enum {
30     ITTransientStatusWindowNoBackground,
31     ITTransientStatusWindowRounded,
32     ITTransientStatusWindowSquare,
33     ITTransientStatusWindowMetal,
34     ITTransientStatusWindowMetalUtility,
35     ITTransientStatusWindowAquaUtility
36 } ITTransientStatusWindowBackgroundType;
37
38 typedef enum {
39     ITTransientStatusWindowRegular,
40     ITTransientStatusWindowSmall,
41     ITTransientStatusWindowMini
42 } ITTransientStatusWindowSizing;
43
44 @interface ITTransientStatusWindow : NSWindow <ITWindowPositioning, ITWindowMotility> {
45         ITWindowVisibilityState _visibilityState;
46     ITTransientStatusWindowExitMode _exitMode;
47     float _exitDelay;
48     ITTransientStatusWindowBackgroundType _backgroundType;
49     ITWindowEffect *_entryEffect;
50     ITWindowEffect *_exitEffect;
51     double _effectProgress;
52     ITVerticalWindowPosition _verticalPosition;
53     ITHorizontalWindowPosition _horizontalPosition;
54     ITTransientStatusWindowSizing _sizing;
55     float _screenPadding;
56         NSScreen *_screen;
57         BOOL _reallyIgnoresEvents;
58         NSTimer *_exitTimer;
59         NSView *_contentSubView;                
60 }
61
62 + (id)sharedWindow;
63
64 - (id)initWithContentView:(NSView *)contentView exitMode:(ITTransientStatusWindowExitMode)exitMode backgroundType:(ITTransientStatusWindowBackgroundType)backgroundType;
65
66 - (void)appear:(id)sender;
67 - (void)vanish:(id)sender;
68
69 - (void)setSizing:(ITTransientStatusWindowSizing)newSizing;
70 - (ITTransientStatusWindowSizing)sizing;
71
72 - (ITWindowVisibilityState)visibilityState;
73 - (void)setVisibilityState:(ITWindowVisibilityState)newState;
74
75 - (ITTransientStatusWindowExitMode)exitMode;
76 - (void)setExitMode:(ITTransientStatusWindowExitMode)newMode;
77
78 - (float)exitDelay;
79 - (void)setExitDelay:(float)seconds;
80
81 - (ITTransientStatusWindowBackgroundType)backgroundType;
82 - (void)setBackgroundType:(ITTransientStatusWindowBackgroundType)newType;
83
84 - (float)effectProgress;
85 - (void)setEffectProgress:(float)newProgress;
86
87 - (ITWindowEffect *)entryEffect;
88 - (void)setEntryEffect:(ITWindowEffect *)newEffect;
89
90 - (ITWindowEffect *)exitEffect;
91 - (void)setExitEffect:(ITWindowEffect *)newEffect;
92
93 @end