Index: trunk/src/mojo/services/public/cpp/view_manager/lib/view_tree_node.cc |
=================================================================== |
--- trunk/src/mojo/services/public/cpp/view_manager/lib/view_tree_node.cc (revision 270124) |
+++ trunk/src/mojo/services/public/cpp/view_manager/lib/view_tree_node.cc (working copy) |
@@ -6,17 +6,13 @@ |
#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_private.h" |
#include "mojo/services/public/cpp/view_manager/lib/view_tree_node_private.h" |
-#include "mojo/services/public/cpp/view_manager/view.h" |
#include "mojo/services/public/cpp/view_manager/view_tree_node_observer.h" |
namespace mojo { |
namespace services { |
namespace view_manager { |
-namespace { |
- |
void NotifyViewTreeChangeAtReceiver( |
ViewTreeNode* receiver, |
const ViewTreeNodeObserver::TreeChangeParams& params) { |
@@ -91,64 +87,6 @@ |
} |
} |
-class ScopedSetActiveViewNotifier { |
- public: |
- ScopedSetActiveViewNotifier(ViewTreeNode* node, |
- View* old_view, |
- View* new_view) |
- : node_(node), |
- old_view_(old_view), |
- new_view_(new_view) { |
- FOR_EACH_OBSERVER( |
- ViewTreeNodeObserver, |
- *ViewTreeNodePrivate(node).observers(), |
- OnNodeActiveViewChange(node_, |
- old_view_, |
- new_view_, |
- ViewTreeNodeObserver::DISPOSITION_CHANGING)); |
- } |
- ~ScopedSetActiveViewNotifier() { |
- FOR_EACH_OBSERVER( |
- ViewTreeNodeObserver, |
- *ViewTreeNodePrivate(node_).observers(), |
- OnNodeActiveViewChange(node_, |
- old_view_, |
- new_view_, |
- ViewTreeNodeObserver::DISPOSITION_CHANGED)); |
- } |
- |
- private: |
- ViewTreeNode* node_; |
- View* old_view_; |
- View* new_view_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ScopedSetActiveViewNotifier); |
-}; |
- |
-class ScopedDestructionNotifier { |
- public: |
- explicit ScopedDestructionNotifier(ViewTreeNode* node) |
- : node_(node) { |
- FOR_EACH_OBSERVER( |
- ViewTreeNodeObserver, |
- *ViewTreeNodePrivate(node_).observers(), |
- OnNodeDestroy(node_, ViewTreeNodeObserver::DISPOSITION_CHANGING)); |
- } |
- ~ScopedDestructionNotifier() { |
- FOR_EACH_OBSERVER( |
- ViewTreeNodeObserver, |
- *ViewTreeNodePrivate(node_).observers(), |
- OnNodeDestroy(node_, ViewTreeNodeObserver::DISPOSITION_CHANGED)); |
- } |
- |
- private: |
- ViewTreeNode* node_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ScopedDestructionNotifier); |
-}; |
- |
-} // namespace |
- |
//////////////////////////////////////////////////////////////////////////////// |
// ViewTreeNode, public: |
@@ -176,24 +114,18 @@ |
} |
void ViewTreeNode::AddChild(ViewTreeNode* child) { |
- if (manager_) |
- CHECK_EQ(ViewTreeNodePrivate(child).view_manager(), manager_); |
LocalAddChild(child); |
if (manager_) |
ViewManagerPrivate(manager_).synchronizer()->AddChild(child->id(), id_); |
} |
void ViewTreeNode::RemoveChild(ViewTreeNode* child) { |
- if (manager_) |
- CHECK_EQ(ViewTreeNodePrivate(child).view_manager(), manager_); |
LocalRemoveChild(child); |
if (manager_) |
ViewManagerPrivate(manager_).synchronizer()->RemoveChild(child->id(), id_); |
} |
bool ViewTreeNode::Contains(ViewTreeNode* child) const { |
- if (manager_) |
- CHECK_EQ(ViewTreeNodePrivate(child).view_manager(), manager_); |
for (ViewTreeNode* p = child->parent(); p; p = p->parent()) { |
if (p == this) |
return true; |
@@ -214,29 +146,25 @@ |
return NULL; |
} |
-void ViewTreeNode::SetActiveView(View* view) { |
- if (manager_) |
- CHECK_EQ(ViewPrivate(view).view_manager(), manager_); |
- LocalSetActiveView(view); |
- if (manager_) { |
- ViewManagerPrivate(manager_).synchronizer()->SetActiveView( |
- id_, active_view_->id()); |
- } |
-} |
- |
//////////////////////////////////////////////////////////////////////////////// |
// ViewTreeNode, protected: |
ViewTreeNode::ViewTreeNode() |
: manager_(NULL), |
id_(-1), |
- parent_(NULL), |
- active_view_(NULL) {} |
+ parent_(NULL) {} |
ViewTreeNode::~ViewTreeNode() { |
- ScopedDestructionNotifier notifier(this); |
+ FOR_EACH_OBSERVER( |
+ ViewTreeNodeObserver, |
+ observers_, |
+ OnNodeDestroy(this, ViewTreeNodeObserver::DISPOSITION_CHANGING)); |
if (parent_) |
parent_->LocalRemoveChild(this); |
+ FOR_EACH_OBSERVER( |
+ ViewTreeNodeObserver, |
+ observers_, |
+ OnNodeDestroy(this, ViewTreeNodeObserver::DISPOSITION_CHANGED)); |
if (manager_) |
ViewManagerPrivate(manager_).RemoveNode(id_); |
} |
@@ -247,8 +175,7 @@ |
ViewTreeNode::ViewTreeNode(ViewManager* manager) |
: manager_(manager), |
id_(ViewManagerPrivate(manager).synchronizer()->CreateViewTreeNode()), |
- parent_(NULL), |
- active_view_(NULL) {} |
+ parent_(NULL) {} |
void ViewTreeNode::LocalDestroy() { |
delete this; |
@@ -268,15 +195,6 @@ |
RemoveChildImpl(child, &children_); |
} |
-void ViewTreeNode::LocalSetActiveView(View* view) { |
- ScopedSetActiveViewNotifier notifier(this, active_view_, view); |
- if (active_view_) |
- ViewPrivate(active_view_).set_node(NULL); |
- active_view_ = view; |
- if (active_view_) |
- ViewPrivate(active_view_).set_node(this); |
-} |
- |
} // namespace view_manager |
} // namespace services |
} // namespace mojo |