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

Side by Side Diff: mojo/services/public/cpp/view_manager/lib/view_manager_private.cc

Issue 311423003: Provide an API to the example window manager app that supports closing a window. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/services/public/cpp/view_manager/lib/view_manager_private.h" 5 #include "mojo/services/public/cpp/view_manager/lib/view_manager_private.h"
6 6
7 #include "mojo/services/public/cpp/view_manager/lib/view_tree_node_private.h" 7 #include "mojo/services/public/cpp/view_manager/lib/view_tree_node_private.h"
8 #include "mojo/services/public/cpp/view_manager/view_tree_node_observer.h" 8 #include "mojo/services/public/cpp/view_manager/view_tree_node_observer.h"
9 9
10 namespace mojo { 10 namespace mojo {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 void ViewManagerPrivate::AddRoot(ViewTreeNode* root) { 43 void ViewManagerPrivate::AddRoot(ViewTreeNode* root) {
44 // A new root must not already exist as a root or be contained by an existing 44 // A new root must not already exist as a root or be contained by an existing
45 // hierarchy visible to this view manager. 45 // hierarchy visible to this view manager.
46 std::vector<ViewTreeNode*>::const_iterator it = manager_->roots().begin(); 46 std::vector<ViewTreeNode*>::const_iterator it = manager_->roots().begin();
47 for (; it != manager_->roots().end(); ++it) { 47 for (; it != manager_->roots().end(); ++it) {
48 if (*it == root || (*it)->Contains(root)) 48 if (*it == root || (*it)->Contains(root))
49 return; 49 return;
50 } 50 }
51 manager_->roots_.push_back(root); 51 manager_->roots_.push_back(root);
52 root->AddObserver(new RootObserver(root)); 52 root->AddObserver(new RootObserver(root));
53 manager_->root_added_callback_.Run(manager_); 53 if (!manager_->root_added_callback_.is_null())
54 manager_->root_added_callback_.Run(manager_, root);
54 } 55 }
55 56
56 void ViewManagerPrivate::RemoveRoot(ViewTreeNode* root) { 57 void ViewManagerPrivate::RemoveRoot(ViewTreeNode* root) {
57 std::vector<ViewTreeNode*>::iterator it = 58 std::vector<ViewTreeNode*>::iterator it =
58 std::find(manager_->roots_.begin(), manager_->roots_.end(), root); 59 std::find(manager_->roots_.begin(), manager_->roots_.end(), root);
59 if (it != manager_->roots_.end()) 60 if (it != manager_->roots_.end()) {
60 manager_->roots_.erase(it); 61 manager_->roots_.erase(it);
62 if (!manager_->root_removed_callback_.is_null())
63 manager_->root_removed_callback_.Run(manager_, root);
64 }
61 } 65 }
62 66
63 void ViewManagerPrivate::AddNode(TransportNodeId node_id, ViewTreeNode* node) { 67 void ViewManagerPrivate::AddNode(TransportNodeId node_id, ViewTreeNode* node) {
64 DCHECK(!manager_->nodes_[node_id]); 68 DCHECK(!manager_->nodes_[node_id]);
65 manager_->nodes_[node_id] = node; 69 manager_->nodes_[node_id] = node;
66 } 70 }
67 71
68 void ViewManagerPrivate::RemoveNode(TransportNodeId node_id) { 72 void ViewManagerPrivate::RemoveNode(TransportNodeId node_id) {
69 ViewManager::IdToNodeMap::iterator it = manager_->nodes_.find(node_id); 73 ViewManager::IdToNodeMap::iterator it = manager_->nodes_.find(node_id);
70 if (it != manager_->nodes_.end()) 74 if (it != manager_->nodes_.end())
71 manager_->nodes_.erase(it); 75 manager_->nodes_.erase(it);
72 } 76 }
73 77
74 void ViewManagerPrivate::AddView(TransportViewId view_id, View* view) { 78 void ViewManagerPrivate::AddView(TransportViewId view_id, View* view) {
75 DCHECK(!manager_->views_[view_id]); 79 DCHECK(!manager_->views_[view_id]);
76 manager_->views_[view_id] = view; 80 manager_->views_[view_id] = view;
77 } 81 }
78 82
79 void ViewManagerPrivate::RemoveView(TransportViewId view_id) { 83 void ViewManagerPrivate::RemoveView(TransportViewId view_id) {
80 ViewManager::IdToViewMap::iterator it = manager_->views_.find(view_id); 84 ViewManager::IdToViewMap::iterator it = manager_->views_.find(view_id);
81 if (it != manager_->views_.end()) 85 if (it != manager_->views_.end())
82 manager_->views_.erase(it); 86 manager_->views_.erase(it);
83 } 87 }
84 88
85 } // namespace view_manager 89 } // namespace view_manager
86 } // namespace mojo 90 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698