diff options
author | treectrl <treectrl> | 2004-08-09 02:24:04 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2004-08-09 02:24:04 (GMT) |
commit | 4c6c128148faf654daaacfe4a0e0f904b7a958cd (patch) | |
tree | 856c3754cbe1d11c7cf2cb95ba414ed11f5fcb32 /generic | |
parent | 2ad4d43c3b1107315c0e02267f99f66c7a22648a (diff) | |
download | tktreectrl-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.c | 27 |
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: |