diff options
| author | Greg Ercolano <erco@seriss.com> | 2011-05-04 02:59:50 +0000 |
|---|---|---|
| committer | Greg Ercolano <erco@seriss.com> | 2011-05-04 02:59:50 +0000 |
| commit | 6871a6512ae600b98ddf7a45dc24aff1d7ff4275 (patch) | |
| tree | f1c54aee6703de7c50178dd1c6e63bd6545e84a2 /examples/tree-simple.cxx | |
| parent | 14839338ec48079cd40c078c5dc1bc20337c5eac (diff) | |
Fl_Tree mods for handling escaped item menu names.
Docs clarified.
Also, tree-simple example's callback handler brought up to date.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8632 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'examples/tree-simple.cxx')
| -rw-r--r-- | examples/tree-simple.cxx | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/examples/tree-simple.cxx b/examples/tree-simple.cxx index d7c13ab23..df6722b2d 100644 --- a/examples/tree-simple.cxx +++ b/examples/tree-simple.cxx @@ -31,12 +31,30 @@ #include <FL/Fl_Tree.H> // Tree's callback -// Invoked whenever someone clicks an item. +// Invoked whenever an item's state changes. // void TreeCallback(Fl_Widget *w, void *data) { - Fl_Tree *tree = (Fl_Tree*)w; - Fl_Tree_Item *item = (Fl_Tree_Item*)tree->item_clicked(); - fprintf(stderr, "TreeCallback: item clicked='%s'\n", (item)?item->label():"???"); + Fl_Tree *tree = (Fl_Tree*)w; + Fl_Tree_Item *item = (Fl_Tree_Item*)tree->callback_item(); + if ( ! item ) return; + switch ( tree->callback_reason() ) { + case FL_TREE_REASON_SELECTED: { + char pathname[256]; + tree->item_pathname(pathname, sizeof(pathname), item); + fprintf(stderr, "TreeCallback: Item selected='%s', Full pathname='%s'\n", item->label(), pathname); + break; + } + case FL_TREE_REASON_DESELECTED: + // fprintf(stderr, "TreeCallback: Item '%s' deselected\n", item->label()); + break; + case FL_TREE_REASON_OPENED: + // fprintf(stderr, "TreeCallback: Item '%s' opened\n", item->label()); + break; + case FL_TREE_REASON_CLOSED: + // fprintf(stderr, "TreeCallback: Item '%s' closed\n", item->label()); + default: + break; + } } int main(int argc, char *argv[]) { @@ -57,9 +75,15 @@ int main(int argc, char *argv[]) { tree->add("Simpsons/Marge"); tree->add("Simpsons/Bart"); tree->add("Simpsons/Lisa"); + tree->add("Holidays/01\\/01 New Years"); + tree->add("Holidays/02\\/15 Valentine's Day"); + tree->add("Holidays/05\\/05 Cinco de Mayo"); + tree->add("Holidays/07\\/04 Independence Day"); + tree->add("Holidays/12\\/25 Christmas"); - // Start with one of the items closed + // Start with some items closed tree->close("Simpsons"); + tree->close("Holidays"); } win->end(); win->resizable(win); |
