diff options
author | treectrl <treectrl> | 2006-11-19 00:48:11 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2006-11-19 00:48:11 (GMT) |
commit | 7d51879c281d91b4d84a4c06b0dbe2568d4c10cf (patch) | |
tree | 4ed35359c8ebbdedeaed64ed8be177e13f9b8d24 /generic/tkTreeItem.c | |
parent | d12b2b7f0b8eddf1d766b10b828f9b11e47e0a43 (diff) | |
download | tktreectrl-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.c | 44 |
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 |