Index: mojo/services/public/cpp/view_manager/view.h |
diff --git a/mojo/services/public/cpp/view_manager/view.h b/mojo/services/public/cpp/view_manager/view.h |
index a0bba820542167b5eb42fe2bfa7cefb126a4da92..12ba55cb129238cca06f93822de97a3f46613f80 100644 |
--- a/mojo/services/public/cpp/view_manager/view.h |
+++ b/mojo/services/public/cpp/view_manager/view.h |
@@ -6,14 +6,45 @@ |
#define MOJO_SERVICES_PUBLIC_CPP_VIEW_MANAGER_VIEW_H_ |
#include "base/basictypes.h" |
+#include "base/observer_list.h" |
+#include "mojo/services/public/cpp/view_manager/view_manager_types.h" |
namespace mojo { |
namespace services { |
namespace view_manager { |
+class ViewManager; |
+class ViewObserver; |
+class ViewTreeNode; |
+ |
+// Views are owned by the ViewManager. |
class View { |
public: |
+ static View* Create(ViewManager* manager); |
+ |
+ void Destroy(); |
+ |
+ TransportViewId id() const { return id_; } |
+ ViewTreeNode* node() { return node_; } |
+ |
+ void AddObserver(ViewObserver* observer); |
+ void RemoveObserver(ViewObserver* observer); |
+ |
private: |
+ friend class ViewPrivate; |
+ |
+ explicit View(ViewManager* manager); |
+ View(); |
+ ~View(); |
+ |
+ void LocalDestroy(); |
+ |
+ TransportViewId id_; |
+ ViewTreeNode* node_; |
+ ViewManager* manager_; |
+ |
+ ObserverList<ViewObserver> observers_; |
+ |
DISALLOW_COPY_AND_ASSIGN(View); |
}; |