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 #ifndef MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_APP_H_ | 5 #ifndef MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_APP_H_ |
6 #define MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_APP_H_ | 6 #define MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_APP_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "mojo/aura/window_tree_host_mojo_delegate.h" | 11 #include "mojo/aura/window_tree_host_mojo_delegate.h" |
12 #include "mojo/public/cpp/application/application_delegate.h" | 12 #include "mojo/public/cpp/application/application_delegate.h" |
13 #include "mojo/public/cpp/bindings/string.h" | |
14 #include "mojo/services/public/cpp/view_manager/node_observer.h" | |
13 #include "mojo/services/public/cpp/view_manager/types.h" | 15 #include "mojo/services/public/cpp/view_manager/types.h" |
14 #include "mojo/services/public/cpp/view_manager/view_manager_delegate.h" | 16 #include "mojo/services/public/cpp/view_manager/view_manager_delegate.h" |
17 #include "ui/aura/client/focus_change_observer.h" | |
18 #include "ui/wm/public/activation_change_observer.h" | |
15 | 19 |
16 namespace aura { | 20 namespace aura { |
21 namespace client { | |
22 class ActivationClient; | |
23 class FocusClient; | |
24 } | |
17 class Window; | 25 class Window; |
18 } | 26 } |
19 | 27 |
20 namespace wm { | 28 namespace wm { |
21 class ScopedCaptureClient; | 29 class ScopedCaptureClient; |
22 } | 30 } |
23 | 31 |
24 namespace mojo { | 32 namespace mojo { |
25 | 33 |
26 class AuraInit; | 34 class AuraInit; |
27 class WindowManagerServiceImpl; | 35 class WindowManagerServiceImpl; |
28 class WindowTreeHostMojo; | 36 class WindowTreeHostMojo; |
29 | 37 |
30 class WindowManagerApp : public ApplicationDelegate, | 38 class WindowManagerApp : public ApplicationDelegate, |
31 public view_manager::ViewManagerDelegate, | 39 public view_manager::ViewManagerDelegate, |
32 public WindowTreeHostMojoDelegate { | 40 public view_manager::NodeObserver, |
41 public WindowTreeHostMojoDelegate, | |
42 public aura::client::FocusChangeObserver, | |
43 public aura::client::ActivationChangeObserver { | |
33 public: | 44 public: |
34 WindowManagerApp(); | 45 WindowManagerApp(); |
35 virtual ~WindowManagerApp(); | 46 virtual ~WindowManagerApp(); |
36 | 47 |
37 void AddConnection(WindowManagerServiceImpl* connection); | 48 void AddConnection(WindowManagerServiceImpl* connection); |
38 void RemoveConnection(WindowManagerServiceImpl* connection); | 49 void RemoveConnection(WindowManagerServiceImpl* connection); |
39 | 50 |
40 view_manager::Id OpenWindow(); | 51 view_manager::Id OpenWindow(); |
52 view_manager::Id OpenWindowWithURL(const String& url); | |
41 void SetCapture(view_manager::Id node); | 53 void SetCapture(view_manager::Id node); |
54 void FocusWindow(view_manager::Id node); | |
55 void ActivateWindow(view_manager::Id node); | |
42 | 56 |
43 bool IsReady() const; | 57 bool IsReady() const; |
44 | 58 |
45 private: | 59 private: |
46 typedef std::set<WindowManagerServiceImpl*> Connections; | 60 typedef std::set<WindowManagerServiceImpl*> Connections; |
61 typedef std::map<view_manager::Id, aura::Window*> NodeIdToWindowMap; | |
47 | 62 |
48 // Overridden from ApplicationDelegate: | 63 // Overridden from ApplicationDelegate: |
49 virtual void Initialize(ApplicationImpl* impl) MOJO_OVERRIDE; | 64 virtual void Initialize(ApplicationImpl* impl) MOJO_OVERRIDE; |
50 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) | 65 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) |
51 MOJO_OVERRIDE; | 66 MOJO_OVERRIDE; |
52 | 67 |
53 // Overridden from view_manager::ViewManagerDelegate: | 68 // Overridden from view_manager::ViewManagerDelegate: |
54 virtual void OnRootAdded(view_manager::ViewManager* view_manager, | 69 virtual void OnRootAdded(view_manager::ViewManager* view_manager, |
55 view_manager::Node* root) MOJO_OVERRIDE; | 70 view_manager::Node* root) MOJO_OVERRIDE; |
56 virtual void OnViewManagerDisconnected( | 71 virtual void OnViewManagerDisconnected( |
57 view_manager::ViewManager* view_manager) MOJO_OVERRIDE; | 72 view_manager::ViewManager* view_manager) MOJO_OVERRIDE; |
58 | 73 |
74 // Overridden from view_manager::NodeObserver: | |
75 virtual void OnTreeChanged( | |
76 const view_manager::NodeObserver::TreeChangeParams& params) MOJO_OVERRIDE; | |
77 virtual void OnNodeDestroyed(view_manager::Node* node) MOJO_OVERRIDE; | |
78 | |
59 // Overridden from WindowTreeHostMojoDelegate: | 79 // Overridden from WindowTreeHostMojoDelegate: |
60 virtual void CompositorContentsChanged(const SkBitmap& bitmap) MOJO_OVERRIDE; | 80 virtual void CompositorContentsChanged(const SkBitmap& bitmap) MOJO_OVERRIDE; |
61 | 81 |
82 // Overridden from aura::client::FocusChangeObserver: | |
83 virtual void OnWindowFocused(aura::Window* gained_focus, | |
84 aura::Window* lost_focus) MOJO_OVERRIDE; | |
85 | |
86 // Overridden from aura::client::ActivationChangeObserver: | |
87 virtual void OnWindowActivated(aura::Window* gained_active, | |
88 aura::Window* lost_active) MOJO_OVERRIDE; | |
89 | |
62 aura::Window* GetWindowForNodeId(view_manager::Id node) const; | 90 aura::Window* GetWindowForNodeId(view_manager::Id node) const; |
63 | 91 |
92 void RegisterSubtree(view_manager::Id id, aura::Window* parent); | |
sky
2014/07/17 23:15:42
Add descriptions.
| |
93 void UnregisterSubtree(view_manager::Id id); | |
94 | |
64 view_manager::ViewManager* view_manager_; | 95 view_manager::ViewManager* view_manager_; |
65 view_manager::Node* root_; | 96 view_manager::Node* root_; |
66 | 97 |
67 scoped_ptr<AuraInit> aura_init_; | 98 scoped_ptr<AuraInit> aura_init_; |
68 scoped_ptr<WindowTreeHostMojo> window_tree_host_; | 99 scoped_ptr<WindowTreeHostMojo> window_tree_host_; |
69 | 100 |
70 scoped_ptr<wm::ScopedCaptureClient> capture_client_; | 101 scoped_ptr<wm::ScopedCaptureClient> capture_client_; |
102 scoped_ptr<aura::client::FocusClient> focus_client_; | |
103 aura::client::ActivationClient* activation_client_; | |
71 | 104 |
72 Connections connections_; | 105 Connections connections_; |
106 NodeIdToWindowMap node_id_to_window_map_; | |
73 | 107 |
74 DISALLOW_COPY_AND_ASSIGN(WindowManagerApp); | 108 DISALLOW_COPY_AND_ASSIGN(WindowManagerApp); |
75 }; | 109 }; |
76 | 110 |
77 } // namespace mojo | 111 } // namespace mojo |
78 | 112 |
79 #endif // MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_APP_H_ | 113 #endif // MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_APP_H_ |
OLD | NEW |