Index: mojo/services/public/cpp/view_manager/view_manager.h |
diff --git a/mojo/services/public/cpp/view_manager/view_manager.h b/mojo/services/public/cpp/view_manager/view_manager.h |
index fb492ec50663928b65ede76d989cea61144d39c4..46ad1b6a65f7f14854dfbc7252aca83b3c242d7a 100644 |
--- a/mojo/services/public/cpp/view_manager/view_manager.h |
+++ b/mojo/services/public/cpp/view_manager/view_manager.h |
@@ -7,13 +7,18 @@ |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/observer_list.h" |
+#include "mojo/public/cpp/bindings/callback.h" |
+#include "mojo/services/public/cpp/view_manager/view_tree_node.h" |
namespace mojo { |
class Shell; |
namespace services { |
namespace view_manager { |
+class ViewManagerObserver; |
class ViewManagerSynchronizer; |
+class ViewTreeNode; |
// Approximately encapsulates the View Manager service. |
// Owns a synchronizer that keeps a client model in sync with the service. |
@@ -25,11 +30,21 @@ class ViewManager { |
explicit ViewManager(Shell* shell); |
~ViewManager(); |
+ void BuildNodeTree(const mojo::Callback<void()>& callback); |
+ |
+ ViewTreeNode* tree() { return tree_.get(); } |
+ |
private: |
friend class ViewManagerPrivate; |
+ void AddObserver(ViewManagerObserver* observer); |
+ void RemoveObserver(ViewManagerObserver* observer); |
+ |
Shell* shell_; |
scoped_ptr<ViewManagerSynchronizer> synchronizer_; |
+ scoped_ptr<ViewTreeNode> tree_; |
+ |
+ ObserverList<ViewManagerObserver> observers_; |
DISALLOW_COPY_AND_ASSIGN(ViewManager); |
}; |