From c83c9e683a9376cea1ef675bfe92f7dbb98d45f5 Mon Sep 17 00:00:00 2001 From: "oshima@chromium.org" Date: Thu, 7 Jan 2010 00:52:31 +0000 Subject: Use dropdown bar for compact location bar. * Refactored CompactLocationBar to Host/View to use DropdownBarHost/View. * Changed the logic to show/hide. Per cole's request, losing focus now hides the location bar. Following features are not implemented yet. * Window cripping while animating. * Adjust location when toolbar is shown (it's always under tab) * clipping autocomplete dropdown. Timer code is no longer used right now, but is left intentionally as we may put it back. BUG=None TEST=None Review URL: http://codereview.chromium.org/525018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35674 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/views/dropdown_bar_host.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'chrome/browser/views/dropdown_bar_host.h') diff --git a/chrome/browser/views/dropdown_bar_host.h b/chrome/browser/views/dropdown_bar_host.h index 635ee18..58dcc17 100644 --- a/chrome/browser/views/dropdown_bar_host.h +++ b/chrome/browser/views/dropdown_bar_host.h @@ -49,7 +49,7 @@ class DropdownBarHost : public views::AcceleratorTarget, // Returns true if the dropdown bar view is visible, or false otherwise. bool IsVisible() const; // Shows the dropdown bar. - void Show(); + void Show(bool animate); // Hides the dropdown bar. void Hide(bool animate); // Selects text in the entry field and set focus. @@ -84,13 +84,13 @@ class DropdownBarHost : public views::AcceleratorTarget, // having to poll it while it animates to open/closed status. static bool disable_animations_during_testing_; + // Returns the browser view that the dropdown belongs to. + BrowserView* browser_view() const { return browser_view_; } + protected: // Returns the dropdown bar view. DropdownBarView* view() const { return view_; } - // Returns the browser view that the dropdown belongs to. - BrowserView* browser_view() const { return browser_view_; } - // Returns the focus tracker. views::ExternalFocusTracker* focus_tracker() const { return focus_tracker_.get(); @@ -143,6 +143,11 @@ class DropdownBarHost : public views::AcceleratorTarget, const TabContents* contents, const views::Textfield::Keystroke& key_stroke); + // Returns the animation for the dropdown. + SlideAnimation* animation() { + return animation_.get(); + } + private: // The BrowserView that created us. BrowserView* browser_view_; @@ -172,6 +177,10 @@ class DropdownBarHost : public views::AcceleratorTarget, // dropdown bar. It contains the DropdownBarView. scoped_ptr host_; + // A flag to manually manage visibility. GTK/X11 is asynchrnous and + // the state of the widget can be out of sync. + bool is_visible_; + DISALLOW_COPY_AND_ASSIGN(DropdownBarHost); }; -- cgit v1.1