| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "chrome/views/tree_view.h" | 5 #include "chrome/views/tree_view.h" |
| 6 | 6 |
| 7 #include <shellapi.h> | 7 #include <shellapi.h> |
| 8 | 8 |
| 9 #include "base/win_util.h" | 9 #include "base/win_util.h" |
| 10 #include "chrome/app/theme/theme_resources.h" | 10 #include "chrome/app/theme/theme_resources.h" |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 } | 150 } |
| 151 // And expand this item. | 151 // And expand this item. |
| 152 TreeView_Expand(tree_view_, GetNodeDetails(node)->tree_item, TVE_EXPAND); | 152 TreeView_Expand(tree_view_, GetNodeDetails(node)->tree_item, TVE_EXPAND); |
| 153 } | 153 } |
| 154 | 154 |
| 155 void TreeView::ExpandAll() { | 155 void TreeView::ExpandAll() { |
| 156 DCHECK(model_); | 156 DCHECK(model_); |
| 157 ExpandAll(model_->GetRoot()); | 157 ExpandAll(model_->GetRoot()); |
| 158 } | 158 } |
| 159 | 159 |
| 160 void TreeView::ExpandAll(TreeModelNode* node) { |
| 161 DCHECK(node); |
| 162 // Expand the node. |
| 163 if (node != model_->GetRoot() || root_shown_) |
| 164 TreeView_Expand(tree_view_, GetNodeDetails(node)->tree_item, TVE_EXPAND); |
| 165 // And recursively expand all the children. |
| 166 for (int i = model_->GetChildCount(node) - 1; i >= 0; --i) { |
| 167 TreeModelNode* child = model_->GetChild(node, i); |
| 168 ExpandAll(child); |
| 169 } |
| 170 } |
| 171 |
| 160 bool TreeView::IsExpanded(TreeModelNode* node) { | 172 bool TreeView::IsExpanded(TreeModelNode* node) { |
| 161 TreeModelNode* parent = model_->GetParent(node); | 173 TreeModelNode* parent = model_->GetParent(node); |
| 162 if (!parent) | 174 if (!parent) |
| 163 return true; | 175 return true; |
| 164 if (!IsExpanded(parent)) | 176 if (!IsExpanded(parent)) |
| 165 return false; | 177 return false; |
| 166 NodeDetails* details = GetNodeDetails(node); | 178 NodeDetails* details = GetNodeDetails(node); |
| 167 return (TreeView_GetItemState(tree_view_, details->tree_item, TVIS_EXPANDED) & | 179 return (TreeView_GetItemState(tree_view_, details->tree_item, TVIS_EXPANDED) & |
| 168 TVIS_EXPANDED) != 0; | 180 TVIS_EXPANDED) != 0; |
| 169 } | 181 } |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 TreeModelNode* TreeView::GetNodeForTreeItem(HTREEITEM tree_item) { | 475 TreeModelNode* TreeView::GetNodeForTreeItem(HTREEITEM tree_item) { |
| 464 NodeDetails* details = GetNodeDetailsByTreeItem(tree_item); | 476 NodeDetails* details = GetNodeDetailsByTreeItem(tree_item); |
| 465 return details ? details->node : NULL; | 477 return details ? details->node : NULL; |
| 466 } | 478 } |
| 467 | 479 |
| 468 HTREEITEM TreeView::GetTreeItemForNode(TreeModelNode* node) { | 480 HTREEITEM TreeView::GetTreeItemForNode(TreeModelNode* node) { |
| 469 NodeDetails* details = GetNodeDetails(node); | 481 NodeDetails* details = GetNodeDetails(node); |
| 470 return details ? details->tree_item : NULL; | 482 return details ? details->tree_item : NULL; |
| 471 } | 483 } |
| 472 | 484 |
| 473 void TreeView::ExpandAll(TreeModelNode* node) { | |
| 474 DCHECK(node); | |
| 475 // Expand the node. | |
| 476 if (node != model_->GetRoot() || root_shown_) | |
| 477 TreeView_Expand(tree_view_, GetNodeDetails(node)->tree_item, TVE_EXPAND); | |
| 478 // And recursively expand all the children. | |
| 479 for (int i = model_->GetChildCount(node) - 1; i >= 0; --i) { | |
| 480 TreeModelNode* child = model_->GetChild(node, i); | |
| 481 ExpandAll(child); | |
| 482 } | |
| 483 } | |
| 484 | |
| 485 void TreeView::DeleteRootItems() { | 485 void TreeView::DeleteRootItems() { |
| 486 HTREEITEM root = TreeView_GetRoot(tree_view_); | 486 HTREEITEM root = TreeView_GetRoot(tree_view_); |
| 487 if (root) { | 487 if (root) { |
| 488 if (root_shown_) { | 488 if (root_shown_) { |
| 489 RecursivelyDelete(GetNodeDetailsByTreeItem(root)); | 489 RecursivelyDelete(GetNodeDetailsByTreeItem(root)); |
| 490 } else { | 490 } else { |
| 491 HTREEITEM node; | 491 HTREEITEM node; |
| 492 while ((node = TreeView_GetChild(tree_view_, root))) { | 492 while ((node = TreeView_GetChild(tree_view_, root))) { |
| 493 RecursivelyDelete(GetNodeDetailsByTreeItem(node)); | 493 RecursivelyDelete(GetNodeDetailsByTreeItem(node)); |
| 494 } | 494 } |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 } | 646 } |
| 647 // Fall through and let the default handler process as well. | 647 // Fall through and let the default handler process as well. |
| 648 break; | 648 break; |
| 649 } | 649 } |
| 650 WNDPROC handler = tree->original_handler_; | 650 WNDPROC handler = tree->original_handler_; |
| 651 DCHECK(handler); | 651 DCHECK(handler); |
| 652 return CallWindowProc(handler, window, message, w_param, l_param); | 652 return CallWindowProc(handler, window, message, w_param, l_param); |
| 653 } | 653 } |
| 654 | 654 |
| 655 } // namespace views | 655 } // namespace views |
| OLD | NEW |