summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorGreg Ercolano <erco@seriss.com>2011-05-04 02:59:50 +0000
committerGreg Ercolano <erco@seriss.com>2011-05-04 02:59:50 +0000
commit6871a6512ae600b98ddf7a45dc24aff1d7ff4275 (patch)
treef1c54aee6703de7c50178dd1c6e63bd6545e84a2 /examples
parent14839338ec48079cd40c078c5dc1bc20337c5eac (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')
-rw-r--r--examples/tree-simple.cxx34
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);