summaryrefslogtreecommitdiff
path: root/src/lib/evas
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2019-03-05 11:15:40 -0500
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-03-06 19:05:48 +0100
commit5bfe2e89d247ac6491b2cfbfe5a787286859a202 (patch)
tree66762c697f3da652739e9df7268a0b9b20a04227 /src/lib/evas
parent598ce966d842ac96f8f44ee1fb6ece9e1276dbe9 (diff)
evas: remove all legacy usage from eo files
this takes the current generated output from eolian for legacy code in evas and adds it to the tree, then removes legacy references from the corresponding eo files. in the case where the entire eo file was for a legacy object, that eo file has been removed from the tree ref T7724 Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de> Differential Revision: https://phab.enlightenment.org/D8107
Diffstat (limited to 'src/lib/evas')
-rw-r--r--src/lib/evas/Evas_Legacy.h32
-rw-r--r--src/lib/evas/canvas/efl_canvas_event_grabber.c1
-rw-r--r--src/lib/evas/canvas/efl_canvas_event_grabber.eo1
-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.eo10
-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_object.eo21
-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_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.c1
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_object.eo1
-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_canvas.eo978
-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_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.c4
-rw-r--r--src/lib/evas/canvas/evas_image_private.h2
-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.c2
-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_line.c2
-rw-r--r--src/lib/evas/canvas/evas_object_main.c1
-rw-r--r--src/lib/evas/canvas/evas_object_smart.c1
-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.c1
-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/meson.build48
-rw-r--r--src/lib/evas/include/evas_private.h14
104 files changed, 15697 insertions, 2627 deletions
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 22b2d0c135..6347b0cf7f 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 * @}
@@ -2295,7 +2295,7 @@ EAPI Eina_Bool evas_object_pointer_inside_get(const Evas_Object *obj) EINA_WARN_
2295 2295
2296EAPI 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;
2297 2297
2298#include "canvas/efl_canvas_object.eo.legacy.h" 2298#include "canvas/efl_canvas_object_eo.legacy.h"
2299 2299
2300/** 2300/**
2301 * @brief Get the Evas to which this object belongs to 2301 * @brief Get the Evas to which this object belongs to
@@ -3615,9 +3615,9 @@ EAPI Evas_Object *evas_object_rectangle_add(Evas *e) EINA_WARN_UNUSED_RESULT EIN
3615 */ 3615 */
3616EAPI Evas_Object *evas_object_vg_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 3616EAPI Evas_Object *evas_object_vg_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
3617 3617
3618#include "canvas/efl_canvas_vg_node.eo.legacy.h" 3618#include "canvas/efl_canvas_vg_node_eo.legacy.h"
3619#include "canvas/efl_canvas_vg_object.eo.legacy.h" 3619#include "canvas/efl_canvas_vg_object_eo.legacy.h"
3620#include "canvas/efl_canvas_vg_container.eo.legacy.h" 3620#include "canvas/efl_canvas_vg_container_eo.legacy.h"
3621/** 3621/**
3622 * Creates a new vector shape object. 3622 * Creates a new vector shape object.
3623 * 3623 *
@@ -3810,7 +3810,7 @@ EAPI void evas_vg_node_raise(Eo *obj);
3810 */ 3810 */
3811EAPI void evas_vg_node_lower(Eo *obj); 3811EAPI void evas_vg_node_lower(Eo *obj);
3812 3812
3813#include "canvas/efl_canvas_vg_node.eo.legacy.h" 3813#include "canvas/efl_canvas_vg_node_eo.legacy.h"
3814 3814
3815/** 3815/**
3816 * 3816 *
@@ -4253,7 +4253,7 @@ EAPI void evas_vg_shape_stroke_fill_set(Eo *obj, Efl_VG *f);
4253 */ 4253 */
4254EAPI Efl_VG* evas_vg_shape_stroke_fill_get(const Eo *obj); 4254EAPI Efl_VG* evas_vg_shape_stroke_fill_get(const Eo *obj);
4255 4255
4256#include "canvas/efl_canvas_vg_shape.eo.legacy.h" 4256#include "canvas/efl_canvas_vg_shape_eo.legacy.h"
4257 4257
4258/** 4258/**
4259 * 4259 *
@@ -5938,7 +5938,7 @@ EAPI void evas_object_image_reload(Evas_Object *obj) EINA_DEPRECATED;
5938 */ 5938 */
5939EAPI void evas_object_image_alpha_mask_set(Evas_Object *obj, Eina_Bool ismask) EINA_ARG_NONNULL(1) EINA_DEPRECATED; 5939EAPI void evas_object_image_alpha_mask_set(Evas_Object *obj, Eina_Bool ismask) EINA_ARG_NONNULL(1) EINA_DEPRECATED;
5940 5940
5941#include "canvas/evas_image.eo.legacy.h" 5941#include "canvas/evas_image_eo.legacy.h"
5942 5942
5943/** 5943/**
5944 * @} 5944 * @}
@@ -6022,7 +6022,7 @@ typedef enum
6022 EVAS_TEXT_STYLE_SHADOW_DIRECTION_RIGHT = 112 /* 7 >> 4 */ /**< shadow growing to the right */ 6022 EVAS_TEXT_STYLE_SHADOW_DIRECTION_RIGHT = 112 /* 7 >> 4 */ /**< shadow growing to the right */
6023} Evas_Text_Style_Type; 6023} Evas_Text_Style_Type;
6024 6024
6025#include "canvas/evas_text.eo.legacy.h" 6025#include "canvas/evas_text_eo.legacy.h"
6026 6026
6027/** 6027/**
6028 * 6028 *
@@ -6108,7 +6108,7 @@ EAPI void evas_object_text_font_get(const Eo *obj, const char **font, Evas_Font_
6108 */ 6108 */
6109EAPI Evas_Object *evas_object_textgrid_add(Evas *e); 6109EAPI Evas_Object *evas_object_textgrid_add(Evas *e);
6110 6110
6111#include "canvas/evas_textgrid.eo.legacy.h" 6111#include "canvas/evas_textgrid_eo.legacy.h"
6112 6112
6113/** 6113/**
6114 * 6114 *
@@ -6212,7 +6212,7 @@ EAPI void evas_object_textgrid_font_get(const Eo *obj, const char **font_name, E
6212 */ 6212 */
6213EAPI Evas_Object *evas_object_line_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 6213EAPI Evas_Object *evas_object_line_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
6214 6214
6215#include "canvas/evas_line.eo.legacy.h" 6215#include "canvas/evas_line_eo.legacy.h"
6216 6216
6217/** 6217/**
6218 * @} 6218 * @}
@@ -6768,7 +6768,7 @@ EAPI void evas_object_smart_changed(Evas_Object *obj);
6768 */ 6768 */
6769EAPI void evas_object_smart_move_children_relative(Evas_Object *obj, Evas_Coord dx, Evas_Coord dy); 6769EAPI void evas_object_smart_move_children_relative(Evas_Object *obj, Evas_Coord dx, Evas_Coord dy);
6770 6770
6771#include "canvas/efl_canvas_group.eo.legacy.h" 6771#include "canvas/efl_canvas_group_eo.legacy.h"
6772 6772
6773/** 6773/**
6774 * @} 6774 * @}
@@ -6904,7 +6904,7 @@ EAPI Eina_Bool evas_object_box_option_property_get(const Evas_O
6904 */ 6904 */
6905EAPI Eina_List *evas_object_box_children_get(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 6905EAPI Eina_List *evas_object_box_children_get(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
6906 6906
6907#include "canvas/evas_box.eo.legacy.h" 6907#include "canvas/evas_box_eo.legacy.h"
6908 6908
6909/** 6909/**
6910 * @} 6910 * @}
@@ -6951,7 +6951,7 @@ EAPI void evas_object_table_mirrored_set(Eo *obj, Eina_Bool mirrored);
6951 */ 6951 */
6952EAPI Eina_Bool evas_object_table_mirrored_get(const Eo *obj); 6952EAPI Eina_Bool evas_object_table_mirrored_get(const Eo *obj);
6953 6953
6954#include "canvas/evas_table.eo.legacy.h" 6954#include "canvas/evas_table_eo.legacy.h"
6955 6955
6956/** 6956/**
6957 * @} 6957 * @}
@@ -7001,7 +7001,7 @@ EAPI void evas_object_grid_mirrored_set(Eo *obj, Eina_Bool mirrored);
7001 */ 7001 */
7002EAPI Eina_Bool evas_object_grid_mirrored_get(const Eo *obj); 7002EAPI Eina_Bool evas_object_grid_mirrored_get(const Eo *obj);
7003 7003
7004#include "canvas/evas_grid.eo.legacy.h" 7004#include "canvas/evas_grid_eo.legacy.h"
7005 7005
7006/** 7006/**
7007 * @} 7007 * @}
@@ -8170,7 +8170,7 @@ EAPI void evas_object_freeze_events_set(Efl_Canvas_Object *obj, Eina_Bool freeze
8170 */ 8170 */
8171EAPI Eina_Bool evas_object_freeze_events_get(const Efl_Canvas_Object *obj); 8171EAPI Eina_Bool evas_object_freeze_events_get(const Efl_Canvas_Object *obj);
8172 8172
8173#include "canvas/efl_canvas_event_grabber.eo.legacy.h" 8173#include "canvas/efl_canvas_event_grabber_eo.legacy.h"
8174 8174
8175#include "canvas/efl_canvas_animation_alpha.eo.legacy.h" 8175#include "canvas/efl_canvas_animation_alpha.eo.legacy.h"
8176#include "canvas/efl_canvas_animation.eo.legacy.h" 8176#include "canvas/efl_canvas_animation.eo.legacy.h"
diff --git a/src/lib/evas/canvas/efl_canvas_event_grabber.c b/src/lib/evas/canvas/efl_canvas_event_grabber.c
index dae4e9b007..cea6d86a13 100644
--- a/src/lib/evas/canvas/efl_canvas_event_grabber.c
+++ b/src/lib/evas/canvas/efl_canvas_event_grabber.c
@@ -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 d36d73cfc5..ee9657a813 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]]
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 0000000000..ff954ebf02
--- /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 0000000000..3f1b146196
--- /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 c89b6d1f4a..e7d12ff033 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).
@@ -83,7 +77,6 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
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_remove { 81 group_member_remove {
89 [[Removes a member object from a given smart object. 82 [[Removes a member object from a given smart object.
@@ -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,7 +110,6 @@ 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 }
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 0000000000..1144c0a22b
--- /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 0000000000..f8f45ed286
--- /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_object.eo b/src/lib/evas/canvas/efl_canvas_object.eo
index 0390f92c13..4bdc2ff7e9 100644
--- a/src/lib/evas/canvas/efl_canvas_object.eo
+++ b/src/lib/evas/canvas/efl_canvas_object.eo
@@ -11,7 +11,6 @@ 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 {
@@ -27,10 +26,8 @@ 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 {
@@ -77,10 +74,8 @@ 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.]]
@@ -128,7 +123,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
128 Note: Only rectangle and image (masks) objects can be used 123 Note: Only rectangle and image (masks) objects can be used
129 as clippers. Anything else will result in undefined behaviour. 124 as clippers. Anything else will result in undefined behaviour.
130 ]] 125 ]]
131 legacy: evas_object_clip_set;
132 } 126 }
133 get { 127 get {
134 [[Get the object clipping $obj (if any). 128 [[Get the object clipping $obj (if any).
@@ -137,7 +131,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
137 not being clipped at all, $null is returned. The object $obj 131 not being clipped at all, $null is returned. The object $obj
138 must be a valid Evas_Object. 132 must be a valid Evas_Object.
139 ]] 133 ]]
140 legacy: evas_object_clip_get;
141 } 134 }
142 values { 135 values {
143 clipper: Efl.Canvas.Object @nonull; [[The object to clip $obj by.]] 136 clipper: Efl.Canvas.Object @nonull; [[The object to clip $obj by.]]
@@ -184,10 +177,8 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
184 @.seat_focus_add, @.seat_focus_del. 177 @.seat_focus_add, @.seat_focus_del.
185 ]] 178 ]]
186 set { 179 set {
187 legacy: evas_object_focus_set;
188 } 180 }
189 get { 181 get {
190 legacy: evas_object_focus_get;
191 } 182 }
192 values { 183 values {
193 focus: bool; [[$true when set as focused or $false otherwise.]] 184 focus: bool; [[$true when set as focused or $false otherwise.]]
@@ -199,7 +190,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
199 @since 1.19 190 @since 1.19
200 ]] 191 ]]
201 get { 192 get {
202 legacy: null;
203 } 193 }
204 values { 194 values {
205 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.]]
@@ -210,7 +200,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
210 params { 200 params {
211 @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.]]
212 } 202 }
213 legacy: null;
214 return: bool; [[$true if focused or $false otherwise.]] 203 return: bool; [[$true if focused or $false otherwise.]]
215 } 204 }
216 seat_focus_add { 205 seat_focus_add {
@@ -227,7 +216,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
227 params { 216 params {
228 @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.]]
229 } 218 }
230 legacy: null;
231 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.]]
232 } 220 }
233 seat_focus_del { 221 seat_focus_del {
@@ -238,7 +226,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
238 params { 226 params {
239 @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.]]
240 } 228 }
241 legacy: null;
242 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.]]
243 } 230 }
244 @property precise_is_inside { 231 @property precise_is_inside {
@@ -367,7 +354,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
367 354
368 See also @.clipper. 355 See also @.clipper.
369 ]] 356 ]]
370 legacy: null;
371 return: iterator<Efl.Canvas.Object> @warn_unused; [[An iterator over the 357 return: iterator<Efl.Canvas.Object> @warn_unused; [[An iterator over the
372 list of objects clipped by $obj.]] 358 list of objects clipped by $obj.]]
373 } 359 }
@@ -382,7 +368,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
382 @since 1.18 368 @since 1.18
383 ]] 369 ]]
384 get { 370 get {
385 legacy: evas_object_smart_parent_get;
386 } 371 }
387 values { 372 values {
388 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.]]
@@ -401,7 +386,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
401 clipped_objects_count @const { 386 clipped_objects_count @const {
402 [[Returns the number of objects clipped by $obj 387 [[Returns the number of objects clipped by $obj
403 ]] 388 ]]
404 legacy: null;
405 return: uint @warn_unused; [[The number of objects clipped by $obj]] 389 return: uint @warn_unused; [[The number of objects clipped by $obj]]
406 } 390 }
407 key_grab { 391 key_grab {
@@ -439,7 +423,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
439 @in exclusive: bool; [[Request that the $obj is the only object 423 @in exclusive: bool; [[Request that the $obj is the only object
440 receiving the $keyname events.]] 424 receiving the $keyname events.]]
441 } 425 }
442 legacy: null;
443 } 426 }
444 key_ungrab { 427 key_ungrab {
445 [[Removes the grab on $keyname key events by $obj. 428 [[Removes the grab on $keyname key events by $obj.
@@ -458,7 +441,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
458 not not be present to trigger 441 not not be present to trigger
459 the event.]] 442 the event.]]
460 } 443 }
461 legacy: null;
462 } 444 }
463 @property no_render { 445 @property no_render {
464 get { 446 get {
@@ -470,7 +452,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
470 452
471 @since 1.15 453 @since 1.15
472 ]] 454 ]]
473 legacy: null;
474 } 455 }
475 set { 456 set {
476 [[Disable all rendering on the canvas. 457 [[Disable all rendering on the canvas.
@@ -491,7 +472,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
491 472
492 @since 1.15 473 @since 1.15
493 ]] 474 ]]
494 legacy: null;
495 } 475 }
496 values { 476 values {
497 enable: bool; [[Enable "no-render" mode.]] 477 enable: bool; [[Enable "no-render" mode.]]
@@ -512,7 +492,6 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
512 492
513 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.
514 ]] 494 ]]
515 legacy: null;
516 } 495 }
517 keys { 496 keys {
518 pos: Eina.Position2D; [[The position in pixels.]] 497 pos: Eina.Position2D; [[The position in pixels.]]
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 0000000000..a02c1f887f
--- /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 0000000000..ce51e7dd95
--- /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_text.eo b/src/lib/evas/canvas/efl_canvas_text.eo
index 359b3dc356..ef53030272 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 0000000000..326707b30c
--- /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 0000000000..900c6daa90
--- /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 f22ff1a81c..699ea8dccc 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 a5968d6c98..43317b900a 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 0000000000..a31fc33d44
--- /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 0000000000..691a93b3c4
--- /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 ad059a1604..08731dcc04 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 a6e24e6ec6..21d3be7d5e 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 c321c442f9..3119d6359c 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 2d83a4a79f..77e4eaffa8 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 c3fde3e69a..27be5003f0 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 0000000000..eda76165cb
--- /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 0000000000..ee3b407331
--- /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 25c092f1d1..e40fe78f78 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_object.c
+++ b/src/lib/evas/canvas/efl_canvas_vg_object.c
@@ -752,3 +752,4 @@ evas_object_vg_add(Evas *e)
752} 752}
753 753
754#include "efl_canvas_vg_object.eo.c" 754#include "efl_canvas_vg_object.eo.c"
755#include "efl_canvas_vg_object_eo.legacy.c"
diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.eo b/src/lib/evas/canvas/efl_canvas_vg_object.eo
index eb5dbd04db..56bee06009 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_object.eo
+++ b/src/lib/evas/canvas/efl_canvas_vg_object.eo
@@ -24,7 +24,6 @@ enum Efl.Canvas.Vg.Fill_Mode
24class @beta Efl.Canvas.Vg.Object extends Efl.Canvas.Object implements Efl.File, Efl.File_Save 24class @beta Efl.Canvas.Vg.Object extends Efl.Canvas.Object implements Efl.File, Efl.File_Save
25{ 25{
26 [[Efl vector graphics class]] 26 [[Efl vector graphics class]]
27 legacy_prefix: evas_object_vg;
28 methods { 27 methods {
29 @property fill_mode { 28 @property fill_mode {
30 [[Control how the viewbox is mapped to the vg canvas's viewport.]] 29 [[Control how the viewbox is mapped to the vg canvas's viewport.]]
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 0000000000..095fb3a2b9
--- /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 0000000000..2b7e96b52d
--- /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 417641af80..ac398ebd7a 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 e832109ea8..35991e6d8e 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 0000000000..5630fe5f63
--- /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 0000000000..444acd2334
--- /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 a617e504eb..3274b31a8e 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 427bd4b57f..0000000000
--- 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 {
269 [[Append a new child object to the given box object o.
270
271 On success, the $"child,added" smart event will take place.
272
273 Note: The actual placing of the item relative to $o's area will
274 depend on the layout set to it. For example, on horizontal layouts
275 an item in the end of the box's list of children will appear on its
276 right.
277
278 Note: This call will trigger the box's _Evas_Object_Box_Api.append
279 smart function.]]
280
281 return: ptr(Evas_Object_Box_Option); [[A box option bound to the recently added box item or
282 $null, on errors.]]
283 params {
284 @in child: Efl.Canvas.Object @nonull; [[A child Evas object to be made a member of $o.]]
285 }
286 }
287 option_property_id_get @const {
288 [[Get the numerical identifier of the property of the child elements
289 of the box o which have name as name string
290
291 Note: This call won't do anything for a canonical Evas box. Only
292 users which have subclassed it, setting custom box items options
293 (see #Evas_Object_Box_Option) on it, would benefit from this
294 function. They'd have to implement it and set it to be the
295 _Evas_Object_Box_Api.property_id_get smart class function of the
296 box, which is originally set to $null.]]
297 return: int @warn_unused; [[The numerical ID of the given property or $-1, on
298 errors.]]
299 params {
300 @in name: string @nonull; [[The name string of the option being searched, for
301 its ID.]]
302 }
303 }
304 prepend {
305 [[Prepend a new child object to the given box object o.
306
307 On success, the $"child,added" smart event will take place.
308
309 Note: The actual placing of the item relative to $o's area will
310 depend on the layout set to it. For example, on horizontal layouts
311 an item in the beginning of the box's list of children will appear
312 on its left.
313
314 Note: This call will trigger the box's
315 _Evas_Object_Box_Api.prepend smart function.]]
316
317 return: ptr(Evas_Object_Box_Option); [[A box option bound to the recently added box item or
318 $null, on errors.]]
319 params {
320 @in child: Efl.Canvas.Object @nonull; [[A child Evas object to be made a member of $o.]]
321 }
322 }
323 accessor_new @const {
324 [[Get an accessor (a structure providing random items access) to the
325 list of children of a given box object.
326
327 Note: Do not remove or delete objects while walking the list.]]
328 return: accessor<Efl.Canvas.Object> @owned
329 @warn_unused; [[An accessor on $o's child objects, on success, or $null,
330 on errors.]]
331 }
332 internal_append {
333 [[No description supplied by the EAPI.]]
334 legacy: null;
335 return: ptr(Evas_Object_Box_Option); [[Box option]]
336 params {
337 @in child: Efl.Canvas.Object; [[Child object to be appended]]
338 }
339 }
340 option_property_vset {
341 [[Set a property value (by its given numerical identifier), on a
342 given box child element -- by a variable argument list
343
344 This is a variable argument list variant of the
345 evas_object_box_option_property_set. See its documentation for
346 more details.]]
347
348 return: bool; [[$true on success, $false on failure.]]
349 params {
350 @in opt: ptr(Evas_Object_Box_Option) @nonull; [[The box option structure bound to the child box element
351 to set a property on.]]
352 @in property: int; [[The numerical ID of the given property.]]
353 @in args: ptr(va_list); [[The variable argument list implementing the value to
354 be set for this property. It must be of the same type the user has
355 defined for it.]]
356 }
357 legacy: null;
358 }
359 internal_remove_at {
360 [[No description supplied by the EAPI.]]
361 legacy: null;
362 return: Efl.Canvas.Object; [[Canvas object]]
363 params {
364 @in pos: uint; [[Position of object to be removed]]
365 }
366 }
367 remove_at {
368 [[Remove an object, bound to a given position in a box object,
369 unparenting it again.
370
371 On removal, you'll get an unparented object again, just as it was
372 before you inserted it in the box. The $option_free box smart
373 callback will be called automatically for you and, also, the
374 $"child,removed" smart event will take place.
375
376 Note: This function will fail if the given position is invalid,
377 given $o's internal list of elements.
378
379 Note: This call will trigger the box's
380 _Evas_Object_Box_Api.remove_at smart function.]]
381
382 return: bool; [[$true on success, $false on failure.]]
383 params {
384 @in pos: uint; [[The numeric position (starting from $0) of the child
385 object to be removed.]]
386 }
387 }
388 option_property_vget @const {
389 [[Get a property's value (by its given numerical identifier), on a
390 given box child element -- by a variable argument list
391
392 This is a variable argument list variant of the
393 evas_object_box_option_property_get. See its documentation for
394 more details.]]
395 return: bool; [[$true on success, $false on failure.]]
396 params {
397 @in opt: ptr(Evas_Object_Box_Option) @nonull; [[The box option structure bound to the child box element
398 to get a property from.]]
399 @in property: int; [[The numerical ID of the given property.]]
400 @in args: ptr(va_list); [[The variable argument list with pointers to where to
401 store the values of this property. They must point to variables
402 of the same type the user has defined for them.]]
403 }
404 legacy: null;
405 }
406 internal_insert_at {
407 [[No description supplied by the EAPI.]]
408 legacy: null;
409 return: ptr(Evas_Object_Box_Option); [[Box option]]
410 params {
411 @in child: Efl.Canvas.Object; [[Child object to be inserted]]
412 @in pos: uint; [[Position where the object will be inserted]]
413 }
414 }
415 insert_before {
416 [[Insert a new child object before another existing one, in
417 a given box object o.
418
419 On success, the $"child,added" smart event will take place.
420
421 Note: This function will fail if $reference is not a member of $o.
422
423 Note: The actual placing of the item relative to $o's area will
424 depend on the layout set to it.
425
426 Note: This call will trigger the box's
427 _Evas_Object_Box_Api.insert_before smart function.]]
428
429 return: ptr(Evas_Object_Box_Option); [[A box option bound to the recently added box item or
430 $null, on errors.]]
431 params {
432 @in child: Efl.Canvas.Object @nonull; [[A child Evas object to be made a member of $o.]]
433 @in reference: const(Efl.Canvas.Object) @nonull; [[The child object to place this new one before.]]
434 }
435 }
436 option_property_name_get @const {
437 [[Get the name of the property of the child elements of the box o
438 which have id as identifier
439
440 Note: This call won't do anything for a canonical Evas box. Only
441 users which have subclassed it, setting custom box items options
442 (see #Evas_Object_Box_Option) on it, would benefit from this
443 function. They'd have to implement it and set it to be the
444 _Evas_Object_Box_Api.property_name_get smart class function of the
445 box, which is originally set to $null.]]
446 return: string @warn_unused; [[The name of the given property or $null, on errors.]]
447 params {
448 @in property: int; [[The numerical identifier of the option being searched,
449 for its name.]]
450 }
451 }
452 internal_insert_before {
453 [[No description supplied by the EAPI.]]
454 legacy: null;
455 return: ptr(Evas_Object_Box_Option); [[Box option]]
456 params {
457 @in child: Efl.Canvas.Object; [[Object to be inserted]]
458 @in reference: const(Efl.Canvas.Object); [[Reference where the object will be inserted]]
459 }
460 }
461 layout_homogeneous_horizontal {
462 [[Layout function which sets the box o to a homogeneous
463 horizontal box
464
465 In a homogeneous horizontal box, its width is divided equally
466 between the contained objects. The box's overall behavior is
467 controlled by its padding/alignment properties, which are set by
468 the evas_object_box_{h,v}_{align,padding}_set family of
469 functions. The size hints the elements in the box -- set by the
470 evas_object_size_hint_{align,padding,weight}_set functions
471 -- also control the way this function works.
472
473 Box's properties:
474 $align_h has no influence on the box for this layout.
475 $padding_h tells the box to draw empty spaces of that size, in
476 pixels, between the (equal) child objects' cells. The $align_v
477 and $padding_v properties of the box don't contribute to its
478 behaviour when this layout is chosen.
479
480 Child element's properties:
481 $padding_l and $padding_r sum up to the required width of the
482 child element. The $align_x property tells the relative position
483 of this overall child width in its allocated cell ($0.0 to
484 extreme left, $1.0 to extreme right). A value of $-1.0 to
485 $align_x makes the box try to resize this child element to the exact
486 width of its cell (respecting the minimum and maximum size hints on
487 the child's width and accounting for its horizontal padding
488 hints). The child's $padding_t, $padding_b and $align_y
489 properties apply for padding/alignment relative to the overall
490 height of the box. A value of $-1.0 to $align_y makes the box
491 try to resize this child element to the exact height of its parent
492 (respecting the maximum size hint on the child's height).]]
493 params {
494 @in priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
495 @in data: void_ptr; [[Data pointer]]
496 }
497 }
498 internal_option_new {
499 [[No description supplied by the EAPI.]]
500 legacy: null;
501 return: ptr(Evas_Object_Box_Option); [[Box option]]
502 params {
503 @in child: Efl.Canvas.Object; [[New box object]]
504 }
505 }
506 layout_homogeneous_max_size_vertical {
507 [[Layout function which sets the box o to a maximum size,
508 homogeneous vertical box
509
510 This function behaves analogously to
511 evas_object_box_layout_homogeneous_max_size_horizontal. The
512 description of its behaviour can be derived from that function's
513 documentation.]]
514 params {
515 @in priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
516 @in data: void_ptr; [[Data pointer]]
517 }
518 }
519 internal_insert_after {
520 [[No description supplied by the EAPI.]]
521 legacy: null;
522 return: ptr(Evas_Object_Box_Option); [[Box option]]
523 params {
524 @in child: Efl.Canvas.Object; [[Object to be inserted]]
525 @in reference: const(Efl.Canvas.Object); [[Reference where the object will be inserted]]
526 }
527 }
528 insert_at {
529 [[Insert a new child object at a given position, in a given
530 box object $o.
531
532 On success, the $"child,added" smart event will take place.
533
534 Note: This function will fail if the given position is invalid,
535 given $o's internal list of elements.
536
537 Note: The actual placing of the item relative to $o's area will
538 depend on the layout set to it.
539
540 Note: This call will trigger the box's
541 _Evas_Object_Box_Api.insert_at smart function.]]
542
543 return: ptr(Evas_Object_Box_Option); [[A box option bound to the recently added box item or
544 $null, on errors.]]
545 params {
546 @in child: Efl.Canvas.Object @nonull; [[A child Evas object to be made a member of $o.]]
547 @in pos: uint; [[The numeric position (starting from $0) to place the
548 new child object at.]]
549 }
550 }
551 internal_prepend {
552 [[No description supplied by the EAPI.]]
553 legacy: null;
554 return: ptr(Evas_Object_Box_Option); [[Box option]]
555 params {
556 @in child: Efl.Canvas.Object; [[Object to be prepended]]
557 }
558 }
559 remove {
560 [[Remove a given object from a box object, unparenting it again.
561
562 On removal, you'll get an unparented object again, just as it was
563 before you inserted it in the box. The
564 _Evas_Object_Box_Api.option_free box smart callback will be called
565 automatically for you and, also, the $"child,removed" smart event
566 will take place.
567
568 Note: This call will trigger the box's _Evas_Object_Box_Api.remove
569 smart function.]]
570
571 return: bool; [[$true on success, $false otherwise.]]
572 params {
573 @in child: Efl.Canvas.Object @nonull; [[The handle to the child object to be removed.]]
574 }
575 }
576 layout_stack {
577 [[Layout function which sets the box o to a stacking box
578
579 In a stacking box, all children will be given the same size -- the
580 box's own size -- and they will be stacked one above the other, so
581 that the first object in $o's internal list of child elements
582 will be the bottommost in the stack.
583
584 Box's properties:
585 No box properties are used.
586
587 Child element's properties:
588 $padding_l and $padding_r sum up to the required width of the
589 child element. The $align_x property tells the relative position
590 of this overall child width in its allocated cell ($0.0 to
591 extreme left, $1.0 to extreme right). A value of $-1.0 to
592 $align_x makes the box try to resize this child element to the exact
593 width of its cell (respecting the min and max hints on the child's
594 width and accounting for its horizontal padding properties). The
595 same applies to the vertical axis.]]
596 params {
597 @in priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
598 @in data: void_ptr; [[Data pointer]]
599 }
600 }
601 layout_homogeneous_vertical {
602 [[Layout function which sets the box o to a homogeneous
603 vertical box.
604
605 This function behaves analogously to
606 evas_object_box_layout_homogeneous_horizontal. The description
607 of its behaviour can be derived from that function's documentation.]]
608 params {
609 priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
610 data: void_ptr; [[Data pointer]]
611 }
612 }
613 layout_flow_horizontal {
614 [[Layout function which sets the box o to a flow horizontal
615 box.
616
617 In a flow horizontal box, the box's child elements are placed in
618 rows (think of text as an analogy). A row has as many elements as
619 can fit into the box's width. The box's overall behavior is
620 controlled by its properties, which are set by the
621 evas_object_box_{h,v}_{align,padding}_set family of
622 functions. The size hints of the elements in the box -- set by the
623 evas_object_size_hint_{align,padding,weight}_set functions
624 -- also control the way this function works.
625
626 Box's properties:
627 $padding_h tells the box to draw empty spaces of that size, in
628 pixels, between the child objects' cells. $align_h dictates the
629 horizontal alignment of the rows ($0.0 to left align them, $1.0
630 to right align). A value of $-1.0 to $align_h lets the rows
631 justified horizontally. $align_v controls the vertical alignment
632 of the entire set of rows ($0.0 to top, $1.0 to bottom). A
633 value of $-1.0 to $align_v makes the box to justify the rows
634 vertically. The padding between them in this case is corrected so
635 that the first row touches the top border and the last one touches
636 the bottom border (even if they must overlap). $padding_v has no
637 influence on the layout.
638
639 Child element's properties:
640 $padding_l and $padding_r sum up to the required width of the
641 child element. The $align_x property has no influence on the
642 layout. The child's $padding_t and $padding_b sum up to the
643 required height of the child element and is the only means (besides
644 row justifying) of setting space between rows. Note, however, that
645 $align_y dictates positioning relative to the largest
646 height required by a child object in the actual row.]]
647 params {
648 priv: ptr(Evas_Object_Box_Data); [[Private data pointer]]
649 data: void_ptr; [[Data pointer]]
650 }
651 }
652 count {
653 [[Returns the number of items in the box.]]
654 legacy: null;
655 return: int; [[Number of items in the box]]
656 }
657 }
658 implements {
659 class.constructor;
660 Efl.Object.constructor;
661 Efl.Gfx.Entity.size { set; }
662 Efl.Gfx.Entity.position { set; }
663 Efl.Canvas.Group.group_calculate;
664 }
665 events {
666 child,added: ptr(Evas_Object_Box_Option); [[Called when a child object was added to the box]]
667 child,removed: Efl.Canvas.Object; [[Called when a child object was removed from the box]]
668 }
669}
diff --git a/src/lib/evas/canvas/evas_box_eo.c b/src/lib/evas/canvas/evas_box_eo.c
new file mode 100644
index 0000000000..80bcd33f89
--- /dev/null
+++ b/src/lib/evas/canvas/evas_box_eo.c
@@ -0,0 +1,248 @@
1EWAPI const Efl_Event_Description _EVAS_BOX_EVENT_CHILD_ADDED =
2 EFL_EVENT_DESCRIPTION("child,added");
3EWAPI const Efl_Event_Description _EVAS_BOX_EVENT_CHILD_REMOVED =
4 EFL_EVENT_DESCRIPTION("child,removed");
5
6void _evas_box_align_set(Eo *obj, Evas_Object_Box_Data *pd, double horizontal, double vertical);
7
8EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_align_set, EFL_FUNC_CALL(horizontal, vertical), double horizontal, double vertical);
9
10void _evas_box_align_get(const Eo *obj, Evas_Object_Box_Data *pd, double *horizontal, double *vertical);
11
12EOAPI EFL_VOID_FUNC_BODYV_CONST(evas_obj_box_align_get, EFL_FUNC_CALL(horizontal, vertical), double *horizontal, double *vertical);
13
14void _evas_box_padding_set(Eo *obj, Evas_Object_Box_Data *pd, int horizontal, int vertical);
15
16EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_padding_set, EFL_FUNC_CALL(horizontal, vertical), int horizontal, int vertical);
17
18void _evas_box_padding_get(const Eo *obj, Evas_Object_Box_Data *pd, int *horizontal, int *vertical);
19
20EOAPI EFL_VOID_FUNC_BODYV_CONST(evas_obj_box_padding_get, EFL_FUNC_CALL(horizontal, vertical), int *horizontal, int *vertical);
21
22void _evas_box_layout_set(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Layout cb, const void *data, Eina_Free_Cb free_data);
23
24EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_set, EFL_FUNC_CALL(cb, data, free_data), Evas_Object_Box_Layout cb, const void *data, Eina_Free_Cb free_data);
25
26void _evas_box_layout_horizontal(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
27
28EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_horizontal, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
29
30void _evas_box_layout_vertical(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
31
32EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_vertical, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
33
34void _evas_box_layout_homogeneous_max_size_horizontal(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
35
36EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_homogeneous_max_size_horizontal, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
37
38Efl_Canvas_Object *_evas_box_internal_remove(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child);
39
40EOAPI EFL_FUNC_BODYV(evas_obj_box_internal_remove, Efl_Canvas_Object *, NULL, EFL_FUNC_CALL(child), Efl_Canvas_Object *child);
41
42void _evas_box_layout_flow_vertical(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
43
44EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_flow_vertical, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
45
46void _evas_box_internal_option_free(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Option *opt);
47
48EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_internal_option_free, EFL_FUNC_CALL(opt), Evas_Object_Box_Option *opt);
49
50Evas_Object_Box_Option *_evas_box_insert_after(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child, const Efl_Canvas_Object *reference);
51
52EOAPI EFL_FUNC_BODYV(evas_obj_box_insert_after, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child, reference), Efl_Canvas_Object *child, const Efl_Canvas_Object *reference);
53
54Eina_Bool _evas_box_remove_all(Eo *obj, Evas_Object_Box_Data *pd, Eina_Bool clear);
55
56EOAPI EFL_FUNC_BODYV(evas_obj_box_remove_all, Eina_Bool, 0, EFL_FUNC_CALL(clear), Eina_Bool clear);
57
58Eina_Iterator *_evas_box_iterator_new(const Eo *obj, Evas_Object_Box_Data *pd);
59
60EOAPI EFL_FUNC_BODY_CONST(evas_obj_box_iterator_new, Eina_Iterator *, NULL);
61
62Efl_Canvas_Object *_evas_box_add_to(Eo *obj, Evas_Object_Box_Data *pd);
63
64EOAPI EFL_FUNC_BODY(evas_obj_box_add_to, Efl_Canvas_Object *, NULL);
65
66Evas_Object_Box_Option *_evas_box_append(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child);
67
68EOAPI EFL_FUNC_BODYV(evas_obj_box_append, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child), Efl_Canvas_Object *child);
69
70int _evas_box_option_property_id_get(const Eo *obj, Evas_Object_Box_Data *pd, const char *name);
71
72EOAPI EFL_FUNC_BODYV_CONST(evas_obj_box_option_property_id_get, int, 0, EFL_FUNC_CALL(name), const char *name);
73
74Evas_Object_Box_Option *_evas_box_prepend(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child);
75
76EOAPI EFL_FUNC_BODYV(evas_obj_box_prepend, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child), Efl_Canvas_Object *child);
77
78Eina_Accessor *_evas_box_accessor_new(const Eo *obj, Evas_Object_Box_Data *pd);
79
80EOAPI EFL_FUNC_BODY_CONST(evas_obj_box_accessor_new, Eina_Accessor *, NULL);
81
82Evas_Object_Box_Option *_evas_box_internal_append(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child);
83
84EOAPI EFL_FUNC_BODYV(evas_obj_box_internal_append, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child), Efl_Canvas_Object *child);
85
86Eina_Bool _evas_box_option_property_vset(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Option *opt, int property, va_list *args);
87
88EOAPI EFL_FUNC_BODYV(evas_obj_box_option_property_vset, Eina_Bool, 0, EFL_FUNC_CALL(opt, property, args), Evas_Object_Box_Option *opt, int property, va_list *args);
89
90Efl_Canvas_Object *_evas_box_internal_remove_at(Eo *obj, Evas_Object_Box_Data *pd, unsigned int pos);
91
92EOAPI EFL_FUNC_BODYV(evas_obj_box_internal_remove_at, Efl_Canvas_Object *, NULL, EFL_FUNC_CALL(pos), unsigned int pos);
93
94Eina_Bool _evas_box_remove_at(Eo *obj, Evas_Object_Box_Data *pd, unsigned int pos);
95
96EOAPI EFL_FUNC_BODYV(evas_obj_box_remove_at, Eina_Bool, 0, EFL_FUNC_CALL(pos), unsigned int pos);
97
98Eina_Bool _evas_box_option_property_vget(const Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Option *opt, int property, va_list *args);
99
100EOAPI EFL_FUNC_BODYV_CONST(evas_obj_box_option_property_vget, Eina_Bool, 0, EFL_FUNC_CALL(opt, property, args), Evas_Object_Box_Option *opt, int property, va_list *args);
101
102Evas_Object_Box_Option *_evas_box_internal_insert_at(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child, unsigned int pos);
103
104EOAPI EFL_FUNC_BODYV(evas_obj_box_internal_insert_at, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child, pos), Efl_Canvas_Object *child, unsigned int pos);
105
106Evas_Object_Box_Option *_evas_box_insert_before(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child, const Efl_Canvas_Object *reference);
107
108EOAPI EFL_FUNC_BODYV(evas_obj_box_insert_before, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child, reference), Efl_Canvas_Object *child, const Efl_Canvas_Object *reference);
109
110const char *_evas_box_option_property_name_get(const Eo *obj, Evas_Object_Box_Data *pd, int property);
111
112EOAPI EFL_FUNC_BODYV_CONST(evas_obj_box_option_property_name_get, const char *, NULL, EFL_FUNC_CALL(property), int property);
113
114Evas_Object_Box_Option *_evas_box_internal_insert_before(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child, const Efl_Canvas_Object *reference);
115
116EOAPI EFL_FUNC_BODYV(evas_obj_box_internal_insert_before, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child, reference), Efl_Canvas_Object *child, const Efl_Canvas_Object *reference);
117
118void _evas_box_layout_homogeneous_horizontal(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
119
120EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_homogeneous_horizontal, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
121
122Evas_Object_Box_Option *_evas_box_internal_option_new(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child);
123
124EOAPI EFL_FUNC_BODYV(evas_obj_box_internal_option_new, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child), Efl_Canvas_Object *child);
125
126void _evas_box_layout_homogeneous_max_size_vertical(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
127
128EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_homogeneous_max_size_vertical, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
129
130Evas_Object_Box_Option *_evas_box_internal_insert_after(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child, const Efl_Canvas_Object *reference);
131
132EOAPI EFL_FUNC_BODYV(evas_obj_box_internal_insert_after, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child, reference), Efl_Canvas_Object *child, const Efl_Canvas_Object *reference);
133
134Evas_Object_Box_Option *_evas_box_insert_at(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child, unsigned int pos);
135
136EOAPI EFL_FUNC_BODYV(evas_obj_box_insert_at, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child, pos), Efl_Canvas_Object *child, unsigned int pos);
137
138Evas_Object_Box_Option *_evas_box_internal_prepend(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child);
139
140EOAPI EFL_FUNC_BODYV(evas_obj_box_internal_prepend, Evas_Object_Box_Option *, NULL, EFL_FUNC_CALL(child), Efl_Canvas_Object *child);
141
142Eina_Bool _evas_box_remove(Eo *obj, Evas_Object_Box_Data *pd, Efl_Canvas_Object *child);
143
144EOAPI EFL_FUNC_BODYV(evas_obj_box_remove, Eina_Bool, 0, EFL_FUNC_CALL(child), Efl_Canvas_Object *child);
145
146void _evas_box_layout_stack(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
147
148EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_stack, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
149
150void _evas_box_layout_homogeneous_vertical(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
151
152EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_homogeneous_vertical, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
153
154void _evas_box_layout_flow_horizontal(Eo *obj, Evas_Object_Box_Data *pd, Evas_Object_Box_Data *priv, void *data);
155
156EOAPI EFL_VOID_FUNC_BODYV(evas_obj_box_layout_flow_horizontal, EFL_FUNC_CALL(priv, data), Evas_Object_Box_Data *priv, void *data);
157
158int _evas_box_count(Eo *obj, Evas_Object_Box_Data *pd);
159
160EOAPI EFL_FUNC_BODY(evas_obj_box_count, int, 0);
161
162Efl_Object *_evas_box_efl_object_constructor(Eo *obj, Evas_Object_Box_Data *pd);
163
164
165void _evas_box_efl_gfx_entity_size_set(Eo *obj, Evas_Object_Box_Data *pd, Eina_Size2D size);
166
167
168void _evas_box_efl_gfx_entity_position_set(Eo *obj, Evas_Object_Box_Data *pd, Eina_Position2D pos);
169
170
171void _evas_box_efl_canvas_group_group_calculate(Eo *obj, Evas_Object_Box_Data *pd);
172
173
174static Eina_Bool
175_evas_box_class_initializer(Efl_Class *klass)
176{
177 const Efl_Object_Ops *opsp = NULL;
178
179 const Efl_Object_Property_Reflection_Ops *ropsp = NULL;
180
181#ifndef EVAS_BOX_EXTRA_OPS
182#define EVAS_BOX_EXTRA_OPS
183#endif
184
185 EFL_OPS_DEFINE(ops,
186 EFL_OBJECT_OP_FUNC(evas_obj_box_align_set, _evas_box_align_set),
187 EFL_OBJECT_OP_FUNC(evas_obj_box_align_get, _evas_box_align_get),
188 EFL_OBJECT_OP_FUNC(evas_obj_box_padding_set, _evas_box_padding_set),
189 EFL_OBJECT_OP_FUNC(evas_obj_box_padding_get, _evas_box_padding_get),
190 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_set, _evas_box_layout_set),
191 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_horizontal, _evas_box_layout_horizontal),
192 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_vertical, _evas_box_layout_vertical),
193 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_homogeneous_max_size_horizontal, _evas_box_layout_homogeneous_max_size_horizontal),
194 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_remove, _evas_box_internal_remove),
195 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_flow_vertical, _evas_box_layout_flow_vertical),
196 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_option_free, _evas_box_internal_option_free),
197 EFL_OBJECT_OP_FUNC(evas_obj_box_insert_after, _evas_box_insert_after),
198 EFL_OBJECT_OP_FUNC(evas_obj_box_remove_all, _evas_box_remove_all),
199 EFL_OBJECT_OP_FUNC(evas_obj_box_iterator_new, _evas_box_iterator_new),
200 EFL_OBJECT_OP_FUNC(evas_obj_box_add_to, _evas_box_add_to),
201 EFL_OBJECT_OP_FUNC(evas_obj_box_append, _evas_box_append),
202 EFL_OBJECT_OP_FUNC(evas_obj_box_option_property_id_get, _evas_box_option_property_id_get),
203 EFL_OBJECT_OP_FUNC(evas_obj_box_prepend, _evas_box_prepend),
204 EFL_OBJECT_OP_FUNC(evas_obj_box_accessor_new, _evas_box_accessor_new),
205 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_append, _evas_box_internal_append),
206 EFL_OBJECT_OP_FUNC(evas_obj_box_option_property_vset, _evas_box_option_property_vset),
207 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_remove_at, _evas_box_internal_remove_at),
208 EFL_OBJECT_OP_FUNC(evas_obj_box_remove_at, _evas_box_remove_at),
209 EFL_OBJECT_OP_FUNC(evas_obj_box_option_property_vget, _evas_box_option_property_vget),
210 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_insert_at, _evas_box_internal_insert_at),
211 EFL_OBJECT_OP_FUNC(evas_obj_box_insert_before, _evas_box_insert_before),
212 EFL_OBJECT_OP_FUNC(evas_obj_box_option_property_name_get, _evas_box_option_property_name_get),
213 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_insert_before, _evas_box_internal_insert_before),
214 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_homogeneous_horizontal, _evas_box_layout_homogeneous_horizontal),
215 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_option_new, _evas_box_internal_option_new),
216 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_homogeneous_max_size_vertical, _evas_box_layout_homogeneous_max_size_vertical),
217 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_insert_after, _evas_box_internal_insert_after),
218 EFL_OBJECT_OP_FUNC(evas_obj_box_insert_at, _evas_box_insert_at),
219 EFL_OBJECT_OP_FUNC(evas_obj_box_internal_prepend, _evas_box_internal_prepend),
220 EFL_OBJECT_OP_FUNC(evas_obj_box_remove, _evas_box_remove),
221 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_stack, _evas_box_layout_stack),
222 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_homogeneous_vertical, _evas_box_layout_homogeneous_vertical),
223 EFL_OBJECT_OP_FUNC(evas_obj_box_layout_flow_horizontal, _evas_box_layout_flow_horizontal),
224 EFL_OBJECT_OP_FUNC(evas_obj_box_count, _evas_box_count),
225 EFL_OBJECT_OP_FUNC(efl_constructor, _evas_box_efl_object_constructor),
226 EFL_OBJECT_OP_FUNC(efl_gfx_entity_size_set, _evas_box_efl_gfx_entity_size_set),
227 EFL_OBJECT_OP_FUNC(efl_gfx_entity_position_set, _evas_box_efl_gfx_entity_position_set),
228 EFL_OBJECT_OP_FUNC(efl_canvas_group_calculate, _evas_box_efl_canvas_group_group_calculate),
229 EVAS_BOX_EXTRA_OPS
230 );
231 opsp = &ops;
232
233 return efl_class_functions_set(klass, opsp, ropsp);
234}
235
236static const Efl_Class_Description _evas_box_class_desc = {
237 EO_VERSION,
238 "Evas.Box",
239 EFL_CLASS_TYPE_REGULAR,
240 sizeof(Evas_Object_Box_Data),
241 _evas_box_class_initializer,
242 _evas_box_class_constructor,
243 NULL
244};
245
246EFL_DEFINE_CLASS(evas_box_class_get, &_evas_box_class_desc, EFL_CANVAS_GROUP_CLASS, NULL);
247
248#include "evas_box_eo.legacy.c"
diff --git a/src/lib/evas/canvas/evas_box_eo.h b/src/lib/evas/canvas/evas_box_eo.h
new file mode 100644
index 0000000000..2f36d7c490
--- /dev/null
+++ b/src/lib/evas/canvas/evas_box_eo.h
@@ -0,0 +1,818 @@
1#ifndef _EVAS_BOX_EO_H_
2#define _EVAS_BOX_EO_H_
3
4#ifndef _EVAS_BOX_EO_CLASS_TYPE
5#define _EVAS_BOX_EO_CLASS_TYPE
6
7typedef Eo Evas_Box;
8
9#endif
10
11#ifndef _EVAS_BOX_EO_TYPES
12#define _EVAS_BOX_EO_TYPES
13
14
15#endif
16/** Evas box class
17 *
18 * @ingroup Evas_Box
19 */
20#define EVAS_BOX_CLASS evas_box_class_get()
21
22EWAPI const Efl_Class *evas_box_class_get(void);
23
24/**
25 * @brief Set the alignment of the whole bounding box of contents, for a given
26 * box object.
27 *
28 * This will influence how a box object is to align its bounding box of
29 * contents within its own area. The values must be in the range $0.0 - $1.0,
30 * or undefined behavior is expected. For horizontal alignment, $0.0 means to
31 * the left, with $1.0 meaning to the right. For vertical alignment, $0.0 means
32 * to the top, with $1.0 meaning to the bottom.
33 *
34 * @note The default values for both alignments is $0.5.
35 *
36 * See also @ref evas_obj_box_align_get.
37 *
38 * @param[in] obj The object.
39 * @param[in] horizontal The horizontal alignment, in pixels.
40 * @param[in] vertical The vertical alignment, in pixels.
41 *
42 * @ingroup Evas_Box
43 */
44EOAPI void evas_obj_box_align_set(Eo *obj, double horizontal, double vertical);
45
46/**
47 * @brief Get the alignment of the whole bounding box of contents, for a given
48 * box object.
49 *
50 * See also @ref evas_obj_box_align_set for more information.
51 *
52 * @param[in] obj The object.
53 * @param[out] horizontal The horizontal alignment, in pixels.
54 * @param[out] vertical The vertical alignment, in pixels.
55 *
56 * @ingroup Evas_Box
57 */
58EOAPI void evas_obj_box_align_get(const Eo *obj, double *horizontal, double *vertical);
59
60/**
61 * @brief Set the (space) padding between cells set for a given box object.
62 *
63 * @note The default values for both padding components is $0.
64 *
65 * See also @ref evas_obj_box_padding_get.
66 *
67 * @param[in] obj The object.
68 * @param[in] horizontal The horizontal padding, in pixels.
69 * @param[in] vertical The vertical padding, in pixels.
70 *
71 * @ingroup Evas_Box
72 */
73EOAPI void evas_obj_box_padding_set(Eo *obj, int horizontal, int vertical);
74
75/**
76 * @brief Get the (space) padding between cells set for a given box object.
77 *
78 * See also @ref evas_obj_box_padding_set.
79 *
80 * @param[in] obj The object.
81 * @param[out] horizontal The horizontal padding, in pixels.
82 * @param[out] vertical The vertical padding, in pixels.
83 *
84 * @ingroup Evas_Box
85 */
86EOAPI void evas_obj_box_padding_get(const Eo *obj, int *horizontal, int *vertical);
87
88/**
89 * @brief Set a new layouting function to a given box object
90 *
91 * A box layout function affects how a box object displays child elements
92 * within its area. The list of pre-defined box layouts available in Evas are
93 * @ref evas_obj_box_layout_horizontal, @ref evas_obj_box_layout_vertical,
94 * @ref evas_obj_box_layout_homogeneous_horizontal,
95 * @ref evas_obj_box_layout_homogeneous_vertical,
96 * @ref evas_obj_box_layout_homogeneous_max_size_horizontal,
97 * @ref evas_obj_box_layout_homogeneous_max_size_vertical,
98 * @ref evas_obj_box_layout_flow_horizontal,
99 * @ref evas_obj_box_layout_flow_vertical and @ref evas_obj_box_layout_stack
100 *
101 * Refer to each of their documentation texts for details on them.
102 *
103 * @note A box layouting function will be triggered by the $'calculate' smart
104 * callback of the box's smart class.
105 *
106 * @param[in] obj The object.
107 * @param[in] cb The new layout function to set on @c o.
108 * @param[in] data Data pointer to be passed to @c cb.
109 * @param[in] free_data Function to free @c data, if need be.
110 *
111 * @ingroup Evas_Box
112 */
113EOAPI void evas_obj_box_layout_set(Eo *obj, Evas_Object_Box_Layout cb, const void *data, Eina_Free_Cb free_data) EINA_ARG_NONNULL(2);
114
115/**
116 * @brief Layout function which sets the box o to a (basic) horizontal box
117 *
118 * In this layout, the box object's overall behavior is controlled by its
119 * padding/alignment properties, which are set by the
120 * evas_object_box_{h,v}_{align,padding}_set family of functions. The size
121 * hints of the elements in the box -- set by the
122 * evas_object_size_hint_{align,padding,weight}_set functions -- also control
123 * the way this function works.
124 *
125 * Box's properties: @c align_h controls the horizontal alignment of the child
126 * objects relative to the containing box. When set to $0.0, children are
127 * aligned to the left. A value of $1.0 makes them aligned to the right border.
128 * Values in between align them proportionally. Note that if the size required
129 * by the children, which is given by their widths and the @c padding_h
130 * property of the box, is bigger than the their container's width, the
131 * children will be displayed out of the box's bounds. A negative value of
132 * @c align_h makes the box to justify its children. The padding between them,
133 * in this case, is corrected so that the leftmost one touches the left border
134 * and the rightmost one touches the right border (even if they must overlap).
135 * The @c align_v and @c padding_v properties of the box don't contribute to
136 * its behaviour when this layout is chosen.
137 *
138 * Child element's properties: @c align_x does not influence the box's
139 * behavior. @c padding_l and @c padding_r sum up to the container's horizontal
140 * padding between elements. The child's @c padding_t, @c padding_b and
141 * @c align_y properties apply for padding/alignment relative to the overall
142 * height of the box. Finally, there is the @c weight_x property, which, if set
143 * to a non-zero value, tells the container that the child width is not
144 * pre-defined. If the container can't accommodate all its children, it sets
145 * the widths of the ones with weights to sizes as small as they can all fit
146 * into it. If the size required by the children is less than the available,
147 * the box increases its childrens' (which have weights) widths as to fit the
148 * remaining space. The @c weight_x property, besides telling the element is
149 * resizable, gives a weight for the resizing process. The parent box will try
150 * to distribute (or take off) widths accordingly to the normalized list of
151 * weights: most weighted children remain/get larger in this process than the
152 * least ones. @c weight_y does not influence the layout.
153 *
154 * If one desires that, besides having weights, child elements must be resized
155 * bounded to a minimum or maximum size, those size hints must be set, by the
156 * evas_object_size_hint_{min,max}_set functions.
157 *
158 * @param[in] obj The object.
159 * @param[in] priv Private data pointer
160 * @param[in] data Data pointer
161 *
162 * @ingroup Evas_Box
163 */
164EOAPI void evas_obj_box_layout_horizontal(Eo *obj, Evas_Object_Box_Data *priv, void *data);
165
166/**
167 * @brief Layout function which sets the box o to a (basic) vertical box
168 *
169 * This function behaves analogously to evas_object_box_layout_horizontal. The
170 * description of its behaviour can be derived from that function's
171 * documentation.
172 *
173 * @param[in] obj The object.
174 * @param[in] priv Private data pointer
175 * @param[in] data Data pointer
176 *
177 * @ingroup Evas_Box
178 */
179EOAPI void evas_obj_box_layout_vertical(Eo *obj, Evas_Object_Box_Data *priv, void *data);
180
181/**
182 * @brief Layout function which sets the box o to a maximum size, homogeneous
183 * horizontal box
184 *
185 * In a maximum size, homogeneous horizontal box, besides having cells of equal
186 * size reserved for the child objects, this size will be defined by the size
187 * of the largest child in the box (in width). The box's overall behavior is
188 * controlled by its properties, which are set by the
189 * evas_object_box_{h,v}_{align,padding}_set family of functions. The size
190 * hints of the elements in the box -- set by the
191 * evas_object_size_hint_{align,padding,weight}_set functions -- also control
192 * the way this function works.
193 *
194 * Box's properties: @c padding_h tells the box to draw empty spaces of that
195 * size, in pixels, between the child objects' cells. @c align_h controls the
196 * horizontal alignment of the child objects, relative to the containing box.
197 * When set to $0.0, children are aligned to the left. A value of $1.0 lets
198 * them aligned to the right border. Values in between align them
199 * proportionally. A negative value of @c align_h makes the box to justify its
200 * children cells. The padding between them, in this case, is corrected so that
201 * the leftmost one touches the left border and the rightmost one touches the
202 * right border (even if they must overlap). The @c align_v and @c padding_v
203 * properties of the box don't contribute to its behaviour when this layout is
204 * chosen.
205 *
206 * Child element's properties: @c padding_l and @c padding_r sum up to the
207 * required width of the child element. The @c align_x property tells the
208 * relative position of this overall child width in its allocated cell ($0.0 to
209 * extreme left, $1.0 to extreme right). A value of $-1.0 to @c align_x makes
210 * the box try to resize this child element to the exact width of its cell
211 * (respecting the minimum and maximum size hints on the child's width and
212 * accounting for its horizontal padding hints). The child's @c padding_t,
213 * @c padding_b and @c align_y properties apply for padding/alignment relative
214 * to the overall height of the box. A value of $-1.0 to @c align_y makes the
215 * box try to resize this child element to the exact height of its parent
216 * (respecting the max hint on the child's height).
217 *
218 * @param[in] obj The object.
219 * @param[in] priv Private data pointer
220 * @param[in] data Data pointer
221 *
222 * @ingroup Evas_Box
223 */
224EOAPI void evas_obj_box_layout_homogeneous_max_size_horizontal(Eo *obj, Evas_Object_Box_Data *priv, void *data);
225
226/**
227 * @brief No description supplied by the EAPI.
228 *
229 * @param[in] obj The object.
230 * @param[in] child Child object to be removed
231 *
232 * @return New object with child removed
233 *
234 * @ingroup Evas_Box
235 */
236EOAPI Efl_Canvas_Object *evas_obj_box_internal_remove(Eo *obj, Efl_Canvas_Object *child);
237
238/**
239 * @brief Layout function which sets the box o to a flow vertical box.
240 *
241 * This function behaves analogously to evas_object_box_layout_flow_horizontal.
242 * The description of its behaviour can be derived from that function's
243 * documentation.
244 *
245 * @param[in] obj The object.
246 * @param[in] priv Private data pointer
247 * @param[in] data Data pointer
248 *
249 * @ingroup Evas_Box
250 */
251EOAPI void evas_obj_box_layout_flow_vertical(Eo *obj, Evas_Object_Box_Data *priv, void *data);
252
253/**
254 * @brief No description supplied by the EAPI.
255 *
256 * @param[in] obj The object.
257 * @param[in] opt Box option to be freed
258 *
259 * @ingroup Evas_Box
260 */
261EOAPI void evas_obj_box_internal_option_free(Eo *obj, Evas_Object_Box_Option *opt);
262
263/**
264 * @brief Insert a new child object after another existing one, in a given box
265 * object o.
266 *
267 * On success, the $"child,added" smart event will take place.
268 *
269 * @note This function will fail if @c reference is not a member of @c o.
270 *
271 * @note The actual placing of the item relative to @c o's area will depend on
272 * the layout set to it.
273 *
274 * @note This call will trigger the box's _Evas_Object_Box_Api.insert_after
275 * smart function.
276 *
277 * @param[in] obj The object.
278 * @param[in] child A child Evas object to be made a member of @c o.
279 * @param[in] reference The child object to place this new one after.
280 *
281 * @return A box option bound to the recently added box item or @c null, on
282 * errors
283 *
284 * @ingroup Evas_Box
285 */
286EOAPI Evas_Object_Box_Option *evas_obj_box_insert_after(Eo *obj, Efl_Canvas_Object *child, const Efl_Canvas_Object *reference) EINA_ARG_NONNULL(2, 3);
287
288/**
289 * @brief Remove all child objects from a box object, unparenting them again.
290 *
291 * This has the same effect of calling evas_object_box_remove on each of @c o's
292 * child objects, in sequence. If, and only if, all those calls succeed, so
293 * does this one.
294 *
295 * @param[in] obj The object.
296 * @param[in] clear If @c true, it will delete just removed children.
297 *
298 * @return @c true on success, @c false otherwise.
299 *
300 * @ingroup Evas_Box
301 */
302EOAPI Eina_Bool evas_obj_box_remove_all(Eo *obj, Eina_Bool clear);
303
304/**
305 * @brief Get an iterator to walk the list of children of a given box object.