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" |
(...skipping 14 matching lines...) Expand all Loading... |
25 | 25 |
26 namespace aura { | 26 namespace aura { |
27 namespace client { | 27 namespace client { |
28 class ActivationClient; | 28 class ActivationClient; |
29 class FocusClient; | 29 class FocusClient; |
30 } | 30 } |
31 class Window; | 31 class Window; |
32 } | 32 } |
33 | 33 |
34 namespace wm { | 34 namespace wm { |
| 35 class FocusRules; |
35 class ScopedCaptureClient; | 36 class ScopedCaptureClient; |
36 } | 37 } |
37 | 38 |
38 namespace mojo { | 39 namespace mojo { |
39 | 40 |
40 class AuraInit; | 41 class AuraInit; |
41 class DummyDelegate; | 42 class DummyDelegate; |
42 class WindowManagerServiceImpl; | 43 class WindowManagerServiceImpl; |
43 class WindowTreeHostMojo; | 44 class WindowTreeHostMojo; |
44 | 45 |
(...skipping 16 matching lines...) Expand all Loading... |
61 public WindowTreeHostMojoDelegate, | 62 public WindowTreeHostMojoDelegate, |
62 public ui::EventHandler, | 63 public ui::EventHandler, |
63 public aura::client::FocusChangeObserver, | 64 public aura::client::FocusChangeObserver, |
64 public aura::client::ActivationChangeObserver { | 65 public aura::client::ActivationChangeObserver { |
65 public: | 66 public: |
66 WindowManagerApp(ViewManagerDelegate* view_manager_delegate, | 67 WindowManagerApp(ViewManagerDelegate* view_manager_delegate, |
67 WindowManagerDelegate* window_manager_delegate); | 68 WindowManagerDelegate* window_manager_delegate); |
68 virtual ~WindowManagerApp(); | 69 virtual ~WindowManagerApp(); |
69 | 70 |
70 static View* GetViewForWindow(aura::Window* window); | 71 static View* GetViewForWindow(aura::Window* window); |
| 72 aura::Window* GetWindowForViewId(Id view); |
71 | 73 |
72 // Register/deregister new connections to the window manager service. | 74 // Register/deregister new connections to the window manager service. |
73 void AddConnection(WindowManagerServiceImpl* connection); | 75 void AddConnection(WindowManagerServiceImpl* connection); |
74 void RemoveConnection(WindowManagerServiceImpl* connection); | 76 void RemoveConnection(WindowManagerServiceImpl* connection); |
75 | 77 |
76 // These are canonical implementations of the window manager API methods. | 78 // These are canonical implementations of the window manager API methods. |
77 void SetCapture(Id view); | 79 void SetCapture(Id view); |
78 void FocusWindow(Id view); | 80 void FocusWindow(Id view); |
79 void ActivateWindow(Id view); | 81 void ActivateWindow(Id view); |
80 | 82 |
81 bool IsReady() const; | 83 bool IsReady() const; |
82 | 84 |
83 // A client of this object will use this accessor to gain access to the | 85 // A client of this object will use this accessor to gain access to the |
84 // aura::Window hierarchy and attach event handlers. | 86 // aura::Window hierarchy and attach event handlers. |
85 aura::WindowTreeHost* host() { return window_tree_host_.get(); } | 87 aura::WindowTreeHost* host() { return window_tree_host_.get(); } |
86 | 88 |
| 89 void InitFocus(wm::FocusRules* rules); |
| 90 |
87 // Overridden from ApplicationDelegate: | 91 // Overridden from ApplicationDelegate: |
88 virtual void Initialize(ApplicationImpl* impl) MOJO_OVERRIDE; | 92 virtual void Initialize(ApplicationImpl* impl) MOJO_OVERRIDE; |
89 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) | 93 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) |
90 MOJO_OVERRIDE; | 94 MOJO_OVERRIDE; |
91 | 95 |
92 private: | 96 private: |
93 typedef std::set<WindowManagerServiceImpl*> Connections; | 97 typedef std::set<WindowManagerServiceImpl*> Connections; |
94 typedef std::map<Id, aura::Window*> ViewIdToWindowMap; | 98 typedef std::map<Id, aura::Window*> ViewIdToWindowMap; |
95 | 99 |
96 // Overridden from ViewManagerDelegate: | 100 // Overridden from ViewManagerDelegate: |
(...skipping 26 matching lines...) Expand all Loading... |
123 virtual void OnEvent(ui::Event* event) MOJO_OVERRIDE; | 127 virtual void OnEvent(ui::Event* event) MOJO_OVERRIDE; |
124 | 128 |
125 // Overridden from aura::client::FocusChangeObserver: | 129 // Overridden from aura::client::FocusChangeObserver: |
126 virtual void OnWindowFocused(aura::Window* gained_focus, | 130 virtual void OnWindowFocused(aura::Window* gained_focus, |
127 aura::Window* lost_focus) MOJO_OVERRIDE; | 131 aura::Window* lost_focus) MOJO_OVERRIDE; |
128 | 132 |
129 // Overridden from aura::client::ActivationChangeObserver: | 133 // Overridden from aura::client::ActivationChangeObserver: |
130 virtual void OnWindowActivated(aura::Window* gained_active, | 134 virtual void OnWindowActivated(aura::Window* gained_active, |
131 aura::Window* lost_active) MOJO_OVERRIDE; | 135 aura::Window* lost_active) MOJO_OVERRIDE; |
132 | 136 |
133 aura::Window* GetWindowForViewId(Id view) const; | |
134 | |
135 // Creates an aura::Window for every view in the hierarchy beneath |view|, | 137 // Creates an aura::Window for every view in the hierarchy beneath |view|, |
136 // and adds to the registry so that it can be retrieved later via | 138 // and adds to the registry so that it can be retrieved later via |
137 // GetWindowForViewId(). | 139 // GetWindowForViewId(). |
138 // TODO(beng): perhaps View should have a property bag. | 140 // TODO(beng): perhaps View should have a property bag. |
139 void RegisterSubtree(View* view, aura::Window* parent); | 141 void RegisterSubtree(View* view, aura::Window* parent); |
140 // Deletes the aura::Windows associated with the hierarchy beneath |id|, | 142 // Deletes the aura::Windows associated with the hierarchy beneath |id|, |
141 // and removes from the registry. | 143 // and removes from the registry. |
142 void UnregisterSubtree(View* view); | 144 void UnregisterSubtree(View* view); |
143 | 145 |
144 InterfaceFactoryImplWithContext<WindowManagerServiceImpl, WindowManagerApp> | 146 InterfaceFactoryImplWithContext<WindowManagerServiceImpl, WindowManagerApp> |
(...skipping 17 matching lines...) Expand all Loading... |
162 ViewIdToWindowMap view_id_to_window_map_; | 164 ViewIdToWindowMap view_id_to_window_map_; |
163 | 165 |
164 scoped_ptr<DummyDelegate> dummy_delegate_; | 166 scoped_ptr<DummyDelegate> dummy_delegate_; |
165 | 167 |
166 DISALLOW_COPY_AND_ASSIGN(WindowManagerApp); | 168 DISALLOW_COPY_AND_ASSIGN(WindowManagerApp); |
167 }; | 169 }; |
168 | 170 |
169 } // namespace mojo | 171 } // namespace mojo |
170 | 172 |
171 #endif // MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_APP_H_ | 173 #endif // MOJO_SERVICES_WINDOW_MANAGER_WINDOW_MANAGER_APP_H_ |
OLD | NEW |