| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/chromeos/frame/browser_view.h" | 5 #include "chrome/browser/chromeos/frame/browser_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 if (browser_view_->IsFullscreen() || !browser_view_->IsTabStripVisible()) { | 82 if (browser_view_->IsFullscreen() || !browser_view_->IsTabStripVisible()) { |
| 83 status_area_->SetVisible(false); | 83 status_area_->SetVisible(false); |
| 84 tabstrip_->SetVisible(false); | 84 tabstrip_->SetVisible(false); |
| 85 tabstrip_->SetBounds(0, 0, 0, 0); | 85 tabstrip_->SetBounds(0, 0, 0, 0); |
| 86 return 0; | 86 return 0; |
| 87 } | 87 } |
| 88 | 88 |
| 89 gfx::Rect tabstrip_bounds( | 89 gfx::Rect tabstrip_bounds( |
| 90 browser_view_->frame()->GetBoundsForTabStrip(tabstrip_)); | 90 browser_view_->frame()->GetBoundsForTabStrip(tabstrip_)); |
| 91 gfx::Point tabstrip_origin = tabstrip_bounds.origin(); | 91 gfx::Point tabstrip_origin = tabstrip_bounds.origin(); |
| 92 views::View::ConvertPointToView(browser_view_->GetParent(), browser_view_, | 92 views::View::ConvertPointToView(browser_view_->parent(), browser_view_, |
| 93 &tabstrip_origin); | 93 &tabstrip_origin); |
| 94 tabstrip_bounds.set_origin(tabstrip_origin); | 94 tabstrip_bounds.set_origin(tabstrip_origin); |
| 95 return browser_view_->UseVerticalTabs() ? | 95 return browser_view_->UseVerticalTabs() ? |
| 96 LayoutTitlebarComponentsWithVerticalTabs(tabstrip_bounds) : | 96 LayoutTitlebarComponentsWithVerticalTabs(tabstrip_bounds) : |
| 97 LayoutTitlebarComponents(tabstrip_bounds); | 97 LayoutTitlebarComponents(tabstrip_bounds); |
| 98 } | 98 } |
| 99 | 99 |
| 100 virtual int LayoutToolbar(int top) { | 100 virtual int LayoutToolbar(int top) { |
| 101 if (!browser_view_->IsFullscreen() && browser_view_->IsTabStripVisible() && | 101 if (!browser_view_->IsFullscreen() && browser_view_->IsTabStripVisible() && |
| 102 browser_view_->UseVerticalTabs()) { | 102 browser_view_->UseVerticalTabs()) { |
| 103 // For vertical tabs the toolbar is positioned in | 103 // For vertical tabs the toolbar is positioned in |
| 104 // LayoutTitlebarComponentsWithVerticalTabs. | 104 // LayoutTitlebarComponentsWithVerticalTabs. |
| 105 return top; | 105 return top; |
| 106 } | 106 } |
| 107 return ::BrowserViewLayout::LayoutToolbar(top); | 107 return ::BrowserViewLayout::LayoutToolbar(top); |
| 108 } | 108 } |
| 109 | 109 |
| 110 virtual bool IsPositionInWindowCaption(const gfx::Point& point) { | 110 virtual bool IsPositionInWindowCaption(const gfx::Point& point) { |
| 111 return ::BrowserViewLayout::IsPositionInWindowCaption(point) | 111 return ::BrowserViewLayout::IsPositionInWindowCaption(point) |
| 112 && !IsPointInViewsInTitleArea(point); | 112 && !IsPointInViewsInTitleArea(point); |
| 113 } | 113 } |
| 114 | 114 |
| 115 virtual int NonClientHitTest(const gfx::Point& point) { | 115 virtual int NonClientHitTest(const gfx::Point& point) { |
| 116 gfx::Point point_in_browser_view_coords(point); | 116 gfx::Point point_in_browser_view_coords(point); |
| 117 views::View::ConvertPointToView( | 117 views::View::ConvertPointToView( |
| 118 browser_view_->GetParent(), browser_view_, | 118 browser_view_->parent(), browser_view_, |
| 119 &point_in_browser_view_coords); | 119 &point_in_browser_view_coords); |
| 120 return IsPointInViewsInTitleArea(point_in_browser_view_coords) ? | 120 return IsPointInViewsInTitleArea(point_in_browser_view_coords) ? |
| 121 HTCLIENT : ::BrowserViewLayout::NonClientHitTest(point); | 121 HTCLIENT : ::BrowserViewLayout::NonClientHitTest(point); |
| 122 } | 122 } |
| 123 | 123 |
| 124 private: | 124 private: |
| 125 chromeos::BrowserView* chromeos_browser_view() { | 125 chromeos::BrowserView* chromeos_browser_view() { |
| 126 return static_cast<chromeos::BrowserView*>(browser_view_); | 126 return static_cast<chromeos::BrowserView*>(browser_view_); |
| 127 } | 127 } |
| 128 | 128 |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 306 | 306 |
| 307 // views::ContextMenuController overrides. | 307 // views::ContextMenuController overrides. |
| 308 void BrowserView::ShowContextMenu(views::View* source, | 308 void BrowserView::ShowContextMenu(views::View* source, |
| 309 const gfx::Point& p, | 309 const gfx::Point& p, |
| 310 bool is_mouse_gesture) { | 310 bool is_mouse_gesture) { |
| 311 // Only show context menu if point is in unobscured parts of browser, i.e. | 311 // Only show context menu if point is in unobscured parts of browser, i.e. |
| 312 // if NonClientHitTest returns : | 312 // if NonClientHitTest returns : |
| 313 // - HTCAPTION: in title bar or unobscured part of tabstrip | 313 // - HTCAPTION: in title bar or unobscured part of tabstrip |
| 314 // - HTNOWHERE: as the name implies. | 314 // - HTNOWHERE: as the name implies. |
| 315 gfx::Point point_in_parent_coords(p); | 315 gfx::Point point_in_parent_coords(p); |
| 316 views::View::ConvertPointToView(NULL, GetParent(), &point_in_parent_coords); | 316 views::View::ConvertPointToView(NULL, parent(), &point_in_parent_coords); |
| 317 int hit_test = NonClientHitTest(point_in_parent_coords); | 317 int hit_test = NonClientHitTest(point_in_parent_coords); |
| 318 if (hit_test == HTCAPTION || hit_test == HTNOWHERE) | 318 if (hit_test == HTCAPTION || hit_test == HTNOWHERE) |
| 319 system_menu_menu_->RunMenuAt(p, views::Menu2::ALIGN_TOPLEFT); | 319 system_menu_menu_->RunMenuAt(p, views::Menu2::ALIGN_TOPLEFT); |
| 320 } | 320 } |
| 321 | 321 |
| 322 void BrowserView::OnMenuOpened() { | 322 void BrowserView::OnMenuOpened() { |
| 323 // Save the focused widget before wrench menu opens. | 323 // Save the focused widget before wrench menu opens. |
| 324 saved_focused_widget_ = gtk_window_get_focus(GetNativeHandle()); | 324 saved_focused_widget_ = gtk_window_get_focus(GetNativeHandle()); |
| 325 } | 325 } |
| 326 | 326 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { | 385 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { |
| 386 // Create a browser view for chromeos. | 386 // Create a browser view for chromeos. |
| 387 BrowserView* view; | 387 BrowserView* view; |
| 388 if (browser->type() & Browser::TYPE_POPUP) | 388 if (browser->type() & Browser::TYPE_POPUP) |
| 389 view = new chromeos::PanelBrowserView(browser); | 389 view = new chromeos::PanelBrowserView(browser); |
| 390 else | 390 else |
| 391 view = new chromeos::BrowserView(browser); | 391 view = new chromeos::BrowserView(browser); |
| 392 BrowserFrame::Create(view, browser->profile()); | 392 BrowserFrame::Create(view, browser->profile()); |
| 393 return view; | 393 return view; |
| 394 } | 394 } |
| OLD | NEW |