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

Side by Side Diff: mash/wm/bridge/wm_globals_mus.cc

Issue 2029883002: Moves mash/wm into ash/mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_static_assert
Patch Set: move comment 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
« no previous file with comments | « mash/wm/bridge/wm_globals_mus.h ('k') | mash/wm/bridge/wm_lookup_mus.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "mash/wm/bridge/wm_globals_mus.h"
6
7 #include "ash/common/shell_window_ids.h"
8 #include "ash/common/wm/window_resizer.h"
9 #include "ash/common/wm/wm_activation_observer.h"
10 #include "base/memory/ptr_util.h"
11 #include "components/mus/common/util.h"
12 #include "components/mus/public/cpp/window.h"
13 #include "components/mus/public/cpp/window_tree_client.h"
14 #include "mash/wm/bridge/wm_root_window_controller_mus.h"
15 #include "mash/wm/bridge/wm_window_mus.h"
16 #include "mash/wm/container_ids.h"
17 #include "mash/wm/drag_window_resizer.h"
18 #include "mash/wm/root_window_controller.h"
19
20 namespace mash {
21 namespace wm {
22
23 WmGlobalsMus::WmGlobalsMus(mus::WindowTreeClient* client)
24 : client_(client) {
25 client_->AddObserver(this);
26 WmGlobals::Set(this);
27 }
28
29 WmGlobalsMus::~WmGlobalsMus() {
30 RemoveClientObserver();
31 WmGlobals::Set(nullptr);
32 }
33
34 // static
35 WmGlobalsMus* WmGlobalsMus::Get() {
36 return static_cast<WmGlobalsMus*>(ash::wm::WmGlobals::Get());
37 }
38
39 void WmGlobalsMus::AddRootWindowController(
40 WmRootWindowControllerMus* controller) {
41 root_window_controllers_.push_back(controller);
42 }
43
44 void WmGlobalsMus::RemoveRootWindowController(
45 WmRootWindowControllerMus* controller) {
46 auto iter = std::find(root_window_controllers_.begin(),
47 root_window_controllers_.end(), controller);
48 DCHECK(iter != root_window_controllers_.end());
49 root_window_controllers_.erase(iter);
50 }
51
52 // static
53 WmWindowMus* WmGlobalsMus::GetToplevelAncestor(mus::Window* window) {
54 while (window) {
55 if (IsActivationParent(window->parent()))
56 return WmWindowMus::Get(window);
57 window = window->parent();
58 }
59 return nullptr;
60 }
61
62 WmRootWindowControllerMus* WmGlobalsMus::GetRootWindowControllerWithDisplayId(
63 int64_t id) {
64 for (WmRootWindowControllerMus* root_window_controller :
65 root_window_controllers_) {
66 if (root_window_controller->GetDisplay().id() == id)
67 return root_window_controller;
68 }
69 NOTREACHED();
70 return nullptr;
71 }
72
73 ash::wm::WmWindow* WmGlobalsMus::NewContainerWindow() {
74 return WmWindowMus::Get(client_->NewWindow());
75 }
76
77 ash::wm::WmWindow* WmGlobalsMus::GetFocusedWindow() {
78 return WmWindowMus::Get(client_->GetFocusedWindow());
79 }
80
81 ash::wm::WmWindow* WmGlobalsMus::GetActiveWindow() {
82 return GetToplevelAncestor(client_->GetFocusedWindow());
83 }
84
85 ash::wm::WmWindow* WmGlobalsMus::GetPrimaryRootWindow() {
86 return root_window_controllers_[0]->GetWindow();
87 }
88
89 ash::wm::WmWindow* WmGlobalsMus::GetRootWindowForDisplayId(int64_t display_id) {
90 return GetRootWindowControllerWithDisplayId(display_id)->GetWindow();
91 }
92
93 ash::wm::WmWindow* WmGlobalsMus::GetRootWindowForNewWindows() {
94 NOTIMPLEMENTED();
95 return root_window_controllers_[0]->GetWindow();
96 }
97
98 std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetMruWindowList() {
99 NOTIMPLEMENTED();
100 return std::vector<ash::wm::WmWindow*>();
101 }
102
103 std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetMruWindowListIgnoreModals() {
104 NOTIMPLEMENTED();
105 return std::vector<ash::wm::WmWindow*>();
106 }
107
108 bool WmGlobalsMus::IsForceMaximizeOnFirstRun() {
109 NOTIMPLEMENTED();
110 return false;
111 }
112
113 bool WmGlobalsMus::IsUserSessionBlocked() {
114 NOTIMPLEMENTED();
115 return false;
116 }
117
118 bool WmGlobalsMus::IsScreenLocked() {
119 NOTIMPLEMENTED();
120 return false;
121 }
122
123 void WmGlobalsMus::LockCursor() {
124 NOTIMPLEMENTED();
125 }
126
127 void WmGlobalsMus::UnlockCursor() {
128 NOTIMPLEMENTED();
129 }
130
131 std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetAllRootWindows() {
132 std::vector<ash::wm::WmWindow*> wm_windows(root_window_controllers_.size());
133 for (size_t i = 0; i < root_window_controllers_.size(); ++i)
134 wm_windows[i] = root_window_controllers_[i]->GetWindow();
135 return wm_windows;
136 }
137
138 void WmGlobalsMus::RecordUserMetricsAction(
139 ash::wm::WmUserMetricsAction action) {
140 NOTIMPLEMENTED();
141 }
142
143 std::unique_ptr<ash::WindowResizer> WmGlobalsMus::CreateDragWindowResizer(
144 std::unique_ptr<ash::WindowResizer> next_window_resizer,
145 ash::wm::WindowState* window_state) {
146 return base::WrapUnique(
147 new DragWindowResizer(std::move(next_window_resizer), window_state));
148 }
149
150 bool WmGlobalsMus::IsOverviewModeSelecting() {
151 NOTIMPLEMENTED();
152 return false;
153 }
154
155 bool WmGlobalsMus::IsOverviewModeRestoringMinimizedWindows() {
156 NOTIMPLEMENTED();
157 return false;
158 }
159
160 void WmGlobalsMus::AddActivationObserver(
161 ash::wm::WmActivationObserver* observer) {
162 activation_observers_.AddObserver(observer);
163 }
164
165 void WmGlobalsMus::RemoveActivationObserver(
166 ash::wm::WmActivationObserver* observer) {
167 activation_observers_.RemoveObserver(observer);
168 }
169
170 void WmGlobalsMus::AddDisplayObserver(ash::wm::WmDisplayObserver* observer) {
171 NOTIMPLEMENTED();
172 }
173
174 void WmGlobalsMus::RemoveDisplayObserver(ash::wm::WmDisplayObserver* observer) {
175 NOTIMPLEMENTED();
176 }
177
178 void WmGlobalsMus::AddOverviewModeObserver(
179 ash::wm::WmOverviewModeObserver* observer) {
180 NOTIMPLEMENTED();
181 }
182
183 void WmGlobalsMus::RemoveOverviewModeObserver(
184 ash::wm::WmOverviewModeObserver* observer) {
185 NOTIMPLEMENTED();
186 }
187
188 // static
189 bool WmGlobalsMus::IsActivationParent(mus::Window* window) {
190 if (!window)
191 return false;
192
193 for (size_t i = 0; i < kNumActivationContainers; ++i) {
194 if (window->local_id() == static_cast<int>(kActivationContainers[i]))
195 return true;
196 }
197 return false;
198 }
199
200 void WmGlobalsMus::RemoveClientObserver() {
201 if (!client_)
202 return;
203
204 client_->RemoveObserver(this);
205 client_ = nullptr;
206 }
207
208 // TODO: support OnAttemptToReactivateWindow, http://crbug.com/615114.
209 void WmGlobalsMus::OnWindowTreeFocusChanged(mus::Window* gained_focus,
210 mus::Window* lost_focus) {
211 WmWindowMus* gained_active = GetToplevelAncestor(gained_focus);
212 WmWindowMus* lost_active = GetToplevelAncestor(gained_focus);
213 if (gained_active == lost_active)
214 return;
215
216 FOR_EACH_OBSERVER(ash::wm::WmActivationObserver, activation_observers_,
217 OnWindowActivated(gained_active, lost_active));
218 }
219
220 void WmGlobalsMus::OnWillDestroyClient(
221 mus::WindowTreeClient* client) {
222 DCHECK_EQ(client, client_);
223 RemoveClientObserver();
224 }
225
226 } // namespace wm
227 } // namespace mash
OLDNEW
« no previous file with comments | « mash/wm/bridge/wm_globals_mus.h ('k') | mash/wm/bridge/wm_lookup_mus.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698