diff options
-rw-r--r-- | src/lib/ector/cairo/ector_renderer_cairo_shape.c | 24 | ||||
-rw-r--r-- | src/lib/ector/cairo/ector_renderer_cairo_shape.eo | 1 | ||||
-rw-r--r-- | src/lib/ector/gl/ector_renderer_gl_shape.c | 21 | ||||
-rw-r--r-- | src/lib/ector/gl/ector_renderer_gl_shape.eo | 1 | ||||
-rw-r--r-- | src/lib/ector/software/ector_renderer_software_shape.c | 43 | ||||
-rw-r--r-- | src/lib/ector/software/ector_renderer_software_shape.eo | 2 | ||||
-rw-r--r-- | src/lib/efl/interfaces/efl_gfx_path.c | 49 | ||||
-rw-r--r-- | src/lib/efl/interfaces/efl_gfx_path.eo | 13 | ||||
-rw-r--r-- | src/lib/efl/interfaces/efl_gfx_shape.c | 3 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_textpath.c | 16 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_textpath.eo | 1 | ||||
-rw-r--r-- | src/lib/evas/canvas/efl_canvas_vg_shape.c | 51 | ||||
-rw-r--r-- | src/lib/evas/canvas/efl_canvas_vg_shape.eo | 1 |
13 files changed, 94 insertions, 132 deletions
diff --git a/src/lib/ector/cairo/ector_renderer_cairo_shape.c b/src/lib/ector/cairo/ector_renderer_cairo_shape.c index 2605623..87fe2a0 100644 --- a/src/lib/ector/cairo/ector_renderer_cairo_shape.c +++ b/src/lib/ector/cairo/ector_renderer_cairo_shape.c | |||
@@ -75,19 +75,15 @@ struct _Ector_Renderer_Cairo_Shape_Data | |||
75 | cairo_path_t *path; | 75 | cairo_path_t *path; |
76 | }; | 76 | }; |
77 | 77 | ||
78 | static void | 78 | EOLIAN static void |
79 | _ector_renderer_cairo_shape_path_changed(void *data, const Efl_Event *event) | 79 | _ector_renderer_cairo_shape_efl_gfx_path_commit(Eo *obj EINA_UNUSED, |
80 | Ector_Renderer_Cairo_Shape_Data *pd) | ||
80 | { | 81 | { |
81 | Ector_Renderer_Cairo_Shape_Data *pd = data; | 82 | if (pd->path) |
82 | Efl_Gfx_Path_Change_Event *ev = event->info; | 83 | { |
83 | 84 | cairo_path_destroy(pd->path); | |
84 | if (!pd->path) return; | 85 | pd->path = NULL; |
85 | if (ev && !((ev->what & EFL_GFX_CHANGE_FLAG_MATRIX) || | 86 | } |
86 | (ev->what & EFL_GFX_CHANGE_FLAG_PATH))) | ||
87 | return; | ||
88 | |||
89 | cairo_path_destroy(pd->path); | ||
90 | pd->path = NULL; | ||
91 | } | 87 | } |
92 | 88 | ||
93 | static Eina_Bool | 89 | static Eina_Bool |
@@ -255,9 +251,7 @@ _ector_renderer_cairo_shape_efl_object_constructor(Eo *obj, Ector_Renderer_Cairo | |||
255 | pd->shape = efl_data_xref(obj, ECTOR_RENDERER_SHAPE_MIXIN, obj); | 251 | pd->shape = efl_data_xref(obj, ECTOR_RENDERER_SHAPE_MIXIN, obj); |
256 | pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj); | 252 | pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj); |
257 | 253 | ||
258 | efl_event_callback_add(obj, EFL_GFX_PATH_EVENT_CHANGED, _ector_renderer_cairo_shape_path_changed, pd); | 254 | return obj; |
259 | |||
260 | return obj; | ||
261 | } | 255 | } |
262 | 256 | ||
263 | static Efl_Object * | 257 | static Efl_Object * |
diff --git a/src/lib/ector/cairo/ector_renderer_cairo_shape.eo b/src/lib/ector/cairo/ector_renderer_cairo_shape.eo index b76dd29..7c95844 100644 --- a/src/lib/ector/cairo/ector_renderer_cairo_shape.eo +++ b/src/lib/ector/cairo/ector_renderer_cairo_shape.eo | |||
@@ -6,6 +6,7 @@ class Ector.Renderer.Cairo.Shape (Ector.Renderer.Cairo, Ector.Renderer.Shape, Ef | |||
6 | Ector.Renderer.prepare; | 6 | Ector.Renderer.prepare; |
7 | Ector.Renderer.draw; | 7 | Ector.Renderer.draw; |
8 | Efl.Gfx.Path.bounds_get; | 8 | Efl.Gfx.Path.bounds_get; |
9 | Efl.Gfx.Path.commit; | ||
9 | Ector.Renderer.crc { get; } | 10 | Ector.Renderer.crc { get; } |
10 | Ector.Renderer.Cairo.op_fill; | 11 | Ector.Renderer.Cairo.op_fill; |
11 | Efl.Object.constructor; | 12 | Efl.Object.constructor; |
diff --git a/src/lib/ector/gl/ector_renderer_gl_shape.c b/src/lib/ector/gl/ector_renderer_gl_shape.c index 79e029d..cf2266d 100644 --- a/src/lib/ector/gl/ector_renderer_gl_shape.c +++ b/src/lib/ector/gl/ector_renderer_gl_shape.c | |||
@@ -20,18 +20,15 @@ struct _Ector_Renderer_GL_Shape_Data | |||
20 | GLshort *vertex; | 20 | GLshort *vertex; |
21 | }; | 21 | }; |
22 | 22 | ||
23 | static void | 23 | EOLIAN static void |
24 | _ector_renderer_gl_shape_path_changed(void *data, const Efl_Event *event EINA_UNUSED) | 24 | _ector_renderer_gl_shape_efl_gfx_path_commit(Eo *obj EINA_UNUSED, |
25 | Ector_Renderer_GL_Shape_Data *pd) | ||
25 | { | 26 | { |
26 | Ector_Renderer_GL_Shape_Data *pd = data; | 27 | if (pd->vertex) |
27 | Efl_Gfx_Path_Change_Event *ev = event->info; | 28 | { |
28 | 29 | free(pd->vertex); | |
29 | if (ev && !((ev->what & EFL_GFX_CHANGE_FLAG_MATRIX) || | 30 | pd->vertex = NULL; |
30 | (ev->what & EFL_GFX_CHANGE_FLAG_PATH))) | 31 | } |
31 | return; | ||
32 | |||
33 | free(pd->vertex); | ||
34 | pd->vertex = NULL; | ||
35 | } | 32 | } |
36 | 33 | ||
37 | static Eina_Bool | 34 | static Eina_Bool |
@@ -154,8 +151,6 @@ _ector_renderer_gl_shape_efl_object_constructor(Eo *obj, Ector_Renderer_GL_Shape | |||
154 | pd->shape = efl_data_xref(obj, ECTOR_RENDERER_SHAPE_MIXIN, obj); | 151 | pd->shape = efl_data_xref(obj, ECTOR_RENDERER_SHAPE_MIXIN, obj); |
155 | pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj); | 152 | pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj); |
156 | 153 | ||
157 | efl_event_callback_add(obj, EFL_GFX_PATH_EVENT_CHANGED, _ector_renderer_gl_shape_path_changed, pd); | ||
158 | |||
159 | return obj; | 154 | return obj; |
160 | } | 155 | } |
161 | 156 | ||
diff --git a/src/lib/ector/gl/ector_renderer_gl_shape.eo b/src/lib/ector/gl/ector_renderer_gl_shape.eo index 21ef655..6323ef6 100644 --- a/src/lib/ector/gl/ector_renderer_gl_shape.eo +++ b/src/lib/ector/gl/ector_renderer_gl_shape.eo | |||
@@ -8,6 +8,7 @@ class Ector.Renderer.GL.Shape (Ector.Renderer.GL, Ector.Renderer.Shape, Efl.Gfx. | |||
8 | Ector.Renderer.crc { get; } | 8 | Ector.Renderer.crc { get; } |
9 | Ector.Renderer.GL.op_fill; | 9 | Ector.Renderer.GL.op_fill; |
10 | Efl.Gfx.Path.bounds_get; | 10 | Efl.Gfx.Path.bounds_get; |
11 | Efl.Gfx.Path.commit; | ||
11 | Efl.Object.constructor; | 12 | Efl.Object.constructor; |
12 | Efl.Object.destructor; | 13 | Efl.Object.destructor; |
13 | } | 14 | } |
diff --git a/src/lib/ector/software/ector_renderer_software_shape.c b/src/lib/ector/software/ector_renderer_software_shape.c index 396e472..b9cf1fa 100644 --- a/src/lib/ector/software/ector_renderer_software_shape.c +++ b/src/lib/ector/software/ector_renderer_software_shape.c | |||
@@ -734,36 +734,20 @@ _ector_renderer_software_shape_ector_renderer_software_op_fill(Eo *obj EINA_UNUS | |||
734 | return EINA_FALSE; | 734 | return EINA_FALSE; |
735 | } | 735 | } |
736 | 736 | ||
737 | static void | 737 | EOLIAN static void |
738 | _ector_renderer_software_shape_efl_gfx_path_path_set(Eo *obj, | 738 | _ector_renderer_software_shape_efl_gfx_path_commit(Eo *obj EINA_UNUSED, |
739 | Ector_Renderer_Software_Shape_Data *pd, | 739 | Ector_Renderer_Software_Shape_Data *pd) |
740 | const Efl_Gfx_Path_Command *op, | ||
741 | const double *points) | ||
742 | { | ||
743 | if (pd->shape_data) ector_software_rasterizer_destroy_rle_data(pd->shape_data); | ||
744 | if (pd->outline_data) ector_software_rasterizer_destroy_rle_data(pd->outline_data); | ||
745 | pd->shape_data = NULL; | ||
746 | pd->outline_data = NULL; | ||
747 | |||
748 | efl_gfx_path_set(efl_super(obj, MY_CLASS), op, points); | ||
749 | } | ||
750 | |||
751 | |||
752 | static void | ||
753 | _ector_renderer_software_shape_path_changed(void *data, const Efl_Event *event EINA_UNUSED) | ||
754 | { | 740 | { |
755 | Ector_Renderer_Software_Shape_Data *pd = data; | 741 | if (pd->shape_data) |
756 | Efl_Gfx_Path_Change_Event *ev = event->info; | 742 | { |
757 | 743 | ector_software_rasterizer_destroy_rle_data(pd->shape_data); | |
758 | if (ev && !((ev->what & EFL_GFX_CHANGE_FLAG_MATRIX) || | 744 | pd->shape_data = NULL; |
759 | (ev->what & EFL_GFX_CHANGE_FLAG_PATH))) | 745 | } |
760 | return; | 746 | if (pd->outline_data) |
761 | 747 | { | |
762 | if (pd->shape_data) ector_software_rasterizer_destroy_rle_data(pd->shape_data); | 748 | ector_software_rasterizer_destroy_rle_data(pd->outline_data); |
763 | if (pd->outline_data) ector_software_rasterizer_destroy_rle_data(pd->outline_data); | 749 | pd->outline_data = NULL; |
764 | 750 | } | |
765 | pd->shape_data = NULL; | ||
766 | pd->outline_data = NULL; | ||
767 | } | 751 | } |
768 | 752 | ||
769 | static Eo * | 753 | static Eo * |
@@ -777,7 +761,6 @@ _ector_renderer_software_shape_efl_object_constructor(Eo *obj, Ector_Renderer_So | |||
777 | pd->public_shape = efl_data_xref(obj, EFL_GFX_SHAPE_MIXIN, obj); | 761 | pd->public_shape = efl_data_xref(obj, EFL_GFX_SHAPE_MIXIN, obj); |
778 | pd->shape = efl_data_xref(obj, ECTOR_RENDERER_SHAPE_MIXIN, obj); | 762 | pd->shape = efl_data_xref(obj, ECTOR_RENDERER_SHAPE_MIXIN, obj); |
779 | pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj); | 763 | pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj); |
780 | efl_event_callback_add(obj, EFL_GFX_PATH_EVENT_CHANGED, _ector_renderer_software_shape_path_changed, pd); | ||
781 | 764 | ||
782 | return obj; | 765 | return obj; |
783 | } | 766 | } |
diff --git a/src/lib/ector/software/ector_renderer_software_shape.eo b/src/lib/ector/software/ector_renderer_software_shape.eo index abe8344..04f19ba 100644 --- a/src/lib/ector/software/ector_renderer_software_shape.eo +++ b/src/lib/ector/software/ector_renderer_software_shape.eo | |||
@@ -8,7 +8,7 @@ class Ector.Renderer.Software.Shape (Ector.Renderer.Software, Ector.Renderer.Sha | |||
8 | Ector.Renderer.Software.op_fill; | 8 | Ector.Renderer.Software.op_fill; |
9 | Ector.Renderer.mask { set; } | 9 | Ector.Renderer.mask { set; } |
10 | Ector.Renderer.crc { get; } | 10 | Ector.Renderer.crc { get; } |
11 | Efl.Gfx.Path.path { set; } | 11 | Efl.Gfx.Path.commit; |
12 | Efl.Object.constructor; | 12 | Efl.Object.constructor; |
13 | Efl.Object.destructor; | 13 | Efl.Object.destructor; |
14 | } | 14 | } |
diff --git a/src/lib/efl/interfaces/efl_gfx_path.c b/src/lib/efl/interfaces/efl_gfx_path.c index 7278216..c40d33a 100644 --- a/src/lib/efl/interfaces/efl_gfx_path.c +++ b/src/lib/efl/interfaces/efl_gfx_path.c | |||
@@ -173,7 +173,6 @@ _efl_gfx_path_path_set(Eo *obj, Efl_Gfx_Path_Data *pd, | |||
173 | return; | 173 | return; |
174 | } | 174 | } |
175 | 175 | ||
176 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
177 | Efl_Gfx_Path_Command *cmds; | 176 | Efl_Gfx_Path_Command *cmds; |
178 | double *pts; | 177 | double *pts; |
179 | unsigned int cmds_length = 0, pts_length = 0; | 178 | unsigned int cmds_length = 0, pts_length = 0; |
@@ -202,8 +201,6 @@ _efl_gfx_path_path_set(Eo *obj, Efl_Gfx_Path_Data *pd, | |||
202 | _efl_gfx_path_current_search(pd->commands, pd->points, | 201 | _efl_gfx_path_current_search(pd->commands, pd->points, |
203 | &pd->current.x, &pd->current.y, | 202 | &pd->current.x, &pd->current.y, |
204 | &pd->current_ctrl.x, &pd->current_ctrl.y); | 203 | &pd->current_ctrl.x, &pd->current_ctrl.y); |
205 | |||
206 | efl_event_callback_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
207 | } | 204 | } |
208 | 205 | ||
209 | EOLIAN static void | 206 | EOLIAN static void |
@@ -293,7 +290,6 @@ EOLIAN static Eina_Bool | |||
293 | _efl_gfx_path_interpolate(Eo *obj, Efl_Gfx_Path_Data *pd, | 290 | _efl_gfx_path_interpolate(Eo *obj, Efl_Gfx_Path_Data *pd, |
294 | const Eo *from, const Eo *to, double pos_map) | 291 | const Eo *from, const Eo *to, double pos_map) |
295 | { | 292 | { |
296 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
297 | Efl_Gfx_Path_Data *from_pd, *to_pd; | 293 | Efl_Gfx_Path_Data *from_pd, *to_pd; |
298 | Efl_Gfx_Path_Command *cmds; | 294 | Efl_Gfx_Path_Command *cmds; |
299 | double interv; //interpolated value | 295 | double interv; //interpolated value |
@@ -374,8 +370,6 @@ _efl_gfx_path_interpolate(Eo *obj, Efl_Gfx_Path_Data *pd, | |||
374 | 370 | ||
375 | } | 371 | } |
376 | 372 | ||
377 | efl_event_callback_legacy_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
378 | |||
379 | return EINA_TRUE; | 373 | return EINA_TRUE; |
380 | } | 374 | } |
381 | 375 | ||
@@ -411,10 +405,8 @@ _efl_gfx_path_reserve(Eo *obj EINA_UNUSED, Efl_Gfx_Path_Data *pd, | |||
411 | } | 405 | } |
412 | 406 | ||
413 | EOLIAN static void | 407 | EOLIAN static void |
414 | _efl_gfx_path_reset(Eo *obj, Efl_Gfx_Path_Data *pd) | 408 | _efl_gfx_path_reset(Eo *obj EINA_UNUSED, Efl_Gfx_Path_Data *pd) |
415 | { | 409 | { |
416 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
417 | |||
418 | free(pd->commands); | 410 | free(pd->commands); |
419 | pd->reserved_cmd_cnt = 0; | 411 | pd->reserved_cmd_cnt = 0; |
420 | pd->commands = NULL; | 412 | pd->commands = NULL; |
@@ -433,15 +425,13 @@ _efl_gfx_path_reset(Eo *obj, Efl_Gfx_Path_Data *pd) | |||
433 | pd->current_ctrl.x = 0; | 425 | pd->current_ctrl.x = 0; |
434 | pd->current_ctrl.y = 0; | 426 | pd->current_ctrl.y = 0; |
435 | pd->convex = EINA_FALSE; | 427 | pd->convex = EINA_FALSE; |
436 | |||
437 | efl_event_callback_legacy_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
438 | } | 428 | } |
439 | 429 | ||
440 | EOLIAN static void | 430 | EOLIAN static void |
441 | _efl_gfx_path_append_move_to(Eo *obj, Efl_Gfx_Path_Data *pd, | 431 | _efl_gfx_path_append_move_to(Eo *obj EINA_UNUSED, |
442 | double x, double y) | 432 | Efl_Gfx_Path_Data *pd, |
433 | double x, double y) | ||
443 | { | 434 | { |
444 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
445 | double *offset_point; | 435 | double *offset_point; |
446 | 436 | ||
447 | if (!efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO, pd, &offset_point)) | 437 | if (!efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_MOVE_TO, pd, &offset_point)) |
@@ -452,15 +442,13 @@ _efl_gfx_path_append_move_to(Eo *obj, Efl_Gfx_Path_Data *pd, | |||
452 | 442 | ||
453 | pd->current.x = x; | 443 | pd->current.x = x; |
454 | pd->current.y = y; | 444 | pd->current.y = y; |
455 | |||
456 | efl_event_callback_legacy_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
457 | } | 445 | } |
458 | 446 | ||
459 | EOLIAN static void | 447 | EOLIAN static void |
460 | _efl_gfx_path_append_line_to(Eo *obj, Efl_Gfx_Path_Data *pd, | 448 | _efl_gfx_path_append_line_to(Eo *obj EINA_UNUSED, |
461 | double x, double y) | 449 | Efl_Gfx_Path_Data *pd, |
450 | double x, double y) | ||
462 | { | 451 | { |
463 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
464 | double *offset_point; | 452 | double *offset_point; |
465 | 453 | ||
466 | if (!efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_LINE_TO, pd, &offset_point)) | 454 | if (!efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_LINE_TO, pd, &offset_point)) |
@@ -471,17 +459,15 @@ _efl_gfx_path_append_line_to(Eo *obj, Efl_Gfx_Path_Data *pd, | |||
471 | 459 | ||
472 | pd->current.x = x; | 460 | pd->current.x = x; |
473 | pd->current.y = y; | 461 | pd->current.y = y; |
474 | |||
475 | efl_event_callback_legacy_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
476 | } | 462 | } |
477 | 463 | ||
478 | EOLIAN static void | 464 | EOLIAN static void |
479 | _efl_gfx_path_append_cubic_to(Eo *obj, Efl_Gfx_Path_Data *pd, | 465 | _efl_gfx_path_append_cubic_to(Eo *obj EINA_UNUSED, |
480 | double ctrl_x0, double ctrl_y0, | 466 | Efl_Gfx_Path_Data *pd, |
481 | double ctrl_x1, double ctrl_y1, | 467 | double ctrl_x0, double ctrl_y0, |
482 | double x, double y) | 468 | double ctrl_x1, double ctrl_y1, |
469 | double x, double y) | ||
483 | { | 470 | { |
484 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
485 | double *offset_point; | 471 | double *offset_point; |
486 | 472 | ||
487 | if (!efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO, | 473 | if (!efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_CUBIC_TO, |
@@ -499,8 +485,6 @@ _efl_gfx_path_append_cubic_to(Eo *obj, Efl_Gfx_Path_Data *pd, | |||
499 | pd->current.y = y; | 485 | pd->current.y = y; |
500 | pd->current_ctrl.x = ctrl_x1; | 486 | pd->current_ctrl.x = ctrl_x1; |
501 | pd->current_ctrl.y = ctrl_y1; | 487 | pd->current_ctrl.y = ctrl_y1; |
502 | |||
503 | efl_event_callback_legacy_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
504 | } | 488 | } |
505 | 489 | ||
506 | EOLIAN static void | 490 | EOLIAN static void |
@@ -1084,14 +1068,10 @@ _efl_gfx_path_append_arc(Eo *obj, Efl_Gfx_Path_Data *pd, | |||
1084 | } | 1068 | } |
1085 | 1069 | ||
1086 | EOLIAN static void | 1070 | EOLIAN static void |
1087 | _efl_gfx_path_append_close(Eo *obj, Efl_Gfx_Path_Data *pd) | 1071 | _efl_gfx_path_append_close(Eo *obj EINA_UNUSED, Efl_Gfx_Path_Data *pd) |
1088 | { | 1072 | { |
1089 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
1090 | double *offset_point; | 1073 | double *offset_point; |
1091 | |||
1092 | efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_CLOSE, pd, &offset_point); | 1074 | efl_gfx_path_grow(EFL_GFX_PATH_COMMAND_TYPE_CLOSE, pd, &offset_point); |
1093 | |||
1094 | efl_event_callback_legacy_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
1095 | } | 1075 | } |
1096 | 1076 | ||
1097 | static void | 1077 | static void |
@@ -1538,7 +1518,6 @@ error: | |||
1538 | EOLIAN static void | 1518 | EOLIAN static void |
1539 | _efl_gfx_path_copy_from(Eo *obj, Efl_Gfx_Path_Data *pd, const Eo *dup_from) | 1519 | _efl_gfx_path_copy_from(Eo *obj, Efl_Gfx_Path_Data *pd, const Eo *dup_from) |
1540 | { | 1520 | { |
1541 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
1542 | Efl_Gfx_Path_Data *from; | 1521 | Efl_Gfx_Path_Data *from; |
1543 | 1522 | ||
1544 | if (obj == dup_from) return; | 1523 | if (obj == dup_from) return; |
@@ -1548,8 +1527,6 @@ _efl_gfx_path_copy_from(Eo *obj, Efl_Gfx_Path_Data *pd, const Eo *dup_from) | |||
1548 | pd->convex = from->convex; | 1527 | pd->convex = from->convex; |
1549 | 1528 | ||
1550 | _efl_gfx_path_path_set(obj, pd, from->commands, from->points); | 1529 | _efl_gfx_path_path_set(obj, pd, from->commands, from->points); |
1551 | |||
1552 | efl_event_callback_legacy_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
1553 | } | 1530 | } |
1554 | 1531 | ||
1555 | #include "interfaces/efl_gfx_path.eo.c" | 1532 | #include "interfaces/efl_gfx_path.eo.c" |
diff --git a/src/lib/efl/interfaces/efl_gfx_path.eo b/src/lib/efl/interfaces/efl_gfx_path.eo index c1ec7aa..d60886e 100644 --- a/src/lib/efl/interfaces/efl_gfx_path.eo +++ b/src/lib/efl/interfaces/efl_gfx_path.eo | |||
@@ -292,8 +292,15 @@ mixin Efl.Gfx.Path | |||
292 | @in pts_count: uint; [[Pointers count to reserve]] | 292 | @in pts_count: uint; [[Pointers count to reserve]] |
293 | } | 293 | } |
294 | } | 294 | } |
295 | } | 295 | commit @pure_virtual { |
296 | events { | 296 | [[Request to update the path object. |
297 | changed: Efl.Gfx.Path_Change_Event; [[Graphics path was changed.]] | 297 | |
298 | One path object may get appending several path calls (such as | ||
299 | append_cubic, append_rect, etc) to construct the final path data. | ||
300 | Here commit means all path data is prepared and now object | ||
301 | could update its own internal status based on the last path | ||
302 | information. | ||
303 | ]] | ||
304 | } | ||
298 | } | 305 | } |
299 | } | 306 | } |
diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index a9327c3..bdebbfa 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c | |||
@@ -161,10 +161,7 @@ _efl_gfx_shape_stroke_color_get(const Eo *obj EINA_UNUSED, Efl_Gfx_Shape_Data *p | |||
161 | EOLIAN static void | 161 | EOLIAN static void |
162 | _efl_gfx_shape_stroke_width_set(Eo *obj, Efl_Gfx_Shape_Data *pd, double w) | 162 | _efl_gfx_shape_stroke_width_set(Eo *obj, Efl_Gfx_Shape_Data *pd, double w) |
163 | { | 163 | { |
164 | Efl_Gfx_Path_Change_Event ev = { EFL_GFX_CHANGE_FLAG_PATH }; | ||
165 | |||
166 | pd->public.stroke.width = w; | 164 | pd->public.stroke.width = w; |
167 | efl_event_callback_legacy_call(obj, EFL_GFX_PATH_EVENT_CHANGED, &ev); | ||
168 | } | 165 | } |
169 | 166 | ||
170 | EOLIAN static double | 167 | EOLIAN static double |
diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c index 192478e..095c7a3 100644 --- a/src/lib/elementary/efl_ui_textpath.c +++ b/src/lib/elementary/efl_ui_textpath.c | |||
@@ -544,17 +544,10 @@ _ellipsis_set(Efl_Ui_Textpath_Data *pd) | |||
544 | } | 544 | } |
545 | 545 | ||
546 | static void | 546 | static void |
547 | _path_changed_cb(void *data, const Efl_Event *event) | 547 | _efl_ui_textpath_efl_gfx_path_commit(Eo *obj, Efl_Ui_Textpath_Data *pd) |
548 | { | 548 | { |
549 | Efl_Gfx_Path_Change_Event *ev = event->info; | 549 | _path_data_get(obj, pd, EINA_TRUE); |
550 | EFL_UI_TEXTPATH_DATA_GET(data, sd); | 550 | _sizing_eval(pd); |
551 | |||
552 | if (ev && !((ev->what & EFL_GFX_CHANGE_FLAG_MATRIX) || | ||
553 | (ev->what & EFL_GFX_CHANGE_FLAG_PATH))) | ||
554 | return; | ||
555 | |||
556 | _path_data_get(data, sd, EINA_TRUE); | ||
557 | _sizing_eval(sd); | ||
558 | } | 551 | } |
559 | 552 | ||
560 | static Eina_Bool | 553 | static Eina_Bool |
@@ -594,8 +587,6 @@ _efl_ui_textpath_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Textpath_Data *priv) | |||
594 | 587 | ||
595 | evas_object_smart_member_add(priv->text_obj, obj); | 588 | evas_object_smart_member_add(priv->text_obj, obj); |
596 | elm_widget_sub_object_add(obj, priv->text_obj); | 589 | elm_widget_sub_object_add(obj, priv->text_obj); |
597 | |||
598 | efl_event_callback_add(obj, EFL_GFX_PATH_EVENT_CHANGED, _path_changed_cb, obj); | ||
599 | } | 590 | } |
600 | 591 | ||
601 | EOLIAN static Efl_Object * | 592 | EOLIAN static Efl_Object * |
@@ -714,6 +705,7 @@ _efl_ui_textpath_circle_set(Eo *obj, Efl_Ui_Textpath_Data *pd, double x, double | |||
714 | radius * 2, start_angle, 360); | 705 | radius * 2, start_angle, 360); |
715 | } | 706 | } |
716 | 707 | ||
708 | _path_data_get(obj, pd, EINA_TRUE); | ||
717 | _sizing_eval(pd); | 709 | _sizing_eval(pd); |
718 | } | 710 | } |
719 | 711 | ||
diff --git a/src/lib/elementary/efl_ui_textpath.eo b/src/lib/elementary/efl_ui_textpath.eo index 917621c..bc25a0b 100644 --- a/src/lib/elementary/efl_ui_textpath.eo +++ b/src/lib/elementary/efl_ui_textpath.eo | |||
@@ -40,6 +40,7 @@ class Efl.Ui.Textpath (Efl.Ui.Layout, Efl.Text, Efl.Gfx.Path) | |||
40 | implements { | 40 | implements { |
41 | Efl.Object.constructor; | 41 | Efl.Object.constructor; |
42 | Efl.Object.destructor; | 42 | Efl.Object.destructor; |
43 | Efl.Gfx.Path.commit; | ||
43 | Efl.Canvas.Group.group_calculate; | 44 | Efl.Canvas.Group.group_calculate; |
44 | Efl.Text.text {get; set;} | 45 | Efl.Text.text {get; set;} |
45 | Efl.Part.part_get; | 46 | Efl.Part.part_get; |
diff --git a/src/lib/evas/canvas/efl_canvas_vg_shape.c b/src/lib/evas/canvas/efl_canvas_vg_shape.c index 728afb5..d1c41fa 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_shape.c +++ b/src/lib/evas/canvas/efl_canvas_vg_shape.c | |||
@@ -17,11 +17,6 @@ struct _Efl_Canvas_Vg_Shape_Data | |||
17 | }; | 17 | }; |
18 | 18 | ||
19 | // FIXME: Use the renderer bounding box when it has been created instead of an estimation | 19 | // FIXME: Use the renderer bounding box when it has been created instead of an estimation |
20 | static void | ||
21 | _efl_canvas_vg_shape_path_changed(void *data, const Efl_Event *event) | ||
22 | { | ||
23 | efl_canvas_vg_node_change(event->object); | ||
24 | } | ||
25 | 20 | ||
26 | static void | 21 | static void |
27 | _efl_canvas_vg_shape_fill_set(Eo *obj EINA_UNUSED, | 22 | _efl_canvas_vg_shape_fill_set(Eo *obj EINA_UNUSED, |
@@ -32,8 +27,6 @@ _efl_canvas_vg_shape_fill_set(Eo *obj EINA_UNUSED, | |||
32 | 27 | ||
33 | pd->fill = efl_ref(f); | 28 | pd->fill = efl_ref(f); |
34 | efl_unref(tmp); | 29 | efl_unref(tmp); |
35 | |||
36 | efl_canvas_vg_node_change(obj); | ||
37 | } | 30 | } |
38 | 31 | ||
39 | static Efl_Canvas_Vg_Node * | 32 | static Efl_Canvas_Vg_Node * |
@@ -51,8 +44,6 @@ _efl_canvas_vg_shape_stroke_fill_set(Eo *obj EINA_UNUSED, | |||
51 | 44 | ||
52 | pd->stroke.fill = efl_ref(f); | 45 | pd->stroke.fill = efl_ref(f); |
53 | efl_unref(tmp); | 46 | efl_unref(tmp); |
54 | |||
55 | efl_canvas_vg_node_change(obj); | ||
56 | } | 47 | } |
57 | 48 | ||
58 | static Efl_Canvas_Vg_Node * | 49 | static Efl_Canvas_Vg_Node * |
@@ -71,8 +62,6 @@ _efl_canvas_vg_shape_stroke_marker_set(Eo *obj EINA_UNUSED, | |||
71 | 62 | ||
72 | pd->stroke.marker = efl_ref(m); | 63 | pd->stroke.marker = efl_ref(m); |
73 | efl_unref(tmp); | 64 | efl_unref(tmp); |
74 | |||
75 | efl_canvas_vg_node_change(obj); | ||
76 | } | 65 | } |
77 | 66 | ||
78 | static Efl_Canvas_Vg_Shape * | 67 | static Efl_Canvas_Vg_Shape * |
@@ -119,9 +108,9 @@ _efl_canvas_vg_shape_render_pre(Evas_Object_Protected_Data *vg_pd, | |||
119 | ector_renderer_shape_stroke_fill_set(nd->renderer, stroke_fill ? stroke_fill->renderer : NULL); | 108 | ector_renderer_shape_stroke_fill_set(nd->renderer, stroke_fill ? stroke_fill->renderer : NULL); |
120 | ector_renderer_shape_stroke_marker_set(nd->renderer, stroke_marker ? stroke_marker->renderer : NULL); | 109 | ector_renderer_shape_stroke_marker_set(nd->renderer, stroke_marker ? stroke_marker->renderer : NULL); |
121 | efl_gfx_path_copy_from(nd->renderer, obj); | 110 | efl_gfx_path_copy_from(nd->renderer, obj); |
111 | efl_gfx_path_commit(nd->renderer); | ||
122 | ector_renderer_prepare(nd->renderer); | 112 | ector_renderer_prepare(nd->renderer); |
123 | ector_renderer_mask_set(nd->renderer, mask, mask_op); | 113 | ector_renderer_mask_set(nd->renderer, mask, mask_op); |
124 | |||
125 | } | 114 | } |
126 | 115 | ||
127 | static Eo * | 116 | static Eo * |
@@ -140,9 +129,6 @@ _efl_canvas_vg_shape_efl_object_constructor(Eo *obj, Efl_Canvas_Vg_Shape_Data *p | |||
140 | nd->render_pre = _efl_canvas_vg_shape_render_pre; | 129 | nd->render_pre = _efl_canvas_vg_shape_render_pre; |
141 | nd->data = pd; | 130 | nd->data = pd; |
142 | 131 | ||
143 | efl_event_callback_add(obj, EFL_GFX_PATH_EVENT_CHANGED, | ||
144 | _efl_canvas_vg_shape_path_changed, pd); | ||
145 | |||
146 | return obj; | 132 | return obj; |
147 | } | 133 | } |
148 | 134 | ||
@@ -153,9 +139,6 @@ _efl_canvas_vg_shape_efl_object_destructor(Eo *obj, Efl_Canvas_Vg_Shape_Data *pd | |||
153 | if (pd->stroke.fill) efl_unref(pd->stroke.fill); | 139 | if (pd->stroke.fill) efl_unref(pd->stroke.fill); |
154 | if (pd->stroke.marker) efl_unref(pd->stroke.marker); | 140 | if (pd->stroke.marker) efl_unref(pd->stroke.marker); |
155 | 141 | ||
156 | efl_event_callback_del(obj, EFL_GFX_PATH_EVENT_CHANGED, | ||
157 | _efl_canvas_vg_shape_path_changed, pd); | ||
158 | |||
159 | efl_gfx_path_reset(obj); | 142 | efl_gfx_path_reset(obj); |
160 | efl_destructor(efl_super(obj, MY_CLASS)); | 143 | efl_destructor(efl_super(obj, MY_CLASS)); |
161 | } | 144 | } |
@@ -197,6 +180,12 @@ _efl_canvas_vg_shape_efl_gfx_path_interpolate(Eo *obj, | |||
197 | return r; | 180 | return r; |
198 | } | 181 | } |
199 | 182 | ||
183 | EOLIAN static void | ||
184 | _efl_canvas_vg_shape_efl_gfx_path_commit(Eo *obj, | ||
185 | Efl_Canvas_Vg_Shape_Data *pd EINA_UNUSED) | ||
186 | { | ||
187 | efl_canvas_vg_node_change(obj); | ||
188 | } | ||
200 | 189 | ||
201 | EOLIAN static Efl_Canvas_Vg_Node * | 190 | EOLIAN static Efl_Canvas_Vg_Node * |
202 | _efl_canvas_vg_shape_efl_duplicate_duplicate(const Eo *obj, Efl_Canvas_Vg_Shape_Data *pd) | 191 | _efl_canvas_vg_shape_efl_duplicate_duplicate(const Eo *obj, Efl_Canvas_Vg_Shape_Data *pd) |
@@ -241,6 +230,7 @@ EAPI void | |||
241 | evas_vg_shape_stroke_scale_set(Eo *obj, double s) | 230 | evas_vg_shape_stroke_scale_set(Eo *obj, double s) |
242 | { | 231 | { |
243 | efl_gfx_shape_stroke_scale_set(obj, s); | 232 | efl_gfx_shape_stroke_scale_set(obj, s); |
233 | efl_canvas_vg_node_change(obj); | ||
244 | } | 234 | } |
245 | 235 | ||
246 | EAPI void | 236 | EAPI void |
@@ -253,6 +243,7 @@ EAPI void | |||
253 | evas_vg_shape_stroke_color_set(Eo *obj, int r, int g, int b, int a) | 243 | evas_vg_shape_stroke_color_set(Eo *obj, int r, int g, int b, int a) |
254 | { | 244 | { |
255 | efl_gfx_shape_stroke_color_set(obj, r, g, b, a); | 245 | efl_gfx_shape_stroke_color_set(obj, r, g, b, a); |
246 | efl_canvas_vg_node_change(obj); | ||
256 | } | 247 | } |
257 | 248 | ||
258 | EAPI double | 249 | EAPI double |
@@ -265,6 +256,7 @@ EAPI void | |||
265 | evas_vg_shape_stroke_width_set(Eo *obj, double w) | 256 | evas_vg_shape_stroke_width_set(Eo *obj, double w) |
266 | { | 257 | { |
267 | efl_gfx_shape_stroke_width_set(obj, w); | 258 | efl_gfx_shape_stroke_width_set(obj, w); |
259 | efl_canvas_vg_node_change(obj); | ||
268 | } | 260 | } |
269 | 261 | ||
270 | EAPI double | 262 | EAPI double |
@@ -277,6 +269,7 @@ EAPI void | |||
277 | evas_vg_shape_stroke_location_set(Eo *obj, double centered) | 269 | evas_vg_shape_stroke_location_set(Eo *obj, double centered) |
278 | { | 270 | { |
279 | efl_gfx_shape_stroke_location_set(obj, centered); | 271 | efl_gfx_shape_stroke_location_set(obj, centered); |
272 | efl_canvas_vg_node_change(obj); | ||
280 | } | 273 | } |
281 | 274 | ||
282 | EAPI void | 275 | EAPI void |
@@ -289,6 +282,7 @@ EAPI void | |||
289 | evas_vg_shape_stroke_dash_set(Eo *obj, const Efl_Gfx_Dash *dash, unsigned int length) | 282 | evas_vg_shape_stroke_dash_set(Eo *obj, const Efl_Gfx_Dash *dash, unsigned int length) |
290 | { | 283 | { |
291 | efl_gfx_shape_stroke_dash_set(obj, dash, length); | 284 | efl_gfx_shape_stroke_dash_set(obj, dash, length); |
285 | efl_canvas_vg_node_change(obj); | ||
292 | } | 286 | } |
293 | 287 | ||
294 | EAPI Efl_Gfx_Cap | 288 | EAPI Efl_Gfx_Cap |
@@ -301,6 +295,7 @@ EAPI void | |||
301 | evas_vg_shape_stroke_cap_set(Eo *obj, Efl_Gfx_Cap c) | 295 | evas_vg_shape_stroke_cap_set(Eo *obj, Efl_Gfx_Cap c) |
302 | { | 296 | { |
303 | efl_gfx_shape_stroke_cap_set(obj, c); | 297 | efl_gfx_shape_stroke_cap_set(obj, c); |
298 | efl_canvas_vg_node_change(obj); | ||
304 | } | 299 | } |
305 | 300 | ||
306 | EAPI Efl_Gfx_Join | 301 | EAPI Efl_Gfx_Join |
@@ -313,12 +308,14 @@ EAPI void | |||
313 | evas_vg_shape_stroke_join_set(Eo *obj, Efl_Gfx_Join j) | 308 | evas_vg_shape_stroke_join_set(Eo *obj, Efl_Gfx_Join j) |
314 | { | 309 | { |
315 | efl_gfx_shape_stroke_join_set(obj, j); | 310 | efl_gfx_shape_stroke_join_set(obj, j); |
311 | efl_canvas_vg_node_change(obj); | ||
316 | } | 312 | } |
317 | 313 | ||
318 | EAPI void | 314 | EAPI void |
319 | evas_vg_shape_path_set(Eo *obj, const Efl_Gfx_Path_Command *op, const double *points) | 315 | evas_vg_shape_path_set(Eo *obj, const Efl_Gfx_Path_Command *op, const double *points) |
320 | { | 316 | { |
321 | efl_gfx_path_set(obj, op, points); | 317 | efl_gfx_path_set(obj, op, points); |
318 | efl_canvas_vg_node_change(obj); | ||
322 | } | 319 | } |
323 | 320 | ||
324 | EAPI void | 321 | EAPI void |
@@ -349,90 +346,106 @@ EAPI void | |||
349 | evas_vg_shape_dup(Eo *obj, Eo *dup_from) | 346 | evas_vg_shape_dup(Eo *obj, Eo *dup_from) |
350 | { | 347 | { |
351 | efl_gfx_path_copy_from(obj, dup_from); | 348 | efl_gfx_path_copy_from(obj, dup_from); |
349 | efl_canvas_vg_node_change(obj); | ||
352 | } | 350 | } |
353 | 351 | ||
354 | EAPI void | 352 | EAPI void |
355 | evas_vg_shape_reset(Eo *obj) | 353 | evas_vg_shape_reset(Eo *obj) |
356 | { | 354 | { |
357 | efl_gfx_path_reset(obj); | 355 | efl_gfx_path_reset(obj); |
356 | efl_canvas_vg_node_change(obj); | ||
358 | } | 357 | } |
359 | 358 | ||
360 | EAPI void | 359 | EAPI void |
361 | evas_vg_shape_append_move_to(Eo *obj, double x, double y) | 360 | evas_vg_shape_append_move_to(Eo *obj, double x, double y) |
362 | { | 361 | { |
363 | efl_gfx_path_append_move_to(obj, x, y); | 362 | efl_gfx_path_append_move_to(obj, x, y); |
363 | efl_canvas_vg_node_change(obj); | ||
364 | } | 364 | } |
365 | 365 | ||
366 | EAPI void | 366 | EAPI void |
367 | evas_vg_shape_append_line_to(Eo *obj, double x, double y) | 367 | evas_vg_shape_append_line_to(Eo *obj, double x, double y) |
368 | { | 368 | { |
369 | efl_gfx_path_append_line_to(obj, x, y); | 369 | efl_gfx_path_append_line_to(obj, x, y); |
370 | efl_canvas_vg_node_change(obj); | ||
370 | } | 371 | } |
371 | 372 | ||
372 | EAPI void | 373 | EAPI void |
373 | evas_vg_shape_append_quadratic_to(Eo *obj, double x, double y, double ctrl_x, double ctrl_y) | 374 | evas_vg_shape_append_quadratic_to(Eo *obj, double x, double y, double ctrl_x, double ctrl_y) |
374 | { | 375 | { |
375 | efl_gfx_path_append_quadratic_to(obj, x, y, ctrl_x, ctrl_y); | 376 | efl_gfx_path_append_quadratic_to(obj, x, y, ctrl_x, ctrl_y); |
377 | efl_canvas_vg_node_change(obj); | ||
376 | } | 378 | } |
377 | 379 | ||
378 | EAPI void | 380 | EAPI void |
379 | evas_vg_shape_append_squadratic_to(Eo *obj, double x, double y) | 381 | evas_vg_shape_append_squadratic_to(Eo *obj, double x, double y) |
380 | { | 382 | { |
381 | efl_gfx_path_append_squadratic_to(obj, x, y); | 383 | efl_gfx_path_append_squadratic_to(obj, x, y); |
384 | efl_canvas_vg_node_change(obj); | ||
382 | } | 385 | } |
383 | 386 | ||
384 | EAPI void | 387 | EAPI void |
385 | evas_vg_shape_append_cubic_to(Eo *obj, double x, double y, double ctrl_x0, double ctrl_y0, double ctrl_x1, double ctrl_y1) | 388 | evas_vg_shape_append_cubic_to(Eo *obj, double x, double y, double ctrl_x0, double ctrl_y0, double ctrl_x1, double ctrl_y1) |
386 | { | 389 | { |
387 | efl_gfx_path_append_cubic_to(obj, x, y, ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1); | 390 | efl_gfx_path_append_cubic_to(obj, x, y, ctrl_x0, ctrl_y0, ctrl_x1, ctrl_y1); |
391 | efl_canvas_vg_node_change(obj); | ||
388 | } | 392 | } |
389 | 393 | ||
390 | EAPI void | 394 | EAPI void |
391 | evas_vg_shape_append_scubic_to(Eo *obj, double x, double y, double ctrl_x, double ctrl_y) | 395 | evas_vg_shape_append_scubic_to(Eo *obj, double x, double y, double ctrl_x, double ctrl_y) |
392 | { | 396 | { |
393 | efl_gfx_path_append_scubic_to(obj, x, y, ctrl_x, ctrl_y); | 397 | efl_gfx_path_append_scubic_to(obj, x, y, ctrl_x, ctrl_y); |
398 | efl_canvas_vg_node_change(obj); | ||
394 | } | 399 | } |
395 | 400 | ||
396 | EAPI void | 401 | EAPI void |
397 | evas_vg_shape_append_arc_to(Eo *obj, double x, double y, double rx, double ry, double angle, Eina_Bool large_arc, Eina_Bool sweep) | 402 | evas_vg_shape_append_arc_to(Eo *obj, double x, double y, double rx, double ry, double angle, Eina_Bool large_arc, Eina_Bool sweep) |
398 | { | 403 | { |
399 | efl_gfx_path_append_arc_to(obj, x, y, rx, ry, angle, large_arc, sweep); | 404 | efl_gfx_path_append_arc_to(obj, x, y, rx, ry, angle, large_arc, sweep); |
405 | efl_canvas_vg_node_change(obj); | ||
400 | } | 406 | } |
401 | 407 | ||
402 | EAPI void | 408 | EAPI void |
403 | evas_vg_shape_append_arc(Eo *obj, double x, double y, double w, double h, double start_angle, double sweep_length) | 409 | evas_vg_shape_append_arc(Eo *obj, double x, double y, double w, double h, double start_angle, double sweep_length) |
404 | { | 410 | { |
405 | efl_gfx_path_append_arc(obj, x, y, w, h, start_angle, sweep_length); | 411 | efl_gfx_path_append_arc(obj, x, y, w, h, start_angle, sweep_length); |
412 | efl_canvas_vg_node_change(obj); | ||
406 | } | 413 | } |
407 | 414 | ||
408 | EAPI void | 415 | EAPI void |
409 | evas_vg_shape_append_close(Eo *obj) | 416 | evas_vg_shape_append_close(Eo *obj) |
410 | { | 417 | { |
411 | efl_gfx_path_append_close(obj); | 418 | efl_gfx_path_append_close(obj); |
419 | efl_canvas_vg_node_change(obj); | ||
412 | } | 420 | } |
413 | 421 | ||
414 | EAPI void | 422 | EAPI void |
415 | evas_vg_shape_append_circle(Eo *obj, double x, double y, double radius) | 423 | evas_vg_shape_append_circle(Eo *obj, double x, double y, double radius) |
416 | { | 424 | { |
417 | efl_gfx_path_append_circle(obj, x, y, radius); | 425 | efl_gfx_path_append_circle(obj, x, y, radius); |
426 | efl_canvas_vg_node_change(obj); | ||
418 | } | 427 | } |
419 | 428 | ||
420 | EAPI void | 429 | EAPI void |
421 | evas_vg_shape_append_rect(Eo *obj, double x, double y, double w, double h, double rx, double ry) | 430 | evas_vg_shape_append_rect(Eo *obj, double x, double y, double w, double h, double rx, double ry) |
422 | { | 431 | { |
423 | efl_gfx_path_append_rect(obj, x, y, w, h, rx, ry); | 432 | efl_gfx_path_append_rect(obj, x, y, w, h, rx, ry); |
433 | efl_canvas_vg_node_change(obj); | ||
424 | } | 434 | } |
425 | 435 | ||
426 | EAPI void | 436 | EAPI void |
427 | evas_vg_shape_append_svg_path(Eo *obj, const char *svg_path_data) | 437 | evas_vg_shape_append_svg_path(Eo *obj, const char *svg_path_data) |
428 | { | 438 | { |
429 | efl_gfx_path_append_svg_path(obj, svg_path_data); | 439 | efl_gfx_path_append_svg_path(obj, svg_path_data); |
440 | efl_canvas_vg_node_change(obj); | ||
430 | } | 441 | } |
431 | 442 | ||
432 | EAPI Eina_Bool | 443 | EAPI Eina_Bool |
433 | evas_vg_shape_interpolate(Eo *obj, const Eo *from, const Eo *to, double pos_map) | 444 | evas_vg_shape_interpolate(Eo *obj, const Eo *from, const Eo *to, double pos_map) |
434 | { | 445 | { |
435 | return efl_gfx_path_interpolate(obj, from, to, pos_map); | 446 | Eina_Bool ret = efl_gfx_path_interpolate(obj, from, to, pos_map); |
447 | efl_canvas_vg_node_change(obj); | ||
448 | return ret; | ||
436 | } | 449 | } |
437 | 450 | ||
438 | EAPI Eina_Bool | 451 | EAPI Eina_Bool |
diff --git a/src/lib/evas/canvas/efl_canvas_vg_shape.eo b/src/lib/evas/canvas/efl_canvas_vg_shape.eo index c51df0b..2997071 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_shape.eo +++ b/src/lib/evas/canvas/efl_canvas_vg_shape.eo | |||
@@ -36,6 +36,7 @@ class Efl.Canvas.Vg.Shape (Efl.Canvas.Vg.Node, Efl.Gfx.Shape) | |||
36 | } | 36 | } |
37 | implements { | 37 | implements { |
38 | Efl.Gfx.Path.interpolate; | 38 | Efl.Gfx.Path.interpolate; |
39 | Efl.Gfx.Path.commit; | ||
39 | Efl.Duplicate.duplicate; | 40 | Efl.Duplicate.duplicate; |
40 | Efl.Object.constructor; | 41 | Efl.Object.constructor; |
41 | Efl.Object.destructor; | 42 | Efl.Object.destructor; |