146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/basictypes.h" 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/bind.h" 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/application/application_runner_chromium.h" 803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "mojo/public/c/system/main.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "mojo/public/cpp/application/application_delegate.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "mojo/public/cpp/application/application_impl.h" 116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "mojo/public/interfaces/application/service_provider.mojom.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/services/public/cpp/view_manager/view_manager.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/services/public/cpp/view_manager/view_manager_context.h" 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace examples { 1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// ViewManagerInit is responsible for establishing the initial connection to 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// the view manager. When established it loads |mojo_aura_demo|. 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass ViewManagerInit : public mojo::ApplicationDelegate { 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ViewManagerInit() {} 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual ~ViewManagerInit() {} 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void Initialize(mojo::ApplicationImpl* app) MOJO_OVERRIDE { 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci context_.reset(new mojo::ViewManagerContext(app)); 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci context_->Embed("mojo:mojo_aura_demo"); 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) private: 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<mojo::ViewManagerContext> context_; 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ViewManagerInit); 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace examples 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)MojoResult MojoMain(MojoHandle shell_handle) { 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci mojo::ApplicationRunnerChromium runner(new examples::ViewManagerInit); 3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) return runner.Run(shell_handle); 4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 41