diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-06 07:34:34 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-06 07:34:34 +0000 |
commit | 34acadd501bf6f49b961aa4d369ae863171e71f5 (patch) | |
tree | 292a0f99b9c88c4b64c539b03c9f24d8ba98e316 /chrome | |
parent | ce256d15b4fd1758c78282d3d241f79d347602ea (diff) | |
download | chromium_src-34acadd501bf6f49b961aa4d369ae863171e71f5.zip chromium_src-34acadd501bf6f49b961aa4d369ae863171e71f5.tar.gz chromium_src-34acadd501bf6f49b961aa4d369ae863171e71f5.tar.bz2 |
Place main menu and otr icon in right places.
Changed opaque frame to use main menu's width as offset
Extender simply places the main menu on left edge.
Moved extender's Init call to browser view so that
Init can use extender inside (just to be more safe).
BUG=chromium-os:985
TEST=None
Review URL: http://codereview.chromium.org/518033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35617 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/chromeos/browser_extenders.cc | 27 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_extender.h | 4 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 1 | ||||
-rw-r--r-- | chrome/browser/views/frame/opaque_browser_frame_view.cc | 8 | ||||
-rw-r--r-- | chrome/browser/views/frame/standard_extender.cc | 1 |
5 files changed, 31 insertions, 10 deletions
diff --git a/chrome/browser/chromeos/browser_extenders.cc b/chrome/browser/chromeos/browser_extenders.cc index 3c8479a..578586e 100644 --- a/chrome/browser/chromeos/browser_extenders.cc +++ b/chrome/browser/chromeos/browser_extenders.cc @@ -158,7 +158,13 @@ class NormalExtender : public BrowserExtender, // Layout main menu before tab strip. gfx::Size main_menu_size = main_menu_->GetPreferredSize(); - main_menu_->SetBounds(bounds.x(), bounds.y(), + + // TODO(oshima): Use 0 for x position for now as this is + // sufficient for chromeos where the window is always + // maximized. The correct value is + // OpaqueBrowserFrameView::NonClientBorderThickness() and we will + // consider exposing it once we settle on the UI. + main_menu_->SetBounds(0, bounds.y(), main_menu_size.width(), bounds.height()); // Layout status area after tab strip. @@ -167,8 +173,8 @@ class NormalExtender : public BrowserExtender, status_area_->SetBounds(bounds.x() + bounds.width() - status_size.width(), bounds.y(), status_size.width(), status_size.height()); - int curx = bounds.x() + main_menu_size.width(); - int width = bounds.width() - main_menu_size.width() - status_size.width(); + int curx = bounds.x(); + int width = bounds.width() - status_size.width(); if (compact_navigation_bar_->IsVisible()) { gfx::Size cnb_bounds = compact_navigation_bar_->GetPreferredSize(); @@ -263,6 +269,10 @@ class NormalExtender : public BrowserExtender, return force_maximized_window_; } + virtual int GetMainMenuWidth() const { + return main_menu_->GetPreferredSize().width(); + } + private: // Shows the compact location bar under the selected tab. void ShowCompactLocationBarUnderSelectedTab() { @@ -410,6 +420,10 @@ class PopupExtender : public BrowserExtender { return false; } + virtual int GetMainMenuWidth() const { + return 0; + } + // Controls interactions with the window manager for popup panels. scoped_ptr<chromeos::PanelController> panel_controller_; @@ -423,11 +437,8 @@ class PopupExtender : public BrowserExtender { // static BrowserExtender* BrowserExtender::Create(BrowserView* browser_view) { - BrowserExtender* extender; if (browser_view->browser()->type() & Browser::TYPE_POPUP) - extender = new PopupExtender(browser_view); + return new PopupExtender(browser_view); else - extender = new NormalExtender(browser_view); - extender->Init(); - return extender; + return new NormalExtender(browser_view); } diff --git a/chrome/browser/views/frame/browser_extender.h b/chrome/browser/views/frame/browser_extender.h index 48c5056..303fb91 100644 --- a/chrome/browser/views/frame/browser_extender.h +++ b/chrome/browser/views/frame/browser_extender.h @@ -79,6 +79,10 @@ class BrowserExtender { // Called when a mouse exited from the |tab|. virtual void OnMouseExitedFromTab(Tab* tab) = 0; + // Returns the main menu's width. This is used in the opaque frame + // to layout otr icons and tabstrips. + virtual int GetMainMenuWidth() const = 0; + // Tells if the browser can be closed. bool can_close() const { return can_close_; diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index d760b3e..f708963 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -1909,6 +1909,7 @@ void BrowserView::Init() { #endif browser_extender_.reset(BrowserExtender::Create(this)); + browser_extender_->Init(); } #if defined(OS_WIN) diff --git a/chrome/browser/views/frame/opaque_browser_frame_view.cc b/chrome/browser/views/frame/opaque_browser_frame_view.cc index a31e3d3..2de7b02 100644 --- a/chrome/browser/views/frame/opaque_browser_frame_view.cc +++ b/chrome/browser/views/frame/opaque_browser_frame_view.cc @@ -13,6 +13,7 @@ #include "base/compiler_specific.h" #include "chrome/browser/browser_theme_provider.h" #include "chrome/browser/tab_contents/tab_contents.h" +#include "chrome/browser/views/frame/browser_extender.h" #include "chrome/browser/views/frame/browser_frame.h" #include "chrome/browser/views/frame/browser_view.h" #include "chrome/browser/views/tabs/tab_strip.h" @@ -213,9 +214,10 @@ OpaqueBrowserFrameView::~OpaqueBrowserFrameView() { gfx::Rect OpaqueBrowserFrameView::GetBoundsForTabStrip( TabStrip* tabstrip) const { + int x_offset = browser_view_->browser_extender()->GetMainMenuWidth(); int tabstrip_x = browser_view_->ShouldShowOffTheRecordAvatar() ? (otr_avatar_bounds_.right() + kOTRSideSpacing) : - NonClientBorderThickness(); + NonClientBorderThickness() + x_offset; int tabstrip_width = minimize_button_->x() - tabstrip_x - (frame_->GetWindow()->IsMaximized() ? kNewTabCaptionMaximizedSpacing : kNewTabCaptionRestoredSpacing); @@ -1062,7 +1064,9 @@ void OpaqueBrowserFrameView::LayoutOTRAvatar() { } else { tabstrip_height = otr_height = 0; } - otr_avatar_bounds_.SetRect(NonClientBorderThickness() + kOTRSideSpacing, + int x_offset = browser_view_->browser_extender()->GetMainMenuWidth(); + otr_avatar_bounds_.SetRect(NonClientBorderThickness() + kOTRSideSpacing + + x_offset, top_height + tabstrip_height - otr_height, otr_avatar_icon.width(), otr_height); } diff --git a/chrome/browser/views/frame/standard_extender.cc b/chrome/browser/views/frame/standard_extender.cc index d142b53..c3dc388 100644 --- a/chrome/browser/views/frame/standard_extender.cc +++ b/chrome/browser/views/frame/standard_extender.cc @@ -47,6 +47,7 @@ class StandardExtender : public BrowserExtender { virtual void OnMouseEnteredToTab(Tab* tab) {} virtual void OnMouseMovedOnTab(Tab* tab) {} virtual void OnMouseExitedFromTab(Tab* tab) {} + virtual int GetMainMenuWidth() const { return 0; }; DISALLOW_COPY_AND_ASSIGN(StandardExtender); }; |