| 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 |