diff --git a/src/dlangui/widgets/tree.d b/src/dlangui/widgets/tree.d index 2cae1a6d..66b1d8ea 100644 --- a/src/dlangui/widgets/tree.d +++ b/src/dlangui/widgets/tree.d @@ -185,6 +185,24 @@ class TreeItem { void collapse() { _expanded = false; } + /// expand this node and all children + void expandAll() { + foreach(c; _children) { + if (!c._expanded && c.canCollapse) //? + c.expandAll(); + } + if (!expanded) + toggleExpand(this); + } + /// expand this node and all children + void collapseAll() { + foreach(c; _children) { + if (c._expanded && c.canCollapse) + c.collapseAll(); + } + if (expanded) + toggleExpand(this); + } @property TreeItem selectedItem() { return root.selectedItem();