mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-28 17:32:29 +01:00
WINGs: tree enhancements
- add WMFindInTreeWithDepthLimit, which is like WMFindInTree, but does not descend down more than a set limit. - add WMTreeWalk, which will walk a WMTreeNode, running a callback function on each node. Signed-off-by: Tamas TEVESZ <ice@extreme.hu>
This commit is contained in:
committed by
Carlos R. Mafra
parent
9a2732a4c3
commit
210bcec4de
@@ -117,6 +117,7 @@ typedef void WMInputProc(int fd, int mask, void *clientData);
|
||||
|
||||
|
||||
typedef int WMCompareDataProc(const void *item1, const void *item2);
|
||||
typedef void WMTreeWalkProc(WMTreeNode *aNode, void *data);
|
||||
|
||||
typedef void WMFreeDataProc(void *data);
|
||||
|
||||
@@ -642,9 +643,16 @@ void WMSortTree(WMTreeNode *aNode, WMCompareDataProc *comparer);
|
||||
/* Returns the first node which matches node's data with cdata by 'match' */
|
||||
WMTreeNode* WMFindInTree(WMTreeNode *aTree, WMMatchDataProc *match, void *cdata);
|
||||
|
||||
/* Returns the first node where node's data matches cdata by 'match' and node is
|
||||
* at most `limit' depths down from `aTree'. */
|
||||
WMTreeNode *WMFindInTreeWithDepthLimit(WMTreeNode * aTree, WMMatchDataProc * match, void *cdata, int limit);
|
||||
|
||||
/* Returns first tree node that has data == cdata */
|
||||
#define WMGetFirstInTree(aTree, cdata) WMFindInTree(aTree, NULL, cdata)
|
||||
|
||||
/* Walk every node of aNode with `walk' */
|
||||
void WMTreeWalk(WMTreeNode *aNode, WMTreeWalkProc * walk, void *data, Bool DepthFirst);
|
||||
|
||||
/* ---[ WINGs/data.c ]---------------------------------------------------- */
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user