X-Git-Url: http://git.ithinksw.org/ITKit.git/blobdiff_plain/7258eefd9885c903817ec277fe611aff4b0ff5c6..7c89200521dd8c6cb8fc8a17c633ac80d4b18bd2:/ITTransientStatusWindow.m?ds=sidebyside diff --git a/ITTransientStatusWindow.m b/ITTransientStatusWindow.m index f749278..6cb33a3 100755 --- a/ITTransientStatusWindow.m +++ b/ITTransientStatusWindow.m @@ -18,7 +18,7 @@ exitMode:(ITTransientStatusWindowExitMode)exitMode backgroundType:(ITTransientStatusWindowBackgroundType)backgroundType; - (void)rebuildWindow; -// - (void)performEffect; +- (void)startVanishTimer; @end @@ -125,50 +125,8 @@ static ITTransientStatusWindow *staticWindow = nil; _reallyIgnoresEvents = flag; } -/* - -- (void)orderFront:(id)sender -{ - if ( _entryEffect == nil ) { - [super orderFront:sender]; - _visibilityState = ITTransientStatusWindowVisibleState; - } else { - [self performEffect]; - } - if ( _exitMode == ITTransientStatusWindowExitAfterDelay ) { - // set the timer, and orderOut: when it lapses. - } -} -- (void)makeKeyAndOrderFront:(id)sender -{ - if ( _exitMode == ITTransientStatusWindowExitAfterDelay ) { - // set the timer, and orderOut: when it lapses. - } - - if ( _entryEffect == nil ) { - [super makeKeyAndOrderFront:sender]; - _visibilityState = ITTransientStatusWindowVisibleState; - } else { - [self performEffect]; - [self makeKeyWindow]; - } -} - -- (void)orderOut:(id)sender -{ - if ( _entryEffect == nil ) { - [super orderOut:sender]; - _visibilityState = ITTransientStatusWindowHiddenState; - } else { - [self performEffect]; - } -} - -- (NSTimeInterval)animationResizeTime:(NSRect)newFrame -{ - return _resizeTime; -} +/* - (id)contentView { @@ -194,37 +152,51 @@ static ITTransientStatusWindow *staticWindow = nil; */ -- (void)appear +- (IBAction)appear:(id)sender { - if ( _entryEffect == nil ) { - [self orderFront:self]; - _visibilityState = ITTransientStatusWindowVisibleState; - } else { - _visibilityState = ITTransientStatusWindowAppearingState; + if ( _visibilityState == ITTransientStatusWindowHiddenState ) { + // Window is hidden. Appear as normal, and start the timer. [_entryEffect performAppear]; - _visibilityState = ITTransientStatusWindowVisibleState; - } - if ( _exitMode == ITTransientStatusWindowExitAfterDelay ) { - // set the timer, and vanish when it lapses. + } else if ( _visibilityState == ITTransientStatusWindowVisibleState ) { + // Window is completely visible. Simply reset the timer. + [self startVanishTimer]; + } else if ( _visibilityState == ITTransientStatusWindowAppearingState ) { + // Window is on its way in. Do nothing. + } else if ( _visibilityState == ITTransientStatusWindowVanishingState ) { + // Window is on its way out. Cancel the vanish. + [_exitEffect cancelVanish]; } } -- (void)vanish +- (IBAction)vanish:(id)sender { - if ( _entryEffect == nil ) { - [self orderOut:self]; - _visibilityState = ITTransientStatusWindowHiddenState; - } else { + if ( _visibilityState == ITTransientStatusWindowVisibleState ) { + // Window is totally visible. Perform exit effect. [_exitEffect performVanish]; - _visibilityState = ITTransientStatusWindowHiddenState; + } else if ( _visibilityState == ITTransientStatusWindowHiddenState ) { + // Window is hidden. Do nothing. + } else if ( _visibilityState == ITTransientStatusWindowAppearingState ) { + // Window is on its way in. Cancel appear. + [_entryEffect cancelAppear]; + } else if ( _visibilityState == ITTransientStatusWindowVanishingState ) { + // Window is on its way out. Do nothing. } } -- (ITTransientStatusWindowVisibilityState)visibilityState +- (ITWindowVisibilityState)visibilityState { return _visibilityState; } +- (void)setVisibilityState:(ITWindowVisibilityState)newState +{ + _visibilityState = newState; + + if ( _visibilityState == ITTransientStatusWindowVisibleState ) { + [self startVanishTimer]; + } +} + - (ITTransientStatusWindowExitMode)exitMode { return _exitMode; @@ -278,6 +250,16 @@ static ITTransientStatusWindow *staticWindow = nil; _horizontalPosition = newPosition; } +- (float)effectProgress +{ + return _effectProgress; +} + +- (void)setEffectProgress:(float)newProgress +{ + _effectProgress = newProgress; +} + - (float)screenPadding { return _screenPadding; @@ -344,30 +326,10 @@ static ITTransientStatusWindow *staticWindow = nil; } } -/* - -- (void)performEffect +- (void)startVanishTimer { - if ( _visibilityState == ITTransientStatusWindowHiddenState ) { - _visibilityState = ITTransientStatusWindowEnteringState; - } else if ( _visibilityState == ITTransientStatusWindowVisibleState ) { - _visibilityState = ITTransientStatusWindowExitingState; - } else { - return; - } - - if ( _entryEffect == ITTransientStatusWindowEffectDissolve ) { - [self dissolveEffect]; - } else if ( _entryEffect == ITTransientStatusWindowEffectSlideVertically ) { - [self slideVerticalEffect]; - } else if ( _entryEffect == ITTransientStatusWindowEffectSlideHorizontally ) { - [self slideHorizontalEffect]; - } else if ( _entryEffect == ITTransientStatusWindowEffectPivot ) { - [self pivotEffect]; - } + // start timer, if appropriate + // if timer already exists, restart it. } -*/ - - @end