diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-22 22:21:57 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-22 22:21:57 +0000 |
commit | c2de68aeea9a829af41f087f2c3b3c347f7f196e (patch) | |
tree | 55438e660771845ef9d50e28ea39486d8ee72e8a /chrome/browser/views/frame | |
parent | 0d2292796fc314c5163dcd26234107df3cb819c4 (diff) | |
download | chromium_src-c2de68aeea9a829af41f087f2c3b3c347f7f196e.zip chromium_src-c2de68aeea9a829af41f087f2c3b3c347f7f196e.tar.gz chromium_src-c2de68aeea9a829af41f087f2c3b3c347f7f196e.tar.bz2 |
BrowserFrameView for ChromeOS.
* Introduced NormalBrowserFrameView, which can place OTR avatar icon in the right place.
- This is based on OpaqueBrowserFrameView, but a lot of stuff that are unnecessary in ChromeOS has been removed.
- Moved OTR Avatar icon view to BrowserView for now as this is much simpler to implement the above change. I'll revisit the possibility to refactor layout code to GetBoundsForXXX later.
* removed most of browser extender stuff.
BUG=chromium-os:1007
TEST=open incognito window and switch to compact navigation mode (ctrl-shift-c). incognito icon should be placed between
tabstrip and status area.
Review URL: http://codereview.chromium.org/593098
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39645 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/frame')
-rw-r--r-- | chrome/browser/views/frame/browser_extender.cc | 12 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_extender.h | 16 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_frame_gtk.cc | 5 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_frame_gtk.h | 10 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 2 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.h | 6 | ||||
-rw-r--r-- | chrome/browser/views/frame/opaque_browser_frame_view.cc | 6 | ||||
-rw-r--r-- | chrome/browser/views/frame/opaque_browser_frame_view.h | 4 | ||||
-rw-r--r-- | chrome/browser/views/frame/standard_extender.cc | 36 |
9 files changed, 21 insertions, 76 deletions
diff --git a/chrome/browser/views/frame/browser_extender.cc b/chrome/browser/views/frame/browser_extender.cc deleted file mode 100644 index f0178ba..0000000 --- a/chrome/browser/views/frame/browser_extender.cc +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/views/frame/browser_extender.h" - -//////////////////////////////////////////////////////////////////////////////// -// BrowserExtender, public: - -BrowserExtender::BrowserExtender() - : can_close_(true) { -} diff --git a/chrome/browser/views/frame/browser_extender.h b/chrome/browser/views/frame/browser_extender.h index fcbc435..03c27bd 100644 --- a/chrome/browser/views/frame/browser_extender.h +++ b/chrome/browser/views/frame/browser_extender.h @@ -20,19 +20,12 @@ class BrowserView; // standard_extender.cc for Chrome browser. class BrowserExtender { public: - // Factory method to create a BrowserExtender for given - // BrowserView object. Please see the class description for details. - static BrowserExtender* Create(BrowserView* browser_view); + BrowserExtender() + : can_close_(true) { + } virtual ~BrowserExtender() {} - // Returns true if the window should be in the maximized state. - virtual bool ShouldForceMaximizedWindow() = 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_; @@ -44,9 +37,6 @@ class BrowserExtender { can_close_ = b; } - protected: - BrowserExtender(); - private: // True if the browser can be closed. See set_can_close method for setails. bool can_close_; diff --git a/chrome/browser/views/frame/browser_frame_gtk.cc b/chrome/browser/views/frame/browser_frame_gtk.cc index f999e8e..a8a0a77 100644 --- a/chrome/browser/views/frame/browser_frame_gtk.cc +++ b/chrome/browser/views/frame/browser_frame_gtk.cc @@ -154,11 +154,6 @@ void BrowserFrameGtk::IsActiveChanged() { views::WidgetGtk::IsActiveChanged(); } -bool BrowserFrameGtk::IsMaximized() const { - return browser_view_->browser_extender()->ShouldForceMaximizedWindow() || - WindowGtk::IsMaximized(); -} - bool BrowserFrameGtk::GetAccelerator(int cmd_id, menus::Accelerator* accelerator) { return browser_view_->GetAccelerator(cmd_id, accelerator); diff --git a/chrome/browser/views/frame/browser_frame_gtk.h b/chrome/browser/views/frame/browser_frame_gtk.h index 4277b40..ed5852c 100644 --- a/chrome/browser/views/frame/browser_frame_gtk.h +++ b/chrome/browser/views/frame/browser_frame_gtk.h @@ -43,6 +43,10 @@ class BrowserFrameGtk : public BrowserFrame, virtual void IsActiveChanged(); protected: + void set_browser_frame_view(BrowserNonClientFrameView* browser_frame_view) { + browser_frame_view_ = browser_frame_view; + } + // Overridden from views::WidgetGtk: virtual views::RootView* CreateRootView(); virtual bool GetAccelerator(int cmd_id, menus::Accelerator* accelerator); @@ -52,7 +56,11 @@ class BrowserFrameGtk : public BrowserFrame, GdkEventWindowState* event); virtual gboolean OnConfigureEvent(GtkWidget* widget, GdkEventConfigure* event); - virtual bool IsMaximized() const; + + protected: + BrowserView* browser_view() const { + return browser_view_; + } private: // The BrowserView is our ClientView. This is a pointer to it. diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index ae16273..aab1ac8 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -1671,7 +1671,7 @@ void BrowserView::Init() { } #endif - browser_extender_.reset(BrowserExtender::Create(this)); + browser_extender_.reset(new BrowserExtender()); } #if defined(OS_WIN) diff --git a/chrome/browser/views/frame/browser_view.h b/chrome/browser/views/frame/browser_view.h index 7732621..801c7b6 100644 --- a/chrome/browser/views/frame/browser_view.h +++ b/chrome/browser/views/frame/browser_view.h @@ -201,12 +201,16 @@ class BrowserView : public BrowserBubbleHost, return browser_->type() == Browser::TYPE_NORMAL; } + // Returns true if the Browser object associated with this BrowserView is a + // app panel window. bool IsBrowserTypePanel() const { return browser_->type() == Browser::TYPE_APP_PANEL; } + // Returns true if the Browser object associated with this BrowserView is a + // popup window. bool IsBrowserTypePopup() const { - return browser_->type() == Browser::TYPE_POPUP; + return browser_->type() & Browser::TYPE_POPUP; } // Returns true if the frame containing this BrowserView should show the diff --git a/chrome/browser/views/frame/opaque_browser_frame_view.cc b/chrome/browser/views/frame/opaque_browser_frame_view.cc index ba086ee..d132420 100644 --- a/chrome/browser/views/frame/opaque_browser_frame_view.cc +++ b/chrome/browser/views/frame/opaque_browser_frame_view.cc @@ -209,10 +209,9 @@ OpaqueBrowserFrameView::~OpaqueBrowserFrameView() { gfx::Rect OpaqueBrowserFrameView::GetBoundsForTabStrip( BaseTabStrip* tabstrip) const { - int x_offset = browser_view_->browser_extender()->GetMainMenuWidth(); int tabstrip_x = browser_view_->ShouldShowOffTheRecordAvatar() ? (otr_avatar_icon_->bounds().right() + kOTRSideSpacing) : - NonClientBorderThickness() + x_offset; + NonClientBorderThickness(); int tabstrip_width = minimize_button_->x() - tabstrip_x - (frame_->GetWindow()->IsMaximized() ? kNewTabCaptionMaximizedSpacing : kNewTabCaptionRestoredSpacing); @@ -1038,9 +1037,8 @@ void OpaqueBrowserFrameView::LayoutOTRAvatar() { visible = false; } otr_avatar_icon_->SetVisible(visible); - int x_offset = browser_view_->browser_extender()->GetMainMenuWidth(); otr_avatar_icon_->SetBounds(NonClientBorderThickness() + kOTRSideSpacing + - x_offset, + 0, top_height + tabstrip_height - otr_height, preferred_size.width(), otr_height); } diff --git a/chrome/browser/views/frame/opaque_browser_frame_view.h b/chrome/browser/views/frame/opaque_browser_frame_view.h index 2f35726..6196da9 100644 --- a/chrome/browser/views/frame/opaque_browser_frame_view.h +++ b/chrome/browser/views/frame/opaque_browser_frame_view.h @@ -26,9 +26,7 @@ class OpaqueBrowserFrameView : public BrowserNonClientFrameView, public views::ButtonListener, public TabIconView::TabIconViewModel { public: - // Constructs a non-client view for an BrowserFrame. |is_otr| specifies if the - // frame was created "off-the-record" and as such different bitmaps should be - // used to render the frame. + // Constructs a non-client view for an BrowserFrame. OpaqueBrowserFrameView(BrowserFrame* frame, BrowserView* browser_view); virtual ~OpaqueBrowserFrameView(); diff --git a/chrome/browser/views/frame/standard_extender.cc b/chrome/browser/views/frame/standard_extender.cc deleted file mode 100644 index ae195d9..0000000 --- a/chrome/browser/views/frame/standard_extender.cc +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/views/frame/browser_extender.h" - -#include "chrome/browser/views/frame/browser_view.h" - -namespace { - -// StandardExtender for non ChromeOS build. This currently adds/does nothing. -// TODO(oshima): Add MainMenu support with a command line flag. -class StandardExtender : public BrowserExtender { - public: - StandardExtender() : BrowserExtender() { - } - virtual ~StandardExtender() {} - - private: - // BrowserExtender overrides. - virtual bool NonClientHitTest(const gfx::Point& point) { return false; } - virtual bool ShouldForceMaximizedWindow() { return false; } - virtual int GetMainMenuWidth() const { return 0; } - - DISALLOW_COPY_AND_ASSIGN(StandardExtender); -}; - -} // namespace - -//////////////////////////////////////////////////////////////////////////////// -// BrowserExtender, public: - -// static -BrowserExtender* BrowserExtender::Create(BrowserView* browser_view) { - return new StandardExtender(); -} |