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

Side by Side Diff: ui/base/models/tree_node_model.h

Issue 1081103008: Update {virtual,override} to follow C++11 style in ui. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef UI_BASE_MODELS_TREE_NODE_MODEL_H_ 5 #ifndef UI_BASE_MODELS_TREE_NODE_MODEL_H_
6 #define UI_BASE_MODELS_TREE_NODE_MODEL_H_ 6 #define UI_BASE_MODELS_TREE_NODE_MODEL_H_
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 // TreeNode ------------------------------------------------------------------- 61 // TreeNode -------------------------------------------------------------------
62 62
63 template <class NodeType> 63 template <class NodeType>
64 class TreeNode : public TreeModelNode { 64 class TreeNode : public TreeModelNode {
65 public: 65 public:
66 TreeNode() : parent_(NULL) {} 66 TreeNode() : parent_(NULL) {}
67 67
68 explicit TreeNode(const base::string16& title) 68 explicit TreeNode(const base::string16& title)
69 : title_(title), parent_(NULL) {} 69 : title_(title), parent_(NULL) {}
70 70
71 virtual ~TreeNode() {} 71 ~TreeNode() override {}
72 72
73 // Adds |node| as a child of this node, at |index|. 73 // Adds |node| as a child of this node, at |index|.
74 virtual void Add(NodeType* node, int index) { 74 virtual void Add(NodeType* node, int index) {
75 DCHECK(node); 75 DCHECK(node);
76 DCHECK_GE(index, 0); 76 DCHECK_GE(index, 0);
77 DCHECK_LE(index, child_count()); 77 DCHECK_LE(index, child_count());
78 // If |node| has a parent, remove it from its parent. 78 // If |node| has a parent, remove it from its parent.
79 NodeType* parent = node->parent_; 79 NodeType* parent = node->parent_;
80 if (parent) 80 if (parent)
81 parent->Remove(node); 81 parent->Remove(node);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 DCHECK(node); 147 DCHECK(node);
148 typename std::vector<NodeType*>::const_iterator i = 148 typename std::vector<NodeType*>::const_iterator i =
149 std::find(children_.begin(), children_.end(), node); 149 std::find(children_.begin(), children_.end(), node);
150 return i != children_.end() ? static_cast<int>(i - children_.begin()) : -1; 150 return i != children_.end() ? static_cast<int>(i - children_.begin()) : -1;
151 } 151 }
152 152
153 // Sets the title of the node. 153 // Sets the title of the node.
154 virtual void SetTitle(const base::string16& title) { title_ = title; } 154 virtual void SetTitle(const base::string16& title) { title_ = title; }
155 155
156 // TreeModelNode: 156 // TreeModelNode:
157 virtual const base::string16& GetTitle() const override { return title_; } 157 const base::string16& GetTitle() const override { return title_; }
158 158
159 // Returns true if this == ancestor, or one of this nodes parents is 159 // Returns true if this == ancestor, or one of this nodes parents is
160 // ancestor. 160 // ancestor.
161 bool HasAncestor(const NodeType* ancestor) const { 161 bool HasAncestor(const NodeType* ancestor) const {
162 if (ancestor == this) 162 if (ancestor == this)
163 return true; 163 return true;
164 if (!ancestor) 164 if (!ancestor)
165 return false; 165 return false;
166 return parent_ ? parent_->HasAncestor(ancestor) : false; 166 return parent_ ? parent_->HasAncestor(ancestor) : false;
167 } 167 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 205
206 // TreeNodeModel -------------------------------------------------------------- 206 // TreeNodeModel --------------------------------------------------------------
207 207
208 // TreeModel implementation intended to be used with TreeNodes. 208 // TreeModel implementation intended to be used with TreeNodes.
209 template <class NodeType> 209 template <class NodeType>
210 class TreeNodeModel : public TreeModel { 210 class TreeNodeModel : public TreeModel {
211 public: 211 public:
212 // Creates a TreeNodeModel with the specified root node. The root is owned 212 // Creates a TreeNodeModel with the specified root node. The root is owned
213 // by the TreeNodeModel. 213 // by the TreeNodeModel.
214 explicit TreeNodeModel(NodeType* root) : root_(root) {} 214 explicit TreeNodeModel(NodeType* root) : root_(root) {}
215 virtual ~TreeNodeModel() {} 215 virtual ~TreeNodeModel() override {}
216 216
217 NodeType* AsNode(TreeModelNode* model_node) { 217 NodeType* AsNode(TreeModelNode* model_node) {
218 return static_cast<NodeType*>(model_node); 218 return static_cast<NodeType*>(model_node);
219 } 219 }
220 220
221 void Add(NodeType* parent, NodeType* node, int index) { 221 void Add(NodeType* parent, NodeType* node, int index) {
222 DCHECK(parent && node); 222 DCHECK(parent && node);
223 parent->Add(node, index); 223 parent->Add(node, index);
224 NotifyObserverTreeNodesAdded(parent, index, 1); 224 NotifyObserverTreeNodesAdded(parent, index, 1);
225 } 225 }
(...skipping 18 matching lines...) Expand all
244 TreeNodesRemoved(this, parent, start, count)); 244 TreeNodesRemoved(this, parent, start, count));
245 } 245 }
246 246
247 void NotifyObserverTreeNodeChanged(TreeModelNode* node) { 247 void NotifyObserverTreeNodeChanged(TreeModelNode* node) {
248 FOR_EACH_OBSERVER(TreeModelObserver, 248 FOR_EACH_OBSERVER(TreeModelObserver,
249 observer_list_, 249 observer_list_,
250 TreeNodeChanged(this, node)); 250 TreeNodeChanged(this, node));
251 } 251 }
252 252
253 // TreeModel: 253 // TreeModel:
254 virtual NodeType* GetRoot() override { 254 NodeType* GetRoot() override {
255 return root_.get(); 255 return root_.get();
256 } 256 }
257 257
258 virtual int GetChildCount(TreeModelNode* parent) override { 258 int GetChildCount(TreeModelNode* parent) override {
259 DCHECK(parent); 259 DCHECK(parent);
260 return AsNode(parent)->child_count(); 260 return AsNode(parent)->child_count();
261 } 261 }
262 262
263 virtual NodeType* GetChild(TreeModelNode* parent, int index) override { 263 NodeType* GetChild(TreeModelNode* parent, int index) override {
264 DCHECK(parent); 264 DCHECK(parent);
265 return AsNode(parent)->GetChild(index); 265 return AsNode(parent)->GetChild(index);
266 } 266 }
267 267
268 virtual int GetIndexOf(TreeModelNode* parent, TreeModelNode* child) override { 268 int GetIndexOf(TreeModelNode* parent, TreeModelNode* child) override {
269 DCHECK(parent); 269 DCHECK(parent);
270 return AsNode(parent)->GetIndexOf(AsNode(child)); 270 return AsNode(parent)->GetIndexOf(AsNode(child));
271 } 271 }
272 272
273 virtual TreeModelNode* GetParent(TreeModelNode* node) override { 273 TreeModelNode* GetParent(TreeModelNode* node) override {
274 DCHECK(node); 274 DCHECK(node);
275 return AsNode(node)->parent(); 275 return AsNode(node)->parent();
276 } 276 }
277 277
278 virtual void AddObserver(TreeModelObserver* observer) override { 278 void AddObserver(TreeModelObserver* observer) override {
279 observer_list_.AddObserver(observer); 279 observer_list_.AddObserver(observer);
280 } 280 }
281 281
282 virtual void RemoveObserver(TreeModelObserver* observer) override { 282 void RemoveObserver(TreeModelObserver* observer) override {
283 observer_list_.RemoveObserver(observer); 283 observer_list_.RemoveObserver(observer);
284 } 284 }
285 285
286 virtual void SetTitle(TreeModelNode* node, 286 void SetTitle(TreeModelNode* node,
287 const base::string16& title) override { 287 const base::string16& title) override {
288 DCHECK(node); 288 DCHECK(node);
289 AsNode(node)->SetTitle(title); 289 AsNode(node)->SetTitle(title);
290 NotifyObserverTreeNodeChanged(node); 290 NotifyObserverTreeNodeChanged(node);
291 } 291 }
292 292
293 private: 293 private:
294 // The observers. 294 // The observers.
295 ObserverList<TreeModelObserver> observer_list_; 295 ObserverList<TreeModelObserver> observer_list_;
296 296
297 // The root. 297 // The root.
298 scoped_ptr<NodeType> root_; 298 scoped_ptr<NodeType> root_;
299 299
300 DISALLOW_COPY_AND_ASSIGN(TreeNodeModel); 300 DISALLOW_COPY_AND_ASSIGN(TreeNodeModel);
301 }; 301 };
302 302
303 } // namespace ui 303 } // namespace ui
304 304
305 #endif // UI_BASE_MODELS_TREE_NODE_MODEL_H_ 305 #endif // UI_BASE_MODELS_TREE_NODE_MODEL_H_
OLDNEW
« no previous file with comments | « ui/base/ime/chromeos/ime_keyboard_x11_unittest.cc ('k') | ui/base/resource/resource_bundle_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698