mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-20 21:08: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 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 <string.h>
|
||||||
|
|
||||||
#include "WUtil.h"
|
#include "WUtil.h"
|
||||||
@@ -10,7 +9,7 @@
|
|||||||
typedef struct W_TreeNode {
|
typedef struct W_TreeNode {
|
||||||
void *data;
|
void *data;
|
||||||
|
|
||||||
//unsigned int uflags:16;
|
/*unsigned int uflags:16;*/
|
||||||
|
|
||||||
WMArray *leaves;
|
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