summaryrefslogtreecommitdiffstats
path: root/generic/tkTreeItem.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tkTreeItem.c')
-rw-r--r--generic/tkTreeItem.c44
1 files changed, 43 insertions, 1 deletions
diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c
index 75300af..c23649d 100644
--- a/generic/tkTreeItem.c
+++ b/generic/tkTreeItem.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 2002-2006 Tim Baker
*
- * RCS: @(#) $Id: tkTreeItem.c,v 1.90 2006/11/18 04:35:55 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeItem.c,v 1.91 2006/11/19 00:48:14 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -6491,6 +6491,48 @@ ItemSortCmd(
/*
*----------------------------------------------------------------------
*
+ * TreeItemList_Sort --
+ *
+ * Sorts a list of items.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+static int
+TILSCompare(
+ CONST VOID *first_,
+ CONST VOID *second_
+ )
+{
+ TreeItem first = *(TreeItem *) first_;
+ TreeItem second = *(TreeItem *) second_;
+
+ return first->index - second->index;
+}
+
+void
+TreeItemList_Sort(
+ TreeItemList *items
+ )
+{
+ Tree_UpdateItemIndex(items->tree);
+
+ /* TkTable uses this, but mentions possible lack of thread-safety. */
+ qsort((VOID *) TreeItemList_Items(items),
+ (size_t) TreeItemList_Count(items),
+ sizeof(TreeItem),
+ TILSCompare);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* ItemStateCmd --
*
* This procedure is invoked to process the [item state] widget