From 1212f1d32149c12591384b9844b08c83e6b2ee36 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Thu, 22 Aug 2013 16:05:03 +0100 Subject: Expose leaving node callback in public treeview walker interface. --- desktop/treeview.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'desktop/treeview.h') diff --git a/desktop/treeview.h b/desktop/treeview.h index f7432aef5..42dd4ca6b 100644 --- a/desktop/treeview.h +++ b/desktop/treeview.h @@ -240,7 +240,7 @@ nserror treeview_update_node_entry(treeview *tree, * \param abort Set to true to abort treeview walk prematurely * \return NSERROR_OK on success, or appropriate error otherwise */ -typedef nserror (*treeview_walk_callback)(void *ctx, void *node_data, +typedef nserror (*treeview_walk_cb)(void *ctx, void *node_data, enum treeview_node_type type, bool *abort); /** @@ -249,17 +249,21 @@ typedef nserror (*treeview_walk_callback)(void *ctx, void *node_data, * * \param tree Treeview object to walk * \param root Root node to walk tree from (or NULL for tree root) - * \param walk_cb Function to call on each node + * \param enter_cb Function to call on entering nodes, or NULL + * \param leave_cb Function to call on leaving nodes, or NULL * \param ctx Client context, passed back to callback function * \param type The node type(s) of interest * \return NSERROR_OK on success, or appropriate error otherwise * - * Note, if deleting returned node, walk_cb must terminate the treeview walk by + * Example usage: To export a treeview as XML, XML elements can be opened in + * enter_cb, and closed in leave_cb. + * + * Note, if deleting returned node in enter_cb, the walk must be terminated by * setting abort to true. */ nserror treeview_walk(treeview *tree, treeview_node *root, - treeview_walk_callback walk_cb, void *ctx, - enum treeview_node_type type); + treeview_walk_cb enter_cb, treeview_walk_cb leave_cb, + void *ctx, enum treeview_node_type type); /** * Delete a treeview node -- cgit v1.2.3