OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef ATHENA_SCREEN_PUBLIC_SCREEN_MANAGER_H_ | 5 #ifndef ATHENA_SCREEN_PUBLIC_SCREEN_MANAGER_H_ |
6 #define ATHENA_SCREEN_PUBLIC_SCREEN_MANAGER_H_ | 6 #define ATHENA_SCREEN_PUBLIC_SCREEN_MANAGER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "athena/athena_export.h" | 10 #include "athena/athena_export.h" |
11 #include "ui/gfx/display.h" | 11 #include "ui/gfx/display.h" |
12 | 12 |
13 namespace aura { | 13 namespace aura { |
14 class Window; | 14 class Window; |
15 } | 15 } |
16 | 16 |
17 namespace gfx { | 17 namespace gfx { |
18 class ImageSkia; | 18 class ImageSkia; |
| 19 class Insets; |
19 } | 20 } |
20 | 21 |
21 namespace ui { | 22 namespace ui { |
22 class LayerAnimator; | 23 class LayerAnimator; |
23 } | 24 } |
24 | 25 |
25 namespace wm { | 26 namespace wm { |
26 class FocusRules; | 27 class FocusRules; |
27 } | 28 } |
28 | 29 |
29 namespace athena { | 30 namespace athena { |
| 31 class ScreenManagerDelegate; |
30 | 32 |
31 // Mananges basic UI components on the screen such as background, and provide | 33 // Mananges basic UI components on the screen such as background, and provide |
32 // API for other UI components, such as window manager, home card, to | 34 // API for other UI components, such as window manager, home card, to |
33 // create and manage their windows on the screen. | 35 // create and manage their windows on the screen. |
34 class ATHENA_EXPORT ScreenManager { | 36 class ATHENA_EXPORT ScreenManager { |
35 public: | 37 public: |
36 struct ContainerParams { | 38 struct ContainerParams { |
37 ContainerParams(const std::string& name, int z_order_priority); | 39 ContainerParams(const std::string& name, int z_order_priority); |
38 std::string name; | 40 std::string name; |
39 | 41 |
40 // True if the container can activate its child window. | 42 // True if the container can activate its child window. |
41 bool can_activate_children; | 43 bool can_activate_children; |
42 | 44 |
43 // True if the container will grab all of input events. | 45 // True if the container will grab all of input events. |
44 bool grab_inputs; | 46 bool grab_inputs; |
45 | 47 |
46 // Defines the z_order priority of the container. | 48 // Defines the z_order priority of the container. |
47 int z_order_priority; | 49 int z_order_priority; |
48 }; | 50 }; |
49 | 51 |
50 // Creates, returns and deletes the singleton object of the ScreenManager | 52 // Creates, returns and deletes the singleton object of the ScreenManager |
51 // implementation. | 53 // implementation. |
52 static ScreenManager* Create(aura::Window* root); | 54 static ScreenManager* Create(ScreenManagerDelegate* delegate, |
| 55 aura::Window* root); |
53 static ScreenManager* Get(); | 56 static ScreenManager* Get(); |
54 static void Shutdown(); | 57 static void Shutdown(); |
55 | 58 |
56 virtual ~ScreenManager() {} | 59 virtual ~ScreenManager() {} |
57 | 60 |
| 61 // Sets the screen's work area insets. |
| 62 virtual void SetWorkAreaInsets(const gfx::Insets& insets) = 0; |
| 63 |
58 // Creates the container window that is used when creating a normal | 64 // Creates the container window that is used when creating a normal |
59 // widget without specific parent. | 65 // widget without specific parent. |
60 virtual aura::Window* CreateDefaultContainer( | 66 virtual aura::Window* CreateDefaultContainer( |
61 const ContainerParams& params) = 0; | 67 const ContainerParams& params) = 0; |
62 | 68 |
63 // Creates the container window on the screen. | 69 // Creates the container window on the screen. |
64 virtual aura::Window* CreateContainer(const ContainerParams& params) = 0; | 70 virtual aura::Window* CreateContainer(const ContainerParams& params) = 0; |
65 | 71 |
66 // Return the context object to be used for widget creation. | 72 // Return the context object to be used for widget creation. |
67 virtual aura::Window* GetContext() = 0; | 73 virtual aura::Window* GetContext() = 0; |
(...skipping 11 matching lines...) Expand all Loading... |
79 virtual ui::LayerAnimator* GetScreenAnimator() = 0; | 85 virtual ui::LayerAnimator* GetScreenAnimator() = 0; |
80 | 86 |
81 // Create a focus rules. | 87 // Create a focus rules. |
82 // TODO(oshima): Make this virtual function. | 88 // TODO(oshima): Make this virtual function. |
83 static wm::FocusRules* CreateFocusRules(); | 89 static wm::FocusRules* CreateFocusRules(); |
84 }; | 90 }; |
85 | 91 |
86 } // namespace athena | 92 } // namespace athena |
87 | 93 |
88 #endif // ATHENA_SCREEN_PUBLIC_SCREEN_MANAGER_H_ | 94 #endif // ATHENA_SCREEN_PUBLIC_SCREEN_MANAGER_H_ |
OLD | NEW |