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 |