aboutsummaryrefslogtreecommitdiff
path: root/generic/Track.c
diff options
context:
space:
mode:
authorlecoanet2002-04-11 09:11:13 +0000
committerlecoanet2002-04-11 09:11:13 +0000
commit2a83a5e2b4d8d566d141e503a3807d7cd4c1bcd8 (patch)
tree7a89183d403f420958f3f6b2d458444560775c70 /generic/Track.c
parentd8a3c9801be934fbee8deaa89fd262be04416dbf (diff)
downloadtkzinc-2a83a5e2b4d8d566d141e503a3807d7cd4c1bcd8.zip
tkzinc-2a83a5e2b4d8d566d141e503a3807d7cd4c1bcd8.tar.gz
tkzinc-2a83a5e2b4d8d566d141e503a3807d7cd4c1bcd8.tar.bz2
tkzinc-2a83a5e2b4d8d566d141e503a3807d7cd4c1bcd8.tar.xz
Simplification du protocole de DrawFields, RenderFields,
FieldInsertChars, FieldDeleteChars suite au changement de variable dans FieldSet: au lieu de m�moriser wi on m�morise l'item correspondant au fieldset c'est plus logique et �a offre plus de possibilit�s. Correction d'un bug dans DeleteChars et InsertChars: il faut invalider la g�om�trie de l'item afin qu'il refasse le layout des champs.
Diffstat (limited to 'generic/Track.c')
-rw-r--r--generic/Track.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/generic/Track.c b/generic/Track.c
index e7ebc6b..14c3de2 100644
--- a/generic/Track.c
+++ b/generic/Track.c
@@ -415,7 +415,7 @@ Init(Item item,
track->speed_vector.x = 0.0;
track->speed_vector.y = 10.0;
}
- field_set->wi = wi;
+ field_set->item = item;
field_set->label_format = NULL;
/*
* Then try to see if some fields are needed.
@@ -1264,7 +1264,7 @@ Draw(Item item)
/*
* Draw the label.
*/
- FIELD.DrawFields(&track->field_set, item);
+ FIELD.DrawFields(&track->field_set);
}
@@ -1525,7 +1525,7 @@ Render(Item item)
/*
* Render the label.
*/
- FIELD.RenderFields(&track->field_set, item);
+ FIELD.RenderFields(&track->field_set);
#endif
}
@@ -2099,10 +2099,10 @@ Part(Item item,
*part_spec = Tcl_NewIntObj(*part);
}
else {
+ part_str = "";
switch (*part) {
default:
case ZN_NO_PART:
- part_str = "";
break;
case CURRENT_POSITION:
part_str = "position";
@@ -2119,7 +2119,9 @@ Part(Item item,
break;
}
}
- *part_spec = NewStringObj(part_str);
+ if (part_str[0]) {
+ *part_spec = NewStringObj(part_str);
+ }
}
}
return ZN_OK;
@@ -2142,7 +2144,7 @@ Index(Item item,
int *index)
{
return FIELD.FieldIndex(&((TrackItem) item)->field_set, field,
- item, index_spec, index);
+ index_spec, index);
}
@@ -2159,7 +2161,10 @@ InsertChars(Item item,
int *index,
char *chars)
{
- FIELD.FieldInsertChars(&((TrackItem) item)->field_set, field, index, chars);
+ if (FIELD.FieldInsertChars(&((TrackItem) item)->field_set,
+ field, index, chars)) {
+ ITEM.Invalidate(item, ZN_COORDS_FLAG);
+ }
}
@@ -2176,7 +2181,10 @@ DeleteChars(Item item,
int *first,
int *last)
{
- FIELD.FieldDeleteChars(&((TrackItem) item)->field_set, field, first, last);
+ if (FIELD.FieldDeleteChars(&((TrackItem) item)->field_set,
+ field, first, last)) {
+ ITEM.Invalidate(item, ZN_COORDS_FLAG);
+ }
}