Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Side by Side Diff: chrome/browser/ui/views/frame/browser_view.cc

Issue 10388156: Adding the flip windows button to the browser window (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/frame/browser_view.h" 5 #include "chrome/browser/ui/views/frame/browser_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 const int kMinContentsSize = 50; 152 const int kMinContentsSize = 50;
153 153
154 // The number of milliseconds between loading animation frames. 154 // The number of milliseconds between loading animation frames.
155 const int kLoadingAnimationFrameTimeMs = 30; 155 const int kLoadingAnimationFrameTimeMs = 30;
156 // The amount of space we expect the window border to take up. 156 // The amount of space we expect the window border to take up.
157 const int kWindowBorderWidth = 5; 157 const int kWindowBorderWidth = 5;
158 158
159 // How round the 'new tab' style bookmarks bar is. 159 // How round the 'new tab' style bookmarks bar is.
160 const int kNewtabBarRoundness = 5; 160 const int kNewtabBarRoundness = 5;
161 161
162 #if !defined(USE_AURA)
163 extern "C" {
164 // Metro export for switching chrome windows.
165 typedef void (*FlipFrameWindows)();
166 }
167 #endif
168
162 } // namespace 169 } // namespace
163 170
164 // Returned from BrowserView::GetClassName. 171 // Returned from BrowserView::GetClassName.
165 const char BrowserView::kViewClassName[] = "browser/ui/views/BrowserView"; 172 const char BrowserView::kViewClassName[] = "browser/ui/views/BrowserView";
166 173
167 /////////////////////////////////////////////////////////////////////////////// 174 ///////////////////////////////////////////////////////////////////////////////
168 // BookmarkExtensionBackground, private: 175 // BookmarkExtensionBackground, private:
169 // This object serves as the views::Background object which is used to layout 176 // This object serves as the views::Background object which is used to layout
170 // and paint the bookmark bar. 177 // and paint the bookmark bar.
171 class BookmarkExtensionBackground : public views::Background { 178 class BookmarkExtensionBackground : public views::Background {
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 305
299 BrowserView::BrowserView(Browser* browser) 306 BrowserView::BrowserView(Browser* browser)
300 : views::ClientView(NULL, NULL), 307 : views::ClientView(NULL, NULL),
301 last_focused_view_storage_id_( 308 last_focused_view_storage_id_(
302 views::ViewStorage::GetInstance()->CreateStorageID()), 309 views::ViewStorage::GetInstance()->CreateStorageID()),
303 frame_(NULL), 310 frame_(NULL),
304 browser_(browser), 311 browser_(browser),
305 active_bookmark_bar_(NULL), 312 active_bookmark_bar_(NULL),
306 tabstrip_(NULL), 313 tabstrip_(NULL),
307 toolbar_(NULL), 314 toolbar_(NULL),
315 window_switcher_button_(NULL),
308 infobar_container_(NULL), 316 infobar_container_(NULL),
309 contents_container_(NULL), 317 contents_container_(NULL),
310 devtools_container_(NULL), 318 devtools_container_(NULL),
311 preview_container_(NULL), 319 preview_container_(NULL),
312 contents_(NULL), 320 contents_(NULL),
313 contents_split_(NULL), 321 contents_split_(NULL),
314 devtools_dock_side_(DEVTOOLS_DOCK_SIDE_BOTTOM), 322 devtools_dock_side_(DEVTOOLS_DOCK_SIDE_BOTTOM),
315 initialized_(false), 323 initialized_(false),
316 ignore_layout_(true), 324 ignore_layout_(true),
317 #if defined(OS_WIN) && !defined(USE_AURA) 325 #if defined(OS_WIN) && !defined(USE_AURA)
(...skipping 1361 matching lines...) Expand 10 before | Expand all | Expand 10 after
1679 /////////////////////////////////////////////////////////////////////////////// 1687 ///////////////////////////////////////////////////////////////////////////////
1680 // BrowserView, views::View overrides: 1688 // BrowserView, views::View overrides:
1681 1689
1682 std::string BrowserView::GetClassName() const { 1690 std::string BrowserView::GetClassName() const {
1683 return kViewClassName; 1691 return kViewClassName;
1684 } 1692 }
1685 1693
1686 void BrowserView::Layout() { 1694 void BrowserView::Layout() {
1687 if (ignore_layout_) 1695 if (ignore_layout_)
1688 return; 1696 return;
1697
1689 views::View::Layout(); 1698 views::View::Layout();
1690 1699
1691 // The status bubble position requires that all other layout finish first. 1700 // The status bubble position requires that all other layout finish first.
1692 LayoutStatusBubble(); 1701 LayoutStatusBubble();
1693 } 1702 }
1694 1703
1695 void BrowserView::PaintChildren(gfx::Canvas* canvas) { 1704 void BrowserView::PaintChildren(gfx::Canvas* canvas) {
1696 // Paint the |infobar_container_| last so that it may paint its 1705 // Paint the |infobar_container_| last so that it may paint its
1697 // overlapping tabs. 1706 // overlapping tabs.
1698 for (int i = 0; i < child_count(); ++i) { 1707 for (int i = 0; i < child_count(); ++i) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1745 } 1754 }
1746 1755
1747 bool BrowserView::SplitHandleMoved(views::SingleSplitView* sender) { 1756 bool BrowserView::SplitHandleMoved(views::SingleSplitView* sender) {
1748 for (int i = 0; i < sender->child_count(); ++i) 1757 for (int i = 0; i < sender->child_count(); ++i)
1749 sender->child_at(i)->InvalidateLayout(); 1758 sender->child_at(i)->InvalidateLayout();
1750 SchedulePaint(); 1759 SchedulePaint();
1751 Layout(); 1760 Layout();
1752 return false; 1761 return false;
1753 } 1762 }
1754 1763
1764 void BrowserView::ButtonPressed(views::Button* sender,
sky 2012/05/16 04:31:37 Can you move all of this code, save window_switche
1765 const views::Event& event) {
1766 if (sender != window_switcher_button_)
1767 return;
1768 // Tellt the metro_driver to flip our window. This causes the current
1769 // browser window to be hidden and the next window to be shown.
1770 static FlipFrameWindows flip_window_fn = reinterpret_cast<FlipFrameWindows>(
1771 ::GetProcAddress(base::win::GetMetroModule(), "FlipFrameWindows"));
1772 if (flip_window_fn)
1773 flip_window_fn();
1774 }
1775
1755 void BrowserView::OnSysColorChange() { 1776 void BrowserView::OnSysColorChange() {
1756 InvertBubble::MaybeShowInvertBubble(browser_->profile(), contents_); 1777 InvertBubble::MaybeShowInvertBubble(browser_->profile(), contents_);
1757 } 1778 }
1758 1779
1759 views::LayoutManager* BrowserView::CreateLayoutManager() const { 1780 views::LayoutManager* BrowserView::CreateLayoutManager() const {
1760 return new BrowserViewLayout; 1781 return new BrowserViewLayout;
1761 } 1782 }
1762 1783
1763 ToolbarView* BrowserView::CreateToolbar() const { 1784 ToolbarView* BrowserView::CreateToolbar() const {
1764 return new ToolbarView(browser_.get()); 1785 return new ToolbarView(browser_.get());
(...skipping 22 matching lines...) Expand all
1787 LoadAccelerators(); 1808 LoadAccelerators();
1788 1809
1789 // TabStrip takes ownership of the controller. 1810 // TabStrip takes ownership of the controller.
1790 BrowserTabStripController* tabstrip_controller = 1811 BrowserTabStripController* tabstrip_controller =
1791 new BrowserTabStripController(browser_.get(), 1812 new BrowserTabStripController(browser_.get(),
1792 browser_->tab_strip_model()); 1813 browser_->tab_strip_model());
1793 tabstrip_ = new TabStrip(tabstrip_controller); 1814 tabstrip_ = new TabStrip(tabstrip_controller);
1794 AddChildView(tabstrip_); 1815 AddChildView(tabstrip_);
1795 tabstrip_controller->InitFromModel(tabstrip_); 1816 tabstrip_controller->InitFromModel(tabstrip_);
1796 1817
1818 if (!base::win::GetMetroModule()) {
1819 window_switcher_button_ = new views::ImageButton(this);
1820 window_switcher_button_->SetImage(
1821 views::ImageButton::BS_NORMAL,
1822 ui::ResourceBundle::GetSharedInstance().GetBitmapNamed(
1823 IDR_PAGEINFO_WARNING_MINOR));
cpu_(ooo_6.6-7.5) 2012/05/16 01:31:37 the asset is a placeholder
1824 window_switcher_button_->SetImageAlignment(
1825 views::ImageButton::ALIGN_CENTER,
1826 views::ImageButton::ALIGN_MIDDLE);
1827 gfx::Size ps = window_switcher_button_->GetPreferredSize();
1828 window_switcher_button_->SetBounds(0,0, ps.width(), ps.height());
1829 window_switcher_button_->SetVisible(true);
1830 AddChildView(window_switcher_button_);
1831 }
1832
1797 SetToolbar(CreateToolbar()); 1833 SetToolbar(CreateToolbar());
1798 1834
1799 infobar_container_ = new InfoBarContainerView(this); 1835 infobar_container_ = new InfoBarContainerView(this);
1800 AddChildView(infobar_container_); 1836 AddChildView(infobar_container_);
1801 1837
1802 contents_container_ = new views::WebView(browser_->profile()); 1838 contents_container_ = new views::WebView(browser_->profile());
1803 contents_container_->set_id(VIEW_ID_TAB_CONTAINER); 1839 contents_container_->set_id(VIEW_ID_TAB_CONTAINER);
1804 contents_ = new ContentsContainer(contents_container_); 1840 contents_ = new ContentsContainer(contents_container_);
1805 1841
1806 SkColor bg_color = GetWidget()->GetThemeProvider()-> 1842 SkColor bg_color = GetWidget()->GetThemeProvider()->
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after
2405 return; 2441 return;
2406 2442
2407 PasswordGenerationBubbleView* bubble = 2443 PasswordGenerationBubbleView* bubble =
2408 new PasswordGenerationBubbleView(bounds, 2444 new PasswordGenerationBubbleView(bounds,
2409 this, 2445 this,
2410 web_contents->GetRenderViewHost()); 2446 web_contents->GetRenderViewHost());
2411 views::BubbleDelegateView::CreateBubble(bubble); 2447 views::BubbleDelegateView::CreateBubble(bubble);
2412 bubble->SetAlignment(views::BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE); 2448 bubble->SetAlignment(views::BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE);
2413 bubble->Show(); 2449 bubble->Show();
2414 } 2450 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698