summaryrefslogtreecommitdiffstats
path: root/chrome/views
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-14 17:48:40 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-14 17:48:40 +0000
commit405ed122f92ca9248de2a65103edba9b02471a9f (patch)
tree9d8cb957ff47ba6790107feec65acdfa592d9747 /chrome/views
parent296d61e24b5a5311f120a767a59ac006176f6f9a (diff)
downloadchromium_src-405ed122f92ca9248de2a65103edba9b02471a9f.zip
chromium_src-405ed122f92ca9248de2a65103edba9b02471a9f.tar.gz
chromium_src-405ed122f92ca9248de2a65103edba9b02471a9f.tar.bz2
Port some files in chrome/browser/
#ifdef out windows-specific portion of chrome/common/l10n_util.h, which allows me to port some other files. I also extracted parts of chrome/views/tree_view.h to tree_model.h, so that ATL/WTL-specific parts stay in tree_view.h, but tree_model.h is platform-independent and can be included in files using it as base class. Review URL: http://codereview.chromium.org/8618 Patch from Paweł Hajdan jr. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5483 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views')
-rw-r--r--chrome/views/tree_model.h86
-rw-r--r--chrome/views/tree_node_model.h19
-rw-r--r--chrome/views/tree_view.h69
-rw-r--r--chrome/views/views.vcproj4
4 files changed, 102 insertions, 76 deletions
diff --git a/chrome/views/tree_model.h b/chrome/views/tree_model.h
new file mode 100644
index 0000000..68a3ff7
--- /dev/null
+++ b/chrome/views/tree_model.h
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_VIEWS_TREE_MODEL_H_
+#define CHROME_VIEWS_TREE_MODEL_H_
+
+#include <string>
+
+#include "base/logging.h"
+
+class SkBitmap;
+
+namespace views {
+
+class TreeModel;
+
+// TreeModelNode --------------------------------------------------------------
+
+// Type of class returned from the model.
+class TreeModelNode {
+ public:
+ // Returns the title for the node.
+ virtual std::wstring GetTitle() = 0;
+};
+
+// Observer for the TreeModel. Notified of significant events to the model.
+class TreeModelObserver {
+ public:
+ // Notification that nodes were added to the specified parent.
+ virtual void TreeNodesAdded(TreeModel* model,
+ TreeModelNode* parent,
+ int start,
+ int count) = 0;
+
+ // Notification that nodes were removed from the specified parent.
+ virtual void TreeNodesRemoved(TreeModel* model,
+ TreeModelNode* parent,
+ int start,
+ int count) = 0;
+
+ // Notification that the contents of a node has changed.
+ virtual void TreeNodeChanged(TreeModel* model, TreeModelNode* node) = 0;
+};
+
+// TreeModel ------------------------------------------------------------------
+
+// The model for TreeView.
+class TreeModel {
+ public:
+ // Returns the root of the tree. This may or may not be shown in the tree,
+ // see SetRootShown for details.
+ virtual TreeModelNode* GetRoot() = 0;
+
+ // Returns the number of children in the specified node.
+ virtual int GetChildCount(TreeModelNode* parent) = 0;
+
+ // Returns the child node at the specified index.
+ virtual TreeModelNode* GetChild(TreeModelNode* parent, int index) = 0;
+
+ // Returns the parent of a node, or NULL if node is the root.
+ virtual TreeModelNode* GetParent(TreeModelNode* node) = 0;
+
+ // Sets the observer of the model.
+ virtual void SetObserver(TreeModelObserver* observer) = 0;
+
+ // Sets the title of the specified node.
+ // This is only invoked if the node is editable and the user edits a node.
+ virtual void SetTitle(TreeModelNode* node,
+ const std::wstring& title) {
+ NOTREACHED();
+ }
+
+ // Returns the set of icons for the nodes in the tree. You only need override
+ // this if you don't want to use the default folder icons.
+ virtual void GetIcons(std::vector<SkBitmap>* icons) {}
+
+ // Returns the index of the icon to use for |node|. Return -1 to use the
+ // default icon. The index is relative to the list of icons returned from
+ // GetIcons.
+ virtual int GetIconIndex(TreeModelNode* node) { return -1; }
+};
+
+} // namespace views
+
+#endif // CHROME_VIEWS_TREE_MODEL_H_
diff --git a/chrome/views/tree_node_model.h b/chrome/views/tree_node_model.h
index 2d9040e..0d33fff 100644
--- a/chrome/views/tree_node_model.h
+++ b/chrome/views/tree_node_model.h
@@ -9,7 +9,7 @@
#include "base/basictypes.h"
#include "chrome/common/scoped_vector.h"
-#include "chrome/views/tree_view.h"
+#include "chrome/views/tree_model.h"
namespace views {
@@ -115,7 +115,7 @@ class TreeNode : public TreeModelNode {
// Returns the index of the specified child, or -1 if node is a not a child.
int IndexOfChild(const NodeType* node) {
DCHECK(node);
- std::vector<NodeType*>::iterator i =
+ typename std::vector<NodeType*>::iterator i =
find(children_->begin(), children_->end(), node);
if (i != children_->end())
return static_cast<int>(i - children_->begin());
@@ -154,26 +154,29 @@ class TreeNode : public TreeModelNode {
// Children.
ScopedVector<NodeType> children_;
- DISALLOW_EVIL_CONSTRUCTORS(TreeNode);
+ DISALLOW_COPY_AND_ASSIGN(TreeNode);
};
// TreeNodeWithValue ----------------------------------------------------------
template <class ValueType>
-class TreeNodeWithValue : public TreeNode<TreeNodeWithValue<ValueType>> {
+class TreeNodeWithValue : public TreeNode< TreeNodeWithValue<ValueType> > {
+ private:
+ typedef TreeNode< TreeNodeWithValue<ValueType> > ParentType;
+
public:
TreeNodeWithValue() { }
TreeNodeWithValue(const ValueType& value)
- : TreeNode(std::wstring()), value(value) { }
+ : ParentType(std::wstring()), value(value) { }
TreeNodeWithValue(const std::wstring& title, const ValueType& value)
- : TreeNode(title), value(value) { }
+ : ParentType(title), value(value) { }
ValueType value;
private:
- DISALLOW_EVIL_CONSTRUCTORS(TreeNodeWithValue);
+ DISALLOW_COPY_AND_ASSIGN(TreeNodeWithValue);
};
// TreeNodeModel --------------------------------------------------------------
@@ -264,7 +267,7 @@ class TreeNodeModel : public TreeModel {
// The observer.
TreeModelObserver* observer_;
- DISALLOW_EVIL_CONSTRUCTORS(TreeNodeModel);
+ DISALLOW_COPY_AND_ASSIGN(TreeNodeModel);
};
} // namespace views
diff --git a/chrome/views/tree_view.h b/chrome/views/tree_view.h
index c2fe4d3..582de9f 100644
--- a/chrome/views/tree_view.h
+++ b/chrome/views/tree_view.h
@@ -10,79 +10,12 @@
#include "base/basictypes.h"
#include "base/logging.h"
#include "chrome/views/native_control.h"
+#include "chrome/views/tree_model.h"
namespace views {
-class TreeModel;
-class TreeModelNode;
class TreeView;
-// Observer for the TreeModel. Notified of significant events to the model.
-class TreeModelObserver {
- public:
- // Notification that nodes were added to the specified parent.
- virtual void TreeNodesAdded(TreeModel* model,
- TreeModelNode* parent,
- int start,
- int count) = 0;
-
- // Notification that nodes were removed from the specified parent.
- virtual void TreeNodesRemoved(TreeModel* model,
- TreeModelNode* parent,
- int start,
- int count) = 0;
-
- // Notification that the contents of a node has changed.
- virtual void TreeNodeChanged(TreeModel* model, TreeModelNode* node) = 0;
-};
-
-// TreeModelNode --------------------------------------------------------------
-
-// Type of class returned from the model.
-class TreeModelNode {
- public:
- // Returns the title for the node.
- virtual std::wstring GetTitle() = 0;
-};
-
-// TreeModel ------------------------------------------------------------------
-
-// The model for TreeView.
-class TreeModel {
- public:
- // Returns the root of the tree. This may or may not be shown in the tree,
- // see SetRootShown for details.
- virtual TreeModelNode* GetRoot() = 0;
-
- // Returns the number of children in the specified node.
- virtual int GetChildCount(TreeModelNode* parent) = 0;
-
- // Returns the child node at the specified index.
- virtual TreeModelNode* GetChild(TreeModelNode* parent, int index) = 0;
-
- // Returns the parent of a node, or NULL if node is the root.
- virtual TreeModelNode* GetParent(TreeModelNode* node) = 0;
-
- // Sets the observer of the model.
- virtual void SetObserver(TreeModelObserver* observer) = 0;
-
- // Sets the title of the specified node.
- // This is only invoked if the node is editable and the user edits a node.
- virtual void SetTitle(TreeModelNode* node,
- const std::wstring& title) {
- NOTREACHED();
- }
-
- // Returns the set of icons for the nodes in the tree. You only need override
- // this if you don't want to use the default folder icons.
- virtual void GetIcons(std::vector<SkBitmap>* icons) {}
-
- // Returns the index of the icon to use for |node|. Return -1 to use the
- // default icon. The index is relative to the list of icons returned from
- // GetIcons.
- virtual int GetIconIndex(TreeModelNode* node) { return -1; }
-};
-
// TreeViewController ---------------------------------------------------------
// Controller for the treeview.
diff --git a/chrome/views/views.vcproj b/chrome/views/views.vcproj
index 91dce86..505186f 100644
--- a/chrome/views/views.vcproj
+++ b/chrome/views/views.vcproj
@@ -589,6 +589,10 @@
RelativePath=".\tooltip_manager.h"
>
</File>
+ <File
+ RelativePath=".\tree_model.h"
+ >
+ </File>
<File
RelativePath=".\tree_node_model.h"
>