OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 ASH_ROOT_WINDOW_CONTROLLER_H_ | 5 #ifndef ASH_ROOT_WINDOW_CONTROLLER_H_ |
6 #define ASH_ROOT_WINDOW_CONTROLLER_H_ | 6 #define ASH_ROOT_WINDOW_CONTROLLER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 class Shelf; | 60 class Shelf; |
61 class ShelfLayoutManager; | 61 class ShelfLayoutManager; |
62 class ShelfWidget; | 62 class ShelfWidget; |
63 class StackingController; | 63 class StackingController; |
64 class StatusAreaWidget; | 64 class StatusAreaWidget; |
65 class SystemBackgroundController; | 65 class SystemBackgroundController; |
66 class SystemModalContainerLayoutManager; | 66 class SystemModalContainerLayoutManager; |
67 class SystemTray; | 67 class SystemTray; |
68 class TouchHudDebug; | 68 class TouchHudDebug; |
69 class TouchHudProjection; | 69 class TouchHudProjection; |
| 70 class WmShelfAura; |
70 class WmWindow; | 71 class WmWindow; |
71 class WorkspaceController; | 72 class WorkspaceController; |
72 | 73 |
73 #if defined(OS_CHROMEOS) | 74 #if defined(OS_CHROMEOS) |
74 class BootSplashScreen; | 75 class BootSplashScreen; |
75 class AshTouchExplorationManager; | 76 class AshTouchExplorationManager; |
76 #endif | 77 #endif |
77 | 78 |
78 // This class maintains the per root window state for ash. This class | 79 // This class maintains the per root window state for ash. This class |
79 // owns the root window and other dependent objects that should be | 80 // owns the root window and other dependent objects that should be |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 const aura::Window* GetRootWindow() const; | 112 const aura::Window* GetRootWindow() const; |
112 | 113 |
113 WorkspaceController* workspace_controller() { | 114 WorkspaceController* workspace_controller() { |
114 return workspace_controller_.get(); | 115 return workspace_controller_.get(); |
115 } | 116 } |
116 | 117 |
117 AlwaysOnTopController* always_on_top_controller() { | 118 AlwaysOnTopController* always_on_top_controller() { |
118 return always_on_top_controller_.get(); | 119 return always_on_top_controller_.get(); |
119 } | 120 } |
120 | 121 |
| 122 WmShelfAura* wm_shelf_aura() const { return wm_shelf_aura_.get(); } |
| 123 |
121 // Access the shelf widget associated with this root window controller, | 124 // Access the shelf widget associated with this root window controller, |
122 // NULL if no such shelf exists. | 125 // NULL if no such shelf exists. |
123 // DEPRECATED: Prefer GetShelf()->shelf_widget(). | 126 // DEPRECATED: Prefer GetShelf()->shelf_widget(). |
124 ShelfWidget* shelf_widget() { return shelf_widget_.get(); } | 127 ShelfWidget* shelf_widget() { return shelf_widget_.get(); } |
125 | 128 |
126 // Get touch HUDs associated with this root window controller. | 129 // Get touch HUDs associated with this root window controller. |
127 TouchHudDebug* touch_hud_debug() const { | 130 TouchHudDebug* touch_hud_debug() const { |
128 return touch_hud_debug_; | 131 return touch_hud_debug_; |
129 } | 132 } |
130 TouchHudProjection* touch_hud_projection() const { | 133 TouchHudProjection* touch_hud_projection() const { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 const aura::Window* GetContainer(int container_id) const; | 182 const aura::Window* GetContainer(int container_id) const; |
180 | 183 |
181 // Show shelf view if it was created hidden (before session has started). | 184 // Show shelf view if it was created hidden (before session has started). |
182 // TODO(jamescook): Eliminate this and handle show via Shelf. | 185 // TODO(jamescook): Eliminate this and handle show via Shelf. |
183 void ShowShelf(); | 186 void ShowShelf(); |
184 | 187 |
185 // Creates the shelf for this root window and notifies observers. | 188 // Creates the shelf for this root window and notifies observers. |
186 void CreateShelf(); | 189 void CreateShelf(); |
187 | 190 |
188 // Returns the shelf controller for this root window. | 191 // Returns the shelf controller for this root window. |
| 192 // TODO(jamescook): Remove this and use WmRootWindowController::GetShelf(). |
189 Shelf* GetShelf() const; | 193 Shelf* GetShelf() const; |
190 | 194 |
191 // Called when the login status changes after login (such as lock/unlock). | 195 // Called when the login status changes after login (such as lock/unlock). |
192 // TODO(oshima): Investigate if we can merge this and |OnLoginStateChanged|. | 196 // TODO(oshima): Investigate if we can merge this and |OnLoginStateChanged|. |
193 void UpdateAfterLoginStatusChange(user::LoginStatus status); | 197 void UpdateAfterLoginStatusChange(user::LoginStatus status); |
194 | 198 |
195 // Called when the brightness/grayscale animation from white to the login | 199 // Called when the brightness/grayscale animation from white to the login |
196 // desktop background image has started. Starts |boot_splash_screen_|'s | 200 // desktop background image has started. Starts |boot_splash_screen_|'s |
197 // hiding animation (if the screen is non-NULL). | 201 // hiding animation (if the screen is non-NULL). |
198 void HandleInitialDesktopBackgroundAnimationStarted(); | 202 void HandleInitialDesktopBackgroundAnimationStarted(); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 // Overridden from ShellObserver. | 272 // Overridden from ShellObserver. |
269 void OnLoginStateChanged(user::LoginStatus status) override; | 273 void OnLoginStateChanged(user::LoginStatus status) override; |
270 void OnTouchHudProjectionToggled(bool enabled) override; | 274 void OnTouchHudProjectionToggled(bool enabled) override; |
271 | 275 |
272 std::unique_ptr<AshWindowTreeHost> ash_host_; | 276 std::unique_ptr<AshWindowTreeHost> ash_host_; |
273 | 277 |
274 std::unique_ptr<RootWindowControllerCommon> root_window_controller_common_; | 278 std::unique_ptr<RootWindowControllerCommon> root_window_controller_common_; |
275 | 279 |
276 std::unique_ptr<StackingController> stacking_controller_; | 280 std::unique_ptr<StackingController> stacking_controller_; |
277 | 281 |
| 282 // The shelf controller for this root window. Exists for the entire lifetime |
| 283 // of the RootWindowController so that it is safe for observers to be added |
| 284 // to it during construction of the shelf widget and status tray. |
| 285 std::unique_ptr<WmShelfAura> wm_shelf_aura_; |
| 286 |
278 // The shelf widget for this root window. | 287 // The shelf widget for this root window. |
279 std::unique_ptr<ShelfWidget> shelf_widget_; | 288 std::unique_ptr<ShelfWidget> shelf_widget_; |
280 | 289 |
281 // An invisible/empty window used as a event target for | 290 // An invisible/empty window used as a event target for |
282 // |MouseCursorEventFilter| before a user logs in. | 291 // |MouseCursorEventFilter| before a user logs in. |
283 // (crbug.com/266987) | 292 // (crbug.com/266987) |
284 // Its container is |LockScreenBackgroundContainer| and | 293 // Its container is |LockScreenBackgroundContainer| and |
285 // this must be deleted before the container is deleted. | 294 // this must be deleted before the container is deleted. |
286 std::unique_ptr<aura::Window> mouse_event_target_; | 295 std::unique_ptr<aura::Window> mouse_event_target_; |
287 | 296 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 | 334 |
326 // On classic ash, returns the RootWindowController for the given |root_window|. | 335 // On classic ash, returns the RootWindowController for the given |root_window|. |
327 // On mus ash, returns the RootWindowController for the primary display. | 336 // On mus ash, returns the RootWindowController for the primary display. |
328 // See RootWindowController class comment above. | 337 // See RootWindowController class comment above. |
329 ASH_EXPORT RootWindowController* GetRootWindowController( | 338 ASH_EXPORT RootWindowController* GetRootWindowController( |
330 const aura::Window* root_window); | 339 const aura::Window* root_window); |
331 | 340 |
332 } // namespace ash | 341 } // namespace ash |
333 | 342 |
334 #endif // ASH_ROOT_WINDOW_CONTROLLER_H_ | 343 #endif // ASH_ROOT_WINDOW_CONTROLLER_H_ |
OLD | NEW |