mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-20 12:58:08 +01:00
updates to the tree code
This commit is contained in:
@@ -592,6 +592,14 @@ int WMGetTreeNodeDepth(WMTreeNode *node);
|
||||
|
||||
void WMDestroyTreeNode(WMTreeNode *node);
|
||||
|
||||
void* WMGetDataForTreeNode(WMTreeNode *node);
|
||||
|
||||
WMTreeNode* WMGetParentForTreeNode(WMTreeNode *node);
|
||||
|
||||
void WMSortLeavesForTreeNode(WMTreeNode *node, WMCompareDataProc *comparer);
|
||||
|
||||
void WMSortTree(WMTreeNode *root, WMCompareDataProc *comparer);
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
47
WINGs/tree.c
47
WINGs/tree.c
@@ -1,7 +1,6 @@
|
||||
|
||||
|
||||
|
||||
//#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "WUtil.h"
|
||||
@@ -10,7 +9,7 @@
|
||||
typedef struct W_TreeNode {
|
||||
void *data;
|
||||
|
||||
//unsigned int uflags:16;
|
||||
/*unsigned int uflags:16;*/
|
||||
|
||||
WMArray *leaves;
|
||||
|
||||
@@ -158,3 +157,47 @@ WMDestroyTreeNode(WMTreeNode *node)
|
||||
}
|
||||
|
||||
|
||||
void*
|
||||
WMGetDataForTreeNode(WMTreeNode *node)
|
||||
{
|
||||
return node->data;
|
||||
}
|
||||
|
||||
|
||||
WMTreeNode*
|
||||
WMGetParentForTreeNode(WMTreeNode *node)
|
||||
{
|
||||
return node->parent;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSortLeavesForTreeNode(WMTreeNode *node, WMCompareDataProc *comparer)
|
||||
{
|
||||
wassertr(node!=NULL);
|
||||
|
||||
WMSortArray(node->leaves, comparer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
sortLeavesForNode(WMTreeNode *node, WMCompareDataProc *comparer)
|
||||
{
|
||||
int i;
|
||||
|
||||
WMSortArray(node->leaves, comparer);
|
||||
for (i=0; i<WMGetArrayItemCount(node->leaves); i++) {
|
||||
sortLeavesForNode(WMGetFromArray(node->leaves, i), comparer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSortTree(WMTreeNode *root, WMCompareDataProc *comparer)
|
||||
{
|
||||
wassertr(root!=NULL);
|
||||
|
||||
sortLeavesForNode(root, comparer);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user