Home | History | Annotate | Download | only in ash
      1 // Copyright 2014 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 #ifndef ASH_SCREEN_UTIL_H_
      6 #define ASH_SCREEN_UTIL_H_
      7 
      8 #include "ash/ash_export.h"
      9 #include "base/basictypes.h"
     10 
     11 namespace aura {
     12 class Window;
     13 }
     14 
     15 namespace gfx {
     16 class Display;
     17 class Rect;
     18 class Point;
     19 }
     20 
     21 namespace ash {
     22 
     23 class ASH_EXPORT ScreenUtil {
     24  public:
     25   // Finds the display that contains |point| in screeen coordinates.
     26   // Returns invalid display if there is no display that can satisfy
     27   // the condition.
     28   static gfx::Display FindDisplayContainingPoint(const gfx::Point& point);
     29 
     30   // Returns the bounds for maximized windows in parent coordinates.
     31   // Maximized windows trigger auto-hiding the shelf.
     32   static gfx::Rect GetMaximizedWindowBoundsInParent(aura::Window* window);
     33 
     34   // Returns the display bounds in parent coordinates.
     35   static gfx::Rect GetDisplayBoundsInParent(aura::Window* window);
     36 
     37   // Returns the display's work area bounds in parent coordinates.
     38   static gfx::Rect GetDisplayWorkAreaBoundsInParent(aura::Window* window);
     39 
     40   // TODO(oshima): Move following two to wm/coordinate_conversion.h
     41   // Converts |rect| from |window|'s coordinates to the virtual screen
     42   // coordinates.
     43   static gfx::Rect ConvertRectToScreen(aura::Window* window,
     44                                        const gfx::Rect& rect);
     45 
     46   // Converts |rect| from virtual screen coordinates to the |window|'s
     47   // coordinates.
     48   static gfx::Rect ConvertRectFromScreen(aura::Window* window,
     49                                          const gfx::Rect& rect);
     50 
     51   // Returns a gfx::Display object for secondary display. Returns
     52   // invalid display if there is no secondary display connected.
     53   static const gfx::Display& GetSecondaryDisplay();
     54 
     55   // Returns a gfx::Display object for the specified id.  Returns
     56   // invalid display if no such display is connected.
     57   static const gfx::Display& GetDisplayForId(int64 display_id);
     58 
     59  private:
     60   ScreenUtil() {}
     61   ~ScreenUtil() {}
     62 
     63   DISALLOW_COPY_AND_ASSIGN(ScreenUtil);
     64 };
     65 
     66 }  // namespace ash
     67 
     68 #endif  // ASH_SCREEN_UTIL_H_
     69