Index: mojo/services/public/cpp/view_manager/view_tree_node.h |
diff --git a/mojo/services/public/cpp/view_manager/view_tree_node.h b/mojo/services/public/cpp/view_manager/view_tree_node.h |
index 280aaf87e5604379f62d93e7d7008f5d8e595afb..c5914dd346a0f1152f80b334164d9bde3228dec6 100644 |
--- a/mojo/services/public/cpp/view_manager/view_tree_node.h |
+++ b/mojo/services/public/cpp/view_manager/view_tree_node.h |
@@ -22,15 +22,13 @@ class ViewTreeNode { |
public: |
typedef std::vector<ViewTreeNode*> Children; |
- explicit ViewTreeNode(ViewManager* manager); |
- ViewTreeNode(); // Used for tests. |
- ~ViewTreeNode(); |
+ static ViewTreeNode* Create(ViewManager* view_manager); |
+ |
+ // Destroys this node and all its children. |
+ void Destroy(); |
// Configuration. |
TransportNodeId id() const { return id_; } |
- void set_owned_by_parent(bool owned_by_parent) { |
- owned_by_parent_ = owned_by_parent; |
- } |
// Observation. |
void AddObserver(ViewTreeNodeObserver* observer); |
@@ -48,15 +46,22 @@ class ViewTreeNode { |
ViewTreeNode* GetChildById(TransportNodeId id); |
+ protected: |
+ // This class is subclassed only by test classes that provide a public ctor. |
+ ViewTreeNode(); |
+ ~ViewTreeNode(); |
+ |
private: |
friend class ViewTreeNodePrivate; |
+ explicit ViewTreeNode(ViewManager* manager); |
+ |
+ void LocalDestroy(); |
void LocalAddChild(ViewTreeNode* child); |
void LocalRemoveChild(ViewTreeNode* child); |
ViewManager* manager_; |
TransportNodeId id_; |
- bool owned_by_parent_; |
ViewTreeNode* parent_; |
Children children_; |