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

Side by Side Diff: components/view_manager/public/cpp/lib/view.cc

Issue 1281663002: Mandoline: Allow submitting CompositorFrames directly to mojo::Views (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased + added uip::Surface 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/view.h" 5 #include "components/view_manager/public/cpp/view.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 9
10 #include "components/view_manager/public/cpp/lib/view_private.h" 10 #include "components/view_manager/public/cpp/lib/view_private.h"
11 #include "components/view_manager/public/cpp/lib/view_tree_client_impl.h" 11 #include "components/view_manager/public/cpp/lib/view_tree_client_impl.h"
12 #include "components/view_manager/public/cpp/surface.h"
12 #include "components/view_manager/public/cpp/view_observer.h" 13 #include "components/view_manager/public/cpp/view_observer.h"
13 #include "components/view_manager/public/cpp/view_tracker.h" 14 #include "components/view_manager/public/cpp/view_tracker.h"
14 #include "mojo/application/public/cpp/service_provider_impl.h" 15 #include "mojo/application/public/cpp/service_provider_impl.h"
15 16
16 namespace mojo { 17 namespace mojo {
17 18
18 namespace { 19 namespace {
19 20
20 void NotifyViewTreeChangeAtReceiver( 21 void NotifyViewTreeChangeAtReceiver(
21 View* receiver, 22 View* receiver,
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 217
217 void View::SetVisible(bool value) { 218 void View::SetVisible(bool value) {
218 if (visible_ == value) 219 if (visible_ == value)
219 return; 220 return;
220 221
221 if (connection_) 222 if (connection_)
222 static_cast<ViewTreeClientImpl*>(connection_)->SetVisible(id_, value); 223 static_cast<ViewTreeClientImpl*>(connection_)->SetVisible(id_, value);
223 LocalSetVisible(value); 224 LocalSetVisible(value);
224 } 225 }
225 226
227 scoped_ptr<uip::Surface> View::RequestSurface() {
228 mojo::SurfacePtr surface;
229 mojo::SurfaceClientPtr client;
230 mojo::InterfaceRequest<SurfaceClient> client_request = GetProxy(&client);
231 static_cast<ViewTreeClientImpl*>(connection_)->RequestSurface(
232 id_, GetProxy(&surface), client.Pass());
233 return make_scoped_ptr(new uip::Surface(surface.PassInterface(),
234 client_request.Pass()));
235 }
236
226 void View::SetSharedProperty(const std::string& name, 237 void View::SetSharedProperty(const std::string& name,
227 const std::vector<uint8_t>* value) { 238 const std::vector<uint8_t>* value) {
228 std::vector<uint8_t> old_value; 239 std::vector<uint8_t> old_value;
229 std::vector<uint8_t>* old_value_ptr = nullptr; 240 std::vector<uint8_t>* old_value_ptr = nullptr;
230 auto it = properties_.find(name); 241 auto it = properties_.find(name);
231 if (it != properties_.end()) { 242 if (it != properties_.end()) {
232 old_value = it->second; 243 old_value = it->second;
233 old_value_ptr = &old_value; 244 old_value_ptr = &old_value;
234 245
235 if (value && old_value == *value) 246 if (value && old_value == *value)
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 // TODO(beng): this could be improved depending on how we decide to own views. 358 // TODO(beng): this could be improved depending on how we decide to own views.
348 Children::const_iterator it = children_.begin(); 359 Children::const_iterator it = children_.begin();
349 for (; it != children_.end(); ++it) { 360 for (; it != children_.end(); ++it) {
350 View* view = (*it)->GetChildById(id); 361 View* view = (*it)->GetChildById(id);
351 if (view) 362 if (view)
352 return view; 363 return view;
353 } 364 }
354 return NULL; 365 return NULL;
355 } 366 }
356 367
357 void View::SetSurfaceId(SurfaceIdPtr id) {
358 if (connection_) {
359 static_cast<ViewTreeClientImpl*>(connection_)->SetSurfaceId(id_, id.Pass());
360 }
361 }
362
363 void View::SetTextInputState(TextInputStatePtr state) { 368 void View::SetTextInputState(TextInputStatePtr state) {
364 if (connection_) { 369 if (connection_) {
365 static_cast<ViewTreeClientImpl*>(connection_) 370 static_cast<ViewTreeClientImpl*>(connection_)
366 ->SetViewTextInputState(id_, state.Pass()); 371 ->SetViewTextInputState(id_, state.Pass());
367 } 372 }
368 } 373 }
369 374
370 void View::SetImeVisibility(bool visible, TextInputStatePtr state) { 375 void View::SetImeVisibility(bool visible, TextInputStatePtr state) {
371 // SetImeVisibility() shouldn't be used if the view is not editable. 376 // SetImeVisibility() shouldn't be used if the view is not editable.
372 DCHECK(state.is_null() || state->type != TEXT_INPUT_TYPE_NONE); 377 DCHECK(state.is_null() || state->type != TEXT_INPUT_TYPE_NONE);
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
610 !static_cast<ViewTreeClientImpl*>(connection_)->is_embed_root()) { 615 !static_cast<ViewTreeClientImpl*>(connection_)->is_embed_root()) {
611 return false; 616 return false;
612 } 617 }
613 618
614 while (!children_.empty()) 619 while (!children_.empty())
615 RemoveChild(children_[0]); 620 RemoveChild(children_[0]);
616 return true; 621 return true;
617 } 622 }
618 623
619 } // namespace mojo 624 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698