summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authortreectrl <treectrl>2006-11-07 00:01:03 (GMT)
committertreectrl <treectrl>2006-11-07 00:01:03 (GMT)
commit44d7f03a0c042fc9ea42db49507c0c60436c589d (patch)
treef3b0dcd62709574bcaa773f46003a6000adad66d /generic
parent54d698161e8c3419869ac3697ca70f5e7be5445a (diff)
downloadtktreectrl-44d7f03a0c042fc9ea42db49507c0c60436c589d.zip
tktreectrl-44d7f03a0c042fc9ea42db49507c0c60436c589d.tar.gz
tktreectrl-44d7f03a0c042fc9ea42db49507c0c60436c589d.tar.bz2
Remove NEW_SPAN_CODE-related code.
Diffstat (limited to 'generic')
-rw-r--r--generic/tkTreeColumn.c18
-rw-r--r--generic/tkTreeCtrl.c8
-rw-r--r--generic/tkTreeCtrl.h9
-rw-r--r--generic/tkTreeDisplay.c103
-rw-r--r--generic/tkTreeItem.c61
5 files changed, 36 insertions, 163 deletions
diff --git a/generic/tkTreeColumn.c b/generic/tkTreeColumn.c
index fa6ce4b..8ca88b5 100644
--- a/generic/tkTreeColumn.c
+++ b/generic/tkTreeColumn.c
@@ -7,7 +7,7 @@
* Copyright (c) 2002-2003 Christian Krone
* Copyright (c) 2003 ActiveState Corporation
*
- * RCS: @(#) $Id: tkTreeColumn.c,v 1.57 2006/11/06 23:45:52 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeColumn.c,v 1.58 2006/11/07 00:01:03 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -1874,9 +1874,8 @@ Column_Move(
hPtr = Tcl_NextHashEntry(&search);
}
-#ifdef NEW_SPAN_CODE
+ /* Indicate that all items must recalculate their list of spans. */
TreeItem_SpansInvalidate(tree, NULL);
-#endif
#ifdef DEPRECATED
/* Re-order -defaultstyle */
@@ -2185,10 +2184,9 @@ Column_Config(
}
}
-#ifdef NEW_SPAN_CODE
+ /* Indicate that all items must recalculate their list of spans. */
if (visible != column->visible || lock != column->lock)
TreeItem_SpansInvalidate(tree, NULL);
-#endif
/* Wouldn't have to do this if Tk_InitOptions() would return
* a mask of configured options like Tk_SetOptions() does. */
@@ -3934,9 +3932,9 @@ TreeColumnCmd(
}
#endif
-#ifdef NEW_SPAN_CODE
+ /* Indicate that all items must recalculate their list of spans. */
TreeItem_SpansInvalidate(tree, NULL);
-#endif
+
Tree_DInfoChanged(tree, DINFO_REDO_COLUMN_WIDTH);
Tcl_SetObjResult(interp, TreeColumn_ToObj(tree, (TreeColumn) column));
break;
@@ -4073,12 +4071,12 @@ TreeColumnCmd(
Tree_DInfoChanged(tree, DINFO_REDO_COLUMN_WIDTH);
doneDELETE:
+ /* Indicate that all items must recalculate their list of spans. */
+ TreeItem_SpansInvalidate(tree, NULL);
+
TreeItemList_Free(&columns);
if (objc == 5)
TreeItemList_Free(&column2s);
-#ifdef NEW_SPAN_CODE
- TreeItem_SpansInvalidate(tree, NULL);
-#endif
break;
}
diff --git a/generic/tkTreeCtrl.c b/generic/tkTreeCtrl.c
index fe253b7..3b8016d 100644
--- a/generic/tkTreeCtrl.c
+++ b/generic/tkTreeCtrl.c
@@ -7,7 +7,7 @@
* Copyright (c) 2002-2003 Christian Krone
* Copyright (c) 2003-2005 ActiveState, a division of Sophos
*
- * RCS: @(#) $Id: tkTreeCtrl.c,v 1.81 2006/11/06 23:49:33 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeCtrl.c,v 1.82 2006/11/07 00:01:04 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -389,9 +389,7 @@ TreeObjCmd(
tkwin);
Tcl_InitHashTable(&tree->itemHash, TCL_ONE_WORD_KEYS);
-#ifdef NEW_SPAN_CODE
Tcl_InitHashTable(&tree->itemSpansHash, TCL_ONE_WORD_KEYS);
-#endif
Tcl_InitHashTable(&tree->elementHash, TCL_STRING_KEYS);
Tcl_InitHashTable(&tree->styleHash, TCL_STRING_KEYS);
Tcl_InitHashTable(&tree->imageNameHash, TCL_STRING_KEYS);
@@ -1733,9 +1731,7 @@ TreeDestroy(
}
Tcl_DeleteHashTable(&tree->itemHash);
-#ifdef NEW_SPAN_CODE
Tcl_DeleteHashTable(&tree->itemSpansHash);
-#endif
count = TreeItemList_Count(&tree->preserveItemList);
for (i = 0; i < count; i++) {
@@ -1997,11 +1993,9 @@ Tree_RemoveItem(
if (TreeItem_GetSelected(tree, item))
Tree_RemoveFromSelection(tree, item);
-#ifdef NEW_SPAN_CODE
hPtr = Tcl_FindHashEntry(&tree->itemSpansHash, (char *) item);
if (hPtr != NULL)
Tcl_DeleteHashEntry(hPtr);
-#endif
hPtr = Tcl_FindHashEntry(&tree->itemHash,
(char *) TreeItem_GetID(tree, item));
diff --git a/generic/tkTreeCtrl.h b/generic/tkTreeCtrl.h
index aabceff..900ded7 100644
--- a/generic/tkTreeCtrl.h
+++ b/generic/tkTreeCtrl.h
@@ -7,7 +7,7 @@
* Copyright (c) 2002-2003 Christian Krone
* Copyright (c) 2003 ActiveState Corporation
*
- * RCS: @(#) $Id: tkTreeCtrl.h,v 1.66 2006/11/06 23:50:40 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeCtrl.h,v 1.67 2006/11/07 00:01:04 treectrl Exp $
*/
#include "tkPort.h"
@@ -38,7 +38,6 @@
#define COLUMN_SPAN
#define COLUMN_LOCK
#define DEPRECATED
-#define NEW_SPAN_CODE
typedef struct TreeCtrl TreeCtrl;
typedef struct TreeColumn_ *TreeColumn;
@@ -296,9 +295,7 @@ struct TreeCtrl
int nextItemId;
int nextColumnId;
Tcl_HashTable itemHash; /* TreeItem.id -> TreeItem */
-#ifdef NEW_SPAN_CODE
Tcl_HashTable itemSpansHash; /* TreeItem -> nothing */
-#endif
Tcl_HashTable elementHash; /* Element.name -> Element */
Tcl_HashTable styleHash; /* Style.name -> Style */
Tcl_HashTable imageNameHash; /* image name -> TreeImageRef */
@@ -512,12 +509,8 @@ extern int TreeItem_Height(TreeCtrl *tree, TreeItem self);
extern int TreeItem_TotalHeight(TreeCtrl *tree, TreeItem self);
extern void TreeItem_InvalidateHeight(TreeCtrl *tree, TreeItem self);
#ifdef COLUMN_LOCK
-#ifdef NEW_SPAN_CODE
extern void TreeItem_SpansInvalidate(TreeCtrl *tree, TreeItem item_);
extern int *TreeItem_GetSpans(TreeCtrl *tree, TreeItem item_);
-#else
-extern void TreeItem_GetSpans(TreeCtrl *tree, TreeItem item_, int *spans);
-#endif
extern void TreeItem_Draw(TreeCtrl *tree, TreeItem self, int lock, int x, int y, int width, int height, Drawable drawable, int minX, int maxX, int index);
#else
extern void TreeItem_Draw(TreeCtrl *tree, TreeItem self, int x, int y, int width, int height, Drawable drawable, int minX, int maxX, int index);
diff --git a/generic/tkTreeDisplay.c b/generic/tkTreeDisplay.c
index a2f6626..16e69b4 100644
--- a/generic/tkTreeDisplay.c
+++ b/generic/tkTreeDisplay.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 2002-2006 Tim Baker
*
- * RCS: @(#) $Id: tkTreeDisplay.c,v 1.54 2006/11/06 23:49:01 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeDisplay.c,v 1.55 2006/11/07 00:01:04 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -78,9 +78,6 @@ struct DItem
#ifdef COLUMN_SPAN
int *spans; /* span[n] is the column index of the item
* column displayed at the n'th tree column. */
-#ifndef NEW_SPAN_CODE
- int spanAlloc; /* Size of spans[] */
-#endif
#endif
};
@@ -2358,11 +2355,6 @@ DItem_Alloc(
{
DInfo *dInfo = (DInfo *) tree->dInfo;
DItem *dItem;
-#ifdef COLUMN_SPAN
-#ifndef NEW_SPAN_CODE
- int *spans = NULL, spanAlloc = 0;
-#endif
-#endif
dItem = (DItem *) TreeItem_GetDInfo(tree, rItem->item);
if (dItem != NULL)
@@ -2372,12 +2364,6 @@ DItem_Alloc(
if (dInfo->dItemFree != NULL) {
dItem = dInfo->dItemFree;
dInfo->dItemFree = dItem->next;
-#ifdef COLUMN_SPAN
-#ifndef NEW_SPAN_CODE
- spans = dItem->spans;
- spanAlloc = dItem->spanAlloc;
-#endif
-#endif
/* No free DItems, alloc a new one */
} else {
dItem = (DItem *) ckalloc(sizeof(DItem));
@@ -2392,12 +2378,6 @@ DItem_Alloc(
dItem->left.flags = DITEM_DIRTY | DITEM_ALL_DIRTY;
dItem->right.flags = DITEM_DIRTY | DITEM_ALL_DIRTY;
#endif
-#ifdef COLUMN_SPAN
-#ifndef NEW_SPAN_CODE
- dItem->spans = spans;
- dItem->spanAlloc = spanAlloc;
-#endif
-#endif
TreeItem_SetDInfo(tree, rItem->item, (TreeItemDInfo) dItem);
return dItem;
}
@@ -2641,31 +2621,6 @@ Tree_ItemsInArea(
}
}
-#ifdef COLUMN_SPAN
-static void
-UpdateSpansForItem(
- TreeCtrl *tree, /* Widget info. */
- DItem *dItem /* Display info for an item. */
- )
-{
-#ifdef NEW_SPAN_CODE
- dItem->spans = TreeItem_GetSpans(tree, dItem->item);
-#else
- int *spans = dItem->spans;
-
- if (spans == NULL) {
- spans = (int *) ckalloc(sizeof(int) * tree->columnCount);
- dItem->spanAlloc = tree->columnCount;
- } else if (dItem->spanAlloc < tree->columnCount) {
- spans = (int *) ckrealloc((char *) spans, sizeof(int) * tree->columnCount);
- dItem->spanAlloc = tree->columnCount;
- }
- TreeItem_GetSpans(tree, dItem->item, spans);
- dItem->spans = spans;
-#endif
-}
-#endif
-
#define DCOLUMN
#ifdef DCOLUMN
@@ -2731,21 +2686,17 @@ GetOnScreenColumnsForItemAux(
continue;
width = dInfo->columns[columnIndex].width;
#ifdef COLUMN_SPAN
-#ifdef NEW_SPAN_CODE
if (dItem->spans != NULL) {
-#endif
- if (dItem->spans[columnIndex] != columnIndex)
- goto next;
- /* Start of a span */
- for (i = columnIndex + 1; columnIndex < tree->columnCount &&
- dItem->spans[i] == columnIndex; i++) {
- width += dInfo->columns[i].width;
- }
- columnIndex = i - 1;
-#ifdef NEW_SPAN_CODE
+ if (dItem->spans[columnIndex] != columnIndex)
+ goto next;
+ /* Start of a span */
+ for (i = columnIndex + 1; columnIndex < tree->columnCount &&
+ dItem->spans[i] == columnIndex; i++) {
+ width += dInfo->columns[i].width;
+ }
+ columnIndex = i - 1;
}
#endif
-#endif
if (x < maxX && x + width > minX) {
TreeColumnList_Append(columns, column);
}
@@ -3040,7 +2991,7 @@ UpdateDInfoForRange(
dItem->index = index;
#ifdef COLUMN_SPAN
- UpdateSpansForItem(tree, dItem);
+ dItem->spans = TreeItem_GetSpans(tree, dItem->item);
#endif
/* Keep track of the maximum item size */
@@ -3153,7 +3104,7 @@ UpdateDInfoForRange(
dItem->index = index;
#ifdef COLUMN_SPAN
- UpdateSpansForItem(tree, dItem);
+ dItem->spans = TreeItem_GetSpans(tree, dItem->item);
#endif
/* Keep track of the maximum item size */
@@ -3374,7 +3325,7 @@ done:
dItem->index = index;
#ifdef COLUMN_SPAN
- UpdateSpansForItem(tree, dItem);
+ dItem->spans = TreeItem_GetSpans(tree, dItem->item);
#endif
/* Keep track of the maximum item size */
@@ -6593,22 +6544,18 @@ Tree_InvalidateItemDInfo(
}
#ifdef COLUMN_SPAN
-#ifdef NEW_SPAN_CODE
if (dItem->spans == NULL) {
width = dInfo->columns[columnIndex].width;
} else {
-#endif
- width = 0;
- i = dItem->spans[columnIndex];
- while (dItem->spans[i] == dItem->spans[columnIndex]) {
- width += dInfo->columns[i].width;
- if (++i == tree->columnCount)
- break;
- }
-#ifdef NEW_SPAN_CODE
+ width = 0;
+ i = dItem->spans[columnIndex];
+ while (dItem->spans[i] == dItem->spans[columnIndex]) {
+ width += dInfo->columns[i].width;
+ if (++i == tree->columnCount)
+ break;
+ }
}
#endif
-#endif
#ifdef COLUMN_LOCK
switch (TreeColumn_Lock(column)) {
@@ -7153,23 +7100,11 @@ TreeDInfo_Free(
#endif
while (dInfo->dItem != NULL) {
DItem *next = dInfo->dItem->next;
-#ifdef COLUMN_SPAN
-#ifndef NEW_SPAN_CODE
- if (dInfo->dItem->spans != NULL)
- ckfree((char *) dInfo->dItem->spans);
-#endif
-#endif
WFREE(dInfo->dItem, DItem);
dInfo->dItem = next;
}
while (dInfo->dItemFree != NULL) {
DItem *next = dInfo->dItemFree->next;
-#ifdef COLUMN_SPAN
-#ifndef NEW_SPAN_CODE
- if (dInfo->dItemFree->spans != NULL)
- ckfree((char *) dInfo->dItemFree->spans);
-#endif
-#endif
WFREE(dInfo->dItemFree, DItem);
dInfo->dItemFree = next;
}
diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c
index 54ae057..b597e5f 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.79 2006/11/06 23:45:32 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeItem.c,v 1.80 2006/11/07 00:01:04 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -49,20 +49,18 @@ struct Item {
TreeItemDInfo dInfo; /* display info, or NULL */
TreeItemRInfo rInfo; /* range info, or NULL */
Column *columns;
-#ifdef NEW_SPAN_CODE
int *spans; /* 1 per tree-column. spans[N] is the column index of
- * the item-column displayed in column N. If all this
- * item's columns have a span of 1, this field is NULL. */
- int spanAlloc;
-#endif
+ * the item-column displayed in column N. If this
+ * item's columns all have a span of 1, this field
+ * is NULL (unless it was previously allocated
+ * because some spans were > 1). */
+ int spanAlloc; /* Size of spans[]. */
#define ITEM_FLAG_DELETED 0x0001 /* Item is being deleted */
-#ifdef NEW_SPAN_CODE
#define ITEM_FLAG_SPANS_SIMPLE 0x0002 /* All spans are 1 */
#define ITEM_FLAG_SPANS_VALID 0x0004 /* Some spans are > 1, but we don't
* need to redo them. Also indicates
* we have an entry in
* TreeCtrl.itemSpansHash. */
-#endif /* NEW_SPAN_CODE */
int flags;
TagInfo *tagInfo; /* Tags. May be NULL. */
};
@@ -607,9 +605,8 @@ Item_Alloc(
if (tree->gotFocus)
item->state |= STATE_FOCUS;
item->indexVis = -1;
-#ifdef NEW_SPAN_CODE
+ /* In the typical case all spans are 1. */
item->flags |= ITEM_FLAG_SPANS_SIMPLE;
-#endif
Tree_AddItem(tree, (TreeItem) item);
return item;
}
@@ -3212,10 +3209,8 @@ TreeItem_FreeResources(
Tree_FreeItemDInfo(tree, item_, NULL);
if (self->rInfo != NULL)
Tree_FreeItemRInfo(tree, item_);
-#ifdef NEW_SPAN_CODE
if (self->spans != NULL)
ckfree((char *) self->spans);
-#endif
Tk_FreeConfigOptions((char *) self, tree->itemOptionTable, tree->tkwin);
/* Add the item record to the "preserved" list. It will be freed later. */
@@ -3647,8 +3642,6 @@ ItemDrawBackground(
#ifdef COLUMN_SPAN
-#ifdef NEW_SPAN_CODE
-
/*
*----------------------------------------------------------------------
*
@@ -3821,56 +3814,18 @@ TreeItem_SpansRedoIfNeeded(
}
}
-#endif /* NEW_SPAN_CODE */
-
int *
TreeItem_GetSpans(
TreeCtrl *tree, /* Widget info. */
TreeItem item_ /* Item token. */
)
{
-#ifdef NEW_SPAN_CODE
-
Item *self = (Item *) item_;
TreeItem_SpansRedoIfNeeded(tree, item_);
if (self->flags & ITEM_FLAG_SPANS_SIMPLE)
return NULL;
return self->spans;
-
-#else /* NEW_SPAN_CODE */
-
- Item *self = (Item *) item_;
- TreeColumn treeColumn = tree->columns;
- Column *column = self->columns;
- int columnIndex = 0, itemColumnIndex = 0, span = 1;
-#ifdef COLUMN_LOCK
- int lock = TreeColumn_Lock(treeColumn);
-#endif
-
- while (treeColumn != NULL) {
-#ifdef COLUMN_LOCK
- /* End current span if column lock changes. */
- if (TreeColumn_Lock(treeColumn) != lock) {
- lock = TreeColumn_Lock(treeColumn);
- span = 1;
- }
-#endif
- if (--span == 0) {
- if (TreeColumn_Visible(treeColumn))
- span = column ? column->span : 1;
- else
- span = 1;
- itemColumnIndex = columnIndex;
- }
- spans[columnIndex] = itemColumnIndex;
- ++columnIndex;
- treeColumn = TreeColumn_Next(treeColumn);
- if (column != NULL)
- column = column->next;
- }
-
-#endif /* NEW_SPAN_CODE */
}
/*
@@ -8235,12 +8190,10 @@ TreeItemCmd(
column = Item_CreateColumn(tree, item,
TreeColumn_Index(treeColumn), NULL);
if (column->span != cs[i].span) {
-#ifdef NEW_SPAN_CODE
if (cs[i].span > 1) {
item->flags &= ~ITEM_FLAG_SPANS_SIMPLE;
}
TreeItem_SpansInvalidate(tree, _item);
-#endif
column->span = cs[i].span;
TreeItemColumn_InvalidateSize(tree,
(TreeItemColumn) column);