Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(679)

Side by Side Diff: ash/root_window_controller.h

Issue 2041583004: mash: Move WmShelfAura ownership to RootWindowController and init it earlier (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@moveshelftypes
Patch Set: . Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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_
OLDNEW
« no previous file with comments | « ash/common/wm/workspace/workspace_layout_manager_delegate.h ('k') | ash/root_window_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698