| // Copyright 2016 The Chromium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef IOS_CHROME_COMMON_MATERIAL_TIMING_H_ | 
 | #define IOS_CHROME_COMMON_MATERIAL_TIMING_H_ | 
 |  | 
 | #import <CoreGraphics/CoreGraphics.h> | 
 | #import <QuartzCore/QuartzCore.h> | 
 | #import <UIKit/UIKit.h> | 
 |  | 
 | extern const CGFloat kMaterialDuration0; | 
 | extern const CGFloat kMaterialDuration1; | 
 | extern const CGFloat kMaterialDuration2; | 
 | extern const CGFloat kMaterialDuration3; | 
 | extern const CGFloat kMaterialDuration4; | 
 | extern const CGFloat kMaterialDuration5; | 
 | extern const CGFloat kMaterialDuration6; | 
 | extern const CGFloat kMaterialDuration7; | 
 | extern const CGFloat kMaterialDuration8; | 
 |  | 
 | // Type of material timing curve. | 
 | typedef NS_ENUM(NSUInteger, MaterialCurve) { | 
 |   MaterialCurveEaseInOut, | 
 |   MaterialCurveEaseOut, | 
 |   MaterialCurveEaseIn, | 
 |   MaterialCurveLinear, | 
 | }; | 
 |  | 
 | // Per material spec, a motion curve with "follow through". | 
 | CAMediaTimingFunction* MaterialTransformCurve2(); | 
 |  | 
 | // Returns a timing function related to the given `curve`. | 
 | CAMediaTimingFunction* MaterialTimingFunction(MaterialCurve curve); | 
 |  | 
 | @interface UIView (CrMaterialAnimations) | 
 |  | 
 | // Performs a standard UIView animation using a material timing `curve`. | 
 | // Note: any curve option specified in `options` will be ignored in favor of the | 
 | // specified curve value. | 
 | // See also: +[UIView animateWithDuration:delay:animations:completion]. | 
 | + (void)cr_animateWithDuration:(NSTimeInterval)duration | 
 |                          delay:(NSTimeInterval)delay | 
 |                  materialCurve:(MaterialCurve)materialCurve | 
 |                        options:(UIViewAnimationOptions)options | 
 |                     animations:(void (^)(void))animations | 
 |                     completion:(void (^)(BOOL finished))completion; | 
 |  | 
 | @end | 
 |  | 
 | #endif  // IOS_CHROME_COMMON_MATERIAL_TIMING_H_ |