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

Side by Side Diff: ui/views/widget/native_widget_aura.cc

Issue 9960042: Refactor screen/monitor so that gfx::Screen returns monitor object. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 8 years, 8 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 "ui/views/widget/native_widget_aura.h" 5 #include "ui/views/widget/native_widget_aura.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "third_party/skia/include/core/SkRegion.h" 9 #include "third_party/skia/include/core/SkRegion.h"
10 #include "ui/aura/client/activation_client.h" 10 #include "ui/aura/client/activation_client.h"
(...skipping 22 matching lines...) Expand all
33 #include "ui/views/widget/tooltip_manager_aura.h" 33 #include "ui/views/widget/tooltip_manager_aura.h"
34 #include "ui/views/widget/widget_delegate.h" 34 #include "ui/views/widget/widget_delegate.h"
35 35
36 #if defined(OS_WIN) 36 #if defined(OS_WIN)
37 #include "base/win/scoped_gdi_object.h" 37 #include "base/win/scoped_gdi_object.h"
38 #include "base/win/win_util.h" 38 #include "base/win/win_util.h"
39 #include "ui/base/l10n/l10n_util_win.h" 39 #include "ui/base/l10n/l10n_util_win.h"
40 #endif 40 #endif
41 41
42 #if defined(ENABLE_DIP) 42 #if defined(ENABLE_DIP)
43 #include "ui/aura/monitor.h" 43 #include "ui/gfx/monitor.h"
44 #include "ui/aura/monitor_manager.h"
45 #endif 44 #endif
46 45
47 namespace views { 46 namespace views {
48 47
49 namespace { 48 namespace {
50 49
51 aura::client::WindowType GetAuraWindowTypeForWidgetType( 50 aura::client::WindowType GetAuraWindowTypeForWidgetType(
52 Widget::InitParams::Type type) { 51 Widget::InitParams::Type type) {
53 switch (type) { 52 switch (type) {
54 case Widget::InitParams::TYPE_WINDOW: 53 case Widget::InitParams::TYPE_WINDOW:
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 InputMethod* input_method = new InputMethodBridge(this, host); 345 InputMethod* input_method = new InputMethodBridge(this, host);
347 input_method->Init(GetWidget()); 346 input_method->Init(GetWidget());
348 return input_method; 347 return input_method;
349 } 348 }
350 349
351 void NativeWidgetAura::CenterWindow(const gfx::Size& size) { 350 void NativeWidgetAura::CenterWindow(const gfx::Size& size) {
352 gfx::Rect parent_bounds(window_->parent()->GetScreenBounds()); 351 gfx::Rect parent_bounds(window_->parent()->GetScreenBounds());
353 // When centering window, we take the intersection of the host and 352 // When centering window, we take the intersection of the host and
354 // the parent. We assume the root window represents the visible 353 // the parent. We assume the root window represents the visible
355 // rect of a single screen. 354 // rect of a single screen.
356 gfx::Rect work_area = gfx::Screen::GetMonitorWorkAreaNearestWindow(window_); 355 gfx::Rect work_area =
356 gfx::Screen::GetMonitorNearestWindow(window_).work_area();
357 parent_bounds = parent_bounds.Intersect(work_area); 357 parent_bounds = parent_bounds.Intersect(work_area);
358 358
359 // If |window_|'s transient parent's bounds are big enough to fit it, then we 359 // If |window_|'s transient parent's bounds are big enough to fit it, then we
360 // center it with respect to the transient parent. 360 // center it with respect to the transient parent.
361 if (window_->transient_parent()) { 361 if (window_->transient_parent()) {
362 gfx::Rect transient_parent_rect = window_->transient_parent()-> 362 gfx::Rect transient_parent_rect = window_->transient_parent()->
363 GetScreenBounds().Intersect(work_area); 363 GetScreenBounds().Intersect(work_area);
364 if (transient_parent_rect.height() >= size.height() && 364 if (transient_parent_rect.height() >= size.height() &&
365 transient_parent_rect.width() >= size.width()) 365 transient_parent_rect.width() >= size.width())
366 parent_bounds = transient_parent_rect; 366 parent_bounds = transient_parent_rect;
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 if (window_ && window_->GetFocusManager() && 659 if (window_ && window_->GetFocusManager() &&
660 window_->Contains(window_->GetFocusManager()->GetFocusedWindow())) 660 window_->Contains(window_->GetFocusManager()->GetFocusedWindow()))
661 window_->GetFocusManager()->SetFocusedWindow(window_, NULL); 661 window_->GetFocusManager()->SetFocusedWindow(window_, NULL);
662 } 662 }
663 663
664 void NativeWidgetAura::FocusNativeView(gfx::NativeView native_view) { 664 void NativeWidgetAura::FocusNativeView(gfx::NativeView native_view) {
665 window_->GetFocusManager()->SetFocusedWindow(native_view, NULL); 665 window_->GetFocusManager()->SetFocusedWindow(native_view, NULL);
666 } 666 }
667 667
668 gfx::Rect NativeWidgetAura::GetWorkAreaBoundsInScreen() const { 668 gfx::Rect NativeWidgetAura::GetWorkAreaBoundsInScreen() const {
669 return gfx::Screen::GetMonitorWorkAreaNearestWindow(GetNativeView()); 669 return gfx::Screen::GetMonitorNearestWindow(GetNativeView()).work_area();
670 } 670 }
671 671
672 void NativeWidgetAura::SetInactiveRenderingDisabled(bool value) { 672 void NativeWidgetAura::SetInactiveRenderingDisabled(bool value) {
673 if (!value) 673 if (!value)
674 active_window_observer_.reset(); 674 active_window_observer_.reset();
675 else 675 else
676 active_window_observer_.reset(new ActiveWindowObserver(this)); 676 active_window_observer_.reset(new ActiveWindowObserver(this));
677 } 677 }
678 678
679 Widget::MoveLoopResult NativeWidgetAura::RunMoveLoop() { 679 Widget::MoveLoopResult NativeWidgetAura::RunMoveLoop() {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 bool NativeWidgetAura::CanFocus() { 816 bool NativeWidgetAura::CanFocus() {
817 return can_activate_; 817 return can_activate_;
818 } 818 }
819 819
820 void NativeWidgetAura::OnCaptureLost() { 820 void NativeWidgetAura::OnCaptureLost() {
821 delegate_->OnMouseCaptureLost(); 821 delegate_->OnMouseCaptureLost();
822 } 822 }
823 823
824 void NativeWidgetAura::OnPaint(gfx::Canvas* canvas) { 824 void NativeWidgetAura::OnPaint(gfx::Canvas* canvas) {
825 #if defined(ENABLE_DIP) 825 #if defined(ENABLE_DIP)
826 aura::Monitor* monitor = GetMonitor();
827 canvas->Save(); 826 canvas->Save();
828 float scale = monitor->GetDeviceScaleFactor(); 827 float scale = GetMonitorScaleFactor();
829 canvas->sk_canvas()->scale(SkFloatToScalar(scale), SkFloatToScalar(scale)); 828 canvas->sk_canvas()->scale(SkFloatToScalar(scale), SkFloatToScalar(scale));
830 #endif 829 #endif
831 delegate_->OnNativeWidgetPaint(canvas); 830 delegate_->OnNativeWidgetPaint(canvas);
832 #if defined(ENABLE_DIP) 831 #if defined(ENABLE_DIP)
833 canvas->Restore(); 832 canvas->Restore();
834 #endif 833 #endif
835 } 834 }
836 835
837 void NativeWidgetAura::OnWindowDestroying() { 836 void NativeWidgetAura::OnWindowDestroying() {
838 delegate_->OnNativeWidgetDestroying(); 837 delegate_->OnNativeWidgetDestroying();
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 //////////////////////////////////////////////////////////////////////////////// 905 ////////////////////////////////////////////////////////////////////////////////
907 // NativeWidgetAura, private: 906 // NativeWidgetAura, private:
908 907
909 void NativeWidgetAura::SetInitialFocus() { 908 void NativeWidgetAura::SetInitialFocus() {
910 // The window does not get keyboard messages unless we focus it. 909 // The window does not get keyboard messages unless we focus it.
911 if (!GetWidget()->SetInitialFocus()) 910 if (!GetWidget()->SetInitialFocus())
912 window_->Focus(); 911 window_->Focus();
913 } 912 }
914 913
915 #if defined(ENABLE_DIP) 914 #if defined(ENABLE_DIP)
916 aura::Monitor* NativeWidgetAura::GetMonitor() const { 915 float NativeWidgetAura::GetMonitorScaleFactor() const {
917 return aura::Env::GetInstance()->monitor_manager()-> 916 return gfx::Screen::GetMonitorNearestWindow(window_).device_scale_factor();
918 GetMonitorNearestWindow(window_);
919 } 917 }
920 918
921 gfx::Point NativeWidgetAura::ConvertPointFromMonitor( 919 gfx::Point NativeWidgetAura::ConvertPointFromMonitor(
922 const gfx::Point& point) const { 920 const gfx::Point& point) const {
923 return point.Scale(1.0f / GetMonitor()->GetDeviceScaleFactor()); 921 return point.Scale(1.0f / GetMonitorScaleFactor());
924 } 922 }
925 923
926 gfx::Size NativeWidgetAura::ConvertSizeFromMonitor( 924 gfx::Size NativeWidgetAura::ConvertSizeFromMonitor(
927 const gfx::Size& size) const { 925 const gfx::Size& size) const {
928 return size.Scale(1.0f / GetMonitor()->GetDeviceScaleFactor()); 926 return size.Scale(1.0f / GetMonitorScaleFactor());
929 } 927 }
930 928
931 gfx::Rect NativeWidgetAura::ConvertRectFromMonitor( 929 gfx::Rect NativeWidgetAura::ConvertRectFromMonitor(
932 const gfx::Rect& rect) const { 930 const gfx::Rect& rect) const {
933 float scale = 1.0f / GetMonitor()->GetDeviceScaleFactor(); 931 float scale = 1.0f / GetMonitorScaleFactor();
934 return gfx::Rect(rect.origin().Scale(scale), rect.size().Scale(scale)); 932 return gfx::Rect(rect.origin().Scale(scale), rect.size().Scale(scale));
935 } 933 }
936 934
937 gfx::Size NativeWidgetAura::ConvertSizeToMonitor(const gfx::Size& size) const { 935 gfx::Size NativeWidgetAura::ConvertSizeToMonitor(const gfx::Size& size) const {
938 return size.Scale(GetMonitor()->GetDeviceScaleFactor()); 936 return size.Scale(GetMonitorScaleFactor());
939 } 937 }
940 938
941 gfx::Rect NativeWidgetAura::ConvertRectToMonitor(const gfx::Rect& rect) const { 939 gfx::Rect NativeWidgetAura::ConvertRectToMonitor(const gfx::Rect& rect) const {
942 float scale = GetMonitor()->GetDeviceScaleFactor(); 940 float scale = GetMonitorScaleFactor();
943 return gfx::Rect(rect.origin().Scale(scale), rect.size().Scale(scale)); 941 return gfx::Rect(rect.origin().Scale(scale), rect.size().Scale(scale));
944 } 942 }
945 #endif 943 #endif
946 944
947 //////////////////////////////////////////////////////////////////////////////// 945 ////////////////////////////////////////////////////////////////////////////////
948 // Widget, public: 946 // Widget, public:
949 947
950 // static 948 // static
951 void Widget::NotifyLocaleChanged() { 949 void Widget::NotifyLocaleChanged() {
952 // Deliberately not implemented. 950 // Deliberately not implemented.
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1049 } 1047 }
1050 } 1048 }
1051 1049
1052 // static 1050 // static
1053 bool NativeWidgetPrivate::IsMouseButtonDown() { 1051 bool NativeWidgetPrivate::IsMouseButtonDown() {
1054 return aura::Env::GetInstance()->is_mouse_button_down(); 1052 return aura::Env::GetInstance()->is_mouse_button_down();
1055 } 1053 }
1056 1054
1057 } // namespace internal 1055 } // namespace internal
1058 } // namespace views 1056 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698