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

Unified Diff: ios/chrome/browser/ui/stack_view/stack_view_controller.h

Issue 2587023002: Upstream Chrome on iOS source code [8/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/stack_view/stack_view_controller.h
diff --git a/ios/chrome/browser/ui/stack_view/stack_view_controller.h b/ios/chrome/browser/ui/stack_view/stack_view_controller.h
new file mode 100644
index 0000000000000000000000000000000000000000..8070a7f3d58c7476744fb8b080af9f1b5cfb3259
--- /dev/null
+++ b/ios/chrome/browser/ui/stack_view/stack_view_controller.h
@@ -0,0 +1,79 @@
+// Copyright 2012 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.
+
+#ifndef IOS_CHROME_BROWSER_UI_STACK_VIEW_STACK_VIEW_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_UI_STACK_VIEW_STACK_VIEW_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+#import "ios/chrome/browser/ui/tab_switcher/tab_switcher.h"
+#include "ui/base/page_transition_types.h"
+
+class GURL;
+@class Tab;
+@class TabModel;
+
+// A protocol used by the StackViewController for test purposes.
+@protocol StackViewControllerTestDelegate
+@required
+// Informs the delegate that the show tab animation starts.
+- (void)stackViewControllerShowWithSelectedTabAnimationDidStart;
+// Informs the delegate that the show tab animation finished.
+- (void)stackViewControllerShowWithSelectedTabAnimationDidEnd;
+// Informs the delegate that the preload of card views finished.
+- (void)stackViewControllerPreloadCardViewsDidEnd;
+@end
+
+// Controller for the tab-switching UI displayed as a stack of tabs.
+@interface StackViewController : UIViewController<TabSwitcher>
+
+@property(nonatomic, assign) id<TabSwitcherDelegate> delegate;
+@property(nonatomic, assign) id<StackViewControllerTestDelegate> testDelegate;
+
+// Initializes with the given tab models, which must not be nil.
+// |activeTabModel| is the model which starts active, and must be one of the
+// other two models.
+// TODO(stuartmorgan): Replace the word 'active' in these methods and the
+// corresponding delegate methods. crbug.com/513782
+- (instancetype)initWithMainTabModel:(TabModel*)mainModel
+ otrTabModel:(TabModel*)otrModel
+ activeTabModel:(TabModel*)activeModel;
+
+// Restores internal state with the given tab models, which must not be nil.
+// |activeTabModel| is the model which starts active, and must be one of the
+// other two models. Should only be called when the object is not being shown.
+- (void)restoreInternalStateWithMainTabModel:(TabModel*)mainModel
+ otrTabModel:(TabModel*)otrModel
+ activeTabModel:(TabModel*)activeModel;
+
+// Updates the otr tab model. Should only be called when both the current otr
+// tab model and the new otr tab model are either nil or contain no tabs. Must
+// be called when the otr tab model will be deleted because the incognito
+// browser state is deleted.
+- (void)setOtrTabModel:(TabModel*)otrModel;
+
+// Performs an animation to zoom the selected tab from the full size of the
+// content area to its proper place in the stack. Should be called after the
+// view has been made visible.
+- (void)showWithSelectedTabAnimation;
+
+// Performs an animation to zoom the selected tab to the full size of the
+// content area. When the animation completes, calls
+// |-stackViewControllerDismissAnimationWillStartWithActiveModel:| and
+// |-stackViewControllerDismissAnimationDidEnd| on the delegate.
+- (void)dismissWithSelectedTabAnimation;
+
+// If the stack view is not already being dismissed, switches to |targetModel|'s
+// mode and performs the animation for switching out of the stack view while
+// simultaneously opening a tab with |url| in |targetModel| at the given
+// |position| with |transition|. Otherwise, simply returns nil.
+// If |position| == NSNotFound the tab will be added at the end of the stack.
+- (Tab*)dismissWithNewTabAnimationToModel:(TabModel*)targetModel
+ withURL:(const GURL&)url
+ atIndex:(NSUInteger)position
+ transition:(ui::PageTransition)transition;
+
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_STACK_VIEW_STACK_VIEW_CONTROLLER_H_
« no previous file with comments | « ios/chrome/browser/ui/stack_view/stack_card_unittest.mm ('k') | ios/chrome/browser/ui/stack_view/stack_view_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698