| 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_VIEW_MANAGER_ROOT_NODE_MANAGER_H_ | 5 #ifndef MOJO_SERVICES_VIEW_MANAGER_ROOT_NODE_MANAGER_H_ |
| 6 #define MOJO_SERVICES_VIEW_MANAGER_ROOT_NODE_MANAGER_H_ | 6 #define MOJO_SERVICES_VIEW_MANAGER_ROOT_NODE_MANAGER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 | 107 |
| 108 // Returns the connection by id. | 108 // Returns the connection by id. |
| 109 ViewManagerServiceImpl* GetConnection(ConnectionSpecificId connection_id); | 109 ViewManagerServiceImpl* GetConnection(ConnectionSpecificId connection_id); |
| 110 | 110 |
| 111 // Returns the Node identified by |id|. | 111 // Returns the Node identified by |id|. |
| 112 Node* GetNode(const NodeId& id); | 112 Node* GetNode(const NodeId& id); |
| 113 | 113 |
| 114 // Returns the View identified by |id|. | 114 // Returns the View identified by |id|. |
| 115 View* GetView(const ViewId& id); | 115 View* GetView(const ViewId& id); |
| 116 | 116 |
| 117 Node* root() { return &root_; } | 117 Node* root() { return root_.get(); } |
| 118 | 118 |
| 119 bool IsProcessingChange() const { return current_change_ != NULL; } | 119 bool IsProcessingChange() const { return current_change_ != NULL; } |
| 120 | 120 |
| 121 bool is_processing_delete_node() const { | 121 bool is_processing_delete_node() const { |
| 122 return current_change_ && current_change_->is_delete_node(); } | 122 return current_change_ && current_change_->is_delete_node(); } |
| 123 | 123 |
| 124 // Invoked when a connection messages a client about the change. This is used | 124 // Invoked when a connection messages a client about the change. This is used |
| 125 // to avoid sending ServerChangeIdAdvanced() unnecessarily. | 125 // to avoid sending ServerChangeIdAdvanced() unnecessarily. |
| 126 void OnConnectionMessagedClient(ConnectionSpecificId id); | 126 void OnConnectionMessagedClient(ConnectionSpecificId id); |
| 127 | 127 |
| 128 // Returns true if OnConnectionMessagedClient() was invoked for id. | 128 // Returns true if OnConnectionMessagedClient() was invoked for id. |
| 129 bool DidConnectionMessageClient(ConnectionSpecificId id) const; | 129 bool DidConnectionMessageClient(ConnectionSpecificId id) const; |
| 130 | 130 |
| 131 ViewManagerServiceImpl* GetConnectionByCreator( | 131 ViewManagerServiceImpl* GetConnectionByCreator( |
| 132 ConnectionSpecificId creator_id, | 132 ConnectionSpecificId creator_id, |
| 133 const std::string& url) const; | 133 const std::string& url) const; |
| 134 | 134 |
| 135 void DispatchViewInputEventToWindowManager(const View* view, | 135 void DispatchViewInputEventToWindowManager(const View* view, |
| 136 const ui::Event* event); | 136 const ui::Event* event); |
| 137 | 137 |
| 138 // These functions trivially delegate to all ViewManagerServiceImpls, which in | 138 // These functions trivially delegate to all ViewManagerServiceImpls, which in |
| 139 // term notify their clients. | 139 // term notify their clients. |
| 140 void ProcessNodeDestroyed(Node* node); |
| 140 void ProcessNodeBoundsChanged(const Node* node, | 141 void ProcessNodeBoundsChanged(const Node* node, |
| 141 const gfx::Rect& old_bounds, | 142 const gfx::Rect& old_bounds, |
| 142 const gfx::Rect& new_bounds); | 143 const gfx::Rect& new_bounds); |
| 143 void ProcessNodeHierarchyChanged(const Node* node, | 144 void ProcessNodeHierarchyChanged(const Node* node, |
| 144 const Node* new_parent, | 145 const Node* new_parent, |
| 145 const Node* old_parent); | 146 const Node* old_parent); |
| 146 void ProcessNodeReorder(const Node* node, | 147 void ProcessNodeReorder(const Node* node, |
| 147 const Node* relative_node, | 148 const Node* relative_node, |
| 148 const OrderDirection direction); | 149 const OrderDirection direction); |
| 149 void ProcessNodeViewReplaced(const Node* node, | 150 void ProcessNodeViewReplaced(const Node* node, |
| (...skipping 30 matching lines...) Expand all Loading... |
| 180 bool IsChangeSource(ConnectionSpecificId connection_id) const { | 181 bool IsChangeSource(ConnectionSpecificId connection_id) const { |
| 181 return current_change_ && current_change_->connection_id() == connection_id; | 182 return current_change_ && current_change_->connection_id() == connection_id; |
| 182 } | 183 } |
| 183 | 184 |
| 184 // Implementation of the two embed variants. | 185 // Implementation of the two embed variants. |
| 185 ViewManagerServiceImpl* EmbedImpl(ConnectionSpecificId creator_id, | 186 ViewManagerServiceImpl* EmbedImpl(ConnectionSpecificId creator_id, |
| 186 const String& url, | 187 const String& url, |
| 187 const Array<Id>& node_ids); | 188 const Array<Id>& node_ids); |
| 188 | 189 |
| 189 // Overridden from NodeDelegate: | 190 // Overridden from NodeDelegate: |
| 191 virtual void OnNodeDestroyed(const Node* node) OVERRIDE; |
| 190 virtual void OnNodeHierarchyChanged(const Node* node, | 192 virtual void OnNodeHierarchyChanged(const Node* node, |
| 191 const Node* new_parent, | 193 const Node* new_parent, |
| 192 const Node* old_parent) OVERRIDE; | 194 const Node* old_parent) OVERRIDE; |
| 193 virtual void OnNodeBoundsChanged(const Node* node, | 195 virtual void OnNodeBoundsChanged(const Node* node, |
| 194 const gfx::Rect& old_bounds, | 196 const gfx::Rect& old_bounds, |
| 195 const gfx::Rect& new_bounds) OVERRIDE; | 197 const gfx::Rect& new_bounds) OVERRIDE; |
| 196 virtual void OnNodeViewReplaced(const Node* node, | 198 virtual void OnNodeViewReplaced(const Node* node, |
| 197 const View* new_view, | 199 const View* new_view, |
| 198 const View* old_view) OVERRIDE; | 200 const View* old_view) OVERRIDE; |
| 199 virtual void OnViewInputEvent(const View* view, | 201 virtual void OnViewInputEvent(const View* view, |
| 200 const ui::Event* event) OVERRIDE; | 202 const ui::Event* event) OVERRIDE; |
| 201 | 203 |
| 202 Context context_; | 204 Context context_; |
| 203 | 205 |
| 204 ApplicationConnection* app_connection_; | 206 ApplicationConnection* app_connection_; |
| 205 | 207 |
| 206 // ID to use for next ViewManagerServiceImpl. | 208 // ID to use for next ViewManagerServiceImpl. |
| 207 ConnectionSpecificId next_connection_id_; | 209 ConnectionSpecificId next_connection_id_; |
| 208 | 210 |
| 209 Id next_server_change_id_; | 211 Id next_server_change_id_; |
| 210 | 212 |
| 211 // Set of ViewManagerServiceImpls. | 213 // Set of ViewManagerServiceImpls. |
| 212 ConnectionMap connection_map_; | 214 ConnectionMap connection_map_; |
| 213 | 215 |
| 214 RootViewManager root_view_manager_; | 216 RootViewManager root_view_manager_; |
| 215 | 217 |
| 216 // Root node. | 218 // Root node. |
| 217 Node root_; | 219 scoped_ptr<Node> root_; |
| 218 | 220 |
| 219 // Set of ViewManagerServiceImpls created by way of Connect(). These have to | 221 // Set of ViewManagerServiceImpls created by way of Connect(). These have to |
| 220 // be explicitly destroyed. | 222 // be explicitly destroyed. |
| 221 std::set<ViewManagerServiceImpl*> connections_created_by_connect_; | 223 std::set<ViewManagerServiceImpl*> connections_created_by_connect_; |
| 222 | 224 |
| 223 // If non-null we're processing a change. The ScopedChange is not owned by us | 225 // If non-null we're processing a change. The ScopedChange is not owned by us |
| 224 // (it's created on the stack by ViewManagerServiceImpl). | 226 // (it's created on the stack by ViewManagerServiceImpl). |
| 225 ScopedChange* current_change_; | 227 ScopedChange* current_change_; |
| 226 | 228 |
| 227 DISALLOW_COPY_AND_ASSIGN(RootNodeManager); | 229 DISALLOW_COPY_AND_ASSIGN(RootNodeManager); |
| 228 }; | 230 }; |
| 229 | 231 |
| 230 } // namespace service | 232 } // namespace service |
| 231 } // namespace view_manager | 233 } // namespace view_manager |
| 232 } // namespace mojo | 234 } // namespace mojo |
| 233 | 235 |
| 234 #endif // MOJO_SERVICES_VIEW_MANAGER_ROOT_NODE_MANAGER_H_ | 236 #endif // MOJO_SERVICES_VIEW_MANAGER_ROOT_NODE_MANAGER_H_ |
| OLD | NEW |