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

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: merge to trunk 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
« 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/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 auto iter = std::find(root_window_controllers_.begin(),
45 root_window_controllers_.end(), controller);
46 DCHECK(iter != root_window_controllers_.end());
47 root_window_controllers_.erase(iter);
48 }
49
50 // static
51 WmWindowMus* WmGlobalsMus::GetToplevelAncestor(mus::Window* window) {
52 while (window) {
53 if (IsActivationParent(window->parent()))
54 return WmWindowMus::Get(window);
55 window = window->parent();
56 }
57 return nullptr;
58 }
59
60 WmRootWindowControllerMus* WmGlobalsMus::GetRootWindowControllerWithDisplayId(
61 int64_t id) {
62 for (WmRootWindowControllerMus* root_window_controller :
63 root_window_controllers_) {
64 if (root_window_controller->GetDisplay().id() == id)
65 return root_window_controller;
66 }
67 NOTREACHED();
68 return nullptr;
69 }
70
71 ash::wm::WmWindow* WmGlobalsMus::GetFocusedWindow() {
72 return WmWindowMus::Get(connection_->GetFocusedWindow());
73 }
74
75 ash::wm::WmWindow* WmGlobalsMus::GetActiveWindow() {
76 return GetToplevelAncestor(connection_->GetFocusedWindow());
77 }
78
79 ash::wm::WmWindow* WmGlobalsMus::GetRootWindowForDisplayId(int64_t display_id) {
80 return GetRootWindowControllerWithDisplayId(display_id)->GetWindow();
81 }
82
83 ash::wm::WmWindow* WmGlobalsMus::GetRootWindowForNewWindows() {
84 NOTIMPLEMENTED();
85 return root_window_controllers_[0]->GetWindow();
86 }
87
88 std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetMruWindowListIgnoreModals() {
89 NOTIMPLEMENTED();
90 return std::vector<ash::wm::WmWindow*>();
91 }
92
93 bool WmGlobalsMus::IsForceMaximizeOnFirstRun() {
94 NOTIMPLEMENTED();
95 return false;
96 }
97
98 bool WmGlobalsMus::IsUserSessionBlocked() {
99 NOTIMPLEMENTED();
100 return false;
101 }
102
103 bool WmGlobalsMus::IsScreenLocked() {
104 NOTIMPLEMENTED();
105 return false;
106 }
107
108 void WmGlobalsMus::LockCursor() {
109 NOTIMPLEMENTED();
110 }
111
112 void WmGlobalsMus::UnlockCursor() {
113 NOTIMPLEMENTED();
114 }
115
116 std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetAllRootWindows() {
117 std::vector<ash::wm::WmWindow*> wm_windows(root_window_controllers_.size());
118 for (size_t i = 0; i < root_window_controllers_.size(); ++i)
119 wm_windows[i] = root_window_controllers_[i]->GetWindow();
120 return wm_windows;
121 }
122
123 void WmGlobalsMus::RecordUserMetricsAction(
124 ash::wm::WmUserMetricsAction action) {
125 NOTIMPLEMENTED();
126 }
127
128 std::unique_ptr<ash::WindowResizer> WmGlobalsMus::CreateDragWindowResizer(
129 std::unique_ptr<ash::WindowResizer> next_window_resizer,
130 ash::wm::WindowState* window_state) {
131 NOTIMPLEMENTED();
132 return next_window_resizer;
133 }
134
135 bool WmGlobalsMus::IsOverviewModeSelecting() {
136 NOTIMPLEMENTED();
137 return false;
138 }
139
140 bool WmGlobalsMus::IsOverviewModeRestoringMinimizedWindows() {
141 NOTIMPLEMENTED();
142 return false;
143 }
144
145 void WmGlobalsMus::AddActivationObserver(
146 ash::wm::WmActivationObserver* observer) {
147 activation_observers_.AddObserver(observer);
148 }
149
150 void WmGlobalsMus::RemoveActivationObserver(
151 ash::wm::WmActivationObserver* observer) {
152 activation_observers_.RemoveObserver(observer);
153 }
154
155 void WmGlobalsMus::AddDisplayObserver(ash::wm::WmDisplayObserver* observer) {
156 NOTIMPLEMENTED();
157 }
158
159 void WmGlobalsMus::RemoveDisplayObserver(ash::wm::WmDisplayObserver* observer) {
160 NOTIMPLEMENTED();
161 }
162
163 void WmGlobalsMus::AddOverviewModeObserver(
164 ash::wm::WmOverviewModeObserver* observer) {
165 NOTIMPLEMENTED();
166 }
167
168 void WmGlobalsMus::RemoveOverviewModeObserver(
169 ash::wm::WmOverviewModeObserver* observer) {
170 NOTIMPLEMENTED();
171 }
172
173 // static
174 bool WmGlobalsMus::IsActivationParent(mus::Window* window) {
175 return window && window->local_id() == ash::kShellWindowId_DefaultContainer;
176 }
177
178 void WmGlobalsMus::OnWindowTreeFocusChanged(mus::Window* gained_focus,
179 mus::Window* lost_focus) {
180 WmWindowMus* gained_active = GetToplevelAncestor(gained_focus);
181 WmWindowMus* lost_active = GetToplevelAncestor(gained_focus);
182 if (gained_active == lost_active)
183 return;
184
185 FOR_EACH_OBSERVER(ash::wm::WmActivationObserver, activation_observers_,
186 OnWindowActivated(gained_active, lost_active));
187 }
188
189 } // namespace wm
190 } // 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