screen_util.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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
11namespace aura {
12class Window;
13}
14
15namespace gfx {
16class Display;
17class Rect;
18class Point;
19}
20
21namespace ash {
22
23class 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
59private:
60  ScreenUtil() {}
61  ~ScreenUtil() {}
62
63  DISALLOW_COPY_AND_ASSIGN(ScreenUtil);
64};
65
66}  // namespace ash
67
68#endif  // ASH_SCREEN_UTIL_H_
69