summaryrefslogtreecommitdiff
path: root/src/Fl_Tree.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_Tree.cxx')
-rw-r--r--src/Fl_Tree.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Fl_Tree.cxx b/src/Fl_Tree.cxx
index e946ccaf5..4c3a99b14 100644
--- a/src/Fl_Tree.cxx
+++ b/src/Fl_Tree.cxx
@@ -347,6 +347,19 @@ int Fl_Tree::deselect_all(Fl_Tree_Item *item) {
return(count);
}
+/// Select item and all its children.
+/// If item is NULL, root() is used.
+/// Handles calling redraw() if anything was changed.
+/// Returns count of how many items were in the 'deselected' state,
+/// ie. how many items were "changed".
+///
+int Fl_Tree::select_all(Fl_Tree_Item *item) {
+ item = item ? item : root(); // NULL? use root()
+ int count = item->select_all();
+ if ( count ) redraw(); // anything changed? cause redraw
+ return(count);
+}
+
/// Select only this item.
/// If item is NULL, root() is used.
/// Handles calling redraw() if anything was changed.