Removing the use of private CoreGraphics APIs to draw shadows, and replacing with...
[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 iThink Software
9  *
10  */
11
12 #import <Cocoa/Cocoa.h>
13 #import <ITKit/ITWindowPositioning.h>
14 #import <ITKit/ITWindowEffect.h>
15
16 #define DEFAULT_EXIT_DELAY 3.0
17
18 @class ITTextField;
19 @class ITGrayRoundedView;
20
21 typedef enum {
22         ITTransientStatusWindowExitOnCommand,
23         ITTransientStatusWindowExitAfterDelay
24 } ITTransientStatusWindowExitMode;
25
26 typedef enum {
27         ITTransientStatusWindowNoBackground,
28         ITTransientStatusWindowRounded,
29         ITTransientStatusWindowSquare,
30         ITTransientStatusWindowMetal,
31         ITTransientStatusWindowMetalUtility,
32         ITTransientStatusWindowAquaUtility
33 } ITTransientStatusWindowBackgroundType;
34
35 typedef enum {
36         ITTransientStatusWindowRegular,
37         ITTransientStatusWindowSmall,
38         ITTransientStatusWindowMini
39 } ITTransientStatusWindowSizing;
40
41 @interface ITTransientStatusWindow : NSWindow <ITWindowPositioning, ITWindowMotility> {
42         ITWindowVisibilityState _visibilityState;
43         ITTransientStatusWindowExitMode _exitMode;
44         float _exitDelay;
45         ITTransientStatusWindowBackgroundType _backgroundType;
46         ITWindowEffect *_entryEffect;
47         ITWindowEffect *_exitEffect;
48         double _effectProgress;
49         ITVerticalWindowPosition _verticalPosition;
50         ITHorizontalWindowPosition _horizontalPosition;
51         ITTransientStatusWindowSizing _sizing;
52         float _screenPadding;
53         NSScreen *_screen;
54         BOOL _reallyIgnoresEvents;
55         NSTimer *_exitTimer;
56         NSView *_contentSubView;                
57 }
58
59 + (ITTransientStatusWindow *)sharedWindow;
60
61 - (id)initWithContentView:(NSView *)contentView exitMode:(ITTransientStatusWindowExitMode)exitMode backgroundType:(ITTransientStatusWindowBackgroundType)backgroundType;
62
63 - (void)appear:(id)sender;
64 - (void)vanish:(id)sender;
65
66 - (void)setSizing:(ITTransientStatusWindowSizing)newSizing;
67 - (ITTransientStatusWindowSizing)sizing;
68
69 - (ITWindowVisibilityState)visibilityState;
70 - (void)setVisibilityState:(ITWindowVisibilityState)newState;
71
72 - (ITTransientStatusWindowExitMode)exitMode;
73 - (void)setExitMode:(ITTransientStatusWindowExitMode)newMode;
74
75 - (float)exitDelay;
76 - (void)setExitDelay:(float)seconds;
77
78 - (ITTransientStatusWindowBackgroundType)backgroundType;
79 - (void)setBackgroundType:(ITTransientStatusWindowBackgroundType)newType;
80
81 - (float)effectProgress;
82 - (void)setEffectProgress:(float)newProgress;
83
84 - (ITWindowEffect *)entryEffect;
85 - (void)setEntryEffect:(ITWindowEffect *)newEffect;
86
87 - (ITWindowEffect *)exitEffect;
88 - (void)setExitEffect:(ITWindowEffect *)newEffect;
89
90 @end