aboutsummaryrefslogtreecommitdiff
path: root/AppKit/GTMNSAnimatablePropertyContainer.h
diff options
context:
space:
mode:
Diffstat (limited to 'AppKit/GTMNSAnimatablePropertyContainer.h')
-rw-r--r--AppKit/GTMNSAnimatablePropertyContainer.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/AppKit/GTMNSAnimatablePropertyContainer.h b/AppKit/GTMNSAnimatablePropertyContainer.h
new file mode 100644
index 0000000..c98cabe
--- /dev/null
+++ b/AppKit/GTMNSAnimatablePropertyContainer.h
@@ -0,0 +1,49 @@
+//
+// GTMNSAnimatablePropertyContainer.h
+//
+// Copyright (c) 2010 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "GTMDefines.h"
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
+
+// There is a bug in 10.5 where you cannot stop an animation on a
+// NSAnimatablePropertyContainer by just setting it's duration to 0.0.
+// The work around is rather complex requiring you to NULL out animation
+// dictionary entries temporarily (see the code for details).
+// These categories are to make stopping animations simpler.
+// When you want to stop an animation, you just call it like you would
+// an animator.
+//
+// [[myWindow gtm_animatorStopper] setAlphaValue:0.0];
+//
+// This will stop any current animations that are going on, and will immediately
+// set the alpha value of the window to 0.
+// If there is no animation, it will still set the alpha value to 0.0 for you.
+@interface NSView (GTMNSAnimatablePropertyContainer)
+
+- (id)gtm_animatorStopper;
+
+@end
+
+@interface NSWindow (GTMNSAnimatablePropertyContainer)
+
+- (id)gtm_animatorStopper;
+
+@end
+
+#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5