diff options
author | lecoanet | 2002-04-11 09:11:13 +0000 |
---|---|---|
committer | lecoanet | 2002-04-11 09:11:13 +0000 |
commit | 2a83a5e2b4d8d566d141e503a3807d7cd4c1bcd8 (patch) | |
tree | 7a89183d403f420958f3f6b2d458444560775c70 /generic/Track.c | |
parent | d8a3c9801be934fbee8deaa89fd262be04416dbf (diff) | |
download | tkzinc-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.c | 24 |
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); + } } |