| 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 "mojo/public/cpp/application/application_delegate.h" | 5 #include "mojo/public/cpp/application/application_delegate.h" |
| 6 #include "mojo/services/public/cpp/view_manager/view_manager.h" | 6 #include "mojo/services/public/cpp/view_manager/view_manager.h" |
| 7 #include "mojo/services/public/cpp/view_manager/view_manager_delegate.h" | 7 #include "mojo/services/public/cpp/view_manager/view_manager_delegate.h" |
| 8 #include "mojo/services/public/cpp/view_manager/window_manager_delegate.h" | 8 #include "mojo/services/public/cpp/view_manager/window_manager_delegate.h" |
| 9 #include "mojo/services/window_manager/window_manager_app.h" | 9 #include "mojo/services/window_manager/window_manager_app.h" |
| 10 | 10 |
| 11 namespace examples { | 11 namespace examples { |
| 12 | 12 |
| 13 class SimpleWM : public mojo::ApplicationDelegate, | 13 class SimpleWM : public mojo::ApplicationDelegate, |
| 14 public mojo::view_manager::ViewManagerDelegate, | 14 public mojo::ViewManagerDelegate, |
| 15 public mojo::view_manager::WindowManagerDelegate { | 15 public mojo::WindowManagerDelegate { |
| 16 public: | 16 public: |
| 17 SimpleWM() | 17 SimpleWM() |
| 18 : window_manager_app_(new mojo::WindowManagerApp(this)), | 18 : window_manager_app_(new mojo::WindowManagerApp(this)), |
| 19 view_manager_(NULL), | 19 view_manager_(NULL), |
| 20 root_(NULL), | 20 root_(NULL), |
| 21 window_container_(NULL), | 21 window_container_(NULL), |
| 22 next_window_origin_(10, 10) {} | 22 next_window_origin_(10, 10) {} |
| 23 virtual ~SimpleWM() {} | 23 virtual ~SimpleWM() {} |
| 24 | 24 |
| 25 private: | 25 private: |
| 26 // Overridden from mojo::ApplicationDelegate: | 26 // Overridden from mojo::ApplicationDelegate: |
| 27 virtual void Initialize(mojo::ApplicationImpl* impl) MOJO_OVERRIDE { | 27 virtual void Initialize(mojo::ApplicationImpl* impl) MOJO_OVERRIDE { |
| 28 window_manager_app_->Initialize(impl); | 28 window_manager_app_->Initialize(impl); |
| 29 } | 29 } |
| 30 virtual bool ConfigureIncomingConnection( | 30 virtual bool ConfigureIncomingConnection( |
| 31 mojo::ApplicationConnection* connection) MOJO_OVERRIDE { | 31 mojo::ApplicationConnection* connection) MOJO_OVERRIDE { |
| 32 window_manager_app_->ConfigureIncomingConnection(connection); | 32 window_manager_app_->ConfigureIncomingConnection(connection); |
| 33 return true; | 33 return true; |
| 34 } | 34 } |
| 35 | 35 |
| 36 // Overridden from mojo::view_manager::ViewManagerDelegate: | 36 // Overridden from mojo::ViewManagerDelegate: |
| 37 virtual void OnRootAdded( | 37 virtual void OnRootAdded( |
| 38 mojo::view_manager::ViewManager* view_manager, | 38 mojo::ViewManager* view_manager, |
| 39 mojo::view_manager::Node* root) MOJO_OVERRIDE { | 39 mojo::Node* root) MOJO_OVERRIDE { |
| 40 view_manager_ = view_manager; | 40 view_manager_ = view_manager; |
| 41 root_ = root; | 41 root_ = root; |
| 42 view_manager_->SetWindowManagerDelegate(this); | 42 view_manager_->SetWindowManagerDelegate(this); |
| 43 | 43 |
| 44 window_container_ = mojo::view_manager::Node::Create(view_manager_); | 44 window_container_ = mojo::Node::Create(view_manager_); |
| 45 window_container_->SetBounds(root_->bounds()); | 45 window_container_->SetBounds(root_->bounds()); |
| 46 root_->AddChild(window_container_); | 46 root_->AddChild(window_container_); |
| 47 | 47 |
| 48 } | 48 } |
| 49 virtual void OnViewManagerDisconnected( | 49 virtual void OnViewManagerDisconnected( |
| 50 mojo::view_manager::ViewManager* view_manager) MOJO_OVERRIDE { | 50 mojo::ViewManager* view_manager) MOJO_OVERRIDE { |
| 51 view_manager_ = NULL; | 51 view_manager_ = NULL; |
| 52 root_ = NULL; | 52 root_ = NULL; |
| 53 } | 53 } |
| 54 | 54 |
| 55 // Overridden from mojo::view_manager::WindowManagerDelegate: | 55 // Overridden from mojo::WindowManagerDelegate: |
| 56 virtual void Embed(const mojo::String& url) MOJO_OVERRIDE { | 56 virtual void Embed(const mojo::String& url) MOJO_OVERRIDE { |
| 57 mojo::view_manager::Node* embed_node = | 57 mojo::Node* embed_node = |
| 58 mojo::view_manager::Node::Create(view_manager_); | 58 mojo::Node::Create(view_manager_); |
| 59 embed_node->SetBounds(gfx::Rect(next_window_origin_, gfx::Size(400, 400))); | 59 embed_node->SetBounds(gfx::Rect(next_window_origin_, gfx::Size(400, 400))); |
| 60 window_container_->AddChild(embed_node); | 60 window_container_->AddChild(embed_node); |
| 61 embed_node->Embed(url); | 61 embed_node->Embed(url); |
| 62 next_window_origin_.Offset(50, 50); | 62 next_window_origin_.Offset(50, 50); |
| 63 } | 63 } |
| 64 virtual void DispatchEvent(mojo::view_manager::View* target, | 64 virtual void DispatchEvent(mojo::View* target, |
| 65 mojo::EventPtr event) MOJO_OVERRIDE { | 65 mojo::EventPtr event) MOJO_OVERRIDE { |
| 66 view_manager_->DispatchEvent(target, event.Pass()); | 66 view_manager_->DispatchEvent(target, event.Pass()); |
| 67 } | 67 } |
| 68 | 68 |
| 69 scoped_ptr<mojo::WindowManagerApp> window_manager_app_; | 69 scoped_ptr<mojo::WindowManagerApp> window_manager_app_; |
| 70 | 70 |
| 71 mojo::view_manager::ViewManager* view_manager_; | 71 mojo::ViewManager* view_manager_; |
| 72 mojo::view_manager::Node* root_; | 72 mojo::Node* root_; |
| 73 mojo::view_manager::Node* window_container_; | 73 mojo::Node* window_container_; |
| 74 | 74 |
| 75 gfx::Point next_window_origin_; | 75 gfx::Point next_window_origin_; |
| 76 | 76 |
| 77 DISALLOW_COPY_AND_ASSIGN(SimpleWM); | 77 DISALLOW_COPY_AND_ASSIGN(SimpleWM); |
| 78 }; | 78 }; |
| 79 | 79 |
| 80 } // namespace examples | 80 } // namespace examples |
| 81 | 81 |
| 82 namespace mojo { | 82 namespace mojo { |
| 83 | 83 |
| 84 // static | 84 // static |
| 85 ApplicationDelegate* ApplicationDelegate::Create() { | 85 ApplicationDelegate* ApplicationDelegate::Create() { |
| 86 return new examples::SimpleWM; | 86 return new examples::SimpleWM; |
| 87 } | 87 } |
| 88 | 88 |
| 89 } // namespace | 89 } // namespace |
| OLD | NEW |