From 3d5d2b54f23901ccd11641f4df95b5c6a4c10664 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Sun, 10 Jan 2010 22:37:56 +0000 Subject: Added a function to copy an entire Fl_Preferences database into an Fl_Tree view. This will break IDEs that do not have Fl_Tree and Fl_Table added yet! git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6992 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Preferences.cxx | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src') diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx index 2a58adf40..c7588d96d 100644 --- a/src/Fl_Preferences.cxx +++ b/src/Fl_Preferences.cxx @@ -28,6 +28,7 @@ #include #include +#include #include #include @@ -333,6 +334,15 @@ Fl_Preferences::~Fl_Preferences() } +/** + Copy the databse hierarchy to an Fl_Tree browser from this node down. + */ +char Fl_Preferences::copyTo(Fl_Tree *tree) +{ + return node->copyTo(tree, tree->root()); +} + + /** Returns the number of groups that are contained within a group. @@ -1601,6 +1611,25 @@ char Fl_Preferences::Node::remove() return ( nd != 0 ); } +char Fl_Preferences::Node::copyTo(Fl_Tree *tree, Fl_Tree_Item *ti) +{ + ti->label(name()); + ti->user_data(this); + Node *nd = child_; + for ( ; nd; nd = nd->next_) { + Fl_Tree_Item *tic = tree->insert(ti, 0, 0); + nd->copyTo(tree, tic); + tic->close(); + } + int i, n = nEntry; + for (i=0; iadd(ti, buf); + } +} // // End of "$Id$". -- cgit v1.2.3