Cleaning up a bit, and testing SyncMail. PLEASE DO NOT CHANGE THE ITKIT TARGET SETTI...
[ITKit.git] / ITTransientStatusWindow.h
1 /*
2  *      ITKit
3  *  ITTransientStatusWindow
4  *    NSWindow subclass for quick display of status information.
5  *    Similar to volume/brightness/eject bezel key windows.
6  *
7  *  Original Author : Kent Sutherland <joseph.spiros@ithinksw.com>
8  *  Original Author : Matt Judy <mjudy@ithinksw.com>
9  *   Responsibility : Matt Judy <mjudy@ithinksw.com>
10  *   Responsibility : Joseph Spiros <joseph.spiros@ithinksw.com>
11  *
12  *  Copyright (c) 2002 - 2003 iThink Software.
13  *  All Rights Reserved
14  *
15  */
16
17
18 #import <Cocoa/Cocoa.h>
19
20
21 @class ITTextField;
22 @class ITGrayRoundedView;
23
24
25 #define DEFAULT_EXIT_DELAY 3.0
26
27
28 typedef enum {
29     ITTransientStatusWindowHiddenState,
30     ITTransientStatusWindowEnteringState,
31     ITTransientStatusWindowVisibleState,
32     ITTransientStatusWindowExitingState
33 } ITTransientStatusWindowVisibilityState;
34
35 typedef enum {
36     ITTransientStatusWindowExitOnOrderOut,
37     ITTransientStatusWindowExitAfterDelay,
38 } ITTransientStatusWindowExitMode;
39
40 typedef enum {
41     ITTransientStatusWindowNoBackground,
42     ITTransientStatusWindowRounded,
43     ITTransientStatusWindowSquare,
44     ITTransientStatusWindowMetal,
45     ITTransientStatusWindowMetalUtility,
46     ITTransientStatusWindowAquaUtility
47 } ITTransientStatusWindowBackgroundType;
48
49 typedef enum {
50     ITTransientStatusWindowPositionTop,
51     ITTransientStatusWindowPositionMiddle,
52     ITTransientStatusWindowPositionBottom,
53     ITTransientStatusWindowPositionLeft,
54     ITTransientStatusWindowPositionCenter,
55     ITTransientStatusWindowPositionRight,
56     ITTransientStatusWindowOther
57 } ITTransientStatusWindowPosition;
58
59 typedef enum {                                     // Note: Entry effects described here.  Exit does the reverse.
60     ITTransientStatusWindowEffectNone,             // No effect, window just appears.
61     ITTransientStatusWindowEffectDissolve,         // Fades in.
62     ITTransientStatusWindowEffectSlideVertically,  // Slides vertically onto the screen from the nearest edge
63     ITTransientStatusWindowEffectSlideHorizontally // Slides horizontally onto the screen from the nearest edge
64 } ITTransientStatusWindowEffect;
65
66
67 @interface ITTransientStatusWindow : NSWindow {
68
69     ITTransientStatusWindowVisibilityState  _visibilityState;
70     ITTransientStatusWindowExitMode         _exitMode;
71     float                                   _exitDelay;
72     ITTransientStatusWindowBackgroundType   _backgroundType;
73     ITTransientStatusWindowEffect                       _entryEffect;
74     ITTransientStatusWindowEffect           _exitEffect;
75     ITTransientStatusWindowPosition                     _verticalPosition;
76     ITTransientStatusWindowPosition                     _horizontalPosition;
77     
78     NSTimer *_delayTimer;
79     NSTimer *_fadeTimer;
80
81 //  NSView *_contentSubView;            
82 }
83
84 + (ITTransientStatusWindow *)sharedWindow;
85
86 - (ITTransientStatusWindowVisibilityState)visibilityState;
87
88 - (ITTransientStatusWindowExitMode)exitMode;
89 - (void)setExitMode:(ITTransientStatusWindowExitMode)newMode;
90
91 - (float)exitDelay;
92 - (void)setExitDelay:(float)seconds;
93
94 - (ITTransientStatusWindowBackgroundType)backgroundType;
95 - (void)setBackgroundType:(ITTransientStatusWindowBackgroundType)newType;
96
97 - (ITTransientStatusWindowPosition)verticalPosition;
98 - (void)setVerticalPosition:(ITTransientStatusWindowPosition)newPosition;
99
100 - (ITTransientStatusWindowPosition)horizontalPosition;
101 - (void)setHorizontalPosition:(ITTransientStatusWindowPosition)newPosition;
102
103 - (ITTransientStatusWindowEffect)entryEffect;
104 - (void)setEntryEffect:(ITTransientStatusWindowEffect)newEffect;
105
106 - (ITTransientStatusWindowEffect)exitEffect;
107 - (void)setExitEffect:(ITTransientStatusWindowEffect)newEffect;
108
109 @end