summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortreectrl <treectrl>2005-05-13 20:00:40 (GMT)
committertreectrl <treectrl>2005-05-13 20:00:40 (GMT)
commitfe01599852de9825b9f9aca8d50fce4c998cd689 (patch)
tree133af43819d243afe5e692915e53600d0ce798ee
parenta56d812ca1a4ef0448f2f9fd6cd054c180fd9a2f (diff)
downloadtktreectrl-fe01599852de9825b9f9aca8d50fce4c998cd689.zip
tktreectrl-fe01599852de9825b9f9aca8d50fce4c998cd689.tar.gz
tktreectrl-fe01599852de9825b9f9aca8d50fce4c998cd689.tar.bz2
Replaced global itemPrefix with tree->itemPrefix option.
-rw-r--r--generic/tkTreeNotify.c61
1 files changed, 31 insertions, 30 deletions
diff --git a/generic/tkTreeNotify.c b/generic/tkTreeNotify.c
index dcda08e..e1fadcc 100644
--- a/generic/tkTreeNotify.c
+++ b/generic/tkTreeNotify.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 2002-2005 Tim Baker
*
- * RCS: @(#) $Id: tkTreeNotify.c,v 1.8 2005/05/11 03:24:48 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeNotify.c,v 1.9 2005/05/13 20:00:40 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -29,15 +29,14 @@ static int EVENT_SCROLL,
DETAIL_SCROLL_Y;
static int EVENT_ITEM_DELETE;
-static void ExpandItem(int id, Tcl_DString *result)
+static void ExpandItem(TreeCtrl *tree, int id, Tcl_DString *result)
{
-#ifdef ITEM_ID_IS_STRING
- char buf[10 + TCL_INTEGER_SPACE];
- (void) sprintf(buf, "%s%d", itemPrefix, id);
- Tcl_DStringAppend(result, buf, -1);
-#else /* ITEM_ID_IS_STRING */
- QE_ExpandNumber(id, result);
-#endif /* ITEM_ID_IS_STRING */
+ if (tree->itemPrefixLen) {
+ char buf[10 + TCL_INTEGER_SPACE];
+ (void) sprintf(buf, "%s%d", tree->itemPrefix, id);
+ Tcl_DStringAppend(result, buf, -1);
+ } else
+ QE_ExpandNumber(id, result);
}
/* Handle %? */
@@ -117,7 +116,7 @@ static void Percents_Expand(QE_ExpandArgs *args)
switch (args->which)
{
case 'I':
- ExpandItem(data->id, args->result);
+ ExpandItem(data->tree, data->id, args->result);
break;
default:
@@ -134,6 +133,7 @@ static void Percents_Selection(QE_ExpandArgs *args)
int *deselect;
int count;
} *data = args->clientData;
+ TreeCtrl *tree = data->tree;
int *items = NULL;
int i = 0;
@@ -153,15 +153,15 @@ static void Percents_Selection(QE_ExpandArgs *args)
Tcl_DStringStartSublist(args->result);
while (items[i] != -1)
{
-#if ITEM_ID_IS_STRING
- char buf[10 + TCL_INTEGER_SPACE];
- (void) sprintf(buf, "%s%d", itemPrefix, items[i]);
- Tcl_DStringAppendElement(args->result, buf);
-#else /* ITEM_ID_IS_STRING */
- char string[TCL_INTEGER_SPACE];
- TclFormatInt(string, items[i]);
- Tcl_DStringAppendElement(args->result, string);
-#endif /* ITEM_ID_IS_STRING */
+ if (tree->itemPrefixLen) {
+ char buf[10 + TCL_INTEGER_SPACE];
+ (void) sprintf(buf, "%s%d", tree->itemPrefix, items[i]);
+ Tcl_DStringAppendElement(args->result, buf);
+ } else {
+ char string[TCL_INTEGER_SPACE];
+ TclFormatInt(string, items[i]);
+ Tcl_DStringAppendElement(args->result, string);
+ }
i++;
}
Tcl_DStringEndSublist(args->result);
@@ -184,11 +184,11 @@ static void Percents_ActiveItem(QE_ExpandArgs *args)
switch (args->which)
{
case 'c':
- ExpandItem(data->current, args->result);
+ ExpandItem(data->tree, data->current, args->result);
break;
case 'p':
- ExpandItem(data->prev, args->result);
+ ExpandItem(data->tree, data->prev, args->result);
break;
default:
@@ -438,6 +438,7 @@ static void Percents_ItemDeleted(QE_ExpandArgs *args)
int count;
int *itemIds;
} *data = args->clientData;
+ TreeCtrl *tree = data->tree;
int i;
switch (args->which)
@@ -446,15 +447,15 @@ static void Percents_ItemDeleted(QE_ExpandArgs *args)
Tcl_DStringStartSublist(args->result);
for (i = 0; i < data->count; i++)
{
-#if ITEM_ID_IS_STRING
- char buf[10 + TCL_INTEGER_SPACE];
- (void) sprintf(buf, "%s%d", itemPrefix, data->itemIds[i]);
- Tcl_DStringAppendElement(args->result, buf);
-#else /* ITEM_ID_IS_STRING */
- char string[TCL_INTEGER_SPACE];
- TclFormatInt(string, data->itemIds[i]);
- Tcl_DStringAppendElement(args->result, string);
-#endif /* ITEM_ID_IS_STRING */
+ if (tree->itemPrefixLen) {
+ char buf[10 + TCL_INTEGER_SPACE];
+ (void) sprintf(buf, "%s%d", tree->itemPrefix, data->itemIds[i]);
+ Tcl_DStringAppendElement(args->result, buf);
+ } else {
+ char string[TCL_INTEGER_SPACE];
+ TclFormatInt(string, data->itemIds[i]);
+ Tcl_DStringAppendElement(args->result, string);
+ }
}
Tcl_DStringEndSublist(args->result);
break;