Fixing the effects so they work on multiple monitors where the screen
[ITKit.git] / ITWindowEffect.h
index 1c4e3cb..9b6c0bd 100755 (executable)
@@ -3,8 +3,8 @@
  *  ITWindowEffect
  *    Protocal and abstract superclass for performing effects on windows.
  *
  *  ITWindowEffect
  *    Protocal and abstract superclass for performing effects on windows.
  *
- *  Original Author : Matt Judy <mjudy@ithinksw.com>
- *   Responsibility : Matt Judy <mjudy@ithinksw.com>
+ *  Original Author : Matthew Judy <mjudy@ithinksw.com>
+ *   Responsibility : Matthew Judy <mjudy@ithinksw.com>
  *
  *  Copyright (c) 2002 - 2003 iThink Software.
  *  All Rights Reserved
  *
  *  Copyright (c) 2002 - 2003 iThink Software.
  *  All Rights Reserved
 #import <Cocoa/Cocoa.h>
 #import "ITWindowPositioning.h"
 
 #import <Cocoa/Cocoa.h>
 #import "ITWindowPositioning.h"
 
+@class ITTransientStatusWindow;
 
 #define EFFECT_FPS 30.0
 #define DEFAULT_EFFECT_TIME 0.75
 
 
 typedef enum {
 
 #define EFFECT_FPS 30.0
 #define DEFAULT_EFFECT_TIME 0.75
 
 
 typedef enum {
-    ITTransientStatusWindowHiddenState,
-    ITTransientStatusWindowAppearingState,
-    ITTransientStatusWindowVisibleState,
-    ITTransientStatusWindowVanishingState
+    ITWindowHiddenState,
+    ITWindowAppearingState,
+    ITWindowVisibleState,
+    ITWindowVanishingState
 } ITWindowVisibilityState;
 
 
 @protocol ITWindowEffect
 } ITWindowVisibilityState;
 
 
 @protocol ITWindowEffect
++ (NSString *)effectName;
++ (NSDictionary *)supportedPositions;
++ (unsigned int)listOrder;
 - (void)performAppear;
 - (void)performVanish;
 - (void)cancelAppear;
 - (void)performAppear;
 - (void)performVanish;
 - (void)cancelAppear;
@@ -36,22 +40,28 @@ typedef enum {
 @end
 
 
 @end
 
 
-@protocol ITWindowVisibility
+@protocol ITWindowMotility
 - (ITWindowVisibilityState)visibilityState;
 - (void)setVisibilityState:(ITWindowVisibilityState)newState;
 - (ITWindowVisibilityState)visibilityState;
 - (void)setVisibilityState:(ITWindowVisibilityState)newState;
+- (float)effectProgress;
+- (void)setEffectProgress:(float)newProgress;
 @end
 
 
 @interface ITWindowEffect : NSObject <ITWindowEffect>
 {
 @end
 
 
 @interface ITWindowEffect : NSObject <ITWindowEffect>
 {
-    NSWindow                   *_window;
+    ITTransientStatusWindow    *_window;
     float                       _effectTime;
     float                       _effectTime;
-    double                      _effectProgress;
+    float                       _effectSpeed;
     ITVerticalWindowPosition    _verticalPosition;
     ITHorizontalWindowPosition  _horizontalPosition;
     NSTimer                    *_effectTimer;
     ITVerticalWindowPosition    _verticalPosition;
     ITHorizontalWindowPosition  _horizontalPosition;
     NSTimer                    *_effectTimer;
+    BOOL                                          __idle;
+    BOOL                       __shouldReleaseWhenIdle;
 }
 
 }
 
++ (NSArray *)effectClasses;
+
 // Designated initializer
 - (id)initWithWindow:(NSWindow *)window;
 
 // Designated initializer
 - (id)initWithWindow:(NSWindow *)window;
 
@@ -61,4 +71,9 @@ typedef enum {
 
 - (void)setWindowVisibility:(ITWindowVisibilityState)visibilityState;
 
 
 - (void)setWindowVisibility:(ITWindowVisibilityState)visibilityState;
 
+- (float)effectTime;
+- (void)setEffectTime:(float)newTime;
+
+- (void)releaseWhenIdle;
+
 @end
 @end