diff options
Diffstat (limited to 'chrome/browser/views')
-rw-r--r-- | chrome/browser/views/browser_views.vcproj | 16 | ||||
-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 | ||||
-rw-r--r-- | chrome/browser/views/html_dialog_view.h | 1 | ||||
-rw-r--r-- | chrome/browser/views/info_bubble.cc | 5 | ||||
-rw-r--r-- | chrome/browser/views/tab_icon_view.cc | 29 | ||||
-rw-r--r-- | chrome/browser/views/tab_icon_view.h | 16 | ||||
-rw-r--r-- | chrome/browser/views/tabs/dragged_tab_controller.cc | 4 | ||||
-rw-r--r-- | chrome/browser/views/toolbar_view.cc | 2 |
14 files changed, 72 insertions, 60 deletions
diff --git a/chrome/browser/views/browser_views.vcproj b/chrome/browser/views/browser_views.vcproj index 6f38c89..5a543cd 100644 --- a/chrome/browser/views/browser_views.vcproj +++ b/chrome/browser/views/browser_views.vcproj @@ -216,14 +216,6 @@ RelativePath=".\info_bar_view.h" > </File> - <File - RelativePath=".\tab_icon_view.cc" - > - </File> - <File - RelativePath=".\tab_icon_view.h" - > - </File> </Filter> <Filter Name="Options" @@ -778,6 +770,14 @@ > </File> <File + RelativePath=".\tab_icon_view.cc" + > + </File> + <File + RelativePath=".\tab_icon_view.h" + > + </File> + <File RelativePath=".\theme_helpers.cc" > </File> 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); diff --git a/chrome/browser/views/html_dialog_view.h b/chrome/browser/views/html_dialog_view.h index 68e09adf..3b8b28c 100644 --- a/chrome/browser/views/html_dialog_view.h +++ b/chrome/browser/views/html_dialog_view.h @@ -11,6 +11,7 @@ #include "chrome/browser/tab_contents_delegate.h" #include "chrome/browser/views/dom_view.h" +class Browser; namespace views { class Window; } diff --git a/chrome/browser/views/info_bubble.cc b/chrome/browser/views/info_bubble.cc index 9106b3e..0fc2264 100644 --- a/chrome/browser/views/info_bubble.cc +++ b/chrome/browser/views/info_bubble.cc @@ -7,7 +7,7 @@ #include "base/win_util.h" #include "chrome/app/theme/theme_resources.h" #include "chrome/browser/browser_window.h" -#include "chrome/browser/frame_util.h" +#include "chrome/browser/views/frame/browser_view.h" #include "chrome/common/gfx/chrome_canvas.h" #include "chrome/common/gfx/path.h" #include "chrome/common/resource_bundle.h" @@ -189,7 +189,8 @@ InfoBubble::ContentView* InfoBubble::CreateContentView(View* content) { BrowserWindow* InfoBubble::GetHostingWindow() { HWND owning_frame_hwnd = GetAncestor(GetHWND(), GA_ROOTOWNER); - BrowserWindow* frame = FrameUtil::GetBrowserWindowForHWND(owning_frame_hwnd); + BrowserWindow* frame = + BrowserView::GetBrowserWindowForHWND(owning_frame_hwnd); if (!frame) { // We should always have a frame, but there was a bug else where that // made it possible for the frame to be NULL, so we have the check. If diff --git a/chrome/browser/views/tab_icon_view.cc b/chrome/browser/views/tab_icon_view.cc index 245a38d..46595f6 100644 --- a/chrome/browser/views/tab_icon_view.cc +++ b/chrome/browser/views/tab_icon_view.cc @@ -50,8 +50,8 @@ void TabIconView::InitializeIfNeeded() { } } -TabIconView::TabIconView(TabContentsProvider* provider) - : provider_(provider), +TabIconView::TabIconView(TabIconViewModel* model) + : model_(model), is_light_(false), throbber_running_(false), throbber_frame_(0) { @@ -62,10 +62,9 @@ TabIconView::~TabIconView() { } void TabIconView::Update() { - TabContents* contents = provider_->GetCurrentTabContents(); if (throbber_running_) { // We think the tab is loading. - if (!contents || !contents->is_loading()) { + if (!model_->ShouldTabIconViewAnimate()) { // Woops, tab is invalid or not loading, reset our status and schedule // a paint. throbber_running_ = false; @@ -75,7 +74,7 @@ void TabIconView::Update() { throbber_frame_ = (throbber_frame_ + 1) % g_throbber_frame_count; SchedulePaint(); } - } else if (contents && contents->is_loading()) { + } else if (model_->ShouldTabIconViewAnimate()) { // We didn't think we were loading, but the tab is loading. Reset the // frame and status and schedule a paint. throbber_running_ = true; @@ -106,25 +105,21 @@ void TabIconView::PaintFavIcon(ChromeCanvas* canvas, const SkBitmap& bitmap) { } void TabIconView::Paint(ChromeCanvas* canvas) { - TabContents* contents = provider_->GetCurrentTabContents(); bool rendered = false; - if (contents) { - if (throbber_running_) { + if (throbber_running_) { + rendered = true; + PaintThrobber(canvas); + } else { + SkBitmap favicon = model_->GetFavIconForTabIconView(); + if (!favicon.isNull()) { rendered = true; - PaintThrobber(canvas); - } else { - SkBitmap favicon = provider_->GetFavIcon(); - if (!favicon.isNull()) { - rendered = true; - PaintFavIcon(canvas, favicon); - } + PaintFavIcon(canvas, favicon); } } - if (!rendered) { + if (!rendered) PaintFavIcon(canvas, *g_default_fav_icon); - } } gfx::Size TabIconView::GetPreferredSize() { diff --git a/chrome/browser/views/tab_icon_view.h b/chrome/browser/views/tab_icon_view.h index 11b22d4..43302228 100644 --- a/chrome/browser/views/tab_icon_view.h +++ b/chrome/browser/views/tab_icon_view.h @@ -16,19 +16,19 @@ class TabContents; //////////////////////////////////////////////////////////////////////////////// class TabIconView : public views::View { public: - class TabContentsProvider { + // Classes implement this interface to provide state for the TabIconView. + class TabIconViewModel { public: - // Should return the current tab contents this TabIconView object is - // representing. - virtual TabContents* GetCurrentTabContents() = 0; + // Returns true if the TabIconView should show a loading animation. + virtual bool ShouldTabIconViewAnimate() const = 0; // Returns the favicon to display in the icon view - virtual SkBitmap GetFavIcon() = 0; + virtual SkBitmap GetFavIconForTabIconView() = 0; }; static void InitializeIfNeeded(); - explicit TabIconView(TabContentsProvider* provider); + explicit TabIconView(TabIconViewModel* provider); virtual ~TabIconView(); // Invoke whenever the tab state changes or the throbber should update. @@ -45,8 +45,8 @@ class TabIconView : public views::View { void PaintThrobber(ChromeCanvas* canvas); void PaintFavIcon(ChromeCanvas* canvas, const SkBitmap& bitmap); - // Our provider of current tab contents. - TabContentsProvider* provider_; + // Our model. + TabIconViewModel* model_; // Whether the throbber is running. bool throbber_running_; diff --git a/chrome/browser/views/tabs/dragged_tab_controller.cc b/chrome/browser/views/tabs/dragged_tab_controller.cc index 0bca5f1..d90bad7 100644 --- a/chrome/browser/views/tabs/dragged_tab_controller.cc +++ b/chrome/browser/views/tabs/dragged_tab_controller.cc @@ -7,8 +7,8 @@ #include "chrome/browser/views/tabs/dragged_tab_controller.h" #include "chrome/browser/browser_window.h" -#include "chrome/browser/frame_util.h" #include "chrome/browser/tab_contents.h" +#include "chrome/browser/views/frame/browser_view.h" #include "chrome/browser/views/tabs/dragged_tab_view.h" #include "chrome/browser/views/tabs/hwnd_photobooth.h" #include "chrome/browser/views/tabs/tab.h" @@ -442,7 +442,7 @@ TabStrip* DraggedTabController::GetTabStripForPoint( if (!other_hwnd) return NULL; - BrowserWindow* other_frame = FrameUtil::GetBrowserWindowForHWND(other_hwnd); + BrowserWindow* other_frame = BrowserView::GetBrowserWindowForHWND(other_hwnd); if (other_frame) { TabStrip* other_tabstrip = other_frame->GetTabStrip(); if (!other_tabstrip->IsCompatibleWith(source_tabstrip_)) diff --git a/chrome/browser/views/toolbar_view.cc b/chrome/browser/views/toolbar_view.cc index 34f6c24..1b56e84 100644 --- a/chrome/browser/views/toolbar_view.cc +++ b/chrome/browser/views/toolbar_view.cc @@ -80,7 +80,7 @@ BrowserToolbarView::BrowserToolbarView(CommandController* controller, forward_menu_model_.reset(new BackForwardMenuModel( browser, BackForwardMenuModel::FORWARD_MENU_DELEGATE)); - if (browser->type() == BrowserType::TABBED_BROWSER) + if (browser->type() == Browser::TYPE_NORMAL) display_mode_ = DISPLAYMODE_NORMAL; else display_mode_ = DISPLAYMODE_LOCATION; |