From 2c5006563f893723f0f224d7b3115e5fd03272ca Mon Sep 17 00:00:00 2001 From: Greg Ercolano Date: Sun, 30 Jan 2011 20:22:06 +0000 Subject: Fl_Tree API breaking changes (we haven't released 1.3.0 yet..): Fl_Tree::labelsize() -> item_labelsize() -- TO AVOID COLLISION WITH Fl_Widget::labelsize()! Fl_Tree::labelfont() -> item_labelfont() -- TO AVOID COLLISION WITH Fl_Widget::labelfont()! Fl_Tree_Prefs (internal) changes: Fl_Tree_Prefs::fgcolor() -> labelfgcolor() -- for consistency with above Fl_Tree_Prefs::bgcolor() -> labelbgcolor() -- for consistency with above Fl_Tree_Prefs::selectcolor() removed -- uses Fl_Widget::selection_color() instead Fl_Tree_Prefs::inactivecolor() removed -- was unused; inactive color procedurally calculated Other Fl_Tree mods: o Fixed bug with select_all(item) and deselect_all(item) (they were not limiting themselves to children of specified item) o Fixed bug with item not drawing in its /own/ bgcolor when item selected o Fl_Tree uses the Fl_Widget::selection_color() o All methods that deal with 'font types' changed int -> Fl_Font o All methods that deal with 'font sizes' changed int -> Fl_Fontsize o Added needed methods to Fl_Tree for accessing colors: item_labelfgcolor() -- access default fg color used for new items item_labelbgcolor() -- access default bg color used for new items tree_connectorcolor() -- access the connector line color o Small doxygen comment adjustments and general clarifications o test/tree demo modified to include testing of new label color methods, cleanup git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8340 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Tree.cxx | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/Fl_Tree.cxx') diff --git a/src/Fl_Tree.cxx b/src/Fl_Tree.cxx index 5d29b7cfe..fe3a8e267 100644 --- a/src/Fl_Tree.cxx +++ b/src/Fl_Tree.cxx @@ -697,10 +697,13 @@ int Fl_Tree::deselect_all(Fl_Tree_Item *item, int docallback) { item = item ? item : first(); // NULL? use first() if ( ! item ) return(0); int count = 0; - for ( ; item; item = next(item) ) { - if ( item->is_selected() ) - if ( deselect(item, docallback) ) - ++count; + // Deselect item + if ( item->is_selected() ) + if ( deselect(item, docallback) ) + ++count; + // Deselect its children + for ( int t=0; tchildren(); t++ ) { + count += deselect_all(item->child(t), docallback); // recurse } return(count); } @@ -726,10 +729,13 @@ int Fl_Tree::select_all(Fl_Tree_Item *item, int docallback) { item = item ? item : first(); // NULL? use first() if ( ! item ) return(0); int count = 0; - for ( ; item; item = next(item) ) { - if ( !item->is_selected() ) - if ( select(item, docallback) ) - ++count; + // Select item + if ( !item->is_selected() ) + if ( select(item, docallback) ) + ++count; + // Select its children + for ( int t=0; tchildren(); t++ ) { + count += select_all(item->child(t), docallback); // recurse } return(count); } -- cgit v1.2.3