Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Unified Diff: ios/chrome/browser/ui/animators/zoom_transition_animator.h

Issue 2586993002: Upstream Chrome on iOS source code [3/11]. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/animators/zoom_transition_animator.h
diff --git a/ios/chrome/browser/ui/animators/zoom_transition_animator.h b/ios/chrome/browser/ui/animators/zoom_transition_animator.h
new file mode 100644
index 0000000000000000000000000000000000000000..86850343fa9881285c52bf1ab1f170d790402ee4
--- /dev/null
+++ b/ios/chrome/browser/ui/animators/zoom_transition_animator.h
@@ -0,0 +1,48 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// ====== New Architecture =====
+// = This code is only used in the new iOS Chrome architecture. =
+// ============================================================================
+
+#ifndef IOS_CHROME_BROWSER_UI_ANIMATORS_ZOOM_TRANSITION_ANIMATOR_H_
+#define IOS_CHROME_BROWSER_UI_ANIMATORS_ZOOM_TRANSITION_ANIMATOR_H_
+
+#import <UIKit/UIKit.h>
+
+#import "ios/chrome/browser/ui/animators/zoom_transition_delegate.h"
+
+// A transition animator object. The transition (for presentation) will begin
+// with the presented view occupying a rectangle supplied by the delegate, or
+// defaulting to a square in the center of the presenter's view. The
+// presentation animation will change the size of the rectangle to match the
+// final presented size. For dismissal, the same animation is done in reverse.
+@interface ZoomTransitionAnimator
+ : NSObject<UIViewControllerAnimatedTransitioning>
+
+// YES if the receiver is used for a presentation, NO (the default) if used
+// for a dismissal. Calling code should set this before returning this object
+// for UIKit to use.
+@property(nonatomic, assign, getter=isPresenting) BOOL presenting;
+
+// Optional object that can be passed into the delegate to identify a specific
+// location. For example, an object in a table or collection view might have
+// its index path passed in so the delegate can map that to a screen location.
+@property(nonatomic, copy) NSObject* presentationKey;
+
+// Delegate that can supply a source/destination rect for the animation.
+@property(nonatomic, weak) id<ZoomTransitionDelegate> delegate;
+
+// Convenience method to set a delegate from an array of objects that might
+// implement the ZoomTransitionDelegate protocol. For example, either the
+// source or presenting view controller (or neither) might implement the
+// protocol. If |possibleDelegates| is empty, or if no object it contains
+// conforms to ZoomTransitionDelegate, then the receiver's delegate will be
+// nil. If multiple objects in |possibleDelegates| conforms to the protocol,
+// then the first one will become the receiver's delegate.
+- (void)selectDelegate:(NSArray<id<NSObject>>*)possibleDelegates;
+
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_ANIMATORS_ZOOM_TRANSITION_ANIMATOR_H_
« no previous file with comments | « ios/chrome/browser/ui/animators/README.md ('k') | ios/chrome/browser/ui/animators/zoom_transition_animator.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698