#import <Cocoa/Cocoa.h>
+#import "ITWindowPositioning.h"
-@protocol ITWindowEffect
+#define EFFECT_FPS 30.0
+#define DEFAULT_EFFECT_TIME 0.75
+
+
+typedef enum {
+ ITTransientStatusWindowHiddenState,
+ ITTransientStatusWindowAppearingState,
+ ITTransientStatusWindowVisibleState,
+ ITTransientStatusWindowVanishingState
+} ITWindowVisibilityState;
+
+@protocol ITWindowEffect
- (void)performAppear;
- (void)performVanish;
+- (void)cancelAppear;
+- (void)cancelVanish;
+@end
+
+@protocol ITWindowVisibility
+- (ITWindowVisibilityState)visibilityState;
+- (void)setVisibilityState:(ITWindowVisibilityState)newState;
@end
@interface ITWindowEffect : NSObject <ITWindowEffect>
{
- NSWindow *_window;
+ NSWindow *_window;
+ float _effectTime;
+ float _effectSpeed;
+ double _effectProgress;
+ ITVerticalWindowPosition _verticalPosition;
+ ITHorizontalWindowPosition _horizontalPosition;
+ NSTimer *_effectTimer;
}
// Designated initializer
- (NSWindow *)window;
-// setWindow: does not retain or release its window. It simply references it.
- (void)setWindow:(NSWindow *)newWindow;
+- (void)setWindowVisibility:(ITWindowVisibilityState)visibilityState;
+
+- (float)effectTime;
+- (void)setEffectTime:(float)newTime;
+
@end