coordinate_conversion.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
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
3// found in the LICENSE file.
4
5#include "ash/wm/coordinate_conversion.h"
6
7#include "ash/display/display_controller.h"
8#include "ash/shell.h"
9#include "ui/aura/client/screen_position_client.h"
10#include "ui/aura/root_window.h"
11#include "ui/gfx/display.h"
12#include "ui/gfx/point.h"
13#include "ui/gfx/rect.h"
14#include "ui/gfx/screen.h"
15
16namespace ash {
17namespace wm {
18
19aura::RootWindow* GetRootWindowAt(const gfx::Point& point) {
20  const gfx::Display& display =
21      Shell::GetScreen()->GetDisplayNearestPoint(point);
22  // TODO(yusukes): Move coordinate_conversion.cc and .h to ui/aura/ once
23  // GetRootWindowForDisplayId() is moved to aura::Env.
24  return Shell::GetInstance()->display_controller()->
25      GetRootWindowForDisplayId(display.id());
26}
27
28aura::RootWindow* GetRootWindowMatching(const gfx::Rect& rect) {
29  const gfx::Display& display = Shell::GetScreen()->GetDisplayMatching(rect);
30  return Shell::GetInstance()->display_controller()->
31      GetRootWindowForDisplayId(display.id());
32}
33
34void ConvertPointToScreen(aura::Window* window, gfx::Point* point) {
35  aura::client::GetScreenPositionClient(window->GetRootWindow())->
36      ConvertPointToScreen(window, point);
37}
38
39void ConvertPointFromScreen(aura::Window* window,
40                            gfx::Point* point_in_screen) {
41  aura::client::GetScreenPositionClient(window->GetRootWindow())->
42      ConvertPointFromScreen(window, point_in_screen);
43}
44
45}  // namespace wm
46}  // namespace ash
47