summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortreectrl <treectrl>2002-12-29 23:35:33 (GMT)
committertreectrl <treectrl>2002-12-29 23:35:33 (GMT)
commitc9984e0385a2836b26f0ea9ac081f73c3972bc1c (patch)
tree2666092e0bb29835b10ef0bbfb6658ec2f5e857d
parentef4d3ee6b4e9dba6e346092b395405f55bf67392 (diff)
downloadtktreectrl-c9984e0385a2836b26f0ea9ac081f73c3972bc1c.zip
tktreectrl-c9984e0385a2836b26f0ea9ac081f73c3972bc1c.tar.gz
tktreectrl-c9984e0385a2836b26f0ea9ac081f73c3972bc1c.tar.bz2
Tree_ItemBbox returns result indicating success or failure.
-rw-r--r--generic/tkTreeCtrl.c6
-rw-r--r--generic/tkTreeCtrl.h2
-rw-r--r--generic/tkTreeDisplay.c5
-rw-r--r--generic/tkTreeDrag.c5
-rw-r--r--generic/tkTreeItem.c12
5 files changed, 10 insertions, 20 deletions
diff --git a/generic/tkTreeCtrl.c b/generic/tkTreeCtrl.c
index dfc8834..30b3499 100644
--- a/generic/tkTreeCtrl.c
+++ b/generic/tkTreeCtrl.c
@@ -901,12 +901,10 @@ static int TreeWidgetCmd(ClientData clientData, Tcl_Interp *interp, int objc,
}
if (TreeItem_FromObj(tree, objv[2], &item, 0) != TCL_OK)
goto error;
- if (!TreeItem_ReallyVisible(tree, item) ||
- (tree->columnCountVis < 1))
- break;
/* Canvas coords */
- Tree_ItemBbox(tree, item, &x, &y, &w, &h);
+ if (Tree_ItemBbox(tree, item, &x, &y, &w, &h) < 0)
+ break;
if ((C2Wx(x) > maxX) || (C2Wx(x + w) <= minX) || (w <= visWidth))
{
diff --git a/generic/tkTreeCtrl.h b/generic/tkTreeCtrl.h
index c27793f..dd5d0a5 100644
--- a/generic/tkTreeCtrl.h
+++ b/generic/tkTreeCtrl.h
@@ -417,7 +417,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);
-extern void Tree_ItemBbox(TreeCtrl *tree, TreeItem item, int *x, int *y, int *w, int *h);
+extern int Tree_ItemBbox(TreeCtrl *tree, TreeItem item, int *x, int *y, int *w, int *h);
extern TreeItem Tree_ItemAbove(TreeCtrl *tree, TreeItem item);
extern TreeItem Tree_ItemBelow(TreeCtrl *tree, TreeItem item);
extern TreeItem Tree_ItemLeft(TreeCtrl *tree, TreeItem item);
diff --git a/generic/tkTreeDisplay.c b/generic/tkTreeDisplay.c
index f1dbb53..cf630a4 100644
--- a/generic/tkTreeDisplay.c
+++ b/generic/tkTreeDisplay.c
@@ -1210,13 +1210,13 @@ TreeItem Tree_ItemUnderPoint(TreeCtrl *tree, int *x_, int *y_, int nearest)
return NULL;
}
-void Tree_ItemBbox(TreeCtrl *tree, TreeItem item, int *x, int *y, int *w, int *h)
+int Tree_ItemBbox(TreeCtrl *tree, TreeItem item, int *x, int *y, int *w, int *h)
{
Range *range;
RItem *rItem;
if (!TreeItem_ReallyVisible(tree, item) || (tree->columnCountVis < 1))
- return;
+ return -1;
Range_RedoIfNeeded(tree);
rItem = (RItem *) TreeItem_GetRInfo(tree, item);
range = rItem->range;
@@ -1234,6 +1234,7 @@ void Tree_ItemBbox(TreeCtrl *tree, TreeItem item, int *x, int *y, int *w, int *h
(*y) = range->offset;
(*h) = range->totalHeight;
}
+ return 0;
}
TreeItem Tree_ItemLARB(TreeCtrl *tree, TreeItem item, int vertical, int prev)
diff --git a/generic/tkTreeDrag.c b/generic/tkTreeDrag.c
index 7d7e1b8..9ef5fbb 100644
--- a/generic/tkTreeDrag.c
+++ b/generic/tkTreeDrag.c
@@ -230,11 +230,8 @@ int DragImageCmd(ClientData clientData, Tcl_Interp *interp, int objc,
}
}
- if (!TreeItem_ReallyVisible(tree, item) ||
- (tree->columnCountVis < 1))
+ if (Tree_ItemBbox(tree, item, &x, &y, &w, &h) < 0)
return TCL_OK;
-
- Tree_ItemBbox(tree, item, &x, &y, &w, &h);
if (w < 1 || h < 1)
return TCL_OK;
diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c
index 82830e9..4c227c6 100644
--- a/generic/tkTreeItem.c
+++ b/generic/tkTreeItem.c
@@ -2858,10 +2858,8 @@ int TreeItemCmd(ClientData clientData, Tcl_Interp *interp, int objc,
TreeItem item_ = (TreeItem) item;
XRectangle rect;
- if (!TreeItem_ReallyVisible(tree, item_)
- || (tree->columnCountVis < 1))
+ if (Tree_ItemBbox(tree, item_, &x, &y, &w, &h) < 0)
return TCL_OK;
- Tree_ItemBbox(tree, item_, &x, &y, &w, &h);
if (objc > 4)
{
if (TreeItem_ColumnFromObj(tree, item_, objv[4],
@@ -3598,10 +3596,8 @@ char *TreeItem_Identify(TreeCtrl *tree, TreeItem item_, int x, int y)
StyleDrawArgs drawArgs;
TreeColumn treeColumn;
- if (!TreeItem_ReallyVisible(tree, item_) || (tree->columnCountVis < 1))
+ if (Tree_ItemBbox(tree, item_, &left, &top, &width, &height) < 0)
return NULL;
-
- Tree_ItemBbox(tree, item_, &left, &top, &width, &height);
#if 0
if (y >= Tk_Height(tree->tkwin) || y + height <= 0)
return NULL;
@@ -3659,11 +3655,9 @@ void TreeItem_Identify2(TreeCtrl *tree, TreeItem item_,
StyleDrawArgs drawArgs;
TreeColumn treeColumn;
- if (!TreeItem_ReallyVisible(tree, item_) || (tree->columnCountVis < 1))
+ if (Tree_ItemBbox(tree, item_, &x, &y, &w, &h) < 0)
return;
- Tree_ItemBbox(tree, item_, &x, &y, &w, &h);
-
drawArgs.tree = tree;
drawArgs.drawable = None;
drawArgs.state = self->state;