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/toolbar/web_toolbar_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/toolbar/web_toolbar_controller.h
diff --git a/ios/chrome/browser/ui/toolbar/web_toolbar_controller.h b/ios/chrome/browser/ui/toolbar/web_toolbar_controller.h
new file mode 100644
index 0000000000000000000000000000000000000000..16732f5c0036f63245b6b689c67e80bd8292f0a7
--- /dev/null
+++ b/ios/chrome/browser/ui/toolbar/web_toolbar_controller.h
@@ -0,0 +1,169 @@
+// 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_TOOLBAR_WEB_TOOLBAR_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_UI_TOOLBAR_WEB_TOOLBAR_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+#include "ios/chrome/browser/ui/omnibox/location_bar_view_ios.h"
+#include "ios/chrome/browser/ui/omnibox/omnibox_popup_positioner.h"
+#include "ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller.h"
+#import "ios/chrome/browser/ui/toolbar/toolbar_controller.h"
+#include "ios/public/provider/chrome/browser/voice/voice_search_controller_delegate.h"
+
+@protocol PreloadProvider;
+@class Tab;
+@protocol ToolbarFrameDelegate;
+class ToolbarModelIOS;
+@protocol UrlLoader;
+
+namespace ios {
+class ChromeBrowserState;
+}
+
+namespace web {
+class WebState;
+}
+
+// Notification when the tab history popup is shown.
+extern NSString* const kTabHistoryPopupWillShowNotification;
+// Notification when the tab history popup is hidden.
+extern NSString* const kTabHistoryPopupWillHideNotification;
+// The brightness of the omnibox placeholder text in regular mode,
+// on an iPhone.
+extern const CGFloat kiPhoneOmniboxPlaceholderColorBrightness;
+
+// Delegate interface, to be implemented by the controller's delegate.
+@protocol WebToolbarDelegate<NSObject>
+@required
+// Called when the location bar gains keyboard focus.
+- (IBAction)locationBarDidBecomeFirstResponder:(id)sender;
+// Called when the location bar loses keyboard focus.
+- (IBAction)locationBarDidResignFirstResponder:(id)sender;
+// Called when the location bar receives a key press.
+- (IBAction)locationBarBeganEdit:(id)sender;
+// Called when the stack view controller is about to be shown.
+- (IBAction)prepareToEnterTabSwitcher:(id)sender;
+// Loads the text entered in the location bar as javascript.
+// Note: The JavaScript is executed asynchronously.
+- (void)loadJavaScriptFromLocationBar:(NSString*)script;
+// Returns the WebState.
+- (web::WebState*)currentWebState;
+// Called when the toolbar height changes. Other elements, such as the web view,
+// may need to adjust accordingly. This is called from within an animation
+// block.
+- (void)toolbarHeightChanged;
+- (ToolbarModelIOS*)toolbarModelIOS;
+// Sets the alpha for the toolbar's background views.
+- (void)updateToolbarBackgroundAlpha:(CGFloat)backgroundAlpha;
+// Sets the alpha for the toolbar's background views.
+- (void)updateToolbarControlsAlpha:(CGFloat)controlsAlpha;
+@optional
+// Called before the toolbar screenshot gets updated.
+- (void)willUpdateToolbarSnapshot;
+@end
+
+// This protocol provides callbacks for focusing and blurring the omnibox.
+@protocol OmniboxFocuser
+// Give focus to the omnibox, if it is visible. No-op if it is not visible.
+- (void)focusOmnibox;
+// Cancel omnibox edit (from shield tap or cancel button tap).
+- (void)cancelOmniboxEdit;
+// Give focus to the omnibox, but indicate that the focus event was initiated
+// from the fakebox on the Google landing page.
+- (void)focusFakebox;
+// Hides the toolbar when the fakebox is blurred.
+- (void)onFakeboxBlur;
+// Shows the toolbar when the fakebox has animated to full bleed.
+- (void)onFakeboxAnimationComplete;
+@end
+
+// Web-view specific toolbar, adding navigation controls like back/forward,
+// omnibox, etc.
+@interface WebToolbarController
+ : ToolbarController<OmniboxFocuser,
+ QRScannerViewControllerDelegate,
+ VoiceSearchControllerDelegate>
+
+@property(nonatomic, assign) id<WebToolbarDelegate> delegate;
+@property(nonatomic, assign, readonly) id<UrlLoader> urlLoader;
+
+// Mark inherited initializer as unavailable.
+- (instancetype)initWithStyle:(ToolbarControllerStyle)style NS_UNAVAILABLE;
+
+// Create a new web toolbar controller whose omnibox is backed by
+// |browserState|.
+- (instancetype)initWithDelegate:(id<WebToolbarDelegate>)delegate
+ urlLoader:(id<UrlLoader>)urlLoader
+ browserState:(ios::ChromeBrowserState*)browserState
+ preloadProvider:(id<PreloadProvider>)preloader
+ NS_DESIGNATED_INITIALIZER;
+
+// Called when the browser state this object was initialized with is being
+// destroyed.
+- (void)browserStateDestroyed;
+
+// Update the visibility of the back/forward buttons, omnibox, etc.
+- (void)updateToolbarState;
+
+// Update the visibility of the toolbar before making a side swipe snapshot so
+// the toolbar looks appropriate for |tab|. This includes morphing the toolbar
+// to look like the new tab page header.
+- (void)updateToolbarForSideSwipeSnapshot:(Tab*)tab;
+
+// Remove any formatting added by -updateToolbarForSideSwipeSnapshot.
+- (void)resetToolbarAfterSideSwipeSnapshot;
+
+// Briefly animate the progress bar when a pre-rendered tab is displayed.
+- (void)showPrerenderingAnimation;
+
+// Hides or shows the toolbar controls. When controls are hidden, the toolbar
+// will be drawn as an empty bar with the usual background.
+- (void)setControlsHidden:(BOOL)hidden;
+
+// Set the alpha of the toolbar controls, for fading while tracking gestures.
+- (void)setControlsAlpha:(CGFloat)alpha;
+
+// Called when the current page starts loading.
+- (void)currentPageLoadStarted;
+
+// Called when the current tab changes or is closed.
+- (void)selectedTabChanged;
+
+// Returns the bound of the bookmark button. Used to position the bookmark
+// editor.
+- (CGRect)bookmarkButtonAnchorRect;
+
+// Returns the bookmark button's view. Used to position the bookmark editor.
+- (UIView*)bookmarkButtonView;
+
+// Returns visible omnibox frame in WebToolbarController's view coordinate
+// system.
+- (CGRect)visibleOmniboxFrame;
+
+// Returns a UIImage containing a snapshot of the view at the given width. If
+// |width| is 0, it uses the view's current width. Returns the cached snapshot
+// if it is up to date.
+- (UIImage*)snapshotWithWidth:(CGFloat)width;
+
+// Shows the tab history popup inside |view|.
+- (void)showTabHistoryPopupInView:(UIView*)view
+ withSessionEntries:(NSArray*)sessionEntries
+ forBackHistory:(BOOL)isBackHistory;
+
+// Dismisses the tab history popup.
+- (void)dismissTabHistoryPopup;
+
+// Returns whether omnibox is a first responder.
+- (BOOL)isOmniboxFirstResponder;
+
+// Returns whether the omnibox popup is currently displayed.
+- (BOOL)showingOmniboxPopup;
+
+- (void)traitCollectionDidChange:(UITraitCollection*)previousTraitCollection;
+
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_TOOLBAR_WEB_TOOLBAR_CONTROLLER_H_

Powered by Google App Engine
This is Rietveld 408576698