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

Unified Diff: ios/chrome/browser/ui/tab_switcher/tab_switcher_panel_controller.h

Issue 2588733002: Upstream Chrome on iOS source code [9/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/tab_switcher/tab_switcher_panel_controller.h
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_switcher_panel_controller.h b/ios/chrome/browser/ui/tab_switcher/tab_switcher_panel_controller.h
new file mode 100644
index 0000000000000000000000000000000000000000..402f74c6ca8a784c36281bfc1ef9c35f56cfb71e
--- /dev/null
+++ b/ios/chrome/browser/ui/tab_switcher/tab_switcher_panel_controller.h
@@ -0,0 +1,101 @@
+// Copyright 2015 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_TAB_SWITCHER_TAB_SWITCHER_PANEL_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_SWITCHER_PANEL_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+#include "base/ios/block_types.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_switcher_model.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_switcher_panel_cell.h"
+
+namespace ios {
+class ChromeBrowserState;
+}
+
+@class TabSwitcherLocalSessionCell;
+@class TabSwitcherPanelController;
+
+@protocol TabSwitcherPanelControllerDelegate<NSObject>
+
+// Called when the user selects the cell representing the distant tab |tab|.
+- (void)tabSwitcherPanelController:
+ (TabSwitcherPanelController*)tabSwitcherPanelController
+ didSelectDistantTab:(synced_sessions::DistantTab*)tab;
+
+// Called when the user selects the cell representing the local tab |tab|.
+- (void)tabSwitcherPanelController:
+ (TabSwitcherPanelController*)tabSwitcherPanelController
+ didSelectLocalTab:(Tab*)tab;
+
+// Called when the user pressed the close button on the cell representing the
+// local tab |tab|.
+- (void)tabSwitcherPanelController:
+ (TabSwitcherPanelController*)tabSwitcherPanelController
+ didCloseLocalTab:(Tab*)tab;
+
+// Called when the overlay view visibility changed.
+- (void)tabSwitcherPanelControllerDidUpdateOverlayViewVisibility:
+ (TabSwitcherPanelController*)tabSwitcherPanelController;
+
+@end
+
+@class TabSwitcherPanelView;
+// The tab switcher panel controller manages a panel view.
+// It can manage either distant or local sessions and uses a TabSwitcherModel
+// as its data source.
+@class TabSwitcherCache;
+
+@interface TabSwitcherPanelController : NSObject
+
+@property(nonatomic, readonly) TabSwitcherPanelView* view;
+@property(nonatomic, assign) id<TabSwitcherPanelControllerDelegate> delegate;
+@property(nonatomic, readonly) ios_internal::SessionType sessionType;
+
+// Initializes a controller for a view showing local tabs. |offTheRecord|
+// determines whether the tabs will be shown for the incognito browser state or
+// not. |model| is used to populate the view and must not be nil.
+- (instancetype)initWithModel:(TabSwitcherModel*)model
+ forLocalSessionOfType:(ios_internal::SessionType)type
+ withCache:(TabSwitcherCache*)cache
+ browserState:(ios::ChromeBrowserState*)browserState;
+
+// Initializes a controller for a view showing the tabs of a distant session.
+// |model| is used to populate the view and must not be nil.
+- (instancetype)initWithModel:(TabSwitcherModel*)model
+ forDistantSessionWithTag:(std::string const&)sessionTag
+ browserState:(ios::ChromeBrowserState*)browserState;
+
+// Tells the controller that the collectionview's content may need to be
+// updated.
+- (void)updateCollectionViewIfNeeded;
+
+// Returns the tag of the distant session.
+- (std::string)sessionTag;
+
+// Returns true if the new tab button should be shown.
+- (BOOL)shouldShowNewTabButton;
+
+// Scrolls the collection view so that the tab cell at the given index is
+// visible.
+- (void)scrollTabIndexToVisible:(NSInteger)index triggerLayout:(BOOL)layout;
+
+// Returns the cell for the tab at the given index.
+// This methods should only be used for animation purpose.
+- (TabSwitcherLocalSessionCell*)localSessionCellForTabAtIndex:(NSInteger)index;
+
+- (CGRect)localSessionCellFrameForTabAtIndex:(NSInteger)index;
+
+// Reloads cells.
+- (void)reload;
+
+- (UICollectionView*)collectionView;
+
+// Returns the distantSession owned and displayed by this controller.
+- (const synced_sessions::DistantSession*)distantSession;
+
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_SWITCHER_PANEL_CONTROLLER_H_

Powered by Google App Engine
This is Rietveld 408576698