summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authortreectrl <treectrl>2004-08-09 02:24:04 (GMT)
committertreectrl <treectrl>2004-08-09 02:24:04 (GMT)
commit4c6c128148faf654daaacfe4a0e0f904b7a958cd (patch)
tree856c3754cbe1d11c7cf2cb95ba414ed11f5fcb32 /generic
parent2ad4d43c3b1107315c0e02267f99f66c7a22648a (diff)
downloadtktreectrl-4c6c128148faf654daaacfe4a0e0f904b7a958cd.zip
tktreectrl-4c6c128148faf654daaacfe4a0e0f904b7a958cd.tar.gz
tktreectrl-4c6c128148faf654daaacfe4a0e0f904b7a958cd.tar.bz2
Support for ITEM_ID_IS_STRING compile-time option.
Diffstat (limited to 'generic')
-rw-r--r--generic/tkTreeNotify.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/generic/tkTreeNotify.c b/generic/tkTreeNotify.c
index 3a983eb..0d58e24 100644
--- a/generic/tkTreeNotify.c
+++ b/generic/tkTreeNotify.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 2002-2004 Tim Baker
*
- * RCS: @(#) $Id: tkTreeNotify.c,v 1.3 2004/07/30 21:12:43 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeNotify.c,v 1.4 2004/08/09 02:24:04 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -28,6 +28,17 @@ static int EVENT_SCROLL,
DETAIL_SCROLL_X,
DETAIL_SCROLL_Y;
+static void ExpandItem(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 */
+}
+
/*
* %-substitution for any event
*/
@@ -72,7 +83,7 @@ static void Percents_Expand(QE_ExpandArgs *args)
switch (args->which)
{
case 'I':
- QE_ExpandNumber(data->id, args->result);
+ ExpandItem(data->id, args->result);
break;
default:
@@ -91,7 +102,6 @@ static void Percents_Selection(QE_ExpandArgs *args)
} *data = args->clientData;
int *items = NULL;
int i = 0;
- char string[TCL_INTEGER_SPACE];
switch (args->which)
{
@@ -109,8 +119,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 */
i++;
}
Tcl_DStringEndSublist(args->result);
@@ -133,11 +150,11 @@ static void Percents_ActiveItem(QE_ExpandArgs *args)
switch (args->which)
{
case 'c':
- QE_ExpandNumber(data->current, args->result);
+ ExpandItem(data->current, args->result);
break;
case 'p':
- QE_ExpandNumber(data->prev, args->result);
+ ExpandItem(data->prev, args->result);
break;
default: