diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-27 01:07:18 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-27 01:07:18 +0000 |
commit | da99a54a499890a2773b4c4ed5e9fe54b35780d1 (patch) | |
tree | 7868aae1e1a1a54190322f970e3f91fbf616f992 /chrome/browser/views | |
parent | 65e7a79bade71acadf8aee3dd96f93f71080503a (diff) | |
download | chromium_src-da99a54a499890a2773b4c4ed5e9fe54b35780d1.zip chromium_src-da99a54a499890a2773b4c4ed5e9fe54b35780d1.tar.gz chromium_src-da99a54a499890a2773b4c4ed5e9fe54b35780d1.tar.bz2 |
Extract a cross-platform LocationBar interface accessible via the BrowserWindow interface that the Browser object can use to do locationbar-ey things without directly depending on Views.
Review URL: http://codereview.chromium.org/18826
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8693 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views')
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 16 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.h | 4 | ||||
-rw-r--r-- | chrome/browser/views/location_bar_view.cc | 46 | ||||
-rw-r--r-- | chrome/browser/views/location_bar_view.h | 33 |
4 files changed, 63 insertions, 36 deletions
diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index b3229c9..2316558 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -171,8 +171,8 @@ void BrowserView::WindowMoved() { status_bubble_->Reposition(); // Close the omnibox popup, if any. - if (GetLocationBarView()) - GetLocationBarView()->location_entry()->ClosePopup(); + if (toolbar_->GetLocationBarView()) + toolbar_->GetLocationBarView()->location_entry()->ClosePopup(); } gfx::Rect BrowserView::GetToolbarBounds() const { @@ -480,14 +480,10 @@ bool BrowserView::IsMaximized() { return frame_->GetWindow()->IsMaximized(); } -LocationBarView* BrowserView::GetLocationBarView() const { +LocationBar* BrowserView::GetLocationBar() const { return toolbar_->GetLocationBarView(); } -BrowserView* BrowserView::GetBrowserView() const { - return NULL; -} - void BrowserView::UpdateStopGoState(bool is_loading) { toolbar_->GetGoButton()->ChangeMode( is_loading ? GoButton::MODE_STOP : GoButton::MODE_GO); @@ -643,6 +639,10 @@ BookmarkBarView* BrowserView::GetBookmarkBarView() { return bookmark_bar_view_.get(); } +LocationBarView* BrowserView::GetLocationBarView() const { + return toolbar_->GetLocationBarView(); +} + /////////////////////////////////////////////////////////////////////////////// // BrowserView, NotificationObserver implementation: @@ -734,7 +734,7 @@ std::wstring BrowserView::GetWindowTitle() const { } views::View* BrowserView::GetInitiallyFocusedView() const { - return GetLocationBarView(); + return toolbar_->GetLocationBarView(); } bool BrowserView::ShouldShowWindowTitle() const { diff --git a/chrome/browser/views/frame/browser_view.h b/chrome/browser/views/frame/browser_view.h index 39c2532..cfe5be4 100644 --- a/chrome/browser/views/frame/browser_view.h +++ b/chrome/browser/views/frame/browser_view.h @@ -162,8 +162,7 @@ class BrowserView : public BrowserWindow, virtual void SetStarredState(bool is_starred); virtual gfx::Rect GetNormalBounds() const; virtual bool IsMaximized(); - virtual LocationBarView* GetLocationBarView() const; - virtual BrowserView* GetBrowserView() const; + virtual LocationBar* GetLocationBar() const; virtual void UpdateStopGoState(bool is_loading); virtual void UpdateToolbar(TabContents* contents, bool should_restore_state); virtual void FocusToolbar(); @@ -186,6 +185,7 @@ class BrowserView : public BrowserWindow, // Overridden from BrowserWindowTesting: virtual BookmarkBarView* GetBookmarkBarView(); + virtual LocationBarView* GetLocationBarView() const; // Overridden from NotificationObserver: virtual void Observe(NotificationType type, diff --git a/chrome/browser/views/location_bar_view.cc b/chrome/browser/views/location_bar_view.cc index aa6fb1d..0ee51ea 100644 --- a/chrome/browser/views/location_bar_view.cc +++ b/chrome/browser/views/location_bar_view.cc @@ -876,13 +876,6 @@ void LocationBarView::ShowFirstRunBubbleInternal() { bounds); } -void LocationBarView::ShowFirstRunBubble() { - // We wait 30 milliseconds to open. It allows less flicker. - Task* task = first_run_bubble_.NewRunnableMethod( - &LocationBarView::ShowFirstRunBubbleInternal); - MessageLoop::current()->PostDelayedTask(FROM_HERE, task, 30); -} - // SecurityImageView------------------------------------------------------------ // static @@ -1005,3 +998,42 @@ bool LocationBarView::OverrideAccelerator( return location_entry_->OverrideAccelerator(accelerator); } +//////////////////////////////////////////////////////////////////////////////// +// LocationBarView, LocationBar implementation: + +void LocationBarView::ShowFirstRunBubble() { + // We wait 30 milliseconds to open. It allows less flicker. + Task* task = first_run_bubble_.NewRunnableMethod( + &LocationBarView::ShowFirstRunBubbleInternal); + MessageLoop::current()->PostDelayedTask(FROM_HERE, task, 30); +} + +std::wstring LocationBarView::GetInputString() const { + return location_input_; +} + +WindowOpenDisposition LocationBarView::GetWindowOpenDisposition() const { + return disposition_; +} + +PageTransition::Type LocationBarView::GetPageTransition() const { + return transition_; +} + +void LocationBarView::AcceptInput() { + location_entry_->model()->AcceptInput(CURRENT_TAB, false); +} + +void LocationBarView::FocusLocation() { + location_entry_->SetFocus(); + location_entry_->SelectAll(true); +} + +void LocationBarView::FocusSearch() { + location_entry_->SetUserText(L"?"); + location_entry_->SetFocus(); +} + +void LocationBarView::SaveStateToContents(TabContents* contents) { + location_entry_->SaveStateToTab(contents); +} diff --git a/chrome/browser/views/location_bar_view.h b/chrome/browser/views/location_bar_view.h index eb3b4ef..ec01c63 100644 --- a/chrome/browser/views/location_bar_view.h +++ b/chrome/browser/views/location_bar_view.h @@ -9,6 +9,7 @@ #include "base/gfx/rect.h" #include "chrome/browser/autocomplete/autocomplete_edit.h" +#include "chrome/browser/location_bar.h" #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/toolbar_model.h" #include "chrome/browser/views/info_bubble.h" @@ -30,10 +31,10 @@ class Profile; // of the URL bar strip and contains its content. // ///////////////////////////////////////////////////////////////////////////// -class LocationBarView : public views::View, +class LocationBarView : public LocationBar, + public views::View, public AutocompleteEditController { public: - class Delegate { public: // Should return the current tab contents. @@ -107,25 +108,19 @@ class LocationBarView : public views::View, return location_entry_.get(); } - std::wstring location_input() { - return location_input_; - } - - WindowOpenDisposition disposition() { - return disposition_; - } - - PageTransition::Type transition() { - return transition_; - } - - // Shows a info bubble that tells the user what the omnibox is and allows - // to change the search providers. - void ShowFirstRunBubble(); - - // Overridden from View. + // Overridden from views::View: virtual bool OverrideAccelerator(const views::Accelerator& accelerator); + // Overridden from LocationBar: + virtual void ShowFirstRunBubble(); + virtual std::wstring GetInputString() const; + virtual WindowOpenDisposition GetWindowOpenDisposition() const; + virtual PageTransition::Type GetPageTransition() const; + virtual void AcceptInput(); + virtual void FocusLocation(); + virtual void FocusSearch(); + virtual void SaveStateToContents(TabContents* contents); + static const int kTextVertMargin; static const COLORREF kBackgroundColorByLevel[]; |