Fixing the effects so they work on multiple monitors where the screen
[ITKit.git] / ITTransientStatusWindow.m
index bae7b53..44a0b90 100755 (executable)
@@ -1,9 +1,9 @@
 #import "ITTransientStatusWindow.h"
 #import "ITWindowEffect.h"
-#import <CoreGraphics/CoreGraphics.h>
+#import <ApplicationServices/ApplicationServices.h>
 #import "ITCoreGraphicsHacks.h"
 #import "ITTextField.h"
-#import "ITGrayRoundedView.h"
+#import "ITTSWBackgroundView.h"
 
 #define EFFECT_FPS 30.0
 
@@ -81,11 +81,12 @@ static ITTransientStatusWindow *staticWindow = nil;
         _verticalPosition    = ITWindowPositionBottom;
         _horizontalPosition  = ITWindowPositionLeft;
         _screenPadding       = 32.0;
-        _screenNumber        = 0;
+        //_screenNumber        = 0;
         _entryEffect         = nil;
         _exitEffect          = nil;
         _reallyIgnoresEvents = YES;
         _exitTimer           = nil;
+               [self setScreen:[NSScreen mainScreen]];
 
 //      if ( _backgroundType == ITTransientStatusWindowRounded ) {
 //          _contentSubView = contentView;
@@ -101,6 +102,11 @@ static ITTransientStatusWindow *staticWindow = nil;
     return self;
 }
 
+- (void)dealloc
+{
+       [_screen release];
+       [super dealloc];
+}
 
 /*************************************************************************/
 #pragma mark -
@@ -126,7 +132,6 @@ static ITTransientStatusWindow *staticWindow = nil;
     _reallyIgnoresEvents = flag;
 }
 
-
 /*
 
 - (id)contentView
@@ -184,6 +189,27 @@ static ITTransientStatusWindow *staticWindow = nil;
     }
 }
 
+- (void)setScreen:(NSScreen *)newScreen
+{
+       [_screen release];
+       _screen = [newScreen retain];
+}
+
+- (NSScreen *)screen
+{
+       return _screen;
+}
+
+- (void)setSizing:(ITTransientStatusWindowSizing)newSizing
+{
+    _sizing = newSizing;
+}
+
+- (ITTransientStatusWindowSizing)sizing
+{
+    return _sizing;
+}
+
 - (ITWindowVisibilityState)visibilityState
 {
     return _visibilityState;
@@ -195,6 +221,8 @@ static ITTransientStatusWindow *staticWindow = nil;
     
     if ( _visibilityState == ITWindowVisibleState ) {
         [self startVanishTimer];
+    } else if ( (_visibilityState == ITWindowVanishingState) || (_visibilityState == ITWindowHiddenState) ) {
+        [self stopVanishTimer];
     }
 }
 
@@ -279,7 +307,7 @@ static ITTransientStatusWindow *staticWindow = nil;
     _screenPadding = newPadding;
 }
 
-- (int)screenNumber
+/*- (int)screenNumber
 {
     return _screenNumber;
 }
@@ -287,7 +315,7 @@ static ITTransientStatusWindow *staticWindow = nil;
 - (void)setScreenNumber:(int)newNumber
 {
     _screenNumber = newNumber;
-}
+}*/
 
 - (ITWindowEffect *)entryEffect
 {
@@ -320,7 +348,7 @@ static ITTransientStatusWindow *staticWindow = nil;
 - (void)rebuildWindow;
 {
     if ( _backgroundType == ITTransientStatusWindowRounded ) {
-        ITGrayRoundedView *roundedView = [[[ITGrayRoundedView alloc] initWithFrame:[self frame]] autorelease];
+        ITTSWBackgroundView *roundedView = [[[ITTSWBackgroundView alloc] initWithFrame:[self frame]] autorelease];
 
         [self setBackgroundColor:[NSColor clearColor]];
         [self setHasShadow:NO];