Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(815)

Unified Diff: mojo/services/public/cpp/view_manager/lib/view_tree_node.cc

Issue 258623005: First step at synchronizing client model changes with service. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/services/public/cpp/view_manager/lib/view_tree_node.cc
diff --git a/mojo/services/public/cpp/view_manager/lib/view_tree_node.cc b/mojo/services/public/cpp/view_manager/lib/view_tree_node.cc
index 9194dc4e3ae61b2088650d90cbe305411b8cbbea..d695ed4a45acb52a6f91fad8035a904892664a91 100644
--- a/mojo/services/public/cpp/view_manager/lib/view_tree_node.cc
+++ b/mojo/services/public/cpp/view_manager/lib/view_tree_node.cc
@@ -4,6 +4,8 @@
#include "mojo/services/public/cpp/view_manager/view_tree_node.h"
+#include "mojo/services/public/cpp/view_manager/lib/view_manager_private.h"
+#include "mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h"
#include "mojo/services/public/cpp/view_manager/lib/view_tree_node_private.h"
#include "mojo/services/public/cpp/view_manager/view_tree_node_observer.h"
@@ -88,7 +90,17 @@ void RemoveChildImpl(ViewTreeNode* child, ViewTreeNode::Children* children) {
////////////////////////////////////////////////////////////////////////////////
// ViewTreeNode, public:
-ViewTreeNode::ViewTreeNode() : owned_by_parent_(true), parent_(NULL) {}
+ViewTreeNode::ViewTreeNode()
+ : manager_(NULL),
+ id_(-1),
+ owned_by_parent_(true),
+ parent_(NULL) {}
+
+ViewTreeNode::ViewTreeNode(ViewManager* manager)
+ : manager_(manager),
+ id_(ViewManagerPrivate(manager).synchronizer()->CreateViewTreeNode()),
+ owned_by_parent_(true),
+ parent_(NULL) {}
ViewTreeNode::~ViewTreeNode() {
while (!children_.empty()) {
@@ -122,12 +134,14 @@ void ViewTreeNode::AddChild(ViewTreeNode* child) {
RemoveChildImpl(child, &child->parent_->children_);
children_.push_back(child);
child->parent_ = this;
+ ViewManagerPrivate(manager_).synchronizer()->AddChild(child->id(), id_);
}
void ViewTreeNode::RemoveChild(ViewTreeNode* child) {
DCHECK_EQ(this, child->parent());
ScopedTreeNotifier(child, this, NULL);
RemoveChildImpl(child, &children_);
+ ViewManagerPrivate(manager_).synchronizer()->RemoveChild(child->id(), id_);
}
bool ViewTreeNode::Contains(ViewTreeNode* child) const {

Powered by Google App Engine
This is Rietveld 408576698