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

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

Issue 1954933002: Initial cut of ash/wm/common classes for mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: WmWindowMus::GetGlobals Created 4 years, 7 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 "mash/wm/bridge/wm_globals_mus.h"
6
7 #include "ash/wm/common/window_resizer.h"
8 #include "ash/wm/common/wm_activation_observer.h"
9 #include "ash/wm/common/wm_shell_window_ids.h"
10 #include "components/mus/common/util.h"
11 #include "components/mus/public/cpp/window.h"
12 #include "components/mus/public/cpp/window_tree_connection.h"
13 #include "mash/wm/bridge/wm_root_window_controller_mus.h"
14 #include "mash/wm/bridge/wm_window_mus.h"
15 #include "mash/wm/public/interfaces/container.mojom.h"
16 #include "mash/wm/root_window_controller.h"
17
18 namespace mash {
19 namespace wm {
20
21 WmGlobalsMus::WmGlobalsMus(mus::WindowTreeConnection* connection)
22 : connection_(connection) {
23 connection_->AddObserver(this);
24 WmGlobals::Set(this);
25 }
26
27 WmGlobalsMus::~WmGlobalsMus() {
28 connection_->RemoveObserver(this);
29 WmGlobals::Set(nullptr);
30 }
31
32 // static
33 WmGlobalsMus* WmGlobalsMus::Get() {
34 return static_cast<WmGlobalsMus*>(ash::wm::WmGlobals::Get());
35 }
36
37 void WmGlobalsMus::AddRootWindowController(
38 WmRootWindowControllerMus* controller) {
39 root_window_controllers_.push_back(controller);
40 }
41
42 void WmGlobalsMus::RemoveRootWindowController(
43 WmRootWindowControllerMus* controller) {
44 root_window_controllers_.erase(std::find(root_window_controllers_.begin(),
James Cook 2016/05/06 19:46:46 optional: Maybe DCHECK that controller is in the c
sky 2016/05/06 22:12:57 Done.
45 root_window_controllers_.end(),
46 controller));
47 }
48
49 // static
50 WmWindowMus* WmGlobalsMus::GetToplevelAncestor(mus::Window* window) {
51 while (window) {
52 if (!window->parent())
53 return nullptr;
James Cook 2016/05/06 19:46:46 Does this match the function comment? Or is this h
sky 2016/05/06 22:12:57 Good catch, updated.
54 if (IsActivationParent(window->parent()))
55 return WmWindowMus::Get(window);
56 window = window->parent();
57 }
58 return nullptr;
59 }
60
61 WmRootWindowControllerMus* WmGlobalsMus::GetRootWindowControllerWithDisplayId(
62 int64_t id) {
63 for (WmRootWindowControllerMus* root_window_controller :
64 root_window_controllers_) {
65 if (root_window_controller->GetDisplay().id() == id)
66 return root_window_controller;
67 }
68 NOTREACHED();
69 return nullptr;
70 }
71
72 ash::wm::WmWindow* WmGlobalsMus::GetFocusedWindow() {
73 return WmWindowMus::Get(connection_->GetFocusedWindow());
74 }
75
76 ash::wm::WmWindow* WmGlobalsMus::GetActiveWindow() {
77 return GetToplevelAncestor(connection_->GetFocusedWindow());
78 }
79
80 ash::wm::WmWindow* WmGlobalsMus::GetRootWindowForDisplayId(int64_t display_id) {
81 return GetRootWindowControllerWithDisplayId(display_id)->GetWindow();
82 }
83
84 ash::wm::WmWindow* WmGlobalsMus::GetRootWindowForNewWindows() {
85 NOTIMPLEMENTED();
86 return root_window_controllers_[0]->GetWindow();
87 }
88
89 std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetMruWindowListIgnoreModals() {
90 NOTIMPLEMENTED();
91 return std::vector<ash::wm::WmWindow*>();
92 }
93
94 bool WmGlobalsMus::IsForceMaximizeOnFirstRun() {
95 NOTIMPLEMENTED();
96 return false;
97 }
98
99 bool WmGlobalsMus::IsUserSessionBlocked() {
100 NOTIMPLEMENTED();
101 return false;
102 }
103
104 bool WmGlobalsMus::IsScreenLocked() {
105 NOTIMPLEMENTED();
106 return false;
107 }
108
109 void WmGlobalsMus::LockCursor() {
110 NOTIMPLEMENTED();
111 }
112
113 void WmGlobalsMus::UnlockCursor() {
114 NOTIMPLEMENTED();
115 }
116
117 std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetAllRootWindows() {
118 std::vector<ash::wm::WmWindow*> wm_windows(root_window_controllers_.size());
119 for (size_t i = 0; i < root_window_controllers_.size(); ++i)
120 wm_windows[i] = root_window_controllers_[i]->GetWindow();
121 return wm_windows;
122 }
123
124 void WmGlobalsMus::RecordUserMetricsAction(
125 ash::wm::WmUserMetricsAction action) {
126 NOTIMPLEMENTED();
127 }
128
129 std::unique_ptr<ash::WindowResizer> WmGlobalsMus::CreateDragWindowResizer(
130 std::unique_ptr<ash::WindowResizer> next_window_resizer,
131 ash::wm::WindowState* window_state) {
132 NOTIMPLEMENTED();
133 return next_window_resizer;
134 }
135
136 bool WmGlobalsMus::IsOverviewModeSelecting() {
137 NOTIMPLEMENTED();
138 return false;
139 }
140
141 bool WmGlobalsMus::IsOverviewModeRestoringMinimizedWindows() {
142 NOTIMPLEMENTED();
143 return false;
144 }
145
146 void WmGlobalsMus::AddActivationObserver(
147 ash::wm::WmActivationObserver* observer) {
148 activation_observers_.AddObserver(observer);
149 }
150
151 void WmGlobalsMus::RemoveActivationObserver(
152 ash::wm::WmActivationObserver* observer) {
153 activation_observers_.RemoveObserver(observer);
154 }
155
156 void WmGlobalsMus::AddDisplayObserver(ash::wm::WmDisplayObserver* observer) {
157 NOTIMPLEMENTED();
158 }
159
160 void WmGlobalsMus::RemoveDisplayObserver(ash::wm::WmDisplayObserver* observer) {
161 NOTIMPLEMENTED();
162 }
163
164 void WmGlobalsMus::AddOverviewModeObserver(
165 ash::wm::WmOverviewModeObserver* observer) {
166 NOTIMPLEMENTED();
167 }
168
169 void WmGlobalsMus::RemoveOverviewModeObserver(
170 ash::wm::WmOverviewModeObserver* observer) {
171 NOTIMPLEMENTED();
172 }
173
174 // static
175 bool WmGlobalsMus::IsActivationParent(mus::Window* window) {
176 return window->local_id() == ash::kShellWindowId_DefaultContainer;
177 }
178
179 void WmGlobalsMus::OnWindowTreeFocusChanged(mus::Window* gained_focus,
180 mus::Window* lost_focus) {
181 WmWindowMus* gained_active = GetToplevelAncestor(gained_focus);
182 WmWindowMus* lost_active = GetToplevelAncestor(gained_focus);
183 if (gained_active == lost_active)
184 return;
185
186 FOR_EACH_OBSERVER(ash::wm::WmActivationObserver, activation_observers_,
187 OnWindowActivated(gained_active, lost_active));
188 }
189
190 } // namespace wm
191 } // namespace mash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698