summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tkTreeColumn.c320
-rw-r--r--generic/tkTreeCtrl.c25
-rw-r--r--generic/tkTreeCtrl.h39
-rw-r--r--generic/tkTreeDisplay.c241
-rw-r--r--generic/tkTreeDrag.c6
-rw-r--r--generic/tkTreeItem.c98
6 files changed, 75 insertions, 654 deletions
diff --git a/generic/tkTreeColumn.c b/generic/tkTreeColumn.c
index 8ca88b5..bec852d 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.58 2006/11/07 00:01:03 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeColumn.c,v 1.59 2006/11/07 01:24:46 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -87,9 +87,7 @@ struct Column
#define COLUMN_STATE_PRESSED 2
int state; /* -state */
-#ifdef COLUMN_LOCK
int lock; /* -lock */
-#endif
TreeCtrl *tree;
Tk_OptionTable optionTable;
@@ -263,9 +261,7 @@ Tk_ObjCustomOption uniformGroupCO =
static char *arrowST[] = { "none", "up", "down", (char *) NULL };
static char *arrowSideST[] = { "left", "right", (char *) NULL };
static char *stateST[] = { "normal", "active", "pressed", (char *) NULL };
-#ifdef COLUMN_LOCK
static CONST char *lockST[] = { "left", "none", "right", (char *) NULL };
-#endif
#define COLU_CONF_IMAGE 0x0001
#define COLU_CONF_NWIDTH 0x0002 /* neededWidth */
@@ -349,10 +345,8 @@ static Tk_OptionSpec columnSpecs[] = {
{TK_OPTION_JUSTIFY, "-justify", (char *) NULL, (char *) NULL,
"left", -1, Tk_Offset(Column, justify),
0, (ClientData) NULL, COLU_CONF_DISPLAY | COLU_CONF_JUSTIFY},
-#ifdef COLUMN_LOCK
{TK_OPTION_STRING_TABLE, "-lock", (char *) NULL, (char *) NULL,
"none", -1, Tk_Offset(Column, lock), 0, (ClientData) lockST, 0},
-#endif
{TK_OPTION_PIXELS, "-maxwidth", (char *) NULL, (char *) NULL,
(char *) NULL, Tk_Offset(Column, maxWidthObj),
Tk_Offset(Column, maxWidth),
@@ -647,9 +641,7 @@ ImageChangedProc(
column->neededHeight = -1;
tree->headerHeight = -1;
tree->widthOfColumns = -1;
-#ifdef COLUMN_LOCK
tree->widthOfColumnsLeft = tree->widthOfColumnsRight = -1;
-#endif
Tree_DInfoChanged(tree, DINFO_CHECK_COLUMN_WIDTH | DINFO_DRAW_HEADER);
}
@@ -823,9 +815,7 @@ typedef struct Qualifiers {
int states[3]; /* States that must be on or off. */
TagExpr expr; /* Tag expression. */
int exprOK; /* TRUE if expr is valid. */
-#ifdef COLUMN_LOCK
int lock; /* COLUMN_LOCK_xxx or -1 */
-#endif
int ntail; /* 1 for !tail,
* 0 for unspecified. */
} Qualifiers;
@@ -856,9 +846,7 @@ Qualifiers_Init(
q->visible = -1;
q->states[0] = q->states[1] = q->states[2] = 0;
q->exprOK = FALSE;
-#ifdef COLUMN_LOCK
q->lock = -1;
-#endif
q->ntail = 0;
}
@@ -893,23 +881,15 @@ Qualifiers_Scan(
int qual, j = startIndex;
static CONST char *qualifiers[] = {
-#ifdef COLUMN_LOCK
- "lock",
-#endif
- "state", "tag", "visible", "!tail", "!visible", NULL
+ "lock", "state", "tag", "visible", "!tail", "!visible", NULL
};
enum qualEnum {
-#ifdef COLUMN_LOCK
- QUAL_LOCK,
-#endif
- QUAL_STATE, QUAL_TAG, QUAL_VISIBLE, QUAL_NOT_TAIL, QUAL_NOT_VISIBLE
+ QUAL_LOCK, QUAL_STATE, QUAL_TAG, QUAL_VISIBLE, QUAL_NOT_TAIL,
+ QUAL_NOT_VISIBLE
};
/* Number of arguments used by qualifiers[]. */
static int qualArgs[] = {
-#ifdef COLUMN_LOCK
- 2,
-#endif
- 2, 2, 1, 1, 1
+ 2, 2, 2, 1, 1, 1
};
*argsUsed = 0;
@@ -924,7 +904,6 @@ Qualifiers_Scan(
goto errorExit;
}
switch ((enum qualEnum) qual) {
-#ifdef COLUMN_LOCK
case QUAL_LOCK:
{
if (Tcl_GetIndexFromObj(interp, objv[j + 1], lockST,
@@ -932,7 +911,6 @@ Qualifiers_Scan(
goto errorExit;
break;
}
-#endif
case QUAL_STATE:
{
int i, listObjc;
@@ -1023,10 +1001,8 @@ Qualifies(
return 0;
if (q->exprOK && !TagExpr_Eval(&q->expr, column->tagInfo))
return 0;
-#ifdef COLUMN_LOCK
if ((q->lock != -1) && (column->lock != q->lock))
return 0;
-#endif
return 1;
}
@@ -1854,17 +1830,10 @@ Column_Move(
TreeItem item;
int index, numStyles;
-#ifdef COLUMN_LOCK
if (move == before)
goto renumber;
if (move->index == before->index - 1)
goto renumber;
-#else
- if (move == before)
- return;
- if (move->index == before->index - 1)
- return;
-#endif
/* Move the column in every item */
hPtr = Tcl_FirstHashEntry(&tree->itemHash, &search);
@@ -1972,24 +1941,21 @@ Column_Move(
}
/* Renumber columns */
-#ifdef COLUMN_LOCK
renumber:
tree->columnLockLeft = NULL;
tree->columnLockNone = NULL;
tree->columnLockRight = NULL;
-#endif
+
index = 0;
column = (Column *) tree->columns;
while (column != NULL) {
column->index = index++;
-#ifdef COLUMN_LOCK
if (column->lock == COLUMN_LOCK_LEFT && tree->columnLockLeft == NULL)
tree->columnLockLeft = (TreeColumn) column;
if (column->lock == COLUMN_LOCK_NONE && tree->columnLockNone == NULL)
tree->columnLockNone = (TreeColumn) column;
if (column->lock == COLUMN_LOCK_RIGHT && tree->columnLockRight == NULL)
tree->columnLockRight = (TreeColumn) column;
-#endif
column = column->next;
}
@@ -1997,9 +1963,7 @@ renumber:
/* Must update column widths because of expansion. */
/* Also update columnTreeLeft. */
tree->widthOfColumns = -1;
-#ifdef COLUMN_LOCK
tree->widthOfColumnsLeft = tree->widthOfColumnsRight = -1;
-#endif
Tree_DInfoChanged(tree, DINFO_CHECK_COLUMN_WIDTH |
DINFO_INVALIDATE | DINFO_OUT_OF_DATE);
/* BUG 784245 */
@@ -2045,9 +2009,7 @@ Column_Config(
unsigned long gcMask;
/* int stateOld = Column_MakeState(column), stateNew;*/
int visible = column->visible;
-#ifdef COLUMN_LOCK
int lock = column->lock;
-#endif
for (error = 0; error <= 1; error++) {
if (error == 0) {
@@ -2237,7 +2199,6 @@ Column_Config(
Tree_DInfoChanged(tree, DINFO_INVALIDATE | DINFO_OUT_OF_DATE);
}
-#ifdef COLUMN_LOCK
if (!createFlag && (column->lock != lock)) {
Column *before = NULL;
switch (column->lock) {
@@ -2264,7 +2225,6 @@ Column_Config(
Column_Move(column, before);
Tree_DInfoChanged(tree, DINFO_REDO_COLUMN_WIDTH);
}
-#endif
if (mask & (COLU_CONF_NWIDTH | COLU_CONF_TWIDTH))
mask |= COLU_CONF_NHEIGHT;
@@ -2289,9 +2249,7 @@ Column_Config(
/* Redraw everything */
if (mask & (COLU_CONF_TWIDTH | COLU_CONF_NWIDTH | COLU_CONF_NHEIGHT)) {
tree->widthOfColumns = -1;
-#ifdef COLUMN_LOCK
tree->widthOfColumnsLeft = tree->widthOfColumnsRight = -1;
-#endif
Tree_DInfoChanged(tree, DINFO_CHECK_COLUMN_WIDTH | DINFO_DRAW_HEADER);
}
@@ -2346,9 +2304,7 @@ Column_Alloc(
#endif
column->neededWidth = column->neededHeight = -1;
tree->headerHeight = tree->widthOfColumns = -1;
-#ifdef COLUMN_LOCK
tree->widthOfColumnsLeft = tree->widthOfColumnsRight = -1;
-#endif
column->id = tree->nextColumnId++;
tree->columnCount++;
return column;
@@ -3486,7 +3442,6 @@ int TreeColumn_GetID(
return ((Column *) column_)->id;
}
-#ifdef COLUMN_LOCK
/*
*----------------------------------------------------------------------
*
@@ -3509,7 +3464,6 @@ int TreeColumn_Lock(
{
return ((Column *) column_)->lock;
}
-#endif
/*
*----------------------------------------------------------------------
@@ -3910,7 +3864,6 @@ TreeColumnCmd(
tree->columnLast = (TreeColumn) column;
((Column *) tree->columnTail)->index++;
-#ifdef COLUMN_LOCK
{
Column *before = NULL;
switch (column->lock) {
@@ -3930,7 +3883,6 @@ TreeColumnCmd(
before = (Column *) tree->columnTail;
Column_Move(column, before);
}
-#endif
/* Indicate that all items must recalculate their list of spans. */
TreeItem_SpansInvalidate(tree, NULL);
@@ -3979,11 +3931,10 @@ TreeColumnCmd(
((Column *) tree->columnTail)->index = 0;
tree->columns = NULL;
tree->columnLast = NULL;
-#ifdef COLUMN_LOCK
tree->columnLockLeft = NULL;
tree->columnLockNone = NULL;
tree->columnLockRight = NULL;
-#endif
+
/* Delete all TreeItemColumns */
hPtr = Tcl_FirstHashEntry(&tree->itemHash, &search);
while (hPtr != NULL) {
@@ -3995,9 +3946,7 @@ TreeColumnCmd(
tree->columnTree = NULL;
tree->columnDrag.column = tree->columnDrag.indColumn = NULL;
tree->widthOfColumns = tree->headerHeight = -1;
-#ifdef COLUMN_LOCK
tree->widthOfColumnsLeft = tree->widthOfColumnsRight = -1;
-#endif
Tree_DInfoChanged(tree, DINFO_REDO_COLUMN_WIDTH);
goto doneDELETE;
}
@@ -4043,31 +3992,26 @@ TreeColumnCmd(
}
}
-#ifdef COLUMN_LOCK
tree->columnLockLeft = NULL;
tree->columnLockNone = NULL;
tree->columnLockRight = NULL;
-#endif
+
index = 0;
column = (Column *) tree->columns;
while (column != NULL) {
column->index = index++;
-#ifdef COLUMN_LOCK
if (column->lock == COLUMN_LOCK_LEFT && tree->columnLockLeft == NULL)
tree->columnLockLeft = (TreeColumn) column;
if (column->lock == COLUMN_LOCK_NONE && tree->columnLockNone == NULL)
tree->columnLockNone = (TreeColumn) column;
if (column->lock == COLUMN_LOCK_RIGHT && tree->columnLockRight == NULL)
tree->columnLockRight = (TreeColumn) column;
-#endif
column = column->next;
}
((Column *) tree->columnTail)->index = index;
tree->widthOfColumns = tree->headerHeight = -1;
-#ifdef COLUMN_LOCK
tree->widthOfColumnsLeft = tree->widthOfColumnsRight = -1;
-#endif
Tree_DInfoChanged(tree, DINFO_REDO_COLUMN_WIDTH);
doneDELETE:
@@ -4226,9 +4170,8 @@ doneDELETE:
{
TreeColumn _move, _before;
Column *move, *before;
-#ifdef COLUMN_LOCK
Column *first = NULL, *last = (Column *) tree->columnTail;
-#endif
+
if (objc != 5) {
Tcl_WrongNumArgs(interp, 3, objv, "column before");
return TCL_ERROR;
@@ -4244,7 +4187,6 @@ doneDELETE:
if ((move == before) || (move->index == before->index - 1))
break;
-#ifdef COLUMN_LOCK
switch (move->lock) {
case COLUMN_LOCK_LEFT:
first = (Column *) tree->columnLockLeft;
@@ -4269,8 +4211,10 @@ doneDELETE:
tree->columnPrefix, before->id);
return TCL_ERROR;
}
-#endif
Column_Move(move, before);
+
+ /* Indicate that all items must recalculate their list of spans. */
+ TreeItem_SpansInvalidate(tree, NULL);
break;
}
@@ -4688,7 +4632,6 @@ SetImageForColumn(
NULL, (ClientData) NULL);
}
-#ifdef COLUMN_LOCK
static void
DrawHeaderLeft(
TreeCtrl *tree, /* Widget info. */
@@ -4748,7 +4691,6 @@ DrawHeaderRight(
Tk_FreePixmap(tree->display, pixmap);
}
-#endif /* COLUMN_LOCK */
/*
*----------------------------------------------------------------------
@@ -4791,12 +4733,8 @@ Tree_DrawHeader(
else
pixmap = drawable;
-#ifdef COLUMN_LOCK
column = (Column *) tree->columnLockNone;
while (column != NULL && column->lock == COLUMN_LOCK_NONE) {
-#else
- while (column != NULL) {
-#endif
if (column->visible) {
if ((x < maxX) && (x + column->useWidth > minX))
Column_Draw(column, pixmap, x, y, FALSE);
@@ -4823,10 +4761,8 @@ Tree_DrawHeader(
}
}
-#ifdef COLUMN_LOCK
DrawHeaderLeft(tree, pixmap);
DrawHeaderRight(tree, pixmap);
-#endif
{
Tk_Image image = NULL;
@@ -4990,9 +4926,7 @@ Tree_InvalidateColumnWidth(
column->widthOfItems = -1;
}
tree->widthOfColumns = -1;
-#ifdef COLUMN_LOCK
tree->widthOfColumnsLeft = tree->widthOfColumnsRight = -1;
-#endif
Tree_DInfoChanged(tree, DINFO_CHECK_COLUMN_WIDTH | DINFO_DRAW_HEADER);
}
@@ -5156,7 +5090,6 @@ TreeColumn_Bbox(
/* Get width (and update column layout) */
*w = TreeColumn_UseWidth(column);
-#ifdef COLUMN_LOCK
switch (TreeColumn_Lock(column)) {
case COLUMN_LOCK_LEFT:
left = Tree_BorderLeft(tree);
@@ -5167,7 +5100,6 @@ TreeColumn_Bbox(
left = Tree_ContentRight(tree);
break;
}
-#endif
*x = left + TreeColumn_Offset(column);
return 0;
@@ -5221,7 +5153,6 @@ Tree_HeaderUnderPoint(
y = Tree_ContentTop(tree) - 1;
}
-#ifdef COLUMN_LOCK
/* Test the columns in reverse of drawing order. */
column = tree->columnLockRight;
while ((column != NULL) && (TreeColumn_Lock(column) == COLUMN_LOCK_RIGHT)) {
@@ -5252,16 +5183,6 @@ Tree_HeaderUnderPoint(
}
column = TreeColumn_Next(column);
}
-#else
- while (column != NULL) {
- if (TreeColumn_Bbox(column, &left, &top, &width, &height) == 0) {
- if ((x >= left) && (x < left + width)) {
- goto done;
- }
- }
- column = TreeColumn_Next(column);
- }
-#endif
column = tree->columnTail;
left = Tree_WidthOfColumns(tree) - tree->xOrigin;
@@ -5274,8 +5195,6 @@ done:
return column;
}
-#ifdef COLUMN_LOCK
-
/*
*----------------------------------------------------------------------
*
@@ -5631,221 +5550,6 @@ Tree_WidthOfRightColumns(
return tree->widthOfColumnsRight;
}
-#else /* COLUMN_LOCK */
-
-/*
- *----------------------------------------------------------------------
- *
- * Tree_LayoutColumns --
- *
- * Calculates the display width of every column.
- *
- * Results:
- * The useWidth field of every column is updated.
- *
- * Side effects:
- * The size of elements and styles will be updated if they are
- * marked out-of-date.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tree_LayoutColumns(
- TreeCtrl *tree /* Widget info. */
- )
-{
- Column *column = (Column *) tree->columns;
- int width, visWidth, totalWidth = 0;
- int numExpand = 0, numSqueeze = 0;
-#ifdef UNIFORM_GROUP
- Tcl_HashEntry *hPtr;
- Tcl_HashSearch search;
- UniformGroup *uniform;
- int uniformCount = 0;
-
- hPtr = Tcl_FirstHashEntry(&tree->uniformGroupHash, &search);
- while (hPtr != NULL) {
- uniform = (UniformGroup *) Tcl_GetHashValue(hPtr);
- uniform->minSize = 0;
- hPtr = Tcl_NextHashEntry(&search);
- }
-#endif
-
- while (column != NULL) {
- if (column->visible) {
- if (column->widthObj != NULL)
- width = column->width;
- else {
- width = TreeColumn_WidthOfItems((TreeColumn) column);
- width = MAX(width, TreeColumn_NeededWidth((TreeColumn) column));
- width = MAX(width, TreeColumn_MinWidth((TreeColumn) column));
- if (TreeColumn_MaxWidth((TreeColumn) column) != -1)
- width = MIN(width, TreeColumn_MaxWidth((TreeColumn) column));
-#ifdef UNIFORM_GROUP
- /* Track the maximum requested width of every column in this
- * column's uniform group considering -weight. */
- if (column->uniform != NULL) {
- int weight = MAX(column->weight, 1);
- int minSize = (width + weight - 1) / weight;
- if (minSize > column->uniform->minSize)
- column->uniform->minSize = minSize;
- uniformCount++;
- }
- if (column->expand)
- numExpand += MAX(column->weight, 0);
- if (column->squeeze)
- numSqueeze += MAX(column->weight, 0);
-#else
- if (column->expand)
- numExpand++;
- if (column->squeeze)
- numSqueeze++;
-#endif
- }
- column->useWidth = width;
- totalWidth += width;
- } else
- column->useWidth = 0;
- column = column->next;
- }
-
-#ifdef UNIFORM_GROUP
- /* Apply the -uniform and -weight options. */
- if (uniformCount > 0) {
- column = (Column *) tree->columns;
- while (column != NULL) {
- if (column->visible &&
- column->widthObj == NULL &&
- column->uniform != NULL) {
- int weight = MAX(column->weight, 1);
- totalWidth -= column->useWidth;
- width = column->uniform->minSize * weight;
- if (column->maxWidthObj != NULL)
- width = MIN(width, column->maxWidth);
- column->useWidth = width;
- totalWidth += width;
- }
- column = column->next;
- }
- }
-#endif /* UNIFORM_GROUP */
-
- visWidth = Tree_ContentWidth(tree);
- if (visWidth <= 0) return;
-
- /* Squeeze columns */
- if ((visWidth < totalWidth) && (numSqueeze > 0)) {
- int spaceRemaining = totalWidth - visWidth;
- while ((spaceRemaining > 0) && (numSqueeze > 0)) {
- int each = (spaceRemaining >= numSqueeze) ?
- spaceRemaining / numSqueeze : 1;
- numSqueeze = 0;
- column = (Column *) tree->columns;
- while (column != NULL) {
- if (column->visible &&
- column->squeeze &&
- (column->widthObj == NULL)) {
- int min = MAX(0, TreeColumn_MinWidth((TreeColumn) column));
- if (column->useWidth > min) {
- int sub = MIN(each, column->useWidth - min);
- column->useWidth -= sub;
- spaceRemaining -= sub;
- if (!spaceRemaining) break;
- if (column->useWidth > min)
- numSqueeze++;
- }
- }
- column = column->next;
- }
- }
- }
-
- /* Expand columns */
- if ((visWidth > totalWidth) && (numExpand > 0)) {
- int spaceRemaining = visWidth - totalWidth;
- while ((spaceRemaining > 0) && (numExpand > 0)) {
- int each = (spaceRemaining >= numExpand) ?
- spaceRemaining / numExpand : 1;
- numExpand = 0;
- column = (Column *) tree->columns;
- while (column != NULL) {
-#ifdef UNIFORM_GROUP
- int weight = MAX(column->weight, 0);
- if (column->visible &&
- column->expand && weight &&
- (column->widthObj == NULL)) {
- int max = TreeColumn_MaxWidth((TreeColumn) column);
- if ((max == -1) || (column->useWidth < max)) {
- int eachW = MIN(each * weight, spaceRemaining);
- int add = (max == -1) ? eachW : MIN(eachW, max - column->useWidth);
- column->useWidth += add;
- spaceRemaining -= add;
- if (!spaceRemaining) break;
- if ((max == -1) || (column->useWidth < max))
- numExpand += weight;
-#else
- if (column->visible &&
- column->expand &&
- (column->widthObj == NULL)) {
- int max = TreeColumn_MaxWidth((TreeColumn) column);
- if ((max == -1) || (column->useWidth < max)) {
- int add = (max == -1) ? each : MIN(each, max - column->useWidth);
- column->useWidth += add;
- spaceRemaining -= add;
- if (!spaceRemaining) break;
- if ((max == -1) || (column->useWidth < max))
- numExpand++;
-#endif
- }
- }
- column = column->next;
- }
- }
- }
-}
-
-int
-Tree_WidthOfColumns(
- TreeCtrl *tree /* Widget info. */
- )
-{
- Column *column;
- int width;
-
- if (tree->widthOfColumns >= 0)
- return tree->widthOfColumns;
-
- Tree_LayoutColumns(tree);
-
- tree->columnTreeLeft = 0;
- tree->columnTreeVis = FALSE;
- tree->columnVis = NULL;
- tree->columnCountVis = 0;
- width = 0;
- column = (Column *) tree->columns;
- while (column != NULL) {
- if (column->visible) {
- if (tree->columnVis == NULL)
- tree->columnVis = (TreeColumn) column;
- tree->columnCountVis++;
- if (column == (Column *) tree->columnTree) {
- tree->columnTreeLeft = width;
- tree->columnTreeVis = TRUE;
- }
- column->offset = width;
- width += column->useWidth;
- }
- column = column->next;
- }
-
- tree->widthOfColumns = width;
-
- return tree->widthOfColumns;
-}
-
-#endif /* COLUMN_LOCK */
-
/*
*----------------------------------------------------------------------
*
diff --git a/generic/tkTreeCtrl.c b/generic/tkTreeCtrl.c
index 3b8016d..1fd38d9 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.82 2006/11/07 00:01:04 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeCtrl.c,v 1.83 2006/11/07 01:24:46 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -563,12 +563,10 @@ static int TreeWidgetCmd(
TreeItem_ChangeState(tree, active, STATE_ACTIVE, 0);
tree->activeItem = item;
TreeItem_ChangeState(tree, tree->activeItem, 0, STATE_ACTIVE);
-#ifdef COLUMN_LOCK
+
/* FIXME: is it onscreen? */
+ /* FIXME: what if only lock columns displayed? */
if (Tree_ItemBbox(tree, item, COLUMN_LOCK_NONE, &x, &y, &w, &h) >= 0) {
-#else
- if (Tree_ItemBbox(tree, item, &x, &y, &w, &h) >= 0) {
-#endif
Tk_SetCaretPos(tree->tkwin, x - tree->xOrigin,
y - tree->yOrigin, h);
}
@@ -815,9 +813,7 @@ static int TreeWidgetCmd(
TreeItem item;
char buf[64];
int hit;
-#ifdef COLUMN_LOCK
int lock;
-#endif
/*
set id [$tree identify $x $y]
"item I column C" : mouse is in column C of item I
@@ -876,7 +872,6 @@ static int TreeWidgetCmd(
if (item == tree->root)
depth = (tree->showButtons && tree->showRootButton) ? 1 : 0;
-#ifdef COLUMN_LOCK
lock = (hit == TREE_AREA_LEFT) ? COLUMN_LOCK_LEFT :
(hit == TREE_AREA_RIGHT) ? COLUMN_LOCK_RIGHT :
COLUMN_LOCK_NONE;
@@ -885,10 +880,6 @@ static int TreeWidgetCmd(
if (tree->columnTreeVis &&
(TreeColumn_Lock(tree->columnTree) == lock) &&
(x >= tree->columnTreeLeft) &&
-#else
- /* Point is in a line or button */
- if (tree->columnTreeVis && (x >= tree->columnTreeLeft) &&
-#endif
(x < tree->columnTreeLeft + TreeColumn_UseWidth(tree->columnTree)) &&
(x < tree->columnTreeLeft + depth * tree->useIndent)) {
int column = (x - tree->columnTreeLeft) / tree->useIndent + 1;
@@ -909,11 +900,7 @@ static int TreeWidgetCmd(
TreeItem_GetID(tree, item)); /* TreeItem_ToObj() */
}
} else {
-#ifdef COLUMN_LOCK
TreeItem_Identify(tree, item, lock, x, y, buf);
-#else
- TreeItem_Identify(tree, item, x, y, buf);
-#endif
}
Tcl_SetResult(interp, buf, TCL_VOLATILE);
break;
@@ -1122,11 +1109,7 @@ static int TreeWidgetCmd(
goto error;
/* Canvas coords */
-#ifdef COLUMN_LOCK
if (Tree_ItemBbox(tree, item, COLUMN_LOCK_NONE, &x, &y, &w, &h) < 0)
-#else
- if (Tree_ItemBbox(tree, item, &x, &y, &w, &h) < 0)
-#endif
break;
if ((C2Wx(x) > maxX) || (C2Wx(x + w) <= minX) || (w <= visWidth)) {
@@ -1621,9 +1604,7 @@ TreeEventProc(
if ((tree->prevWidth != Tk_Width(tree->tkwin)) ||
(tree->prevHeight != Tk_Height(tree->tkwin))) {
tree->widthOfColumns = -1;
-#ifdef COLUMN_LOCK
tree->widthOfColumnsLeft = tree->widthOfColumnsRight = -1;
-#endif
Tree_RelayoutWindow(tree);
tree->prevWidth = Tk_Width(tree->tkwin);
tree->prevHeight = Tk_Height(tree->tkwin);
diff --git a/generic/tkTreeCtrl.h b/generic/tkTreeCtrl.h
index c9fbcf4..ca50f4b 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.68 2006/11/07 00:09:34 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeCtrl.h,v 1.69 2006/11/07 01:24:46 treectrl Exp $
*/
#include "tkPort.h"
@@ -35,7 +35,6 @@
#define SELECTION_VISIBLE
#define ALLOC_HAX
-#define COLUMN_LOCK
#define DEPRECATED
typedef struct TreeCtrl TreeCtrl;
@@ -271,7 +270,6 @@ struct TreeCtrl
int columnTreeVis; /* TRUE if columnTree is visible */
int columnBgCnt; /* Max -itembackground colors */
-#ifdef COLUMN_LOCK
#define COLUMN_LOCK_LEFT 0
#define COLUMN_LOCK_NONE 1
#define COLUMN_LOCK_RIGHT 2
@@ -282,7 +280,7 @@ struct TreeCtrl
int widthOfColumnsRight; /* Sum of right-locked column widths */
int columnCountVisLeft; /* Number of visible left-locked columns */
int columnCountVisRight; /* Number of visible right-locked columns */
-#endif
+
#define UNIFORM_GROUP
#ifdef UNIFORM_GROUP
Tcl_HashTable uniformGroupHash; /* -uniform -> UniformGroup */
@@ -408,22 +406,12 @@ extern int Tree_StateFromListObj(TreeCtrl *tree, Tcl_Obj *obj, int states[3], in
#define Tree_BorderBottom(tree) \
(Tk_Height(tree->tkwin) - tree->inset)
-#if defined(COLUMN_LOCK)
#define Tree_ContentLeft(tree) \
(Tree_BorderLeft(tree) + Tree_WidthOfLeftColumns(tree))
-#else
-#define Tree_ContentLeft(tree) \
- Tree_BorderLeft(tree)
-#endif
#define Tree_ContentTop(tree) \
(tree->inset + Tree_HeaderHeight(tree))
-#if defined(COLUMN_LOCK)
#define Tree_ContentRight(tree) \
(Tree_BorderRight(tree) - Tree_WidthOfRightColumns(tree))
-#else
-#define Tree_ContentRight(tree) \
- Tree_BorderRight(tree)
-#endif
#define Tree_ContentBottom(tree) \
Tree_BorderBottom(tree)
@@ -507,13 +495,9 @@ extern void TreeItem_ListDescendants(TreeCtrl *tree, TreeItem item_, TreeItemLis
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
extern void TreeItem_SpansInvalidate(TreeCtrl *tree, TreeItem item_);
extern int *TreeItem_GetSpans(TreeCtrl *tree, TreeItem item_);
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);
-#endif
extern void TreeItem_DrawLines(TreeCtrl *tree, TreeItem self, int x, int y, int width, int height, Drawable drawable);
extern void TreeItem_DrawButton(TreeCtrl *tree, TreeItem self, int x, int y, int width, int height, Drawable drawable);
extern int TreeItem_ReallyVisible(TreeCtrl *tree, TreeItem self);
@@ -527,24 +511,15 @@ extern TreeItem TreeItem_Next(TreeCtrl *tree, TreeItem item);
extern TreeItem TreeItem_NextVisible(TreeCtrl *tree, TreeItem item);
extern TreeItem TreeItem_Prev(TreeCtrl *tree, TreeItem item);
extern TreeItem TreeItem_PrevVisible(TreeCtrl *tree, TreeItem item);
-#ifdef COLUMN_LOCK
extern void TreeItem_Identify(TreeCtrl *tree, TreeItem item_, int lock, int x, int y, char *buf);
-#else
-extern void TreeItem_Identify(TreeCtrl *tree, TreeItem item_, int x, int y, char *buf);
-#endif
extern void TreeItem_Identify2(TreeCtrl *tree, TreeItem item_,
int x1, int y1, int x2, int y2, Tcl_Obj *listObj);
extern int TreeItem_Indent(TreeCtrl *tree, TreeItem item_);
extern void Tree_UpdateItemIndex(TreeCtrl *tree);
extern void Tree_DeselectHidden(TreeCtrl *tree);
extern int TreeItemCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]);
-#ifdef COLUMN_LOCK
extern void TreeItem_UpdateWindowPositions(TreeCtrl *tree, TreeItem item_,
int lock, int x, int y, int width, int height);
-#else
-extern void TreeItem_UpdateWindowPositions(TreeCtrl *tree, TreeItem item_,
- int x, int y, int width, int height);
-#endif
extern void TreeItem_OnScreen(TreeCtrl *tree, TreeItem item_, int onScreen);
extern TreeItemColumn TreeItem_GetFirstColumn(TreeCtrl *tree, TreeItem item);
@@ -705,12 +680,10 @@ extern void Tree_InvalidateColumnHeight(TreeCtrl *tree, TreeColumn column);
extern int Tree_HeaderHeight(TreeCtrl *tree);
extern int TreeColumn_Bbox(TreeColumn column, int *x, int *y, int *w, int *h);
extern TreeColumn Tree_HeaderUnderPoint(TreeCtrl *tree, int *x_, int *y_, int *w, int *h, int nearest);
-extern int Tree_WidthOfColumns(TreeCtrl *tree);
-#ifdef COLUMN_LOCK
extern int TreeColumn_Lock(TreeColumn column_);
+extern int Tree_WidthOfColumns(TreeCtrl *tree);
extern int Tree_WidthOfLeftColumns(TreeCtrl *tree);
extern int Tree_WidthOfRightColumns(TreeCtrl *tree);
-#endif
extern void TreeColumn_TreeChanged(TreeCtrl *tree, int flagT);
/* tkTreeDrag.c */
@@ -734,11 +707,7 @@ extern int Tree_TotalWidth(TreeCtrl *tree);
extern int Tree_TotalHeight(TreeCtrl *tree);
extern TreeItem Tree_ItemUnderPoint(TreeCtrl *tree, int *x, int *y, int nearest);
extern void Tree_FreeItemRInfo(TreeCtrl *tree, TreeItem item);
-#ifdef COLUMN_LOCK
extern int Tree_ItemBbox(TreeCtrl *tree, TreeItem item, int lock, int *x, int *y, int *w, int *h);
-#else
-extern int Tree_ItemBbox(TreeCtrl *tree, TreeItem item, int *x, int *y, int *w, int *h);
-#endif
extern TreeItem Tree_ItemAbove(TreeCtrl *tree, TreeItem item);
extern TreeItem Tree_ItemBelow(TreeCtrl *tree, TreeItem item);
extern TreeItem Tree_ItemLeft(TreeCtrl *tree, TreeItem item);
@@ -755,10 +724,8 @@ enum {
TREE_AREA_NONE = 0,
TREE_AREA_HEADER,
TREE_AREA_CONTENT,
-#ifdef COLUMN_LOCK
TREE_AREA_LEFT,
TREE_AREA_RIGHT
-#endif
};
extern int Tree_HitTest(TreeCtrl *tree, int x, int y);
diff --git a/generic/tkTreeDisplay.c b/generic/tkTreeDisplay.c
index 63ecc15..de505d0 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.56 2006/11/07 00:09:34 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeDisplay.c,v 1.57 2006/11/07 01:24:46 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -67,16 +67,14 @@ struct DItem
int y; /* Where it should be drawn, window coords. */
int height; /* Current height. */
DItemArea area;
+ DItemArea left, right;
int oldX, oldY; /* Where it was last drawn, window coords. */
Range *range; /* Range the TreeItem is in. */
int index; /* Used for alternating background colors. */
int oldIndex; /* Used for alternating background colors. */
- DItem *next;
-#ifdef COLUMN_LOCK
- DItemArea left, right;
-#endif
int *spans; /* span[n] is the column index of the item
* column displayed at the n'th tree column. */
+ DItem *next;
};
typedef struct ColumnInfo {
@@ -123,7 +121,6 @@ struct DInfo
int requests; /* Incremented for every call to
Tree_EventuallyRedraw */
int bounds[4], empty; /* Bounds of TREE_AREA_CONTENT */
-#ifdef COLUMN_LOCK
int boundsL[4], emptyL; /* Bounds of TREE_AREA_LEFT */
int boundsR[4], emptyR; /* Bounds of TREE_AREA_RIGHT */
int widthOfColumnsLeft; /* Last seen Tree_WidthOfLeftColumns() */
@@ -132,7 +129,6 @@ struct DInfo
* columns, this range holds the vertical
* offset and height of each ReallyVisible
* item for displaying locked columns. */
-#endif
};
/*========*/
@@ -369,7 +365,6 @@ freeRanges:
while (rangeList != NULL)
rangeList = Range_Free(tree, rangeList);
-#ifdef COLUMN_LOCK
/* If there are no visible non-locked columns, we won't have a Range.
* But we need to know the offset/size of each item for drawing any
* locked columns (and for vertical scrolling... and hit testing). */
@@ -423,7 +418,6 @@ freeRanges:
range->totalHeight = pixels;
range->prev = range->next = NULL;
}
-#endif /* COLUMN_COUNT */
}
/*
@@ -747,14 +741,14 @@ Tree_TotalHeight(
}
range = range->next;
}
-#ifdef COLUMN_LOCK
+
/* If dInfo->rangeLock is not NULL, then we are displaying some items
* in locked columns but no non-locked columns. */
if (dInfo->rangeLock != NULL) {
if (dInfo->rangeLock->totalHeight > tree->totalHeight)
tree->totalHeight = dInfo->rangeLock->totalHeight;
}
-#endif
+
return tree->totalHeight;
}
@@ -1140,7 +1134,7 @@ RItemsToIncrementsY(
)
{
DInfo *dInfo = (DInfo *) tree->dInfo;
- Range *range;
+ Range *range, *rangeFirst;
RItem *rItem;
int visHeight = Tree_ContentHeight(tree);
int totalHeight = Tree_TotalHeight(tree);
@@ -1155,18 +1149,15 @@ RItemsToIncrementsY(
dInfo->yScrollIncrements = (int *) ckalloc(size * sizeof(int));
dInfo->yScrollIncrements[dInfo->yScrollIncrementCount++] = 0;
-#ifdef COLUMN_LOCK
/* If only locked columns are visible, we still scroll vertically. */
- if (dInfo->rangeFirst == NULL)
- dInfo->rangeFirst = dInfo->rangeLock;
-#endif
+ rangeFirst = dInfo->rangeFirst;
+ if (rangeFirst == NULL)
+ rangeFirst = dInfo->rangeLock;
y1 = 0;
while (1) {
y2 = totalHeight;
- for (range = dInfo->rangeFirst;
- range != NULL;
- range = range->next) {
+ for (range = rangeFirst; range != NULL; range = range->next) {
if (y1 >= range->totalHeight)
continue;
@@ -1182,12 +1173,6 @@ RItemsToIncrementsY(
y1 = y2;
}
-#ifdef COLUMN_LOCK
- /* Reverse-hack. */
- if (dInfo->rangeFirst == dInfo->rangeLock)
- dInfo->rangeFirst = NULL;
-#endif
-
if ((visHeight > 1) && (totalHeight -
dInfo->yScrollIncrements[dInfo->yScrollIncrementCount - 1] > visHeight)) {
size = Increment_AddY(tree, totalHeight, size);
@@ -1743,8 +1728,6 @@ Tree_ItemUnderPoint(
{
Range *range;
RItem *rItem;
-
-#ifdef COLUMN_LOCK
int hit;
hit = Tree_HitTest(tree, *x_, *y_);
@@ -1754,7 +1737,7 @@ Tree_ItemUnderPoint(
Range_RedoIfNeeded(tree);
range = dInfo->rangeFirst;
- /* If range is NULL use dInfo->rangeLock */
+ /* If range is NULL use dInfo->rangeLock. */
if (range == NULL) {
if (dInfo->rangeLock == NULL)
return NULL;
@@ -1781,7 +1764,6 @@ Tree_ItemUnderPoint(
}
return NULL;
}
-#endif /* COLUMN_LOCK */
range = Range_UnderPoint(tree, x_, y_, nearest);
if (range == NULL)
@@ -1833,7 +1815,6 @@ Tree_AreaBbox(
x2 = Tree_ContentRight(tree);
y2 = Tree_ContentBottom(tree);
break;
-#ifdef COLUMN_LOCK
case TREE_AREA_LEFT:
x1 = Tree_BorderLeft(tree);
y1 = Tree_ContentTop(tree);
@@ -1849,7 +1830,6 @@ Tree_AreaBbox(
x2 = Tree_BorderRight(tree);
y2 = Tree_ContentBottom(tree);
break;
-#endif
}
if (x2 <= x1 || y2 <= y1)
@@ -1903,7 +1883,6 @@ Tree_HitTest(
if (y < tree->inset + Tree_HeaderHeight(tree)) {
return TREE_AREA_HEADER;
}
-#ifdef COLUMN_LOCK
/* Right-locked columns are drawn over the left. */
if (x >= Tree_ContentRight(tree)) {
return TREE_AREA_RIGHT;
@@ -1911,7 +1890,9 @@ Tree_HitTest(
if (x < Tree_ContentLeft(tree)) {
return TREE_AREA_LEFT;
}
-#endif
+ if (Tree_ContentLeft(tree) >= Tree_ContentRight(tree)) {
+ return TREE_AREA_NONE;
+ }
return TREE_AREA_CONTENT;
}
@@ -1938,9 +1919,7 @@ int
Tree_ItemBbox(
TreeCtrl *tree, /* Widget info. */
TreeItem item, /* Item whose bbox is needed. */
-#ifdef COLUMN_LOCK
int lock,
-#endif
int *x, int *y, /* Returned left and top. */
int *w, int *h /* Returned width and height. */
)
@@ -1948,12 +1927,15 @@ Tree_ItemBbox(
Range *range;
RItem *rItem;
-#ifdef COLUMN_LOCK
if (!TreeItem_ReallyVisible(tree, item))
return -1;
+
+ /* Update columnCountVisXXX if needed */
+ (void) Tree_WidthOfColumns(tree);
+
Range_RedoIfNeeded(tree);
rItem = (RItem *) TreeItem_GetRInfo(tree, item);
- (void) Tree_WidthOfColumns(tree);
+
switch (lock) {
case COLUMN_LOCK_LEFT:
if (tree->columnCountVisLeft == 0)
@@ -1968,21 +1950,16 @@ Tree_ItemBbox(
case COLUMN_LOCK_RIGHT:
if (tree->columnCountVisRight == 0)
return -1;
- *x = Tree_ContentRight(tree) + tree->xOrigin;
+ *x = Tree_ContentRight(tree) + tree->xOrigin; /* window -> canvas */
*y = rItem->offset;
*w = Tree_WidthOfRightColumns(tree);
*h = rItem->size;
return 0;
}
-#endif
- /* Update columnCountVis if needed */
- (void) Tree_WidthOfColumns(tree);
-
- if (!TreeItem_ReallyVisible(tree, item) || (tree->columnCountVis < 1))
+ if (tree->columnCountVis < 1)
return -1;
- Range_RedoIfNeeded(tree);
- rItem = (RItem *) TreeItem_GetRInfo(tree, item);
+
range = rItem->range;
if (tree->vertical) {
(*x) = range->offset;
@@ -2372,10 +2349,8 @@ DItem_Alloc(
#endif
dItem->item = rItem->item;
dItem->area.flags = DITEM_DIRTY | DITEM_ALL_DIRTY;
-#ifdef COLUMN_LOCK
dItem->left.flags = DITEM_DIRTY | DITEM_ALL_DIRTY;
dItem->right.flags = DITEM_DIRTY | DITEM_ALL_DIRTY;
-#endif
TreeItem_SetDInfo(tree, rItem->item, (TreeItemDInfo) dItem);
return dItem;
}
@@ -2644,9 +2619,7 @@ GetOnScreenColumnsForItemAux(
DItem *dItem, /* Display info for an item. */
DItemArea *area, /* Layout info. */
int bounds[4], /* TREE_AREA_xxx bounds. */
-#ifdef COLUMN_LOCK
int lock, /* Set of columns we care about. */
-#endif
TreeColumnList *columns /* Initialized list to append to. */
)
{
@@ -2660,7 +2633,6 @@ GetOnScreenColumnsForItemAux(
minX -= area->x;
maxX -= area->x;
-#ifdef COLUMN_LOCK
switch (lock) {
case COLUMN_LOCK_LEFT:
columnIndex = TreeColumn_Index(tree->columnLockLeft);
@@ -2672,14 +2644,11 @@ GetOnScreenColumnsForItemAux(
columnIndex = TreeColumn_Index(tree->columnLockRight);
break;
}
-#endif
for (/* nothing */; columnIndex < tree->columnCount; columnIndex++) {
column = dInfo->columns[columnIndex].column;
-#ifdef COLUMN_LOCK
if (TreeColumn_Lock(column) != lock)
break;
-#endif
if (!TreeColumn_Visible(column))
continue;
width = dInfo->columns[columnIndex].width;
@@ -2728,28 +2697,18 @@ GetOnScreenColumnsForItem(
{
DInfo *dInfo = (DInfo *) tree->dInfo;
-#ifdef COLUMN_LOCK
if (!dInfo->emptyL) {
- GetOnScreenColumnsForItemAux(tree, dItem,
- &dItem->left, dInfo->boundsL, COLUMN_LOCK_LEFT,
- columns);
+ GetOnScreenColumnsForItemAux(tree, dItem, &dItem->left,
+ dInfo->boundsL, COLUMN_LOCK_LEFT, columns);
}
-#endif /* COLUMN_LOCK */
if (!dInfo->empty && dInfo->rangeFirst != NULL) {
GetOnScreenColumnsForItemAux(tree, dItem, &dItem->area,
- dInfo->bounds,
-#ifdef COLUMN_LOCK
- COLUMN_LOCK_NONE,
-#endif
- columns);
+ dInfo->bounds, COLUMN_LOCK_NONE, columns);
}
-#ifdef COLUMN_LOCK
if (!dInfo->emptyR) {
- GetOnScreenColumnsForItemAux(tree, dItem,
- &dItem->right, dInfo->boundsR, COLUMN_LOCK_RIGHT,
- columns);
+ GetOnScreenColumnsForItemAux(tree, dItem, &dItem->right,
+ dInfo->boundsR, COLUMN_LOCK_RIGHT, columns);
}
-#endif /* COLUMN_LOCK */
return TreeColumnList_Count(columns);
}
@@ -2959,9 +2918,7 @@ UpdateDInfoForRange(
else if (tree->showLines &&
(tree->lineStyle == LINE_STYLE_DOT) &&
tree->columnTreeVis &&
-#ifdef COLUMN_LOCK
(TreeColumn_Lock(tree->columnTree) == COLUMN_LOCK_NONE) &&
-#endif
((dItem->oldY & 1) != (y & 1)))
area->flags |= DITEM_DIRTY | DITEM_ALL_DIRTY;
@@ -3157,9 +3114,7 @@ Tree_UpdateDInfo(
int minX, minY, maxX, maxY;
Range *range;
RItem *rItem;
-#ifdef COLUMN_LOCK
DItem *dItem;
-#endif
if (tree->debug.enable && tree->debug.display)
dbwin("Tree_UpdateDInfo %s\n", Tk_PathName(tree->tkwin));
@@ -3171,14 +3126,13 @@ Tree_UpdateDInfo(
dInfo->empty = !Tree_AreaBbox(tree, TREE_AREA_CONTENT,
&dInfo->bounds[0], &dInfo->bounds[1],
&dInfo->bounds[2], &dInfo->bounds[3]);
-#ifdef COLUMN_LOCK
dInfo->emptyL = !Tree_AreaBbox(tree, TREE_AREA_LEFT,
&dInfo->boundsL[0], &dInfo->boundsL[1],
&dInfo->boundsL[2], &dInfo->boundsL[3]);
dInfo->emptyR = !Tree_AreaBbox(tree, TREE_AREA_RIGHT,
&dInfo->boundsR[0], &dInfo->boundsR[1],
&dInfo->boundsR[2], &dInfo->boundsR[3]);
-#endif
+
if (dInfo->empty)
goto done;
@@ -3260,7 +3214,6 @@ Tree_UpdateDInfo(
dInfo->dItemLast->next = NULL;
done:
-#ifdef COLUMN_LOCK
if (dInfo->dItem != NULL)
goto skipLock;
if (!tree->itemVisCount)
@@ -3437,7 +3390,6 @@ skipLock:
}
}
}
-#endif /* COLUMN_LOCK */
while (dItemHead != NULL)
dItemHead = DItem_Free(tree, dItemHead);
@@ -3586,15 +3538,13 @@ DItemAllDirty(
{
DInfo *dInfo = (DInfo *) tree->dInfo;
-#ifdef COLUMN_LOCK
- if (((!dInfo->empty && dInfo->rangeFirst != NULL) && !(dItem->area.flags & DITEM_ALL_DIRTY)) ||
- (!dInfo->emptyL && !(dItem->left.flags & DITEM_ALL_DIRTY)) ||
- (!dInfo->emptyR && !(dItem->right.flags & DITEM_ALL_DIRTY)))
+ if ((!dInfo->empty && dInfo->rangeFirst != NULL) &&
+ !(dItem->area.flags & DITEM_ALL_DIRTY))
return 0;
-#else
- if (!dInfo->empty && !(dItem->area.flags & DITEM_ALL_DIRTY))
+ if (!dInfo->emptyL && !(dItem->left.flags & DITEM_ALL_DIRTY))
+ return 0;
+ if (!dInfo->emptyR && !(dItem->right.flags & DITEM_ALL_DIRTY))
return 0;
-#endif
return 1;
}
@@ -3631,13 +3581,9 @@ ScrollVerticalComplex(
int y;
int numCopy = 0;
-#ifdef COLUMN_LOCK
if (dInfo->empty && dInfo->emptyL && dInfo->emptyR)
return 0;
-#else
- if (dInfo->empty)
- return 0;
-#endif
+
minX = Tree_BorderLeft(tree);
minY = Tree_ContentTop(tree);
maxX = Tree_BorderRight(tree);
@@ -3693,7 +3639,6 @@ ScrollVerticalComplex(
if (oldY + offset + height > maxY)
height = maxY - (oldY + offset);
-#ifdef COLUMN_LOCK
if (!dInfo->emptyL || !dInfo->emptyR) {
oldX = minX;
width = maxX - minX;
@@ -3701,10 +3646,7 @@ ScrollVerticalComplex(
oldX = dItem->oldX;
width = dItem->area.width;
}
-#else
- oldX = dItem->oldX;
- width = dItem->area.width;
-#endif
+
if (oldX < minX) {
width -= minX - oldX;
oldX = minX;
@@ -3721,7 +3663,6 @@ ScrollVerticalComplex(
InvalidateDItemY(dItem, &dItem->area, dItem->oldY, dItem->oldY, minY - dItem->oldY);
dItem->area.flags |= DITEM_DIRTY;
}
-#ifdef COLUMN_LOCK
if (!dInfo->emptyL) {
InvalidateDItemX(dItem, &dItem->left, dItem->left.x, oldX, width);
InvalidateDItemY(dItem, &dItem->left, dItem->oldY, dItem->oldY, minY - dItem->oldY);
@@ -3732,7 +3673,6 @@ ScrollVerticalComplex(
InvalidateDItemY(dItem, &dItem->right, dItem->oldY, dItem->oldY, minY - dItem->oldY);
dItem->right.flags |= DITEM_DIRTY;
}
-#endif
}
if ((dItem->oldY + dItem->height > maxY) && (offset < 0)) {
if (!dInfo->empty && dInfo->rangeFirst != NULL) {
@@ -3740,7 +3680,6 @@ ScrollVerticalComplex(
InvalidateDItemY(dItem, &dItem->area, dItem->oldY, maxY, maxY - dItem->oldY + dItem->height);
dItem->area.flags |= DITEM_DIRTY;
}
-#ifdef COLUMN_LOCK
if (!dInfo->emptyL) {
InvalidateDItemX(dItem, &dItem->left, dItem->left.x, oldX, width);
InvalidateDItemY(dItem, &dItem->left, dItem->oldY, maxY, maxY - dItem->oldY + dItem->height);
@@ -3751,7 +3690,6 @@ ScrollVerticalComplex(
InvalidateDItemY(dItem, &dItem->right, dItem->oldY, maxY, maxY - dItem->oldY + dItem->height);
dItem->right.flags |= DITEM_DIRTY;
}
-#endif
}
dItem->oldY = dItem->y;
if (dItem->next == dItem2)
@@ -3771,7 +3709,6 @@ ScrollVerticalComplex(
InvalidateDItemY(dItem2, &dItem2->area, dItem2->oldY, y, height);
dItem2->area.flags |= DITEM_DIRTY;
}
-#ifdef COLUMN_LOCK
if (!dInfo->emptyL) {
InvalidateDItemX(dItem2, &dItem2->left, dItem2->left.x, oldX, width);
InvalidateDItemY(dItem2, &dItem2->left, dItem2->oldY, y, height);
@@ -3782,7 +3719,6 @@ ScrollVerticalComplex(
InvalidateDItemY(dItem2, &dItem2->right, dItem2->oldY, y, height);
dItem2->right.flags |= DITEM_DIRTY;
}
-#endif
}
}
@@ -4404,7 +4340,6 @@ CalcWhiteSpaceRegion(
wsRgn = TkCreateRegion();
-#ifdef COLUMN_LOCK
/* Erase area below left columns */
if (!dInfo->emptyL) {
minX = dInfo->boundsL[0];
@@ -4434,10 +4369,10 @@ CalcWhiteSpaceRegion(
TkUnionRectWithRegion(&rect, wsRgn, wsRgn);
}
}
-#endif
if (dInfo->empty)
return wsRgn;
+
minX = dInfo->bounds[0];
minY = dInfo->bounds[1];
maxX = dInfo->bounds[2];
@@ -4702,9 +4637,7 @@ static void
DrawWhitespaceBelowItem(
TreeCtrl *tree, /* Widget info. */
Drawable drawable, /* Where to draw. */
-#ifdef COLUMN_LOCK
int lock, /* Which columns to draw. */
-#endif
int bounds[4], /* TREE_AREA_xxx bounds. */
int left, /* Window coord of first column's left edge. */
int top, /* Window coord just below the last item. */
@@ -4719,7 +4652,6 @@ DrawWhitespaceBelowItem(
TreeColumn treeColumn;
XRectangle boundsBox, columnBox;
-#ifdef COLUMN_LOCK
switch (lock) {
case COLUMN_LOCK_LEFT:
i = TreeColumn_Index(tree->columnLockLeft);
@@ -4731,7 +4663,6 @@ DrawWhitespaceBelowItem(
i = TreeColumn_Index(tree->columnLockRight);
break;
}
-#endif
boundsBox.x = bounds[0];
boundsBox.y = bounds[1];
@@ -4740,10 +4671,8 @@ DrawWhitespaceBelowItem(
for (/*nothing*/; i < tree->columnCount; i++) {
treeColumn = dInfo->columns[i].column;
-#ifdef COLUMN_LOCK
if (TreeColumn_Lock(treeColumn) != lock)
break;
-#endif
if (dInfo->columns[i].width == 0)
continue;
columnBox.x = left;
@@ -4821,10 +4750,8 @@ DrawWhitespace(
columnRgn = TkCreateRegion();
range = dInfo->rangeFirst;
-#ifdef COLUMN_LOCK
if (range == NULL)
range = dInfo->rangeLock;
-#endif
if (!dInfo->empty) {
minX = dInfo->bounds[0];
@@ -4875,7 +4802,6 @@ DrawWhitespace(
}
}
-#ifdef COLUMN_LOCK
/* Draw below the left columns. */
if (!dInfo->emptyL) {
minX = dInfo->boundsL[0];
@@ -4893,14 +4819,10 @@ DrawWhitespace(
minX, top, dirtyRgn, columnRgn,
height, index);
}
-#endif /* COLUMN_LOCK */
/* Draw below non-locked columns. */
if (!dInfo->empty && dInfo->rangeFirst != NULL) {
- DrawWhitespaceBelowItem(tree, drawable,
-#ifdef COLUMN_LOCK
- COLUMN_LOCK_NONE,
-#endif
+ DrawWhitespaceBelowItem(tree, drawable, COLUMN_LOCK_NONE,
dInfo->bounds, x, top, dirtyRgn, columnRgn,
height, index);
}
@@ -4944,10 +4866,10 @@ Tree_DrawTiledImage(
int dstX, dstY;
Tk_SizeOfImage(image, &imgWidth, &imgHeight);
-#ifdef COLUMN_LOCK
+
/* xOffset can be < 0 for left-locked columns. */
if (xOffset < 0) xOffset = imgWidth + xOffset % imgWidth;
-#endif
+
srcX = (x1 + xOffset) % imgWidth;
dstX = x1;
while (dstX < x2) {
@@ -4996,9 +4918,7 @@ DisplayDItem(
TreeCtrl *tree, /* Widget info. */
DItem *dItem,
DItemArea *area,
-#ifdef COLUMN_LOCK
int lock, /* Which set of columns. */
-#endif
int bounds[4], /* TREE_AREA_xxx bounds of drawing. */
Drawable pixmap, /* Where to draw. */
Drawable drawable /* Where to copy to. */
@@ -5054,10 +4974,7 @@ DisplayDItem(
tree->drawableXOrigin = left + tree->xOrigin;
tree->drawableYOrigin = top + tree->yOrigin;
- TreeItem_Draw(tree, dItem->item,
-#ifdef COLUMN_LOCK
- lock,
-#endif
+ TreeItem_Draw(tree, dItem->item, lock,
area->x - left, dItem->y - top,
area->width, dItem->height,
pixmap,
@@ -5207,7 +5124,6 @@ displayRetry:
if (tree->vertical && (tree->wrapMode == TREE_WRAP_WINDOW))
dInfo->flags |= DINFO_REDO_RANGES;
}
-#ifdef COLUMN_LOCK
if (dInfo->widthOfColumnsLeft != Tree_WidthOfLeftColumns(tree) ||
dInfo->widthOfColumnsRight != Tree_WidthOfRightColumns(tree)) {
dInfo->widthOfColumnsLeft = Tree_WidthOfLeftColumns(tree);
@@ -5219,7 +5135,6 @@ displayRetry:
DINFO_REDO_RANGES |
DINFO_DRAW_HEADER*/;
}
-#endif /* COLUMN_LOCK */
Range_RedoIfNeeded(tree);
Increment_RedoIfNeeded(tree);
if (dInfo->xOrigin != tree->xOrigin) {
@@ -5537,11 +5452,11 @@ displayRetry:
for (dItem = dInfo->dItem;
dItem != NULL;
dItem = dItem->next) {
- if ((!dInfo->empty && dInfo->rangeFirst != NULL) && (dItem->area.flags & DITEM_DIRTY)) {
+ if ((!dInfo->empty && dInfo->rangeFirst != NULL) &&
+ (dItem->area.flags & DITEM_DIRTY)) {
count++;
break;
}
-#ifdef COLUMN_LOCK
if (!dInfo->emptyL && (dItem->left.flags & DITEM_DIRTY)) {
count++;
break;
@@ -5550,7 +5465,6 @@ displayRetry:
count++;
break;
}
-#endif
}
/* Display dirty items */
@@ -5569,7 +5483,6 @@ displayRetry:
dItem != NULL;
dItem = dItem->next) {
-#ifdef COLUMN_LOCK
int drawn = 0;
if (!dInfo->empty && dInfo->rangeFirst != NULL) {
/* FIXME: may "draw" window elements twice. */
@@ -5605,17 +5518,6 @@ displayRetry:
}
}
numDraw += drawn ? 1 : 0;
-#else
- /* FIXME: may "draw" window elements twice. */
- tree->drawableXOrigin = tree->xOrigin;
- tree->drawableYOrigin = tree->yOrigin;
- TreeItem_UpdateWindowPositions(tree, dItem->item, COLUMN_LOCK_NONE,
- dItem->area.x, dItem->y, dItem->area.width, dItem->height);
- if (dItem->area.flags & DITEM_DIRTY) {
- numDraw += DisplayDItem(tree, dItem, &dItem->area,
- COLUMN_LOCK_NONE, bounds, pixmap, drawable);
- }
-#endif
dItem->oldX = dItem->area.x;
dItem->oldY = dItem->y;
@@ -6482,7 +6384,6 @@ Tree_FreeItemDInfo(
*--------------------------------------------------------------
*/
-#if 1
void
Tree_InvalidateItemDInfo(
TreeCtrl *tree, /* Widget info. */
@@ -6504,10 +6405,8 @@ Tree_InvalidateItemDInfo(
if (dItem != NULL) {
if (column == NULL) {
dItem->area.flags |= (DITEM_DIRTY | DITEM_ALL_DIRTY);
-#ifdef COLUMN_LOCK
dItem->left.flags |= (DITEM_DIRTY | DITEM_ALL_DIRTY);
dItem->right.flags |= (DITEM_DIRTY | DITEM_ALL_DIRTY);
-#endif
} else {
/* Do NOT call TreeColumn_UseWidth() or another routine
* that calls Tree_WidthOfColumns() because that may end
@@ -6533,6 +6432,7 @@ Tree_InvalidateItemDInfo(
width = dInfo->columns[i].width;
}
+ /* Calculate the width of the entire span. */
if (dItem->spans == NULL) {
width = dInfo->columns[columnIndex].width;
} else {
@@ -6545,7 +6445,6 @@ Tree_InvalidateItemDInfo(
}
}
-#ifdef COLUMN_LOCK
switch (TreeColumn_Lock(column)) {
case COLUMN_LOCK_NONE:
if (tree->columnCountVis == 1)
@@ -6565,11 +6464,6 @@ Tree_InvalidateItemDInfo(
dItem->right.flags |= DITEM_DIRTY;
break;
}
-#else
- InvalidateDItemX(dItem, 0, left, width);
- InvalidateDItemY(dItem, dItem->y, dItem->y, dItem->height);
- dItem->flags |= DITEM_DIRTY;
-#endif
}
changed = 1;
}
@@ -6581,39 +6475,6 @@ Tree_InvalidateItemDInfo(
Tree_EventuallyRedraw(tree);
}
}
-#else
-void
-Tree_InvalidateItemDInfo(
- TreeCtrl *tree, /* Widget info. */
- TreeItem item1, /* First item in the range. */
- TreeItem item2 /* Last item in the range, or NULL. */
- )
-{
- /* DInfo *dInfo = (DInfo *) tree->dInfo; */
- DItem *dItem;
- TreeItem item = item1;
- int changed = 0;
-
- while (item != NULL) {
- dItem = (DItem *) TreeItem_GetDInfo(tree, item);
- if (dItem != NULL) {
- dItem->flags |= (DITEM_DIRTY | DITEM_ALL_DIRTY);
-#ifdef COLUMN_LOCK
- dItem->left.flags |= (DITEM_DIRTY | DITEM_ALL_DIRTY);
- dItem->right.flags |= (DITEM_DIRTY | DITEM_ALL_DIRTY);
-#endif
- changed = 1;
- }
- if (item == item2 || item2 == NULL)
- break;
- item = TreeItem_Next(tree, item);
- }
- if (changed) {
- /*dInfo->flags |= DINFO_OUT_OF_DATE; */
- Tree_EventuallyRedraw(tree);
- }
-}
-#endif
/*
*--------------------------------------------------------------
@@ -6766,14 +6627,14 @@ Tree_InvalidateArea(
dItem = dInfo->dItem;
while (dItem != NULL) {
- if ((!dInfo->empty && dInfo->rangeFirst != NULL) && !(dItem->area.flags & DITEM_ALL_DIRTY) &&
+ if ((!dInfo->empty && dInfo->rangeFirst != NULL) &&
+ !(dItem->area.flags & DITEM_ALL_DIRTY) &&
(x2 > dItem->area.x) && (x1 < dItem->area.x + dItem->area.width) &&
(y2 > dItem->y) && (y1 < dItem->y + dItem->height)) {
InvalidateDItemX(dItem, &dItem->area, dItem->area.x, x1, x2 - x1);
InvalidateDItemY(dItem, &dItem->area, dItem->y, y1, y2 - y1);
dItem->area.flags |= DITEM_DIRTY;
}
-#ifdef COLUMN_LOCK
if (!dInfo->emptyL && !(dItem->left.flags & DITEM_ALL_DIRTY) &&
(x2 > dInfo->boundsL[0]) && (x1 < dInfo->boundsL[2]) &&
(y2 > dItem->y) && (y1 < dItem->y + dItem->height)) {
@@ -6788,7 +6649,6 @@ Tree_InvalidateArea(
InvalidateDItemY(dItem, &dItem->right, dItem->y, y1, y2 - y1);
dItem->right.flags |= DITEM_DIRTY;
}
-#endif
dItem = dItem->next;
}
@@ -6888,7 +6748,6 @@ Tree_InvalidateRegion(
dItem->area.flags |= DITEM_DIRTY;
}
}
-#ifdef COLUMN_LOCK
if (!dInfo->emptyL && !(dItem->left.flags & DITEM_ALL_DIRTY)) {
rect.x = dItem->left.x;
rect.y = dItem->y;
@@ -6919,7 +6778,6 @@ Tree_InvalidateRegion(
dItem->right.flags |= DITEM_DIRTY;
}
}
-#endif
dItem = dItem->next;
}
@@ -7082,10 +6940,8 @@ TreeDInfo_Free(
if (dInfo->rItem != NULL)
ckfree((char *) dInfo->rItem);
-#ifdef COLUMN_LOCK
if (dInfo->rangeLock != NULL)
ckfree((char *) dInfo->rangeLock);
-#endif
while (dInfo->dItem != NULL) {
DItem *next = dInfo->dItem->next;
WFREE(dInfo->dItem, DItem);
@@ -7139,14 +6995,15 @@ DumpDInfo(
dInfo->itemWidth, dInfo->itemHeight,
dInfo->totalWidth, dInfo->totalHeight,
dInfo->flags, tree->vertical, tree->itemVisCount);
-#ifdef COLUMN_LOCK
+ DStringAppendf(&dString, " empty=%d bounds=%d,%d,%d,%d\n", dInfo->empty,
+ dInfo->bounds[0], dInfo->bounds[1],
+ dInfo->bounds[2], dInfo->bounds[3]);
DStringAppendf(&dString, " emptyL=%d boundsL=%d,%d,%d,%d\n", dInfo->emptyL,
dInfo->boundsL[0], dInfo->boundsL[1],
dInfo->boundsL[2], dInfo->boundsL[3]);
DStringAppendf(&dString, " emptyR=%d boundsR=%d,%d,%d,%d\n", dInfo->emptyR,
dInfo->boundsR[0], dInfo->boundsR[1],
dInfo->boundsR[2], dInfo->boundsR[3]);
-#endif
dItem = dInfo->dItem;
while (dItem != NULL) {
if (dItem->item == NULL) {
@@ -7158,7 +7015,6 @@ DumpDInfo(
dItem->area.dirty[LEFT], dItem->area.dirty[TOP],
dItem->area.dirty[RIGHT], dItem->area.dirty[BOTTOM],
dItem->area.flags);
-#ifdef COLUMN_LOCK
DStringAppendf(&dString, " left: dirty %d,%d,%d,%d flags %0X\n",
dItem->left.dirty[LEFT], dItem->left.dirty[TOP],
dItem->left.dirty[RIGHT], dItem->left.dirty[BOTTOM],
@@ -7167,7 +7023,6 @@ DumpDInfo(
dItem->right.dirty[LEFT], dItem->right.dirty[TOP],
dItem->right.dirty[RIGHT], dItem->right.dirty[BOTTOM],
dItem->right.flags);
-#endif
}
dItem = dItem->next;
}
diff --git a/generic/tkTreeDrag.c b/generic/tkTreeDrag.c
index be79ca9..638dcc4 100644
--- a/generic/tkTreeDrag.c
+++ b/generic/tkTreeDrag.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 2002-2006 Tim Baker
*
- * RCS: @(#) $Id: tkTreeDrag.c,v 1.19 2006/11/06 01:47:47 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeDrag.c,v 1.20 2006/11/07 01:24:46 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -457,11 +457,7 @@ DragImageCmd(
}
}
-#ifdef COLUMN_LOCK
if (Tree_ItemBbox(tree, item, COLUMN_LOCK_NONE, &x, &y, &w, &h) < 0)
-#else
- if (Tree_ItemBbox(tree, item, &x, &y, &w, &h) < 0)
-#endif
return TCL_OK;
if (w < 1 || h < 1)
return TCL_OK;
diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c
index 77260bd..549804b 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.81 2006/11/07 00:09:34 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeItem.c,v 1.82 2006/11/07 01:24:46 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -3717,9 +3717,7 @@ TreeItem_SpansRedo(
TreeColumn treeColumn = tree->columns;
Column *itemColumn = self->columns;
int columnIndex = 0, spanner = 0, span = 1, simple = TRUE;
-#ifdef COLUMN_LOCK
int lock = TreeColumn_Lock(treeColumn);
-#endif
if (tree->debug.enable && tree->debug.display)
dbwin("TreeItem_SpansRedo item %d\n", self->id);
@@ -3734,13 +3732,11 @@ TreeItem_SpansRedo(
}
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 = itemColumn ? itemColumn->span : 1;
@@ -3850,7 +3846,6 @@ typedef struct SpanInfo {
*----------------------------------------------------------------------
*/
-#ifdef COLUMN_LOCK
static int
Item_GetSpans(
TreeCtrl *tree, /* Widget info. */
@@ -3896,38 +3891,6 @@ next:
}
return spanCount;
}
-#else
-static void
-Item_GetSpans(
- TreeCtrl *tree, /* Widget info. */
- TreeItem item_, /* Item token. */
- SpanInfo spans[] /* Returned span records. */
- )
-{
- Item *self = (Item *) item_;
- TreeColumn treeColumn = tree->columns;
- Column *column = self->columns;
- int columnIndex = 0, itemColumnIndex = 0, span = 1;
-
- while (treeColumn != NULL) {
- if (--span == 0) {
- if (TreeColumn_Visible(treeColumn))
- span = column ? column->span : 1;
- else
- span = 1;
- itemColumnIndex = columnIndex;
- }
- spans[columnIndex].treeColumn = treeColumn;
- spans[columnIndex].itemColumn = (TreeItemColumn) column;
- spans[columnIndex].itemColumnIndex = itemColumnIndex;
- spans[columnIndex].width = TreeColumn_UseWidth(treeColumn);
- ++columnIndex;
- treeColumn = TreeColumn_Next(treeColumn);
- if (column != NULL)
- column = column->next;
- }
-}
-#endif
typedef int (*TreeItemWalkSpansProc)(
TreeCtrl *tree,
@@ -3959,9 +3922,7 @@ void
TreeItem_WalkSpans(
TreeCtrl *tree, /* Widget info. */
TreeItem item_, /* Item token. */
-#ifdef COLUMN_LOCK
int lock, /* Which columns. */
-#endif
int x, int y, /* Drawable coordinates of the item. */
int width, int height, /* Total size of the item. */
TreeItemWalkSpansProc proc,
@@ -3977,7 +3938,6 @@ TreeItem_WalkSpans(
SpanInfo staticSpans[STATIC_SIZE], *spans = staticSpans;
int area = TREE_AREA_CONTENT;
-#ifdef COLUMN_LOCK
switch (lock) {
case COLUMN_LOCK_LEFT:
treeColumn = tree->columnLockLeft;
@@ -3995,10 +3955,7 @@ TreeItem_WalkSpans(
}
STATIC_ALLOC(spans, SpanInfo, columnCount);
spanCount = Item_GetSpans(tree, item_, treeColumn, spans);
-#else
- STATIC_ALLOC(spans, SpanInfo, columnCount);
- spanCount = Item_GetSpans(tree, item_, spans);
-#endif
+
drawArgs.tree = tree;
drawArgs.drawable = None;
@@ -4155,9 +4112,7 @@ void
TreeItem_Draw(
TreeCtrl *tree, /* Widget info. */
TreeItem item_, /* Item token. */
-#ifdef COLUMN_LOCK
int lock, /* Which columns. */
-#endif
int x, int y, /* Drawable coordinates of the item. */
int width, int height, /* Total size of the item. */
Drawable drawable, /* Where to draw. */
@@ -4178,10 +4133,7 @@ TreeItem_Draw(
clientData.maxX = maxX;
clientData.index = index;
- TreeItem_WalkSpans(tree, item_,
-#ifdef COLUMN_LOCK
- lock,
-#endif
+ TreeItem_WalkSpans(tree, item_, lock,
x, y, width, height,
SpanWalkProc_Draw, (ClientData) &clientData);
}
@@ -4511,17 +4463,12 @@ void
TreeItem_UpdateWindowPositions(
TreeCtrl *tree, /* Widget info. */
TreeItem item_, /* Item token. */
-#ifdef COLUMN_LOCK
int lock, /* Columns we care about. */
-#endif
int x, int y, /* Window coordinates of the item. */
int width, int height /* Total size of the item. */
)
{
- TreeItem_WalkSpans(tree, item_,
-#ifdef COLUMN_LOCK
- lock,
-#endif
+ TreeItem_WalkSpans(tree, item_, lock,
x, y, width, height,
SpanWalkProc_UpdateWindowPositions, (ClientData) NULL);
}
@@ -7316,7 +7263,6 @@ TreeItemCmd(
TreeItem item_ = (TreeItem) item;
XRectangle rect;
-#ifdef COLUMN_LOCK
if (objc == 4) {
if (Tree_ItemBbox(tree, item_, COLUMN_LOCK_NONE, &x, &y, &w, &h) < 0)
break;
@@ -7330,20 +7276,6 @@ TreeItemCmd(
totalWidth = TreeColumn_Offset(treeColumn);
columnIndex = TreeColumn_Index(treeColumn);
itemColumn = Item_FindColumn(tree, item, columnIndex);
-#else
- if (Tree_ItemBbox(tree, item_, &x, &y, &w, &h) < 0)
- break;
- if (objc > 4) {
- if (Item_FindColumnFromObj(tree, item, objv[4],
- &itemColumn, &columnIndex) != TCL_OK)
- goto errorExit;
- totalWidth = 0;
- treeColumn = tree->columns;
- for (i = 0; i < columnIndex; i++) {
- totalWidth += TreeColumn_UseWidth(treeColumn);
- treeColumn = TreeColumn_Next(treeColumn);
- }
-#endif
if (treeColumn == tree->columnTree)
indent = TreeItem_Indent(tree, item_);
else
@@ -8445,9 +8377,7 @@ void
TreeItem_Identify(
TreeCtrl *tree, /* Widget info. */
TreeItem item_, /* Item token. */
-#ifdef COLUMN_LOCK
int lock, /* Columns to hit-test. */
-#endif
int x, int y, /* Item coords to hit-test with. */
char *buf /* NULL-terminated string which may be
* appended. */
@@ -8460,10 +8390,7 @@ TreeItem_Identify(
char *buf;
} clientData;
- if (Tree_ItemBbox(tree, item_,
-#ifdef COLUMN_LOCK
- lock,
-#endif
+ if (Tree_ItemBbox(tree, item_, lock,
&left, &top, &width, &height) < 0)
return;
@@ -8472,10 +8399,7 @@ TreeItem_Identify(
clientData.y = y;
clientData.buf = buf;
- TreeItem_WalkSpans(tree, item_,
-#ifdef COLUMN_LOCK
- lock,
-#endif
+ TreeItem_WalkSpans(tree, item_, lock,
0, 0, width, height,
SpanWalkProc_Identify, (ClientData) &clientData);
}
@@ -8546,10 +8470,7 @@ TreeItem_Identify2(
Tcl_Obj *listObj;
} clientData;
- if (Tree_ItemBbox(tree, item_,
-#ifdef COLUMN_LOCK
- COLUMN_LOCK_NONE,
-#endif
+ if (Tree_ItemBbox(tree, item_, COLUMN_LOCK_NONE,
&left, &top, &width, &height) < 0)
return;
@@ -8560,10 +8481,7 @@ TreeItem_Identify2(
clientData.y2 = y2;
clientData.listObj = listObj;
- TreeItem_WalkSpans(tree, item_,
-#ifdef COLUMN_LOCK
- COLUMN_LOCK_NONE,
-#endif
+ TreeItem_WalkSpans(tree, item_, COLUMN_LOCK_NONE,
left, top, width, height,
SpanWalkProc_Identify2, (ClientData) &clientData);
}