| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 COMPONENTS_MUS_WS_WINDOW_TREE_HOST_IMPL_H_ | 5 #ifndef COMPONENTS_MUS_WS_WINDOW_TREE_HOST_IMPL_H_ |
| 6 #define COMPONENTS_MUS_WS_WINDOW_TREE_HOST_IMPL_H_ | 6 #define COMPONENTS_MUS_WS_WINDOW_TREE_HOST_IMPL_H_ |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "components/mus/common/types.h" | 10 #include "components/mus/common/types.h" |
| 11 #include "components/mus/public/interfaces/window_tree_host.mojom.h" | 11 #include "components/mus/public/interfaces/window_tree_host.mojom.h" |
| 12 #include "components/mus/ws/display_manager.h" | 12 #include "components/mus/ws/display_manager.h" |
| 13 #include "components/mus/ws/event_dispatcher.h" | 13 #include "components/mus/ws/event_dispatcher.h" |
| 14 #include "components/mus/ws/event_dispatcher_delegate.h" | 14 #include "components/mus/ws/event_dispatcher_delegate.h" |
| 15 #include "components/mus/ws/focus_controller_delegate.h" | 15 #include "components/mus/ws/focus_controller_observer.h" |
| 16 #include "components/mus/ws/server_window.h" | 16 #include "components/mus/ws/server_window.h" |
| 17 #include "components/mus/ws/server_window_observer.h" | 17 #include "components/mus/ws/server_window_observer.h" |
| 18 | 18 |
| 19 namespace mus { | 19 namespace mus { |
| 20 namespace ws { | 20 namespace ws { |
| 21 | 21 |
| 22 class ConnectionManager; | 22 class ConnectionManager; |
| 23 class FocusController; | 23 class FocusController; |
| 24 class WindowTreeHostDelegate; | 24 class WindowTreeHostDelegate; |
| 25 class WindowTreeImpl; | 25 class WindowTreeImpl; |
| 26 | 26 |
| 27 // WindowTreeHostImpl is an implementation of the WindowTreeHost interface. | 27 // WindowTreeHostImpl is an implementation of the WindowTreeHost interface. |
| 28 // It serves as a top level root window for a window. Its lifetime is managed by | 28 // It serves as a top level root window for a window. Its lifetime is managed by |
| 29 // ConnectionManager. If the connection to the client breaks or if the user | 29 // ConnectionManager. If the connection to the client breaks or if the user |
| 30 // closes the associated window, then this object and related state will be | 30 // closes the associated window, then this object and related state will be |
| 31 // deleted. | 31 // deleted. |
| 32 class WindowTreeHostImpl : public DisplayManagerDelegate, | 32 class WindowTreeHostImpl : public DisplayManagerDelegate, |
| 33 public mojom::WindowTreeHost, | 33 public mojom::WindowTreeHost, |
| 34 public FocusControllerDelegate, | 34 public FocusControllerObserver, |
| 35 public EventDispatcherDelegate, | 35 public EventDispatcherDelegate, |
| 36 public ServerWindowObserver { | 36 public ServerWindowObserver { |
| 37 public: | 37 public: |
| 38 // TODO(fsamuel): All these parameters are just plumbing for creating | 38 // TODO(fsamuel): All these parameters are just plumbing for creating |
| 39 // DisplayManagers. We should probably just store these common parameters | 39 // DisplayManagers. We should probably just store these common parameters |
| 40 // in the DisplayManagerFactory and pass them along on DisplayManager::Create. | 40 // in the DisplayManagerFactory and pass them along on DisplayManager::Create. |
| 41 WindowTreeHostImpl(mojom::WindowTreeHostClientPtr client, | 41 WindowTreeHostImpl(mojom::WindowTreeHostClientPtr client, |
| 42 ConnectionManager* connection_manager, | 42 ConnectionManager* connection_manager, |
| 43 mojo::ApplicationImpl* app_impl, | 43 mojo::ApplicationImpl* app_impl, |
| 44 const scoped_refptr<GpuState>& gpu_state, | 44 const scoped_refptr<GpuState>& gpu_state, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 // DisplayManagerDelegate: | 101 // DisplayManagerDelegate: |
| 102 ServerWindow* GetRootWindow() override; | 102 ServerWindow* GetRootWindow() override; |
| 103 void OnEvent(mojom::EventPtr event) override; | 103 void OnEvent(mojom::EventPtr event) override; |
| 104 void OnDisplayClosed() override; | 104 void OnDisplayClosed() override; |
| 105 void OnViewportMetricsChanged( | 105 void OnViewportMetricsChanged( |
| 106 const mojom::ViewportMetrics& old_metrics, | 106 const mojom::ViewportMetrics& old_metrics, |
| 107 const mojom::ViewportMetrics& new_metrics) override; | 107 const mojom::ViewportMetrics& new_metrics) override; |
| 108 void OnTopLevelSurfaceChanged(cc::SurfaceId surface_id) override; | 108 void OnTopLevelSurfaceChanged(cc::SurfaceId surface_id) override; |
| 109 void OnCompositorFrameDrawn() override; | 109 void OnCompositorFrameDrawn() override; |
| 110 | 110 |
| 111 // FocusControllerDelegate: | 111 // FocusControllerObserver: |
| 112 void OnFocusChanged(ServerWindow* old_focused_window, | 112 void OnFocusChanged(FocusControllerChangeSource change_source, |
| 113 ServerWindow* old_focused_window, |
| 113 ServerWindow* new_focused_window) override; | 114 ServerWindow* new_focused_window) override; |
| 114 | 115 |
| 115 // EventDispatcherDelegate: | 116 // EventDispatcherDelegate: |
| 116 void OnAccelerator(uint32_t accelerator_id, mojom::EventPtr event) override; | 117 void OnAccelerator(uint32_t accelerator_id, mojom::EventPtr event) override; |
| 117 void SetFocusedWindowFromEventDispatcher(ServerWindow* window) override; | 118 void SetFocusedWindowFromEventDispatcher(ServerWindow* window) override; |
| 118 ServerWindow* GetFocusedWindowForEventDispatcher() override; | 119 ServerWindow* GetFocusedWindowForEventDispatcher() override; |
| 119 void DispatchInputEventToWindow(ServerWindow* target, | 120 void DispatchInputEventToWindow(ServerWindow* target, |
| 120 bool in_nonclient_area, | 121 bool in_nonclient_area, |
| 121 mojom::EventPtr event) override; | 122 mojom::EventPtr event) override; |
| 122 | 123 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 136 // draws. | 137 // draws. |
| 137 std::set<ServerWindow*> windows_needing_frame_destruction_; | 138 std::set<ServerWindow*> windows_needing_frame_destruction_; |
| 138 | 139 |
| 139 DISALLOW_COPY_AND_ASSIGN(WindowTreeHostImpl); | 140 DISALLOW_COPY_AND_ASSIGN(WindowTreeHostImpl); |
| 140 }; | 141 }; |
| 141 | 142 |
| 142 } // namespace ws | 143 } // namespace ws |
| 143 } // namespace mus | 144 } // namespace mus |
| 144 | 145 |
| 145 #endif // COMPONENTS_MUS_WS_WINDOW_TREE_HOST_IMPL_H_ | 146 #endif // COMPONENTS_MUS_WS_WINDOW_TREE_HOST_IMPL_H_ |
| OLD | NEW |