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 "ui/gfx/screen.h" | 5 #include "ui/gfx/screen.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 | 8 |
| 9 namespace { |
| 10 |
| 11 MONITORINFO GetMonitorInfoForMonitor(HMONITOR monitor) { |
| 12 MONITORINFO monitor_info = { 0 }; |
| 13 monitor_info.cbSize = sizeof(monitor_info); |
| 14 GetMonitorInfo(monitor, &monitor_info); |
| 15 return monitor_info; |
| 16 } |
| 17 |
| 18 } // namespace |
| 19 |
9 namespace gfx { | 20 namespace gfx { |
10 | 21 |
11 // static | 22 // static |
12 gfx::Point Screen::GetCursorScreenPoint() { | 23 gfx::Point Screen::GetCursorScreenPoint() { |
13 POINT pt; | 24 POINT pt; |
14 GetCursorPos(&pt); | 25 GetCursorPos(&pt); |
15 return gfx::Point(pt); | 26 return gfx::Point(pt); |
16 } | 27 } |
17 | 28 |
18 // static | 29 // static |
(...skipping 29 matching lines...) Expand all Loading... |
48 gfx::Rect Screen::GetMonitorWorkAreaNearestPoint(const gfx::Point& point) { | 59 gfx::Rect Screen::GetMonitorWorkAreaNearestPoint(const gfx::Point& point) { |
49 return GetMonitorAreaOrWorkAreaNearestPoint(point, true); | 60 return GetMonitorAreaOrWorkAreaNearestPoint(point, true); |
50 } | 61 } |
51 | 62 |
52 // static | 63 // static |
53 gfx::Rect Screen::GetMonitorAreaNearestPoint(const gfx::Point& point) { | 64 gfx::Rect Screen::GetMonitorAreaNearestPoint(const gfx::Point& point) { |
54 return GetMonitorAreaOrWorkAreaNearestPoint(point, false); | 65 return GetMonitorAreaOrWorkAreaNearestPoint(point, false); |
55 } | 66 } |
56 | 67 |
57 // static | 68 // static |
| 69 gfx::Rect Screen::GetPrimaryMonitorWorkArea() { |
| 70 return gfx::Rect(GetMonitorInfoForMonitor(MonitorFromWindow(NULL, |
| 71 MONITOR_DEFAULTTOPRIMARY)).rcWork); |
| 72 } |
| 73 |
| 74 // static |
| 75 gfx::Rect Screen::GetPrimaryMonitorBounds() { |
| 76 return gfx::Rect(GetMonitorInfoForMonitor(MonitorFromWindow(NULL, |
| 77 MONITOR_DEFAULTTOPRIMARY)).rcMonitor); |
| 78 } |
| 79 |
| 80 // static |
| 81 gfx::Rect Screen::GetMonitorWorkAreaMatching(const gfx::Rect& match_rect) { |
| 82 RECT other_bounds_rect = match_rect.ToRECT(); |
| 83 MONITORINFO monitor_info = GetMonitorInfoForMonitor(MonitorFromRect( |
| 84 &other_bounds_rect, MONITOR_DEFAULTTONEAREST)); |
| 85 return gfx::Rect(monitor_info.rcWork); |
| 86 } |
| 87 |
| 88 // static |
58 gfx::NativeWindow Screen::GetWindowAtCursorScreenPoint() { | 89 gfx::NativeWindow Screen::GetWindowAtCursorScreenPoint() { |
59 POINT location; | 90 POINT location; |
60 return GetCursorPos(&location) ? WindowFromPoint(location) : NULL; | 91 return GetCursorPos(&location) ? WindowFromPoint(location) : NULL; |
61 } | 92 } |
62 | 93 |
63 // static | 94 // static |
64 gfx::Size Screen::GetPrimaryMonitorSize() { | 95 gfx::Size Screen::GetPrimaryMonitorSize() { |
65 return gfx::Size(GetSystemMetrics(SM_CXSCREEN), | 96 return gfx::Size(GetSystemMetrics(SM_CXSCREEN), |
66 GetSystemMetrics(SM_CYSCREEN)); | 97 GetSystemMetrics(SM_CYSCREEN)); |
67 } | 98 } |
68 | 99 |
69 // static | 100 // static |
70 int Screen::GetNumMonitors() { | 101 int Screen::GetNumMonitors() { |
71 return GetSystemMetrics(SM_CMONITORS); | 102 return GetSystemMetrics(SM_CMONITORS); |
72 } | 103 } |
73 | 104 |
74 } // namespace gfx | 105 } // namespace gfx |
OLD | NEW |