summaryrefslogtreecommitdiff
path: root/FL/Fl_Tree_Item.H
diff options
context:
space:
mode:
authorGreg Ercolano <erco@seriss.com>2012-01-19 12:44:26 +0000
committerGreg Ercolano <erco@seriss.com>2012-01-19 12:44:26 +0000
commit9a4ef219defa24e0db83dc5f22d01cf29e0a75bd (patch)
treedfe98f029a079fad8a88e296ef1d9919386c4cf4 /FL/Fl_Tree_Item.H
parent82b6725d166d507755153c4cdd20d3a879ae7846 (diff)
Fl_Tree optimizations for selecting large trees (100k items).
Added _next_sibling and _prev_sibling to Fl_Tree_Item class to make next_sibling() and prev_sibling() more efficient during item selection. Used new FLTK_ABI_VERSION macro (as designed by Greg and Albrecht on fltk.dev) to protect the ABI breaking features. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9231 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'FL/Fl_Tree_Item.H')
-rw-r--r--FL/Fl_Tree_Item.H5
1 files changed, 5 insertions, 0 deletions
diff --git a/FL/Fl_Tree_Item.H b/FL/Fl_Tree_Item.H
index a3b4e2cda..d090df1b6 100644
--- a/FL/Fl_Tree_Item.H
+++ b/FL/Fl_Tree_Item.H
@@ -69,6 +69,10 @@ class FL_EXPORT Fl_Tree_Item {
Fl_Tree_Item_Array _children; // array of child items
Fl_Tree_Item *_parent; // parent item (=0 if root)
void *_userdata; // user data that can be associated with an item
+#if FLTK_ABI_VERSION >= 10302
+ Fl_Tree_Item *_prev_sibling; // previous sibling (same level)
+ Fl_Tree_Item *_next_sibling; // next sibling (same level)
+#endif /*FLTK_ABI_VERSION*/
protected:
void show_widgets();
void hide_widgets();
@@ -178,6 +182,7 @@ public:
Fl_Tree_Item *next();
Fl_Tree_Item *next_sibling();
Fl_Tree_Item *prev_sibling();
+ void update_prev_next(int index);
Fl_Tree_Item *next_displayed(Fl_Tree_Prefs &prefs);
Fl_Tree_Item *prev_displayed(Fl_Tree_Prefs &prefs);