summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authortreectrl <treectrl>2005-09-07 20:31:11 (GMT)
committertreectrl <treectrl>2005-09-07 20:31:11 (GMT)
commit30951cd340e06e6880c051d591fd82b771a7cfef (patch)
treeffcac420eeb611513d4ba448828e9aad8b55f36c /generic
parent263087db797c317ad7dc5579c021a544ea50fecb (diff)
downloadtktreectrl-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.c31
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_)