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

Unified Diff: mojo/services/public/cpp/view_manager/view.h

Issue 272833002: View synchronization (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 7 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/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);
};

Powered by Google App Engine
This is Rietveld 408576698