summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/chromeos_browser_extenders.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/chromeos_browser_extenders.cc')
-rw-r--r--chrome/browser/chromeos/chromeos_browser_extenders.cc42
1 files changed, 41 insertions, 1 deletions
diff --git a/chrome/browser/chromeos/chromeos_browser_extenders.cc b/chrome/browser/chromeos/chromeos_browser_extenders.cc
index e7c8fcd..9e3645e 100644
--- a/chrome/browser/chromeos/chromeos_browser_extenders.cc
+++ b/chrome/browser/chromeos/chromeos_browser_extenders.cc
@@ -6,6 +6,7 @@
#include "app/theme_provider.h"
#include "chrome/app/chrome_dll_resource.h"
+#include "chrome/browser/chromeos/compact_location_bar.h"
#include "chrome/browser/chromeos/compact_navigation_bar.h"
#include "chrome/browser/chromeos/main_menu.h"
#include "chrome/browser/chromeos/status_area_view.h"
@@ -14,6 +15,8 @@
#include "chrome/browser/views/frame/browser_frame_gtk.h"
#include "chrome/browser/views/frame/browser_view.h"
#include "chrome/browser/views/tabs/tab_overview_types.h"
+#include "chrome/browser/views/tabs/tab_strip.h"
+#include "chrome/browser/views/tabs/tab_strip_wrapper.h"
#include "chrome/browser/views/toolbar_view.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -60,6 +63,7 @@ class NormalExtender : public BrowserExtender,
main_menu_->SetImage(views::CustomButton::BS_PUSHED, image);
browser_view()->AddChildView(main_menu_);
+ compact_location_bar_.reset(new CompactLocationBar(browser_view()));
compact_navigation_bar_ =
new CompactNavigationBar(browser_view()->browser());
browser_view()->AddChildView(compact_navigation_bar_);
@@ -96,6 +100,12 @@ class NormalExtender : public BrowserExtender,
status_area_->SetVisible(true);
}
+ if (compact_navigation_bar_->IsVisible()) {
+ // Update the size and location of the compact location bar.
+ compact_location_bar_->UpdateBounds(
+ browser_view()->tabstrip()->AsTabStrip()->GetSelectedTab());
+ }
+
// Layout main menu before tab strip.
gfx::Size main_menu_size = main_menu_->GetPreferredSize();
main_menu_->SetBounds(bounds.x(), bounds.y(),
@@ -164,7 +174,28 @@ class NormalExtender : public BrowserExtender,
compact_navigation_bar_enabled_ = !compact_navigation_bar_enabled_;
}
+ virtual void OnMouseEnteredToTab(Tab* tab) {
+ ShowCompactLocationBarUnderSelectedTab();
+ }
+
+ virtual void OnMouseMovedOnTab(Tab* tab) {
+ ShowCompactLocationBarUnderSelectedTab();
+ }
+
+ virtual void OnMouseExitedFromTab(Tab* tab) {
+ compact_location_bar_->StartPopupTimer();
+ }
+
private:
+ // Shows the compact location bar under the selected tab.
+ void ShowCompactLocationBarUnderSelectedTab() {
+ if (!compact_navigation_bar_enabled_)
+ return;
+ compact_location_bar_->Update(
+ browser_view()->tabstrip()->AsTabStrip()->GetSelectedTab(),
+ browser_view()->browser()->GetSelectedTabContents());
+ }
+
// Creates system menu.
void InitSystemMenu() {
system_menu_contents_.reset(new views::SimpleMenuModel(browser_view()));
@@ -196,7 +227,7 @@ class NormalExtender : public BrowserExtender,
// Status Area view.
StatusAreaView* status_area_;
- // System menus
+ // System menus.
scoped_ptr<views::SimpleMenuModel> system_menu_contents_;
scoped_ptr<views::Menu2> system_menu_menu_;
@@ -206,6 +237,9 @@ class NormalExtender : public BrowserExtender,
// A toggle flag to show/hide the compact navigation bar.
bool compact_navigation_bar_enabled_;
+ // CompactLocationBar view.
+ scoped_ptr<CompactLocationBar> compact_location_bar_;
+
DISALLOW_COPY_AND_ASSIGN(NormalExtender);
};
@@ -275,6 +309,12 @@ class PopupExtender : public BrowserExtender {
virtual void ToggleCompactNavigationBar() {}
+ virtual void OnMouseEnteredToTab(Tab* tab) {}
+
+ virtual void OnMouseMovedOnTab(Tab* tab) {}
+
+ virtual void OnMouseExitedFromTab(Tab* tab) {}
+
// Controls interactions with the window manager for popup panels.
scoped_ptr<PanelController> panel_controller_;