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

Side by Side Diff: ash/aura/wm_shell_aura.cc

Issue 2808723004: Renames WmShell to ShellPort (Closed)
Patch Set: feedback Created 3 years, 8 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "ash/aura/wm_shell_aura.h"
6
7 #include <utility>
8
9 #include "ash/accelerators/accelerator_controller.h"
10 #include "ash/accelerators/accelerator_controller_delegate_aura.h"
11 #include "ash/aura/key_event_watcher_aura.h"
12 #include "ash/aura/pointer_watcher_adapter.h"
13 #include "ash/display/window_tree_host_manager.h"
14 #include "ash/host/ash_window_tree_host_init_params.h"
15 #include "ash/keyboard/keyboard_ui.h"
16 #include "ash/laser/laser_pointer_controller.h"
17 #include "ash/magnifier/partial_magnification_controller.h"
18 #include "ash/metrics/task_switch_metrics_recorder.h"
19 #include "ash/public/cpp/config.h"
20 #include "ash/session/session_state_delegate.h"
21 #include "ash/shared/immersive_fullscreen_controller.h"
22 #include "ash/shell.h"
23 #include "ash/shell_delegate.h"
24 #include "ash/shell_observer.h"
25 #include "ash/touch/touch_uma.h"
26 #include "ash/virtual_keyboard_controller.h"
27 #include "ash/wm/drag_window_resizer.h"
28 #include "ash/wm/maximize_mode/maximize_mode_event_handler_aura.h"
29 #include "ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard.h"
30 #include "ash/wm/mru_window_tracker.h"
31 #include "ash/wm/overview/window_selector_controller.h"
32 #include "ash/wm/window_cycle_event_filter_aura.h"
33 #include "ash/wm/window_util.h"
34 #include "ash/wm/workspace/workspace_event_handler_aura.h"
35 #include "ash/wm_display_observer.h"
36 #include "ash/wm_window.h"
37 #include "base/memory/ptr_util.h"
38 #include "ui/aura/env.h"
39 #include "ui/display/manager/display_manager.h"
40
41 #if defined(USE_X11)
42 #include "ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.h"
43 #endif
44
45 #if defined(USE_OZONE)
46 #include "ash/wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_ozone. h"
47 #endif
48
49 namespace ash {
50
51 WmShellAura::WmShellAura() {}
52
53 WmShellAura::~WmShellAura() {}
54
55 // static
56 WmShellAura* WmShellAura::Get() {
57 CHECK(!WmShell::Get()->IsRunningInMash());
58 return static_cast<WmShellAura*>(WmShell::Get());
59 }
60
61 void WmShellAura::Shutdown() {
62 if (added_display_observer_)
63 Shell::Get()->window_tree_host_manager()->RemoveObserver(this);
64
65 pointer_watcher_adapter_.reset();
66
67 WmShell::Shutdown();
68
69 Shell::Get()->window_tree_host_manager()->Shutdown();
70 }
71
72 bool WmShellAura::IsRunningInMash() const {
73 return false;
74 }
75
76 Config WmShellAura::GetAshConfig() const {
77 return Config::CLASSIC;
78 }
79
80 WmWindow* WmShellAura::GetPrimaryRootWindow() {
81 return WmWindow::Get(
82 Shell::Get()->window_tree_host_manager()->GetPrimaryRootWindow());
83 }
84
85 WmWindow* WmShellAura::GetRootWindowForDisplayId(int64_t display_id) {
86 return WmWindow::Get(
87 Shell::Get()->window_tree_host_manager()->GetRootWindowForDisplayId(
88 display_id));
89 }
90
91 const display::ManagedDisplayInfo& WmShellAura::GetDisplayInfo(
92 int64_t display_id) const {
93 return Shell::Get()->display_manager()->GetDisplayInfo(display_id);
94 }
95
96 bool WmShellAura::IsActiveDisplayId(int64_t display_id) const {
97 return Shell::Get()->display_manager()->IsActiveDisplayId(display_id);
98 }
99
100 display::Display WmShellAura::GetFirstDisplay() const {
101 return Shell::Get()->display_manager()->software_mirroring_display_list()[0];
102 }
103
104 bool WmShellAura::IsInUnifiedMode() const {
105 return Shell::Get()->display_manager()->IsInUnifiedMode();
106 }
107
108 bool WmShellAura::IsInUnifiedModeIgnoreMirroring() const {
109 return Shell::Get()
110 ->display_manager()
111 ->current_default_multi_display_mode() ==
112 display::DisplayManager::UNIFIED;
113 }
114
115 void WmShellAura::SetDisplayWorkAreaInsets(WmWindow* window,
116 const gfx::Insets& insets) {
117 Shell::Get()
118 ->window_tree_host_manager()
119 ->UpdateWorkAreaOfDisplayNearestWindow(window->aura_window(), insets);
120 }
121
122 void WmShellAura::LockCursor() {
123 Shell::Get()->cursor_manager()->LockCursor();
124 }
125
126 void WmShellAura::UnlockCursor() {
127 Shell::Get()->cursor_manager()->UnlockCursor();
128 }
129
130 bool WmShellAura::IsMouseEventsEnabled() {
131 return Shell::Get()->cursor_manager()->IsMouseEventsEnabled();
132 }
133
134 std::vector<WmWindow*> WmShellAura::GetAllRootWindows() {
135 aura::Window::Windows root_windows =
136 Shell::Get()->window_tree_host_manager()->GetAllRootWindows();
137 std::vector<WmWindow*> wm_windows(root_windows.size());
138 for (size_t i = 0; i < root_windows.size(); ++i)
139 wm_windows[i] = WmWindow::Get(root_windows[i]);
140 return wm_windows;
141 }
142
143 void WmShellAura::RecordUserMetricsAction(UserMetricsAction action) {
144 Shell::Get()->metrics()->RecordUserMetricsAction(action);
145 }
146
147 void WmShellAura::RecordGestureAction(GestureActionType action) {
148 TouchUMA::GetInstance()->RecordGestureAction(action);
149 }
150
151 void WmShellAura::RecordTaskSwitchMetric(TaskSwitchSource source) {
152 Shell::Get()->metrics()->task_switch_metrics_recorder().OnTaskSwitch(source);
153 }
154
155 std::unique_ptr<WindowResizer> WmShellAura::CreateDragWindowResizer(
156 std::unique_ptr<WindowResizer> next_window_resizer,
157 wm::WindowState* window_state) {
158 return base::WrapUnique(
159 DragWindowResizer::Create(next_window_resizer.release(), window_state));
160 }
161
162 std::unique_ptr<WindowCycleEventFilter>
163 WmShellAura::CreateWindowCycleEventFilter() {
164 return base::MakeUnique<WindowCycleEventFilterAura>();
165 }
166
167 std::unique_ptr<wm::MaximizeModeEventHandler>
168 WmShellAura::CreateMaximizeModeEventHandler() {
169 return base::WrapUnique(new wm::MaximizeModeEventHandlerAura);
170 }
171
172 std::unique_ptr<WorkspaceEventHandler> WmShellAura::CreateWorkspaceEventHandler(
173 WmWindow* workspace_window) {
174 return base::MakeUnique<WorkspaceEventHandlerAura>(workspace_window);
175 }
176
177 std::unique_ptr<ScopedDisableInternalMouseAndKeyboard>
178 WmShellAura::CreateScopedDisableInternalMouseAndKeyboard() {
179 #if defined(USE_X11)
180 return base::WrapUnique(new ScopedDisableInternalMouseAndKeyboardX11);
181 #elif defined(USE_OZONE)
182 return base::WrapUnique(new ScopedDisableInternalMouseAndKeyboardOzone);
183 #endif
184 return nullptr;
185 }
186
187 std::unique_ptr<ImmersiveFullscreenController>
188 WmShellAura::CreateImmersiveFullscreenController() {
189 return base::MakeUnique<ImmersiveFullscreenController>();
190 }
191
192 std::unique_ptr<KeyboardUI> WmShellAura::CreateKeyboardUI() {
193 return KeyboardUI::Create();
194 }
195
196 std::unique_ptr<KeyEventWatcher> WmShellAura::CreateKeyEventWatcher() {
197 return base::MakeUnique<KeyEventWatcherAura>();
198 }
199
200 SessionStateDelegate* WmShellAura::GetSessionStateDelegate() {
201 return Shell::Get()->session_state_delegate();
202 }
203
204 void WmShellAura::AddDisplayObserver(WmDisplayObserver* observer) {
205 if (!added_display_observer_) {
206 added_display_observer_ = true;
207 Shell::Get()->window_tree_host_manager()->AddObserver(this);
208 }
209 display_observers_.AddObserver(observer);
210 }
211
212 void WmShellAura::RemoveDisplayObserver(WmDisplayObserver* observer) {
213 display_observers_.RemoveObserver(observer);
214 }
215
216 void WmShellAura::AddPointerWatcher(views::PointerWatcher* watcher,
217 views::PointerWatcherEventTypes events) {
218 pointer_watcher_adapter_->AddPointerWatcher(watcher, events);
219 }
220
221 void WmShellAura::RemovePointerWatcher(views::PointerWatcher* watcher) {
222 pointer_watcher_adapter_->RemovePointerWatcher(watcher);
223 }
224
225 bool WmShellAura::IsTouchDown() {
226 return aura::Env::GetInstance()->is_touch_down();
227 }
228
229 void WmShellAura::ToggleIgnoreExternalKeyboard() {
230 Shell::Get()->virtual_keyboard_controller()->ToggleIgnoreExternalKeyboard();
231 }
232
233 void WmShellAura::SetLaserPointerEnabled(bool enabled) {
234 Shell::Get()->laser_pointer_controller()->SetEnabled(enabled);
235 }
236
237 void WmShellAura::SetPartialMagnifierEnabled(bool enabled) {
238 Shell::Get()->partial_magnification_controller()->SetEnabled(enabled);
239 }
240
241 void WmShellAura::CreatePointerWatcherAdapter() {
242 pointer_watcher_adapter_ = base::MakeUnique<PointerWatcherAdapter>();
243 }
244
245 void WmShellAura::CreatePrimaryHost() {
246 Shell::Get()->window_tree_host_manager()->Start();
247 AshWindowTreeHostInitParams ash_init_params;
248 Shell::Get()->window_tree_host_manager()->CreatePrimaryHost(ash_init_params);
249 }
250
251 void WmShellAura::InitHosts(const ShellInitParams& init_params) {
252 Shell::Get()->window_tree_host_manager()->InitHosts();
253 }
254
255 std::unique_ptr<AcceleratorController>
256 WmShellAura::CreateAcceleratorController() {
257 DCHECK(!accelerator_controller_delegate_);
258 accelerator_controller_delegate_ =
259 base::MakeUnique<AcceleratorControllerDelegateAura>();
260 return base::MakeUnique<AcceleratorController>(
261 accelerator_controller_delegate_.get(), nullptr);
262 }
263
264 void WmShellAura::OnDisplayConfigurationChanging() {
265 for (auto& observer : display_observers_)
266 observer.OnDisplayConfigurationChanging();
267 }
268
269 void WmShellAura::OnDisplayConfigurationChanged() {
270 for (auto& observer : display_observers_)
271 observer.OnDisplayConfigurationChanged();
272 }
273
274 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698