| OLD | NEW |
| 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/opaque_browser_frame_view.h" | 5 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| 11 #include "base/prefs/pref_service.h" | 11 #include "base/prefs/pref_service.h" |
| 12 #include "base/profiler/scoped_tracker.h" | 12 #include "base/profiler/scoped_tracker.h" |
| 13 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
| 14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
| 15 #include "chrome/browser/profiles/profiles_state.h" | 15 #include "chrome/browser/profiles/profiles_state.h" |
| 16 #include "chrome/browser/themes/theme_properties.h" | 16 #include "chrome/browser/themes/theme_properties.h" |
| 17 #include "chrome/browser/ui/views/frame/browser_frame.h" | 17 #include "chrome/browser/ui/views/frame/browser_frame.h" |
| 18 #include "chrome/browser/ui/views/frame/browser_view.h" | 18 #include "chrome/browser/ui/views/frame/browser_view.h" |
| 19 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h" | 19 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h" |
| 20 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_speci
fic.h" | 20 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_speci
fic.h" |
| 21 #include "chrome/browser/ui/views/profiles/avatar_menu_button.h" | 21 #include "chrome/browser/ui/views/profiles/avatar_menu_button.h" |
| 22 #include "chrome/browser/ui/views/profiles/new_avatar_button.h" | |
| 23 #include "chrome/browser/ui/views/tab_icon_view.h" | 22 #include "chrome/browser/ui/views/tab_icon_view.h" |
| 24 #include "chrome/browser/ui/views/tabs/tab_strip.h" | 23 #include "chrome/browser/ui/views/tabs/tab_strip.h" |
| 25 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" | 24 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" |
| 26 #include "chrome/grit/generated_resources.h" | 25 #include "chrome/grit/generated_resources.h" |
| 27 #include "components/signin/core/browser/signin_header_helper.h" | 26 #include "components/signin/core/browser/signin_header_helper.h" |
| 28 #include "components/signin/core/common/profile_management_switches.h" | 27 #include "components/signin/core/common/profile_management_switches.h" |
| 29 #include "content/public/browser/notification_service.h" | 28 #include "content/public/browser/notification_service.h" |
| 30 #include "content/public/browser/web_contents.h" | 29 #include "content/public/browser/web_contents.h" |
| 31 #include "grit/theme_resources.h" | 30 #include "grit/theme_resources.h" |
| 32 #include "ui/accessibility/ax_view_state.h" | 31 #include "ui/accessibility/ax_view_state.h" |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 void OpaqueBrowserFrameView::ButtonPressed(views::Button* sender, | 312 void OpaqueBrowserFrameView::ButtonPressed(views::Button* sender, |
| 314 const ui::Event& event) { | 313 const ui::Event& event) { |
| 315 if (sender == minimize_button_) { | 314 if (sender == minimize_button_) { |
| 316 frame()->Minimize(); | 315 frame()->Minimize(); |
| 317 } else if (sender == maximize_button_) { | 316 } else if (sender == maximize_button_) { |
| 318 frame()->Maximize(); | 317 frame()->Maximize(); |
| 319 } else if (sender == restore_button_) { | 318 } else if (sender == restore_button_) { |
| 320 frame()->Restore(); | 319 frame()->Restore(); |
| 321 } else if (sender == close_button_) { | 320 } else if (sender == close_button_) { |
| 322 frame()->Close(); | 321 frame()->Close(); |
| 323 #if defined(FRAME_AVATAR_BUTTON) | |
| 324 } else if (sender == new_avatar_button()) { | |
| 325 BrowserWindow::AvatarBubbleMode mode = | |
| 326 BrowserWindow::AVATAR_BUBBLE_MODE_DEFAULT; | |
| 327 if ((event.IsMouseEvent() && | |
| 328 static_cast<const ui::MouseEvent&>(event).IsRightMouseButton()) || | |
| 329 (event.type() == ui::ET_GESTURE_LONG_PRESS)) { | |
| 330 mode = BrowserWindow::AVATAR_BUBBLE_MODE_FAST_USER_SWITCH; | |
| 331 } | |
| 332 browser_view()->ShowAvatarBubbleFromAvatarButton( | |
| 333 mode, signin::ManageAccountsParams(), | |
| 334 signin_metrics::AccessPoint::ACCESS_POINT_AVATAR_BUBBLE_SIGN_IN); | |
| 335 #endif | |
| 336 } | 322 } |
| 337 } | 323 } |
| 338 | 324 |
| 339 void OpaqueBrowserFrameView::OnMenuButtonClicked(views::View* source, | 325 void OpaqueBrowserFrameView::OnMenuButtonClicked(views::View* source, |
| 340 const gfx::Point& point) { | 326 const gfx::Point& point) { |
| 341 #if defined(OS_LINUX) | 327 #if defined(OS_LINUX) |
| 342 views::MenuRunner menu_runner(frame()->GetSystemMenuModel(), | 328 views::MenuRunner menu_runner(frame()->GetSystemMenuModel(), |
| 343 views::MenuRunner::HAS_MNEMONICS); | 329 views::MenuRunner::HAS_MNEMONICS); |
| 344 ignore_result(menu_runner.RunMenuAt(browser_view()->GetWidget(), | 330 ignore_result(menu_runner.RunMenuAt(browser_view()->GetWidget(), |
| 345 window_icon_, | 331 window_icon_, |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 | 466 |
| 481 // BrowserNonClientFrameView: | 467 // BrowserNonClientFrameView: |
| 482 bool OpaqueBrowserFrameView::ShouldPaintAsThemed() const { | 468 bool OpaqueBrowserFrameView::ShouldPaintAsThemed() const { |
| 483 // Theme app and popup windows if |platform_observer_| wants it. | 469 // Theme app and popup windows if |platform_observer_| wants it. |
| 484 return browser_view()->IsBrowserTypeNormal() || | 470 return browser_view()->IsBrowserTypeNormal() || |
| 485 platform_observer_->IsUsingSystemTheme(); | 471 platform_observer_->IsUsingSystemTheme(); |
| 486 } | 472 } |
| 487 | 473 |
| 488 void OpaqueBrowserFrameView::UpdateNewAvatarButtonImpl() { | 474 void OpaqueBrowserFrameView::UpdateNewAvatarButtonImpl() { |
| 489 #if defined(FRAME_AVATAR_BUTTON) | 475 #if defined(FRAME_AVATAR_BUTTON) |
| 490 UpdateNewAvatarButton(this, NewAvatarButton::THEMED_BUTTON); | 476 UpdateNewAvatarButton(AVATAR_BUTTON_THEMED); |
| 491 #endif | 477 #endif |
| 492 } | 478 } |
| 493 | 479 |
| 494 /////////////////////////////////////////////////////////////////////////////// | 480 /////////////////////////////////////////////////////////////////////////////// |
| 495 // OpaqueBrowserFrameView, private: | 481 // OpaqueBrowserFrameView, private: |
| 496 | 482 |
| 497 // views::NonClientFrameView: | 483 // views::NonClientFrameView: |
| 498 bool OpaqueBrowserFrameView::DoesIntersectRect(const views::View* target, | 484 bool OpaqueBrowserFrameView::DoesIntersectRect(const views::View* target, |
| 499 const gfx::Rect& rect) const { | 485 const gfx::Rect& rect) const { |
| 500 CHECK_EQ(target, this); | 486 CHECK_EQ(target, this); |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 825 // images because the images are meant to alpha-blend atop the frame whereas | 811 // images because the images are meant to alpha-blend atop the frame whereas |
| 826 // these rects are meant to be fully opaque, without anything overlaid. | 812 // these rects are meant to be fully opaque, without anything overlaid. |
| 827 gfx::Rect side(x - kClientEdgeThickness, y, kClientEdgeThickness, | 813 gfx::Rect side(x - kClientEdgeThickness, y, kClientEdgeThickness, |
| 828 bottom + kClientEdgeThickness - y); | 814 bottom + kClientEdgeThickness - y); |
| 829 canvas->FillRect(side, toolbar_color); | 815 canvas->FillRect(side, toolbar_color); |
| 830 canvas->FillRect(gfx::Rect(x, bottom, w, kClientEdgeThickness), | 816 canvas->FillRect(gfx::Rect(x, bottom, w, kClientEdgeThickness), |
| 831 toolbar_color); | 817 toolbar_color); |
| 832 side.set_x(right); | 818 side.set_x(right); |
| 833 canvas->FillRect(side, toolbar_color); | 819 canvas->FillRect(side, toolbar_color); |
| 834 } | 820 } |
| OLD | NEW |