// 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 "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);
}

}  // namespace view_manager
