diff options
author | treectrl <treectrl> | 2005-09-07 20:31:11 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2005-09-07 20:31:11 (GMT) |
commit | 30951cd340e06e6880c051d591fd82b771a7cfef (patch) | |
tree | ffcac420eeb611513d4ba448828e9aad8b55f36c /generic | |
parent | 263087db797c317ad7dc5579c021a544ea50fecb (diff) | |
download | tktreectrl-30951cd340e06e6880c051d591fd82b771a7cfef.zip tktreectrl-30951cd340e06e6880c051d591fd82b771a7cfef.tar.gz tktreectrl-30951cd340e06e6880c051d591fd82b771a7cfef.tar.bz2 |
Changed TreeItem_RemoveColumn to delete a range of columns. This is to support the updated [column delete] command.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tkTreeItem.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c index 4d4dbb1..13f4b54 100644 --- a/generic/tkTreeItem.c +++ b/generic/tkTreeItem.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: tkTreeItem.c,v 1.50 2005/07/23 00:37:42 treectrl Exp $ + * RCS: @(#) $Id: tkTreeItem.c,v 1.51 2005/09/07 20:31:11 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -1293,27 +1293,28 @@ void TreeItem_RemoveFromParent(TreeCtrl *tree, TreeItem item_) RemoveFromParentAux(tree, self, &index); } -void TreeItem_RemoveColumn(TreeCtrl *tree, TreeItem item_, TreeItemColumn column_) +void TreeItem_RemoveColumns(TreeCtrl *tree, TreeItem item_, int first, int last) { Item *self = (Item *) item_; - Column *column, *prev; + Column *column = self->columns; + Column *prev = NULL, *next = NULL; + int i = 0; - column = self->columns; - prev = NULL; while (column != NULL) { - if (column == (Column *) column_) { - if (prev != NULL) - prev->next = column->next; - else - self->columns = column->next; + next = column->next; + if (i == first - 1) + prev = column; + else if (i >= first) Column_FreeResources(tree, column); + if (i == last) break; - } - prev = column; - column = column->next; + ++i; + column = next; } - if (column == NULL) - panic("TreeItem_RemoveColumn: can't find column"); + if (prev != NULL) + prev->next = next; + else + self->columns = next; } void TreeItem_RemoveAllColumns(TreeCtrl *tree, TreeItem item_) |