diff options
Diffstat (limited to 'chrome/browser/views/tabs/tab.cc')
-rw-r--r-- | chrome/browser/views/tabs/tab.cc | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/chrome/browser/views/tabs/tab.cc b/chrome/browser/views/tabs/tab.cc index efebda1..a775734 100644 --- a/chrome/browser/views/tabs/tab.cc +++ b/chrome/browser/views/tabs/tab.cc @@ -13,6 +13,7 @@ #include "base/compiler_specific.h" #include "base/gfx/size.h" #include "chrome/browser/tab_menu_model.h" +#include "chrome/browser/views/frame/browser_extender.h" #include "chrome/browser/views/frame/browser_view.h" #include "chrome/browser/views/tabs/tab_strip.h" #include "grit/generated_resources.h" @@ -141,6 +142,11 @@ bool Tab::OnMousePressed(const views::MouseEvent& event) { bool just_selected = !IsSelected(); if (just_selected) { delegate_->SelectTab(this); + // This is a hack to update the compact location bar when the tab + // is selected. This is just an experiement and will be modified later. + // TODO(oshima): Improve the BrowserExtender interface if we + // decided to keep this UI, or remove this otherwise. + GetBrowserExtender()->OnMouseEnteredToTab(this); } delegate_->MaybeStartDrag(this, event); } @@ -168,6 +174,20 @@ void Tab::OnMouseReleased(const views::MouseEvent& event, bool canceled) { delegate_->CloseTab(this); } +void Tab::OnMouseEntered(const views::MouseEvent& event) { + TabRenderer::OnMouseEntered(event); + GetBrowserExtender()->OnMouseEnteredToTab(this); +} + +void Tab::OnMouseMoved(const views::MouseEvent& event) { + GetBrowserExtender()->OnMouseMovedOnTab(this); +} + +void Tab::OnMouseExited(const views::MouseEvent& event) { + TabRenderer::OnMouseExited(event); + GetBrowserExtender()->OnMouseExitedFromTab(this); +} + bool Tab::GetTooltipText(int x, int y, std::wstring* tooltip) { std::wstring title = GetTitle(); if (!title.empty()) { @@ -221,6 +241,17 @@ void Tab::ButtonPressed(views::Button* sender, const views::Event& event) { /////////////////////////////////////////////////////////////////////////////// // Tab, private: +BrowserExtender* Tab::GetBrowserExtender() { + // This is a hack to BrowserExtender from a Tab. + // TODO(oshima): Fix when the decision on compact location bar is made. + // Potential candidates are: + // * Use View ID with a cached reference to BrowserView. + // * Pass the BrowserView reference to Tabs. + // * Add GetBrowserView method to Delegate. + TabStrip* tab_strip = static_cast<TabStrip*>(delegate_); + return static_cast<BrowserView*>(tab_strip->GetParent())->browser_extender(); +} + void Tab::MakePathForTab(gfx::Path* path) const { DCHECK(path); |