summaryrefslogtreecommitdiff
path: root/src/lib/evas
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/evas')
-rw-r--r--src/lib/evas/Evas_Internal.h38
-rw-r--r--src/lib/evas/Evas_Legacy.h120
-rw-r--r--src/lib/evas/Evas_Loader.h23
-rw-r--r--src/lib/evas/canvas/efl_canvas_event_grabber.c7
-rw-r--r--src/lib/evas/canvas/efl_canvas_event_grabber.eo3
-rw-r--r--src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.c12
-rw-r--r--src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.h44
-rw-r--r--src/lib/evas/canvas/efl_canvas_group.eo20
-rw-r--r--src/lib/evas/canvas/efl_canvas_group_eo.legacy.c30
-rw-r--r--src/lib/evas/canvas/efl_canvas_group_eo.legacy.h104
-rw-r--r--src/lib/evas/canvas/efl_canvas_image.c65
-rw-r--r--src/lib/evas/canvas/efl_canvas_image.eo3
-rw-r--r--src/lib/evas/canvas/efl_canvas_image_internal.eo1
-rw-r--r--src/lib/evas/canvas/efl_canvas_object.eo115
-rw-r--r--src/lib/evas/canvas/efl_canvas_object_eo.legacy.c114
-rw-r--r--src/lib/evas/canvas/efl_canvas_object_eo.legacy.h410
-rw-r--r--src/lib/evas/canvas/efl_canvas_proxy.c4
-rw-r--r--src/lib/evas/canvas/efl_canvas_scene3d.c4
-rw-r--r--src/lib/evas/canvas/efl_canvas_text.eo9
-rw-r--r--src/lib/evas/canvas/efl_canvas_text_eo.legacy.c66
-rw-r--r--src/lib/evas/canvas/efl_canvas_text_eo.legacy.h228
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_container.c1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_container.eo1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.c12
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.h40
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_gradient.eo1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_gradient_linear.eo1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_gradient_radial.eo1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_node.c1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_node.eo2
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.c30
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.h83
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_object.c168
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_object.eo9
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.c48
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.h135
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_shape.c1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_shape.eo1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.c36
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.h80
-rw-r--r--src/lib/evas/canvas/efl_input_event.c2
-rw-r--r--src/lib/evas/canvas/evas_box.eo669
-rw-r--r--src/lib/evas/canvas/evas_box_eo.c248
-rw-r--r--src/lib/evas/canvas/evas_box_eo.h818
-rw-r--r--src/lib/evas/canvas/evas_box_eo.hh460
-rw-r--r--src/lib/evas/canvas/evas_box_eo.impl.hh478
-rw-r--r--src/lib/evas/canvas/evas_box_eo.legacy.c162
-rw-r--r--src/lib/evas/canvas/evas_box_eo.legacy.h646
-rw-r--r--src/lib/evas/canvas/evas_callbacks.c7
-rw-r--r--src/lib/evas/canvas/evas_canvas.eo978
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_camera.eo2
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_light.eo2
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_material.eo2
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_mesh.c49
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_mesh.eo5
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_scene.eo2
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_texture.c22
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_texture.eo4
-rw-r--r--src/lib/evas/canvas/evas_canvas_eo.c501
-rw-r--r--src/lib/evas/canvas/evas_canvas_eo.h1068
-rw-r--r--src/lib/evas/canvas/evas_canvas_eo.hh413
-rw-r--r--src/lib/evas/canvas/evas_canvas_eo.impl.hh756
-rw-r--r--src/lib/evas/canvas/evas_canvas_eo.legacy.c384
-rw-r--r--src/lib/evas/canvas/evas_canvas_eo.legacy.h1023
-rw-r--r--src/lib/evas/canvas/evas_clip.c39
-rw-r--r--src/lib/evas/canvas/evas_events.c46
-rw-r--r--src/lib/evas/canvas/evas_grid.eo123
-rw-r--r--src/lib/evas/canvas/evas_grid_eo.c95
-rw-r--r--src/lib/evas/canvas/evas_grid_eo.h185
-rw-r--r--src/lib/evas/canvas/evas_grid_eo.hh366
-rw-r--r--src/lib/evas/canvas/evas_grid_eo.impl.hh164
-rw-r--r--src/lib/evas/canvas/evas_grid_eo.legacy.c60
-rw-r--r--src/lib/evas/canvas/evas_grid_eo.legacy.h178
-rw-r--r--src/lib/evas/canvas/evas_image.eo8
-rw-r--r--src/lib/evas/canvas/evas_image_eo.c35
-rw-r--r--src/lib/evas/canvas/evas_image_eo.h24
-rw-r--r--src/lib/evas/canvas/evas_image_eo.hh463
-rw-r--r--src/lib/evas/canvas/evas_image_eo.impl.hh14
-rw-r--r--src/lib/evas/canvas/evas_image_eo.legacy.h17
-rw-r--r--src/lib/evas/canvas/evas_image_legacy.c99
-rw-r--r--src/lib/evas/canvas/evas_image_private.h11
-rw-r--r--src/lib/evas/canvas/evas_line.eo31
-rw-r--r--src/lib/evas/canvas/evas_line_eo.c47
-rw-r--r--src/lib/evas/canvas/evas_line_eo.h53
-rw-r--r--src/lib/evas/canvas/evas_line_eo.hh337
-rw-r--r--src/lib/evas/canvas/evas_line_eo.impl.hh62
-rw-r--r--src/lib/evas/canvas/evas_line_eo.legacy.c12
-rw-r--r--src/lib/evas/canvas/evas_line_eo.legacy.h46
-rw-r--r--src/lib/evas/canvas/evas_main.c105
-rw-r--r--src/lib/evas/canvas/evas_object_box.c2
-rw-r--r--src/lib/evas/canvas/evas_object_grid.c2
-rw-r--r--src/lib/evas/canvas/evas_object_image.c85
-rw-r--r--src/lib/evas/canvas/evas_object_inform.c14
-rw-r--r--src/lib/evas/canvas/evas_object_intercept.c4
-rw-r--r--src/lib/evas/canvas/evas_object_line.c2
-rw-r--r--src/lib/evas/canvas/evas_object_main.c349
-rw-r--r--src/lib/evas/canvas/evas_object_smart.c22
-rw-r--r--src/lib/evas/canvas/evas_object_table.c2
-rw-r--r--src/lib/evas/canvas/evas_object_text.c2
-rw-r--r--src/lib/evas/canvas/evas_object_textblock.c21
-rw-r--r--src/lib/evas/canvas/evas_object_textgrid.c2
-rw-r--r--src/lib/evas/canvas/evas_table.eo211
-rw-r--r--src/lib/evas/canvas/evas_table_eo.c142
-rw-r--r--src/lib/evas/canvas/evas_table_eo.h338
-rw-r--r--src/lib/evas/canvas/evas_table_eo.hh380
-rw-r--r--src/lib/evas/canvas/evas_table_eo.impl.hh260
-rw-r--r--src/lib/evas/canvas/evas_table_eo.legacy.c96
-rw-r--r--src/lib/evas/canvas/evas_table_eo.legacy.h321
-rw-r--r--src/lib/evas/canvas/evas_text.eo287
-rw-r--r--src/lib/evas/canvas/evas_text_eo.c296
-rw-r--r--src/lib/evas/canvas/evas_text_eo.h462
-rw-r--r--src/lib/evas/canvas/evas_text_eo.hh437
-rw-r--r--src/lib/evas/canvas/evas_text_eo.impl.hh466
-rw-r--r--src/lib/evas/canvas/evas_text_eo.legacy.c156
-rw-r--r--src/lib/evas/canvas/evas_text_eo.legacy.h455
-rw-r--r--src/lib/evas/canvas/evas_textblock_legacy.h2
-rw-r--r--src/lib/evas/canvas/evas_textgrid.eo208
-rw-r--r--src/lib/evas/canvas/evas_textgrid_eo.c119
-rw-r--r--src/lib/evas/canvas/evas_textgrid_eo.h259
-rw-r--r--src/lib/evas/canvas/evas_textgrid_eo.hh366
-rw-r--r--src/lib/evas/canvas/evas_textgrid_eo.impl.hh182
-rw-r--r--src/lib/evas/canvas/evas_textgrid_eo.legacy.c60
-rw-r--r--src/lib/evas/canvas/evas_textgrid_eo.legacy.h252
-rw-r--r--src/lib/evas/canvas/evas_vg_private.h4
-rw-r--r--src/lib/evas/canvas/meson.build48
-rw-r--r--src/lib/evas/common/evas_map_image_aa.c25
-rw-r--r--src/lib/evas/include/evas_common_private.h2
-rw-r--r--src/lib/evas/include/evas_private.h34
-rw-r--r--src/lib/evas/vg/evas_vg_cache.c33
129 files changed, 16339 insertions, 3461 deletions
diff --git a/src/lib/evas/Evas_Internal.h b/src/lib/evas/Evas_Internal.h
index da1330f..48b7928 100644
--- a/src/lib/evas/Evas_Internal.h
+++ b/src/lib/evas/Evas_Internal.h
@@ -79,6 +79,44 @@ EOAPI Eo *efl_input_focus_instance_get(Efl_Object *owner, void **priv);
79EOAPI Eo *efl_input_hold_instance_get(Efl_Object *owner, void **priv); 79EOAPI Eo *efl_input_hold_instance_get(Efl_Object *owner, void **priv);
80EOAPI Eo *efl_input_key_instance_get(Efl_Object *owner, void **priv); 80EOAPI Eo *efl_input_key_instance_get(Efl_Object *owner, void **priv);
81EOAPI Eo *efl_input_pointer_instance_get(Efl_Object *owner, void **priv); 81EOAPI Eo *efl_input_pointer_instance_get(Efl_Object *owner, void **priv);
82/**
83 * @brief If @c true the object belongs to the window border decorations.
84 *
85 * This will be @c false by default, and should be @c false for all objects
86 * created by the application, unless swallowed in some very specific parts of
87 * the window.
88 *
89 * It is very unlikely that an application needs to call this manually, as the
90 * window will handle this feature automatically.
91 *
92 * @param[in] obj The object.
93 * @param[in] is_frame @c true if the object is a frame, @c false otherwise
94 *
95 * @since 1.2
96 *
97 * @ingroup Efl_Canvas_Object
98 */
99EOAPI void efl_canvas_object_is_frame_object_set(Eo *obj, Eina_Bool is_frame);
100
101/**
102 * @brief If @c true the object belongs to the window border decorations.
103 *
104 * This will be @c false by default, and should be @c false for all objects
105 * created by the application, unless swallowed in some very specific parts of
106 * the window.
107 *
108 * It is very unlikely that an application needs to call this manually, as the
109 * window will handle this feature automatically.
110 *
111 * @param[in] obj The object.
112 *
113 * @return @c true if the object is a frame, @c false otherwise
114 *
115 * @since 1.2
116 *
117 * @ingroup Efl_Canvas_Object
118 */
119EOAPI Eina_Bool efl_canvas_object_is_frame_object_get(const Eo *obj);
82 120
83EWAPI extern const Efl_Event_Description _EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE; 121EWAPI extern const Efl_Event_Description _EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE;
84#define EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE (&(_EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE)) 122#define EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE (&(_EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE))
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 7d6e3f0..d176801 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -102,7 +102,7 @@ EAPI Evas_Engine_Info *evas_engine_info_get(const Evas *obj);
102EAPI Eina_Bool evas_image_max_size_get(Eo *eo_e, int *w, int *h); 102EAPI Eina_Bool evas_image_max_size_get(Eo *eo_e, int *w, int *h);
103 103
104 104
105#include "canvas/evas_canvas.eo.legacy.h" 105#include "canvas/evas_canvas_eo.legacy.h"
106 106
107/** 107/**
108 * @} 108 * @}
@@ -2130,6 +2130,19 @@ EAPI void evas_object_static_clip_set(Evas_Object *obj, Eina_Bool is_static_clip
2130 */ 2130 */
2131EAPI const Eina_List *evas_object_clipees_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT; 2131EAPI const Eina_List *evas_object_clipees_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT;
2132 2132
2133/**
2134 * @brief Test if any object is clipped by @c obj.
2135 *
2136 * @param[in] obj The object.
2137 *
2138 * @return @c true if any object is clipped by @c obj, @c false otherwise
2139 *
2140 * @since 1.8
2141 *
2142 * @ingroup Evas_Object
2143 */
2144EAPI Eina_Bool evas_object_clipees_has(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT;
2145
2133/** How the object should be rendered to output. 2146/** How the object should be rendered to output.
2134 * 2147 *
2135 * @ingroup Evas 2148 * @ingroup Evas
@@ -2282,7 +2295,7 @@ EAPI Eina_Bool evas_object_pointer_inside_get(const Evas_Object *obj) EINA_WARN_
2282 2295
2283EAPI Eina_Bool evas_object_pointer_coords_inside_get(const Evas_Object *eo_obj, int x, int y) EINA_WARN_UNUSED_RESULT; 2296EAPI Eina_Bool evas_object_pointer_coords_inside_get(const Evas_Object *eo_obj, int x, int y) EINA_WARN_UNUSED_RESULT;
2284 2297
2285#include "canvas/efl_canvas_object.eo.legacy.h" 2298#include "canvas/efl_canvas_object_eo.legacy.h"
2286 2299
2287/** 2300/**
2288 * @brief Get the Evas to which this object belongs to 2301 * @brief Get the Evas to which this object belongs to
@@ -3701,6 +3714,7 @@ EAPI int evas_object_vg_animated_frame_get(const Evas_Object *obj) EINA_ARG_NONN
3701#include "canvas/efl_canvas_vg_node.eo.legacy.h" 3714#include "canvas/efl_canvas_vg_node.eo.legacy.h"
3702#include "canvas/efl_canvas_vg_object.eo.legacy.h" 3715#include "canvas/efl_canvas_vg_object.eo.legacy.h"
3703#include "canvas/efl_canvas_vg_container.eo.legacy.h" 3716#include "canvas/efl_canvas_vg_container.eo.legacy.h"
3717
3704/** 3718/**
3705 * Creates a new vector shape object. 3719 * Creates a new vector shape object.
3706 * 3720 *
@@ -3893,7 +3907,7 @@ EAPI void evas_vg_node_raise(Eo *obj);
3893 */ 3907 */
3894EAPI void evas_vg_node_lower(Eo *obj); 3908EAPI void evas_vg_node_lower(Eo *obj);
3895 3909
3896#include "canvas/efl_canvas_vg_node.eo.legacy.h" 3910#include "canvas/efl_canvas_vg_node_eo.legacy.h"
3897 3911
3898/** 3912/**
3899 * 3913 *
@@ -4336,7 +4350,7 @@ EAPI void evas_vg_shape_stroke_fill_set(Eo *obj, Efl_VG *f);
4336 */ 4350 */
4337EAPI Efl_VG* evas_vg_shape_stroke_fill_get(const Eo *obj); 4351EAPI Efl_VG* evas_vg_shape_stroke_fill_get(const Eo *obj);
4338 4352
4339#include "canvas/efl_canvas_vg_shape.eo.legacy.h" 4353#include "canvas/efl_canvas_vg_shape_eo.legacy.h"
4340 4354
4341/** 4355/**
4342 * 4356 *
@@ -6021,7 +6035,7 @@ EAPI void evas_object_image_reload(Evas_Object *obj) EINA_DEPRECATED;
6021 */ 6035 */
6022EAPI void evas_object_image_alpha_mask_set(Evas_Object *obj, Eina_Bool ismask) EINA_ARG_NONNULL(1) EINA_DEPRECATED; 6036EAPI void evas_object_image_alpha_mask_set(Evas_Object *obj, Eina_Bool ismask) EINA_ARG_NONNULL(1) EINA_DEPRECATED;
6023 6037
6024#include "canvas/evas_image.eo.legacy.h" 6038#include "canvas/evas_image_eo.legacy.h"
6025 6039
6026/** 6040/**
6027 * @} 6041 * @}
@@ -6105,7 +6119,7 @@ typedef enum
6105 EVAS_TEXT_STYLE_SHADOW_DIRECTION_RIGHT = 112 /* 7 >> 4 */ /**< shadow growing to the right */ 6119 EVAS_TEXT_STYLE_SHADOW_DIRECTION_RIGHT = 112 /* 7 >> 4 */ /**< shadow growing to the right */
6106} Evas_Text_Style_Type; 6120} Evas_Text_Style_Type;
6107 6121
6108#include "canvas/evas_text.eo.legacy.h" 6122#include "canvas/evas_text_eo.legacy.h"
6109 6123
6110/** 6124/**
6111 * 6125 *
@@ -6191,7 +6205,7 @@ EAPI void evas_object_text_font_get(const Eo *obj, const char **font, Evas_Font_
6191 */ 6205 */
6192EAPI Evas_Object *evas_object_textgrid_add(Evas *e); 6206EAPI Evas_Object *evas_object_textgrid_add(Evas *e);
6193 6207
6194#include "canvas/evas_textgrid.eo.legacy.h" 6208#include "canvas/evas_textgrid_eo.legacy.h"
6195 6209
6196/** 6210/**
6197 * 6211 *
@@ -6295,7 +6309,7 @@ EAPI void evas_object_textgrid_font_get(const Eo *obj, const char **font_name, E
6295 */ 6309 */
6296EAPI Evas_Object *evas_object_line_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 6310EAPI Evas_Object *evas_object_line_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
6297 6311
6298#include "canvas/evas_line.eo.legacy.h" 6312#include "canvas/evas_line_eo.legacy.h"
6299 6313
6300/** 6314/**
6301 * @} 6315 * @}
@@ -6737,7 +6751,7 @@ EAPI Evas_Object *evas_object_smart_clipped_clipper_get(const Evas_Object *obj)
6737 * This function will return @c null when a non-smart object is passed. 6751 * This function will return @c null when a non-smart object is passed.
6738 * 6752 *
6739 * See also @ref Efl.Canvas.Group.group_member_add, 6753 * See also @ref Efl.Canvas.Group.group_member_add,
6740 * @ref Efl.Canvas.Group.group_member_del and @ref evas_object_smart_iterator_new. 6754 * @ref Efl.Canvas.Group.group_member_remove and @ref evas_object_smart_iterator_new.
6741 * 6755 *
6742 * @return Returns the list of the member objects of @c obj. 6756 * @return Returns the list of the member objects of @c obj.
6743 * 6757 *
@@ -6794,7 +6808,7 @@ EAPI Eina_Bool evas_object_smart_need_recalculate_get(const Evas_Object *obj);
6794 * object. 6808 * object.
6795 * 6809 *
6796 * See also @ref Efl.Canvas.Group.group_member_add and 6810 * See also @ref Efl.Canvas.Group.group_member_add and
6797 * @ref Efl.Canvas.Group.group_member_del 6811 * @ref Efl.Canvas.Group.group_member_remove
6798 * 6812 *
6799 * @return Returns the iterator of the member objects of @c obj. 6813 * @return Returns the iterator of the member objects of @c obj.
6800 * 6814 *
@@ -6851,7 +6865,7 @@ EAPI void evas_object_smart_changed(Evas_Object *obj);
6851 */ 6865 */
6852EAPI void evas_object_smart_move_children_relative(Evas_Object *obj, Evas_Coord dx, Evas_Coord dy); 6866EAPI void evas_object_smart_move_children_relative(Evas_Object *obj, Evas_Coord dx, Evas_Coord dy);
6853 6867
6854#include "canvas/efl_canvas_group.eo.legacy.h" 6868#include "canvas/efl_canvas_group_eo.legacy.h"
6855 6869
6856/** 6870/**
6857 * @} 6871 * @}
@@ -6987,7 +7001,7 @@ EAPI Eina_Bool evas_object_box_option_property_get(const Evas_O
6987 */ 7001 */
6988EAPI Eina_List *evas_object_box_children_get(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 7002EAPI Eina_List *evas_object_box_children_get(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
6989 7003
6990#include "canvas/evas_box.eo.legacy.h" 7004#include "canvas/evas_box_eo.legacy.h"
6991 7005
6992/** 7006/**
6993 * @} 7007 * @}
@@ -7034,7 +7048,7 @@ EAPI void evas_object_table_mirrored_set(Eo *obj, Eina_Bool mirrored);
7034 */ 7048 */
7035EAPI Eina_Bool evas_object_table_mirrored_get(const Eo *obj); 7049EAPI Eina_Bool evas_object_table_mirrored_get(const Eo *obj);
7036 7050
7037#include "canvas/evas_table.eo.legacy.h" 7051#include "canvas/evas_table_eo.legacy.h"
7038 7052
7039/** 7053/**
7040 * @} 7054 * @}
@@ -7084,7 +7098,7 @@ EAPI void evas_object_grid_mirrored_set(Eo *obj, Eina_Bool mirrored);
7084 */ 7098 */
7085EAPI Eina_Bool evas_object_grid_mirrored_get(const Eo *obj); 7099EAPI Eina_Bool evas_object_grid_mirrored_get(const Eo *obj);
7086 7100
7087#include "canvas/evas_grid.eo.legacy.h" 7101#include "canvas/evas_grid_eo.legacy.h"
7088 7102
7089/** 7103/**
7090 * @} 7104 * @}
@@ -8177,7 +8191,83 @@ EAPI void evas_object_text_filter_source_set(Evas_Object *obj, const char *name,
8177 * @since 1.20 8191 * @since 1.20
8178 */ 8192 */
8179EAPI Evas_Object *evas_object_event_grabber_add(Evas *e); 8193EAPI Evas_Object *evas_object_event_grabber_add(Evas *e);
8180#include "canvas/efl_canvas_event_grabber.eo.legacy.h" 8194
8195/**
8196 * @brief If @c true the object belongs to the window border decorations.
8197 *
8198 * This will be @c false by default, and should be @c false for all objects
8199 * created by the application, unless swallowed in some very specific parts of
8200 * the window.
8201 *
8202 * It is very unlikely that an application needs to call this manually, as the
8203 * window will handle this feature automatically.
8204 *
8205 * @param[in] obj The object.
8206 * @param[in] is_frame @c true if the object is a frame, @c false otherwise
8207 *
8208 * @since 1.2
8209 *
8210 * @ingroup Evas_Object_Group
8211 */
8212EAPI void evas_object_is_frame_object_set(Efl_Canvas_Object *obj, Eina_Bool is_frame);
8213
8214/**
8215 * @brief If @c true the object belongs to the window border decorations.
8216 *
8217 * This will be @c false by default, and should be @c false for all objects
8218 * created by the application, unless swallowed in some very specific parts of
8219 * the window.
8220 *
8221 * It is very unlikely that an application needs to call this manually, as the
8222 * window will handle this feature automatically.
8223 *
8224 * @param[in] obj The object.
8225 *
8226 * @return @c true if the object is a frame, @c false otherwise
8227 *
8228 * @since 1.2
8229 *
8230 * @ingroup Evas_Object_Group
8231 */
8232EAPI Eina_Bool evas_object_is_frame_object_get(const Efl_Canvas_Object *obj);
8233
8234/**
8235 * @brief Set whether an Evas object is to freeze (discard) events.
8236 *
8237 * If @c freeze is @c true, it will force events on @c obj to be discarded.
8238 * Unlike @ref evas_object_pass_events_set, events will not be passed to next
8239 * lower object. This API can be used for blocking events while @c obj is in
8240 * transition.
8241 *
8242 * If @c freeze is @c false, events will be processed on that object as normal.
8243 *
8244 * @warning If you block only key/mouse up events with this API, you can't be
8245 * sure of the state of any objects that have only key/mouse down events.
8246 *
8247 * @param[in] obj The object.
8248 * @param[in] freeze Pass when @c obj is to freeze events ($true) or not
8249 * ($false).
8250 *
8251 * @since 1.1
8252 *
8253 * @ingroup Evas_Object_Group
8254 */
8255EAPI void evas_object_freeze_events_set(Efl_Canvas_Object *obj, Eina_Bool freeze);
8256
8257/**
8258 * @brief Determine whether an object is set to freeze (discard) events.
8259 *
8260 * @param[in] obj The object.
8261 *
8262 * @return Pass when @c obj is to freeze events ($true) or not ($false).
8263 *
8264 * @since 1.1
8265 *
8266 * @ingroup Evas_Object_Group
8267 */
8268EAPI Eina_Bool evas_object_freeze_events_get(const Efl_Canvas_Object *obj);
8269
8270#include "canvas/efl_canvas_event_grabber_eo.legacy.h"
8181 8271
8182#include "canvas/efl_canvas_animation_alpha.eo.legacy.h" 8272#include "canvas/efl_canvas_animation_alpha.eo.legacy.h"
8183#include "canvas/efl_canvas_animation.eo.legacy.h" 8273#include "canvas/efl_canvas_animation.eo.legacy.h"
diff --git a/src/lib/evas/Evas_Loader.h b/src/lib/evas/Evas_Loader.h
index 5dbbab9..2e61f1b 100644
--- a/src/lib/evas/Evas_Loader.h
+++ b/src/lib/evas/Evas_Loader.h
@@ -134,16 +134,17 @@ typedef Emile_Image_Property Evas_Image_Property;
134 134
135typedef struct _Evas_Image_Load_Func Evas_Image_Load_Func; 135typedef struct _Evas_Image_Load_Func Evas_Image_Load_Func;
136 136
137typedef Efl_Gfx_Image_Load_Error Evas_Load_Error; 137typedef enum
138 138{
139#define EVAS_LOAD_ERROR_NONE EFL_GFX_IMAGE_LOAD_ERROR_NONE 139 EVAS_LOAD_ERROR_NONE = 0,
140#define EVAS_LOAD_ERROR_GENERIC EFL_GFX_IMAGE_LOAD_ERROR_GENERIC 140 EVAS_LOAD_ERROR_GENERIC,
141#define EVAS_LOAD_ERROR_DOES_NOT_EXIST EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST 141 EVAS_LOAD_ERROR_DOES_NOT_EXIST,
142#define EVAS_LOAD_ERROR_PERMISSION_DENIED EFL_GFX_IMAGE_LOAD_ERROR_PERMISSION_DENIED 142 EVAS_LOAD_ERROR_PERMISSION_DENIED,
143#define EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED EFL_GFX_IMAGE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED 143 EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED,
144#define EVAS_LOAD_ERROR_CORRUPT_FILE EFL_GFX_IMAGE_LOAD_ERROR_CORRUPT_FILE 144 EVAS_LOAD_ERROR_CORRUPT_FILE,
145#define EVAS_LOAD_ERROR_UNKNOWN_FORMAT EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_FORMAT 145 EVAS_LOAD_ERROR_UNKNOWN_FORMAT,
146#define EVAS_LOAD_ERROR_CANCELLED EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED 146 EVAS_LOAD_ERROR_CANCELLED,
147} Evas_Load_Error;
147 148
148typedef Emile_Image_Animated_Loop_Hint Evas_Image_Animated_Loop_Hint; 149typedef Emile_Image_Animated_Loop_Hint Evas_Image_Animated_Loop_Hint;
149 150
@@ -219,7 +220,7 @@ EAPI Eina_Bool evas_module_task_cancelled (void); /**< @since 1.19 */
219 Count = 0; \ 220 Count = 0; \
220 if (evas_module_task_cancelled()) \ 221 if (evas_module_task_cancelled()) \
221 { \ 222 { \
222 *Error = EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED; \ 223 *Error = EVAS_LOAD_ERROR_CANCELLED; \
223 goto Error_Handler; \ 224 goto Error_Handler; \
224 } \ 225 } \
225 } \ 226 } \
diff --git a/src/lib/evas/canvas/efl_canvas_event_grabber.c b/src/lib/evas/canvas/efl_canvas_event_grabber.c
index c0563b0..cea6d86 100644
--- a/src/lib/evas/canvas/efl_canvas_event_grabber.c
+++ b/src/lib/evas/canvas/efl_canvas_event_grabber.c
@@ -193,7 +193,7 @@ _efl_canvas_object_event_grabber_child_invalidate(void *data, const Efl_Event *e
193{ 193{
194 Efl_Object_Event_Grabber_Data *pd = data; 194 Efl_Object_Event_Grabber_Data *pd = data;
195 195
196 efl_canvas_group_member_del(efl_parent_get(pd->rect), event->object); 196 efl_canvas_group_member_remove(efl_parent_get(pd->rect), event->object);
197} 197}
198 198
199EOLIAN static void 199EOLIAN static void
@@ -250,7 +250,7 @@ _efl_canvas_event_grabber_efl_canvas_group_group_member_add(Eo *eo_obj, Efl_Obje
250} 250}
251 251
252EOLIAN static void 252EOLIAN static void
253_efl_canvas_event_grabber_efl_canvas_group_group_member_del(Eo *eo_obj EINA_UNUSED, Efl_Object_Event_Grabber_Data *pd, Eo *member) 253_efl_canvas_event_grabber_efl_canvas_group_group_member_remove(Eo *eo_obj EINA_UNUSED, Efl_Object_Event_Grabber_Data *pd, Eo *member)
254{ 254{
255 Evas_Object_Protected_Data *obj = efl_data_scope_get(member, EFL_CANVAS_OBJECT_CLASS); 255 Evas_Object_Protected_Data *obj = efl_data_scope_get(member, EFL_CANVAS_OBJECT_CLASS);
256 256
@@ -366,7 +366,7 @@ _efl_canvas_event_grabber_efl_object_destructor(Eo *eo_obj, Efl_Object_Event_Gra
366 Eina_List *l, *ln; 366 Eina_List *l, *ln;
367 367
368 EINA_LIST_FOREACH_SAFE(pd->contained, l, ln, obj) 368 EINA_LIST_FOREACH_SAFE(pd->contained, l, ln, obj)
369 efl_canvas_group_member_del(eo_obj, obj->object); 369 efl_canvas_group_member_remove(eo_obj, obj->object);
370 efl_canvas_group_del(eo_obj); 370 efl_canvas_group_del(eo_obj);
371 efl_destructor(efl_super(eo_obj, MY_CLASS)); 371 efl_destructor(efl_super(eo_obj, MY_CLASS));
372} 372}
@@ -409,3 +409,4 @@ evas_object_event_grabber_add(Evas *eo_e)
409} 409}
410 410
411#include "efl_canvas_event_grabber.eo.c" 411#include "efl_canvas_event_grabber.eo.c"
412#include "efl_canvas_event_grabber_eo.legacy.c"
diff --git a/src/lib/evas/canvas/efl_canvas_event_grabber.eo b/src/lib/evas/canvas/efl_canvas_event_grabber.eo
index 4d55be3..ee9657a 100644
--- a/src/lib/evas/canvas/efl_canvas_event_grabber.eo
+++ b/src/lib/evas/canvas/efl_canvas_event_grabber.eo
@@ -19,7 +19,6 @@ class @beta Efl.Canvas.Event_Grabber extends Efl.Canvas.Group
19 @since 1.20 19 @since 1.20
20 ]] 20 ]]
21 data: Efl_Object_Event_Grabber_Data; 21 data: Efl_Object_Event_Grabber_Data;
22 legacy_prefix: evas_object_event_grabber;
23 methods { 22 methods {
24 @property freeze_when_visible { 23 @property freeze_when_visible {
25 [[Stops the grabber from updating its internal stacking order while visible]] 24 [[Stops the grabber from updating its internal stacking order while visible]]
@@ -35,7 +34,7 @@ class @beta Efl.Canvas.Event_Grabber extends Efl.Canvas.Group
35 Efl.Object.constructor; 34 Efl.Object.constructor;
36 Efl.Object.destructor; 35 Efl.Object.destructor;
37 Efl.Canvas.Group.group_member_add; 36 Efl.Canvas.Group.group_member_add;
38 Efl.Canvas.Group.group_member_del; 37 Efl.Canvas.Group.group_member_remove;
39 Efl.Canvas.Group.group_member_is; 38 Efl.Canvas.Group.group_member_is;
40 Efl.Canvas.Group.group_members_iterate; 39 Efl.Canvas.Group.group_members_iterate;
41 Efl.Canvas.Group.group_calculate; 40 Efl.Canvas.Group.group_calculate;
diff --git a/src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.c b/src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.c
new file mode 100644
index 0000000..ff954eb
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.c
@@ -0,0 +1,12 @@
1
2EAPI void
3evas_object_event_grabber_freeze_when_visible_set(Efl_Canvas_Event_Grabber *obj, Eina_Bool set)
4{
5 efl_canvas_event_grabber_freeze_when_visible_set(obj, set);
6}
7
8EAPI Eina_Bool
9evas_object_event_grabber_freeze_when_visible_get(const Efl_Canvas_Event_Grabber *obj)
10{
11 return efl_canvas_event_grabber_freeze_when_visible_get(obj);
12}
diff --git a/src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.h b/src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.h
new file mode 100644
index 0000000..3f1b146
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_event_grabber_eo.legacy.h
@@ -0,0 +1,44 @@
1#ifndef _EFL_CANVAS_EVENT_GRABBER_EO_LEGACY_H_
2#define _EFL_CANVAS_EVENT_GRABBER_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_EVENT_GRABBER_EO_CLASS_TYPE
5#define _EFL_CANVAS_EVENT_GRABBER_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Event_Grabber;
8
9#endif
10
11#ifndef _EFL_CANVAS_EVENT_GRABBER_EO_TYPES
12#define _EFL_CANVAS_EVENT_GRABBER_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Stops the grabber from updating its internal stacking order while
19 * visible
20 *
21 * @param[in] obj The object.
22 * @param[in] set If @c true, stop updating
23 *
24 * @since 1.20
25 *
26 * @ingroup Evas_Object_Event_Grabber_Group
27 */
28EAPI void evas_object_event_grabber_freeze_when_visible_set(Efl_Canvas_Event_Grabber *obj, Eina_Bool set);
29
30/**
31 * @brief Stops the grabber from updating its internal stacking order while
32 * visible
33 *
34 * @param[in] obj The object.
35 *
36 * @return If @c true, stop updating
37 *
38 * @since 1.20
39 *
40 * @ingroup Evas_Object_Event_Grabber_Group
41 */
42EAPI Eina_Bool evas_object_event_grabber_freeze_when_visible_get(const Efl_Canvas_Event_Grabber *obj);
43
44#endif
diff --git a/src/lib/evas/canvas/efl_canvas_group.eo b/src/lib/evas/canvas/efl_canvas_group.eo
index f21ffda..e7d12ff 100644
--- a/src/lib/evas/canvas/efl_canvas_group.eo
+++ b/src/lib/evas/canvas/efl_canvas_group.eo
@@ -9,7 +9,6 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
9 However it's still a group of low-level canvas objects (clipper, raw objects, 9 However it's still a group of low-level canvas objects (clipper, raw objects,
10 etc.). 10 etc.).
11 ]] 11 ]]
12 legacy_prefix: evas_object_smart;
13 data: Evas_Smart_Data; 12 data: Evas_Smart_Data;
14 methods { 13 methods {
15 @property group_need_recalculate { 14 @property group_need_recalculate {
@@ -27,10 +26,8 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
27 See also @.group_calculate. 26 See also @.group_calculate.
28 ]] 27 ]]
29 set { 28 set {
30 legacy: evas_object_smart_need_recalculate_set;
31 } 29 }
32 get { 30 get {
33 legacy: evas_object_smart_need_recalculate_get;
34 } 31 }
35 values { 32 values {
36 value: bool; [[$true if the group layout needs to be recalculated, $false otherwise]] 33 value: bool; [[$true if the group layout needs to be recalculated, $false otherwise]]
@@ -43,14 +40,12 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
43 recalculation. As an effect, on the next rendering cycle its 40 recalculation. As an effect, on the next rendering cycle its
44 @.group_calculate method will be called. 41 @.group_calculate method will be called.
45 ]] 42 ]]
46 legacy: evas_object_smart_changed;
47 } 43 }
48 group_calculate { 44 group_calculate {
49 [[Triggers an immediate recalculation of this object's geometry. 45 [[Triggers an immediate recalculation of this object's geometry.
50 46
51 This will also reset the flag @.group_need_recalculate. 47 This will also reset the flag @.group_need_recalculate.
52 ]] 48 ]]
53 legacy: evas_object_smart_calculate;
54 } 49 }
55 group_members_iterate @const { 50 group_members_iterate @const {
56 [[Returns an iterator over the children of this object, which are 51 [[Returns an iterator over the children of this object, which are
@@ -62,7 +57,6 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
62 ]] 57 ]]
63 return: iterator<Efl.Canvas.Object> @owned; 58 return: iterator<Efl.Canvas.Object> @owned;
64 [[Iterator to object children]] 59 [[Iterator to object children]]
65 legacy: evas_object_smart_iterator_new;
66 } 60 }
67 group_member_add { 61 group_member_add {
68 [[Set a canvas object as a member of a given group (or smart object). 62 [[Set a canvas object as a member of a given group (or smart object).
@@ -77,15 +71,14 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
77 to ensure the proper stacking of special objects, such as clippers, 71 to ensure the proper stacking of special objects, such as clippers,
78 event rectangles, etc... 72 event rectangles, etc...
79 73
80 See also @.group_member_del. 74 See also @.group_member_remove.
81 See also @.group_member_is. 75 See also @.group_member_is.
82 ]] 76 ]]
83 params { 77 params {
84 @in sub_obj: Efl.Canvas.Object @nonull; [[The member object.]] 78 @in sub_obj: Efl.Canvas.Object @nonull; [[The member object.]]
85 } 79 }
86 legacy: null;
87 } 80 }
88 group_member_del { 81 group_member_remove {
89 [[Removes a member object from a given smart object. 82 [[Removes a member object from a given smart object.
90 83
91 This removes a member object from a smart object, if it was added 84 This removes a member object from a smart object, if it was added
@@ -98,7 +91,6 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
98 params { 91 params {
99 @in sub_obj: Efl.Canvas.Object; [[The member object to remove.]] 92 @in sub_obj: Efl.Canvas.Object; [[The member object to remove.]]
100 } 93 }
101 legacy: null;
102 } 94 }
103 group_member_is @const { 95 group_member_is @const {
104 [[Finds out if a given object is a member of this group.]] 96 [[Finds out if a given object is a member of this group.]]
@@ -106,7 +98,6 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
106 @in sub_obj: const(Efl.Canvas.Object); [[A potential sub object.]] 98 @in sub_obj: const(Efl.Canvas.Object); [[A potential sub object.]]
107 } 99 }
108 return: bool; [[$true if $sub_obj is a member of this group.]] 100 return: bool; [[$true if $sub_obj is a member of this group.]]
109 legacy: null;
110 } 101 }
111 @property group_clipper @protected { 102 @property group_clipper @protected {
112 [[The internal clipper object used by this group. 103 [[The internal clipper object used by this group.
@@ -119,10 +110,13 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
119 } 110 }
120 get { 111 get {
121 [[Get the internal clipper.]] 112 [[Get the internal clipper.]]
122 legacy: null;
123 } 113 }
124 } 114 }
125 } 115 }
116 events {
117 member,added: Efl.Gfx.Entity; [[Called when a member is added to the group.]]
118 member,removed: Efl.Gfx.Entity; [[Called when a member is removed from the group.]]
119 }
126 implements { 120 implements {
127 class.constructor; 121 class.constructor;
128 class.destructor; 122 class.destructor;
@@ -132,7 +126,7 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
132 Efl.Gfx.Color.color { set; } 126 Efl.Gfx.Color.color { set; }
133 Efl.Gfx.Entity.visible { set; } 127 Efl.Gfx.Entity.visible { set; }
134 Efl.Gfx.Entity.position { set; } 128 Efl.Gfx.Entity.position { set; }
135 Efl.Canvas.Object.clip { set; } 129 Efl.Canvas.Object.clipper { set; }
136 Efl.Canvas.Object.no_render { set; } 130 Efl.Canvas.Object.no_render { set; }
137 Efl.Canvas.Object.paragraph_direction { get; set; } 131 Efl.Canvas.Object.paragraph_direction { get; set; }
138 } 132 }
diff --git a/src/lib/evas/canvas/efl_canvas_group_eo.legacy.c b/src/lib/evas/canvas/efl_canvas_group_eo.legacy.c
new file mode 100644
index 0000000..1144c0a
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_group_eo.legacy.c
@@ -0,0 +1,30 @@
1
2EAPI void
3evas_object_smart_need_recalculate_set(Efl_Canvas_Group *obj, Eina_Bool value)
4{
5 efl_canvas_group_need_recalculate_set(obj, value);
6}
7
8EAPI Eina_Bool
9evas_object_smart_need_recalculate_get(const Efl_Canvas_Group *obj)
10{
11 return efl_canvas_group_need_recalculate_get(obj);
12}
13
14EAPI void
15evas_object_smart_changed(Efl_Canvas_Group *obj)
16{
17 efl_canvas_group_change(obj);
18}
19
20EAPI void
21evas_object_smart_calculate(Efl_Canvas_Group *obj)
22{
23 efl_canvas_group_calculate(obj);
24}
25
26EAPI Eina_Iterator *
27evas_object_smart_iterator_new(const Efl_Canvas_Group *obj)
28{
29 return efl_canvas_group_members_iterate(obj);
30}
diff --git a/src/lib/evas/canvas/efl_canvas_group_eo.legacy.h b/src/lib/evas/canvas/efl_canvas_group_eo.legacy.h
new file mode 100644
index 0000000..f8f45ed
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_group_eo.legacy.h
@@ -0,0 +1,104 @@
1#ifndef _EFL_CANVAS_GROUP_EO_LEGACY_H_
2#define _EFL_CANVAS_GROUP_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_GROUP_EO_CLASS_TYPE
5#define _EFL_CANVAS_GROUP_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Group;
8
9#endif
10
11#ifndef _EFL_CANVAS_GROUP_EO_TYPES
12#define _EFL_CANVAS_GROUP_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Indicates that the group's layout needs to be recalculated.
19 *
20 * If this flag is set, then the @ref evas_object_smart_calculate function will
21 * be called, during rendering phase of the canvas. After that, this flag will
22 * be automatically unset.
23 *
24 * @note setting this flag alone will not make the canvas' whole scene dirty.
25 * Using evas_render() will have no effect. To force this, use
26 * @ref evas_object_smart_changed, which will also call this function
27 * automatically, with the parameter set to @c true.
28 *
29 * See also @ref evas_object_smart_calculate.
30 *
31 * @param[in] obj The object.
32 * @param[in] value @c true if the group layout needs to be recalculated,
33 * @c false otherwise
34 *
35 * @ingroup Evas_Object_Smart_Group
36 */
37EAPI void evas_object_smart_need_recalculate_set(Efl_Canvas_Group *obj, Eina_Bool value);
38
39/**
40 * @brief Indicates that the group's layout needs to be recalculated.
41 *
42 * If this flag is set, then the @ref evas_object_smart_calculate function will
43 * be called, during rendering phase of the canvas. After that, this flag will
44 * be automatically unset.
45 *
46 * @note setting this flag alone will not make the canvas' whole scene dirty.
47 * Using evas_render() will have no effect. To force this, use
48 * @ref evas_object_smart_changed, which will also call this function
49 * automatically, with the parameter set to @c true.
50 *
51 * See also @ref evas_object_smart_calculate.
52 *
53 * @param[in] obj The object.
54 *
55 * @return @c true if the group layout needs to be recalculated, @c false
56 * otherwise
57 *
58 * @ingroup Evas_Object_Smart_Group
59 */
60EAPI Eina_Bool evas_object_smart_need_recalculate_get(const Efl_Canvas_Group *obj);
61
62/**
63 * @brief Marks the object as dirty.
64 *
65 * This also forcefully marks the given object as needing recalculation. As an
66 * effect, on the next rendering cycle its @ref evas_object_smart_calculate
67 * method will be called.
68 * @param[in] obj The object.
69 *
70 * @ingroup Evas_Object_Smart_Group
71 */
72EAPI void evas_object_smart_changed(Efl_Canvas_Group *obj);
73
74/**
75 * @brief Triggers an immediate recalculation of this object's geometry.
76 *
77 * This will also reset the flag @ref evas_object_smart_need_recalculate_get.
78 * @param[in] obj The object.
79 *
80 * @ingroup Evas_Object_Smart_Group
81 */
82EAPI void evas_object_smart_calculate(Efl_Canvas_Group *obj);
83
84/**
85 * @brief Returns an iterator over the children of this object, which are
86 * canvas objects.
87 *
88 * This returns the list of "smart" children. This might be different from both
89 * the @ref Efl_Object children list as well as the @ref Efl_Container content
90 * list.
91 *
92 * @param[in] obj The object.
93 *
94 * @return Iterator to object children
95 *
96 * @ingroup Evas_Object_Smart_Group
97 */
98EAPI Eina_Iterator *evas_object_smart_iterator_new(const Efl_Canvas_Group *obj);
99
100
101
102
103
104#endif
diff --git a/src/lib/evas/canvas/efl_canvas_image.c b/src/lib/evas/canvas/efl_canvas_image.c
index d00ee65..c89ee21 100644
--- a/src/lib/evas/canvas/efl_canvas_image.c
+++ b/src/lib/evas/canvas/efl_canvas_image.c
@@ -5,24 +5,30 @@
5#define MY_CLASS_NAME efl_class_name_get(MY_CLASS) 5#define MY_CLASS_NAME efl_class_name_get(MY_CLASS)
6 6
7Eina_Bool 7Eina_Bool
8_evas_image_mmap_set(Eo *eo_obj, const Eina_File *f, const char *key) 8_evas_image_file_load(Eo *eo_obj)
9{ 9{
10 Evas_Object_Protected_Data *obj; 10 Evas_Object_Protected_Data *obj;
11 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); 11 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
12 Evas_Image_Load_Opts lo; 12 Evas_Image_Load_Opts lo;
13 const Eina_File *f = efl_file_mmap_get(eo_obj);
14 const char *key = efl_file_key_get(eo_obj);
15 int load_error;
16
17 EINA_SAFETY_ON_NULL_RETURN_VAL(f, EINA_FALSE);
13 18
14 if (o->cur->f == f) 19 if (o->cur->f == f)
15 { 20 {
16 if ((!o->cur->key) && (!key)) 21 if ((!o->cur->key) && (!key))
17 return EINA_FALSE; 22 return EINA_TRUE;
18 if ((o->cur->key) && (key) && (!strcmp(o->cur->key, key))) 23 if ((o->cur->key) && (key) && (!strcmp(o->cur->key, key)))
19 return EINA_FALSE; 24 return EINA_TRUE;
20 } 25 }
21 26
22 obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 27 obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
23 evas_object_async_block(obj); 28 evas_object_async_block(obj);
24 _evas_image_init_set(f, key, eo_obj, obj, o, &lo); 29 _evas_image_init_set(f, key, eo_obj, obj, o, &lo);
25 o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &o->load_error, &lo); 30 o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &load_error, &lo);
31 o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error);
26 o->buffer_data_set = EINA_FALSE; 32 o->buffer_data_set = EINA_FALSE;
27 _evas_image_done_set(eo_obj, obj, o); 33 _evas_image_done_set(eo_obj, obj, o);
28 o->file_size.w = o->cur->image.w; 34 o->file_size.w = o->cur->image.w;
@@ -31,45 +37,38 @@ _evas_image_mmap_set(Eo *eo_obj, const Eina_File *f, const char *key)
31 return EINA_TRUE; 37 return EINA_TRUE;
32} 38}
33 39
34EOLIAN static Eina_Bool 40EOLIAN static Eina_Error
35_efl_canvas_image_efl_file_mmap_set(Eo *eo_obj, void *_pd EINA_UNUSED, 41_efl_canvas_image_efl_file_load(Eo *eo_obj, void *_pd EINA_UNUSED)
36 const Eina_File *f, const char *key)
37{ 42{
38 return _evas_image_mmap_set(eo_obj, f, key); 43 if (efl_file_loaded_get(eo_obj)) return 0;
44 Eina_Error err = efl_file_load(efl_super(eo_obj, MY_CLASS));
45 if (err) return err;
46 if (_evas_image_file_load(eo_obj))
47 return 0;
48 return EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST;
39} 49}
40 50
41void 51const Eina_File *
42_evas_image_mmap_get(const Eo *eo_obj, const Eina_File **f, const char **key) 52_evas_image_mmap_get(const Eo *eo_obj)
43{ 53{
44 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); 54 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
45 55
46 if (f) 56 return o->cur->f;
47 *f = o->cur->f;
48 if (key)
49 *key = o->cur->key;
50} 57}
51 58
52EOLIAN static void 59const char *
53_efl_canvas_image_efl_file_mmap_get(const Eo *eo_obj, void *_pd EINA_UNUSED, 60_evas_image_key_get(const Eo *eo_obj)
54 const Eina_File **f, const char **key)
55{
56 _evas_image_mmap_get(eo_obj, f, key);
57}
58
59Efl_Gfx_Image_Load_Error
60_evas_image_load_error_get(const Eo *eo_obj)
61{ 61{
62 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); 62 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
63 Efl_Gfx_Image_Load_Error r = efl_file_load_error_get(efl_cast(eo_obj, EFL_FILE_MIXIN));
64 63
65 if (r != EFL_GFX_IMAGE_LOAD_ERROR_NONE) return r; 64 return o->cur->key;
66 return o->load_error;
67} 65}
68 66
69EOLIAN static Efl_Gfx_Image_Load_Error 67void
70_efl_canvas_image_efl_file_load_error_get(const Eo *eo_obj, void *_pd EINA_UNUSED) 68_efl_canvas_image_load_error_set(Eo *eo_obj EINA_UNUSED, Eina_Error err)
71{ 69{
72 return _evas_image_load_error_get(eo_obj); 70 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
71 o->load_error = err;
73} 72}
74 73
75static void 74static void
@@ -786,15 +785,15 @@ _efl_canvas_image_efl_object_dbg_info_get(Eo *obj, void *pd EINA_UNUSED, Efl_Dbg
786{ 785{
787 efl_dbg_info_get(efl_super(obj, MY_CLASS), root); 786 efl_dbg_info_get(efl_super(obj, MY_CLASS), root);
788 787
789 if ((efl_file_load_error_get(obj) != EFL_GFX_IMAGE_LOAD_ERROR_NONE) && 788 if ((efl_gfx_image_load_error_get(obj) != EFL_GFX_IMAGE_LOAD_ERROR_NONE) &&
790 (root)) 789 (root))
791 { 790 {
792 Efl_Dbg_Info *group = EFL_DBG_INFO_LIST_APPEND(root, MY_CLASS_NAME); 791 Efl_Dbg_Info *group = EFL_DBG_INFO_LIST_APPEND(root, MY_CLASS_NAME);
793 Evas_Load_Error error = EVAS_LOAD_ERROR_GENERIC; 792 Eina_Error error = EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
794 793
795 error = (Evas_Load_Error) _evas_image_load_error_get(obj); 794 error = efl_gfx_image_load_error_get(obj);
796 EFL_DBG_INFO_APPEND(group, "Load Error", EINA_VALUE_TYPE_STRING, 795 EFL_DBG_INFO_APPEND(group, "Load Error", EINA_VALUE_TYPE_STRING,
797 evas_load_error_str(error)); 796 eina_error_msg_get(error));
798 } 797 }
799} 798}
800 799
diff --git a/src/lib/evas/canvas/efl_canvas_image.eo b/src/lib/evas/canvas/efl_canvas_image.eo
index f92da8c..2dbad42 100644
--- a/src/lib/evas/canvas/efl_canvas_image.eo
+++ b/src/lib/evas/canvas/efl_canvas_image.eo
@@ -16,8 +16,7 @@ class @beta Efl.Canvas.Image extends Efl.Canvas.Image_Internal implements
16 Efl.Gfx.Buffer.buffer_size { get; } 16 Efl.Gfx.Buffer.buffer_size { get; }
17 Efl.Gfx.Buffer.buffer_map; 17 Efl.Gfx.Buffer.buffer_map;
18 Efl.Gfx.Buffer.buffer_unmap; 18 Efl.Gfx.Buffer.buffer_unmap;
19 Efl.File.mmap { get; set; } 19 Efl.File.load;
20 Efl.File.load_error { get; }
21 Efl.Gfx.Frame_Controller.animated { get; } 20 Efl.Gfx.Frame_Controller.animated { get; }
22 Efl.Gfx.Frame_Controller.frame { get; set; } 21 Efl.Gfx.Frame_Controller.frame { get; set; }
23 Efl.Gfx.Frame_Controller.frame_count { get; } 22 Efl.Gfx.Frame_Controller.frame_count { get; }
diff --git a/src/lib/evas/canvas/efl_canvas_image_internal.eo b/src/lib/evas/canvas/efl_canvas_image_internal.eo
index 5d9ff95..c0b9093 100644
--- a/src/lib/evas/canvas/efl_canvas_image_internal.eo
+++ b/src/lib/evas/canvas/efl_canvas_image_internal.eo
@@ -21,6 +21,7 @@ abstract @beta Efl.Canvas.Image_Internal extends Efl.Canvas.Object implements Ef
21 Efl.Gfx.Image.scale_hint { get; set; } 21 Efl.Gfx.Image.scale_hint { get; set; }
22 Efl.Gfx.Image.content_hint { get; set; } 22 Efl.Gfx.Image.content_hint { get; set; }
23 Efl.Gfx.Image.image_size { get; } 23 Efl.Gfx.Image.image_size { get; }
24 Efl.Gfx.Image.image_load_error { get; }
24 Efl.Gfx.Buffer.alpha { get; set; } 25 Efl.Gfx.Buffer.alpha { get; set; }
25 Efl.Gfx.Buffer.buffer_update_add; 26 Efl.Gfx.Buffer.buffer_update_add;
26 Efl.Gfx.Buffer.colorspace { get; } 27 Efl.Gfx.Buffer.colorspace { get; }
diff --git a/src/lib/evas/canvas/efl_canvas_object.eo b/src/lib/evas/canvas/efl_canvas_object.eo
index 75f304a..d449c80 100644
--- a/src/lib/evas/canvas/efl_canvas_object.eo
+++ b/src/lib/evas/canvas/efl_canvas_object.eo
@@ -11,10 +11,9 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
11 Efl.Gfx.Mapping, Efl.Ui.I18n, Efl.Canvas.Pointer 11 Efl.Gfx.Mapping, Efl.Ui.I18n, Efl.Canvas.Pointer
12{ 12{
13 [[Efl canvas object abstract class]] 13 [[Efl canvas object abstract class]]
14 legacy_prefix: evas_object;
15 data: Evas_Object_Protected_Data; 14 data: Evas_Object_Protected_Data;
16 methods { 15 methods {
17 @property pointer_mode_by_device { 16 @property pointer_mode_by_device @beta {
18 [[Low-level pointer behaviour by device. 17 [[Low-level pointer behaviour by device.
19 See @.pointer_mode.get and @.pointer_mode.set for more explanation. 18 See @.pointer_mode.get and @.pointer_mode.set for more explanation.
20 @since 1.19 19 @since 1.19
@@ -27,13 +26,11 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
27 } 26 }
28 set { 27 set {
29 return: bool; [[$true if pointer mode was set, $false otherwise]] 28 return: bool; [[$true if pointer mode was set, $false otherwise]]
30 legacy: null;
31 } 29 }
32 get { 30 get {
33 legacy: null;
34 } 31 }
35 } 32 }
36 @property pointer_mode { 33 @property pointer_mode @beta {
37 [[Low-level pointer behaviour. 34 [[Low-level pointer behaviour.
38 35
39 This function has a direct effect on event callbacks related to 36 This function has a direct effect on event callbacks related to
@@ -77,46 +74,14 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
77 transparent background inside a buffer canvas). 74 transparent background inside a buffer canvas).
78 ]] 75 ]]
79 set { 76 set {
80 legacy: null;
81 } 77 }
82 get { 78 get {
83 legacy: null;
84 } 79 }
85 values { 80 values {
86 render_op: Efl.Gfx.Render_Op; [[Blend or copy.]] 81 render_op: Efl.Gfx.Render_Op; [[Blend or copy.]]
87 } 82 }
88 } 83 }
89 @property freeze_events { 84 @property clipper {
90 set {
91 [[Set whether an Evas object is to freeze (discard) events.
92
93 If $freeze is $true, it will force events on $obj to be
94 discarded. Unlike @.pass_events.set, events will not be
95 passed to next lower object. This API can be used for
96 blocking events while $obj is in transition.
97
98 If $freeze is $false, events will be processed on that
99 object as normal.
100
101 Warning: If you block only key/mouse up events with this API,
102 you can't be sure of the state of any objects that have only
103 key/mouse down events.
104
105 @since 1.1
106 ]]
107 }
108 get {
109 [[Determine whether an object is set to freeze (discard) events.
110
111 @since 1.1
112 ]]
113 }
114 values {
115 freeze: bool; [[Pass when $obj is to freeze events ($true)
116 or not ($false).]]
117 }
118 }
119 @property clip {
120 set { 85 set {
121 [[Clip one object to another. 86 [[Clip one object to another.
122 87
@@ -168,7 +133,7 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
168 ]] 133 ]]
169 } 134 }
170 values { 135 values {
171 clip: Efl.Canvas.Object @nonull; [[The object to clip $obj by.]] 136 clipper: Efl.Canvas.Object @nonull; [[The object to clip $obj by.]]
172 } 137 }
173 } 138 }
174 @property repeat_events { 139 @property repeat_events {
@@ -212,10 +177,8 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
212 @.seat_focus_add, @.seat_focus_del. 177 @.seat_focus_add, @.seat_focus_del.
213 ]] 178 ]]
214 set { 179 set {
215 legacy: evas_object_focus_set;
216 } 180 }
217 get { 181 get {
218 legacy: evas_object_focus_get;
219 } 182 }
220 values { 183 values {
221 focus: bool; [[$true when set as focused or $false otherwise.]] 184 focus: bool; [[$true when set as focused or $false otherwise.]]
@@ -227,7 +190,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
227 @since 1.19 190 @since 1.19
228 ]] 191 ]]
229 get { 192 get {
230 legacy: null;
231 } 193 }
232 values { 194 values {
233 focus: bool; [[$true if focused by at least one seat or $false otherwise.]] 195 focus: bool; [[$true if focused by at least one seat or $false otherwise.]]
@@ -238,7 +200,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
238 params { 200 params {
239 @in seat: Efl.Input.Device; [[The seat to check if the object is focused. Use $null for the default seat.]] 201 @in seat: Efl.Input.Device; [[The seat to check if the object is focused. Use $null for the default seat.]]
240 } 202 }
241 legacy: null;
242 return: bool; [[$true if focused or $false otherwise.]] 203 return: bool; [[$true if focused or $false otherwise.]]
243 } 204 }
244 seat_focus_add { 205 seat_focus_add {
@@ -255,7 +216,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
255 params { 216 params {
256 @in seat: Efl.Input.Device; [[The seat that should be added to the focus list. Use $null for the default seat.]] 217 @in seat: Efl.Input.Device; [[The seat that should be added to the focus list. Use $null for the default seat.]]
257 } 218 }
258 legacy: null;
259 return: bool; [[$true if the focus has been set or $false otherwise.]] 219 return: bool; [[$true if the focus has been set or $false otherwise.]]
260 } 220 }
261 seat_focus_del { 221 seat_focus_del {
@@ -266,25 +226,8 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
266 params { 226 params {
267 @in seat: Efl.Input.Device; [[The seat that should be removed from the focus list. Use $null for the default seat.]] 227 @in seat: Efl.Input.Device; [[The seat that should be removed from the focus list. Use $null for the default seat.]]
268 } 228 }
269 legacy: null;
270 return: bool; [[$true if the seat was removed from the focus list or $false otherwise.]] 229 return: bool; [[$true if the seat was removed from the focus list or $false otherwise.]]
271 } 230 }
272 @property is_frame_object {
273 [[If $true the object belongs to the window border decorations.
274
275 This will be $false by default, and should be $false for all objects
276 created by the application, unless swallowed in some very specific
277 parts of the window.
278
279 It is very unlikely that an application needs to call this manually,
280 as the window will handle this feature automatically.
281
282 @since 1.2
283 ]]
284 values {
285 is_frame: bool; [[$true if the object is a frame, $false otherwise]]
286 }
287 }
288 @property precise_is_inside { 231 @property precise_is_inside {
289 set { 232 set {
290 [[Set whether to use precise (usually expensive) point collision 233 [[Set whether to use precise (usually expensive) point collision
@@ -331,15 +274,13 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
331 be propagated on to the smart object of which $obj is a 274 be propagated on to the smart object of which $obj is a
332 member. The default value is $true. 275 member. The default value is $true.
333 276
334 See also @.repeat_events.set, @.pass_events.set, 277 See also @.repeat_events.set, @.pass_events.set.
335 @.freeze_events.set.
336 ]] 278 ]]
337 } 279 }
338 get { 280 get {
339 [[Retrieve whether an Evas object is set to propagate events. 281 [[Retrieve whether an Evas object is set to propagate events.
340 282
341 See also @.repeat_events.get, @.pass_events.get, 283 See also @.repeat_events.get, @.pass_events.get.
342 @.freeze_events.get.
343 ]] 284 ]]
344 } 285 }
345 values { 286 values {
@@ -358,15 +299,13 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
358 If $pass is $false events will be processed on that object 299 If $pass is $false events will be processed on that object
359 as normal. 300 as normal.
360 301
361 See also @.repeat_events.set, @.propagate_events.set, 302 See also @.repeat_events.set, @.propagate_events.set
362 @.freeze_events.set.
363 ]] 303 ]]
364 } 304 }
365 get { 305 get {
366 [[Determine whether an object is set to pass (ignore) events. 306 [[Determine whether an object is set to pass (ignore) events.
367 307
368 See also @.repeat_events.get, @.propagate_events.get, 308 See also @.repeat_events.get, @.propagate_events.get.
369 @.freeze_events.get.
370 ]] 309 ]]
371 /* FIXME-doc 310 /* FIXME-doc
372 Example: 311 Example:
@@ -398,7 +337,7 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
398 $false otherwise.]] 337 $false otherwise.]]
399 } 338 }
400 } 339 }
401 @property clipees { 340 @property clipped_objects {
402 get { 341 get {
403 [[Return a list of objects currently clipped by $obj. 342 [[Return a list of objects currently clipped by $obj.
404 343
@@ -413,9 +352,8 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
413 anymore after that point. Any use of the list after this 352 anymore after that point. Any use of the list after this
414 may have undefined results, possibly leading to crashes. 353 may have undefined results, possibly leading to crashes.
415 354
416 See also @.clip. 355 See also @.clipper.
417 ]] 356 ]]
418 legacy: null;
419 return: iterator<Efl.Canvas.Object> @warn_unused; [[An iterator over the 357 return: iterator<Efl.Canvas.Object> @warn_unused; [[An iterator over the
420 list of objects clipped by $obj.]] 358 list of objects clipped by $obj.]]
421 } 359 }
@@ -430,7 +368,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
430 @since 1.18 368 @since 1.18
431 ]] 369 ]]
432 get { 370 get {
433 legacy: evas_object_smart_parent_get;
434 } 371 }
435 values { 372 values {
436 parent: Efl.Canvas.Object; [[The parent smart object of $obj or $null.]] 373 parent: Efl.Canvas.Object; [[The parent smart object of $obj or $null.]]
@@ -446,12 +383,10 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
446 dir: Efl.Text_Bidirectional_Type; [[Paragraph direction for the given object.]] 383 dir: Efl.Text_Bidirectional_Type; [[Paragraph direction for the given object.]]
447 } 384 }
448 } 385 }
449 clipees_has @const { 386 clipped_objects_count @const {
450 [[Test if any object is clipped by $obj. 387 [[Returns the number of objects clipped by $obj
451
452 @since 1.8
453 ]] 388 ]]
454 return: bool @warn_unused; [[$true if any object is clipped by $obj, $false otherwise]] 389 return: uint @warn_unused; [[The number of objects clipped by $obj]]
455 } 390 }
456 key_grab { 391 key_grab {
457 /* FIXME: can't reference Eolian object, .eo file not being installed */ 392 /* FIXME: can't reference Eolian object, .eo file not being installed */
@@ -488,7 +423,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
488 @in exclusive: bool; [[Request that the $obj is the only object 423 @in exclusive: bool; [[Request that the $obj is the only object
489 receiving the $keyname events.]] 424 receiving the $keyname events.]]
490 } 425 }
491 legacy: null;
492 } 426 }
493 key_ungrab { 427 key_ungrab {
494 [[Removes the grab on $keyname key events by $obj. 428 [[Removes the grab on $keyname key events by $obj.
@@ -507,7 +441,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
507 not not be present to trigger 441 not not be present to trigger
508 the event.]] 442 the event.]]
509 } 443 }
510 legacy: null;
511 } 444 }
512 @property no_render { 445 @property no_render {
513 get { 446 get {
@@ -519,7 +452,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
519 452
520 @since 1.15 453 @since 1.15
521 ]] 454 ]]
522 legacy: null;
523 } 455 }
524 set { 456 set {
525 [[Disable all rendering on the canvas. 457 [[Disable all rendering on the canvas.
@@ -540,7 +472,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
540 472
541 @since 1.15 473 @since 1.15
542 ]] 474 ]]
543 legacy: null;
544 } 475 }
545 values { 476 values {
546 enable: bool; [[Enable "no-render" mode.]] 477 enable: bool; [[Enable "no-render" mode.]]
@@ -561,7 +492,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
561 492
562 If $e is not a valid object, the return value is undefined. 493 If $e is not a valid object, the return value is undefined.
563 ]] 494 ]]
564 legacy: null;
565 } 495 }
566 keys { 496 keys {
567 pos: Eina.Position2D; [[The position in pixels.]] 497 pos: Eina.Position2D; [[The position in pixels.]]
@@ -570,20 +500,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
570 return: bool; [[$true if the coords are inside the object, $false otherwise]] 500 return: bool; [[$true if the coords are inside the object, $false otherwise]]
571 } 501 }
572 } 502 }
573 @property event_animation {
574 [[Set the $animation which starts when the given $desc happens to the object.]]
575 get { legacy: null; }
576 set { legacy: null; }
577 keys {
578 @cref desc: Efl.Event_Description;
579 [[The event description for which the given $animation is set.]]
580 }
581 values {
582 animation: Efl.Canvas.Animation;
583 [[The animation which starts when the given $desc
584 happens to the object.]]
585 }
586 }
587 } 503 }
588 implements { 504 implements {
589 Efl.Object.constructor; 505 Efl.Object.constructor;
@@ -591,6 +507,8 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
591 Efl.Object.invalidate; 507 Efl.Object.invalidate;
592 Efl.Object.destructor; 508 Efl.Object.destructor;
593 Efl.Object.provider_find; 509 Efl.Object.provider_find;
510 Efl.Object.event_freeze;
511 Efl.Object.event_thaw;
594 Efl.Object.debug_name_override; 512 Efl.Object.debug_name_override;
595 Efl.Gfx.Entity.visible { get; set; } 513 Efl.Gfx.Entity.visible { get; set; }
596 Efl.Gfx.Color.color { get; set; } 514 Efl.Gfx.Color.color { get; set; }
@@ -619,9 +537,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
619 Efl.Canvas.Pointer.pointer_inside { get; } 537 Efl.Canvas.Pointer.pointer_inside { get; }
620 } 538 }
621 events { 539 events {
622 anim_started: Efl.Canvas.Object_Animation_Event; [[Animation is started.]]
623 anim_running: Efl.Canvas.Object_Animation_Event; [[Animation is running.]]
624 anim_ended: Efl.Canvas.Object_Animation_Event; [[Animation is ended.]]
625 animator,tick: Efl.Event_Animator_Tick; [[Animator tick synchronized with screen vsync if possible.]] 540 animator,tick: Efl.Event_Animator_Tick; [[Animator tick synchronized with screen vsync if possible.]]
626 } 541 }
627} 542}
diff --git a/src/lib/evas/canvas/efl_canvas_object_eo.legacy.c b/src/lib/evas/canvas/efl_canvas_object_eo.legacy.c
new file mode 100644
index 0000000..a02c1f8
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_object_eo.legacy.c
@@ -0,0 +1,114 @@
1
2EAPI Eina_Bool
3evas_object_pointer_mode_set(Efl_Canvas_Object *obj, Efl_Input_Object_Pointer_Mode pointer_mode)
4{
5 return efl_canvas_object_pointer_mode_set(obj, pointer_mode);
6}
7
8EAPI Efl_Input_Object_Pointer_Mode
9evas_object_pointer_mode_get(const Efl_Canvas_Object *obj)
10{
11 return efl_canvas_object_pointer_mode_get(obj);
12}
13
14EAPI void
15evas_object_clip_set(Efl_Canvas_Object *obj, Efl_Canvas_Object *clipper)
16{
17 efl_canvas_object_clipper_set(obj, clipper);
18}
19
20EAPI Efl_Canvas_Object *
21evas_object_clip_get(const Efl_Canvas_Object *obj)
22{
23 return efl_canvas_object_clipper_get(obj);
24}
25
26EAPI void
27evas_object_repeat_events_set(Efl_Canvas_Object *obj, Eina_Bool repeat)
28{
29 efl_canvas_object_repeat_events_set(obj, repeat);
30}
31
32EAPI Eina_Bool
33evas_object_repeat_events_get(const Efl_Canvas_Object *obj)
34{
35 return efl_canvas_object_repeat_events_get(obj);
36}
37
38EAPI void
39evas_object_focus_set(Efl_Canvas_Object *obj, Eina_Bool focus)
40{
41 efl_canvas_object_key_focus_set(obj, focus);
42}
43
44EAPI Eina_Bool
45evas_object_focus_get(const Efl_Canvas_Object *obj)
46{
47 return efl_canvas_object_key_focus_get(obj);
48}
49
50EAPI void
51evas_object_precise_is_inside_set(Efl_Canvas_Object *obj, Eina_Bool precise)
52{
53 efl_canvas_object_precise_is_inside_set(obj, precise);
54}
55
56EAPI Eina_Bool
57evas_object_precise_is_inside_get(const Efl_Canvas_Object *obj)
58{
59 return efl_canvas_object_precise_is_inside_get(obj);
60}
61
62EAPI void
63evas_object_propagate_events_set(Efl_Canvas_Object *obj, Eina_Bool propagate)
64{
65 efl_canvas_object_propagate_events_set(obj, propagate);
66}
67
68EAPI Eina_Bool
69evas_object_propagate_events_get(const Efl_Canvas_Object *obj)
70{
71 return efl_canvas_object_propagate_events_get(obj);
72}
73
74EAPI void
75evas_object_pass_events_set(Efl_Canvas_Object *obj, Eina_Bool pass)
76{
77 efl_canvas_object_pass_events_set(obj, pass);
78}
79
80EAPI Eina_Bool
81evas_object_pass_events_get(const Efl_Canvas_Object *obj)
82{
83 return efl_canvas_object_pass_events_get(obj);
84}
85
86EAPI void
87evas_object_anti_alias_set(Efl_Canvas_Object *obj, Eina_Bool anti_alias)
88{
89 efl_canvas_object_anti_alias_set(obj, anti_alias);
90}
91
92EAPI Eina_Bool
93evas_object_anti_alias_get(const Efl_Canvas_Object *obj)
94{
95 return efl_canvas_object_anti_alias_get(obj);
96}
97
98EAPI Efl_Canvas_Object *
99evas_object_smart_parent_get(const Efl_Canvas_Object *obj)
100{
101 return efl_canvas_object_render_parent_get(obj);
102}
103
104EAPI void
105evas_object_paragraph_direction_set(Efl_Canvas_Object *obj, Efl_Text_Bidirectional_Type dir)
106{
107 efl_canvas_object_paragraph_direction_set(obj, dir);
108}
109
110EAPI Efl_Text_Bidirectional_Type
111evas_object_paragraph_direction_get(const Efl_Canvas_Object *obj)
112{
113 return efl_canvas_object_paragraph_direction_get(obj);
114}
diff --git a/src/lib/evas/canvas/efl_canvas_object_eo.legacy.h b/src/lib/evas/canvas/efl_canvas_object_eo.legacy.h
new file mode 100644
index 0000000..ce51e7d
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_object_eo.legacy.h
@@ -0,0 +1,410 @@
1#ifndef _EFL_CANVAS_OBJECT_EO_LEGACY_H_
2#define _EFL_CANVAS_OBJECT_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_OBJECT_EO_CLASS_TYPE
5#define _EFL_CANVAS_OBJECT_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Object;
8
9#endif
10
11#ifndef _EFL_CANVAS_OBJECT_EO_TYPES
12#define _EFL_CANVAS_OBJECT_EO_TYPES
13
14/** Information of animation events
15 *
16 * @ingroup Efl_Canvas
17 */
18typedef struct _Efl_Canvas_Object_Animation_Event Efl_Canvas_Object_Animation_Event;
19
20/** EFL event animator tick data structure
21 *
22 * @ingroup Efl
23 */
24typedef struct _Efl_Event_Animator_Tick
25{
26 Eina_Rect update_area; /**< Area of the canvas that will be pushed to screen.
27 */
28} Efl_Event_Animator_Tick;
29
30
31#endif
32
33
34
35/**
36 * @brief Low-level pointer behaviour.
37 *
38 * This function has a direct effect on event callbacks related to pointers
39 * (mouse, ...).
40 *
41 * If the value is @ref EFL_INPUT_OBJECT_POINTER_MODE_AUTO_GRAB (default), then
42 * when mouse is pressed down over this object, events will be restricted to it
43 * as source, mouse moves, for example, will be emitted even when the pointer
44 * goes outside this objects geometry.
45 *
46 * If the value is @ref EFL_INPUT_OBJECT_POINTER_MODE_NO_GRAB, then events will
47 * be emitted just when inside this object area.
48 *
49 * The default value is @ref EFL_INPUT_OBJECT_POINTER_MODE_AUTO_GRAB. See also:
50 * @ref Efl.Canvas.Object.pointer_mode_by_device.get and
51 * @ref Efl.Canvas.Object.pointer_mode_by_device.set Note: This function will
52 * only set/get the mode for the default pointer.
53 *
54 * @param[in] obj The object.
55 * @param[in] pointer_mode Input pointer mode
56 *
57 * @return @c true if pointer behaviour was set, @c false otherwise
58 *
59 * @ingroup Evas_Object_Group
60 */
61EAPI Eina_Bool evas_object_pointer_mode_set(Efl_Canvas_Object *obj, Efl_Input_Object_Pointer_Mode pointer_mode);
62
63/**
64 * @brief Low-level pointer behaviour.
65 *
66 * This function has a direct effect on event callbacks related to pointers
67 * (mouse, ...).
68 *
69 * If the value is @ref EFL_INPUT_OBJECT_POINTER_MODE_AUTO_GRAB (default), then
70 * when mouse is pressed down over this object, events will be restricted to it
71 * as source, mouse moves, for example, will be emitted even when the pointer
72 * goes outside this objects geometry.
73 *
74 * If the value is @ref EFL_INPUT_OBJECT_POINTER_MODE_NO_GRAB, then events will
75 * be emitted just when inside this object area.
76 *
77 * The default value is @ref EFL_INPUT_OBJECT_POINTER_MODE_AUTO_GRAB. See also:
78 * @ref Efl.Canvas.Object.pointer_mode_by_device.get and
79 * @ref Efl.Canvas.Object.pointer_mode_by_device.set Note: This function will
80 * only set/get the mode for the default pointer.
81 *
82 * @param[in] obj The object.
83 *
84 * @return Input pointer mode
85 *
86 * @ingroup Evas_Object_Group
87 */
88EAPI Efl_Input_Object_Pointer_Mode evas_object_pointer_mode_get(const Efl_Canvas_Object *obj);
89
90
91
92/**
93 * @brief Clip one object to another.
94 *
95 * This function will clip the object @c obj to the area occupied by the object
96 * @c clip. This means the object @c obj will only be visible within the area
97 * occupied by the clipping object ($clip).
98 *
99 * The color of the object being clipped will be multiplied by the color of the
100 * clipping one, so the resulting color for the former will be "RESULT = (OBJ *
101 * CLIP) / (255 * 255)", per color element (red, green, blue and alpha).
102 *
103 * Clipping is recursive, so clipping objects may be clipped by others, and
104 * their color will in term be multiplied. You may not set up circular clipping
105 * lists (i.e. object 1 clips object 2, which clips object 1): the behavior of
106 * Evas is undefined in this case.
107 *
108 * Objects which do not clip others are visible in the canvas as normal; those
109 * that clip one or more objects become invisible themselves, only affecting
110 * what they clip. If an object ceases to have other objects being clipped by
111 * it, it will become visible again.
112 *
113 * The visibility of an object affects the objects that are clipped by it, so
114 * if the object clipping others is not shown (as in
115 * @ref Efl.Gfx.Entity.visible), the objects clipped by it will not be shown
116 * either.
117 *
118 * If @c obj was being clipped by another object when this function is called,
119 * it gets implicitly removed from the old clipper's domain and is made now to
120 * be clipped by its new clipper.
121 *
122 * If @c clip is @c null, this call will disable clipping for the object i.e.
123 * its visibility and color get detached from the previous clipper. If it
124 * wasn't, this has no effect.
125 *
126 * @note Only rectangle and image (masks) objects can be used as clippers.
127 * Anything else will result in undefined behaviour.
128 *
129 * @param[in] obj The object.
130 * @param[in] clip The object to clip @c obj by.
131 *
132 * @ingroup Evas_Object_Group
133 */
134EAPI void evas_object_clip_set(Efl_Canvas_Object *obj, Efl_Canvas_Object *clip) EINA_ARG_NONNULL(2);
135
136/**
137 * @brief Get the object clipping @c obj (if any).
138 *
139 * This function returns the object clipping @c obj. If @c obj is not being
140 * clipped at all, @c null is returned. The object @c obj must be a valid
141 * Evas_Object.
142 *
143 * @param[in] obj The object.
144 *
145 * @return The object to clip @c obj by.
146 *
147 * @ingroup Evas_Object_Group
148 */
149EAPI Efl_Canvas_Object *evas_object_clip_get(const Efl_Canvas_Object *obj);
150
151/**
152 * @brief Set whether an Evas object is to repeat events.
153 *
154 * If @c repeat is @c true, it will make events on @c obj to also be repeated
155 * for the next lower object in the objects' stack (see see
156 * @ref Efl.Gfx.Stack.below).
157 *
158 * If @c repeat is @c false, events occurring on @c obj will be processed only
159 * on it.
160 *
161 * @param[in] obj The object.
162 * @param[in] repeat Whether @c obj is to repeat events ($true) or not
163 * ($false).
164 *
165 * @ingroup Evas_Object_Group
166 */
167EAPI void evas_object_repeat_events_set(Efl_Canvas_Object *obj, Eina_Bool repeat);
168
169/**
170 * @brief Determine whether an object is set to repeat events.
171 *
172 * @param[in] obj The object.
173 *
174 * @return Whether @c obj is to repeat events ($true) or not ($false).
175 *
176 * @ingroup Evas_Object_Group
177 */
178EAPI Eina_Bool evas_object_repeat_events_get(const Efl_Canvas_Object *obj);
179
180/**
181 * @brief Indicates that this object is the keyboard event receiver on its
182 * canvas.
183 *
184 * Changing focus only affects where (key) input events go. There can be only
185 * one object focused at any time. If @c focus is @c true, @c obj will be set
186 * as the currently focused object and it will receive all keyboard events that
187 * are not exclusive key grabs on other objects. See also
188 * @ref Efl.Canvas.Object.seat_focus_check,
189 * @ref Efl.Canvas.Object.seat_focus_add,
190 * @ref Efl.Canvas.Object.seat_focus_del.
191 *
192 * @param[in] obj The object.
193 * @param[in] focus @c true when set as focused or @c false otherwise.
194 *
195 * @ingroup Evas_Object_Group
196 */
197EAPI void evas_object_focus_set(Efl_Canvas_Object *obj, Eina_Bool focus);
198
199/**
200 * @brief Indicates that this object is the keyboard event receiver on its
201 * canvas.
202 *
203 * Changing focus only affects where (key) input events go. There can be only
204 * one object focused at any time. If @c focus is @c true, @c obj will be set
205 * as the currently focused object and it will receive all keyboard events that
206 * are not exclusive key grabs on other objects. See also
207 * @ref Efl.Canvas.Object.seat_focus_check,
208 * @ref Efl.Canvas.Object.seat_focus_add,
209 * @ref Efl.Canvas.Object.seat_focus_del.
210 *
211 * @param[in] obj The object.
212 *
213 * @return @c true when set as focused or @c false otherwise.
214 *
215 * @ingroup Evas_Object_Group
216 */
217EAPI Eina_Bool evas_object_focus_get(const Efl_Canvas_Object *obj);
218
219
220
221
222
223/**
224 * @brief Set whether to use precise (usually expensive) point collision
225 * detection for a given Evas object.
226 *
227 * Use this function to make Evas treat objects' transparent areas as not
228 * belonging to it with regard to mouse pointer events. By default, all of the
229 * object's boundary rectangle will be taken in account for them.
230 *
231 * @warning By using precise point collision detection you'll be making Evas
232 * more resource intensive.
233 *
234 * @param[in] obj The object.
235 * @param[in] precise Whether to use precise point collision detection or not.
236 * The default value is false.
237 *
238 * @ingroup Evas_Object_Group
239 */
240EAPI void evas_object_precise_is_inside_set(Efl_Canvas_Object *obj, Eina_Bool precise);
241
242/**
243 * @brief Determine whether an object is set to use precise point collision
244 * detection.
245 *
246 * @param[in] obj The object.
247 *
248 * @return Whether to use precise point collision detection or not. The default
249 * value is false.
250 *
251 * @ingroup Evas_Object_Group
252 */
253EAPI Eina_Bool evas_object_precise_is_inside_get(const Efl_Canvas_Object *obj);
254
255/**
256 * @brief Set whether events on a smart object's member should be propagated up
257 * to its parent.
258 *
259 * This function has no effect if @c obj is not a member of a smart object.
260 *
261 * If @c prop is @c true, events occurring on this object will be propagated on
262 * to the smart object of which @c obj is a member. If @c prop is @c false,
263 * events occurring on this object will not be propagated on to the smart
264 * object of which @c obj is a member. The default value is @c true.
265 *
266 * See also @ref evas_object_repeat_events_set,
267 * @ref evas_object_pass_events_set.
268 *
269 * @param[in] obj The object.
270 * @param[in] propagate Whether to propagate events ($true) or not ($false).
271 *
272 * @ingroup Evas_Object_Group
273 */
274EAPI void evas_object_propagate_events_set(Efl_Canvas_Object *obj, Eina_Bool propagate);
275
276/**
277 * @brief Retrieve whether an Evas object is set to propagate events.
278 *
279 * See also @ref evas_object_repeat_events_get,
280 * @ref evas_object_pass_events_get.
281 *
282 * @param[in] obj The object.
283 *
284 * @return Whether to propagate events ($true) or not ($false).
285 *
286 * @ingroup Evas_Object_Group
287 */
288EAPI Eina_Bool evas_object_propagate_events_get(const Efl_Canvas_Object *obj);
289
290/**
291 * @brief Set whether an Evas object is to pass (ignore) events.
292 *
293 * If @c pass is @c true, it will make events on @c obj to be ignored. They
294 * will be triggered on the next lower object (that is not set to pass events),
295 * instead (see @ref Efl.Gfx.Stack.below).
296 *
297 * If @c pass is @c false events will be processed on that object as normal.
298 *
299 * See also @ref evas_object_repeat_events_set,
300 * @ref evas_object_propagate_events_set
301 *
302 * @param[in] obj The object.
303 * @param[in] pass Whether @c obj is to pass events ($true) or not ($false).
304 *
305 * @ingroup Evas_Object_Group
306 */
307EAPI void evas_object_pass_events_set(Efl_Canvas_Object *obj, Eina_Bool pass);
308
309/**
310 * @brief Determine whether an object is set to pass (ignore) events.
311 *
312 * See also @ref evas_object_repeat_events_get,
313 * @ref evas_object_propagate_events_get.
314 *
315 * @param[in] obj The object.
316 *
317 * @return Whether @c obj is to pass events ($true) or not ($false).
318 *
319 * @ingroup Evas_Object_Group
320 */
321EAPI Eina_Bool evas_object_pass_events_get(const Efl_Canvas_Object *obj);
322
323/**
324 * @brief Sets whether or not the given Evas object is to be drawn
325 * anti-aliased.
326 *
327 * @param[in] obj The object.
328 * @param[in] anti_alias @c true if the object is to be anti_aliased, @c false
329 * otherwise.
330 *
331 * @ingroup Evas_Object_Group
332 */
333EAPI void evas_object_anti_alias_set(Efl_Canvas_Object *obj, Eina_Bool anti_alias);
334
335/**
336 * @brief Retrieves whether or not the given Evas object is to be drawn
337 * anti_aliased.
338 *
339 * @param[in] obj The object.
340 *
341 * @return @c true if the object is to be anti_aliased, @c false otherwise.
342 *
343 * @ingroup Evas_Object_Group
344 */
345EAPI Eina_Bool evas_object_anti_alias_get(const Efl_Canvas_Object *obj);
346
347
348/**
349 * @brief Gets the parent smart object of a given Evas object, if it has one.
350 *
351 * This can be different from @ref Efl.Object.parent because this one is used
352 * internally for rendering and the normal parent is what the user expects to
353 * be the parent.
354 *
355 * @param[in] obj The object.
356 *
357 * @return The parent smart object of @c obj or @c null.
358 *
359 * @since 1.18
360 *
361 * @ingroup Evas_Object_Group
362 */
363EAPI Efl_Canvas_Object *evas_object_smart_parent_get(const Efl_Canvas_Object *obj);
364
365/**
366 * @brief This handles text paragraph direction of the given object. Even if
367 * the given object is not textblock or text, its smart child objects can
368 * inherit the paragraph direction from the given object. The default paragraph
369 * direction is @c inherit.
370 *
371 * @param[in] obj The object.
372 * @param[in] dir Paragraph direction for the given object.
373 *
374 * @ingroup Evas_Object_Group
375 */
376EAPI void evas_object_paragraph_direction_set(Efl_Canvas_Object *obj, Efl_Text_Bidirectional_Type dir);
377
378/**
379 * @brief This handles text paragraph direction of the given object. Even if
380 * the given object is not textblock or text, its smart child objects can
381 * inherit the paragraph direction from the given object. The default paragraph
382 * direction is @c inherit.
383 *
384 * @param[in] obj The object.
385 *
386 * @return Paragraph direction for the given object.
387 *
388 * @ingroup Evas_Object_Group
389 */
390EAPI Efl_Text_Bidirectional_Type evas_object_paragraph_direction_get(const Efl_Canvas_Object *obj);
391
392/**
393 * @brief Test if any object is clipped by @c obj.
394 *
395 * @param[in] obj The object.
396 *
397 * @return @c true if any object is clipped by @c obj, @c false otherwise
398 *
399 * @since 1.8
400 *
401 * @ingroup Evas_Object_Group
402 */
403EAPI Eina_Bool evas_object_clipees_has(const Efl_Canvas_Object *obj) EINA_WARN_UNUSED_RESULT;
404
405
406
407
408
409
410#endif
diff --git a/src/lib/evas/canvas/efl_canvas_proxy.c b/src/lib/evas/canvas/efl_canvas_proxy.c
index b057400..c8368ea 100644
--- a/src/lib/evas/canvas/efl_canvas_proxy.c
+++ b/src/lib/evas/canvas/efl_canvas_proxy.c
@@ -220,7 +220,7 @@ _evas_image_proxy_set(Evas_Object *eo_proxy, Evas_Object *eo_src)
220 Evas_Image_Data *o = efl_data_scope_get(eo_proxy, EFL_CANVAS_IMAGE_INTERNAL_CLASS); 220 Evas_Image_Data *o = efl_data_scope_get(eo_proxy, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
221 221
222 if (o->legacy_type) 222 if (o->legacy_type)
223 efl_file_set(eo_proxy, NULL, NULL); 223 efl_file_simple_load(eo_proxy, NULL, NULL);
224 224
225 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, proxy->proxy, Evas_Object_Proxy_Data, proxy_write) 225 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, proxy->proxy, Evas_Object_Proxy_Data, proxy_write)
226 proxy_write->is_proxy = EINA_TRUE; 226 proxy_write->is_proxy = EINA_TRUE;
@@ -229,7 +229,7 @@ _evas_image_proxy_set(Evas_Object *eo_proxy, Evas_Object *eo_src)
229 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write) 229 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
230 state_write->source = eo_src; 230 state_write->source = eo_src;
231 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write); 231 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
232 o->load_error = EVAS_LOAD_ERROR_NONE; 232 o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE;;
233 o->proxyerror = 0; 233 o->proxyerror = 0;
234 234
235 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write) 235 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write)
diff --git a/src/lib/evas/canvas/efl_canvas_scene3d.c b/src/lib/evas/canvas/efl_canvas_scene3d.c
index 3dff897..513a68b 100644
--- a/src/lib/evas/canvas/efl_canvas_scene3d.c
+++ b/src/lib/evas/canvas/efl_canvas_scene3d.c
@@ -9,12 +9,14 @@ _efl_canvas_scene3d_scene3d_set(Eo *eo_obj, void *pd EINA_UNUSED, Evas_Canvas3D_
9 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 9 Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
10 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); 10 Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
11 Evas_Image_Load_Opts lo; 11 Evas_Image_Load_Opts lo;
12 int load_error;
12 13
13 if (o->cur->scene == scene) return; 14 if (o->cur->scene == scene) return;
14 15
15 evas_object_async_block(obj); 16 evas_object_async_block(obj);
16 _evas_image_init_set(NULL, NULL, eo_obj, obj, o, &lo); 17 _evas_image_init_set(NULL, NULL, eo_obj, obj, o, &lo);
17 o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &o->load_error, &lo); 18 o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &load_error, &lo);
19 o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error);
18 _evas_image_done_set(eo_obj, obj, o); 20 _evas_image_done_set(eo_obj, obj, o);
19 21
20 if (scene) _evas_image_3d_set(eo_obj, scene); 22 if (scene) _evas_image_3d_set(eo_obj, scene);
diff --git a/src/lib/evas/canvas/efl_canvas_text.eo b/src/lib/evas/canvas/efl_canvas_text.eo
index 359b3dc..ef53030 100644
--- a/src/lib/evas/canvas/efl_canvas_text.eo
+++ b/src/lib/evas/canvas/efl_canvas_text.eo
@@ -8,7 +8,6 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
8 Efl.Text_Annotate, Efl.Text_Markup, Efl.Text_Markup_Interactive, Efl.Ui.I18n 8 Efl.Text_Annotate, Efl.Text_Markup, Efl.Text_Markup_Interactive, Efl.Ui.I18n
9{ 9{
10 [[Efl canvas text class]] 10 [[Efl canvas text class]]
11 legacy_prefix: evas_object_textblock;
12 methods { 11 methods {
13 @property is_empty { 12 @property is_empty {
14 [[Whether the object is empty (no text) or not 13 [[Whether the object is empty (no text) or not
@@ -16,7 +15,6 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
16 @since 1.18 15 @since 1.18
17 ]] 16 ]]
18 get { 17 get {
19 legacy: null;
20 } 18 }
21 values { 19 values {
22 is_empty: bool; [[$true if empty, $false otherwise]] 20 is_empty: bool; [[$true if empty, $false otherwise]]
@@ -91,10 +89,8 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
91 @since 1.18 89 @since 1.18
92 ]] 90 ]]
93 set { 91 set {
94 legacy: null;
95 } 92 }
96 get { 93 get {
97 legacy: null;
98 } 94 }
99 keys { 95 keys {
100 key: string; [[The name to the style. $NULL is the default style]] 96 key: string; [[The name to the style. $NULL is the default style]]
@@ -160,7 +156,6 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
160 156
161 @since 1.18 157 @since 1.18
162 ]] 158 ]]
163 legacy: null;
164 return: mstring @owned; [[The text in the given range]] 159 return: mstring @owned; [[The text in the given range]]
165 params { 160 params {
166 @cref cur1: Efl.Text_Cursor_Cursor; [[Start of range]] 161 @cref cur1: Efl.Text_Cursor_Cursor; [[Start of range]]
@@ -175,7 +170,6 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
175 170
176 @since 1.19 171 @since 1.19
177 ]] 172 ]]
178 legacy: null;
179 params { 173 params {
180 @cref cur1: Efl.Text_Cursor_Cursor; [[Start of range]] 174 @cref cur1: Efl.Text_Cursor_Cursor; [[Start of range]]
181 @cref cur2: Efl.Text_Cursor_Cursor; [[End of range]] 175 @cref cur2: Efl.Text_Cursor_Cursor; [[End of range]]
@@ -193,7 +187,6 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
193 187
194 @since 1.19 188 @since 1.19
195 ]] 189 ]]
196 legacy: null;
197 params { 190 params {
198 @cref cur1: Efl.Text_Cursor_Cursor; [[Start of range]] 191 @cref cur1: Efl.Text_Cursor_Cursor; [[Start of range]]
199 @cref cur2: Efl.Text_Cursor_Cursor; [[End of range]] 192 @cref cur2: Efl.Text_Cursor_Cursor; [[End of range]]
@@ -207,7 +200,6 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
207 200
208 This removes all the text in given range [$start,$end]. 201 This removes all the text in given range [$start,$end].
209 ]] 202 ]]
210 legacy: null;
211 params { 203 params {
212 @in cur1: ptr(Efl.Text_Cursor_Cursor); [[Range start position]] 204 @in cur1: ptr(Efl.Text_Cursor_Cursor); [[Range start position]]
213 @in cur2: ptr(Efl.Text_Cursor_Cursor); [[Range end position]] 205 @in cur2: ptr(Efl.Text_Cursor_Cursor); [[Range end position]]
@@ -262,7 +254,6 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
262 254
263 @since 1.21 255 @since 1.21
264 ]] 256 ]]
265 legacy: null;
266 return: future<Eina.Rect> @owned; [[Future for layout result]] 257 return: future<Eina.Rect> @owned; [[Future for layout result]]
267 } 258 }
268 } 259 }
diff --git a/src/lib/evas/canvas/efl_canvas_text_eo.legacy.c b/src/lib/evas/canvas/efl_canvas_text_eo.legacy.c
new file mode 100644
index 0000000..326707b
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_text_eo.legacy.c
@@ -0,0 +1,66 @@
1
2EAPI Eina_Bool
3evas_object_textblock_visible_range_get(Efl_Canvas_Text *obj, Efl_Text_Cursor_Cursor *start, Efl_Text_Cursor_Cursor *end)
4{
5 return efl_canvas_text_visible_range_get(obj, start, end);
6}
7
8EAPI void
9evas_object_textblock_style_insets_get(const Efl_Canvas_Text *obj, int *l, int *r, int *t, int *b)
10{
11 efl_canvas_text_style_insets_get(obj, l, r, t, b);
12}
13
14EAPI void
15evas_object_textblock_bidi_delimiters_set(Efl_Canvas_Text *obj, const char *delim)
16{
17 efl_canvas_text_bidi_delimiters_set(obj, delim);
18}
19
20EAPI const char *
21evas_object_textblock_bidi_delimiters_get(const Efl_Canvas_Text *obj)
22{
23 return efl_canvas_text_bidi_delimiters_get(obj);
24}
25
26EAPI void
27evas_object_textblock_legacy_newline_set(Efl_Canvas_Text *obj, Eina_Bool mode)
28{
29 efl_canvas_text_legacy_newline_set(obj, mode);
30}
31
32EAPI Eina_Bool
33evas_object_textblock_legacy_newline_get(const Efl_Canvas_Text *obj)
34{
35 return efl_canvas_text_legacy_newline_get(obj);
36}
37
38EAPI void
39evas_object_textblock_size_formatted_get(const Efl_Canvas_Text *obj, int *w, int *h)
40{
41 efl_canvas_text_size_formatted_get(obj, w, h);
42}
43
44EAPI void
45evas_object_textblock_size_native_get(const Efl_Canvas_Text *obj, int *w, int *h)
46{
47 efl_canvas_text_size_native_get(obj, w, h);
48}
49
50EAPI Eina_Bool
51evas_object_textblock_obstacle_add(Efl_Canvas_Text *obj, Efl_Canvas_Object *eo_obs)
52{
53 return efl_canvas_text_obstacle_add(obj, eo_obs);
54}
55
56EAPI Eina_Bool
57evas_object_textblock_obstacle_del(Efl_Canvas_Text *obj, Efl_Canvas_Object *eo_obs)
58{
59 return efl_canvas_text_obstacle_del(obj, eo_obs);
60}
61
62EAPI void
63evas_object_textblock_obstacles_update(Efl_Canvas_Text *obj)
64{
65 efl_canvas_text_obstacles_update(obj);
66}
diff --git a/src/lib/evas/canvas/efl_canvas_text_eo.legacy.h b/src/lib/evas/canvas/efl_canvas_text_eo.legacy.h
new file mode 100644
index 0000000..900c6da
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_text_eo.legacy.h
@@ -0,0 +1,228 @@
1#ifndef _EFL_CANVAS_TEXT_EO_LEGACY_H_
2#define _EFL_CANVAS_TEXT_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_TEXT_EO_CLASS_TYPE
5#define _EFL_CANVAS_TEXT_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Text;
8
9#endif
10
11#ifndef _EFL_CANVAS_TEXT_EO_TYPES
12#define _EFL_CANVAS_TEXT_EO_TYPES
13
14/** EFL text style data structure
15 *
16 * @ingroup Efl_Canvas
17 */
18typedef struct _Efl_Canvas_Text_Style Efl_Canvas_Text_Style;
19
20
21#endif
22
23
24/**
25 * @brief Returns the currently visible range.
26 *
27 * The given @c start and @c end cursor act like out-variables here, as they
28 * are set to the positions of the start and the end of the visible range in
29 * the text, respectively.
30 *
31 * @param[in] obj The object.
32 * @param[in] start Range start position
33 * @param[in] end Range end position
34 *
35 * @return @c true on success, @c false otherwise
36 *
37 * @since 1.18
38 *
39 * @ingroup Evas_Object_Textblock_Group
40 */
41EAPI Eina_Bool evas_object_textblock_visible_range_get(Efl_Canvas_Text *obj, Efl_Text_Cursor_Cursor *start, Efl_Text_Cursor_Cursor *end);
42
43/**
44 * @brief Gets the left, right, top and bottom insets of the text.
45 *
46 * The inset is any applied padding on the text.
47 *
48 * @param[in] obj The object.
49 * @param[out] l Left padding
50 * @param[out] r Right padding
51 * @param[out] t Top padding
52 * @param[out] b Bottom padding
53 *
54 * @since 1.18
55 *
56 * @ingroup Evas_Object_Textblock_Group
57 */
58EAPI void evas_object_textblock_style_insets_get(const Efl_Canvas_Text *obj, int *l, int *r, int *t, int *b);
59
60/**
61 * @brief BiDi delimiters are used for in-paragraph separation of bidi
62 * segments. This is useful, for example, in the recipient fields of e-mail
63 * clients where bidi oddities can occur when mixing RTL and LTR.
64 *
65 * @param[in] obj The object.
66 * @param[in] delim A null terminated string of delimiters, e.g ",|" or @c null
67 * if empty
68 *
69 * @since 1.18
70 *
71 * @ingroup Evas_Object_Textblock_Group
72 */
73EAPI void evas_object_textblock_bidi_delimiters_set(Efl_Canvas_Text *obj, const char *delim);
74
75/**
76 * @brief BiDi delimiters are used for in-paragraph separation of bidi
77 * segments. This is useful, for example, in the recipient fields of e-mail
78 * clients where bidi oddities can occur when mixing RTL and LTR.
79 *
80 * @param[in] obj The object.
81 *
82 * @return A null terminated string of delimiters, e.g ",|" or @c null if empty
83 *
84 * @since 1.18
85 *
86 * @ingroup Evas_Object_Textblock_Group
87 */
88EAPI const char *evas_object_textblock_bidi_delimiters_get(const Efl_Canvas_Text *obj);
89
90/**
91 * @brief When @c true, newline character will behave as a paragraph separator.
92 *
93 * @param[in] obj The object.
94 * @param[in] mode @c true for legacy mode, @c false otherwise
95 *
96 * @since 1.18
97 *
98 * @ingroup Evas_Object_Textblock_Group
99 */
100EAPI void evas_object_textblock_legacy_newline_set(Efl_Canvas_Text *obj, Eina_Bool mode);
101
102/**
103 * @brief When @c true, newline character will behave as a paragraph separator.
104 *
105 * @param[in] obj The object.
106 *
107 * @return @c true for legacy mode, @c false otherwise
108 *
109 * @since 1.18
110 *
111 * @ingroup Evas_Object_Textblock_Group
112 */
113EAPI Eina_Bool evas_object_textblock_legacy_newline_get(const Efl_Canvas_Text *obj);
114
115
116
117/**
118 * @brief The formatted width and height.
119 *
120 * This calculates the actual size after restricting the textblock to the
121 * current size of the object.
122 *
123 * The main difference between this and
124 * @ref evas_object_textblock_size_native_get is that the "native" function
125 * does not wrapping into account it just calculates the real width of the
126 * object if it was placed on an infinite canvas, while this function gives the
127 * size after wrapping according to the size restrictions of the object.
128 *
129 * For example for a textblock containing the text: "You shall not pass!" with
130 * no margins or padding and assuming a monospace font and a size of 7x10 char
131 * widths (for simplicity) has a native size of 19x1 and a formatted size of
132 * 5x4.
133 *
134 * @param[in] obj The object.
135 * @param[out] w The width of the object.
136 * @param[out] h The height of the object.
137 *
138 * @since 1.18
139 *
140 * @ingroup Evas_Object_Textblock_Group
141 */
142EAPI void evas_object_textblock_size_formatted_get(const Efl_Canvas_Text *obj, int *w, int *h);
143
144/**
145 * @brief The native width and height.
146 *
147 * This calculates the actual size without taking account the current size of
148 * the object.
149 *
150 * The main difference between this and
151 * @ref evas_object_textblock_size_formatted_get is that the "native" function
152 * does not take wrapping into account it just calculates the real width of the
153 * object if it was placed on an infinite canvas, while the "formatted"
154 * function gives the size after wrapping text according to the size
155 * restrictions of the object.
156 *
157 * For example for a textblock containing the text: "You shall not pass!" with
158 * no margins or padding and assuming a monospace font and a size of 7x10 char
159 * widths (for simplicity) has a native size of 19x1 and a formatted size of
160 * 5x4.
161 *
162 * @param[in] obj The object.
163 * @param[out] w The width returned.
164 * @param[out] h The height returned.
165 *
166 * @since 1.18
167 *
168 * @ingroup Evas_Object_Textblock_Group
169 */
170EAPI void evas_object_textblock_size_native_get(const Efl_Canvas_Text *obj, int *w, int *h);
171
172
173
174
175
176/**
177 * @brief Add obstacle evas object @c eo_obs to be observed during layout of
178 * text.
179 *
180 * The textblock does the layout of the text according to the position of the
181 * obstacle.
182 *
183 * @param[in] obj The object.
184 * @param[in] eo_obs Obstacle object
185 *
186 * @return @c true on success, @c false otherwise.
187 *
188 * @since 1.18
189 *
190 * @ingroup Evas_Object_Textblock_Group
191 */
192EAPI Eina_Bool evas_object_textblock_obstacle_add(Efl_Canvas_Text *obj, Efl_Canvas_Object *eo_obs);
193
194/**
195 * @brief Removes @c eo_obs from observation during text layout.
196 *
197 * @param[in] obj The object.
198 * @param[in] eo_obs Obstacle object
199 *
200 * @return @c true on success, @c false otherwise.
201 *
202 * @since 1.18
203 *
204 * @ingroup Evas_Object_Textblock_Group
205 */
206EAPI Eina_Bool evas_object_textblock_obstacle_del(Efl_Canvas_Text *obj, Efl_Canvas_Object *eo_obs);
207
208/**
209 * @brief Triggers for relayout due to obstacles' state change.
210 *
211 * The obstacles alone don't affect the layout, until this is called. Use this
212 * after doing changes (moving, positioning etc.) in the obstacles that you
213 * would like to be considered in the layout.
214 *
215 * For example: if you have just repositioned the obstacles to differrent
216 * coordinates relative to the textblock, you need to call this so it will
217 * consider this new state and will relayout the text.
218 *
219 * @param[in] obj The object.
220 *
221 * @since 1.18
222 *
223 * @ingroup Evas_Object_Textblock_Group
224 */
225EAPI void evas_object_textblock_obstacles_update(Efl_Canvas_Text *obj);
226
227
228#endif
diff --git a/src/lib/evas/canvas/efl_canvas_vg_container.c b/src/lib/evas/canvas/efl_canvas_vg_container.c
index f22ff1a..699ea8d 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_container.c
+++ b/src/lib/evas/canvas/efl_canvas_vg_container.c
@@ -408,3 +408,4 @@ evas_vg_container_add(Efl_VG *parent)
408} 408}
409 409
410#include "efl_canvas_vg_container.eo.c" 410#include "efl_canvas_vg_container.eo.c"
411#include "efl_canvas_vg_container_eo.legacy.c"
diff --git a/src/lib/evas/canvas/efl_canvas_vg_container.eo b/src/lib/evas/canvas/efl_canvas_vg_container.eo
index a5968d6..43317b9 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_container.eo
+++ b/src/lib/evas/canvas/efl_canvas_vg_container.eo
@@ -1,7 +1,6 @@
1class @beta Efl.Canvas.Vg.Container extends Efl.Canvas.Vg.Node 1class @beta Efl.Canvas.Vg.Container extends Efl.Canvas.Vg.Node
2{ 2{
3 [[Efl vector graphics container class]] 3 [[Efl vector graphics container class]]
4 legacy_prefix: evas_vg_container;
5 methods { 4 methods {
6 child_get { 5 child_get {
7 [[Get child of container]] 6 [[Get child of container]]
diff --git a/src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.c b/src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.c
new file mode 100644
index 0000000..a31fc33
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.c
@@ -0,0 +1,12 @@
1
2EAPI Efl_Canvas_Vg_Node *
3evas_vg_container_child_get(Efl_Canvas_Vg_Container *obj, const char *name)
4{
5 return efl_canvas_vg_container_child_get(obj, name);
6}
7
8EAPI Eina_Iterator *
9evas_vg_container_children_get(Efl_Canvas_Vg_Container *obj)
10{
11 return efl_canvas_vg_container_children_get(obj);
12}
diff --git a/src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.h b/src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.h
new file mode 100644
index 0000000..691a93b
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_vg_container_eo.legacy.h
@@ -0,0 +1,40 @@
1#ifndef _EFL_CANVAS_VG_CONTAINER_EO_LEGACY_H_
2#define _EFL_CANVAS_VG_CONTAINER_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_VG_CONTAINER_EO_CLASS_TYPE
5#define _EFL_CANVAS_VG_CONTAINER_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Vg_Container;
8
9#endif
10
11#ifndef _EFL_CANVAS_VG_CONTAINER_EO_TYPES
12#define _EFL_CANVAS_VG_CONTAINER_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Get child of container
19 *
20 * @param[in] obj The object.
21 * @param[in] name Child node name
22 *
23 * @return Child object
24 *
25 * @ingroup Evas_Vg_Container_Group
26 */
27EAPI Efl_Canvas_Vg_Node *evas_vg_container_child_get(Efl_Canvas_Vg_Container *obj, const char *name);
28
29/**
30 * @brief Get all children of container
31 *
32 * @param[in] obj The object.
33 *
34 * @return Iterator to children
35 *
36 * @ingroup Evas_Vg_Container_Group
37 */
38EAPI Eina_Iterator *evas_vg_container_children_get(Efl_Canvas_Vg_Container *obj) EINA_WARN_UNUSED_RESULT;
39
40#endif
diff --git a/src/lib/evas/canvas/efl_canvas_vg_gradient.eo b/src/lib/evas/canvas/efl_canvas_vg_gradient.eo
index ad059a1..08731dc 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_gradient.eo
+++ b/src/lib/evas/canvas/efl_canvas_vg_gradient.eo
@@ -1,7 +1,6 @@
1abstract @beta Efl.Canvas.Vg.Gradient extends Efl.Canvas.Vg.Node implements Efl.Gfx.Gradient 1abstract @beta Efl.Canvas.Vg.Gradient extends Efl.Canvas.Vg.Node implements Efl.Gfx.Gradient
2{ 2{
3 [[Efl vectopr graphics gradient abstract class]] 3 [[Efl vectopr graphics gradient abstract class]]
4 legacy_prefix: evas_vg_gradient;
5 implements { 4 implements {
6 Efl.Gfx.Gradient.stop { get; set; } 5 Efl.Gfx.Gradient.stop { get; set; }
7 Efl.Gfx.Gradient.spread { get; set; } 6 Efl.Gfx.Gradient.spread { get; set; }
diff --git a/src/lib/evas/canvas/efl_canvas_vg_gradient_linear.eo b/src/lib/evas/canvas/efl_canvas_vg_gradient_linear.eo
index a6e24e6..21d3be7 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_gradient_linear.eo
+++ b/src/lib/evas/canvas/efl_canvas_vg_gradient_linear.eo
@@ -1,7 +1,6 @@
1class @beta Efl.Canvas.Vg.Gradient_Linear extends Efl.Canvas.Vg.Gradient implements Efl.Gfx.Gradient_Linear 1class @beta Efl.Canvas.Vg.Gradient_Linear extends Efl.Canvas.Vg.Gradient implements Efl.Gfx.Gradient_Linear
2{ 2{
3 [[Efl vector graphics gradient linear class]] 3 [[Efl vector graphics gradient linear class]]
4 legacy_prefix: evas_vg_gradient_linear;
5 implements { 4 implements {
6 Efl.Gfx.Gradient_Linear.start { get; set; } 5 Efl.Gfx.Gradient_Linear.start { get; set; }
7 Efl.Gfx.Gradient_Linear.end { get; set; } 6 Efl.Gfx.Gradient_Linear.end { get; set; }
diff --git a/src/lib/evas/canvas/efl_canvas_vg_gradient_radial.eo b/src/lib/evas/canvas/efl_canvas_vg_gradient_radial.eo
index c321c44..3119d63 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_gradient_radial.eo
+++ b/src/lib/evas/canvas/efl_canvas_vg_gradient_radial.eo
@@ -1,7 +1,6 @@
1class @beta Efl.Canvas.Vg.Gradient_Radial extends Efl.Canvas.Vg.Gradient implements Efl.Gfx.Gradient_Radial 1class @beta Efl.Canvas.Vg.Gradient_Radial extends Efl.Canvas.Vg.Gradient implements Efl.Gfx.Gradient_Radial
2{ 2{
3 [[Efl vector graphics gradient radial class]] 3 [[Efl vector graphics gradient radial class]]
4 legacy_prefix: evas_vg_gradient_radial;
5 implements { 4 implements {
6 Efl.Gfx.Gradient_Radial.center { get; set; } 5 Efl.Gfx.Gradient_Radial.center { get; set; }
7 Efl.Gfx.Gradient_Radial.radius { get; set; } 6 Efl.Gfx.Gradient_Radial.radius { get; set; }
diff --git a/src/lib/evas/canvas/efl_canvas_vg_node.c b/src/lib/evas/canvas/efl_canvas_vg_node.c
index 2d83a4a..77e4eaf 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_node.c
+++ b/src/lib/evas/canvas/efl_canvas_vg_node.c
@@ -843,3 +843,4 @@ evas_vg_node_lower(Eo *obj)
843} 843}
844 844
845#include "efl_canvas_vg_node.eo.c" 845#include "efl_canvas_vg_node.eo.c"
846#include "efl_canvas_vg_node_eo.legacy.c"
diff --git a/src/lib/evas/canvas/efl_canvas_vg_node.eo b/src/lib/evas/canvas/efl_canvas_vg_node.eo
index c3fde3e..27be500 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_node.eo
+++ b/src/lib/evas/canvas/efl_canvas_vg_node.eo
@@ -3,8 +3,6 @@ import eina_types;
3abstract @beta Efl.Canvas.Vg.Node extends Efl.Object implements Efl.Gfx.Entity, Efl.Gfx.Color, Efl.Gfx.Stack, Efl.Duplicate, Efl.Gfx.Path 3abstract @beta Efl.Canvas.Vg.Node extends Efl.Object implements Efl.Gfx.Entity, Efl.Gfx.Color, Efl.Gfx.Stack, Efl.Duplicate, Efl.Gfx.Path
4{ 4{
5 [[Efl vector graphics abstract class]] 5 [[Efl vector graphics abstract class]]
6 eo_prefix: efl_canvas_vg_node;
7 legacy_prefix: evas_vg_node;
8 methods { 6 methods {
9 @property transformation { 7 @property transformation {
10 set { 8 set {
diff --git a/src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.c b/src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.c
new file mode 100644
index 0000000..eda7616
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.c
@@ -0,0 +1,30 @@
1
2EAPI void
3evas_vg_node_transformation_set(Efl_Canvas_Vg_Node *obj, const Eina_Matrix3 *m)
4{
5 efl_canvas_vg_node_transformation_set(obj, m);
6}
7
8EAPI const Eina_Matrix3 *
9evas_vg_node_transformation_get(const Efl_Canvas_Vg_Node *obj)
10{
11 return efl_canvas_vg_node_transformation_get(obj);
12}
13
14EAPI void
15evas_vg_node_origin_set(Efl_Canvas_Vg_Node *obj, double x, double y)
16{
17 efl_canvas_vg_node_origin_set(obj, x, y);
18}
19
20EAPI void
21evas_vg_node_origin_get(const Efl_Canvas_Vg_Node *obj, double *x, double *y)
22{
23 efl_canvas_vg_node_origin_get(obj, x, y);
24}
25
26EAPI void
27evas_vg_node_mask_set(Efl_Canvas_Vg_Node *obj, Efl_Canvas_Vg_Node *mask, int op)
28{
29 efl_canvas_vg_node_mask_set(obj, mask, op);
30}
diff --git a/src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.h b/src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.h
new file mode 100644
index 0000000..ee3b407
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_vg_node_eo.legacy.h
@@ -0,0 +1,83 @@
1#ifndef _EFL_CANVAS_VG_NODE_EO_LEGACY_H_
2#define _EFL_CANVAS_VG_NODE_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_VG_NODE_EO_CLASS_TYPE
5#define _EFL_CANVAS_VG_NODE_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Vg_Node;
8
9#endif
10
11#ifndef _EFL_CANVAS_VG_NODE_EO_TYPES
12#define _EFL_CANVAS_VG_NODE_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Sets the transformation matrix to be used for this node object.
19 *
20 * @note Pass @c null to cancel the applied transformation.
21 *
22 * @param[in] obj The object.
23 * @param[in] m Transformation matrix.
24 *
25 * @since 1.14
26 *
27 * @ingroup Evas_Vg_Node_Group
28 */
29EAPI void evas_vg_node_transformation_set(Efl_Canvas_Vg_Node *obj, const Eina_Matrix3 *m);
30
31/**
32 * @brief Gets the transformation matrix used for this node object.
33 *
34 * @param[in] obj The object.
35 *
36 * @return Transformation matrix.
37 *
38 * @since 1.14
39 *
40 * @ingroup Evas_Vg_Node_Group
41 */
42EAPI const Eina_Matrix3 *evas_vg_node_transformation_get(const Efl_Canvas_Vg_Node *obj);
43
44/**
45 * @brief Sets the origin position of the node object.
46 *
47 * This origin position affects node transformation.
48 *
49 * @param[in] obj The object.
50 * @param[in] x @c origin x position.
51 * @param[in] y @c origin y position.
52 *
53 * @since 1.14
54 *
55 * @ingroup Evas_Vg_Node_Group
56 */
57EAPI void evas_vg_node_origin_set(Efl_Canvas_Vg_Node *obj, double x, double y);
58
59/**
60 * @brief Gets the origin position of the node object.
61 *
62 * @param[in] obj The object.
63 * @param[out] x @c origin x position.
64 * @param[out] y @c origin y position.
65 *
66 * @since 1.14
67 *
68 * @ingroup Evas_Vg_Node_Group
69 */
70EAPI void evas_vg_node_origin_get(const Efl_Canvas_Vg_Node *obj, double *x, double *y);
71
72/**
73 * @brief Set Mask Node to this renderer
74 *
75 * @param[in] obj The object.
76 * @param[in] mask Mask object
77 * @param[in] op Masking Option. Reserved
78 *
79 * @ingroup Evas_Vg_Node_Group
80 */
81EAPI void evas_vg_node_mask_set(Efl_Canvas_Vg_Node *obj, Efl_Canvas_Vg_Node *mask, int op);
82
83#endif
diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.c b/src/lib/evas/canvas/efl_canvas_vg_object.c
index c6832b3..d97a4a6 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_object.c
+++ b/src/lib/evas/canvas/efl_canvas_vg_object.c
@@ -244,154 +244,52 @@ _efl_canvas_vg_object_viewbox_align_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg
244 if (align_y) *align_y = pd->align_y; 244 if (align_y) *align_y = pd->align_y;
245} 245}
246 246
247static Eina_Bool 247EOLIAN static Eina_Error
248_vg_file_mmap_set(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd, const Eina_File *file, const char *key, Eina_Bool mmap) 248_efl_canvas_vg_object_efl_file_load(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
249{ 249{
250 Eina_Error err;
251 if (efl_file_loaded_get(eo_obj)) return 0;
252
253 err = efl_file_load(efl_super(eo_obj, MY_CLASS));
254 if (err) return err;
255
256 const Eina_File *file = efl_file_mmap_get(eo_obj);
257 const char *key = efl_file_key_get(eo_obj);
250 Vg_Cache_Entry *old_entry; 258 Vg_Cache_Entry *old_entry;
251 Evas_Object_Protected_Data *obj; 259 Evas_Object_Protected_Data *obj;
252 260
253 obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); 261 obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
254
255 old_entry = pd->vg_entry; 262 old_entry = pd->vg_entry;
256 263 pd->vg_entry = evas_cache_vg_entry_create(file, key,
257 if (file) 264 obj->cur->geometry.w,
258 pd->vg_entry = evas_cache_vg_entry_create(file, key, 265 obj->cur->geometry.h,
259 obj->cur->geometry.w, 266 EINA_TRUE);
260 obj->cur->geometry.h,
261 mmap);
262 else
263 pd->vg_entry = NULL;
264
265 evas_object_change(eo_obj, obj); 267 evas_object_change(eo_obj, obj);
266 evas_cache_vg_entry_del(old_entry); 268 evas_cache_vg_entry_del(old_entry);
267 269
268 return EINA_TRUE; 270 return 0;
269}
270
271EOLIAN static void
272_efl_canvas_vg_object_efl_file_mmap_get(const Eo *eo_obj EINA_UNUSED,
273 Efl_Canvas_Vg_Object_Data *pd,
274 const Eina_File **file, const char **key)
275{
276 if (file) *file = NULL;
277 if (key) *key = NULL;
278
279 if (pd->vg_entry)
280 {
281 if (file) *file = pd->vg_entry->file;
282 if (key) *key = pd->vg_entry->key;
283 }
284}
285
286EOLIAN static Eina_Bool
287_efl_canvas_vg_object_efl_file_mmap_set(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd, const Eina_File *file, const char *key)
288{
289 Eina_File *pf = pd->file;
290 Eina_Bool ret;
291
292 if (!file)
293 {
294 Evas_Object_Protected_Data *obj;
295 obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
296 evas_cache_vg_entry_del(pd->vg_entry);
297 evas_object_change(eo_obj, obj);
298 eina_stringshare_del(pd->key);
299 pd->vg_entry = NULL;
300 pd->file = NULL;
301 pd->key = NULL;
302 return EINA_TRUE;
303 }
304 if (pd->file == file)
305 {
306 if (!pd->key && !key) return EINA_FALSE;
307 else if (pd->key && key)
308 {
309 if (!strcmp(pd->key, key)) return EINA_FALSE;
310 }
311 pf = NULL;
312 }
313 if (pd->file != file)
314 pd->file = eina_file_dup(file);
315 ret = _vg_file_mmap_set(eo_obj, pd, file, key, EINA_TRUE);
316
317 //Close previous file after deleting ex-cache entry.
318 if (pf) eina_file_close(pf);
319
320 return ret;
321}
322
323EOLIAN static Eina_Bool
324_efl_canvas_vg_object_efl_file_file_set(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd, const char *file, const char *key)
325{
326 Eina_File *pf = pd->file;
327 Eina_Bool ret;
328
329 if (!file)
330 {
331 Evas_Object_Protected_Data *obj;
332 obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
333 evas_cache_vg_entry_del(pd->vg_entry);
334 evas_object_change(eo_obj, obj);
335 eina_stringshare_del(pd->key);
336 pd->vg_entry = NULL;
337 pd->file = NULL;
338 pd->key = NULL;
339 return EINA_TRUE;
340 }
341 if (!pd->file)
342 {
343 pd->file = eina_file_open(file, EINA_FALSE);
344 if (!pd->file) return EINA_FALSE;
345 }
346 else
347 {
348 const char *filename = eina_file_filename_get(pd->file);
349 if (filename)
350 {
351 if (strcmp(filename, file))
352 pd->file = eina_file_open(file, EINA_FALSE);
353 else
354 {
355 if (!pd->key && !key) return EINA_FALSE;
356 else if (pd->key && key)
357 {
358 if (!strcmp(pd->key, key)) return EINA_FALSE;
359 }
360 pf = NULL;
361 }
362 }
363 }
364
365 ret = _vg_file_mmap_set(eo_obj, pd, pd->file, key, EINA_FALSE);
366
367 //Close previous file after deleting ex-cache entry.
368 if (pf) eina_file_close(pf);
369
370 return ret;
371} 271}
372 272
373EOLIAN static void 273EOLIAN static void
374_efl_canvas_vg_object_efl_file_file_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd, const char **file, const char **key) 274_efl_canvas_vg_object_efl_file_unload(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
375{ 275{
376 if (file) *file = NULL; 276 Evas_Object_Protected_Data *obj;
377 if (key) *key = NULL; 277 obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
378 278 evas_cache_vg_entry_del(pd->vg_entry);
379 if (pd->vg_entry) 279 evas_object_change(eo_obj, obj);
380 { 280 eina_stringshare_del(pd->key);
381 if (file) *file = eina_file_filename_get(pd->vg_entry->file); 281 pd->vg_entry = NULL;
382 if (key) *key = pd->vg_entry->key;
383 }
384} 282}
385 283
386EOLIAN static Eina_Bool 284EOLIAN static Eina_Bool
387_efl_canvas_vg_object_efl_file_save_save(const Eo *obj, Efl_Canvas_Vg_Object_Data *pd, const char *file, const char *key, const char *flags) 285_efl_canvas_vg_object_efl_file_save_save(const Eo *obj, Efl_Canvas_Vg_Object_Data *pd, const char *file, const char *key, const Efl_File_Save_Info *info)
388{ 286{
389 if (pd->vg_entry) 287 if (pd->vg_entry)
390 return evas_cache_vg_entry_file_save(pd->vg_entry, file, key, flags); 288 return evas_cache_vg_entry_file_save(pd->vg_entry, file, key, info);
391 289
392 Evas_Coord w, h; 290 Evas_Coord w, h;
393 evas_object_geometry_get(obj, NULL, NULL, &w, &h); 291 evas_object_geometry_get(obj, NULL, NULL, &w, &h);
394 return evas_cache_vg_file_save(pd->root, w, h, file, key, flags); 292 return evas_cache_vg_file_save(pd->root, w, h, file, key, info);
395} 293}
396 294
397static void 295static void
@@ -420,18 +318,6 @@ _efl_canvas_vg_object_efl_object_destructor(Eo *eo_obj, Efl_Canvas_Vg_Object_Dat
420 pd->user_entry = NULL; 318 pd->user_entry = NULL;
421 evas_cache_vg_entry_del(pd->vg_entry); 319 evas_cache_vg_entry_del(pd->vg_entry);
422 320
423 //Close files after deleting entry.
424 if (pd->file)
425 {
426 eina_file_close(pd->file);
427 pd->file = NULL;
428 }
429 if (pd->key)
430 {
431 eina_stringshare_del(pd->key);
432 pd->key = NULL;
433 }
434
435 efl_destructor(efl_super(eo_obj, MY_CLASS)); 321 efl_destructor(efl_super(eo_obj, MY_CLASS));
436} 322}
437 323
@@ -1029,13 +915,13 @@ evas_object_vg_animated_frame_set(Evas_Object *obj, int frame_index)
1029EAPI Eina_Bool 915EAPI Eina_Bool
1030evas_object_vg_mmap_set(Evas_Object *obj, const Eina_File *f, const char *key) 916evas_object_vg_mmap_set(Evas_Object *obj, const Eina_File *f, const char *key)
1031{ 917{
1032 return efl_file_mmap_set(obj, f, key); 918 return efl_file_simple_mmap_load(obj, f, key);
1033} 919}
1034 920
1035EAPI Eina_Bool 921EAPI Eina_Bool
1036evas_object_vg_file_set(Evas_Object *obj, const char *file, const char *key) 922evas_object_vg_file_set(Evas_Object *obj, const char *file, const char *key)
1037{ 923{
1038 return efl_file_set(obj, file, key); 924 return efl_file_simple_load(obj, file, key);
1039} 925}
1040 926
1041#include "efl_canvas_vg_object.eo.c" 927#include "efl_canvas_vg_object.eo.c"
diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.eo b/src/lib/evas/canvas/efl_canvas_vg_object.eo
index ee3f70f..e79e0a2 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_object.eo
+++ b/src/lib/evas/canvas/efl_canvas_vg_object.eo
@@ -21,7 +21,10 @@ enum Efl.Canvas.Vg.Fill_Mode
21 dimension of the viewport.]] 21 dimension of the viewport.]]
22} 22}
23 23
24class @beta Efl.Canvas.Vg.Object extends Efl.Canvas.Object implements Efl.File, Efl.File_Save, Efl.Gfx.Frame_Controller 24class @beta Efl.Canvas.Vg.Object extends Efl.Canvas.Object implements Efl.File, Efl.File_Save,
25 //TIZEN_ONLY(20180831): evas json: new feature for lottie - #4
26 Efl.Gfx.Frame_Controller
27 //
25{ 28{
26 [[Efl vector graphics class]] 29 [[Efl vector graphics class]]
27 legacy_prefix: evas_object_vg; 30 legacy_prefix: evas_object_vg;
@@ -82,8 +85,8 @@ class @beta Efl.Canvas.Vg.Object extends Efl.Canvas.Object implements Efl.File,
82 Efl.Object.constructor; 85 Efl.Object.constructor;
83 Efl.Object.finalize; 86 Efl.Object.finalize;
84 Efl.Object.destructor; 87 Efl.Object.destructor;
85 Efl.File.mmap { get; set; } 88 Efl.File.load;
86 Efl.File.file { get; set; } 89 Efl.File.unload;
87 Efl.File_Save.save; 90 Efl.File_Save.save;
88 Efl.Gfx.Frame_Controller.animated { get; } 91 Efl.Gfx.Frame_Controller.animated { get; }
89 Efl.Gfx.Frame_Controller.frame { get; set; } 92 Efl.Gfx.Frame_Controller.frame { get; set; }
diff --git a/src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.c b/src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.c
new file mode 100644
index 0000000..095fb3a
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.c
@@ -0,0 +1,48 @@
1
2EAPI void
3evas_object_vg_fill_mode_set(Efl_Canvas_Vg_Object *obj, Efl_Canvas_Vg_Fill_Mode fill_mode)
4{
5 efl_canvas_vg_object_fill_mode_set(obj, fill_mode);
6}
7
8EAPI Efl_Canvas_Vg_Fill_Mode
9evas_object_vg_fill_mode_get(const Efl_Canvas_Vg_Object *obj)
10{
11 return efl_canvas_vg_object_fill_mode_get(obj);
12}
13
14EAPI void
15evas_object_vg_viewbox_set(Efl_Canvas_Vg_Object *obj, Eina_Rect viewbox)
16{
17 efl_canvas_vg_object_viewbox_set(obj, viewbox);
18}
19
20EAPI Eina_Rect
21evas_object_vg_viewbox_get(const Efl_Canvas_Vg_Object *obj)
22{
23 return efl_canvas_vg_object_viewbox_get(obj);
24}
25
26EAPI void
27evas_object_vg_viewbox_align_set(Efl_Canvas_Vg_Object *obj, double align_x, double align_y)
28{
29 efl_canvas_vg_object_viewbox_align_set(obj, align_x, align_y);
30}
31
32EAPI void
33evas_object_vg_viewbox_align_get(const Efl_Canvas_Vg_Object *obj, double *align_x, double *align_y)
34{
35 efl_canvas_vg_object_viewbox_align_get(obj, align_x, align_y);
36}
37
38EAPI void
39evas_object_vg_root_node_set(Efl_Canvas_Vg_Object *obj, Efl_Canvas_Vg_Node *root)
40{
41 efl_canvas_vg_object_root_node_set(obj, root);
42}
43
44EAPI Efl_Canvas_Vg_Node *
45evas_object_vg_root_node_get(const Efl_Canvas_Vg_Object *obj)
46{
47 return efl_canvas_vg_object_root_node_get(obj);
48}
diff --git a/src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.h b/src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.h
new file mode 100644
index 0000000..2b7e96b
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_vg_object_eo.legacy.h
@@ -0,0 +1,135 @@
1#ifndef _EFL_CANVAS_VG_OBJECT_EO_LEGACY_H_
2#define _EFL_CANVAS_VG_OBJECT_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_VG_OBJECT_EO_CLASS_TYPE
5#define _EFL_CANVAS_VG_OBJECT_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Vg_Object;
8
9#endif
10
11#ifndef _EFL_CANVAS_VG_OBJECT_EO_TYPES
12#define _EFL_CANVAS_VG_OBJECT_EO_TYPES
13
14/** Enumeration that defines how viewbox will be filled int the vg canvs's
15 * viewport. default Fill_Mode is @c none
16 *
17 * @ingroup Efl_Canvas_Vg
18 */
19typedef enum
20{
21 EFL_CANVAS_VG_FILL_MODE_NONE = 0, /**< Don't scale the viewbox. Placed it
22 * inside viewport taking align property
23 * into account */
24 EFL_CANVAS_VG_FILL_MODE_STRETCH, /**< Scale the viewbox so that it matches the
25 * canvas viewport. Aaspect ratio might be
26 * changed. */
27 EFL_CANVAS_VG_FILL_MODE_MEET, /**< Scale the viewbox so that it fits inside
28 * canvas viewport while maintaining the aspect
29 * ratio. At least one of the dimensions of the
30 * viewbox should be equal to the corresponding
31 * dimension of the viewport. */
32 EFL_CANVAS_VG_FILL_MODE_SLICE /**< Scale the viewbox so that it covers the
33 * entire canvas viewport while maintaining the
34 * aspect ratio. At least one of the dimensions
35 * of the viewbox should be equal to the
36 * corresponding dimension of the viewport. */
37} Efl_Canvas_Vg_Fill_Mode;
38
39
40#endif
41
42/**
43 * @brief Control how the viewbox is mapped to the vg canvas's viewport.
44 *
45 * @param[in] obj The object.
46 * @param[in] fill_mode Fill mode type
47 *
48 * @ingroup Evas_Object_Vg_Group
49 */
50EAPI void evas_object_vg_fill_mode_set(Efl_Canvas_Vg_Object *obj, Efl_Canvas_Vg_Fill_Mode fill_mode);
51
52/**
53 * @brief Control how the viewbox is mapped to the vg canvas's viewport.
54 *
55 * @param[in] obj The object.
56 *
57 * @return Fill mode type
58 *
59 * @ingroup Evas_Object_Vg_Group
60 */
61EAPI Efl_Canvas_Vg_Fill_Mode evas_object_vg_fill_mode_get(const Efl_Canvas_Vg_Object *obj);
62
63/**
64 * @brief Sets the viewbox for the evas vg canvas. viewbox if set should be
65 * mapped to the canvas geometry when rendering the vg tree.
66 *
67 * @param[in] obj The object.
68 * @param[in] viewbox viewbox for the vg canvas
69 *
70 * @ingroup Evas_Object_Vg_Group
71 */
72EAPI void evas_object_vg_viewbox_set(Efl_Canvas_Vg_Object *obj, Eina_Rect viewbox);
73
74/**
75 * @brief Get the current viewbox from the evas_object_vg
76 *
77 * @param[in] obj The object.
78 *
79 * @return viewbox for the vg canvas
80 *
81 * @ingroup Evas_Object_Vg_Group
82 */
83EAPI Eina_Rect evas_object_vg_viewbox_get(const Efl_Canvas_Vg_Object *obj);
84
85/**
86 * @brief Control how the viewbox is positioned inside the viewport.
87 *
88 * @param[in] obj The object.
89 * @param[in] align_x Alignment in the horizontal axis (0 <= align_x <= 1).
90 * @param[in] align_y Alignment in the vertical axis (0 <= align_y <= 1).
91 *
92 * @ingroup Evas_Object_Vg_Group
93 */
94EAPI void evas_object_vg_viewbox_align_set(Efl_Canvas_Vg_Object *obj, double align_x, double align_y);
95
96/**
97 * @brief Control how the viewbox is positioned inside the viewport.
98 *
99 * @param[in] obj The object.
100 * @param[out] align_x Alignment in the horizontal axis (0 <= align_x <= 1).
101 * @param[out] align_y Alignment in the vertical axis (0 <= align_y <= 1).
102 *
103 * @ingroup Evas_Object_Vg_Group
104 */
105EAPI void evas_object_vg_viewbox_align_get(const Efl_Canvas_Vg_Object *obj, double *align_x, double *align_y);
106
107/**
108 * @brief Set the root node of the evas_object_vg.
109 *
110 * @note To manually create the shape object and show in the Vg object canvas
111 * you must create the hierarchy and set as root node.
112 *
113 * It takes the ownership of the root node.
114 *
115 * @param[in] obj The object.
116 * @param[in] root Root node of the VG canvas.
117 *
118 * @ingroup Evas_Object_Vg_Group
119 */
120EAPI void evas_object_vg_root_node_set(Efl_Canvas_Vg_Object *obj, Efl_Canvas_Vg_Node *root);
121
122/**
123 * @brief Get the root node of the evas_object_vg.
124 *
125 * @param[in] obj The object.
126 *
127 * @return Root node of the VG canvas.
128 *
129 * @since 1.14
130 *
131 * @ingroup Evas_Object_Vg_Group
132 */
133EAPI Efl_Canvas_Vg_Node *evas_object_vg_root_node_get(const Efl_Canvas_Vg_Object *obj);
134
135#endif
diff --git a/src/lib/evas/canvas/efl_canvas_vg_shape.c b/src/lib/evas/canvas/efl_canvas_vg_shape.c
index 417641a..ac398eb 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_shape.c
+++ b/src/lib/evas/canvas/efl_canvas_vg_shape.c
@@ -471,3 +471,4 @@ evas_vg_shape_add(Efl_Canvas_Vg_Node *parent)
471} 471}
472 472
473#include "efl_canvas_vg_shape.eo.c" 473#include "efl_canvas_vg_shape.eo.c"
474#include "efl_canvas_vg_shape_eo.legacy.c"
diff --git a/src/lib/evas/canvas/efl_canvas_vg_shape.eo b/src/lib/evas/canvas/efl_canvas_vg_shape.eo
index e832109..35991e6 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_shape.eo
+++ b/src/lib/evas/canvas/efl_canvas_vg_shape.eo
@@ -1,7 +1,6 @@
1class @beta Efl.Canvas.Vg.Shape extends Efl.Canvas.Vg.Node implements Efl.Gfx.Shape 1class @beta Efl.Canvas.Vg.Shape extends Efl.Canvas.Vg.Node implements Efl.Gfx.Shape
2{ 2{
3 [[Efl vector graphics shape class]] 3 [[Efl vector graphics shape class]]
4 legacy_prefix: evas_vg_shape;
5 methods { 4 methods {
6 @property fill { 5 @property fill {
7 [[Fill of the shape object]] 6 [[Fill of the shape object]]
diff --git a/src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.c b/src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.c
new file mode 100644
index 0000000..5630fe5
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.c
@@ -0,0 +1,36 @@
1
2EAPI void
3evas_vg_shape_fill_set(Efl_Canvas_Vg_Shape *obj, Efl_Canvas_Vg_Node *f)
4{
5 efl_canvas_vg_shape_fill_set(obj, f);
6}
7
8EAPI Efl_Canvas_Vg_Node *
9evas_vg_shape_fill_get(const Efl_Canvas_Vg_Shape *obj)
10{
11 return efl_canvas_vg_shape_fill_get(obj);
12}
13
14EAPI void
15evas_vg_shape_stroke_fill_set(Efl_Canvas_Vg_Shape *obj, Efl_Canvas_Vg_Node *f)
16{
17 efl_canvas_vg_shape_stroke_fill_set(obj, f);
18}
19
20EAPI Efl_Canvas_Vg_Node *
21evas_vg_shape_stroke_fill_get(const Efl_Canvas_Vg_Shape *obj)
22{
23 return efl_canvas_vg_shape_stroke_fill_get(obj);
24}
25
26EAPI void
27evas_vg_shape_stroke_marker_set(Efl_Canvas_Vg_Shape *obj, Efl_Canvas_Vg_Node *m)
28{
29 efl_canvas_vg_shape_stroke_marker_set(obj, m);
30}
31
32EAPI Efl_Canvas_Vg_Node *
33evas_vg_shape_stroke_marker_get(const Efl_Canvas_Vg_Shape *obj)
34{
35 return efl_canvas_vg_shape_stroke_marker_get(obj);
36}
diff --git a/src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.h b/src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.h
new file mode 100644
index 0000000..444acd2
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_vg_shape_eo.legacy.h
@@ -0,0 +1,80 @@
1#ifndef _EFL_CANVAS_VG_SHAPE_EO_LEGACY_H_
2#define _EFL_CANVAS_VG_SHAPE_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_VG_SHAPE_EO_CLASS_TYPE
5#define _EFL_CANVAS_VG_SHAPE_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Vg_Shape;
8
9#endif
10
11#ifndef _EFL_CANVAS_VG_SHAPE_EO_TYPES
12#define _EFL_CANVAS_VG_SHAPE_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Fill of the shape object
19 *
20 * @param[in] obj The object.
21 * @param[in] f Fill object
22 *
23 * @ingroup Evas_Vg_Shape_Group
24 */
25EAPI void evas_vg_shape_fill_set(Efl_Canvas_Vg_Shape *obj, Efl_Canvas_Vg_Node *f);
26
27/**
28 * @brief Fill of the shape object
29 *
30 * @param[in] obj The object.
31 *
32 * @return Fill object
33 *
34 * @ingroup Evas_Vg_Shape_Group
35 */
36EAPI Efl_Canvas_Vg_Node *evas_vg_shape_fill_get(const Efl_Canvas_Vg_Shape *obj);
37
38/**
39 * @brief Stroke fill of the shape object
40 *
41 * @param[in] obj The object.
42 * @param[in] f Stroke fill object
43 *
44 * @ingroup Evas_Vg_Shape_Group
45 */
46EAPI void evas_vg_shape_stroke_fill_set(Efl_Canvas_Vg_Shape *obj, Efl_Canvas_Vg_Node *f);
47
48/**
49 * @brief Stroke fill of the shape object
50 *
51 * @param[in] obj The object.
52 *
53 * @return Stroke fill object
54 *
55 * @ingroup Evas_Vg_Shape_Group
56 */
57EAPI Efl_Canvas_Vg_Node *evas_vg_shape_stroke_fill_get(const Efl_Canvas_Vg_Shape *obj);
58
59/**
60 * @brief Stroke marker of the shape object
61 *
62 * @param[in] obj The object.
63 * @param[in] m Stroke marker object
64 *
65 * @ingroup Evas_Vg_Shape_Group
66 */
67EAPI void evas_vg_shape_stroke_marker_set(Efl_Canvas_Vg_Shape *obj, Efl_Canvas_Vg_Node *m);
68
69/**
70 * @brief Stroke marker of the shape object
71 *
72 * @param[in] obj The object.
73 *
74 * @return Stroke marker object
75 *
76 * @ingroup Evas_Vg_Shape_Group
77 */
78EAPI Efl_Canvas_Vg_Node *evas_vg_shape_stroke_marker_get(const Efl_Canvas_Vg_Shape *obj);
79
80#endif
diff --git a/src/lib/evas/canvas/efl_input_event.c b/src/lib/evas/canvas/efl_input_event.c
index a617e50..3274b31 100644
--- a/src/lib/evas/canvas/efl_input_event.c
+++ b/src/lib/evas/canvas/efl_input_event.c
@@ -6,7 +6,7 @@
6 6
7#include <Evas.h> 7#include <Evas.h>
8#include <Evas_Internal.h> 8#include <Evas_Internal.h>
9#include "canvas/evas_canvas.eo.h" 9#include "canvas/evas_canvas_eo.h"
10 10
11#define EFL_INTERNAL_UNSTABLE 11#define EFL_INTERNAL_UNSTABLE
12#include "interfaces/efl_common_internal.h" 12#include "interfaces/efl_common_internal.h"
diff --git a/src/lib/evas/canvas/evas_box.eo b/src/lib/evas/canvas/evas_box.eo
deleted file mode 100644
index 427bd4b..0000000
--- a/src/lib/evas/canvas/evas_box.eo
+++ /dev/null
@@ -1,669 +0,0 @@
1type @extern Evas_Object_Box_Data: __undefined_type; [[Evas object box data type]] /* FIXME: Not implemented because annonymous structs are not supported */
2type @extern Evas_Object_Box_Option: __undefined_type; [[Evas object box option type]] /* FIXME: Not implemented because bitfields are not supported. */
3type @extern Evas_Object_Box_Layout: __undefined_type; [[Evas object box layout type]] /* FIXME: Function pointers are not supported */
4type @extern Eina_Free_Cb: __undefined_type; [[Eina free callback type]] /* FIXME: Function pointers are not supported */
5type @extern va_list: __undefined_type; [[va_list type]] /* FIXME: va_list is not supported */
6
7class Evas.Box extends Efl.Canvas.Group
8{
9 [[Evas box class]]
10 legacy_prefix: evas_object_box;
11 eo_prefix: evas_obj_box;
12 event_prefix: evas_box;
13 data: Evas_Object_Box_Data;
14 methods {
15 @property align {
16 set {
17 [[Set the alignment of the whole bounding box of contents, for a
18 given box object.
19
20 This will influence how a box object is to align its bounding box
21 of contents within its own area. The values must be in the range
22 $0.0 - $1.0, or undefined behavior is expected. For horizontal
23 alignment, $0.0 means to the left, with $1.0 meaning to the
24 right. For vertical alignment, $0.0 means to the top, with $1.0
25 meaning to the bottom.
26
27 Note: The default values for both alignments is $0.5.
28
29 See also @.align.get.]]
30 }
31 get {
32 [[Get the alignment of the whole bounding box of contents, for a
33 given box object.
34
35 See also @.align.set for more information.]]
36 }
37 values {
38 horizontal: double; [[The horizontal alignment, in pixels.]]
39 vertical: double; [[The vertical alignment, in pixels.]]
40 }
41 }
42 @property padding {
43 set {
44 [[Set the (space) padding between cells set for a given box object.
45
46 Note: The default values for both padding components is $0.
47
48 See also @.padding.get.]]
49 }
50 get {
51 [[Get the (space) padding between cells set for a given box object.
52
53 See also @.padding.set.]]
54 }
55 values {
56 horizontal: int; [[The horizontal padding, in pixels.]]
57 vertical: int; [[The vertical padding, in pixels.]]
58 }
59 }
60 @property layout {
61 set {
62 [[Set a new layouting function to a given box object
63
64 A box layout function affects how a box object displays child
65 elements within its area. The list of pre-defined box layouts
66 available in Evas are @.layout_horizontal, @.layout_vertical,
67 @.layout_homogeneous_horizontal, @.layout_homogeneous_vertical,
68 @.layout_homogeneous_max_size_horizontal, @.layout_homogeneous_max_size_vertical,
69 @.layout_flow_horizontal, @.layout_flow_vertical and @.layout_stack
70
71 Refer to each of their documentation texts for details on them.
72
73 Note: A box layouting function will be triggered by the
74 $'calculate' smart callback of the box's smart class.]]
75 }
76 values {
77 cb: Evas_Object_Box_Layout @nonull; [[The new layout function to set on $o.]]
78 data: const(void_ptr); [[Data pointer to be passed to $cb.]]
79 free_data: Eina_Free_Cb; [[Function to free $data, if need be.]]
80 }
81 }
82 layout_horizontal {
83 [[Layout function which sets the box o to a (basic) horizontal box
84
85 In this layout, the box object's overall behavior is controlled by
86 its padding/alignment properties, which are set by the
87 evas_object_box_{h,v}_{align,padding}_set family of
88 functions. The size hints of the elements in the box -- set by the
89 evas_object_size_hint_{align,padding,weight}_set functions
90 -- also control the way this function works.
91
92 Box's properties:
93 $align_h controls the horizontal alignment of the child objects
94 relative to the containing box. When set to $0.0, children are
95 aligned to the left. A value of $1.0 makes them aligned to the
96 right border. Values in between align them proportionally. Note
97 that if the size required by the children, which is given by their
98 widths and the $padding_h property of the box, is bigger than the
99 their container's width, the children will be displayed out of the
100 box's bounds. A negative value of $align_h makes the box to
101 justify its children. The padding between them, in this case, is
102 corrected so that the leftmost one touches the left border and the
103 rightmost one touches the right border (even if they must
104 overlap). The $align_v and $padding_v properties of the box
105 don't contribute to its behaviour when this layout is chosen.
106
107 Child element's properties:
108 $align_x does not influence the box's behavior. $padding_l
109 and $padding_r sum up to the container's horizontal padding
110 between elements. The child's $padding_t, $padding_b and
111 $align_y properties apply for padding/alignment relative to the
112 overall height of the box. Finally, there is the $weight_x
113 property, which, if set to a non-zero value, tells the container
114 that the child width is not pre-defined. If the container can't
115 accommodate all its children, it sets the widths of the ones
116 with weights to sizes as small as they can all fit into
117 it. If the size required by the children is less than the
118 available, the box increases its childrens' (which have weights)
119 widths as to fit the remaining space. The $weight_x property,
120 besides telling the element is resizable, gives a weight for the
121 resizing process. The parent box will try to distribute (or take
122 off) widths accordingly to the normalized list of weights: most
123 weighted children remain/get larger in this process than the least
124 ones. $weight_y does not influence the layout.
125
126 If one desires that, besides having weights, child elements must be
127 resized bounded to a minimum or maximum size, those size hints must
128 be set, by the evas_object_size_hint_{min,max}_set
129 functions.]]
130 params {
131 priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
132 data: void_ptr; [[Data pointer]]
133 }
134 }
135 layout_vertical {
136 [[Layout function which sets the box o to a (basic) vertical box
137
138 This function behaves analogously to
139 evas_object_box_layout_horizontal. The description of its
140 behaviour can be derived from that function's documentation.]]
141 params {
142 priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
143 data: void_ptr; [[Data pointer]]
144 }
145 }
146 layout_homogeneous_max_size_horizontal {
147 [[Layout function which sets the box o to a maximum size,
148 homogeneous horizontal box
149
150 In a maximum size, homogeneous horizontal box, besides having cells
151 of equal size reserved for the child objects, this size will
152 be defined by the size of the largest child in the box (in
153 width). The box's overall behavior is controlled by its properties,
154 which are set by the
155 evas_object_box_{h,v}_{align,padding}_set family of
156 functions. The size hints of the elements in the box -- set by the
157 evas_object_size_hint_{align,padding,weight}_set functions
158 -- also control the way this function works.
159
160 Box's properties:
161 $padding_h tells the box to draw empty spaces of that size, in
162 pixels, between the child objects' cells. $align_h controls the
163 horizontal alignment of the child objects, relative to the
164 containing box. When set to $0.0, children are aligned to the
165 left. A value of $1.0 lets them aligned to the right
166 border. Values in between align them proportionally. A negative
167 value of $align_h makes the box to justify its children
168 cells. The padding between them, in this case, is corrected so that
169 the leftmost one touches the left border and the rightmost one
170 touches the right border (even if they must overlap). The
171 $align_v and $padding_v properties of the box don't contribute to
172 its behaviour when this layout is chosen.
173
174 Child element's properties:
175 $padding_l and $padding_r sum up to the required width of the
176 child element. The $align_x property tells the relative position
177 of this overall child width in its allocated cell ($0.0 to
178 extreme left, $1.0 to extreme right). A value of $-1.0 to
179 $align_x makes the box try to resize this child element to the exact
180 width of its cell (respecting the minimum and maximum size hints on
181 the child's width and accounting for its horizontal padding
182 hints). The child's $padding_t, $padding_b and $align_y
183 properties apply for padding/alignment relative to the overall
184 height of the box. A value of $-1.0 to $align_y makes the box
185 try to resize this child element to the exact height of its parent
186 (respecting the max hint on the child's height).]]
187 params {
188 priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
189 data: void_ptr; [[Data pointer]]
190 }
191
192 }
193 internal_remove {
194 [[No description supplied by the EAPI.]]
195 return: Efl.Canvas.Object; [[New object with child removed]]
196 legacy: null;
197 params {
198 @in child: Efl.Canvas.Object; [[Child object to be removed]]
199 }
200 }
201 layout_flow_vertical {
202 [[Layout function which sets the box o to a flow vertical box.
203
204 This function behaves analogously to
205 evas_object_box_layout_flow_horizontal. The description of its
206 behaviour can be derived from that function's documentation.]]
207 params {
208 priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
209 data: void_ptr; [[Data pointer]]
210 }
211 }
212 internal_option_free {
213 [[No description supplied by the EAPI.]]
214 legacy: null;
215 params {
216 @in opt: ptr(Evas_Object_Box_Option); [[Box option to be freed]]
217 }
218 }
219 insert_after {
220 [[Insert a new child object after another existing one, in
221 a given box object o.
222
223 On success, the $"child,added" smart event will take place.
224
225 Note: This function will fail if $reference is not a member of $o.
226
227 Note: The actual placing of the item relative to $o's area will
228 depend on the layout set to it.
229
230 Note: This call will trigger the box's
231 _Evas_Object_Box_Api.insert_after smart function.]]
232
233 return: ptr(Evas_Object_Box_Option); [[A box option bound to the recently added box item or
234 $null, on errors]]
235 params {
236 @in child: Efl.Canvas.Object @nonull; [[A child Evas object to be made a member of $o.]]
237 @in reference: const(Efl.Canvas.Object) @nonull; [[The child object to place this new one after.]]
238 }
239 }
240 remove_all {
241 [[Remove all child objects from a box object, unparenting them again.
242
243 This has the same effect of calling evas_object_box_remove on
244 each of $o's child objects, in sequence. If, and only if, all
245 those calls succeed, so does this one.]]
246
247 return: bool; [[$true on success, $false otherwise.]]
248 params {
249 @in clear: bool; [[If $true, it will delete just removed children.]]
250 }
251 }
252 iterator_new @const {
253 [[Get an iterator to walk the list of children of a given box object.
254
255 Note: Do not remove or delete objects while walking the list.]]
256 return: iterator<Efl.Canvas.Object> @owned
257 @warn_unused; [[An iterator on $o's child objects, on success, or $null, on errors.]]
258 }
259 add_to {
260 [[Add a new box as a child of a given smart object.
261
262 This is a helper function that has the same effect of putting a new
263 box object into $parent by use of evas_object_smart_member_add.]]
264
265 return: Efl.Canvas.Object @warn_unused; [[$null on error, a pointer to a new box object on
266 success.]]
267 }
268 append {