add a timer before fading out the scroller when overed

This commit is contained in:
Antoine Mercadal
2011-10-05 11:34:06 +02:00
parent 6e4007adc0
commit 86f01cfaec
+15 -1
View File
@@ -87,6 +87,7 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark");
BOOL _allowFadingOut @accessors(getter=allowFadingOut);
int _style;
CPTimer _timerFadeOut;
}
@@ -284,6 +285,13 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark");
[self setFrame:frame];
}
/*! @ignore */
- (void)_performFadeOut:(CPTimer)aTimer
{
[self fadeOut];
_timerFadeOut = nil;
}
#pragma mark -
#pragma mark Utilities
@@ -721,6 +729,9 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark");
- (void)mouseEntered:(CPEvent)anEvent
{
if (_timerFadeOut)
[_timerFadeOut invalidate];
_allowFadingOut = NO;
[self fadeIn];
[self setThemeState:CPThemeStateSelected];
@@ -729,7 +740,10 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark");
- (void)mouseExited:(CPEvent)anEvent
{
_allowFadingOut = YES;
[self fadeOut];
if (_timerFadeOut)
[_timerFadeOut invalidate];
_timerFadeOut = [CPTimer scheduledTimerWithTimeInterval:1.2 target:self selector:@selector(_performFadeOut:) userInfo:nil repeats:NO];
}