summaryrefslogtreecommitdiffstats
path: root/generic/tkTreeItem.c
diff options
context:
space:
mode:
authortreectrl <treectrl>2006-11-19 00:48:11 (GMT)
committertreectrl <treectrl>2006-11-19 00:48:11 (GMT)
commit7d51879c281d91b4d84a4c06b0dbe2568d4c10cf (patch)
tree4ed35359c8ebbdedeaed64ed8be177e13f9b8d24 /generic/tkTreeItem.c
parentd12b2b7f0b8eddf1d766b10b828f9b11e47e0a43 (diff)
downloadtktreectrl-7d51879c281d91b4d84a4c06b0dbe2568d4c10cf.zip
tktreectrl-7d51879c281d91b4d84a4c06b0dbe2568d4c10cf.tar.gz
tktreectrl-7d51879c281d91b4d84a4c06b0dbe2568d4c10cf.tar.bz2
Added 2 optional arguments to [selection get] to perform lindex- and lrange-like operations on the sorted list of selected items.
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