aboutsummaryrefslogtreecommitdiff
path: root/generic/Item.c
diff options
context:
space:
mode:
authorlecoanet2002-02-15 08:59:37 +0000
committerlecoanet2002-02-15 08:59:37 +0000
commitb99f23c5a8e3359c66b50c5bfd056850006dfb75 (patch)
tree73fda1a584f1f121eae5f34431727fbeb03b4c93 /generic/Item.c
parent3add20dff641b4040e067857e3999b7b16ce16ad (diff)
downloadtkzinc-b99f23c5a8e3359c66b50c5bfd056850006dfb75.zip
tkzinc-b99f23c5a8e3359c66b50c5bfd056850006dfb75.tar.gz
tkzinc-b99f23c5a8e3359c66b50c5bfd056850006dfb75.tar.bz2
tkzinc-b99f23c5a8e3359c66b50c5bfd056850006dfb75.tar.xz
Le type d'attribut DIM devient un flottant.
Correction du bug de redimensionnement du label lors d'un changement du contenu d'un des champs. R�am�nagement de la validation des valeurs d'angle. R�am�nagement des flags d'invalidation concernant les attributs des champs impliquant la g�om�trie. L'�paisseur des traits est pass�e en flottant.
Diffstat (limited to 'generic/Item.c')
-rw-r--r--generic/Item.c37
1 files changed, 19 insertions, 18 deletions
diff --git a/generic/Item.c b/generic/Item.c
index 44a07e8..2ac02b0 100644
--- a/generic/Item.c
+++ b/generic/Item.c
@@ -82,7 +82,7 @@ typedef struct _FieldStruct {
Border border_edges;
ZnJustify alignment;
ReliefStyle relief;
- int relief_thickness;
+ ZnDim relief_thickness;
AutoAlign auto_alignment;
/* Private data */
@@ -115,7 +115,7 @@ ZnAttrConfig field_attrs[] = {
Tk_Offset(FieldStruct, fill_color), 0,
ZN_DRAW_FLAG|ZN_BORDER_FLAG, False },
{ ZN_CONFIG_BORDER, "-border", NULL,
- Tk_Offset(FieldStruct, border_edges), 0, ZN_COORDS_FLAG, False },
+ Tk_Offset(FieldStruct, border_edges), 0, ZN_DRAW_FLAG, False },
{ ZN_CONFIG_COLOR, "-bordercolor", NULL,
Tk_Offset(FieldStruct, border_color), 0, ZN_DRAW_FLAG, False },
{ ZN_CONFIG_COLOR, "-color", NULL,
@@ -125,21 +125,22 @@ ZnAttrConfig field_attrs[] = {
{ ZN_CONFIG_PATTERN, "-fillpattern", NULL,
Tk_Offset(FieldStruct, fill_pattern), 0, ZN_DRAW_FLAG, False },
{ ZN_CONFIG_FONT, "-font", NULL,
- Tk_Offset(FieldStruct, font), 0, ZN_DRAW_FLAG|ZN_CLFC_FLAG, False },
+ Tk_Offset(FieldStruct, font), 0, ZN_COORDS_FLAG|ZN_CLFC_FLAG, False },
{ ZN_CONFIG_IMAGE, "-image", NULL,
Tk_Offset(FieldStruct, image_name), 0,
ZN_COORDS_FLAG|ZN_IMAGE_FLAG|ZN_CLFC_FLAG, False },
{ ZN_CONFIG_RELIEF, "-relief", NULL,
- Tk_Offset(FieldStruct, relief), 0, ZN_COORDS_FLAG, False },
+ Tk_Offset(FieldStruct, relief), 0, ZN_DRAW_FLAG, False },
{ ZN_CONFIG_DIM, "-reliefthickness", NULL,
Tk_Offset(FieldStruct, relief_thickness), 0, ZN_DRAW_FLAG, False },
{ ZN_CONFIG_BOOL, "-sensitive", NULL,
- Tk_Offset(FieldStruct, flags), FIELD_SENSITIVE_BIT, ZN_REPICK_FLAG, False },
+ Tk_Offset(FieldStruct, flags),
+ FIELD_SENSITIVE_BIT, ZN_REPICK_FLAG, False },
{ ZN_CONFIG_TEXT, "-text", NULL,
Tk_Offset(FieldStruct, text), 0, ZN_COORDS_FLAG|ZN_CLFC_FLAG, False },
{ ZN_CONFIG_IMAGE, "-tile", NULL,
Tk_Offset(FieldStruct, tile_name), 0,
- ZN_COORDS_FLAG|ZN_TILE_FLAG|ZN_CLFC_FLAG, False },
+ ZN_COORDS_FLAG|ZN_TILE_FLAG, False },
{ ZN_CONFIG_BOOL, "-visible", NULL,
Tk_Offset(FieldStruct, flags), FIELD_VISIBLE_BIT,
ZN_COORDS_FLAG|ZN_CLFC_FLAG, False }, /* Keep ZN_COORDS_FLAG here */
@@ -902,15 +903,14 @@ ConfigureAttributes(char *record,
}
case ZN_CONFIG_DIM:
{
- int size;
- if (Tk_GetPixels(wi->interp, wi->win,
- Tcl_GetString(args[i+1]), &size) == ZN_ERROR) {
+ ZnDim dim;
+ if (Tcl_GetDoubleFromObj(wi->interp, args[i+1], &dim) == ZN_ERROR) {
Tcl_AppendResult(wi->interp, " dimension expected for attribute \"",
- Tcl_GetString(args[i]), "\"", NULL);
+ Tcl_GetString(args[i+1]), "\"", NULL);
return ZN_ERROR;
}
- if (size != *((int *) valp)) {
- *((int *) valp) = size;
+ if (dim != *((ZnDim *) valp)) {
+ *((ZnDim *) valp) = dim;
*flags |= desc->flags;
}
break;
@@ -1019,11 +1019,9 @@ ConfigureAttributes(char *record,
}
switch (desc->type) {
case ZN_CONFIG_ANGLE:
+ integer = integer % 360;
if (integer < 0) {
- integer = 0;
- }
- if (integer > 360) {
- integer = 360;
+ integer = 360 + integer;
}
break;
case ZN_CONFIG_UINT:
@@ -1518,12 +1516,14 @@ AttributeToObj(WidgetInfo *wi,
break;
case ZN_CONFIG_INT:
case ZN_CONFIG_UINT:
- case ZN_CONFIG_DIM:
case ZN_CONFIG_PRI:
case ZN_CONFIG_ANGLE:
case ZN_CONFIG_ALPHA:
Tcl_SetIntObj(result, *((int *) valp));
break;
+ case ZN_CONFIG_DIM:
+ Tcl_SetDoubleObj(result, *((ZnDim *) valp));
+ break;
case ZN_CONFIG_JUSTIFY:
str = Tk_NameOfJustify(*((ZnJustify *) valp));
Tcl_SetStringObj(result, str, strlen(str));
@@ -2048,6 +2048,7 @@ ClearFieldCache(FieldSet field_set,
&x_spec, &y_spec, &width_spec, &height_spec);
if ((x_dim != LF_DIM_PIXEL) || (y_dim != LF_DIM_PIXEL)) {
CLEAR(field_set->fields[field].flags, CACHE_OK);
+ clear_bbox = True;
}
for (i = 0; i < num_fields; i++) {
LabelFormatGetField(field_set->label_format, i,
@@ -3365,8 +3366,8 @@ PushClip(WidgetInfo *wi,
if (set_gc) {
if (wi->render) {
#ifdef GLX
- glEnable(GL_STENCIL_TEST);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_EQUAL, num_clips, 0xFF);
glStencilOp(GL_KEEP, GL_INCR, GL_INCR);
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);