| Index: mojo/examples/window_manager/window_manager.cc
|
| diff --git a/mojo/examples/window_manager/window_manager.cc b/mojo/examples/window_manager/window_manager.cc
|
| index b23e90840dd62e098eae9ff466182fe9a570f264..3b1970bfd7c6571205199e124adf2ae48a796877 100644
|
| --- a/mojo/examples/window_manager/window_manager.cc
|
| +++ b/mojo/examples/window_manager/window_manager.cc
|
| @@ -10,6 +10,7 @@
|
| #include "mojo/public/cpp/application/application_connection.h"
|
| #include "mojo/public/cpp/application/application_delegate.h"
|
| #include "mojo/public/cpp/application/application_impl.h"
|
| +#include "mojo/public/cpp/application/context_interface_factory.h"
|
| #include "mojo/services/public/cpp/geometry/geometry_type_converters.h"
|
| #include "mojo/services/public/cpp/input_events/input_events_type_converters.h"
|
| #include "mojo/services/public/cpp/view_manager/node.h"
|
| @@ -17,6 +18,7 @@
|
| #include "mojo/services/public/cpp/view_manager/view.h"
|
| #include "mojo/services/public/cpp/view_manager/view_event_dispatcher.h"
|
| #include "mojo/services/public/cpp/view_manager/view_manager.h"
|
| +#include "mojo/services/public/cpp/view_manager/view_manager_client_factory.h"
|
| #include "mojo/services/public/cpp/view_manager/view_manager_delegate.h"
|
| #include "mojo/services/public/interfaces/input_events/input_events.mojom.h"
|
| #include "mojo/services/public/interfaces/launcher/launcher.mojom.h"
|
| @@ -35,6 +37,7 @@ using mojo::view_manager::NodeObserver;
|
| using mojo::view_manager::View;
|
| using mojo::view_manager::ViewEventDispatcher;
|
| using mojo::view_manager::ViewManager;
|
| +using mojo::view_manager::ViewManagerClientFactory;
|
| using mojo::view_manager::ViewManagerDelegate;
|
| using mojo::view_manager::ViewObserver;
|
|
|
| @@ -53,8 +56,7 @@ const int kTextfieldHeight = 25;
|
|
|
| class WindowManagerConnection : public InterfaceImpl<IWindowManager> {
|
| public:
|
| - explicit WindowManagerConnection(ApplicationConnection* connection,
|
| - WindowManager* window_manager)
|
| + explicit WindowManagerConnection(WindowManager* window_manager)
|
| : window_manager_(window_manager) {}
|
| virtual ~WindowManagerConnection() {}
|
|
|
| @@ -71,10 +73,8 @@ class WindowManagerConnection : public InterfaceImpl<IWindowManager> {
|
|
|
| class NavigatorHost : public InterfaceImpl<navigation::NavigatorHost> {
|
| public:
|
| - explicit NavigatorHost(ApplicationConnection* connection,
|
| - WindowManager* window_manager)
|
| - : window_manager_(window_manager) {
|
| - }
|
| + explicit NavigatorHost(WindowManager* window_manager)
|
| + : window_manager_(window_manager) {}
|
| virtual ~NavigatorHost() {
|
| }
|
|
|
| @@ -186,16 +186,21 @@ class RootLayoutManager : public NodeObserver {
|
| DISALLOW_COPY_AND_ASSIGN(RootLayoutManager);
|
| };
|
|
|
| -class WindowManager : public ApplicationDelegate,
|
| - public DebugPanel::Delegate,
|
| - public ViewManagerDelegate,
|
| - public ViewEventDispatcher {
|
| +class WindowManager
|
| + : public ApplicationDelegate,
|
| + public DebugPanel::Delegate,
|
| + public ViewManagerDelegate,
|
| + public ViewEventDispatcher,
|
| + public ContextInterfaceFactory<WindowManagerConnection, WindowManager>,
|
| + public ContextInterfaceFactory<NavigatorHost, WindowManager> {
|
| public:
|
| WindowManager()
|
| - : launcher_ui_(NULL),
|
| + : ContextInterfaceFactory<WindowManagerConnection, WindowManager>(this),
|
| + ContextInterfaceFactory<NavigatorHost, WindowManager>(this),
|
| + launcher_ui_(NULL),
|
| view_manager_(NULL),
|
| - app_(NULL) {
|
| - }
|
| + view_manager_client_factory_(this),
|
| + app_(NULL) {}
|
|
|
| virtual ~WindowManager() {}
|
|
|
| @@ -266,9 +271,9 @@ class WindowManager : public ApplicationDelegate,
|
|
|
| virtual bool ConfigureIncomingConnection(ApplicationConnection* connection)
|
| MOJO_OVERRIDE {
|
| - connection->AddService<WindowManagerConnection>(this);
|
| - connection->AddService<NavigatorHost>(this);
|
| - ViewManager::ConfigureIncomingConnection(connection, this);
|
| + connection->AddServiceFactory<IWindowManager>(this);
|
| + connection->AddServiceFactory<navigation::NavigatorHost>(this);
|
| + connection->AddServiceFactory(&view_manager_client_factory_);
|
| return true;
|
| }
|
|
|
| @@ -432,6 +437,7 @@ class WindowManager : public ApplicationDelegate,
|
| Node* launcher_ui_;
|
| std::vector<Node*> windows_;
|
| ViewManager* view_manager_;
|
| + ViewManagerClientFactory view_manager_client_factory_;
|
| scoped_ptr<RootLayoutManager> root_layout_manager_;
|
|
|
| // Id of the node most content is added to. The keyboard is NOT added here.
|
|
|