blob: 975bc4070f30e21c7e08f82f32f39711129e9b8f [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/ui/view_manager/view_manager_impl.h"
#include <utility>
#include "base/bind.h"
#include "services/ui/view_manager/view_impl.h"
#include "services/ui/view_manager/view_tree_impl.h"
namespace view_manager {
ViewManagerImpl::ViewManagerImpl(ViewRegistry* registry)
: registry_(registry) {}
ViewManagerImpl::~ViewManagerImpl() {}
void ViewManagerImpl::CreateView(
mojo::InterfaceRequest<mojo::ui::View> view_request,
mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request,
mojo::InterfaceHandle<mojo::ui::ViewListener> view_listener,
const mojo::String& label) {
registry_->CreateView(
view_request.Pass(), view_owner_request.Pass(),
mojo::ui::ViewListenerPtr::Create(std::move(view_listener)), label);
}
void ViewManagerImpl::CreateViewTree(
mojo::InterfaceRequest<mojo::ui::ViewTree> view_tree_request,
mojo::InterfaceHandle<mojo::ui::ViewTreeListener> view_tree_listener,
const mojo::String& label) {
registry_->CreateViewTree(
view_tree_request.Pass(),
mojo::ui::ViewTreeListenerPtr::Create(std::move(view_tree_listener)),
label);
}
// TODO(mikejurka): This should only be called by trusted code (ie launcher),
// once we have a security story.
void ViewManagerImpl::RegisterViewAssociate(
mojo::InterfaceHandle<mojo::ui::ViewAssociate> view_associate,
mojo::InterfaceRequest<mojo::ui::ViewAssociateOwner> view_associate_owner,
const mojo::String& label) {
registry_->RegisterViewAssociate(
registry_, mojo::ui::ViewAssociatePtr::Create(std::move(view_associate)),
view_associate_owner.Pass(), label);
}
void ViewManagerImpl::FinishedRegisteringViewAssociates() {
registry_->FinishedRegisteringViewAssociates();
}
} // namespace view_manager