diff options
author | treectrl <treectrl> | 2006-10-11 01:34:00 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2006-10-11 01:34:00 (GMT) |
commit | d2cf7269b658e1aef3a176c8afa18125a36de84f (patch) | |
tree | 740f82c81e73bb3694bf9eede23c8ec140af070d /generic | |
parent | 731a529c57566fea544c26698b55d778e33704db (diff) | |
download | tktreectrl-d2cf7269b658e1aef3a176c8afa18125a36de84f.zip tktreectrl-d2cf7269b658e1aef3a176c8afa18125a36de84f.tar.gz tktreectrl-d2cf7269b658e1aef3a176c8afa18125a36de84f.tar.bz2 |
Tree_ItemsInArea returns a TreeItemList.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tkTreeMarquee.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/generic/tkTreeMarquee.c b/generic/tkTreeMarquee.c index e1d65cf..b769783 100644 --- a/generic/tkTreeMarquee.c +++ b/generic/tkTreeMarquee.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2006 Tim Baker * - * RCS: @(#) $Id: tkTreeMarquee.c,v 1.8 2006/09/05 21:56:16 treectrl Exp $ + * RCS: @(#) $Id: tkTreeMarquee.c,v 1.9 2006/10/11 01:34:00 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -468,7 +468,7 @@ TreeMarqueeCmd( int x1, y1, x2, y2, n = 0; int totalWidth = Tree_TotalWidth(tree); int totalHeight = Tree_TotalHeight(tree); - TreeItem *items; + TreeItemList items; Tcl_Obj *listObj; if (objc != 3) @@ -502,21 +502,23 @@ TreeMarqueeCmd( if (y2 > totalHeight) y2 = totalHeight; - items = Tree_ItemsInArea(tree, x1, y1, x2, y2); - if (items == NULL) + Tree_ItemsInArea(tree, &items, x1, y1, x2, y2); + if (TreeItemList_Count(&items) == 0) { + TreeItemList_Free(&items); break; + } listObj = Tcl_NewListObj(0, NULL); - while (items[n] != NULL) + for (n = 0; n < TreeItemList_Count(&items); n++) { Tcl_Obj *subListObj = Tcl_NewListObj(0, NULL); + TreeItem item = TreeItemList_ItemN(&items, n); Tcl_ListObjAppendElement(interp, subListObj, - TreeItem_ToObj(tree, items[n])); - TreeItem_Identify2(tree, items[n], x1, y1, x2, y2, subListObj); + TreeItem_ToObj(tree, item)); + TreeItem_Identify2(tree, item, x1, y1, x2, y2, subListObj); Tcl_ListObjAppendElement(interp, listObj, subListObj); - n++; } - ckfree((char *) items); + TreeItemList_Free(&items); Tcl_SetObjResult(interp, listObj); break; } |