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

Side by Side Diff: components/mus/public/cpp/lib/view_tree_client_impl.cc

Issue 1344573002: Mandoline: Rename components/view_manager to components/mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 3 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/view_manager/public/cpp/lib/view_tree_client_impl.h" 5 #include "components/mus/public/cpp/lib/view_tree_client_impl.h"
6 6
7 #include "components/view_manager/public/cpp/lib/view_private.h" 7 #include "components/mus/public/cpp/lib/view_private.h"
8 #include "components/view_manager/public/cpp/util.h" 8 #include "components/mus/public/cpp/util.h"
9 #include "components/view_manager/public/cpp/view_observer.h" 9 #include "components/mus/public/cpp/view_observer.h"
10 #include "components/view_manager/public/cpp/view_tree_connection.h" 10 #include "components/mus/public/cpp/view_tree_connection.h"
11 #include "components/view_manager/public/cpp/view_tree_delegate.h" 11 #include "components/mus/public/cpp/view_tree_delegate.h"
12 #include "mojo/application/public/cpp/application_impl.h" 12 #include "mojo/application/public/cpp/application_impl.h"
13 #include "mojo/application/public/cpp/connect.h" 13 #include "mojo/application/public/cpp/connect.h"
14 #include "mojo/application/public/cpp/service_provider_impl.h" 14 #include "mojo/application/public/cpp/service_provider_impl.h"
15 #include "mojo/application/public/interfaces/service_provider.mojom.h" 15 #include "mojo/application/public/interfaces/service_provider.mojom.h"
16 16
17 namespace mojo { 17 namespace mojo {
18 18
19 Id MakeTransportId(ConnectionSpecificId connection_id, 19 Id MakeTransportId(ConnectionSpecificId connection_id,
20 ConnectionSpecificId local_id) { 20 ConnectionSpecificId local_id) {
21 return (connection_id << 16) | local_id; 21 return (connection_id << 16) | local_id;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 } 67 }
68 return root; 68 return root;
69 } 69 }
70 70
71 ViewTreeConnection* ViewTreeConnection::Create( 71 ViewTreeConnection* ViewTreeConnection::Create(
72 ViewTreeDelegate* delegate, 72 ViewTreeDelegate* delegate,
73 InterfaceRequest<ViewTreeClient> request) { 73 InterfaceRequest<ViewTreeClient> request) {
74 return new ViewTreeClientImpl(delegate, request.Pass()); 74 return new ViewTreeClientImpl(delegate, request.Pass());
75 } 75 }
76 76
77 ViewTreeClientImpl::ViewTreeClientImpl( 77 ViewTreeClientImpl::ViewTreeClientImpl(ViewTreeDelegate* delegate,
78 ViewTreeDelegate* delegate, 78 InterfaceRequest<ViewTreeClient> request)
79 InterfaceRequest<ViewTreeClient> request)
80 : connection_id_(0), 79 : connection_id_(0),
81 next_id_(1), 80 next_id_(1),
82 delegate_(delegate), 81 delegate_(delegate),
83 root_(nullptr), 82 root_(nullptr),
84 capture_view_(nullptr), 83 capture_view_(nullptr),
85 focused_view_(nullptr), 84 focused_view_(nullptr),
86 activated_view_(nullptr), 85 activated_view_(nullptr),
87 binding_(this, request.Pass()), 86 binding_(this, request.Pass()),
88 is_embed_root_(false), 87 is_embed_root_(false),
89 in_destructor_(false) { 88 in_destructor_(false) {}
90 }
91 89
92 ViewTreeClientImpl::~ViewTreeClientImpl() { 90 ViewTreeClientImpl::~ViewTreeClientImpl() {
93 in_destructor_ = true; 91 in_destructor_ = true;
94 92
95 std::vector<View*> non_owned; 93 std::vector<View*> non_owned;
96 while (!views_.empty()) { 94 while (!views_.empty()) {
97 IdToViewMap::iterator it = views_.begin(); 95 IdToViewMap::iterator it = views_.begin();
98 if (OwnsView(it->second->id())) { 96 if (OwnsView(it->second->id())) {
99 it->second->Destroy(); 97 it->second->Destroy();
100 } else { 98 } else {
(...skipping 20 matching lines...) Expand all
121 void ViewTreeClientImpl::AddChild(Id child_id, Id parent_id) { 119 void ViewTreeClientImpl::AddChild(Id child_id, Id parent_id) {
122 DCHECK(tree_); 120 DCHECK(tree_);
123 tree_->AddView(parent_id, child_id, ActionCompletedCallback()); 121 tree_->AddView(parent_id, child_id, ActionCompletedCallback());
124 } 122 }
125 123
126 void ViewTreeClientImpl::RemoveChild(Id child_id, Id parent_id) { 124 void ViewTreeClientImpl::RemoveChild(Id child_id, Id parent_id) {
127 DCHECK(tree_); 125 DCHECK(tree_);
128 tree_->RemoveViewFromParent(child_id, ActionCompletedCallback()); 126 tree_->RemoveViewFromParent(child_id, ActionCompletedCallback());
129 } 127 }
130 128
131 void ViewTreeClientImpl::Reorder( 129 void ViewTreeClientImpl::Reorder(Id view_id,
132 Id view_id, 130 Id relative_view_id,
133 Id relative_view_id, 131 OrderDirection direction) {
134 OrderDirection direction) {
135 DCHECK(tree_); 132 DCHECK(tree_);
136 tree_->ReorderView(view_id, relative_view_id, direction, 133 tree_->ReorderView(view_id, relative_view_id, direction,
137 ActionCompletedCallback()); 134 ActionCompletedCallback());
138 } 135 }
139 136
140 bool ViewTreeClientImpl::OwnsView(Id id) const { 137 bool ViewTreeClientImpl::OwnsView(Id id) const {
141 return HiWord(id) == connection_id_; 138 return HiWord(id) == connection_id_;
142 } 139 }
143 140
144 void ViewTreeClientImpl::SetBounds(Id view_id, const Rect& bounds) { 141 void ViewTreeClientImpl::SetBounds(Id view_id, const Rect& bounds) {
145 DCHECK(tree_); 142 DCHECK(tree_);
146 tree_->SetViewBounds(view_id, bounds.Clone(), ActionCompletedCallback()); 143 tree_->SetViewBounds(view_id, bounds.Clone(), ActionCompletedCallback());
147 } 144 }
148 145
149 void ViewTreeClientImpl::SetFocus(Id view_id) { 146 void ViewTreeClientImpl::SetFocus(Id view_id) {
150 // In order for us to get here we had to have exposed a view, which implies we 147 // In order for us to get here we had to have exposed a view, which implies we
151 // got a connection. 148 // got a connection.
152 DCHECK(tree_); 149 DCHECK(tree_);
153 tree_->SetFocus(view_id); 150 tree_->SetFocus(view_id);
154 } 151 }
155 152
156 void ViewTreeClientImpl::SetVisible(Id view_id, bool visible) { 153 void ViewTreeClientImpl::SetVisible(Id view_id, bool visible) {
157 DCHECK(tree_); 154 DCHECK(tree_);
158 tree_->SetViewVisibility(view_id, visible, ActionCompletedCallback()); 155 tree_->SetViewVisibility(view_id, visible, ActionCompletedCallback());
159 } 156 }
160 157
161 void ViewTreeClientImpl::SetProperty( 158 void ViewTreeClientImpl::SetProperty(Id view_id,
162 Id view_id, 159 const std::string& name,
163 const std::string& name, 160 const std::vector<uint8_t>& data) {
164 const std::vector<uint8_t>& data) {
165 DCHECK(tree_); 161 DCHECK(tree_);
166 tree_->SetViewProperty(view_id, 162 tree_->SetViewProperty(view_id, String(name), Array<uint8_t>::From(data),
167 String(name),
168 Array<uint8_t>::From(data),
169 ActionCompletedCallback()); 163 ActionCompletedCallback());
170 } 164 }
171 165
172 void ViewTreeClientImpl::SetViewTextInputState(Id view_id, 166 void ViewTreeClientImpl::SetViewTextInputState(Id view_id,
173 TextInputStatePtr state) { 167 TextInputStatePtr state) {
174 DCHECK(tree_); 168 DCHECK(tree_);
175 tree_->SetViewTextInputState(view_id, state.Pass()); 169 tree_->SetViewTextInputState(view_id, state.Pass());
176 } 170 }
177 171
178 void ViewTreeClientImpl::SetImeVisibility(Id view_id, 172 void ViewTreeClientImpl::SetImeVisibility(Id view_id,
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 View* view = GetRoot(); 321 View* view = GetRoot();
328 if (view) 322 if (view)
329 SetViewportMetricsOnDecendants(view, *old_metrics, *new_metrics); 323 SetViewportMetricsOnDecendants(view, *old_metrics, *new_metrics);
330 } 324 }
331 325
332 void ViewTreeClientImpl::OnViewHierarchyChanged( 326 void ViewTreeClientImpl::OnViewHierarchyChanged(
333 Id view_id, 327 Id view_id,
334 Id new_parent_id, 328 Id new_parent_id,
335 Id old_parent_id, 329 Id old_parent_id,
336 mojo::Array<ViewDataPtr> views) { 330 mojo::Array<ViewDataPtr> views) {
337 View* initial_parent = views.size() ? 331 View* initial_parent = views.size() ? GetViewById(views[0]->parent_id) : NULL;
338 GetViewById(views[0]->parent_id) : NULL;
339 332
340 const bool was_view_known = GetViewById(view_id) != nullptr; 333 const bool was_view_known = GetViewById(view_id) != nullptr;
341 334
342 BuildViewTree(this, views, initial_parent); 335 BuildViewTree(this, views, initial_parent);
343 336
344 // If the view was not known, then BuildViewTree() will have created it and 337 // If the view was not known, then BuildViewTree() will have created it and
345 // parented the view. 338 // parented the view.
346 if (!was_view_known) 339 if (!was_view_known)
347 return; 340 return;
348 341
(...skipping 29 matching lines...) Expand all
378 if (view) 371 if (view)
379 ViewPrivate(view).LocalSetVisible(visible); 372 ViewPrivate(view).LocalSetVisible(visible);
380 } 373 }
381 374
382 void ViewTreeClientImpl::OnViewDrawnStateChanged(Id view_id, bool drawn) { 375 void ViewTreeClientImpl::OnViewDrawnStateChanged(Id view_id, bool drawn) {
383 View* view = GetViewById(view_id); 376 View* view = GetViewById(view_id);
384 if (view) 377 if (view)
385 ViewPrivate(view).LocalSetDrawn(drawn); 378 ViewPrivate(view).LocalSetDrawn(drawn);
386 } 379 }
387 380
388 void ViewTreeClientImpl::OnViewSharedPropertyChanged( 381 void ViewTreeClientImpl::OnViewSharedPropertyChanged(Id view_id,
389 Id view_id, 382 const String& name,
390 const String& name, 383 Array<uint8_t> new_data) {
391 Array<uint8_t> new_data) {
392 View* view = GetViewById(view_id); 384 View* view = GetViewById(view_id);
393 if (view) { 385 if (view) {
394 std::vector<uint8_t> data; 386 std::vector<uint8_t> data;
395 std::vector<uint8_t>* data_ptr = NULL; 387 std::vector<uint8_t>* data_ptr = NULL;
396 if (!new_data.is_null()) { 388 if (!new_data.is_null()) {
397 data = new_data.To<std::vector<uint8_t>>(); 389 data = new_data.To<std::vector<uint8_t>>();
398 data_ptr = &data; 390 data_ptr = &data;
399 } 391 }
400 392
401 view->SetSharedProperty(name, data_ptr); 393 view->SetSharedProperty(name, data_ptr);
402 } 394 }
403 } 395 }
404 396
405 void ViewTreeClientImpl::OnViewInputEvent( 397 void ViewTreeClientImpl::OnViewInputEvent(
406 Id view_id, 398 Id view_id,
407 EventPtr event, 399 EventPtr event,
408 const Callback<void()>& ack_callback) { 400 const Callback<void()>& ack_callback) {
409 View* view = GetViewById(view_id); 401 View* view = GetViewById(view_id);
410 if (view) { 402 if (view) {
411 FOR_EACH_OBSERVER(ViewObserver, 403 FOR_EACH_OBSERVER(ViewObserver, *ViewPrivate(view).observers(),
412 *ViewPrivate(view).observers(),
413 OnViewInputEvent(view, event)); 404 OnViewInputEvent(view, event));
414 } 405 }
415 ack_callback.Run(); 406 ack_callback.Run();
416 } 407 }
417 408
418 void ViewTreeClientImpl::OnViewFocused(Id focused_view_id) { 409 void ViewTreeClientImpl::OnViewFocused(Id focused_view_id) {
419 View* focused = GetViewById(focused_view_id); 410 View* focused = GetViewById(focused_view_id);
420 View* blurred = focused_view_; 411 View* blurred = focused_view_;
421 // Update |focused_view_| before calling any of the observers, so that the 412 // Update |focused_view_| before calling any of the observers, so that the
422 // observers get the correct result from calling |View::HasFocus()|, 413 // observers get the correct result from calling |View::HasFocus()|,
(...skipping 15 matching lines...) Expand all
438 void ViewTreeClientImpl::OnActionCompleted(bool success) { 429 void ViewTreeClientImpl::OnActionCompleted(bool success) {
439 if (!change_acked_callback_.is_null()) 430 if (!change_acked_callback_.is_null())
440 change_acked_callback_.Run(); 431 change_acked_callback_.Run();
441 } 432 }
442 433
443 Callback<void(bool)> ViewTreeClientImpl::ActionCompletedCallback() { 434 Callback<void(bool)> ViewTreeClientImpl::ActionCompletedCallback() {
444 return [this](bool success) { OnActionCompleted(success); }; 435 return [this](bool success) { OnActionCompleted(success); };
445 } 436 }
446 437
447 } // namespace mojo 438 } // namespace mojo
OLDNEW
« no previous file with comments | « components/mus/public/cpp/lib/view_tree_client_impl.h ('k') | components/mus/public/cpp/lib/view_tree_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698