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

Side by Side Diff: ash/shelf/shelf_window_watcher.cc

Issue 2095193002: clang-format all of //ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 | « ash/shelf/shelf_window_watcher.h ('k') | ash/shelf/shelf_window_watcher_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "ash/shelf/shelf_window_watcher.h" 5 #include "ash/shelf/shelf_window_watcher.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "ash/aura/wm_window_aura.h" 10 #include "ash/aura/wm_window_aura.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 bool IsDragging(aura::Window* window) { 49 bool IsDragging(aura::Window* window) {
50 return ash::wm::GetWindowState(window)->is_dragged(); 50 return ash::wm::GetWindowState(window)->is_dragged();
51 } 51 }
52 52
53 } // namespace 53 } // namespace
54 54
55 namespace ash { 55 namespace ash {
56 56
57 ShelfWindowWatcher::RootWindowObserver::RootWindowObserver( 57 ShelfWindowWatcher::RootWindowObserver::RootWindowObserver(
58 ShelfWindowWatcher* window_watcher) 58 ShelfWindowWatcher* window_watcher)
59 : window_watcher_(window_watcher) { 59 : window_watcher_(window_watcher) {}
60 }
61 60
62 ShelfWindowWatcher::RootWindowObserver::~RootWindowObserver() { 61 ShelfWindowWatcher::RootWindowObserver::~RootWindowObserver() {}
63 }
64 62
65 void ShelfWindowWatcher::RootWindowObserver::OnWindowDestroying( 63 void ShelfWindowWatcher::RootWindowObserver::OnWindowDestroying(
66 aura::Window* window) { 64 aura::Window* window) {
67 window_watcher_->OnRootWindowRemoved(window); 65 window_watcher_->OnRootWindowRemoved(window);
68 } 66 }
69 67
70 ShelfWindowWatcher::RemovedWindowObserver::RemovedWindowObserver( 68 ShelfWindowWatcher::RemovedWindowObserver::RemovedWindowObserver(
71 ShelfWindowWatcher* window_watcher) 69 ShelfWindowWatcher* window_watcher)
72 : window_watcher_(window_watcher) { 70 : window_watcher_(window_watcher) {}
73 }
74 71
75 ShelfWindowWatcher::RemovedWindowObserver::~RemovedWindowObserver() { 72 ShelfWindowWatcher::RemovedWindowObserver::~RemovedWindowObserver() {}
76 }
77 73
78 void ShelfWindowWatcher::RemovedWindowObserver::OnWindowParentChanged( 74 void ShelfWindowWatcher::RemovedWindowObserver::OnWindowParentChanged(
79 aura::Window* window, 75 aura::Window* window,
80 aura::Window* parent) { 76 aura::Window* parent) {
81 // When |parent| is NULL, this |window| will be destroyed. In that case, its 77 // When |parent| is NULL, this |window| will be destroyed. In that case, its
82 // item will be removed at OnWindowDestroyed(). 78 // item will be removed at OnWindowDestroyed().
83 if (!parent) 79 if (!parent)
84 return; 80 return;
85 81
86 // When |parent| is changed from default container to docked container 82 // When |parent| is changed from default container to docked container
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 OnRootWindowAdded(WmWindowAura::Get(root)); 117 OnRootWindowAdded(WmWindowAura::Get(root));
122 118
123 display::Screen::GetScreen()->AddObserver(this); 119 display::Screen::GetScreen()->AddObserver(this);
124 } 120 }
125 121
126 ShelfWindowWatcher::~ShelfWindowWatcher() { 122 ShelfWindowWatcher::~ShelfWindowWatcher() {
127 display::Screen::GetScreen()->RemoveObserver(this); 123 display::Screen::GetScreen()->RemoveObserver(this);
128 } 124 }
129 125
130 void ShelfWindowWatcher::AddShelfItem(aura::Window* window) { 126 void ShelfWindowWatcher::AddShelfItem(aura::Window* window) {
131 const ShelfItemDetails* item_details = 127 const ShelfItemDetails* item_details = GetShelfItemDetailsForWindow(window);
132 GetShelfItemDetailsForWindow(window);
133 ShelfItem item; 128 ShelfItem item;
134 ShelfID id = model_->next_id(); 129 ShelfID id = model_->next_id();
135 item.status = wm::IsActiveWindow(window) ? STATUS_ACTIVE: STATUS_RUNNING; 130 item.status = wm::IsActiveWindow(window) ? STATUS_ACTIVE : STATUS_RUNNING;
136 SetShelfItemDetailsForShelfItem(&item, *item_details); 131 SetShelfItemDetailsForShelfItem(&item, *item_details);
137 SetShelfIDForWindow(id, window); 132 SetShelfIDForWindow(id, window);
138 std::unique_ptr<ShelfItemDelegate> item_delegate( 133 std::unique_ptr<ShelfItemDelegate> item_delegate(
139 new ShelfWindowWatcherItemDelegate(window)); 134 new ShelfWindowWatcherItemDelegate(window));
140 // |item_delegate| is owned by |item_delegate_manager_|. 135 // |item_delegate| is owned by |item_delegate_manager_|.
141 item_delegate_manager_->SetShelfItemDelegate(id, std::move(item_delegate)); 136 item_delegate_manager_->SetShelfItemDelegate(id, std::move(item_delegate));
142 model_->Add(item); 137 model_->Add(item);
143 } 138 }
144 139
145 void ShelfWindowWatcher::RemoveShelfItem(aura::Window* window) { 140 void ShelfWindowWatcher::RemoveShelfItem(aura::Window* window) {
146 model_->RemoveItemAt(model_->ItemIndexByID(GetShelfIDForWindow(window))); 141 model_->RemoveItemAt(model_->ItemIndexByID(GetShelfIDForWindow(window)));
147 SetShelfIDForWindow(kInvalidShelfID, window); 142 SetShelfIDForWindow(kInvalidShelfID, window);
148 } 143 }
149 144
150 void ShelfWindowWatcher::OnRootWindowAdded(WmWindow* root_window_wm) { 145 void ShelfWindowWatcher::OnRootWindowAdded(WmWindow* root_window_wm) {
151 aura::Window* root_window = WmWindowAura::GetAuraWindow(root_window_wm); 146 aura::Window* root_window = WmWindowAura::GetAuraWindow(root_window_wm);
152 // |observed_activation_clients_| can have the same ActivationClient multiple 147 // |observed_activation_clients_| can have the same ActivationClient multiple
153 // times - which would be handled by the |observed_activation_clients_|. 148 // times - which would be handled by the |observed_activation_clients_|.
154 observed_activation_clients_.Add( 149 observed_activation_clients_.Add(
155 aura::client::GetActivationClient(root_window)); 150 aura::client::GetActivationClient(root_window));
156 observed_root_windows_.Add(root_window); 151 observed_root_windows_.Add(root_window);
157 152
158 aura::Window* default_container = Shell::GetContainer( 153 aura::Window* default_container =
159 root_window, 154 Shell::GetContainer(root_window, kShellWindowId_DefaultContainer);
160 kShellWindowId_DefaultContainer);
161 observed_windows_.Add(default_container); 155 observed_windows_.Add(default_container);
162 for (size_t i = 0; i < default_container->children().size(); ++i) 156 for (size_t i = 0; i < default_container->children().size(); ++i)
163 observed_windows_.Add(default_container->children()[i]); 157 observed_windows_.Add(default_container->children()[i]);
164 } 158 }
165 159
166 void ShelfWindowWatcher::OnRootWindowRemoved(aura::Window* root_window) { 160 void ShelfWindowWatcher::OnRootWindowRemoved(aura::Window* root_window) {
167 observed_root_windows_.Remove(root_window); 161 observed_root_windows_.Remove(root_window);
168 observed_activation_clients_.Remove( 162 observed_activation_clients_.Remove(
169 aura::client::GetActivationClient(root_window)); 163 aura::client::GetActivationClient(root_window));
170 } 164 }
171 165
172 void ShelfWindowWatcher::UpdateShelfItemStatus(aura::Window* window, 166 void ShelfWindowWatcher::UpdateShelfItemStatus(aura::Window* window,
173 bool is_active) { 167 bool is_active) {
174 int index = GetShelfItemIndexForWindow(window); 168 int index = GetShelfItemIndexForWindow(window);
175 DCHECK_GE(index, 0); 169 DCHECK_GE(index, 0);
176 170
177 ShelfItem item = model_->items()[index]; 171 ShelfItem item = model_->items()[index];
178 item.status = is_active ? STATUS_ACTIVE : STATUS_RUNNING; 172 item.status = is_active ? STATUS_ACTIVE : STATUS_RUNNING;
179 model_->Set(index, item); 173 model_->Set(index, item);
180 } 174 }
181 175
182 int ShelfWindowWatcher::GetShelfItemIndexForWindow( 176 int ShelfWindowWatcher::GetShelfItemIndexForWindow(aura::Window* window) const {
183 aura::Window* window) const {
184 return model_->ItemIndexByID(GetShelfIDForWindow(window)); 177 return model_->ItemIndexByID(GetShelfIDForWindow(window));
185 } 178 }
186 179
187 void ShelfWindowWatcher::StartObservingRemovedWindow(aura::Window* window) { 180 void ShelfWindowWatcher::StartObservingRemovedWindow(aura::Window* window) {
188 observed_removed_windows_.Add(window); 181 observed_removed_windows_.Add(window);
189 } 182 }
190 183
191 void ShelfWindowWatcher::FinishObservingRemovedWindow(aura::Window* window) { 184 void ShelfWindowWatcher::FinishObservingRemovedWindow(aura::Window* window) {
192 observed_removed_windows_.Remove(window); 185 observed_removed_windows_.Remove(window);
193 RemoveShelfItem(window); 186 RemoveShelfItem(window);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 if (reinterpret_cast<ShelfItemDetails*>(old) != NULL) 244 if (reinterpret_cast<ShelfItemDetails*>(old) != NULL)
252 RemoveShelfItem(window); 245 RemoveShelfItem(window);
253 return; 246 return;
254 } 247 }
255 248
256 // When ShelfItemDetails is changed, update ShelfItem. 249 // When ShelfItemDetails is changed, update ShelfItem.
257 if (HasShelfItemForWindow(window)) { 250 if (HasShelfItemForWindow(window)) {
258 int index = GetShelfItemIndexForWindow(window); 251 int index = GetShelfItemIndexForWindow(window);
259 DCHECK_GE(index, 0); 252 DCHECK_GE(index, 0);
260 ShelfItem item = model_->items()[index]; 253 ShelfItem item = model_->items()[index];
261 const ShelfItemDetails* details = 254 const ShelfItemDetails* details = GetShelfItemDetailsForWindow(window);
262 GetShelfItemDetailsForWindow(window);
263 SetShelfItemDetailsForShelfItem(&item, *details); 255 SetShelfItemDetailsForShelfItem(&item, *details);
264 model_->Set(index, item); 256 model_->Set(index, item);
265 return; 257 return;
266 } 258 }
267 259
268 // Creates a new ShelfItem for |window|. 260 // Creates a new ShelfItem for |window|.
269 AddShelfItem(window); 261 AddShelfItem(window);
270 } 262 }
271 263
272 void ShelfWindowWatcher::OnDisplayAdded(const display::Display& new_display) { 264 void ShelfWindowWatcher::OnDisplayAdded(const display::Display& new_display) {
(...skipping 12 matching lines...) Expand all
285 // When this is called, RootWindow of |old_display| is already removed. 277 // When this is called, RootWindow of |old_display| is already removed.
286 // Instead, we remove an observer from RootWindow and ActivationClient in the 278 // Instead, we remove an observer from RootWindow and ActivationClient in the
287 // OnRootWindowDestroyed(). 279 // OnRootWindowDestroyed().
288 // Do nothing here. 280 // Do nothing here.
289 } 281 }
290 282
291 void ShelfWindowWatcher::OnDisplayMetricsChanged(const display::Display&, 283 void ShelfWindowWatcher::OnDisplayMetricsChanged(const display::Display&,
292 uint32_t) {} 284 uint32_t) {}
293 285
294 } // namespace ash 286 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shelf/shelf_window_watcher.h ('k') | ash/shelf/shelf_window_watcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698