| Index: trunk/src/mojo/services/public/cpp/view_manager/view_tree_node.h
|
| ===================================================================
|
| --- trunk/src/mojo/services/public/cpp/view_manager/view_tree_node.h (revision 269420)
|
| +++ trunk/src/mojo/services/public/cpp/view_manager/view_tree_node.h (working copy)
|
| @@ -18,21 +18,19 @@
|
| class ViewManager;
|
| class ViewTreeNodeObserver;
|
|
|
| -// ViewTreeNodes are owned by the ViewManager.
|
| -// TODO(beng): Right now, you'll have to implement a ViewTreeNodeObserver to
|
| -// track destruction and NULL any pointers you have.
|
| -// Investigate some kind of smart pointer or weak pointer for these.
|
| class ViewTreeNode {
|
| public:
|
| typedef std::vector<ViewTreeNode*> Children;
|
|
|
| - static ViewTreeNode* Create(ViewManager* view_manager);
|
| + explicit ViewTreeNode(ViewManager* manager);
|
| + ViewTreeNode(); // Used for tests.
|
| + ~ViewTreeNode();
|
|
|
| - // 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);
|
| @@ -50,22 +48,15 @@
|
|
|
| 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_;
|
|
|
|
|