summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/frame
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-18 02:00:53 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-18 02:00:53 +0000
commit7a16aeeb28850afdf5d512cc2e4bb2e58f4b1c10 (patch)
tree1070bdfc922ca45660dc6bf56b26fc19dfeba7d6 /chrome/browser/views/frame
parentf47c61458a0c89c9ec57b3bb3a51d4ef46528ca6 (diff)
downloadchromium_src-7a16aeeb28850afdf5d512cc2e4bb2e58f4b1c10.zip
chromium_src-7a16aeeb28850afdf5d512cc2e4bb2e58f4b1c10.tar.gz
chromium_src-7a16aeeb28850afdf5d512cc2e4bb2e58f4b1c10.tar.bz2
Last couple of bits of new-frame related cleanup:
- Remove frame_util.cc, moving functions to BrowserList (endsession) and BrowserView (GetBrowserWindowForHWND) - Tidy up interface for TabIconView model. The model now sources only the information it needs (loading state and favicon). - Replace BrowserType class with an enum on Browser. http://crbug.com/2320 http://crbug.com/3363 Review URL: http://codereview.chromium.org/10786 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5596 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/frame')
-rw-r--r--chrome/browser/views/frame/aero_glass_frame.cc4
-rw-r--r--chrome/browser/views/frame/browser_view.cc26
-rw-r--r--chrome/browser/views/frame/browser_view.h9
-rw-r--r--chrome/browser/views/frame/browser_window_factory.cc1
-rw-r--r--chrome/browser/views/frame/opaque_frame.cc4
-rw-r--r--chrome/browser/views/frame/opaque_non_client_view.cc7
-rw-r--r--chrome/browser/views/frame/opaque_non_client_view.h8
7 files changed, 37 insertions, 22 deletions
diff --git a/chrome/browser/views/frame/aero_glass_frame.cc b/chrome/browser/views/frame/aero_glass_frame.cc
index 0c5846a..a24e274 100644
--- a/chrome/browser/views/frame/aero_glass_frame.cc
+++ b/chrome/browser/views/frame/aero_glass_frame.cc
@@ -7,7 +7,7 @@
#include <dwmapi.h>
#include "chrome/app/theme/theme_resources.h"
-#include "chrome/browser/frame_util.h"
+#include "chrome/browser/browser_list.h"
#include "chrome/browser/views/frame/browser_view.h"
#include "chrome/browser/views/frame/aero_glass_non_client_view.h"
#include "chrome/common/resource_bundle.h"
@@ -108,7 +108,7 @@ void AeroGlassFrame::OnInitMenuPopup(HMENU menu, UINT position,
}
void AeroGlassFrame::OnEndSession(BOOL ending, UINT logoff) {
- FrameUtil::EndSession();
+ BrowserList::WindowsSessionEnding();
}
LRESULT AeroGlassFrame::OnMouseActivate(HWND window, UINT hittest_code,
diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc
index 01ff721..35fb7b8 100644
--- a/chrome/browser/views/frame/browser_view.cc
+++ b/chrome/browser/views/frame/browser_view.cc
@@ -138,6 +138,16 @@ BrowserView::~BrowserView() {
ticker_.UnregisterTickHandler(&hung_window_detector_);
}
+// static
+BrowserWindow* BrowserView::GetBrowserWindowForHWND(HWND window) {
+ if (IsWindow(window)) {
+ HANDLE data = GetProp(window, kBrowserWindowKey);
+ if (data)
+ return reinterpret_cast<BrowserWindow*>(data);
+ }
+ return NULL;
+}
+
int BrowserView::GetShowState() const {
STARTUPINFO si = {0};
si.cb = sizeof(si);
@@ -187,7 +197,7 @@ bool BrowserView::IsOffTheRecord() const {
}
bool BrowserView::ShouldShowOffTheRecordAvatar() const {
- return IsOffTheRecord() && browser_->type() == BrowserType::TABBED_BROWSER;
+ return IsOffTheRecord() && browser_->type() == Browser::TYPE_NORMAL;
}
bool BrowserView::AcceleratorPressed(const views::Accelerator& accelerator) {
@@ -281,13 +291,13 @@ bool BrowserView::SupportsWindowFeature(WindowFeature feature) const {
}
// static
-unsigned int BrowserView::FeaturesForBrowserType(BrowserType::Type type) {
+unsigned int BrowserView::FeaturesForBrowserType(Browser::Type type) {
unsigned int features = FEATURE_INFOBAR | FEATURE_DOWNLOADSHELF;
- if (type == BrowserType::TABBED_BROWSER)
+ if (type == Browser::TYPE_NORMAL)
features |= FEATURE_TABSTRIP | FEATURE_TOOLBAR | FEATURE_BOOKMARKBAR;
- if (type != BrowserType::APPLICATION)
+ if (type != Browser::TYPE_APP)
features |= FEATURE_LOCATIONBAR;
- if (type != BrowserType::TABBED_BROWSER)
+ if (type != Browser::TYPE_NORMAL)
features |= FEATURE_TITLEBAR;
return features;
}
@@ -686,7 +696,7 @@ bool BrowserView::ShouldShowWindowTitle() const {
}
SkBitmap BrowserView::GetWindowIcon() {
- if (browser_->type() == BrowserType::APPLICATION)
+ if (browser_->type() == Browser::TYPE_APP)
return browser_->GetCurrentPageIcon();
return SkBitmap();
}
@@ -725,7 +735,7 @@ void BrowserView::SaveWindowPlacement(const gfx::Rect& bounds,
bool BrowserView::GetSavedWindowBounds(gfx::Rect* bounds) const {
*bounds = browser_->GetSavedWindowBounds();
- if (browser_->type() == BrowserType::BROWSER) {
+ if (browser_->type() == Browser::TYPE_POPUP) {
// We are a popup window. The value passed in |bounds| represents two
// pieces of information:
// - the position of the window, in screen coordinates (outer position).
@@ -966,7 +976,7 @@ void BrowserView::InitSystemMenu() {
int insertion_index = std::max(0, system_menu_->ItemCount() - 1);
// We add the menu items in reverse order so that insertion_index never needs
// to change.
- if (browser_->type() == BrowserType::TABBED_BROWSER) {
+ if (browser_->type() == Browser::TYPE_NORMAL) {
system_menu_->AddSeparator(insertion_index);
system_menu_->AddMenuItemWithLabel(insertion_index, IDC_TASKMANAGER,
l10n_util::GetString(IDS_TASKMANAGER));
diff --git a/chrome/browser/views/frame/browser_view.h b/chrome/browser/views/frame/browser_view.h
index fcc0ee4..d777f5a 100644
--- a/chrome/browser/views/frame/browser_view.h
+++ b/chrome/browser/views/frame/browser_view.h
@@ -5,7 +5,7 @@
#ifndef CHROME_BROWSER_VIEWS_FRAME_BROWSER_VIEW_H_
#define CHROME_BROWSER_VIEWS_FRAME_BROWSER_VIEW_H_
-#include "chrome/browser/browser_type.h"
+#include "chrome/browser/browser.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/hang_monitor/hung_plugin_action.h"
#include "chrome/browser/hang_monitor/hung_window_detector.h"
@@ -43,6 +43,11 @@ class BrowserView : public BrowserWindow,
void set_frame(BrowserFrame* frame) { frame_ = frame; }
+ // Returns a pointer to the BrowserWindow* interface implementation (an
+ // instance of this object, typically) for a given HWND, or NULL if there is
+ // no such association.
+ static BrowserWindow* GetBrowserWindowForHWND(HWND window);
+
// Returns the show flag that should be used to show the frame containing
// this view.
int GetShowState() const;
@@ -134,7 +139,7 @@ class BrowserView : public BrowserWindow,
bool SupportsWindowFeature(WindowFeature feature) const;
// Returns the set of WindowFeatures supported by the specified BrowserType.
- static unsigned int FeaturesForBrowserType(BrowserType::Type type);
+ static unsigned int FeaturesForBrowserType(Browser::Type type);
// Register preferences specific to this view.
static void RegisterBrowserViewPrefs(PrefService* prefs);
diff --git a/chrome/browser/views/frame/browser_window_factory.cc b/chrome/browser/views/frame/browser_window_factory.cc
index 59a8d9d..9a6853b 100644
--- a/chrome/browser/views/frame/browser_window_factory.cc
+++ b/chrome/browser/views/frame/browser_window_factory.cc
@@ -6,7 +6,6 @@
#include "chrome/browser/browser.h"
#include "chrome/browser/browser_process.h" // TODO(beng): remove once done.
#include "chrome/browser/browser_window.h"
-#include "chrome/browser/frame_util.h"
#include "chrome/browser/views/frame/aero_glass_frame.h"
#include "chrome/browser/views/frame/browser_frame.h"
#include "chrome/browser/views/frame/browser_view.h"
diff --git a/chrome/browser/views/frame/opaque_frame.cc b/chrome/browser/views/frame/opaque_frame.cc
index 3158af7..f04d8e2 100644
--- a/chrome/browser/views/frame/opaque_frame.cc
+++ b/chrome/browser/views/frame/opaque_frame.cc
@@ -4,7 +4,7 @@
#include "chrome/browser/views/frame/opaque_frame.h"
-#include "chrome/browser/frame_util.h"
+#include "chrome/browser/browser_list.h"
#include "chrome/browser/views/frame/browser_view.h"
#include "chrome/browser/views/frame/opaque_non_client_view.h"
#include "chrome/browser/views/tabs/tab_strip.h"
@@ -82,7 +82,7 @@ bool OpaqueFrame::GetAccelerator(int cmd_id, views::Accelerator* accelerator) {
}
void OpaqueFrame::OnEndSession(BOOL ending, UINT logoff) {
- FrameUtil::EndSession();
+ BrowserList::WindowsSessionEnding();
}
void OpaqueFrame::OnInitMenuPopup(HMENU menu, UINT position,
diff --git a/chrome/browser/views/frame/opaque_non_client_view.cc b/chrome/browser/views/frame/opaque_non_client_view.cc
index 460a1f8..74ee416 100644
--- a/chrome/browser/views/frame/opaque_non_client_view.cc
+++ b/chrome/browser/views/frame/opaque_non_client_view.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/views/frame/opaque_non_client_view.h"
#include "chrome/app/theme/theme_resources.h"
+#include "chrome/browser/tab_contents.h"
#include "chrome/browser/views/frame/browser_view.h"
#include "chrome/browser/views/tabs/tab_strip.h"
#include "chrome/common/gfx/chrome_font.h"
@@ -479,11 +480,11 @@ void OpaqueNonClientView::UpdateWindowIcon() {
///////////////////////////////////////////////////////////////////////////////
// OpaqueNonClientView, TabIconView::TabContentsProvider implementation:
-TabContents* OpaqueNonClientView::GetCurrentTabContents() {
- return browser_view_->GetSelectedTabContents();
+bool OpaqueNonClientView::ShouldTabIconViewAnimate() const {
+ return browser_view_->GetSelectedTabContents()->is_loading();
}
-SkBitmap OpaqueNonClientView::GetFavIcon() {
+SkBitmap OpaqueNonClientView::GetFavIconForTabIconView() {
return frame_->window_delegate()->GetWindowIcon();
}
diff --git a/chrome/browser/views/frame/opaque_non_client_view.h b/chrome/browser/views/frame/opaque_non_client_view.h
index 6d22a5b..93cee85 100644
--- a/chrome/browser/views/frame/opaque_non_client_view.h
+++ b/chrome/browser/views/frame/opaque_non_client_view.h
@@ -20,7 +20,7 @@ class WindowResources;
class OpaqueNonClientView : public views::NonClientView,
public views::BaseButton::ButtonListener,
- public TabIconView::TabContentsProvider {
+ public TabIconView::TabIconViewModel {
public:
// Constructs a non-client view for an OpaqueFrame. |is_otr| specifies if the
// frame was created "off-the-record" and as such different bitmaps should be
@@ -39,9 +39,9 @@ class OpaqueNonClientView : public views::NonClientView,
void UpdateWindowIcon();
protected:
- // Overridden from TabIconView::TabContentsProvider:
- virtual TabContents* GetCurrentTabContents();
- virtual SkBitmap GetFavIcon();
+ // Overridden from TabIconView::TabIconViewModel:
+ virtual bool ShouldTabIconViewAnimate() const;
+ virtual SkBitmap GetFavIconForTabIconView();
// Overridden from views::BaseButton::ButtonListener:
virtual void ButtonPressed(views::BaseButton* sender);