forked from enlightenment/efl
edje: Fix handling of polygon and polyline node.
Reviewers: cedric, jpeg Reviewed By: jpeg Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4203
This commit is contained in:
parent
523aea45ce
commit
7af272d93c
|
@ -1134,7 +1134,13 @@ static Eina_Bool
|
|||
_attr_parse_polygon_node(void *data, const char *key, const char *value)
|
||||
{
|
||||
Svg_Node *node = data;
|
||||
Svg_Polygon_Node *polygon = &(node->node.polygon);
|
||||
Svg_Polygon_Node *polygon = NULL;
|
||||
|
||||
if (node->type == SVG_NODE_POLYGON)
|
||||
polygon = &(node->node.polygon);
|
||||
else
|
||||
polygon = &(node->node.polyline);
|
||||
|
||||
|
||||
if (!strcmp(key, "points"))
|
||||
{
|
||||
|
@ -1368,6 +1374,10 @@ _copy_attribute(Svg_Node *to, Svg_Node *from)
|
|||
to->node.polygon.points_count = from->node.polygon.points_count;
|
||||
to->node.polygon.points = calloc(to->node.polygon.points_count, sizeof(double));
|
||||
break;
|
||||
case SVG_NODE_POLYLINE:
|
||||
to->node.polyline.points_count = from->node.polyline.points_count;
|
||||
to->node.polyline.points = calloc(to->node.polyline.points_count, sizeof(double));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -361,6 +361,7 @@ _eet_for_polygon_node(void)
|
|||
|
||||
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eetc, Svg_Polygon_Node);
|
||||
eet = eet_data_descriptor_stream_new(&eetc);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(eet, Svg_Polygon_Node, "points_count", points_count, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY(eet, Svg_Polygon_Node, "points", points, EET_T_DOUBLE);
|
||||
return eet;
|
||||
}
|
||||
|
@ -389,7 +390,7 @@ struct
|
|||
{ SVG_NODE_CIRCLE, "circle" },
|
||||
{ SVG_NODE_ELLIPSE, "ellipse" },
|
||||
{ SVG_NODE_POLYGON, "polygon" },
|
||||
{ SVG_NODE_POLYLINE, "polygon" },
|
||||
{ SVG_NODE_POLYLINE, "polyline" },
|
||||
{ SVG_NODE_RECT, "rect" },
|
||||
{ SVG_NODE_PATH, "path" },
|
||||
{ SVG_NODE_UNKNOWN, NULL }
|
||||
|
@ -474,6 +475,7 @@ _edje_svg_node_eet(void)
|
|||
EET_DATA_DESCRIPTOR_ADD_MAPPING(eet_union, "rect", _edje_edd_edje_rect_node);
|
||||
EET_DATA_DESCRIPTOR_ADD_MAPPING(eet_union, "path", _edje_edd_edje_path_node);
|
||||
EET_DATA_DESCRIPTOR_ADD_MAPPING(eet_union, "polygon", _edje_edd_edje_polygon_node);
|
||||
EET_DATA_DESCRIPTOR_ADD_MAPPING(eet_union, "polyline", _edje_edd_edje_polygon_node);
|
||||
|
||||
EET_DATA_DESCRIPTOR_ADD_UNION(_edje_edd_edje_vg_node, Svg_Node, "node", node, type, eet_union);
|
||||
|
||||
|
|
|
@ -2518,7 +2518,8 @@ _create_vg_node(Svg_Node *node, Efl_VG *parent)
|
|||
_add_polyline(vg, node->node.polygon.points, node->node.polygon.points_count, EINA_TRUE);
|
||||
break;
|
||||
case SVG_NODE_POLYLINE:
|
||||
_add_polyline(vg, node->node.polygon.points, node->node.polygon.points_count, EINA_FALSE);
|
||||
vg = evas_vg_shape_add(parent);
|
||||
_add_polyline(vg, node->node.polyline.points, node->node.polyline.points_count, EINA_FALSE);
|
||||
break;
|
||||
case SVG_NODE_ELLIPSE:
|
||||
vg = evas_vg_shape_add(parent);
|
||||
|
|
|
@ -3247,6 +3247,7 @@ struct _Svg_Node
|
|||
Svg_Circle_Node circle;
|
||||
Svg_Ellipse_Node ellipse;
|
||||
Svg_Polygon_Node polygon;
|
||||
Svg_Polygon_Node polyline;
|
||||
Svg_Rect_Node rect;
|
||||
Svg_Path_Node path;
|
||||
}node;
|
||||
|
|
Loading…
Reference in New Issue