Index: ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_view_controller.h |
diff --git a/ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_view_controller.h b/ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_view_controller.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ba6e4345596314d83093f8c56e1382b6e9529aa7 |
--- /dev/null |
+++ b/ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_view_controller.h |
@@ -0,0 +1,73 @@ |
+// Copyright 2014 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_NTP_RECENT_TABS_RECENT_TABS_TABLE_VIEW_CONTROLLER_H_ |
+#define IOS_CHROME_BROWSER_UI_NTP_RECENT_TABS_RECENT_TABS_TABLE_VIEW_CONTROLLER_H_ |
+ |
+#import "ios/chrome/browser/ui/ntp/new_tab_page_panel_protocol.h" |
+ |
+#import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_panel_controller.h" |
+#import "ios/chrome/browser/ui/ntp/recent_tabs/sessions_sync_user_state.h" |
+ |
+namespace sessions { |
+class TabRestoreService; |
+} |
+ |
+namespace ios { |
+class ChromeBrowserState; |
+} |
+ |
+@protocol RecentTabsTableViewControllerDelegate<NSObject> |
+// Tells the delegate when the table view content scrolled or changed size. |
+- (void)recentTabsTableViewContentMoved:(UITableView*)tableView; |
+@end |
+ |
+// Controls the content of a UITableView. |
+// |
+// The UITableView can contain the following different sections: |
+// A/ Closed tabs section. |
+// This section lists all the local tabs that were recently closed. |
+// A*/ Separator section. |
+// This section contains only a single cell that acts as a separator. |
+// B/ Other Devices section. |
+// Depending on the user state, the section will either contain a view |
+// offering the user to sign in, a view to activate sync, or a view to inform |
+// the user that they can turn on sync on other devices. |
+// C/ Session section. |
+// This section shows the sessions from other devices. |
+// |
+// Section A is always present, followed by section A*. |
+// Depending on the user sync state, either section B or section C will be |
+// presented. |
+@interface RecentTabsTableViewController |
+ : UITableViewController<UIGestureRecognizerDelegate> |
+ |
+@property(nonatomic, assign) id<RecentTabsTableViewControllerDelegate> |
+ delegate; // weak |
+ |
+// Designated initializer. The controller opens link with |loader|. |
+// |browserState| |
+// and |loader| must not be nil. |
+- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState |
+ loader:(id<UrlLoader>)loader; |
+ |
+// Refreshes the table view to match the current sync state. |
+- (void)refreshUserState:(SessionsSyncUserState)state; |
+ |
+// Refreshes the recently closed tab section. |
+- (void)refreshRecentlyClosedTabs; |
+ |
+// Sets the service used to populate the closed tab section. Can be used to nil |
+// the service in case it is not available anymore. |
+- (void)setTabRestoreService:(sessions::TabRestoreService*)tabRestoreService; |
+ |
+// Sets whether scroll to top is enabled. |
+- (void)setScrollsToTop:(BOOL)enabled; |
+ |
+// Dismisses any outstanding modal user interface elements. |
+- (void)dismissModals; |
+ |
+@end |
+ |
+#endif // IOS_CHROME_BROWSER_UI_NTP_RECENT_TABS_RECENT_TABS_TABLE_VIEW_CONTROLLER_H_ |