Changed controlKey display character, per Alex's request.
[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 <ITKit/ITWindowPositioning.h>
17 #import <ITKit/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 + (ITTransientStatusWindow *)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