Index: ios/chrome/browser/ui/browser_view_controller.h |
diff --git a/ios/chrome/browser/ui/browser_view_controller.h b/ios/chrome/browser/ui/browser_view_controller.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6531d867bce9b02b4a8e1729cf5cd23391016c14 |
--- /dev/null |
+++ b/ios/chrome/browser/ui/browser_view_controller.h |
@@ -0,0 +1,158 @@ |
+// 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_BROWSER_VIEW_CONTROLLER_H_ |
+#define IOS_CHROME_BROWSER_UI_BROWSER_VIEW_CONTROLLER_H_ |
+ |
+#import <MessageUI/MessageUI.h> |
+#import <StoreKit/StoreKit.h> |
+#import <UIKit/UIKit.h> |
+ |
+#import "base/ios/block_types.h" |
+#import "ios/chrome/browser/ui/browser_ios.h" |
+#import "ios/chrome/browser/ui/side_swipe/side_swipe_controller.h" |
+#import "ios/chrome/browser/ui/toolbar/toolbar_owner.h" |
+#import "ios/chrome/browser/ui/toolbar/web_toolbar_controller.h" |
+#import "ios/chrome/browser/ui/url_loader.h" |
+#import "ios/public/provider/chrome/browser/voice/voice_search_presenter.h" |
+ |
+@class BrowserContainerView; |
+@class BrowserViewControllerDependencyFactory; |
+@class ContextualSearchController; |
+@class ContextualSearchPanelView; |
+@class FindBarControllerIOS; |
+class GURL; |
+@class NoTabsController; |
+@class PageInfoViewController; |
+@class PreloadController; |
+@class PrintController; |
+@class SideSwipeController; |
+@class Tab; |
+@class TabModel; |
+@class TabStripController; |
+@class ThumbnailHelper; |
+@class VoiceSearchBarView; |
+ |
+namespace ios { |
+class ChromeBrowserState; |
+} |
+ |
+namespace ios_internal { |
+// Notification sent when the page info is shown. |
+extern NSString* const kPageInfoWillShowNotification; |
+// Notification sent when the page info is hidden. |
+extern NSString* const kPageInfoWillHideNotification; |
+// Notification sent when the location bar becomes first responder. |
+extern NSString* const kLocationBarBecomesFirstResponderNotification; |
+// Notification sent when the location bar resigns first responder. |
+extern NSString* const kLocationBarResignsFirstResponderNotification; |
+} // namespace ios_internal |
+ |
+// The top-level view controller for the browser UI. Manages other controllers |
+// which implement the interface. |
+@interface BrowserViewController : UIViewController<BrowserIOS, |
+ SideSwipeControllerDelegate, |
+ ToolbarOwner, |
+ UrlLoader, |
+ VoiceSearchPresenter, |
+ WebToolbarDelegate> |
+ |
+// Initializes a new BVC from its nib. |model| must not be nil. The |
+// webUsageSuspended property for this BVC will be based on |model|, and future |
+// changes to |model|'s suspension state should be made through this BVC |
+// instead of directly on the model. |
+- (instancetype)initWithTabModel:(TabModel*)model |
+ browserState:(ios::ChromeBrowserState*)browserState |
+ dependencyFactory: |
+ (BrowserViewControllerDependencyFactory*)factory |
+ NS_DESIGNATED_INITIALIZER; |
+ |
+- (instancetype)initWithNibName:(NSString*)nibNameOrNil |
+ bundle:(NSBundle*)nibBundleOrNil NS_UNAVAILABLE; |
+ |
+- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE; |
+ |
+// The top-level browser container view. |
+@property(nonatomic, retain) BrowserContainerView* contentArea; |
+ |
+// Invisible button used to dismiss the keyboard. |
+@property(nonatomic, retain) UIButton* typingShield; |
+ |
+// Valid only for tablet. YES if the tab strip will display the mode toggle |
+// switch. May be set to the same value repeatedly with no layout penalty |
+// (guaranteed by the tab strip). |
+@property(nonatomic, assign) BOOL hasModeToggleSwitch; |
+ |
+// Activates/deactivates the object. This will enable/disable the ability for |
+// this object to browse, and to have live UIWebViews associated with it. While |
+// not active, the UI will not react to changes in the tab model, so generally |
+// an inactive BVC should not be visible. |
+@property(nonatomic, assign, getter=isActive) BOOL active; |
+ |
+// Returns whether or not text to speech is playing. |
+@property(nonatomic, assign, readonly, getter=isPlayingTTS) BOOL playingTTS; |
+ |
+// Whether the receiver is currently the primary BVC. |
+- (void)setPrimary:(BOOL)primary; |
+ |
+// Called when the typing shield is tapped. |
+- (void)shieldWasTapped:(id)sender; |
+ |
+// Called when a UI element to create a new tab is triggered. |
+- (void)newTab:(id)sender; |
+ |
+// Makes sure that the view hierarchy has been built. Equivalent to calling |
+// -view, but without the annoying compiler warning. |
+- (void)ensureViewCreated; |
+ |
+// Called when the browser state provided to this instance is being destroyed. |
+// At this point the browser will no longer ever be active, and will likely be |
+// deallocated soon. |
+- (void)browserStateDestroyed; |
+ |
+// Add a new tab with the given url, appends it to the end of the model, |
+// and makes it the selected tab. The selected tab is returned. |
+- (Tab*)addSelectedTabWithURL:(const GURL&)url |
+ transition:(ui::PageTransition)transition; |
+ |
+// Add a new tab with the given url, at the given |position|, |
+// and makes it the selected tab. The selected tab is returned. |
+// If |position| == NSNotFound the tab will be added at the end of the stack. |
+- (Tab*)addSelectedTabWithURL:(const GURL&)url |
+ atIndex:(NSUInteger)position |
+ transition:(ui::PageTransition)transition; |
+ |
+// This will dismiss the web views on all the tabs and reload the frontmost one |
+// if there is one. This is used when a userdefault changes and the web views |
+// need to be re-created to pick it up. |
+- (void)resetAllWebViews; |
+ |
+// Informs the BVC that a new foreground tab is about to be opened. This is |
+// intended to be called before setWebUsageSuspended:NO in cases where a new tab |
+// is about to appear in order to allow the BVC to avoid doing unnecessary work |
+// related to showing the previously selected tab. |
+- (void)expectNewForegroundTab; |
+ |
+// Shows the voice search UI. |
+- (void)startVoiceSearch; |
+ |
+// Shows the QR scanner UI. |
+- (void)showQRScanner; |
+ |
+// Dismisses all presented views then calls |completion|. |
+- (void)clearPresentedStateWithCompletion:(ProceduralBlock)completion; |
+ |
+// Returns a set with the names of the files received from other applications |
+// that are bookmarked or referenced by an open or recently closed tab. |
+- (NSSet*)referencedExternalFiles; |
+ |
+// Removes files received from other applications. If |immediately| is YES, |
+// initiates the removal of files immediately. |completionHandler| is called |
+// when files have been removed. |
+- (void)removeExternalFilesImmediately:(BOOL)immediately |
+ completionHandler:(ProceduralBlock)completionHandler; |
+ |
+@end |
+ |
+#endif // IOS_CHROME_BROWSER_UI_BROWSER_VIEW_CONTROLLER_H_ |