Home | History | Annotate | Download | only in wm
      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/gfx/display.h"
     11 #include "ui/gfx/point.h"
     12 #include "ui/gfx/rect.h"
     13 #include "ui/gfx/screen.h"
     14 
     15 namespace ash {
     16 namespace wm {
     17 
     18 aura::Window* GetRootWindowAt(const gfx::Point& point) {
     19   const gfx::Display& display =
     20       Shell::GetScreen()->GetDisplayNearestPoint(point);
     21   DCHECK(display.is_valid());
     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 
     28 aura::Window* 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 
     34 void ConvertPointToScreen(const aura::Window* window, gfx::Point* point) {
     35   CHECK(aura::client::GetScreenPositionClient(window->GetRootWindow()));
     36   aura::client::GetScreenPositionClient(window->GetRootWindow())->
     37       ConvertPointToScreen(window, point);
     38 }
     39 
     40 void ConvertPointFromScreen(const aura::Window* window,
     41                             gfx::Point* point_in_screen) {
     42   aura::client::GetScreenPositionClient(window->GetRootWindow())->
     43       ConvertPointFromScreen(window, point_in_screen);
     44 }
     45 
     46 }  // namespace wm
     47 }  // namespace ash
     48