Chromium Code Reviews| Index: chrome/browser/ui/views/frame/browser_view.cc |
| =================================================================== |
| --- chrome/browser/ui/views/frame/browser_view.cc (revision 136912) |
| +++ chrome/browser/ui/views/frame/browser_view.cc (working copy) |
| @@ -159,6 +159,13 @@ |
| // How round the 'new tab' style bookmarks bar is. |
| const int kNewtabBarRoundness = 5; |
| +#if !defined(USE_AURA) |
| +extern "C" { |
| +// Metro export for switching chrome windows. |
| +typedef void (*FlipFrameWindows)(); |
| +} |
| +#endif |
| + |
| } // namespace |
| // Returned from BrowserView::GetClassName. |
| @@ -305,6 +312,7 @@ |
| active_bookmark_bar_(NULL), |
| tabstrip_(NULL), |
| toolbar_(NULL), |
| + window_switcher_button_(NULL), |
| infobar_container_(NULL), |
| contents_container_(NULL), |
| devtools_container_(NULL), |
| @@ -1686,6 +1694,7 @@ |
| void BrowserView::Layout() { |
| if (ignore_layout_) |
| return; |
| + |
| views::View::Layout(); |
| // The status bubble position requires that all other layout finish first. |
| @@ -1752,6 +1761,18 @@ |
| return false; |
| } |
| +void BrowserView::ButtonPressed(views::Button* sender, |
|
sky
2012/05/16 04:31:37
Can you move all of this code, save window_switche
|
| + const views::Event& event) { |
| + if (sender != window_switcher_button_) |
| + return; |
| + // Tellt the metro_driver to flip our window. This causes the current |
| + // browser window to be hidden and the next window to be shown. |
| + static FlipFrameWindows flip_window_fn = reinterpret_cast<FlipFrameWindows>( |
| + ::GetProcAddress(base::win::GetMetroModule(), "FlipFrameWindows")); |
| + if (flip_window_fn) |
| + flip_window_fn(); |
| +} |
| + |
| void BrowserView::OnSysColorChange() { |
| InvertBubble::MaybeShowInvertBubble(browser_->profile(), contents_); |
| } |
| @@ -1794,6 +1815,21 @@ |
| AddChildView(tabstrip_); |
| tabstrip_controller->InitFromModel(tabstrip_); |
| + if (!base::win::GetMetroModule()) { |
| + window_switcher_button_ = new views::ImageButton(this); |
| + window_switcher_button_->SetImage( |
| + views::ImageButton::BS_NORMAL, |
| + ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( |
| + IDR_PAGEINFO_WARNING_MINOR)); |
|
cpu_(ooo_6.6-7.5)
2012/05/16 01:31:37
the asset is a placeholder
|
| + window_switcher_button_->SetImageAlignment( |
| + views::ImageButton::ALIGN_CENTER, |
| + views::ImageButton::ALIGN_MIDDLE); |
| + gfx::Size ps = window_switcher_button_->GetPreferredSize(); |
| + window_switcher_button_->SetBounds(0,0, ps.width(), ps.height()); |
| + window_switcher_button_->SetVisible(true); |
| + AddChildView(window_switcher_button_); |
| + } |
| + |
| SetToolbar(CreateToolbar()); |
| infobar_container_ = new InfoBarContainerView(this); |