Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_COMMON_WM_SHELL_H_ | 5 #ifndef ASH_COMMON_WM_SHELL_H_ |
| 6 #define ASH_COMMON_WM_SHELL_H_ | 6 #define ASH_COMMON_WM_SHELL_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "ash/ash_export.h" | 13 #include "ash/ash_export.h" |
| 14 #include "ash/common/media_delegate.h" | 14 #include "ash/common/media_delegate.h" |
| 15 #include "ash/common/metrics/user_metrics_action.h" | 15 #include "ash/common/metrics/user_metrics_action.h" |
| 16 #include "ash/common/shell_delegate.h" | |
|
James Cook
2016/07/06 21:27:27
Can this be forward declared? wm_shell.h is widely
msw
2016/07/06 21:58:55
Done.
| |
| 16 #include "base/observer_list.h" | 17 #include "base/observer_list.h" |
| 17 | 18 |
| 18 namespace gfx { | 19 namespace gfx { |
| 19 class Rect; | 20 class Rect; |
| 20 } | 21 } |
| 21 | 22 |
| 22 namespace views { | 23 namespace views { |
| 23 class PointerWatcher; | 24 class PointerWatcher; |
| 24 } | 25 } |
| 25 | 26 |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 54 | 55 |
| 55 // Similar to ash::Shell. Eventually the two will be merged. | 56 // Similar to ash::Shell. Eventually the two will be merged. |
| 56 class ASH_EXPORT WmShell { | 57 class ASH_EXPORT WmShell { |
| 57 public: | 58 public: |
| 58 // This is necessary for a handful of places that is difficult to plumb | 59 // This is necessary for a handful of places that is difficult to plumb |
| 59 // through context. | 60 // through context. |
| 60 static void Set(WmShell* instance); | 61 static void Set(WmShell* instance); |
| 61 static WmShell* Get(); | 62 static WmShell* Get(); |
| 62 static bool HasInstance() { return instance_ != nullptr; } | 63 static bool HasInstance() { return instance_ != nullptr; } |
| 63 | 64 |
| 65 ShellDelegate* delegate() { return delegate_.get(); } | |
| 66 | |
| 64 FocusCycler* focus_cycler() { return focus_cycler_.get(); } | 67 FocusCycler* focus_cycler() { return focus_cycler_.get(); } |
| 65 | 68 |
| 66 KeyboardUI* keyboard_ui() { return keyboard_ui_.get(); } | 69 KeyboardUI* keyboard_ui() { return keyboard_ui_.get(); } |
| 67 | 70 |
| 68 MaximizeModeController* maximize_mode_controller() { | 71 MaximizeModeController* maximize_mode_controller() { |
| 69 return maximize_mode_controller_.get(); | 72 return maximize_mode_controller_.get(); |
| 70 } | 73 } |
| 71 | 74 |
| 72 MruWindowTracker* mru_window_tracker() { return mru_window_tracker_.get(); } | 75 MruWindowTracker* mru_window_tracker() { return mru_window_tracker_.get(); } |
| 73 | 76 |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 200 #if defined(OS_CHROMEOS) | 203 #if defined(OS_CHROMEOS) |
| 201 LogoutConfirmationController* logout_confirmation_controller() { | 204 LogoutConfirmationController* logout_confirmation_controller() { |
| 202 return logout_confirmation_controller_.get(); | 205 return logout_confirmation_controller_.get(); |
| 203 } | 206 } |
| 204 | 207 |
| 205 // TODO(jamescook): Remove this when VirtualKeyboardController has been moved. | 208 // TODO(jamescook): Remove this when VirtualKeyboardController has been moved. |
| 206 virtual void ToggleIgnoreExternalKeyboard() = 0; | 209 virtual void ToggleIgnoreExternalKeyboard() = 0; |
| 207 #endif | 210 #endif |
| 208 | 211 |
| 209 protected: | 212 protected: |
| 210 WmShell(); | 213 explicit WmShell(ShellDelegate* delegate); |
| 211 virtual ~WmShell(); | 214 virtual ~WmShell(); |
| 212 | 215 |
| 213 base::ObserverList<ShellObserver>* shell_observers() { | 216 base::ObserverList<ShellObserver>* shell_observers() { |
| 214 return &shell_observers_; | 217 return &shell_observers_; |
| 215 } | 218 } |
| 216 | 219 |
| 217 void SetKeyboardUI(std::unique_ptr<KeyboardUI> keyboard_ui); | 220 void SetKeyboardUI(std::unique_ptr<KeyboardUI> keyboard_ui); |
| 218 | 221 |
| 219 // Helpers to set (and initialize) or destroy various delegates. | 222 // Helpers to set (and initialize) or destroy various delegates. |
| 220 // TODO(msw|jamescook): Remove these once ShellDelegate, etc. are ported. | 223 // TODO(msw|jamescook): Remove these once ShellDelegate, etc. are ported. |
| 224 void DeleteShellDelegate(); | |
|
James Cook
2016/07/06 21:27:27
I don't see this called in your CL.
msw
2016/07/06 21:58:55
Removed.
| |
| 221 void SetMediaDelegate(std::unique_ptr<MediaDelegate> delegate); | 225 void SetMediaDelegate(std::unique_ptr<MediaDelegate> delegate); |
| 222 void SetSystemTrayDelegate(std::unique_ptr<SystemTrayDelegate> delegate); | 226 void SetSystemTrayDelegate(std::unique_ptr<SystemTrayDelegate> delegate); |
| 223 void DeleteSystemTrayDelegate(); | 227 void DeleteSystemTrayDelegate(); |
| 224 | 228 |
| 225 void DeleteWindowSelectorController(); | 229 void DeleteWindowSelectorController(); |
| 226 | 230 |
| 227 void CreateMaximizeModeController(); | 231 void CreateMaximizeModeController(); |
| 228 void DeleteMaximizeModeController(); | 232 void DeleteMaximizeModeController(); |
| 229 | 233 |
| 230 void CreateMruWindowTracker(); | 234 void CreateMruWindowTracker(); |
| 231 void DeleteMruWindowTracker(); | 235 void DeleteMruWindowTracker(); |
| 232 | 236 |
| 233 private: | 237 private: |
| 234 friend class Shell; | 238 friend class Shell; |
| 235 | 239 |
| 236 static WmShell* instance_; | 240 static WmShell* instance_; |
| 237 | 241 |
| 238 base::ObserverList<ShellObserver> shell_observers_; | 242 base::ObserverList<ShellObserver> shell_observers_; |
| 239 | 243 std::unique_ptr<ShellDelegate> delegate_; |
| 240 std::unique_ptr<FocusCycler> focus_cycler_; | 244 std::unique_ptr<FocusCycler> focus_cycler_; |
| 241 std::unique_ptr<KeyboardUI> keyboard_ui_; | 245 std::unique_ptr<KeyboardUI> keyboard_ui_; |
| 242 std::unique_ptr<MaximizeModeController> maximize_mode_controller_; | 246 std::unique_ptr<MaximizeModeController> maximize_mode_controller_; |
| 243 std::unique_ptr<MediaDelegate> media_delegate_; | 247 std::unique_ptr<MediaDelegate> media_delegate_; |
| 244 std::unique_ptr<MruWindowTracker> mru_window_tracker_; | 248 std::unique_ptr<MruWindowTracker> mru_window_tracker_; |
| 245 std::unique_ptr<SystemTrayNotifier> system_tray_notifier_; | 249 std::unique_ptr<SystemTrayNotifier> system_tray_notifier_; |
| 246 std::unique_ptr<SystemTrayDelegate> system_tray_delegate_; | 250 std::unique_ptr<SystemTrayDelegate> system_tray_delegate_; |
| 247 std::unique_ptr<WindowSelectorController> window_selector_controller_; | 251 std::unique_ptr<WindowSelectorController> window_selector_controller_; |
| 248 | 252 |
| 249 bool simulate_modal_window_open_for_testing_ = false; | 253 bool simulate_modal_window_open_for_testing_ = false; |
| 250 | 254 |
| 251 #if defined(OS_CHROMEOS) | 255 #if defined(OS_CHROMEOS) |
| 252 std::unique_ptr<LogoutConfirmationController> logout_confirmation_controller_; | 256 std::unique_ptr<LogoutConfirmationController> logout_confirmation_controller_; |
| 253 #endif | 257 #endif |
| 254 }; | 258 }; |
| 255 | 259 |
| 256 } // namespace ash | 260 } // namespace ash |
| 257 | 261 |
| 258 #endif // ASH_COMMON_WM_SHELL_H_ | 262 #endif // ASH_COMMON_WM_SHELL_H_ |
| OLD | NEW |