summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/frame
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-22 22:21:57 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-22 22:21:57 +0000
commitc2de68aeea9a829af41f087f2c3b3c347f7f196e (patch)
tree55438e660771845ef9d50e28ea39486d8ee72e8a /chrome/browser/views/frame
parent0d2292796fc314c5163dcd26234107df3cb819c4 (diff)
downloadchromium_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.cc12
-rw-r--r--chrome/browser/views/frame/browser_extender.h16
-rw-r--r--chrome/browser/views/frame/browser_frame_gtk.cc5
-rw-r--r--chrome/browser/views/frame/browser_frame_gtk.h10
-rw-r--r--chrome/browser/views/frame/browser_view.cc2
-rw-r--r--chrome/browser/views/frame/browser_view.h6
-rw-r--r--chrome/browser/views/frame/opaque_browser_frame_view.cc6
-rw-r--r--chrome/browser/views/frame/opaque_browser_frame_view.h4
-rw-r--r--chrome/browser/views/frame/standard_extender.cc36
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();
-}