From fc5443fb490fcb2c4eafc084db91000a08068c71 Mon Sep 17 00:00:00 2001 From: lecoanet Date: Thu, 16 May 2002 09:38:22 +0000 Subject: Ajout de l'attribut -composealpha. Mise en correspondance des types d'attributs avec la doc. Adaptation des prototypes de ToArea et Pick pour accomoder les nouvelles fonctionalit�s des commandes de find/addtag. Suppression de la variable de classe has_fields --- generic/Tabular.c | 31 +++++++++++++++---------------- generic/Triangles.c | 23 ++++++++++------------- 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/generic/Tabular.c b/generic/Tabular.c index eed5c41..fa04be7 100644 --- a/generic/Tabular.c +++ b/generic/Tabular.c @@ -64,6 +64,9 @@ typedef struct _TabularItemStruct { static ZnAttrConfig tabular_attrs[] = { { ZN_CONFIG_ANCHOR, "-anchor", NULL, Tk_Offset(TabularItemStruct, anchor), 0, ZN_COORDS_FLAG, False }, + { ZN_CONFIG_BOOL, "-composealpha", NULL, + Tk_Offset(TabularItemStruct, header.flags), COMPOSE_ALPHA_BIT, + ZN_DRAW_FLAG, False }, { ZN_CONFIG_BOOL, "-composerotation", NULL, Tk_Offset(TabularItemStruct, header.flags), COMPOSE_ROTATION_BIT, ZN_COORDS_FLAG, False }, @@ -88,7 +91,7 @@ static ZnAttrConfig tabular_attrs[] = { { ZN_CONFIG_BOOL, "-sensitive", NULL, Tk_Offset(TabularItemStruct, header.flags), SENSITIVE_BIT, ZN_REPICK_FLAG, False }, - { ZN_CONFIG_TAGS, "-tags", NULL, + { ZN_CONFIG_TAG_LIST, "-tags", NULL, Tk_Offset(TabularItemStruct, header.tags), 0, 0, False }, { ZN_CONFIG_BOOL, "-visible", NULL, Tk_Offset(TabularItemStruct, header.flags), VISIBLE_BIT, @@ -118,6 +121,7 @@ Init(Item item, SET(item->flags, VISIBLE_BIT); SET(item->flags, SENSITIVE_BIT); + SET(item->flags, COMPOSE_ALPHA_BIT); SET(item->flags, COMPOSE_SCALE_BIT); SET(item->flags, COMPOSE_ROTATION_BIT); @@ -159,7 +163,10 @@ Init(Item item, static void Clone(Item item) { - FIELD.CloneFields(&((TabularItem) item)->field_set); + FieldSet fs = &((TabularItem) item)->field_set; + + FIELD.CloneFields(fs); + fs->item = item; } @@ -253,7 +260,7 @@ ComputeCoordinates(Item item, ZnDim width, height; ResetBBox(&item->item_bounding_box); - if (field_set->label_format) { + if (field_set->label_format && field_set->num_fields) { FIELD.GetLabelBBox(field_set, &width, &height); /* @@ -299,12 +306,9 @@ ComputeCoordinates(Item item, */ static int ToArea(Item item, - ZnBBox *area, - Tk_Uid tag_uid, - int enclosed, - ZnBool report) + ZnToArea ta) { - return FIELD.FieldsToArea(&((TabularItem) item)->field_set, area); + return FIELD.FieldsToArea(&((TabularItem) item)->field_set, ta->area); } @@ -370,23 +374,19 @@ IsSensitive(Item item, */ static double Pick(Item item, - ZnPoint *p, - Item start_item, - int aperture, - Item *a_item, - int *part) + ZnPick ps) { int best_part; double dist; - dist = FIELD.FieldsPick(&((TabularItem) item)->field_set, p, &best_part); + dist = FIELD.FieldsPick(&((TabularItem) item)->field_set, ps->point, &best_part); /*printf("tabular %d reporting part %d, distance %lf\n", item->id, best_part, dist);*/ if (dist <= 0.0) { dist = 0.0; } - *part = best_part; + ps->a_part = best_part; return dist; } @@ -667,7 +667,6 @@ Selection(Item item, */ static ItemClassStruct TABULAR_ITEM_CLASS = { sizeof(TabularItemStruct), - True, /* has_fields */ 0, /* num_parts */ True, /* has_anchors */ "tabular", diff --git a/generic/Triangles.c b/generic/Triangles.c index 70287f3..796333c 100644 --- a/generic/Triangles.c +++ b/generic/Triangles.c @@ -70,8 +70,11 @@ typedef struct _TrianglesItemStruct { static ZnAttrConfig tr_attrs[] = { - { ZN_CONFIG_GRADIENTS, "-colors", NULL, + { ZN_CONFIG_GRADIENT_LIST, "-colors", NULL, Tk_Offset(TrianglesItemStruct, colors), 0, ZN_DRAW_FLAG, False }, + { ZN_CONFIG_BOOL, "-composealpha", NULL, + Tk_Offset(TrianglesItemStruct, header.flags), COMPOSE_ALPHA_BIT, + ZN_DRAW_FLAG, False }, { ZN_CONFIG_BOOL, "-composerotation", NULL, Tk_Offset(TrianglesItemStruct, header.flags), COMPOSE_ROTATION_BIT, ZN_COORDS_FLAG, False }, @@ -86,7 +89,7 @@ static ZnAttrConfig tr_attrs[] = { { ZN_CONFIG_BOOL, "-sensitive", NULL, Tk_Offset(TrianglesItemStruct, header.flags), SENSITIVE_BIT, ZN_REPICK_FLAG, False }, - { ZN_CONFIG_TAGS, "-tags", NULL, + { ZN_CONFIG_TAG_LIST, "-tags", NULL, Tk_Offset(TrianglesItemStruct, header.tags), 0, 0, False }, { ZN_CONFIG_BOOL, "-visible", NULL, Tk_Offset(TrianglesItemStruct, header.flags), VISIBLE_BIT, @@ -120,6 +123,7 @@ Init(Item item, /* Init attributes */ SET(item->flags, VISIBLE_BIT); SET(item->flags, SENSITIVE_BIT); + SET(item->flags, COMPOSE_ALPHA_BIT); SET(item->flags, COMPOSE_ROTATION_BIT); SET(item->flags, COMPOSE_SCALE_BIT); item->priority = DEFAULT_TRIANGLES_PRIORITY; @@ -339,14 +343,12 @@ ComputeCoordinates(Item item, */ static int ToArea(Item item, - ZnBBox *area, - Tk_Uid tag_uid, - int enclosed, - ZnBool report) + ZnToArea ta) { TrianglesItem tr = (TrianglesItem) item; ZnPoint *points; int i, num_points, result=-1, result2; + ZnBBox *area = ta->area; if (tr->dev_points.num_strips == 0) { return -1; @@ -537,15 +539,11 @@ IsSensitive(Item item, */ static double Pick(Item item, - ZnPoint *p, - Item start_item, - int aperture, - Item *a_item, - int *part) + ZnPick ps) { TrianglesItem tr = (TrianglesItem) item; double dist=1.0e40, new_dist; - ZnPoint *points; + ZnPoint *points, *p = ps->point; int i, num_points; if (tr->dev_points.num_strips == 0) { @@ -864,7 +862,6 @@ PickVertex(Item item, */ static ItemClassStruct TRIANGLES_ITEM_CLASS = { sizeof(TrianglesItemStruct), - False, /* has_fields */ 0, /* num_parts */ False, /* has_anchors */ "triangles", -- cgit v1.1