OLD | NEW |
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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "mojo/examples/wm_flow/app/embedder.mojom.h" | 6 #include "mojo/examples/wm_flow/app/embedder.mojom.h" |
7 #include "mojo/examples/wm_flow/embedded/embeddee.mojom.h" | 7 #include "mojo/examples/wm_flow/embedded/embeddee.mojom.h" |
8 #include "mojo/public/cpp/application/application_connection.h" | 8 #include "mojo/public/cpp/application/application_connection.h" |
9 #include "mojo/public/cpp/application/application_delegate.h" | 9 #include "mojo/public/cpp/application/application_delegate.h" |
10 #include "mojo/public/cpp/application/application_impl.h" | 10 #include "mojo/public/cpp/application/application_impl.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 } | 33 } |
34 | 34 |
35 DISALLOW_COPY_AND_ASSIGN(EmbeddeeImpl); | 35 DISALLOW_COPY_AND_ASSIGN(EmbeddeeImpl); |
36 }; | 36 }; |
37 | 37 |
38 } // namespace | 38 } // namespace |
39 | 39 |
40 class WMFlowEmbedded : public mojo::ApplicationDelegate, | 40 class WMFlowEmbedded : public mojo::ApplicationDelegate, |
41 public mojo::ViewManagerDelegate { | 41 public mojo::ViewManagerDelegate { |
42 public: | 42 public: |
43 WMFlowEmbedded() | 43 WMFlowEmbedded() {} |
44 : view_manager_client_factory_(this) {} | |
45 virtual ~WMFlowEmbedded() {} | 44 virtual ~WMFlowEmbedded() {} |
46 | 45 |
47 private: | 46 private: |
48 // Overridden from Application: | 47 // Overridden from Application: |
49 virtual void Initialize(mojo::ApplicationImpl* app) MOJO_OVERRIDE { | 48 virtual void Initialize(mojo::ApplicationImpl* app) MOJO_OVERRIDE { |
| 49 view_manager_client_factory_.reset( |
| 50 new mojo::ViewManagerClientFactory(app->shell(), this)); |
50 } | 51 } |
51 virtual bool ConfigureIncomingConnection( | 52 virtual bool ConfigureIncomingConnection( |
52 mojo::ApplicationConnection* connection) MOJO_OVERRIDE { | 53 mojo::ApplicationConnection* connection) MOJO_OVERRIDE { |
53 connection->AddService(&view_manager_client_factory_); | 54 connection->AddService(view_manager_client_factory_.get()); |
54 return true; | 55 return true; |
55 } | 56 } |
56 | 57 |
57 // Overridden from mojo::ViewManagerDelegate: | 58 // Overridden from mojo::ViewManagerDelegate: |
58 virtual void OnEmbed( | 59 virtual void OnEmbed( |
59 mojo::ViewManager* view_manager, | 60 mojo::ViewManager* view_manager, |
60 mojo::View* root, | 61 mojo::View* root, |
61 mojo::ServiceProviderImpl* exported_services, | 62 mojo::ServiceProviderImpl* exported_services, |
62 scoped_ptr<mojo::ServiceProvider> imported_services) MOJO_OVERRIDE { | 63 scoped_ptr<mojo::ServiceProvider> imported_services) MOJO_OVERRIDE { |
63 root->SetColor(SK_ColorMAGENTA); | 64 root->SetColor(SK_ColorMAGENTA); |
64 | 65 |
65 exported_services->AddService(&embeddee_factory_); | 66 exported_services->AddService(&embeddee_factory_); |
66 mojo::ConnectToService(imported_services.get(), &embedder_); | 67 mojo::ConnectToService(imported_services.get(), &embedder_); |
67 embedder_->HelloWorld(base::Bind(&WMFlowEmbedded::HelloWorldAck, | 68 embedder_->HelloWorld(base::Bind(&WMFlowEmbedded::HelloWorldAck, |
68 base::Unretained(this))); | 69 base::Unretained(this))); |
69 } | 70 } |
70 virtual void OnViewManagerDisconnected( | 71 virtual void OnViewManagerDisconnected( |
71 mojo::ViewManager* view_manager) MOJO_OVERRIDE {} | 72 mojo::ViewManager* view_manager) MOJO_OVERRIDE {} |
72 | 73 |
73 void HelloWorldAck() { | 74 void HelloWorldAck() { |
74 printf("HelloWorld() ack'ed\n"); | 75 printf("HelloWorld() ack'ed\n"); |
75 } | 76 } |
76 | 77 |
77 mojo::ViewManagerClientFactory view_manager_client_factory_; | 78 scoped_ptr<mojo::ViewManagerClientFactory> view_manager_client_factory_; |
78 EmbedderPtr embedder_; | 79 EmbedderPtr embedder_; |
79 mojo::InterfaceFactoryImpl<EmbeddeeImpl> embeddee_factory_; | 80 mojo::InterfaceFactoryImpl<EmbeddeeImpl> embeddee_factory_; |
80 | 81 |
81 DISALLOW_COPY_AND_ASSIGN(WMFlowEmbedded); | 82 DISALLOW_COPY_AND_ASSIGN(WMFlowEmbedded); |
82 }; | 83 }; |
83 | 84 |
84 } // namespace examples | 85 } // namespace examples |
85 | 86 |
86 namespace mojo { | 87 namespace mojo { |
87 | 88 |
88 // static | 89 // static |
89 ApplicationDelegate* ApplicationDelegate::Create() { | 90 ApplicationDelegate* ApplicationDelegate::Create() { |
90 return new examples::WMFlowEmbedded; | 91 return new examples::WMFlowEmbedded; |
91 } | 92 } |
92 | 93 |
93 } // namespace | 94 } // namespace |
OLD | NEW |