o Fix STR#2828 (E): {Vertical|Widget} Gap
o Moved Fabien's reselected methods to Fl_Tree_Prefs,
return method made const, doxygen, removed underbars from methods
(to follow general API)
o Widgets can now appear to the right of labels.
This can be controlled with item_draw_mode(FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET)
o Cleaned up Fl_Tree_Item::draw(), Fl_Tree::draw()
o New methods:
marginbottom() -- [ABI feature] extra space below last tree element when scrolling
widgetmarginleft() -- [ABI feature] space to left of widget
usericonmarginleft() -- space to left of usericon
labelmarginleft() -- space to left of label
item_draw_mode() -- control how items, widget() are drawn
o Updated Fl_Tree docs, tree-elements.png
o test/tree: added sliders to test the above new features,
added "open all" and "close all" buttons
o Probably other stuff..
TODO: Fix "scroll-beyond-bottom" (STR#2796)
TODO: Fix other items in STR#2828
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9377 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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
* open() / close() now can invoke the callback().
New method callback_reason() lets one determine the cause.
(Used FLU's tree for reference on this)
* new Fl_Tree methods:
> item_pathname()
> show_item(), show_top(), show_middle(), show_bottom().
> next_selected_item() -- loop through the selected items.
> callback_item() -- the item that caused the callback
> callback_reason() -- reason the callback was invoked
FL_TREE_REASON_SELECTED -- item was selected
FL_TREE_REASON_DESELECTED -- item was de-selected
FL_TREE_REASON_OPENED -- item was opened
FL_TREE_REASON_CLOSED -- item was closed
> position()
> display()
* new Fl_Tree_Item methods:
> find_child_item() -- searches children for a path
> find_item() -- searches self and children for a path
> next(item) -- loop forward through tree
> prev(item) -- loop backward through tree
> first_selected_item()
> next_selected_item()
> x(), y(), w(), h()
* deprecated:
> item_clicked(). Use callback_item() instead
* the 'docallback' optional integer argument for all methods
is now back to 0 or 1 only. (Other values became unnecessary
when above new callback() behavior was defined)
* test/tree has new "Test Callback Flags" button to test the
'docallback' flags for eg. open/close/select/deselect
to make sure no bugs creep in.
* INTERNAL: added free_path() to free special path array created by parse_path().
* Various docs strengthened:
* How to use first()/next() and last()/prev() to walk tree
> made sure more method's options use \param[in]
> Added more \see references
* Moved several implementations from .H -> .cxx
* Added autoscroll to keyboard nav and mouse drags
* test/unittests: added Fl_Tree to scrollsize test
TODO:
o Horiz scroll bar (see Johannes Schock's email re. additions he sent)
o Need to allow keyboard nav to move focus to child FLTK widgets
o Fix fast-selections so that no gaps are left behind.
(Select all items from the last selected item to the current)
o Investigate non-default values of when() causing odd behavior.
(See the tree demo's when() pulldown..)
* tree demo modified to include top/mid/bot buttons that test the above.
* Keyboard navigation added:
Up/Down -- move focus
Left/Right -- closes/opens tree item in focus
Spacebar -- toggle selection state of item in focus
Enter -- selects the item in focus, deselecting all others
Tab/Shift-Tab -- change widget focus
* All Fl_Tree select() and deselect() methods now return a value
that indicates if the item's state was changed.
* Fixed focus box drawing (focus box resides more precisely within item's box)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7691 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
o Added user_data() to Fl_Tree_Item
o Added insert() and add() methods that allow specification of Fl_Tree_Prefs
o Changed Fl_Pixmap args to Fl_Image for more flexibility
o Fixes for positioning of items in the presence of user icons
o find_children() changed from protected -> public
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6956 ea41ed52-d2ee-0310-a9c1-e6b18d33e121