OLD | NEW |
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_VIEWS_CONTROLS_TREE_TREE_VIEW_VIEWS_H_ | 5 #ifndef UI_VIEWS_CONTROLS_TREE_TREE_VIEW_VIEWS_H_ |
6 #define UI_VIEWS_CONTROLS_TREE_TREE_VIEW_VIEWS_H_ | 6 #define UI_VIEWS_CONTROLS_TREE_TREE_VIEW_VIEWS_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 // necessary. But it's more than adequate for current uses. | 37 // necessary. But it's more than adequate for current uses. |
38 class VIEWS_EXPORT TreeView : public ui::TreeModelObserver, | 38 class VIEWS_EXPORT TreeView : public ui::TreeModelObserver, |
39 public TextfieldController, | 39 public TextfieldController, |
40 public FocusChangeListener, | 40 public FocusChangeListener, |
41 public PrefixDelegate { | 41 public PrefixDelegate { |
42 public: | 42 public: |
43 // The tree view's class name. | 43 // The tree view's class name. |
44 static const char kViewClassName[]; | 44 static const char kViewClassName[]; |
45 | 45 |
46 TreeView(); | 46 TreeView(); |
47 virtual ~TreeView(); | 47 ~TreeView() override; |
48 | 48 |
49 // Returns new ScrollPane that contains the receiver. | 49 // Returns new ScrollPane that contains the receiver. |
50 View* CreateParentIfNecessary(); | 50 View* CreateParentIfNecessary(); |
51 | 51 |
52 // Sets the model. TreeView does not take ownership of the model. | 52 // Sets the model. TreeView does not take ownership of the model. |
53 void SetModel(ui::TreeModel* model); | 53 void SetModel(ui::TreeModel* model); |
54 ui::TreeModel* model() const { return model_; } | 54 ui::TreeModel* model() const { return model_; } |
55 | 55 |
56 // Sets whether to automatically expand children when a parent node is | 56 // Sets whether to automatically expand children when a parent node is |
57 // expanded. The default is false. If true, when a node in the tree is | 57 // expanded. The default is false. If true, when a node in the tree is |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 | 113 |
114 // Returns the node for the specified row, or NULL for an invalid row index. | 114 // Returns the node for the specified row, or NULL for an invalid row index. |
115 ui::TreeModelNode* GetNodeForRow(int row); | 115 ui::TreeModelNode* GetNodeForRow(int row); |
116 | 116 |
117 // Maps a node to a row, returns -1 if node is not valid. | 117 // Maps a node to a row, returns -1 if node is not valid. |
118 int GetRowForNode(ui::TreeModelNode* node); | 118 int GetRowForNode(ui::TreeModelNode* node); |
119 | 119 |
120 views::Textfield* editor() { return editor_; } | 120 views::Textfield* editor() { return editor_; } |
121 | 121 |
122 // View overrides: | 122 // View overrides: |
123 virtual void Layout() override; | 123 void Layout() override; |
124 virtual gfx::Size GetPreferredSize() const override; | 124 gfx::Size GetPreferredSize() const override; |
125 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) override; | 125 bool AcceleratorPressed(const ui::Accelerator& accelerator) override; |
126 virtual bool OnMousePressed(const ui::MouseEvent& event) override; | 126 bool OnMousePressed(const ui::MouseEvent& event) override; |
127 virtual ui::TextInputClient* GetTextInputClient() override; | 127 ui::TextInputClient* GetTextInputClient() override; |
128 virtual void OnGestureEvent(ui::GestureEvent* event) override; | 128 void OnGestureEvent(ui::GestureEvent* event) override; |
129 virtual void ShowContextMenu(const gfx::Point& p, | 129 void ShowContextMenu(const gfx::Point& p, |
130 ui::MenuSourceType source_type) override; | 130 ui::MenuSourceType source_type) override; |
131 virtual void GetAccessibleState(ui::AXViewState* state) override; | 131 void GetAccessibleState(ui::AXViewState* state) override; |
132 virtual const char* GetClassName() const override; | 132 const char* GetClassName() const override; |
133 | 133 |
134 // TreeModelObserver overrides: | 134 // TreeModelObserver overrides: |
135 virtual void TreeNodesAdded(ui::TreeModel* model, | 135 void TreeNodesAdded(ui::TreeModel* model, |
136 ui::TreeModelNode* parent, | 136 ui::TreeModelNode* parent, |
137 int start, | 137 int start, |
138 int count) override; | 138 int count) override; |
139 virtual void TreeNodesRemoved(ui::TreeModel* model, | 139 void TreeNodesRemoved(ui::TreeModel* model, |
140 ui::TreeModelNode* parent, | 140 ui::TreeModelNode* parent, |
141 int start, | 141 int start, |
142 int count) override; | 142 int count) override; |
143 virtual void TreeNodeChanged(ui::TreeModel* model, | 143 void TreeNodeChanged(ui::TreeModel* model, |
144 ui::TreeModelNode* model_node) override; | 144 ui::TreeModelNode* model_node) override; |
145 | 145 |
146 // TextfieldController overrides: | 146 // TextfieldController overrides: |
147 virtual void ContentsChanged(Textfield* sender, | 147 void ContentsChanged(Textfield* sender, |
148 const base::string16& new_contents) override; | 148 const base::string16& new_contents) override; |
149 virtual bool HandleKeyEvent(Textfield* sender, | 149 bool HandleKeyEvent(Textfield* sender, |
150 const ui::KeyEvent& key_event) override; | 150 const ui::KeyEvent& key_event) override; |
151 | 151 |
152 // FocusChangeListener overrides: | 152 // FocusChangeListener overrides: |
153 virtual void OnWillChangeFocus(View* focused_before, | 153 void OnWillChangeFocus(View* focused_before, View* focused_now) override; |
154 View* focused_now) override; | 154 void OnDidChangeFocus(View* focused_before, View* focused_now) override; |
155 virtual void OnDidChangeFocus(View* focused_before, | |
156 View* focused_now) override; | |
157 | 155 |
158 // PrefixDelegate overrides: | 156 // PrefixDelegate overrides: |
159 virtual int GetRowCount() override; | 157 int GetRowCount() override; |
160 virtual int GetSelectedRow() override; | 158 int GetSelectedRow() override; |
161 virtual void SetSelectedRow(int row) override; | 159 void SetSelectedRow(int row) override; |
162 virtual base::string16 GetTextForRow(int row) override; | 160 base::string16 GetTextForRow(int row) override; |
163 | 161 |
164 protected: | 162 protected: |
165 // View overrides: | 163 // View overrides: |
166 virtual gfx::Point GetKeyboardContextMenuLocation() override; | 164 gfx::Point GetKeyboardContextMenuLocation() override; |
167 virtual bool OnKeyPressed(const ui::KeyEvent& event) override; | 165 bool OnKeyPressed(const ui::KeyEvent& event) override; |
168 virtual void OnPaint(gfx::Canvas* canvas) override; | 166 void OnPaint(gfx::Canvas* canvas) override; |
169 virtual void OnFocus() override; | 167 void OnFocus() override; |
170 virtual void OnBlur() override; | 168 void OnBlur() override; |
171 | 169 |
172 private: | 170 private: |
173 friend class TreeViewTest; | 171 friend class TreeViewTest; |
174 | 172 |
175 // Selects, expands or collapses nodes in the tree. Consistent behavior for | 173 // Selects, expands or collapses nodes in the tree. Consistent behavior for |
176 // tap gesture and click events. | 174 // tap gesture and click events. |
177 bool OnClickOrTap(const ui::LocatedEvent& event); | 175 bool OnClickOrTap(const ui::LocatedEvent& event); |
178 | 176 |
179 // InternalNode is used to track information about the set of nodes displayed | 177 // InternalNode is used to track information about the set of nodes displayed |
180 // by TreeViewViews. | 178 // by TreeViewViews. |
181 class InternalNode : public ui::TreeNode<InternalNode> { | 179 class InternalNode : public ui::TreeNode<InternalNode> { |
182 public: | 180 public: |
183 InternalNode(); | 181 InternalNode(); |
184 virtual ~InternalNode(); | 182 ~InternalNode() override; |
185 | 183 |
186 // Resets the state from |node|. | 184 // Resets the state from |node|. |
187 void Reset(ui::TreeModelNode* node); | 185 void Reset(ui::TreeModelNode* node); |
188 | 186 |
189 // The model node this InternalNode represents. | 187 // The model node this InternalNode represents. |
190 ui::TreeModelNode* model_node() { return model_node_; } | 188 ui::TreeModelNode* model_node() { return model_node_; } |
191 | 189 |
192 // Whether the node is expanded. | 190 // Whether the node is expanded. |
193 void set_is_expanded(bool expanded) { is_expanded_ = expanded; } | 191 void set_is_expanded(bool expanded) { is_expanded_ = expanded; } |
194 bool is_expanded() const { return is_expanded_; } | 192 bool is_expanded() const { return is_expanded_; } |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 int text_offset_; | 386 int text_offset_; |
389 | 387 |
390 scoped_ptr<PrefixSelector> selector_; | 388 scoped_ptr<PrefixSelector> selector_; |
391 | 389 |
392 DISALLOW_COPY_AND_ASSIGN(TreeView); | 390 DISALLOW_COPY_AND_ASSIGN(TreeView); |
393 }; | 391 }; |
394 | 392 |
395 } // namespace views | 393 } // namespace views |
396 | 394 |
397 #endif // UI_VIEWS_CONTROLS_TREE_TREE_VIEW_VIEWS_H_ | 395 #endif // UI_VIEWS_CONTROLS_TREE_TREE_VIEW_VIEWS_H_ |
OLD | NEW |