// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "views/screen.h" #include namespace views { // static gfx::Point Screen::GetCursorScreenPoint() { POINT pt; GetCursorPos(&pt); return gfx::Point(pt); } // static gfx::Rect Screen::GetMonitorWorkAreaNearestWindow(gfx::NativeWindow window) { MONITORINFO monitor_info; monitor_info.cbSize = sizeof(monitor_info); GetMonitorInfo(MonitorFromWindow(window, MONITOR_DEFAULTTONEAREST), &monitor_info); return gfx::Rect(monitor_info.rcWork); } // static gfx::Rect Screen::GetMonitorAreaNearestWindow(gfx::NativeWindow window) { MONITORINFO monitor_info; monitor_info.cbSize = sizeof(monitor_info); GetMonitorInfo(MonitorFromWindow(window, MONITOR_DEFAULTTONEAREST), &monitor_info); return gfx::Rect(monitor_info.rcMonitor); } // static gfx::Rect Screen::GetMonitorAreaNearestPoint(const gfx::Point& point) { POINT initial_loc = { point.x(), point.y() }; HMONITOR monitor = MonitorFromPoint(initial_loc, MONITOR_DEFAULTTONEAREST); if (!monitor) return gfx::Rect(); MONITORINFO mi = {0}; mi.cbSize = sizeof(mi); GetMonitorInfo(monitor, &mi); return gfx::Rect(mi.rcMonitor); } gfx::NativeWindow Screen::GetWindowAtCursorScreenPoint() { POINT location; return GetCursorPos(&location) ? WindowFromPoint(location) : NULL; } } // namespace