From e2e723bf10e3ec694df5a44d99f405aff8417489 Mon Sep 17 00:00:00 2001 From: "gtm.daemon" Date: Tue, 10 Nov 2009 15:30:27 +0000 Subject: [Author: dmaclach] Turns out I needed to expose a bit more API to make it work with all of the animations in Chrome nicely. R=thomasvl DELTA=42 (30 added, 8 deleted, 4 changed) --- AppKit/GTMNSAnimation+Duration.m | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'AppKit/GTMNSAnimation+Duration.m') diff --git a/AppKit/GTMNSAnimation+Duration.m b/AppKit/GTMNSAnimation+Duration.m index 89e3f3e..327a349 100644 --- a/AppKit/GTMNSAnimation+Duration.m +++ b/AppKit/GTMNSAnimation+Duration.m @@ -18,10 +18,9 @@ #import "GTMNSAnimation+Duration.h" -static NSTimeInterval GTMCurrentDurationMultiplier(void) { +NSTimeInterval GTMModifyDurationBasedOnCurrentState(NSTimeInterval duration) { NSEvent *event = [NSApp currentEvent]; NSUInteger modifiers = [event modifierFlags]; - NSTimeInterval duration = 1.0; if (modifiers & NSShiftKeyMask) { duration *= 5.0; } @@ -34,9 +33,14 @@ static NSTimeInterval GTMCurrentDurationMultiplier(void) { @implementation NSAnimation (GTMNSAnimationDurationAdditions) +- (id)gtm_initWithDuration:(NSTimeInterval)duration + animationCurve:(NSAnimationCurve)animationCurve { + return [self initWithDuration:GTMModifyDurationBasedOnCurrentState(duration) + animationCurve:animationCurve]; +} + - (void)gtm_setDuration:(NSTimeInterval)duration { - duration = duration * GTMCurrentDurationMultiplier(); - [self setDuration:duration]; + [self setDuration:GTMModifyDurationBasedOnCurrentState(duration)]; } @end @@ -46,8 +50,7 @@ static NSTimeInterval GTMCurrentDurationMultiplier(void) { @implementation NSAnimationContext (GTMNSAnimationDurationAdditions) - (void)gtm_setDuration:(NSTimeInterval)duration { - duration = duration * GTMCurrentDurationMultiplier(); - [self setDuration:duration]; + [self setDuration:GTMModifyDurationBasedOnCurrentState(duration)]; } @end @@ -55,8 +58,7 @@ static NSTimeInterval GTMCurrentDurationMultiplier(void) { @implementation CAAnimation (GTMCAAnimationDurationAdditions) - (void)gtm_setDuration:(CFTimeInterval)duration { - duration = duration * GTMCurrentDurationMultiplier(); - [self setDuration:duration]; + [self setDuration:GTMModifyDurationBasedOnCurrentState(duration)]; } @end -- cgit v1.2.3