summaryrefslogtreecommitdiff
path: root/src/lib/edje
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/edje')
-rw-r--r--src/lib/edje/Edje_Eo.h2
-rw-r--r--src/lib/edje/Edje_Legacy.h6
-rw-r--r--src/lib/edje/edje_box_layout.c2
-rw-r--r--src/lib/edje/edje_calc.c101
-rw-r--r--src/lib/edje/edje_data.c3
-rw-r--r--src/lib/edje/edje_edit.c42
-rw-r--r--src/lib/edje/edje_edit.eo16
-rw-r--r--src/lib/edje/edje_edit_eo.c43
-rw-r--r--src/lib/edje/edje_edit_eo.h28
-rw-r--r--src/lib/edje/edje_edit_eo.legacy.h17
-rw-r--r--src/lib/edje/edje_legacy.c5
-rw-r--r--src/lib/edje/edje_load.c43
-rw-r--r--src/lib/edje/edje_part_box.c8
-rw-r--r--src/lib/edje/edje_part_external.c14
-rw-r--r--src/lib/edje/edje_part_invalid.c1
-rw-r--r--src/lib/edje/edje_part_swallow.c2
-rw-r--r--src/lib/edje/edje_part_table.c8
-rw-r--r--src/lib/edje/edje_private.h8
-rw-r--r--src/lib/edje/edje_smart.c49
-rw-r--r--src/lib/edje/edje_text.c2
-rw-r--r--src/lib/edje/edje_util.c12
-rw-r--r--src/lib/edje/efl_canvas_layout.eo21
-rw-r--r--src/lib/edje/efl_canvas_layout_eo.legacy.c36
-rw-r--r--src/lib/edje/efl_canvas_layout_eo.legacy.h115
-rw-r--r--src/lib/edje/efl_canvas_layout_part_box.eo1
-rw-r--r--src/lib/edje/efl_canvas_layout_part_external.eo3
-rw-r--r--src/lib/edje/efl_canvas_layout_part_invalid.eo1
-rw-r--r--src/lib/edje/efl_canvas_layout_part_table.eo1
-rw-r--r--src/lib/edje/efl_layout_calc.eo3
-rw-r--r--src/lib/edje/efl_layout_group.eo1
-rw-r--r--src/lib/edje/efl_layout_group_eo.legacy.c6
-rw-r--r--src/lib/edje/efl_layout_group_eo.legacy.h48
-rw-r--r--src/lib/edje/meson.build18
33 files changed, 482 insertions, 184 deletions
diff --git a/src/lib/edje/Edje_Eo.h b/src/lib/edje/Edje_Eo.h
index 859d4d0183..b42fb866e9 100644
--- a/src/lib/edje/Edje_Eo.h
+++ b/src/lib/edje/Edje_Eo.h
@@ -4,7 +4,7 @@
4#include "efl_layout_signal.eo.h" 4#include "efl_layout_signal.eo.h"
5#include "efl_layout_group.eo.h" 5#include "efl_layout_group.eo.h"
6#include "efl_canvas_layout.eo.h" 6#include "efl_canvas_layout.eo.h"
7#include "edje_edit.eo.h" 7#include "edje_edit_eo.h"
8 8
9#include "efl_canvas_layout_part.eo.h" 9#include "efl_canvas_layout_part.eo.h"
10#include "efl_canvas_layout_part_box.eo.h" 10#include "efl_canvas_layout_part_box.eo.h"
diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h
index 447118c529..863c9e69be 100644
--- a/src/lib/edje/Edje_Legacy.h
+++ b/src/lib/edje/Edje_Legacy.h
@@ -3174,6 +3174,6 @@ typedef Efl_Canvas_Layout_Part_Type Edje_Part_Type;
3174/** 3174/**
3175 * @} 3175 * @}
3176 */ 3176 */
3177#include "efl_canvas_layout.eo.legacy.h" 3177#include "efl_canvas_layout_eo.legacy.h"
3178#include "edje_edit.eo.legacy.h" 3178#include "edje_edit_eo.legacy.h"
3179#include "efl_layout_group.eo.legacy.h" 3179#include "efl_layout_group_eo.legacy.h"
diff --git a/src/lib/edje/edje_box_layout.c b/src/lib/edje/edje_box_layout.c
index 8eb73bb071..a1c0d6048a 100644
--- a/src/lib/edje/edje_box_layout.c
+++ b/src/lib/edje/edje_box_layout.c
@@ -1,6 +1,6 @@
1#include "edje_private.h" 1#include "edje_private.h"
2 2
3#include "../evas/canvas/evas_box.eo.h" 3#include "../evas/canvas/evas_box_eo.h"
4 4
5#include <Eo.h> 5#include <Eo.h>
6 6
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 2af652c513..c558cf8055 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -2,7 +2,7 @@
2 2
3#include "edje_private.h" 3#include "edje_private.h"
4 4
5#include "../evas/canvas/evas_table.eo.h" 5#include "../evas/canvas/evas_table_eo.h"
6 6
7static void _edje_part_make_rtl(Edje_Part_Description_Common *desc); 7static void _edje_part_make_rtl(Edje_Part_Description_Common *desc);
8static Edje_Part_Description_Common *_edje_get_description_by_orientation(Edje *ed, Edje_Part_Description_Common *src, Edje_Part_Description_Common **dst, unsigned char type); 8static Edje_Part_Description_Common *_edje_get_description_by_orientation(Edje *ed, Edje_Part_Description_Common *src, Edje_Part_Description_Common **dst, unsigned char type);
@@ -2397,12 +2397,29 @@ _edje_filter_get(Edje *ed, Edje_Part_Description_Spec_Filter *filter)
2397static void 2397static void
2398_edje_part_pixel_adjust(Edje *ed, 2398_edje_part_pixel_adjust(Edje *ed,
2399 Edje_Real_Part *ep, 2399 Edje_Real_Part *ep,
2400 Edje_Calc_Params *params) 2400 Edje_Calc_Params *params,
2401 Eina_Bool round)
2401{ 2402{
2403 int xw, yh, fxw, fyh;
2404
2405 xw = ABS(params->final.x) + params->final.w;
2406 yh = ABS(params->final.y) + params->final.h;
2407
2408 if (round)
2409 {
2410 fxw = TO_INT_ROUND(ADD(ABS(params->eval.x), params->eval.w));
2411 fyh = TO_INT_ROUND(ADD(ABS(params->eval.y), params->eval.h));
2412 }
2413 else
2414 {
2415 fxw = TO_INT(ADD(ABS(params->eval.x), params->eval.w));
2416 fyh = TO_INT(ADD(ABS(params->eval.y), params->eval.h));
2417 }
2418
2402 /* Adjust rounding to not loose one pixels compared to float 2419 /* Adjust rounding to not loose one pixels compared to float
2403 information only when rendering to avoid infinite adjustement 2420 information only when rendering to avoid infinite adjustement
2404 when doing min restricted calc */ 2421 when doing min restricted calc */
2405 if (ABS(params->final.x) + params->final.w < TO_INT(ADD(ABS(params->eval.x), params->eval.w))) 2422 if (xw < fxw)
2406 { 2423 {
2407 if (!ed->calc_only) 2424 if (!ed->calc_only)
2408 { 2425 {
@@ -2413,7 +2430,7 @@ _edje_part_pixel_adjust(Edje *ed,
2413 ep->invalidate = EINA_TRUE; 2430 ep->invalidate = EINA_TRUE;
2414 } 2431 }
2415 } 2432 }
2416 else if (ABS(params->final.x) + params->final.w > TO_INT(ADD(ABS(params->eval.x), params->eval.w))) 2433 else if (xw > fxw)
2417 { 2434 {
2418 if (!ed->calc_only) 2435 if (!ed->calc_only)
2419 { 2436 {
@@ -2424,7 +2441,8 @@ _edje_part_pixel_adjust(Edje *ed,
2424 ep->invalidate = EINA_TRUE; 2441 ep->invalidate = EINA_TRUE;
2425 } 2442 }
2426 } 2443 }
2427 if (ABS(params->final.y) + params->final.h < TO_INT(ADD(ABS(params->eval.y), params->eval.h))) 2444
2445 if (yh < fyh)
2428 { 2446 {
2429 if (!ed->calc_only) 2447 if (!ed->calc_only)
2430 { 2448 {
@@ -2435,7 +2453,7 @@ _edje_part_pixel_adjust(Edje *ed,
2435 ep->invalidate = EINA_TRUE; 2453 ep->invalidate = EINA_TRUE;
2436 } 2454 }
2437 } 2455 }
2438 else if (ABS(params->final.y) + params->final.h > TO_INT(ADD(ABS(params->eval.y), params->eval.h))) 2456 else if (yh > fyh)
2439 { 2457 {
2440 if (!ed->calc_only) 2458 if (!ed->calc_only)
2441 { 2459 {
@@ -2447,6 +2465,8 @@ _edje_part_pixel_adjust(Edje *ed,
2447 } 2465 }
2448 } 2466 }
2449 2467
2468 if (params->final.w < 0 || params->final.h < 0)
2469 ERR("The params final size became negative");
2450} 2470}
2451 2471
2452static void 2472static void
@@ -2991,7 +3011,7 @@ _edje_part_recalc_single(Edje *ed,
2991 params->final.w = TO_INT(params->eval.w); 3011 params->final.w = TO_INT(params->eval.w);
2992 params->final.h = TO_INT(params->eval.h); 3012 params->final.h = TO_INT(params->eval.h);
2993 3013
2994 _edje_part_pixel_adjust(ed, ep, params); 3014 _edje_part_pixel_adjust(ed, ep, params, EINA_FALSE);
2995 /* fill */ 3015 /* fill */
2996 if (ep->part->type == EDJE_PART_TYPE_IMAGE) 3016 if (ep->part->type == EDJE_PART_TYPE_IMAGE)
2997 _edje_part_recalc_single_fill(ep, &((Edje_Part_Description_Image *)desc)->image.fill, params); 3017 _edje_part_recalc_single_fill(ep, &((Edje_Part_Description_Image *)desc)->image.fill, params);
@@ -3242,7 +3262,7 @@ _edje_vector_load_json(Edje *ed, Edje_Real_Part *ep, const char *key)
3242 json_data = (char *)eet_read(ed->file->ef, key, &json_data_len); 3262 json_data = (char *)eet_read(ed->file->ef, key, &json_data_len);
3243 json_data[json_data_len] = '\0'; 3263 json_data[json_data_len] = '\0';
3244 file = eina_file_virtualize(NULL, json_data, json_data_len + 1, EINA_FALSE); 3264 file = eina_file_virtualize(NULL, json_data, json_data_len + 1, EINA_FALSE);
3245 efl_file_mmap_set(ep->object, file, NULL); 3265 efl_file_simple_mmap_load(ep->object, file, NULL);
3246 3266
3247 if (ep->typedata.vector->json_virtual_file) 3267 if (ep->typedata.vector->json_virtual_file)
3248 eina_file_close(ep->typedata.vector->json_virtual_file); 3268 eina_file_close(ep->typedata.vector->json_virtual_file);
@@ -3303,17 +3323,17 @@ _edje_vector_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3 EIN
3303 3323
3304 if ((new_id < 0) || (new_type == EDJE_VECTOR_FILE_TYPE_JSON)) 3324 if ((new_id < 0) || (new_type == EDJE_VECTOR_FILE_TYPE_JSON))
3305 { 3325 {
3306 efl_file_set(ep->object, ed->file->path, src_key); 3326 efl_file_simple_load(ep->object, ed->file->path, src_key);
3307 } 3327 }
3308 else 3328 else
3309 { 3329 {
3310 snprintf(dest_key, sizeof(dest_key), "edje/vectors/%i", new_id); 3330 snprintf(dest_key, sizeof(dest_key), "edje/vectors/%i", new_id);
3311 3331
3312 efl_file_set(ep->object, ed->file->path, src_key); 3332 efl_file_simple_load(ep->object, ed->file->path, src_key);
3313 src_root = efl_canvas_vg_object_root_node_get(ep->object); 3333 src_root = efl_canvas_vg_object_root_node_get(ep->object);
3314 efl_ref(src_root); 3334 efl_ref(src_root);
3315 3335
3316 efl_file_set(ep->object, ed->file->path, dest_key); 3336 efl_file_simple_load(ep->object, ed->file->path, dest_key);
3317 dest_root = efl_canvas_vg_object_root_node_get(ep->object); 3337 dest_root = efl_canvas_vg_object_root_node_get(ep->object);
3318 efl_ref(dest_root); 3338 efl_ref(dest_root);
3319 3339
@@ -3593,7 +3613,7 @@ _edje_physics_body_add(Edje *ed, Edje_Real_Part *rp, EPhysics_World *world)
3593 ? (_x1) \ 3613 ? (_x1) \
3594 : ADD(_x1, MUL(_p, SUB(_x2, _x1)))); 3614 : ADD(_x1, MUL(_p, SUB(_x2, _x1))));
3595 3615
3596#define INTP(_x1, _x2, _p) TO_INT(FINTP(_x1, _x2, _p)) 3616#define INTP(_x1, _x2, _p) TO_INT_ROUND(FINTP(_x1, _x2, _p))
3597 3617
3598static void 3618static void
3599_map_colors_free(Edje_Calc_Params *pf) 3619_map_colors_free(Edje_Calc_Params *pf)
@@ -3780,7 +3800,7 @@ _edje_map_prop_set(Evas_Map *map, const Edje_Calc_Params *pf,
3780#define Rel2X 2 3800#define Rel2X 2
3781#define Rel2Y 3 3801#define Rel2Y 3
3782static Eina_Bool 3802static Eina_Bool
3783_circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Eina_List **clist) 3803_circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Eina_Array *arr)
3784{ 3804{
3785 Edje_Real_Part *rp = NULL; 3805 Edje_Real_Part *rp = NULL;
3786 3806
@@ -3794,18 +3814,18 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein
3794 if (cep->param1.description->rel1.id_x >= 0) 3814 if (cep->param1.description->rel1.id_x >= 0)
3795 { 3815 {
3796 rp = ed->table_parts[cep->param1.description->rel1.id_x]; 3816 rp = ed->table_parts[cep->param1.description->rel1.id_x];
3797 if (_circular_dependency_find(ed, ep, rp, clist)) 3817 if (_circular_dependency_find(ed, ep, rp, arr))
3798 { 3818 {
3799 *clist = eina_list_prepend(*clist, rp->part->name); 3819 eina_array_push(arr, eina_stringshare_ref(rp->part->name));
3800 return EINA_TRUE; 3820 return EINA_TRUE;
3801 } 3821 }
3802 } 3822 }
3803 if (cep->param1.description->rel2.id_x >= 0) 3823 if (cep->param1.description->rel2.id_x >= 0)
3804 { 3824 {
3805 rp = ed->table_parts[cep->param1.description->rel2.id_x]; 3825 rp = ed->table_parts[cep->param1.description->rel2.id_x];
3806 if (_circular_dependency_find(ed, ep, rp, clist)) 3826 if (_circular_dependency_find(ed, ep, rp, arr))
3807 { 3827 {
3808 *clist = eina_list_prepend(*clist, rp->part->name); 3828 eina_array_push(arr, eina_stringshare_ref(rp->part->name));
3809 return EINA_TRUE; 3829 return EINA_TRUE;
3810 } 3830 }
3811 } 3831 }
@@ -3816,18 +3836,18 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein
3816 if (cep->param2->description->rel1.id_x >= 0) 3836 if (cep->param2->description->rel1.id_x >= 0)
3817 { 3837 {
3818 rp = ed->table_parts[cep->param2->description->rel1.id_x]; 3838 rp = ed->table_parts[cep->param2->description->rel1.id_x];
3819 if (_circular_dependency_find(ed, ep, rp, clist)) 3839 if (_circular_dependency_find(ed, ep, rp, arr))
3820 { 3840 {
3821 *clist = eina_list_prepend(*clist, rp->part->name); 3841 eina_array_push(arr, eina_stringshare_ref(rp->part->name));
3822 return EINA_TRUE; 3842 return EINA_TRUE;
3823 } 3843 }
3824 } 3844 }
3825 if (cep->param2->description->rel2.id_x >= 0) 3845 if (cep->param2->description->rel2.id_x >= 0)
3826 { 3846 {
3827 rp = ed->table_parts[cep->param2->description->rel2.id_x]; 3847 rp = ed->table_parts[cep->param2->description->rel2.id_x];
3828 if (_circular_dependency_find(ed, ep, rp, clist)) 3848 if (_circular_dependency_find(ed, ep, rp, arr))
3829 { 3849 {
3830 *clist = eina_list_prepend(*clist, rp->part->name); 3850 eina_array_push(arr, eina_stringshare_ref(rp->part->name));
3831 return EINA_TRUE; 3851 return EINA_TRUE;
3832 } 3852 }
3833 } 3853 }
@@ -3840,18 +3860,18 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein
3840 if (cep->param1.description->rel1.id_y >= 0) 3860 if (cep->param1.description->rel1.id_y >= 0)
3841 { 3861 {
3842 rp = ed->table_parts[cep->param1.description->rel1.id_y]; 3862 rp = ed->table_parts[cep->param1.description->rel1.id_y];
3843 if (_circular_dependency_find(ed, ep, rp, clist)) 3863 if (_circular_dependency_find(ed, ep, rp, arr))
3844 { 3864 {
3845 *clist = eina_list_prepend(*clist, rp->part->name); 3865 eina_array_push(arr, eina_stringshare_ref(rp->part->name));
3846 return EINA_TRUE; 3866 return EINA_TRUE;
3847 } 3867 }
3848 } 3868 }
3849 if (cep->param1.description->rel2.id_y >= 0) 3869 if (cep->param1.description->rel2.id_y >= 0)
3850 { 3870 {
3851 rp = ed->table_parts[cep->param1.description->rel2.id_y]; 3871 rp = ed->table_parts[cep->param1.description->rel2.id_y];
3852 if (_circular_dependency_find(ed, ep, rp, clist)) 3872 if (_circular_dependency_find(ed, ep, rp, arr))
3853 { 3873 {
3854 *clist = eina_list_prepend(*clist, rp->part->name); 3874 eina_array_push(arr, eina_stringshare_ref(rp->part->name));
3855 return EINA_TRUE; 3875 return EINA_TRUE;
3856 } 3876 }
3857 } 3877 }
@@ -3861,18 +3881,18 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein
3861 if (cep->param2->description->rel1.id_y >= 0) 3881 if (cep->param2->description->rel1.id_y >= 0)
3862 { 3882 {
3863 rp = ed->table_parts[cep->param2->description->rel1.id_y]; 3883 rp = ed->table_parts[cep->param2->description->rel1.id_y];
3864 if (_circular_dependency_find(ed, ep, rp, clist)) 3884 if (_circular_dependency_find(ed, ep, rp, arr))
3865 { 3885 {
3866 *clist = eina_list_prepend(*clist, rp->part->name); 3886 eina_array_push(arr, eina_stringshare_ref(rp->part->name));
3867 return EINA_TRUE; 3887 return EINA_TRUE;
3868 } 3888 }
3869 } 3889 }
3870 if (cep->param2->description->rel2.id_y >= 0) 3890 if (cep->param2->description->rel2.id_y >= 0)
3871 { 3891 {
3872 rp = ed->table_parts[cep->param2->description->rel2.id_y]; 3892 rp = ed->table_parts[cep->param2->description->rel2.id_y];
3873 if (_circular_dependency_find(ed, ep, rp, clist)) 3893 if (_circular_dependency_find(ed, ep, rp, arr))
3874 { 3894 {
3875 *clist = eina_list_prepend(*clist, rp->part->name); 3895 eina_array_push(arr, eina_stringshare_ref(rp->part->name));
3876 return EINA_TRUE; 3896 return EINA_TRUE;
3877 } 3897 }
3878 } 3898 }
@@ -4032,26 +4052,29 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
4032 axes, ep->calculating, 4052 axes, ep->calculating,
4033 faxes, flags); 4053 faxes, flags);
4034 4054
4035 Eina_List *clist = NULL; 4055 Eina_Array *part_array = eina_array_new(10);;
4036 Eina_List *l = NULL;
4037 char *part_name;
4038 char depends_path[PATH_MAX] = "";
4039 4056
4040 if (_circular_dependency_find(ed, ep, NULL, &clist)) 4057 if (_circular_dependency_find(ed, ep, NULL, part_array))
4041 { 4058 {
4059 Eina_Array_Iterator it;
4060 unsigned int i;
4061 char *part_name;
4062 char depends_path[PATH_MAX] = "";
4063
4064 efl_event_callback_legacy_call(ed->obj, EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY, part_array);
4042 strncat(depends_path, ep->part->name, 4065 strncat(depends_path, ep->part->name,
4043 sizeof(depends_path) - strlen(depends_path) - 1); 4066 sizeof(depends_path) - strlen(depends_path) - 1);
4044 EINA_LIST_FOREACH(clist, l, part_name) 4067 EINA_ARRAY_ITER_NEXT(part_array, i, part_name, it)
4045 { 4068 {
4046 strncat(depends_path, " -> ", 4069 strncat(depends_path, " -> ",
4047 sizeof(depends_path) - strlen(depends_path) - 1); 4070 sizeof(depends_path) - strlen(depends_path) - 1);
4048 strncat(depends_path, part_name, 4071 strncat(depends_path, part_name,
4049 sizeof(depends_path) - strlen(depends_path) - 1); 4072 sizeof(depends_path) - strlen(depends_path) - 1);
4073 eina_stringshare_del(part_name);
4050 } 4074 }
4051 efl_event_callback_legacy_call(ed->obj, EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY, clist);
4052 ERR("Circular dependency in the group '%s' : %s", 4075 ERR("Circular dependency in the group '%s' : %s",
4053 ed->group, depends_path); 4076 ed->group, depends_path);
4054 eina_list_free(clist); 4077 eina_array_free(part_array);
4055 } 4078 }
4056#endif 4079#endif
4057 return; 4080 return;
@@ -4477,7 +4500,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
4477 p3->req.w = INTP(p1->req.w, p2->req.w, pos); 4500 p3->req.w = INTP(p1->req.w, p2->req.w, pos);
4478 p3->req.h = INTP(p1->req.h, p2->req.h, pos); 4501 p3->req.h = INTP(p1->req.h, p2->req.h, pos);
4479 4502
4480 _edje_part_pixel_adjust(ed, ep, p3); 4503 _edje_part_pixel_adjust(ed, ep, p3, EINA_TRUE);
4481 4504
4482 if (ep->part->dragable.x) 4505 if (ep->part->dragable.x)
4483 { 4506 {
@@ -5067,7 +5090,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
5067 proxy = ed->file->image_dir->entries[pd_mesh_node->mesh_node.texture.id].entry; 5090 proxy = ed->file->image_dir->entries[pd_mesh_node->mesh_node.texture.id].entry;
5068 if (proxy) 5091 if (proxy)
5069 { 5092 {
5070 efl_file_mmap_set(texture, ed->file->f, proxy); 5093 efl_file_simple_mmap_load(texture, ed->file->f, proxy);
5071 evas_canvas3d_texture_filter_set(texture, pd_mesh_node->mesh_node.texture.filter1, pd_mesh_node->mesh_node.texture.filter2); 5094 evas_canvas3d_texture_filter_set(texture, pd_mesh_node->mesh_node.texture.filter1, pd_mesh_node->mesh_node.texture.filter2);
5072 evas_canvas3d_texture_wrap_set(texture, pd_mesh_node->mesh_node.texture.wrap1, pd_mesh_node->mesh_node.texture.wrap2); 5095 evas_canvas3d_texture_wrap_set(texture, pd_mesh_node->mesh_node.texture.wrap1, pd_mesh_node->mesh_node.texture.wrap2);
5073 } 5096 }
diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index ba8e702d7e..c273b4db02 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -299,6 +299,8 @@ _edje_edd_shutdown(void)
299 FREED(_edje_edd_edje_part_description_external); 299 FREED(_edje_edd_edje_part_description_external);
300 FREED(_edje_edd_edje_part_description_mesh_node); 300 FREED(_edje_edd_edje_part_description_mesh_node);
301 FREED(_edje_edd_edje_part_description_light); 301 FREED(_edje_edd_edje_part_description_light);
302 FREED(_edje_edd_edje_part_description_vector);
303 FREED(_edje_edd_edje_part_description_vector_pointer);
302 FREED(_edje_edd_edje_part_description_camera); 304 FREED(_edje_edd_edje_part_description_camera);
303 FREED(_edje_edd_edje_part_description_3d_color); 305 FREED(_edje_edd_edje_part_description_3d_color);
304 FREED(_edje_edd_edje_part_description_3d_offset); 306 FREED(_edje_edd_edje_part_description_3d_offset);
@@ -327,6 +329,7 @@ _edje_edd_shutdown(void)
327 FREED(_edje_edd_edje_physics_face); 329 FREED(_edje_edd_edje_physics_face);
328 FREED(_edje_edd_edje_map_colors); 330 FREED(_edje_edd_edje_map_colors);
329 FREED(_edje_edd_edje_map_colors_pointer); 331 FREED(_edje_edd_edje_map_colors_pointer);
332 FREED(_edje_edd_edje_color_tree_node);
330 333
331 FREED(_edje_edd_edje_file); 334 FREED(_edje_edd_edje_file);
332 FREED(_edje_edd_edje_part_collection); 335 FREED(_edje_edd_edje_part_collection);
diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 010b1aff6b..1c575174ec 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -12,7 +12,7 @@
12 12
13#include "edje_private.h" 13#include "edje_private.h"
14 14
15#include "canvas/evas_canvas.eo.h" 15#include "canvas/evas_canvas_eo.h"
16 16
17#define EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT 17#define EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT
18#include "Edje_Edit.h" 18#include "Edje_Edit.h"
@@ -238,11 +238,17 @@ _load_scripts(Eo *obj, Edje_Edit *eed)
238 return EINA_TRUE; 238 return EINA_TRUE;
239} 239}
240 240
241EOLIAN static Eina_Bool 241EOLIAN static Eina_Error
242_edje_edit_efl_file_file_set(Eo *obj, Edje_Edit *eed, const char *file, const char *group) 242_edje_edit_efl_file_load(Eo *obj, Edje_Edit *eed)
243{ 243{
244 Eina_Error err;
245
246 if (efl_file_loaded_get(obj)) return 0;
247
244 _edje_edit_data_clean(eed); 248 _edje_edit_data_clean(eed);
245 249
250 err = efl_file_load(efl_super(obj, MY_CLASS));
251 if (err) return err;
246 /* TODO and maybes: 252 /* TODO and maybes:
247 * * The whole point of this thing is keep track of stuff such as 253 * * The whole point of this thing is keep track of stuff such as
248 * strings to free and who knows what, so we need to take care 254 * strings to free and who knows what, so we need to take care
@@ -257,34 +263,10 @@ _edje_edit_efl_file_file_set(Eo *obj, Edje_Edit *eed, const char *file, const ch
257 * groups). 263 * groups).
258 * P.S. don't forget about mmap version below 264 * P.S. don't forget about mmap version below
259 */ 265 */
260 file = eina_vpath_resolve(file);
261
262 Eina_Bool int_ret;
263 int_ret = efl_file_set(efl_super(obj, MY_CLASS), file, group);
264
265 if (!int_ret)
266 return EINA_FALSE;
267
268 if (!_load_scripts(obj, eed))
269 return EINA_FALSE;
270
271 return EINA_TRUE;
272}
273
274EOLIAN static Eina_Bool
275_edje_edit_efl_file_mmap_set(Eo *obj, Edje_Edit *eed, const Eina_File *mmap, const char *group)
276{
277 _edje_edit_data_clean(eed);
278
279 Eina_Bool int_ret;
280 int_ret = efl_file_mmap_set(efl_super(obj, MY_CLASS), mmap, group);
281 if (!int_ret)
282 return EINA_FALSE;
283
284 if (!_load_scripts(obj, eed)) 266 if (!_load_scripts(obj, eed))
285 return EINA_FALSE; 267 return EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
286 268
287 return EINA_TRUE; 269 return 0;
288} 270}
289 271
290EAPI Evas_Object * 272EAPI Evas_Object *
@@ -16769,4 +16751,4 @@ edje_edit_print_internal_status(Evas_Object *obj)
16769#define EDJE_EDIT_EXTRA_OPS \ 16751#define EDJE_EDIT_EXTRA_OPS \
16770 EFL_CANVAS_GROUP_DEL_OPS(edje_edit) 16752 EFL_CANVAS_GROUP_DEL_OPS(edje_edit)
16771 16753
16772#include "edje_edit.eo.c" 16754#include "edje_edit_eo.c"
diff --git a/src/lib/edje/edje_edit.eo b/src/lib/edje/edje_edit.eo
deleted file mode 100644
index a7bb40a550..0000000000
--- a/src/lib/edje/edje_edit.eo
+++ /dev/null
@@ -1,16 +0,0 @@
1class Edje.Edit extends Efl.Canvas.Layout
2{
3 [[Edje editing class to access edje object internals.
4
5 This was intended ONLY for use in an actual edje editor program. Unless
6 you are writing one of these, do NOT use this API here.
7 ]]
8 legacy_prefix: edje_edit;
9 data: Edje_Edit;
10 implements {
11 Efl.Object.constructor;
12 Efl.Object.destructor;
13 Efl.File.file { set; }
14 Efl.File.mmap { set; }
15 }
16}
diff --git a/src/lib/edje/edje_edit_eo.c b/src/lib/edje/edje_edit_eo.c
new file mode 100644
index 0000000000..12fac92035
--- /dev/null
+++ b/src/lib/edje/edje_edit_eo.c
@@ -0,0 +1,43 @@
1
2Efl_Object *_edje_edit_efl_object_constructor(Eo *obj, Edje_Edit *pd);
3
4
5void _edje_edit_efl_object_destructor(Eo *obj, Edje_Edit *pd);
6
7
8Eina_Error _edje_edit_efl_file_load(Eo *obj, Edje_Edit *pd);
9
10
11static Eina_Bool
12_edje_edit_class_initializer(Efl_Class *klass)
13{
14 const Efl_Object_Ops *opsp = NULL;
15
16 const Efl_Object_Property_Reflection_Ops *ropsp = NULL;
17
18#ifndef EDJE_EDIT_EXTRA_OPS
19#define EDJE_EDIT_EXTRA_OPS
20#endif
21
22 EFL_OPS_DEFINE(ops,
23 EFL_OBJECT_OP_FUNC(efl_constructor, _edje_edit_efl_object_constructor),
24 EFL_OBJECT_OP_FUNC(efl_destructor, _edje_edit_efl_object_destructor),
25 EFL_OBJECT_OP_FUNC(efl_file_load, _edje_edit_efl_file_load),
26 EDJE_EDIT_EXTRA_OPS
27 );
28 opsp = &ops;
29
30 return efl_class_functions_set(klass, opsp, ropsp);
31}
32
33static const Efl_Class_Description _edje_edit_class_desc = {
34 EO_VERSION,
35 "Edje.Edit",
36 EFL_CLASS_TYPE_REGULAR,
37 sizeof(Edje_Edit),
38 _edje_edit_class_initializer,
39 NULL,
40 NULL
41};
42
43EFL_DEFINE_CLASS(edje_edit_class_get, &_edje_edit_class_desc, EFL_CANVAS_LAYOUT_CLASS, NULL);
diff --git a/src/lib/edje/edje_edit_eo.h b/src/lib/edje/edje_edit_eo.h
new file mode 100644
index 0000000000..f6c561a57d
--- /dev/null
+++ b/src/lib/edje/edje_edit_eo.h
@@ -0,0 +1,28 @@
1#ifndef _EDJE_EDIT_EO_H_
2#define _EDJE_EDIT_EO_H_
3
4#ifndef _EDJE_EDIT_EO_CLASS_TYPE
5#define _EDJE_EDIT_EO_CLASS_TYPE
6
7typedef Eo Edje_Edit;
8
9#endif
10
11#ifndef _EDJE_EDIT_EO_TYPES
12#define _EDJE_EDIT_EO_TYPES
13
14
15#endif
16/**
17 * @brief Edje editing class to access edje object internals.
18 *
19 * This was intended ONLY for use in an actual edje editor program. Unless you
20 * are writing one of these, do NOT use this API here.
21 *
22 * @ingroup Edje_Edit
23 */
24#define EDJE_EDIT_CLASS edje_edit_class_get()
25
26EWAPI const Efl_Class *edje_edit_class_get(void);
27
28#endif
diff --git a/src/lib/edje/edje_edit_eo.legacy.h b/src/lib/edje/edje_edit_eo.legacy.h
new file mode 100644
index 0000000000..c1429d98d2
--- /dev/null
+++ b/src/lib/edje/edje_edit_eo.legacy.h
@@ -0,0 +1,17 @@
1#ifndef _EDJE_EDIT_EO_LEGACY_H_
2#define _EDJE_EDIT_EO_LEGACY_H_
3
4#ifndef _EDJE_EDIT_EO_CLASS_TYPE
5#define _EDJE_EDIT_EO_CLASS_TYPE
6
7typedef Eo Edje_Edit;
8
9#endif
10
11#ifndef _EDJE_EDIT_EO_TYPES
12#define _EDJE_EDIT_EO_TYPES
13
14
15#endif
16
17#endif
diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c
index fead8b04be..edcc185a33 100644
--- a/src/lib/edje/edje_legacy.c
+++ b/src/lib/edje/edje_legacy.c
@@ -5,11 +5,8 @@
5EAPI Edje_Load_Error 5EAPI Edje_Load_Error
6edje_object_load_error_get(const Eo *obj) 6edje_object_load_error_get(const Eo *obj)
7{ 7{
8 Efl_Gfx_Image_Load_Error p = efl_file_load_error_get(obj);
9 Edje *ed; 8 Edje *ed;
10 9
11 if (p != EFL_GFX_IMAGE_LOAD_ERROR_NONE) return EDJE_LOAD_ERROR_DOES_NOT_EXIST;
12
13 ed = _edje_fetch(obj); 10 ed = _edje_fetch(obj);
14 if (!ed) return EDJE_LOAD_ERROR_GENERIC; 11 if (!ed) return EDJE_LOAD_ERROR_GENERIC;
15 return ed->load_error; 12 return ed->load_error;
@@ -431,7 +428,7 @@ EAPI void
431edje_object_part_text_cursor_geometry_get(const Edje_Object *obj, const char * part, int *x, int *y, int *w, int *h) 428edje_object_part_text_cursor_geometry_get(const Edje_Object *obj, const char * part, int *x, int *y, int *w, int *h)
432{ 429{
433 efl_text_cursor_geometry_get(efl_part(obj, part), 430 efl_text_cursor_geometry_get(efl_part(obj, part),
434 efl_text_cursor_get(efl_part(obj, part), EFL_TEXT_CURSOR_GET_MAIN), 431 efl_text_cursor_get(efl_part(obj, part), EFL_TEXT_CURSOR_GET_TYPE_MAIN),
435 EFL_TEXT_CURSOR_TYPE_BEFORE, 432 EFL_TEXT_CURSOR_TYPE_BEFORE,
436 x, y, w, h, NULL, NULL, NULL, NULL 433 x, y, w, h, NULL, NULL, NULL, NULL
437 ); 434 );
diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c
index 81be94e34e..7254a0e1ad 100644
--- a/src/lib/edje/edje_load.c
+++ b/src/lib/edje/edje_load.c
@@ -159,19 +159,21 @@ static int _sort_defined_boxes(const void *a, const void *b);
159 159
160/************************** API Routines **************************/ 160/************************** API Routines **************************/
161 161
162EOLIAN void 162EOLIAN const char *
163_efl_canvas_layout_efl_file_file_get(Eo *obj EINA_UNUSED, Edje *ed, const char **file, const char **group) 163_efl_canvas_layout_efl_file_file_get(Eo *obj EINA_UNUSED, Edje *ed)
164{ 164{
165 if (file) *file = ed->path; 165 return ed->path;
166 if (group) *group = ed->group;
167} 166}
168 167
169EOLIAN Efl_Gfx_Image_Load_Error 168EOLIAN const char *
170_efl_canvas_layout_efl_file_load_error_get(const Eo *obj, Edje *ed) 169_efl_canvas_layout_efl_file_group_get(Eo *obj EINA_UNUSED, Edje *ed)
171{ 170{
172 Efl_Gfx_Image_Load_Error p = efl_file_load_error_get(efl_super(obj, EFL_CANVAS_LAYOUT_CLASS)); 171 return ed->group;
172}
173 173
174 if (p != EFL_GFX_IMAGE_LOAD_ERROR_NONE) return p; 174EOLIAN Eina_Error
175_efl_canvas_layout_layout_load_error_get(const Eo *obj EINA_UNUSED, Edje *ed)
176{
175 switch (ed->load_error) 177 switch (ed->load_error)
176 { 178 {
177 case EDJE_LOAD_ERROR_NONE: return EFL_GFX_IMAGE_LOAD_ERROR_NONE; 179 case EDJE_LOAD_ERROR_NONE: return EFL_GFX_IMAGE_LOAD_ERROR_NONE;
@@ -184,8 +186,9 @@ _efl_canvas_layout_efl_file_load_error_get(const Eo *obj, Edje *ed)
184 case EDJE_LOAD_ERROR_INCOMPATIBLE_FILE: return EFL_GFX_IMAGE_LOAD_ERROR_INCOMPATIBLE_FILE; 186 case EDJE_LOAD_ERROR_INCOMPATIBLE_FILE: return EFL_GFX_IMAGE_LOAD_ERROR_INCOMPATIBLE_FILE;
185 case EDJE_LOAD_ERROR_UNKNOWN_COLLECTION: return EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_COLLECTION; 187 case EDJE_LOAD_ERROR_UNKNOWN_COLLECTION: return EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_COLLECTION;
186 case EDJE_LOAD_ERROR_RECURSIVE_REFERENCE: return EFL_GFX_IMAGE_LOAD_ERROR_RECURSIVE_REFERENCE; 188 case EDJE_LOAD_ERROR_RECURSIVE_REFERENCE: return EFL_GFX_IMAGE_LOAD_ERROR_RECURSIVE_REFERENCE;
187 default: return EFL_GFX_IMAGE_LOAD_ERROR_GENERIC; 189 default: break;
188 } 190 }
191 return EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
189} 192}
190 193
191EAPI const char * 194EAPI const char *
@@ -761,7 +764,7 @@ _edje_devices_add(Edje *ed, Evas *tev)
761 _edje_device_changed_cb, ed); 764 _edje_device_changed_cb, ed);
762} 765}
763 766
764int 767Eina_Error
765_edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const char *group, const char *parent, Eina_List *group_path, Eina_Array *nested) 768_edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const char *group, const char *parent, Eina_List *group_path, Eina_Array *nested)
766{ 769{
767 Edje *ed; 770 Edje *ed;
@@ -782,12 +785,12 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
782 Edje_Nested_Support *st_nested = (idx >= 0) ? eina_array_data_get(nested, idx) : NULL; 785 Edje_Nested_Support *st_nested = (idx >= 0) ? eina_array_data_get(nested, idx) : NULL;
783 786
784 ed = _edje_fetch(obj); 787 ed = _edje_fetch(obj);
785 if (!ed) return 0; 788 if (!ed) return EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
786 if (!group) group = ""; 789 if (!group) group = "";
787 if ((ed->file) && (ed->file->f == file) && 790 if ((ed->file) && (ed->file->f == file) &&
788 (ed->group) && (!strcmp(group, ed->group))) 791 (ed->group) && (!strcmp(group, ed->group)))
789 { 792 {
790 return 1; 793 return 0;
791 } 794 }
792 795
793 tev = evas_object_evas_get(obj); 796 tev = evas_object_evas_get(obj);
@@ -840,7 +843,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
840 { 843 {
841 ed->load_error = EDJE_LOAD_ERROR_CORRUPT_FILE; 844 ed->load_error = EDJE_LOAD_ERROR_CORRUPT_FILE;
842 _edje_file_del(ed); 845 _edje_file_del(ed);
843 return 0; 846 return EFL_GFX_IMAGE_LOAD_ERROR_CORRUPT_FILE;
844 } 847 }
845 eina_array_step_set(&parts, sizeof (Eina_Array), 8); 848 eina_array_step_set(&parts, sizeof (Eina_Array), 8);
846 849
@@ -1016,7 +1019,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
1016 eina_mempool_free(_edje_real_part_mp, rp); 1019 eina_mempool_free(_edje_real_part_mp, rp);
1017 evas_event_thaw(tev); 1020 evas_event_thaw(tev);
1018 evas_event_thaw_eval(tev); 1021 evas_event_thaw_eval(tev);
1019 return 0; 1022 return EFL_GFX_IMAGE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1020 } 1023 }
1021 1024
1022 _edje_ref(ed); 1025 _edje_ref(ed);
@@ -1113,7 +1116,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
1113 1116
1114 if (pd_mesh_node->mesh_node.mesh.primitive == EVAS_CANVAS3D_MESH_PRIMITIVE_NONE) 1117 if (pd_mesh_node->mesh_node.mesh.primitive == EVAS_CANVAS3D_MESH_PRIMITIVE_NONE)
1115 { 1118 {
1116 efl_file_set(mesh, ed->file->model_dir->entries[pd_mesh_node->mesh_node.mesh.id].entry, NULL); 1119 efl_file_simple_load(mesh, ed->file->model_dir->entries[pd_mesh_node->mesh_node.mesh.id].entry, NULL);
1117 } 1120 }
1118 else 1121 else
1119 { 1122 {
@@ -1467,6 +1470,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
1467 1470
1468 do 1471 do
1469 { 1472 {
1473 Eina_Error load_error;
1470 child_obj = edje_object_add(ed->base.evas); 1474 child_obj = edje_object_add(ed->base.evas);
1471 edje_object_mirrored_set(child_obj, edje_object_mirrored_get(ed->obj)); 1475 edje_object_mirrored_set(child_obj, edje_object_mirrored_get(ed->obj));
1472 1476
@@ -1476,7 +1480,8 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
1476 _edje_real_part_swallow(ed, rp, child_obj, EINA_FALSE); 1480 _edje_real_part_swallow(ed, rp, child_obj, EINA_FALSE);
1477 } 1481 }
1478 1482
1479 if (!_edje_object_file_set_internal(child_obj, file, source, rp->part->name, group_path, nested)) 1483 load_error = _edje_object_file_set_internal(child_obj, file, source, rp->part->name, group_path, nested);
1484 if (load_error)
1480 { 1485 {
1481 ERR("impossible to set part '%s' of group '%s' from file '%s' to '%s'", 1486 ERR("impossible to set part '%s' of group '%s' from file '%s' to '%s'",
1482 rp->part->name, group_path_entry, eina_file_filename_get(file), source); 1487 rp->part->name, group_path_entry, eina_file_filename_get(file), source);
@@ -1731,11 +1736,11 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
1731 eina_array_flush(&parts); 1736 eina_array_flush(&parts);
1732 evas_event_thaw(tev); 1737 evas_event_thaw(tev);
1733 evas_event_thaw_eval(tev); 1738 evas_event_thaw_eval(tev);
1734 return 1; 1739 return 0;
1735 } 1740 }
1736 evas_event_thaw(tev); 1741 evas_event_thaw(tev);
1737 evas_event_thaw_eval(tev); 1742 evas_event_thaw_eval(tev);
1738 return 0; 1743 return EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
1739 1744
1740on_error: 1745on_error:
1741 eina_list_free(textblocks); 1746 eina_list_free(textblocks);
@@ -1755,7 +1760,7 @@ on_error:
1755 } 1760 }
1756 evas_event_thaw(tev); 1761 evas_event_thaw(tev);
1757 evas_event_thaw_eval(tev); 1762 evas_event_thaw_eval(tev);
1758 return 0; 1763 return EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
1759} 1764}
1760 1765
1761void 1766void
diff --git a/src/lib/edje/edje_part_box.c b/src/lib/edje/edje_part_box.c
index f737159c6e..88a667dd56 100644
--- a/src/lib/edje/edje_part_box.c
+++ b/src/lib/edje/edje_part_box.c
@@ -3,7 +3,7 @@
3#include "efl_canvas_layout_part_box.eo.h" 3#include "efl_canvas_layout_part_box.eo.h"
4#define MY_CLASS EFL_CANVAS_LAYOUT_PART_BOX_CLASS 4#define MY_CLASS EFL_CANVAS_LAYOUT_PART_BOX_CLASS
5 5
6#include "../evas/canvas/evas_box.eo.h" 6#include "../evas/canvas/evas_box_eo.h"
7 7
8PROXY_IMPLEMENTATION(box, MY_CLASS, EINA_FALSE) 8PROXY_IMPLEMENTATION(box, MY_CLASS, EINA_FALSE)
9#undef PROXY_IMPLEMENTATION 9#undef PROXY_IMPLEMENTATION
@@ -99,12 +99,6 @@ _efl_canvas_layout_part_box_efl_pack_linear_pack_content_get(Eo *obj, void *_pd
99 return _edje_part_box_content_at(pd->ed, pd->part, index); 99 return _edje_part_box_content_at(pd->ed, pd->part, index);
100} 100}
101 101
102EOLIAN static Eina_Bool
103_efl_canvas_layout_part_box_efl_container_content_remove(Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx_Entity *subobj)
104{
105 return efl_pack_unpack(obj, subobj);
106}
107
108EOLIAN static int 102EOLIAN static int
109_efl_canvas_layout_part_box_efl_pack_linear_pack_index_get(Eo *obj, void *_pd EINA_UNUSED, const Efl_Gfx_Entity * subobj) 103_efl_canvas_layout_part_box_efl_pack_linear_pack_index_get(Eo *obj, void *_pd EINA_UNUSED, const Efl_Gfx_Entity * subobj)
110{ 104{
diff --git a/src/lib/edje/edje_part_external.c b/src/lib/edje/edje_part_external.c
index bbc82791b7..492106c1fa 100644
--- a/src/lib/edje/edje_part_external.c
+++ b/src/lib/edje/edje_part_external.c
@@ -22,4 +22,18 @@ _efl_canvas_layout_part_external_efl_content_content_get(const Eo *obj, void *_p
22 return _edje_object_part_external_object_get(pd->ed, pd->part); 22 return _edje_object_part_external_object_get(pd->ed, pd->part);
23} 23}
24 24
25EOLIAN static Eina_Bool
26_efl_canvas_layout_part_external_efl_content_content_set(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, Efl_Gfx_Entity *content EINA_UNUSED)
27{
28 ERR("Setting of content is not permitted on this part");
29 return EINA_FALSE;
30}
31
32EOLIAN static Efl_Gfx_Entity*
33_efl_canvas_layout_part_external_efl_content_content_unset(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED)
34{
35 ERR("Unsetting of content is not permitted on this part");
36 return NULL;
37}
38
25#include "efl_canvas_layout_part_external.eo.c" 39#include "efl_canvas_layout_part_external.eo.c"
diff --git a/src/lib/edje/edje_part_invalid.c b/src/lib/edje/edje_part_invalid.c
index 3e508b3fe0..d36491d674 100644
--- a/src/lib/edje/edje_part_invalid.c
+++ b/src/lib/edje/edje_part_invalid.c
@@ -74,7 +74,6 @@ EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_text_cursor_geometry_get, _efl_canvas_
74EDJE_PART_INVALID_VOID(efl_text_markup_interactive_cursor_markup_insert, _efl_canvas_layout_part_invalid_efl_text_markup_interactive_cursor_markup_insert, Efl_Text_Cursor_Cursor *cur, const char *markup) 74EDJE_PART_INVALID_VOID(efl_text_markup_interactive_cursor_markup_insert, _efl_canvas_layout_part_invalid_efl_text_markup_interactive_cursor_markup_insert, Efl_Text_Cursor_Cursor *cur, const char *markup)
75EDJE_PART_INVALID(Eina_Iterator *, 0, efl_content_iterate, _efl_canvas_layout_part_invalid_efl_container_content_iterate) 75EDJE_PART_INVALID(Eina_Iterator *, 0, efl_content_iterate, _efl_canvas_layout_part_invalid_efl_container_content_iterate)
76EDJE_PART_INVALID(int, 0, efl_content_count, _efl_canvas_layout_part_invalid_efl_container_content_count) 76EDJE_PART_INVALID(int, 0, efl_content_count, _efl_canvas_layout_part_invalid_efl_container_content_count)
77EDJE_PART_INVALID(Eina_Bool, 0, efl_content_remove, _efl_canvas_layout_part_invalid_efl_container_content_remove, Efl_Gfx_Entity *content)
78EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_clear, _efl_canvas_layout_part_invalid_efl_pack_pack_clear) 77EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_clear, _efl_canvas_layout_part_invalid_efl_pack_pack_clear)
79EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_unpack_all, _efl_canvas_layout_part_invalid_efl_pack_unpack_all) 78EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_unpack_all, _efl_canvas_layout_part_invalid_efl_pack_unpack_all)
80EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_unpack, _efl_canvas_layout_part_invalid_efl_pack_unpack, Efl_Gfx_Entity *subobj) 79EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_unpack, _efl_canvas_layout_part_invalid_efl_pack_unpack, Efl_Gfx_Entity *subobj)
diff --git a/src/lib/edje/edje_part_swallow.c b/src/lib/edje/edje_part_swallow.c
index bf4c2b59cb..e0c0aec568 100644
--- a/src/lib/edje/edje_part_swallow.c
+++ b/src/lib/edje/edje_part_swallow.c
@@ -27,7 +27,7 @@ _efl_canvas_layout_part_swallow_efl_content_content_unset(Eo *obj, void *_pd EIN
27 PROXY_DATA_GET(obj, pd); 27 PROXY_DATA_GET(obj, pd);
28 Efl_Gfx_Entity *content = _edje_efl_content_content_get(pd->ed, pd->part); 28 Efl_Gfx_Entity *content = _edje_efl_content_content_get(pd->ed, pd->part);
29 if (!content) return NULL; 29 if (!content) return NULL;
30 efl_content_remove(obj, content); 30 efl_canvas_layout_content_remove(obj, content);
31 return content; 31 return content;
32} 32}
33 33
diff --git a/src/lib/edje/edje_part_table.c b/src/lib/edje/edje_part_table.c
index cc2439dd89..e860d74e78 100644
--- a/src/lib/edje/edje_part_table.c
+++ b/src/lib/edje/edje_part_table.c
@@ -3,7 +3,7 @@
3#include "efl_canvas_layout_part_table.eo.h" 3#include "efl_canvas_layout_part_table.eo.h"
4#define MY_CLASS EFL_CANVAS_LAYOUT_PART_TABLE_CLASS 4#define MY_CLASS EFL_CANVAS_LAYOUT_PART_TABLE_CLASS
5 5
6#include "../evas/canvas/evas_table.eo.h" 6#include "../evas/canvas/evas_table_eo.h"
7 7
8PROXY_IMPLEMENTATION(table, MY_CLASS, EINA_FALSE) 8PROXY_IMPLEMENTATION(table, MY_CLASS, EINA_FALSE)
9#undef PROXY_IMPLEMENTATION 9#undef PROXY_IMPLEMENTATION
@@ -30,12 +30,6 @@ _efl_canvas_layout_part_table_efl_container_content_count(Eo *obj, void *_pd EIN
30} 30}
31 31
32EOLIAN static Eina_Bool 32EOLIAN static Eina_Bool
33_efl_canvas_layout_part_table_efl_container_content_remove(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED EINA_UNUSED, Efl_Gfx_Entity *content)
34{
35 return efl_pack_unpack(obj, content);
36}
37
38EOLIAN static Eina_Bool
39_efl_canvas_layout_part_table_efl_pack_pack_clear(Eo *obj, void *_pd EINA_UNUSED) 33_efl_canvas_layout_part_table_efl_pack_pack_clear(Eo *obj, void *_pd EINA_UNUSED)
40{ 34{
41 PROXY_DATA_GET(obj, pd); 35 PROXY_DATA_GET(obj, pd);
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index 420e5cdb9b..fbff62f664 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -155,7 +155,9 @@ EAPI extern int _edje_default_log_dom ;
155#define FROM_DOUBLE(a) eina_f32p32_double_from(a) 155#define FROM_DOUBLE(a) eina_f32p32_double_from(a)
156#define FROM_INT(a) eina_f32p32_int_from(a) 156#define FROM_INT(a) eina_f32p32_int_from(a)
157#define TO_INT(a) eina_f32p32_int_to(a) 157#define TO_INT(a) eina_f32p32_int_to(a)
158#define TO_INT_ROUND(a) eina_f32p32_int_to(ADD(a, FROM_DOUBLE(0.5))) 158#define TO_INT_ROUND(a) (((a) >= 0.0) \
159 ? eina_f32p32_int_to(ADD(a, FROM_DOUBLE(0.5)) \
160 : eina_f32p32_int_to(ADD(a, FROM_DOUBLE(-0.5))
159#define ZERO 0 161#define ZERO 0
160#define COS(a) eina_f32p32_cos(a) 162#define COS(a) eina_f32p32_cos(a)
161#define SIN(a) eina_f32p32_sin(a) 163#define SIN(a) eina_f32p32_sin(a)
@@ -178,7 +180,7 @@ EAPI extern int _edje_default_log_dom ;
178#define FROM_DOUBLE(a) (a) 180#define FROM_DOUBLE(a) (a)
179#define FROM_INT(a) (double)(a) 181#define FROM_INT(a) (double)(a)
180#define TO_INT(a) (int)(a) 182#define TO_INT(a) (int)(a)
181#define TO_INT_ROUND(a) (int)(a + 0.5) 183#define TO_INT_ROUND(a) (((a) >= 0.0) ? (int)(a + 0.5) : (int)(a - 0.5))
182#define ZERO 0.0 184#define ZERO 0.0
183#define COS(a) cos(a) 185#define COS(a) cos(a)
184#define SIN(a) sin(a) 186#define SIN(a) sin(a)
@@ -2597,7 +2599,7 @@ Eina_Bool _edje_signal_callback_disable(Edje_Signal_Callback_Group *cgp,
2597EAPI void _edje_edd_init(void); 2599EAPI void _edje_edd_init(void);
2598EAPI void _edje_edd_shutdown(void); 2600EAPI void _edje_edd_shutdown(void);
2599 2601
2600int _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const char *group, const char *parent, Eina_List *group_path, Eina_Array *nested); 2602Eina_Error _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const char *group, const char *parent, Eina_List *group_path, Eina_Array *nested);
2601 2603
2602void _edje_file_callbacks_del(Edje *ed, Evas *e); 2604void _edje_file_callbacks_del(Edje *ed, Evas *e);
2603void _edje_file_del(Edje *ed); 2605void _edje_file_del(Edje *ed);
diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c
index b7ca9c02d2..0d0baf334a 100644
--- a/src/lib/edje/edje_smart.c
+++ b/src/lib/edje/edje_smart.c
@@ -3,7 +3,7 @@
3 3
4#include "edje_private.h" 4#include "edje_private.h"
5 5
6#include "canvas/evas_canvas.eo.h" 6#include "canvas/evas_canvas_eo.h"
7 7
8#ifdef MY_CLASS 8#ifdef MY_CLASS
9# undef MY_CLASS 9# undef MY_CLASS
@@ -95,7 +95,7 @@ _efl_canvas_layout_efl_object_dbg_info_get(Eo *eo_obj, Edje *_pd EINA_UNUSED, Ef
95 Edje_Load_Error error; 95 Edje_Load_Error error;
96 96
97 const char *file, *edje_group; 97 const char *file, *edje_group;
98 efl_file_get(eo_obj, &file, &edje_group); 98 efl_file_simple_get(eo_obj, &file, &edje_group);
99 EFL_DBG_INFO_APPEND(group, "File", EINA_VALUE_TYPE_STRING, file); 99 EFL_DBG_INFO_APPEND(group, "File", EINA_VALUE_TYPE_STRING, file);
100 EFL_DBG_INFO_APPEND(group, "Group", EINA_VALUE_TYPE_STRING, edje_group); 100 EFL_DBG_INFO_APPEND(group, "Group", EINA_VALUE_TYPE_STRING, edje_group);
101 101
@@ -402,50 +402,55 @@ _efl_canvas_layout_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Edje *e
402 _edje_recalc_do(ed); 402 _edje_recalc_do(ed);
403} 403}
404 404
405EOLIAN static Eina_Bool 405EOLIAN static Eina_Error
406_efl_canvas_layout_efl_file_mmap_set(Eo *obj, Edje *pd EINA_UNUSED, 406_efl_canvas_layout_efl_file_load(Eo *obj, Edje *ed)
407 const Eina_File *f, const char *key)
408{ 407{
409 Eina_Bool ret; 408 Eina_Error err;
410 Eina_Array *nested; 409 Eina_Array *nested;
411 410
412 ret = EINA_FALSE; 411 if (efl_file_loaded_get(obj)) return 0;
412
413 err = efl_file_load(efl_super(obj, MY_CLASS));
414 if (err)
415 {
416 if (err == ENOENT)
417 ed->load_error = EDJE_LOAD_ERROR_DOES_NOT_EXIST;
418 else if (err == ENOMEM)
419 ed->load_error = EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
420 else if ((err == EPERM) || (err == EACCES))
421 ed->load_error = EDJE_LOAD_ERROR_PERMISSION_DENIED;
422 else
423 ed->load_error = EDJE_LOAD_ERROR_GENERIC;
424 return err;
425 }
413 426
414 nested = eina_array_new(8); 427 nested = eina_array_new(8);
415 428
416 if (_edje_object_file_set_internal(obj, f, key, NULL, NULL, nested)) 429 err = _edje_object_file_set_internal(obj, efl_file_mmap_get(obj), efl_file_key_get(obj), NULL, NULL, nested);
417 ret = EINA_TRUE;
418 430
419 eina_array_free(nested); 431 eina_array_free(nested);
420 _edje_object_orientation_inform(obj); 432 _edje_object_orientation_inform(obj);
421 433
422 return ret; 434 return err;
423}
424
425EOLIAN static void
426_efl_canvas_layout_efl_file_mmap_get(const Eo *obj EINA_UNUSED, Edje *pd,
427 const Eina_File **f, const char **key)
428{
429 if (f) *f = pd->file ? pd->file->f : NULL;
430 if (key) *key = pd->group;
431} 435}
432 436
433EAPI Eina_Bool 437EAPI Eina_Bool
434edje_object_mmap_set(Edje_Object *obj, const Eina_File *file, const char *group) 438edje_object_mmap_set(Edje_Object *obj, const Eina_File *file, const char *group)
435{ 439{
436 return efl_file_mmap_set(obj, file, group); 440 return efl_file_simple_mmap_load(obj, file, group);
437} 441}
438 442
439EAPI Eina_Bool 443EAPI Eina_Bool
440edje_object_file_set(Edje_Object *obj, const char *file, const char *group) 444edje_object_file_set(Edje_Object *obj, const char *file, const char *group)
441{ 445{
442 return efl_file_set(obj, file, group); 446 return efl_file_simple_load(obj, file, group);
443} 447}
444 448
445EAPI void 449EAPI void
446edje_object_file_get(const Edje_Object *obj, const char **file, const char **group) 450edje_object_file_get(const Edje_Object *obj, const char **file, const char **group)
447{ 451{
448 efl_file_get((Edje_Object *)obj, file, group); 452 if (file) *file = efl_file_get(obj);
453 if (group) *group = efl_file_key_get(obj);
449} 454}
450 455
451EOLIAN static void 456EOLIAN static void
@@ -582,7 +587,9 @@ _efl_canvas_layout_efl_player_play_speed_get(const Eo *obj EINA_UNUSED, Edje *pd
582 EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_canvas_layout_efl_object_dbg_info_get) 587 EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_canvas_layout_efl_object_dbg_info_get)
583 588
584#include "efl_canvas_layout.eo.c" 589#include "efl_canvas_layout.eo.c"
590#include "efl_canvas_layout_eo.legacy.c"
585#include "edje_global.eo.c" 591#include "edje_global.eo.c"
586#include "efl_layout_calc.eo.c" 592#include "efl_layout_calc.eo.c"
587#include "efl_layout_signal.eo.c" 593#include "efl_layout_signal.eo.c"
588#include "efl_layout_group.eo.c" 594#include "efl_layout_group.eo.c"
595#include "efl_layout_group_eo.legacy.c"
diff --git a/src/lib/edje/edje_text.c b/src/lib/edje/edje_text.c
index 40e783a235..f3be77313c 100644
--- a/src/lib/edje/edje_text.c
+++ b/src/lib/edje/edje_text.c
@@ -1,7 +1,7 @@
1#include "edje_private.h" 1#include "edje_private.h"
2#define _ELLIP_STR "\xE2\x80\xA6" 2#define _ELLIP_STR "\xE2\x80\xA6"
3 3
4#include "../evas/canvas/evas_text.eo.h" 4#include "../evas/canvas/evas_text_eo.h"
5 5
6/* returns with and height for this part. 6/* returns with and height for this part.
7 * 7 *
diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index ba7da81abc..29ebf04482 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -1,8 +1,8 @@
1#include "edje_private.h" 1#include "edje_private.h"
2 2
3#include "../evas/canvas/evas_box.eo.h" 3#include "../evas/canvas/evas_box_eo.h"
4#include "../evas/canvas/evas_line.eo.h" 4#include "../evas/canvas/evas_line_eo.h"
5#include "../evas/canvas/evas_text.eo.h" 5#include "../evas/canvas/evas_text_eo.h"
6 6
7typedef struct _Edje_Box_Layout Edje_Box_Layout; 7typedef struct _Edje_Box_Layout Edje_Box_Layout;
8struct _Edje_Box_Layout 8struct _Edje_Box_Layout
@@ -3060,7 +3060,7 @@ _edje_efl_content_content_set(Edje *ed, const char *part, Efl_Gfx_Entity *obj_sw
3060 eud->u.swallow.child = obj_swallow; 3060 eud->u.swallow.child = obj_swallow;
3061 } 3061 }
3062 } 3062 }
3063 3063 efl_event_callback_call(ed->obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, obj_swallow);
3064 return EINA_TRUE; 3064 return EINA_TRUE;
3065} 3065}
3066 3066
@@ -3363,7 +3363,7 @@ _swallow_real_part_get(Evas_Object *obj_swallow)
3363} 3363}
3364 3364
3365EOLIAN Eina_Bool 3365EOLIAN Eina_Bool
3366_efl_canvas_layout_efl_container_content_remove(Eo *obj EINA_UNUSED, Edje *ed, Evas_Object *obj_swallow) 3366_efl_canvas_layout_content_remove(Eo *obj EINA_UNUSED, Edje *ed, Evas_Object *obj_swallow)
3367{ 3367{
3368 Edje_Real_Part *rp; 3368 Edje_Real_Part *rp;
3369 Edje_User_Defined *eud; 3369 Edje_User_Defined *eud;
@@ -6461,7 +6461,7 @@ edje_object_part_swallow(Edje_Object *obj, const char *part, Evas_Object *obj_sw
6461EAPI void 6461EAPI void
6462edje_object_part_unswallow(Edje_Object *obj, Evas_Object *obj_swallow) 6462edje_object_part_unswallow(Edje_Object *obj, Evas_Object *obj_swallow)
6463{ 6463{
6464 efl_content_remove(obj, obj_swallow); 6464 efl_canvas_layout_content_remove(obj, obj_swallow);
6465} 6465}
6466 6466
6467EAPI Evas_Object * 6467EAPI Evas_Object *
diff --git a/src/lib/edje/efl_canvas_layout.eo b/src/lib/edje/efl_canvas_layout.eo
index d61ef892f2..424deb5b90 100644
--- a/src/lib/edje/efl_canvas_layout.eo
+++ b/src/lib/edje/efl_canvas_layout.eo
@@ -7,7 +7,6 @@ class @beta Efl.Canvas.Layout extends Efl.Canvas.Group implements Efl.File, Efl.
7 Efl.Gfx.Size_Class 7 Efl.Gfx.Size_Class
8{ 8{
9 [[Edje object class]] 9 [[Edje object class]]
10 legacy_prefix: edje_object;
11 event_prefix: efl_layout; 10 event_prefix: efl_layout;
12 data: Edje; 11 data: Edje;
13 methods { 12 methods {
@@ -35,7 +34,6 @@ class @beta Efl.Canvas.Layout extends Efl.Canvas.Group implements Efl.File, Efl.
35 34
36 access_part_iterate @beta { 35 access_part_iterate @beta {
37 [[Iterates over all accessibility-enabled part names.]] 36 [[Iterates over all accessibility-enabled part names.]]
38 legacy: null;
39 return: iterator<string> @owned; [[Part name iterator]] 37 return: iterator<string> @owned; [[Part name iterator]]
40 } 38 }
41 @property seat { 39 @property seat {
@@ -72,6 +70,21 @@ class @beta Efl.Canvas.Layout extends Efl.Canvas.Group implements Efl.File, Efl.
72 device: Efl.Input.Device; [[The seat device]] 70 device: Efl.Input.Device; [[The seat device]]
73 } 71 }
74 } 72 }
73 @property layout_load_error {
74 get {
75 [[Gets the (last) file loading error for a given object.]]
76 }
77 values {
78 error: Eina.Error; [[The load error code.]]
79 }
80 }
81 content_remove {
82 [[Unswallow an object from this Edje.]]
83 params {
84 @in content: Efl.Gfx.Entity; [[To be removed content.]]
85 }
86 return: bool; [[$false if $content was not a child or can not be removed.]]
87 }
75 } 88 }
76 events { 89 events {
77 part,invalid @beta: string; [[Emitted when trying to use an invalid part. 90 part,invalid @beta: string; [[Emitted when trying to use an invalid part.
@@ -113,9 +126,7 @@ class @beta Efl.Canvas.Layout extends Efl.Canvas.Group implements Efl.File, Efl.
113 Efl.Ui.I18n.mirrored { set; get; } 126 Efl.Ui.I18n.mirrored { set; get; }
114 Efl.Ui.I18n.language { set; get; } 127 Efl.Ui.I18n.language { set; get; }
115 Efl.Gfx.Entity.scale { set; get; } 128 Efl.Gfx.Entity.scale { set; get; }
116 Efl.File.load_error { get; } 129 Efl.File.load;
117 Efl.File.mmap { get; set; }
118 Efl.Container.content_remove;
119 Efl.Container.content_iterate; 130 Efl.Container.content_iterate;
120 Efl.Container.content_count; 131 Efl.Container.content_count;
121 Efl.Part.part_get; [[Returns @Efl.Canvas.Layout_Part]] 132 Efl.Part.part_get; [[Returns @Efl.Canvas.Layout_Part]]
diff --git a/src/lib/edje/efl_canvas_layout_eo.legacy.c b/src/lib/edje/efl_canvas_layout_eo.legacy.c
new file mode 100644
index 0000000000..f55e5d5f4b
--- /dev/null
+++ b/src/lib/edje/efl_canvas_layout_eo.legacy.c
@@ -0,0 +1,36 @@
1
2EAPI void
3edje_object_animation_set(Efl_Canvas_Layout *obj, Eina_Bool on)
4{
5 efl_canvas_layout_animation_set(obj, on);
6}
7
8EAPI Eina_Bool
9edje_object_animation_get(const Efl_Canvas_Layout *obj)
10{
11 return efl_canvas_layout_animation_get(obj);
12}
13
14EAPI Efl_Input_Device *
15edje_object_seat_get(const Efl_Canvas_Layout *obj, Eina_Stringshare *name)
16{
17 return efl_canvas_layout_seat_get(obj, name);
18}
19
20EAPI Eina_Stringshare *
21edje_object_seat_name_get(const Efl_Canvas_Layout *obj, Efl_Input_Device *device)
22{
23 return efl_canvas_layout_seat_name_get(obj, device);
24}
25
26EAPI Eina_Error
27edje_object_layout_load_error_get(const Efl_Canvas_Layout *obj)
28{
29 return efl_canvas_layout_load_error_get(obj);
30}
31
32EAPI Eina_Bool
33edje_object_content_remove(Efl_Canvas_Layout *obj, Efl_Gfx_Entity *content)
34{
35 return efl_canvas_layout_content_remove(obj, content);
36}
diff --git a/src/lib/edje/efl_canvas_layout_eo.legacy.h b/src/lib/edje/efl_canvas_layout_eo.legacy.h
new file mode 100644
index 0000000000..0155eb96b2
--- /dev/null
+++ b/src/lib/edje/efl_canvas_layout_eo.legacy.h
@@ -0,0 +1,115 @@
1#ifndef _EFL_CANVAS_LAYOUT_EO_LEGACY_H_
2#define _EFL_CANVAS_LAYOUT_EO_LEGACY_H_
3
4#ifndef _EFL_CANVAS_LAYOUT_EO_CLASS_TYPE
5#define _EFL_CANVAS_LAYOUT_EO_CLASS_TYPE
6
7typedef Eo Efl_Canvas_Layout;
8
9#endif
10
11#ifndef _EFL_CANVAS_LAYOUT_EO_TYPES
12#define _EFL_CANVAS_LAYOUT_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Whether this object is animating or not.
19 *
20 * This property indicates whether animations are stopped or not. Animations
21 * here refer to transitions between states.
22 *
23 * If animations are disabled, transitions between states (as defined in EDC)
24 * are then instantaneous. This is conceptually similar to setting the
25 * @ref Efl.Player.play_speed to an infinitely high value.
26 *
27 * Start or stop animating this object.
28 *
29 * @param[in] obj The object.
30 * @param[in] on The animation state, @c true by default.
31 *
32 * @ingroup Edje_Object_Group
33 */
34EAPI void edje_object_animation_set(Efl_Canvas_Layout *obj, Eina_Bool on);
35
36/**
37 * @brief Whether this object is animating or not.
38 *
39 * This property indicates whether animations are stopped or not. Animations
40 * here refer to transitions between states.
41 *
42 * If animations are disabled, transitions between states (as defined in EDC)
43 * are then instantaneous. This is conceptually similar to setting the
44 * @ref Efl.Player.play_speed to an infinitely high value.
45 *
46 * Get the current state of animation, @c true by default.
47 *
48 * @param[in] obj The object.
49 *
50 * @return The animation state, @c true by default.
51 *
52 * @ingroup Edje_Object_Group
53 */
54EAPI Eina_Bool edje_object_animation_get(const Efl_Canvas_Layout *obj);
55
56/**
57 * @brief Returns the seat device given its Edje's name.
58 *
59 * Edje references seats by a name that differs from Evas. Edje naming follows
60 * a incrementional convention: first registered name is "seat1", second is
61 * "seat2", differently from Evas.
62 *
63 * @param[in] obj The object.
64 * @param[in] name The name's character string.
65 *
66 * @return The seat device or @c null if not found.
67 *
68 * @since 1.19
69 *
70 * @ingroup Edje_Object_Group
71 */
72EAPI Efl_Input_Device *edje_object_seat_get(const Efl_Canvas_Layout *obj, Eina_Stringshare *name);
73
74/**
75 * @brief Gets the name given to a set by Edje.
76 *
77 * Edje references seats by a name that differs from Evas. Edje naming follows
78 * a incrementional convention: first registered name is "seat1", second is
79 * "seat2", differently from Evas.
80 *
81 * @param[in] obj The object.
82 * @param[in] device The seat device
83 *
84 * @return The name's character string or @c null if not found.
85 *
86 * @since 1.19
87 *
88 * @ingroup Edje_Object_Group
89 */
90EAPI Eina_Stringshare *edje_object_seat_name_get(const Efl_Canvas_Layout *obj, Efl_Input_Device *device);
91
92/**
93 * @brief Gets the (last) file loading error for a given object.
94 *
95 * @param[in] obj The object.
96 *
97 * @return The load error code.
98 *
99 * @ingroup Edje_Object_Group
100 */
101EAPI Eina_Error edje_object_layout_load_error_get(const Efl_Canvas_Layout *obj);
102
103/**
104 * @brief Unswallow an object from this Edje.
105 *
106 * @param[in] obj The object.
107 * @param[in] content To be removed content.
108 *
109 * @return @c false if @c content was not a child or can not be removed.
110 *
111 * @ingroup Edje_Object_Group
112 */
113EAPI Eina_Bool edje_object_content_remove(Efl_Canvas_Layout *obj, Efl_Gfx_Entity *content);
114
115#endif
diff --git a/src/lib/edje/efl_canvas_layout_part_box.eo b/src/lib/edje/efl_canvas_layout_part_box.eo
index 0fa1e39f17..38c568c8db 100644
--- a/src/lib/edje/efl_canvas_layout_part_box.eo
+++ b/src/lib/edje/efl_canvas_layout_part_box.eo
@@ -10,7 +10,6 @@ class @beta Efl.Canvas.Layout_Part_Box extends Efl.Canvas.Layout_Part implements
10 implements { 10 implements {
11 Efl.Container.content_iterate; 11 Efl.Container.content_iterate;
12 Efl.Container.content_count; 12 Efl.Container.content_count;
13 Efl.Container.content_remove;
14 Efl.Pack.pack_clear; 13 Efl.Pack.pack_clear;
15 Efl.Pack.unpack_all; 14 Efl.Pack.unpack_all;
16 Efl.Pack.unpack; 15 Efl.Pack.unpack;
diff --git a/src/lib/edje/efl_canvas_layout_part_external.eo b/src/lib/edje/efl_canvas_layout_part_external.eo
index eb5ca38815..7750480147 100644
--- a/src/lib/edje/efl_canvas_layout_part_external.eo
+++ b/src/lib/edje/efl_canvas_layout_part_external.eo
@@ -25,6 +25,7 @@ class @beta Efl.Canvas.Layout_Part_External extends Efl.Canvas.Layout_Part imple
25 ]] 25 ]]
26 data: null; 26 data: null;
27 implements { 27 implements {
28 Efl.Content.content { get; } 28 Efl.Content.content { get; set; }
29 Efl.Content.content_unset;
29 } 30 }
30} 31}
diff --git a/src/lib/edje/efl_canvas_layout_part_invalid.eo b/src/lib/edje/efl_canvas_layout_part_invalid.eo
index d048657cb8..6268f2a5d5 100644
--- a/src/lib/edje/efl_canvas_layout_part_invalid.eo
+++ b/src/lib/edje/efl_canvas_layout_part_invalid.eo
@@ -48,7 +48,6 @@ class @beta Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implem
48 // Efl.Canvas.Layout_Part_Box 48 // Efl.Canvas.Layout_Part_Box
49 Efl.Container.content_iterate; 49 Efl.Container.content_iterate;
50 Efl.Container.content_count; 50 Efl.Container.content_count;
51 Efl.Container.content_remove;
52 Efl.Pack.pack_clear; 51 Efl.Pack.pack_clear;
53 Efl.Pack.unpack_all; 52 Efl.Pack.unpack_all;
54 Efl.Pack.unpack; 53 Efl.Pack.unpack;
diff --git a/src/lib/edje/efl_canvas_layout_part_table.eo b/src/lib/edje/efl_canvas_layout_part_table.eo
index 4abd546bcc..2b9854cc6c 100644
--- a/src/lib/edje/efl_canvas_layout_part_table.eo
+++ b/src/lib/edje/efl_canvas_layout_part_table.eo
@@ -9,7 +9,6 @@ class @beta Efl.Canvas.Layout_Part_Table extends Efl.Canvas.Layout_Part implemen
9 implements { 9 implements {
10 Efl.Container.content_iterate; 10 Efl.Container.content_iterate;
11 Efl.Container.content_count; 11 Efl.Container.content_count;
12 Efl.Container.content_remove;
13 Efl.Pack.pack_clear; 12 Efl.Pack.pack_clear;
14 Efl.Pack.unpack_all; 13 Efl.Pack.unpack_all;
15 Efl.Pack.unpack; 14 Efl.Pack.unpack;
diff --git a/src/lib/edje/efl_layout_calc.eo b/src/lib/edje/efl_layout_calc.eo
index ab43fbbe1f..cf4f45ebde 100644
--- a/src/lib/edje/efl_layout_calc.eo
+++ b/src/lib/edje/efl_layout_calc.eo
@@ -109,8 +109,7 @@ interface @beta Efl.Layout.Calc
109 } 109 }
110 events { 110 events {
111 recalc: void; [[The layout was recalculated.]] 111 recalc: void; [[The layout was recalculated.]]
112 /* FIXME: The actual type is list<string> but the C# bindings do not support that yet */ 112 circular,dependency: const(array<string>); [[A circular dependency between parts of the
113 circular,dependency: void; [[A circular dependency between parts of the
114 object was found.]] 113 object was found.]]
115 } 114 }
116} 115}
diff --git a/src/lib/edje/efl_layout_group.eo b/src/lib/edje/efl_layout_group.eo
index 5d4d56afcd..2f9aa95f04 100644
--- a/src/lib/edje/efl_layout_group.eo
+++ b/src/lib/edje/efl_layout_group.eo
@@ -89,7 +89,6 @@ interface @beta Efl.Layout.Group
89 Warning: Do not confuse this call with edje_file_data_get(), which 89 Warning: Do not confuse this call with edje_file_data_get(), which
90 queries for a global EDC data field on an EDC declaration file. 90 queries for a global EDC data field on an EDC declaration file.
91 ]] 91 ]]
92 legacy: edje_object_data_get;
93 } 92 }
94 keys { 93 keys {
95 key: string; [[The data field's key string]] 94 key: string; [[The data field's key string]]
diff --git a/src/lib/edje/efl_layout_group_eo.legacy.c b/src/lib/edje/efl_layout_group_eo.legacy.c
new file mode 100644
index 0000000000..c68fa2f540
--- /dev/null
+++ b/src/lib/edje/efl_layout_group_eo.legacy.c
@@ -0,0 +1,6 @@
1
2EAPI const char *
3edje_object_data_get(const Efl_Layout_Group *obj, const char *key)
4{
5 return efl_layout_group_data_get(obj, key);
6}
diff --git a/src/lib/edje/efl_layout_group_eo.legacy.h b/src/lib/edje/efl_layout_group_eo.legacy.h
new file mode 100644
index 0000000000..2dc80c5af8
--- /dev/null
+++ b/src/lib/edje/efl_layout_group_eo.legacy.h
@@ -0,0 +1,48 @@
1#ifndef _EFL_LAYOUT_GROUP_EO_LEGACY_H_
2#define _EFL_LAYOUT_GROUP_EO_LEGACY_H_
3
4#ifndef _EFL_LAYOUT_GROUP_EO_CLASS_TYPE
5#define _EFL_LAYOUT_GROUP_EO_CLASS_TYPE
6
7typedef Eo Efl_Layout_Group;
8
9#endif
10
11#ifndef _EFL_LAYOUT_GROUP_EO_TYPES
12#define _EFL_LAYOUT_GROUP_EO_TYPES
13
14
15#endif
16
17
18
19/**
20 * @brief Retrives an EDC data field's value from a given Edje object's group.
21 *
22 * This function fetches an EDC data field's value, which is declared on the
23 * objects building EDC file, under its group. EDC data blocks are most
24 * commonly used to pass arbitrary parameters from an application's theme to
25 * its code.
26 *
27 * EDC data fields always hold strings as values, hence the return type of
28 * this function. Check the complete "syntax reference" for EDC files.
29 *
30 * This is how a data item is defined in EDC: collections { group { name:
31 * "a_group"; data { item: "key1" "value1"; item: "key2" "value2"; } } }
32 *
33 * @warning Do not confuse this call with edje_file_data_get(), which queries
34 * for a global EDC data field on an EDC declaration file.
35 *
36 * @param[in] obj The object.
37 * @param[in] key The data field's key string
38 *
39 * @return The data's value string.
40 *
41 * @since 1.21
42 *
43 * @ingroup (null)_Group
44 */
45EAPI const char *edje_object_data_get(const Efl_Layout_Group *obj, const char *key);
46
47
48#endif
diff --git a/src/lib/edje/meson.build b/src/lib/edje/meson.build
index 549553fd67..c45dced7f8 100644
--- a/src/lib/edje/meson.build
+++ b/src/lib/edje/meson.build
@@ -21,7 +21,6 @@ if get_option('edje-sound-and-video')
21endif 21endif
22 22
23pub_legacy_eo_files = [ 23pub_legacy_eo_files = [
24 'edje_edit.eo',
25 'efl_layout_calc.eo', 24 'efl_layout_calc.eo',
26 'efl_layout_signal.eo', 25 'efl_layout_signal.eo',
27 'efl_layout_group.eo', 26 'efl_layout_group.eo',
@@ -50,16 +49,6 @@ foreach eo_file : pub_legacy_eo_files
50 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), 49 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
51 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), 50 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
52 '-gchd', '@INPUT@']) 51 '-gchd', '@INPUT@'])
53 pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
54 input : eo_file,
55 output : [eo_file + '.legacy.h'],
56 depfile : eo_file + '.legacy.d',
57 install : true,
58 install_dir : dir_package_include,
59 command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories,
60 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
61 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'),
62 '-gld', '@INPUT@'])
63endforeach 52endforeach
64 53
65pub_eo_types_files = [ 54pub_eo_types_files = [
@@ -91,6 +80,7 @@ foreach eo_file : priv_eo_files
91 depfile : eo_file + '.d', 80 depfile : eo_file + '.d',
92 command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, 81 command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories,
93 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), 82 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
83 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
94 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), 84 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
95 '-gchd', '@INPUT@']) 85 '-gchd', '@INPUT@'])
96endforeach 86endforeach
@@ -103,7 +93,11 @@ edje_header_src = [
103 'Edje_Common.h', 93 'Edje_Common.h',
104 'Edje_Eo.h', 94 'Edje_Eo.h',
105 'Edje_Legacy.h', 95 'Edje_Legacy.h',
106 'Edje_Edit.h' 96 'Edje_Edit.h',
97 'edje_edit_eo.h',
98 'edje_edit_eo.legacy.h',
99 'efl_layout_group_eo.legacy.h',
100 'efl_canvas_layout_eo.legacy.h',
107] 101]
108 102
109edje_src = [ 103edje_src = [