diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-18 02:00:53 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-18 02:00:53 +0000 |
commit | 7a16aeeb28850afdf5d512cc2e4bb2e58f4b1c10 (patch) | |
tree | 1070bdfc922ca45660dc6bf56b26fc19dfeba7d6 /chrome/browser/views/frame | |
parent | f47c61458a0c89c9ec57b3bb3a51d4ef46528ca6 (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 26 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.h | 9 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_window_factory.cc | 1 | ||||
-rw-r--r-- | chrome/browser/views/frame/opaque_frame.cc | 4 | ||||
-rw-r--r-- | chrome/browser/views/frame/opaque_non_client_view.cc | 7 | ||||
-rw-r--r-- | chrome/browser/views/frame/opaque_non_client_view.h | 8 |
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); |