#import "ITPivotWindowEffect.h"
#import "ITCoreGraphicsHacks.h"
+#import "ITTransientStatusWindow.h"
+
@interface ITPivotWindowEffect (Private)
- (void)setPivot:(float)angle;
-- (void)pivotFinish;
+- (void)appearFinish;
+- (void)vanishFinish;
@end
-@implementation ITPivotWindowEffect
+@implementation ITPivotWindowEffect
- (void)performAppear
{
+ // Cast so the compiler won't gripe
+ [(ITTransientStatusWindow *)_window setVisibilityState:ITTransientStatusWindowAppearingState];
[self setPivot:315.0];
_effectProgress = 0.0;
[_window setAlphaValue:0.0];
- (void)performVanish
{
+ // Cast so the compiler won't gripe
+ [(ITTransientStatusWindow *)_window setVisibilityState:ITTransientStatusWindowVanishingState];
[self setPivot:0.0];
_effectProgress = 1.0;
[_window setAlphaValue:1.0];
- (void)cancelAppear
{
- [self pivotFinish];
+ [self appearFinish];
[_window orderOut:self];
[self setPivot:0.0];
[_window setAlphaValue:1.0];
+ // Cast so the compiler won't gripe
+ [(ITTransientStatusWindow *)_window setVisibilityState:ITTransientStatusWindowHiddenState];
}
- (void)cancelVanish
{
- [self pivotFinish];
+ [self vanishFinish];
[self setPivot:0.0];
[_window setAlphaValue:1.0];
[_window orderFront:self];
[_window display];
+ // Cast so the compiler won't gripe
+ [(ITTransientStatusWindow *)_window setVisibilityState:ITTransientStatusWindowVisibleState];
}
- (void)appearStep
[_window setAlphaValue:interPivot];
if ( _effectProgress >= 1.0 ) {
- [self pivotFinish];
+ [self appearFinish];
}
}
[_window setAlphaValue:interPivot];
if ( _effectProgress <= 0.0 ) {
- [self pivotFinish];
+ [self vanishFinish];
}
}
-- (void)pivotFinish
+- (void)appearFinish
{
[_effectTimer invalidate];
_effectTimer = nil;
+ // Cast so the compiler won't gripe
+ [(ITTransientStatusWindow *)_window setVisibilityState:ITTransientStatusWindowVisibleState];
}
+- (void)vanishFinish
+{
+ [_effectTimer invalidate];
+ _effectTimer = nil;
+ // Cast so the compiler won't gripe
+ [(ITTransientStatusWindow *)_window setVisibilityState:ITTransientStatusWindowHiddenState];
+}
- (void)setPivot:(float)angle
{
*/
- - (IBAction)appear:(id)sender
- {
- NSLog(@"%i", _visibilityState);
+- (IBAction)appear:(id)sender
+{
if ( _visibilityState == ITTransientStatusWindowHiddenState ) {
// Window is hidden. Appear as normal, and start the timer.
if ( _entryEffect == nil ) {
[self orderFront:self];
_visibilityState = ITTransientStatusWindowVisibleState;
} else {
- _visibilityState = ITTransientStatusWindowAppearingState;
[_entryEffect performAppear];
- _visibilityState = ITTransientStatusWindowVisibleState;
}
[self startVanishTimer];
} else if ( _visibilityState == ITTransientStatusWindowVisibleState ) {
// Window is completely visible. Simply reset the timer.
[self startVanishTimer];
} else if ( _visibilityState == ITTransientStatusWindowAppearingState ) {
- // Window is appearing. Do nothing.
+ // Window is on its way in. Do nothing.
} else if ( _visibilityState == ITTransientStatusWindowVanishingState ) {
- NSLog(@"%i", _visibilityState);
+ // Window is on its way out. Cancel the vanish.
if ( _exitEffect == nil ) {
[self orderFront:self];
_visibilityState = ITTransientStatusWindowVisibleState;
} else {
- _visibilityState = ITTransientStatusWindowAppearingState;
[_exitEffect cancelVanish];
- _visibilityState = ITTransientStatusWindowVisibleState;
}
[self startVanishTimer];
}
- }
+}
- (IBAction)vanish:(id)sender
{
[self orderOut:self];
_visibilityState = ITTransientStatusWindowHiddenState;
} else {
- _visibilityState = ITTransientStatusWindowVanishingState;
- NSLog(@"%i", _visibilityState);
[_exitEffect performVanish];
- NSLog(@"%i", _visibilityState);
- _visibilityState = ITTransientStatusWindowHiddenState;
- NSLog(@"%i", _visibilityState);
}
[self startVanishTimer];
} else if ( _visibilityState == ITTransientStatusWindowHiddenState ) {
} else if ( _visibilityState == ITTransientStatusWindowAppearingState ) {
// Window is on its way in. Cancel appear.
[_entryEffect cancelAppear];
- _visibilityState = ITTransientStatusWindowHiddenState;
} else if ( _visibilityState == ITTransientStatusWindowVanishingState ) {
// Window is on its way out. Do nothing.
}