diff --git a/src/bin/elementary/test_efl_anim_alpha.c b/src/bin/elementary/test_efl_anim_alpha.c index b364319279..3c5f62ca64 100644 --- a/src/bin/elementary/test_efl_anim_alpha.c +++ b/src/bin/elementary/test_efl_anim_alpha.c @@ -90,13 +90,13 @@ test_efl_anim_alpha(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation - Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(show_anim, 0.0, 1.0); efl_animation_duration_set(show_anim, 1.0); efl_animation_final_state_keep_set(show_anim, EINA_TRUE); //Hide Animation - Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(hide_anim, 1.0, 0.0); efl_animation_duration_set(hide_anim, 1.0); efl_animation_final_state_keep_set(hide_anim, EINA_TRUE); diff --git a/src/bin/elementary/test_efl_anim_group_parallel.c b/src/bin/elementary/test_efl_anim_group_parallel.c index 728c54ea4e..d560023f2c 100644 --- a/src/bin/elementary/test_efl_anim_group_parallel.c +++ b/src/bin/elementary/test_efl_anim_group_parallel.c @@ -88,19 +88,19 @@ test_efl_anim_group_parallel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Hide Animation - Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(hide_anim, 1.0, 0.0); //Rotate from 0 to 45 degrees Animation - Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); + Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ROTATE_ANIMATION_CLASS, win); efl_animation_rotate_set(cw_45_degrees_anim, 0.0, 45.0, NULL, EINA_VECTOR2(0.5, 0.5)); //Scale Animation to zoom in - Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); + Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_SCALE_ANIMATION_CLASS, win); efl_animation_scale_set(scale_double_anim, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(2.0, 2.0), NULL, EINA_VECTOR2(0.5, 0.5)); //Hide Parallel Group Animation - Efl_Canvas_Animation *parallel_hide_anim = efl_add(EFL_CANVAS_ANIMATION_GROUP_PARALLEL_CLASS, win); + Efl_Canvas_Animation *parallel_hide_anim = efl_add(EFL_CANVAS_PARALLEL_GROUP_ANIMATION_CLASS, win); efl_animation_duration_set(parallel_hide_anim, 1.0); efl_animation_final_state_keep_set(parallel_hide_anim, EINA_TRUE); diff --git a/src/bin/elementary/test_efl_anim_group_sequential.c b/src/bin/elementary/test_efl_anim_group_sequential.c index 60b3a836a1..62b00a669e 100644 --- a/src/bin/elementary/test_efl_anim_group_sequential.c +++ b/src/bin/elementary/test_efl_anim_group_sequential.c @@ -89,19 +89,19 @@ test_efl_anim_group_sequential(void *data EINA_UNUSED, Evas_Object *obj EINA_UNU /* Animations to hide button */ //Rotate from 0 to 45 degrees Animation - Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); + Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ROTATE_ANIMATION_CLASS, win); efl_animation_rotate_set(cw_45_degrees_anim, 0.0, 45.0, NULL, EINA_VECTOR2(0.5, 0.5)); //Scale Animation to zoom in - Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); + Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_SCALE_ANIMATION_CLASS, win); efl_animation_scale_set(scale_double_anim, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(2.0, 2.0), NULL, EINA_VECTOR2(0.5, 0.5)); //Hide Animation - Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(hide_anim, 1.0, 0.0); //Hide Sequential Group Animation - Efl_Canvas_Animation *sequential_hide_anim = efl_add(EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_CLASS, win); + Efl_Canvas_Animation *sequential_hide_anim = efl_add(EFL_CANVAS_SEQUENTIAL_GROUP_ANIMATION_CLASS, win); efl_animation_duration_set(sequential_hide_anim, 1.0); efl_animation_final_state_keep_set(sequential_hide_anim, EINA_TRUE); diff --git a/src/bin/elementary/test_efl_anim_interpolator.c b/src/bin/elementary/test_efl_anim_interpolator.c index c5a828ff22..e6c42b711c 100644 --- a/src/bin/elementary/test_efl_anim_interpolator.c +++ b/src/bin/elementary/test_efl_anim_interpolator.c @@ -202,7 +202,7 @@ test_efl_anim_interpolator(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, ad->btn[i] = btn; Efl_Canvas_Animation *anim = - efl_add(EFL_CANVAS_ANIMATION_TRANSLATE_CLASS, win); + efl_add(EFL_CANVAS_TRANSLATE_ANIMATION_CLASS, win); efl_animation_translate_set(anim, EINA_POSITION2D(0, 0), EINA_POSITION2D((WIN_W - BTN_W), 0)); efl_animation_duration_set(anim, 2.0); efl_animation_final_state_keep_set(anim, EINA_FALSE); diff --git a/src/bin/elementary/test_efl_anim_pause.c b/src/bin/elementary/test_efl_anim_pause.c index 92d4b3e308..8585b38fac 100644 --- a/src/bin/elementary/test_efl_anim_pause.c +++ b/src/bin/elementary/test_efl_anim_pause.c @@ -115,13 +115,13 @@ test_efl_anim_pause(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation - Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(show_anim, 0.0, 1.0); efl_animation_duration_set(show_anim, 2.0); efl_animation_final_state_keep_set(show_anim, EINA_TRUE); //Hide Animation - Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(hide_anim, 1.0, 0.0); efl_animation_duration_set(hide_anim, 2.0); efl_animation_final_state_keep_set(hide_anim, EINA_TRUE); diff --git a/src/bin/elementary/test_efl_anim_repeat.c b/src/bin/elementary/test_efl_anim_repeat.c index b3dddcd0e3..26e3d3f00f 100644 --- a/src/bin/elementary/test_efl_anim_repeat.c +++ b/src/bin/elementary/test_efl_anim_repeat.c @@ -137,13 +137,13 @@ test_efl_anim_repeat(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation - Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(show_anim, 0.0, 1.0); efl_animation_duration_set(show_anim, 1.0); efl_animation_final_state_keep_set(show_anim, EINA_TRUE); //Hide Animation - Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(hide_anim, 1.0, 0.0); efl_animation_duration_set(hide_anim, 1.0); efl_animation_final_state_keep_set(hide_anim, EINA_TRUE); diff --git a/src/bin/elementary/test_efl_anim_rotate.c b/src/bin/elementary/test_efl_anim_rotate.c index 437d015d75..4e3434cf41 100644 --- a/src/bin/elementary/test_efl_anim_rotate.c +++ b/src/bin/elementary/test_efl_anim_rotate.c @@ -88,13 +88,13 @@ test_efl_anim_rotate(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Rotate from 0 to 45 degrees Animation - Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); + Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ROTATE_ANIMATION_CLASS, win); efl_animation_rotate_set(cw_45_degrees_anim, 0.0, 45.0, NULL, EINA_VECTOR2(0.5, 0.5)); efl_animation_duration_set(cw_45_degrees_anim, 1.0); efl_animation_final_state_keep_set(cw_45_degrees_anim, EINA_TRUE); //Rotate from 45 to 0 degrees Animation - Efl_Canvas_Animation *ccw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); + Efl_Canvas_Animation *ccw_45_degrees_anim = efl_add(EFL_CANVAS_ROTATE_ANIMATION_CLASS, win); efl_animation_rotate_set(ccw_45_degrees_anim, 45.0, 0.0, NULL, EINA_VECTOR2(0.5, 0.5)); efl_animation_duration_set(ccw_45_degrees_anim, 1.0); efl_animation_final_state_keep_set(ccw_45_degrees_anim, EINA_TRUE); @@ -147,13 +147,13 @@ test_efl_anim_rotate_relative(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUS evas_object_show(pivot); //Rotate from 0 to 45 degrees Animation - Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); + Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ROTATE_ANIMATION_CLASS, win); efl_animation_rotate_set(cw_45_degrees_anim, 0.0, 45.0, pivot, EINA_VECTOR2(0.5, 0.5)); efl_animation_duration_set(cw_45_degrees_anim, 1.0); efl_animation_final_state_keep_set(cw_45_degrees_anim, EINA_TRUE); //Rotate from 45 to 0 degrees Animation - Efl_Canvas_Animation *ccw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); + Efl_Canvas_Animation *ccw_45_degrees_anim = efl_add(EFL_CANVAS_ROTATE_ANIMATION_CLASS, win); efl_animation_rotate_set(ccw_45_degrees_anim, 45.0, 0.0, pivot, EINA_VECTOR2(0.5, 0.5)); efl_animation_duration_set(ccw_45_degrees_anim, 1.0); efl_animation_final_state_keep_set(ccw_45_degrees_anim, EINA_TRUE); @@ -206,13 +206,13 @@ test_efl_anim_rotate_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUS evas_object_show(abs_center); //Rotate from 0 to 45 degrees Animation - Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); + Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ROTATE_ANIMATION_CLASS, win); efl_animation_rotate_absolute_set(cw_45_degrees_anim, 0.0, 45.0, EINA_POSITION2D(0, 0)); efl_animation_duration_set(cw_45_degrees_anim, 1.0); efl_animation_final_state_keep_set(cw_45_degrees_anim, EINA_TRUE); //Rotate from 45 to 0 degrees Animation - Efl_Canvas_Animation *ccw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); + Efl_Canvas_Animation *ccw_45_degrees_anim = efl_add(EFL_CANVAS_ROTATE_ANIMATION_CLASS, win); efl_animation_rotate_absolute_set(ccw_45_degrees_anim, 45.0, 0.0, EINA_POSITION2D(0, 0)); efl_animation_duration_set(ccw_45_degrees_anim, 1.0); efl_animation_final_state_keep_set(ccw_45_degrees_anim, EINA_TRUE); diff --git a/src/bin/elementary/test_efl_anim_scale.c b/src/bin/elementary/test_efl_anim_scale.c index 93ac1f7270..6653772299 100644 --- a/src/bin/elementary/test_efl_anim_scale.c +++ b/src/bin/elementary/test_efl_anim_scale.c @@ -88,13 +88,13 @@ test_efl_anim_scale(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Scale Animation to zoom in - Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); + Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_SCALE_ANIMATION_CLASS, win); efl_animation_scale_set(scale_double_anim, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(2.0, 2.0), NULL, EINA_VECTOR2(0.5, 0.5)); efl_animation_duration_set(scale_double_anim, 1.0); efl_animation_final_state_keep_set(scale_double_anim, EINA_TRUE); //Scale Animation to zoom out - Efl_Canvas_Animation *scale_half_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); + Efl_Canvas_Animation *scale_half_anim = efl_add(EFL_CANVAS_SCALE_ANIMATION_CLASS, win); efl_animation_scale_set(scale_half_anim, EINA_VECTOR2(2.0, 2.0), EINA_VECTOR2(1.0, 1.0), NULL, EINA_VECTOR2(0.5, 0.5)); efl_animation_duration_set(scale_half_anim, 1.0); efl_animation_final_state_keep_set(scale_half_anim, EINA_TRUE); @@ -147,13 +147,13 @@ test_efl_anim_scale_relative(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE evas_object_show(pivot); //Scale Animation to zoom in - Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); + Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_SCALE_ANIMATION_CLASS, win); efl_animation_scale_set(scale_double_anim, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(2.0, 2.0), pivot, EINA_VECTOR2(0.5, 0.5)); efl_animation_duration_set(scale_double_anim, 1.0); efl_animation_final_state_keep_set(scale_double_anim, EINA_TRUE); //Scale Animation to zoom out - Efl_Canvas_Animation *scale_half_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); + Efl_Canvas_Animation *scale_half_anim = efl_add(EFL_CANVAS_SCALE_ANIMATION_CLASS, win); efl_animation_scale_set(scale_half_anim, EINA_VECTOR2(2.0, 2.0), EINA_VECTOR2(1.0, 1.0), pivot, EINA_VECTOR2(0.5, 0.5)); efl_animation_duration_set(scale_half_anim, 1.0); efl_animation_final_state_keep_set(scale_half_anim, EINA_TRUE); @@ -206,13 +206,13 @@ test_efl_anim_scale_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE evas_object_show(abs_center); //Scale Animation to zoom in - Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); + Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_SCALE_ANIMATION_CLASS, win); efl_animation_scale_absolute_set(scale_double_anim, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(2.0, 2.0), EINA_POSITION2D(0, 0)); efl_animation_duration_set(scale_double_anim, 1.0); efl_animation_final_state_keep_set(scale_double_anim, EINA_TRUE); //Scale Animation to zoom out - Efl_Canvas_Animation *scale_half_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); + Efl_Canvas_Animation *scale_half_anim = efl_add(EFL_CANVAS_SCALE_ANIMATION_CLASS, win); efl_animation_scale_absolute_set(scale_half_anim, EINA_VECTOR2(2.0, 2.0), EINA_VECTOR2(1.0, 1.0), EINA_POSITION2D(0, 0)); efl_animation_duration_set(scale_half_anim, 1.0); efl_animation_final_state_keep_set(scale_half_anim, EINA_TRUE); diff --git a/src/bin/elementary/test_efl_anim_start_delay.c b/src/bin/elementary/test_efl_anim_start_delay.c index 6ef663b33a..ae41fc7f30 100644 --- a/src/bin/elementary/test_efl_anim_start_delay.c +++ b/src/bin/elementary/test_efl_anim_start_delay.c @@ -102,13 +102,13 @@ test_efl_anim_start_delay(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation - Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(show_anim, 0.0, 1.0); efl_animation_duration_set(show_anim, 1.0); efl_animation_final_state_keep_set(show_anim, EINA_TRUE); //Hide Animation - Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); + Efl_Canvas_Animation *hide_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, win); efl_animation_alpha_set(hide_anim, 1.0, 0.0); efl_animation_duration_set(hide_anim, 1.0); efl_animation_final_state_keep_set(hide_anim, EINA_TRUE); diff --git a/src/bin/elementary/test_efl_anim_translate.c b/src/bin/elementary/test_efl_anim_translate.c index 7617be87d1..c1a3165d45 100644 --- a/src/bin/elementary/test_efl_anim_translate.c +++ b/src/bin/elementary/test_efl_anim_translate.c @@ -88,13 +88,13 @@ test_efl_anim_translate(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, vo efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Translate Animation to right bottom relatively - Efl_Canvas_Animation *translate_rb_anim = efl_add(EFL_CANVAS_ANIMATION_TRANSLATE_CLASS, win); + Efl_Canvas_Animation *translate_rb_anim = efl_add(EFL_CANVAS_TRANSLATE_ANIMATION_CLASS, win); efl_animation_translate_set(translate_rb_anim, EINA_POSITION2D(0, 0), EINA_POSITION2D(100, 100)); efl_animation_duration_set(translate_rb_anim, 1.0); efl_animation_final_state_keep_set(translate_rb_anim, EINA_TRUE); //Translate Animation to left top relatively - Efl_Canvas_Animation *translate_lt_anim = efl_add(EFL_CANVAS_ANIMATION_TRANSLATE_CLASS, win); + Efl_Canvas_Animation *translate_lt_anim = efl_add(EFL_CANVAS_TRANSLATE_ANIMATION_CLASS, win); efl_animation_translate_set(translate_lt_anim, EINA_POSITION2D(100, 100), EINA_POSITION2D(0, 0)); efl_animation_duration_set(translate_lt_anim, 1.0); efl_animation_final_state_keep_set(translate_lt_anim, EINA_TRUE); @@ -147,13 +147,13 @@ test_efl_anim_translate_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_U evas_object_show(abs_center); //Translate Animation to right bottom absolutely - Efl_Canvas_Animation *translate_rb_anim = efl_add(EFL_CANVAS_ANIMATION_TRANSLATE_CLASS, win); + Efl_Canvas_Animation *translate_rb_anim = efl_add(EFL_CANVAS_TRANSLATE_ANIMATION_CLASS, win); efl_animation_translate_absolute_set(translate_rb_anim, EINA_POSITION2D(0, 0), EINA_POSITION2D(100, 100)); efl_animation_duration_set(translate_rb_anim, 1.0); efl_animation_final_state_keep_set(translate_rb_anim, EINA_TRUE); //Translate Animation to left top absolutely - Efl_Canvas_Animation *translate_lt_anim = efl_add(EFL_CANVAS_ANIMATION_TRANSLATE_CLASS, win); + Efl_Canvas_Animation *translate_lt_anim = efl_add(EFL_CANVAS_TRANSLATE_ANIMATION_CLASS, win); efl_animation_translate_absolute_set(translate_lt_anim, EINA_POSITION2D(100, 100), EINA_POSITION2D(0, 0)); efl_animation_duration_set(translate_lt_anim, 1.0); efl_animation_final_state_keep_set(translate_lt_anim, EINA_TRUE); diff --git a/src/bin/eolian_mono/eolian/mono/blacklist.hh b/src/bin/eolian_mono/eolian/mono/blacklist.hh index 70bc34a038..8d8de9d1bf 100644 --- a/src/bin/eolian_mono/eolian/mono/blacklist.hh +++ b/src/bin/eolian_mono/eolian/mono/blacklist.hh @@ -150,34 +150,9 @@ inline bool is_alias_blacklisted(attributes::alias_def const& alias, Context con return name_helpers::alias_full_eolian_name(alias) == "Eina.Error"; } -inline bool is_property_blacklisted(std::string const& name) +inline bool is_property_blacklisted(std::string const&) { - auto properties = std::vector{ - // These properties encode (void* arr, int len) arrays - "Efl.Gfx.IGradient.Stop" - , "Efl.Gfx.GradientConcrete.Stop" - , "Efl.Gfx.IShape.StrokeDash" - , "Efl.Gfx.ShapeConcrete.StrokeDash" - , "Efl.Gfx.Vg.ValueProvider.Transform" - , "Efl.Canvas.Vg.Node.Transformation" - // Will be bound manually - , "Efl.Core.Env.Env" - // Setter returns a future - , "Efl.IModel.Property" - // Protected - , "Efl.Access.IAction.ActionName" - , "Efl.Access.IAction.ActionLocalizedName" - , "Efl.Access.IComponent.Extents" - , "Efl.Access.IText.AccessSelection" - , "Efl.Access.IText.AccessText" - , "Efl.Access.IText.BoundedRanges" - , "Efl.Access.IText.Character" - , "Efl.Access.IText.OffsetAtPoint" - , "Efl.Access.IText.String" - , "Efl.Access.IText.TextAttributes" - }; - - return std::find(std::begin(properties), std::end(properties), name) != std::end(properties); + return false; } template diff --git a/src/bin/eolian_mono/eolian/mono/documentation.hh b/src/bin/eolian_mono/eolian/mono/documentation.hh index db00ba8a0f..d009e4571d 100644 --- a/src/bin/eolian_mono/eolian/mono/documentation.hh +++ b/src/bin/eolian_mono/eolian/mono/documentation.hh @@ -21,7 +21,6 @@ #include "grammar/html_escaped_string.hpp" #include "using_decl.hh" #include "name_helpers.hh" -#include "helpers.hh" #include "generation_contexts.hh" #include "blacklist.hh" @@ -77,11 +76,7 @@ struct documentation_generator // The name_tail parameter is the last 4 chars of the original string, which // could be ".set" or ".get" and in this case they are ignored by Eolian. // We want them to know what the documentation intended to reference. - template - static std::string function_conversion(const ::Eolian_Object *klass - , const ::Eolian_Function *function - , std::string name_tail - , Context const& context) + static std::string function_conversion(const ::Eolian_Object *klass, const ::Eolian_Function *function, std::string name_tail) { ::Eolian_Function_Type ftype = ::eolian_function_type_get(function); const char* eo_name = ::eolian_function_name_get(function); @@ -127,27 +122,13 @@ struct documentation_generator break; case ::EOLIAN_PROPERTY: { + int getter_nkeys = property_num_keys(function, ::EOLIAN_PROP_GET); + int setter_nkeys = property_num_keys(function, ::EOLIAN_PROP_SET); std::string short_name = name_helpers::property_managed_name(klass_d, eo_name); - - // We need to replace the current class context with the context - // from the class that originated this property. - class_context::wrapper_kind klass_kind; - if (helpers::is_managed_interface(klass_d)) - klass_kind = class_context::interface; - else - klass_kind = class_context::inherit; - - auto my_context = grammar::context_replace_tag(class_context{klass_kind}, context); - - auto unit = eolian_object_unit_get((const Eolian_Object*)function); - attributes::function_def getter_func{function, ::EOLIAN_PROP_GET, nullptr, unit}; - attributes::function_def setter_func{function, ::EOLIAN_PROP_SET, nullptr, unit}; - attributes::property_def prop{function, getter_func, setter_func, unit}; - - auto has_wrapper = helpers::has_property_wrapper(prop, &klass_d, my_context); - - if (has_wrapper == helpers::has_property_wrapper_bit::has_none) - name += ".Get" + short_name; + bool blacklisted = blacklist::is_property_blacklisted(name + "." + short_name); + // EO properties with keys or blacklisted are not converted into C# properties. + // In these cases we refer to the getter method instead of the property. + if ((getter_nkeys > 0) || (setter_nkeys > 0) || (blacklisted)) name += ".Get" + short_name; else if (name_tail == ".get") name += ".Get" + short_name; else if (name_tail == ".set") name += ".Set" + short_name; else name += "." + short_name; @@ -184,13 +165,9 @@ struct documentation_generator } // Turns an Eolian reference like @Efl.Input.Pointer.tool into a tag - template - static std::string ref_conversion(const ::Eolian_Doc_Token *token - , const Eolian_State *state - , std::string name_tail - , Context const& context) + static std::string ref_conversion(const ::Eolian_Doc_Token *token, const Eolian_State *state, std::string name_tail, + bool want_beta) { - bool want_beta = context_want_beta(context); const Eolian_Object *data, *data2; ::Eolian_Object_Type type = ::eolian_doc_token_ref_resolve(token, state, &data, &data2); @@ -218,7 +195,7 @@ struct documentation_generator is_beta = eolian_object_is_beta(data) || eolian_object_is_beta(data2); break; case ::EOLIAN_OBJECT_FUNCTION: - ref += function_conversion(data, (const ::Eolian_Function *)data2, name_tail, context); + ref += function_conversion(data, (const ::Eolian_Function *)data2, name_tail); is_beta = eolian_object_is_beta(data) || eolian_object_is_beta(data2); break; case ::EOLIAN_OBJECT_CONSTANT: @@ -250,8 +227,7 @@ struct documentation_generator } // Turns EO documentation syntax into C# triple-slash XML comment syntax - template - static std::string syntax_conversion(std::string text, const Eolian_State *state, Context const& context) + static std::string syntax_conversion(std::string text, const Eolian_State *state, bool want_beta) { std::string new_text, ref; ::Eolian_Doc_Token_Type previous_token_type = ::EOLIAN_DOC_TOKEN_UNKNOWN; @@ -290,7 +266,7 @@ struct documentation_generator new_text += token_text; break; case ::EOLIAN_DOC_TOKEN_REF: - ref = ref_conversion(&token, state, name_tail, context); + ref = ref_conversion(&token, state, name_tail, want_beta); if (ref != "") { if (utils::ends_with(ref, BETA_REF_SUFFIX)) @@ -355,7 +331,7 @@ struct documentation_generator if (!as_generator(html_escaped_string).generate(std::back_inserter(new_text), text, context)) return false; auto options = context_find_tag(context); - new_text = syntax_conversion( new_text, context_find_tag(context).state, context); + new_text = syntax_conversion( new_text, context_find_tag(context).state, options.want_beta); std::string tabs; as_generator(scope_tab(scope_size) << "/// ").generate (std::back_inserter(tabs), attributes::unused, context); @@ -677,7 +653,7 @@ struct documentation_string_generator auto options = context_find_tag(context); auto state = context_find_tag(context).state; - if (!as_generator(string).generate(sink, documentation_generator::syntax_conversion(escaped, state, context), context)) + if (!as_generator(string).generate(sink, documentation_generator::syntax_conversion(escaped, state, options.want_beta), context)) return false; return true; diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh b/src/bin/eolian_mono/eolian/mono/function_definition.hh index 0c2adebe42..eff586b157 100644 --- a/src/bin/eolian_mono/eolian/mono/function_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh @@ -26,7 +26,6 @@ #include "grammar/list.hpp" #include "grammar/alternative.hpp" #include "grammar/attribute_reorder.hpp" -#include "grammar/eps.hpp" #include "grammar/counter.hpp" #include "logging.hh" #include "type.hh" @@ -45,7 +44,7 @@ namespace eolian_mono { struct native_function_definition_generator { attributes::klass_def const* klass; - + template bool generate(OutputIterator sink, attributes::function_def const& f, Context const& context) const { @@ -182,7 +181,7 @@ struct native_function_definition_generator return true; } }; - + struct function_definition_generator { function_definition_generator(bool do_super = false) @@ -323,199 +322,6 @@ property_extension_method_definition_generator property_extension_method_definit struct property_wrapper_definition_generator { - template - bool generate_get_indexer(OutputIterator sink, attributes::property_def const& property, Context const& context - , std::string get_scope - , bool is_interface) const - { - if (is_interface) - { - if (!as_generator(scope_tab(3) << get_scope << "get;\n" - ).generate(sink, attributes::unused, context)) - return false; - } - else - { - if (!as_generator(scope_tab(2) << scope_tab << get_scope << "get\n" - << scope_tab(2) << scope_tab << "{\n" - << scope_tab(2) << scope_tab(2) << "var i = new " - << name_helpers::property_concrete_indexer_name(property) << "();\n" - << scope_tab(2) << scope_tab(2) << "i.Self = this;\n" - << scope_tab(2) << scope_tab(2) << "return i;\n" - << scope_tab(2) << scope_tab << "}\n" - ).generate(sink, attributes::unused, context)) - return false; - } - - return true; - } - - template - bool generate_indexer(OutputIterator sink - , attributes::property_def const& property - , Context const& context - , std::string scope, std::string get_scope, std::string set_scope - , std::string class_name - , C1 keys, C2 values - , bool is_interface - , bool is_concrete_for_interface - , bool has_setter) const - { - if (is_interface) - return true; - - auto size_not_one = [] (std::vector k) { return k.size() != 1; }; - auto type_or_tuple - = - ( - ( - attribute_conditional(size_not_one)["("] - << (type(false) % ", ") - << ")" - ) - | *type(false) - ) - ; - - std::string parentship = "\n"; - - bool is_self_property = *implementing_klass == *klass_from_property; - - if (!(is_self_property && !is_concrete_for_interface)) - parentship = " : " + name_helpers::property_interface_indexer_name(property, *klass_from_property) + "\n"; - - if (!as_generator - ( - scope_tab(2) << scope << "class " << name_helpers::property_concrete_indexer_name(property) << parentship - << scope_tab(2) << "{\n" - << scope_tab(3) << "public " << class_name << " Self {get; set;}\n" - << scope_tab(3) << "public " - << type_or_tuple << " this[" << type_or_tuple <<" i]\n" - << scope_tab(3) << "{\n" - ).generate(sink, make_tuple(values, values, keys, keys), context)) - return false; - - assert (!keys.empty()); - std::vector get_keys; - if(keys.size() != 1) - { - unsigned int i = 0; - for (auto&& key : keys) - { - static_cast(key); - ++i; - get_keys.push_back("i.Item" + std::to_string(i)); - } - } - else - { - get_keys.push_back ("i"); - } - assert (!get_keys.empty()); - - generate_get(sink, property, context, get_scope, get_keys, values, is_interface, "Self."); - if (has_setter) - generate_set(sink, property, context, set_scope, get_keys, values, is_interface, "Self."); - - if (!as_generator - ( - scope_tab(3) << "}\n" - << scope_tab(2) << "};\n" - ).generate(sink, attributes::unused, context)) - return false; - return true; - } - template - bool generate_set(OutputIterator sink, attributes::property_def const& property, Context const& context - , std::string set_scope - , CK keys, CV values - , bool is_interface - , std::string name_prefix = "") const - { - using efl::eolian::grammar::counter; - if (is_interface) - { - if (!as_generator(scope_tab(2) << scope_tab << set_scope << "set;\n" - ).generate(sink, attributes::unused, context)) - return false; - } - else if (values.size() == 1) - { - if (!as_generator(scope_tab(2) << scope_tab << set_scope << "set " << "{ " << name_prefix << name_helpers::managed_method_name(*property.setter) + "(" << *(string << ",") << "value); }\n" - ).generate(sink, keys, context)) - return false; - } - else if (values.size() > 1) - { - if (!as_generator( - scope_tab(2) << scope_tab << set_scope << "set " - << ("{ " << name_prefix << name_helpers::managed_method_name(*property.setter) + "(") - << *(string << ",") << ((" value.Item" << counter(1)) % ", ") - << "); }\n" - ).generate(sink, std::make_tuple(keys, values), context)) - return false; - } - return true; - } - template - bool generate_get(OutputIterator sink, attributes::property_def const& property, Context const& context - , std::string get_scope - , CK keys, CV values - , bool is_interface - , std::string name_prefix = "") const - { - using efl::eolian::grammar::attribute_reorder; - using efl::eolian::grammar::attributes::parameter_direction; - using efl::eolian::grammar::attributes::parameter_def; - - if (is_interface) // only declaration - { - if (!as_generator(scope_tab(2) << scope_tab << get_scope << "get;\n" - ).generate(sink, attributes::unused, context)) - return false; - } - else - if (/*has_getter && */values.size() == 1) - { - if (!as_generator - (scope_tab(2) << scope_tab << get_scope - << "get " << "{ return " << name_prefix << name_helpers::managed_method_name(*property.getter) - << "(" << (string % ",") << "); }\n" - ).generate(sink, keys, context)) - return false; - } - else if (/*has_getter && */values.size() > 1) - { - if (!as_generator - (scope_tab(2) << scope_tab << get_scope << "get " - << "{\n" - << *attribute_reorder<1, -1, 1> - (scope_tab(4) << type(true) << " _out_" - << argument(false) << " = default(" << type(true) << ");\n" - ) - << scope_tab(4) << name_prefix << name_helpers::managed_method_name(*property.getter) - << "(" << *(string << ",") << (("out _out_" << argument(false)) % ", ") << ");\n" - << scope_tab(4) << "return (" << (("_out_"<< argument(false)) % ", ") << ");\n" - << scope_tab(3) << "}" << "\n" - ).generate(sink, std::make_tuple(values, keys, values, values), context)) - return false; - } - // else if (values.size() == 1) - // { - // if (!as_generator - // (scope_tab << scope_tab << get_scope << "get " - // << "{\n" - // << *attribute_reorder<1, -1, 1>(scope_tab(3) << type(true) << " _out_" << argument(false) << " = default(" << type(true) << ");\n") - // << scope_tab(3) << name_prefix << name_helpers::managed_method_name(*property.getter) - // << "(" << *(string << ",") << (("out _out_" << argument(false)) % ",") << ");\n" - // << scope_tab(3) << "return " << (("_out_"<< argument(false)) % ",") << ";\n" - // << scope_tab(2) << "}" << "\n" - // ).generate(sink, std::make_tuple(values, keys, values, values), context)) - // return false; - // } - return true; - } - template bool generate(OutputIterator sink, attributes::property_def const& property, Context const& context) const { @@ -524,127 +330,103 @@ struct property_wrapper_definition_generator using efl::eolian::grammar::attributes::parameter_direction; using efl::eolian::grammar::attributes::parameter_def; - /// C(k) = keys count, C(v) = values count - /// /------------\ /------\. - /// |blacklisted?|---yes-----| skip |--------------\. - /// \------------/ \------/ | - /// | | | - /// no yes | - /// | | | - /// /---------\ /------------\ | - /// |is-static|----yes-----|is-interface| | - /// \---------/ \------------/ | - /// | | | - /// no no | - /// | | | - /// /--------\ /-----------\ | - /// |has-get?|---no-conc---|is-concrete|-----yes---/ - /// \--------/ \-----------/ - /// / \. - /// no yes - /// / \. - /// /----\ /--------------------------------------\. - /// |skip|-yes-|explicit return != Eina.Error or void | - /// \----/ \--------------------------------------/ - /// | - /// no - /// | - /// /--------\. - /// |has-set?| - /// \--------/ - /// / \. - /// no yes - /// / \. - /// /------\ /--------------------------------------\. - /// /------------------|no-set| |explicit return != Eina.Error or void |---- yes --\. - /// | \------/ \--------------------------------------/ | - /// | \------------|----------------------------------------------/ - /// | no - /// | | - /// | /--------\. - /// | |has-both| - /// | \--------/ - /// | | - /// | /-------------------\. - /// | |set-keys = get-keys| - /// | \-------------------/ - /// | / | - /// | no | - /// | / | - /// | /----\ /-----------------------\. - /// | |skip|--no---|set-values = get-values| - /// | \----/ \-----------------------/ - /// | / - /// | yes - /// | / - /// | /--------\. - /// \-------------------------| keys | - /// \--------/ - /// / \. - /// 0 >0 - /// / \. - /// /----------\ /----------\. - /// |no-indexer| | keys > 1 | - /// \----------/ \----------/ - /// | / | - /// | no yes - /// | / | - /// | / | - /// | /---------\ /-------------------\. - /// | | indexer | | indexer tuple key | - /// | \---------/ \-------------------/ - /// | / | - /// /--------\ | - /// | values |----------/ - /// \--------/ - /// / \. - /// 1 >1 - /// / \. - /// /----------------\ /-------------\. - /// | no tuple value | | tuple value | - /// \----------------/ \-------------/ - /// - - auto has_wrapper = helpers::has_property_wrapper (property, implementing_klass, context); - bool has_getter = has_wrapper & helpers::has_property_wrapper_bit::has_getter; - if (!has_getter) return true; - bool has_setter = has_wrapper & helpers::has_property_wrapper_bit::has_setter; - bool has_indexer = has_wrapper & helpers::has_property_wrapper_bit::has_indexer; + if (blacklist::is_property_blacklisted(property, *implementing_klass, context)) + return true; bool is_interface = context_find_tag(context).current_wrapper_kind == class_context::interface; bool is_static = (property.getter.is_engaged() && property.getter->is_static) || (property.setter.is_engaged() && property.setter->is_static); bool is_concrete = context_find_tag(context).current_wrapper_kind == class_context::concrete; - bool is_concrete_for_interface = is_concrete - && (implementing_klass->type == attributes::class_type::interface_ - || implementing_klass->type == attributes::class_type::mixin); - //if (name_helpers::klass_concrete_or_interface_name (*implementing_klass) == "IMapping") - if (false) + + if ((is_concrete || is_interface) && is_static) + return true; + + auto get_params = property.getter.is_engaged() ? property.getter->parameters.size() : 0; + //auto set_params = property.setter.is_engaged() ? property.setter->parameters.size() : 0; + + // C# properties must have a single value. + // + // Single values in getters are automatically converted to return_type, + // meaning they should have 0 parameters. + // + // For setters, we ignore the return type - usually boolean. + // if (get_params > 0 || set_params > 1) + // return true; + + if (property.getter + && std::find_if (property.getter->parameters.begin() + , property.getter->parameters.end() + , [] (parameter_def const& p) + { + return p.direction != parameter_direction::out; + }) != property.getter->parameters.end()) + return true; + if (property.setter + && std::find_if (property.setter->parameters.begin() + , property.setter->parameters.end() + , [] (parameter_def const& p) + { + return p.direction != parameter_direction::in; + }) != property.setter->parameters.end()) + return true; + + if (property.getter && property.setter) { - if (!as_generator(grammar::lit("/// is interface ") << (int)is_interface - << " is static " << (int)is_static - << " is concrete " << (int)is_concrete - << " is concrete_for_interface " << (int)is_concrete_for_interface - << " klass_from_property->type " << (int)klass_from_property->type - << " has_setter " << (int)has_setter - << " property.setter->explicit_return_type != attributes::void_ " << (property.setter && property.setter->explicit_return_type != attributes::void_) - << " property.setter->keys != property.getter->keys " << (property.setter && property.setter->keys != property.getter->keys) - << " property.setter->values != property.getter->values " << (property.setter && property.setter->values != property.getter->values) - << " has_setter && property.setter->scope != attributes::member_scope::scope_public " << (property.setter && property.setter->scope != attributes::member_scope::scope_public) - << "\n") - .generate (sink, attributes::unused, context)) - return false; + if (get_params != 0 && property.setter->parameters.size() != property.getter->parameters.size()) + return true; } - if (blacklist::is_property_blacklisted(property, context)) - return true; + std::vector parameters; + + if (property.setter.is_engaged()) + { + std::transform (property.setter->parameters.begin(), property.setter->parameters.end() + , std::back_inserter(parameters) + , [] (parameter_def p) -> parameter_def + { + //p.direction = efl::eolian::attributes::parameter_direction::in; + return p; + }); + } + else if (property.getter.is_engaged()) + { + // if getter has parameters, then we ignore return type, otherwise + // we use the return type. + if (get_params == 0) + parameters.push_back({parameter_direction::in + , property.getter->return_type, "propertyResult", {} + , property.getter->unit}); + else + std::transform (property.getter->parameters.begin(), property.getter->parameters.end() + , std::back_inserter(parameters) + , [] (parameter_def p) -> parameter_def + { + p.direction = parameter_direction::in; + return p; + }); + } + else + { + EINA_CXX_DOM_LOG_ERR(eolian_mono::domain) << "Property must have either a getter or a setter." << std::endl; + return false; + } + + std::string dir_mod; + if (property.setter.is_engaged()) + dir_mod = direction_modifier(property.setter->parameters[0]); std::string managed_name = name_helpers::property_managed_name(property); std::string scope = "public "; - std::string get_scope = eolian_mono::function_scope_get(*property.getter); - std::string set_scope = has_setter ? eolian_mono::function_scope_get(*property.setter) : ""; + std::string get_scope = property.getter.is_engaged() ? eolian_mono::function_scope_get(*property.getter) : ""; + bool is_get_public = get_scope == "public "; + std::string set_scope = property.setter.is_engaged() ? eolian_mono::function_scope_get(*property.setter) : ""; + bool is_set_public = set_scope == "public "; + + // No need to generate this wrapper as no accessor is public. + if (is_interface && (!is_get_public && !is_set_public)) + return true; // C# interface members are declared automatically as public if (is_interface) @@ -659,64 +441,23 @@ struct property_wrapper_definition_generator get_scope = ""; set_scope = ""; } - else if (!has_setter || (get_scope == scope)) + else if (!property.setter.is_engaged() || (get_scope == scope)) { scope = get_scope; get_scope = ""; } - - std::string virtual_mod = (is_static || is_interface || is_concrete) ? "" : "virtual "; - - auto keys = property.getter->keys; - auto values = property.getter->values; - auto generated_values = values; - auto klass_name = name_helpers::klass_concrete_or_interface_name (*implementing_klass); - - if (has_indexer) - { - assert (!!implementing_klass); - generate_indexer (sink, property, context, scope, get_scope, set_scope - , klass_name, keys, values - , is_interface, is_concrete_for_interface, has_setter); - - generated_values.clear(); - if (!is_interface && *implementing_klass == *klass_from_property - && !is_concrete_for_interface) + else if (!property.getter.is_engaged() || (set_scope == scope)) { - generated_values.push_back - (attributes::parameter_def - {parameter_direction::in - , attributes::type_def - { - attributes::regular_type_def{name_helpers::property_concrete_indexer_name(property), {attributes::qualifier_info::is_none, ""}, {}} - , name_helpers::property_concrete_indexer_name(property) - , false, false, false, "" - } - , "indexer", {}, nullptr - }); + scope = set_scope; + set_scope = ""; } - else - { - generated_values.push_back - (attributes::parameter_def - {parameter_direction::in - , attributes::type_def - { - attributes::regular_type_def{name_helpers::klass_full_concrete_or_interface_name (*klass_from_property) + managed_name + "Indexer", {attributes::qualifier_info::is_none, ""}, {}} - , name_helpers::property_interface_indexer_name(property, *klass_from_property) - , false, false, false, "" - } - , "indexer", {}, nullptr - }); - } - } - if (generated_values.size() == 1) + if (parameters.size() == 1) { if (!as_generator( documentation(2) - << scope_tab(2) << scope << (is_static ? "static " : virtual_mod) << type(true) << " " << managed_name << " {\n" - ).generate(sink, std::make_tuple(property, generated_values[0].type), context)) + << scope_tab(2) << scope << (is_static ? "static " : "") << type(true) << " " << managed_name << " {\n" + ).generate(sink, std::make_tuple(property, parameters[0].type), context)) return false; } else @@ -727,21 +468,73 @@ struct property_wrapper_definition_generator << scope_tab(2) << scope << (is_static ? "static (" : "(") << (attribute_reorder<1, -1>(type(true) /*<< " " << argument*/) % ", ") << ") " << managed_name << " {\n" - ).generate(sink, std::make_tuple(property, generated_values), context)) + ).generate(sink, std::make_tuple(property, parameters), context)) return false; } - if (has_indexer) + if (property.getter.is_engaged() && is_interface) { - generate_get_indexer (sink, property, context, get_scope, is_interface); + if (is_get_public) + if (!as_generator(scope_tab(2) << scope_tab << set_scope << "get;\n" + ).generate(sink, attributes::unused, context)) + return false; } - else + else if (property.getter.is_engaged() && get_params == 0/*parameters.size() == 1 && property.getter.is_engaged()*/) { - std::vector empty_keys; - generate_get(sink, property, context, get_scope, empty_keys, values, is_interface); + if (!as_generator + (scope_tab(2) << scope_tab << get_scope + << "get " << "{ return " + name_helpers::managed_method_name(*property.getter) + "(); }\n" + ).generate(sink, attributes::unused, context)) + return false; + } + else if (parameters.size() >= 1 && property.getter) + { + if (!as_generator + (scope_tab(2) << scope_tab << get_scope << "get " + << "{\n" + << *attribute_reorder<1, -1, 1> + (scope_tab(4) << type(true) << " _out_" + << argument(false) << " = default(" << type(true) << ");\n" + ) + << scope_tab(4) << name_helpers::managed_method_name(*property.getter) + << "(" << (("out _out_" << argument(false)) % ", ") << ");\n" + << scope_tab(4) << "return (" << (("_out_"<< argument(false)) % ", ") << ");\n" + << scope_tab(3) << "}" << "\n" + ).generate(sink, std::make_tuple(parameters, parameters, parameters), context)) + return false; + } + // else if (parameters.size() == 1) + // { + // if (!as_generator + // (scope_tab << scope_tab << get_scope << "get " + // << "{\n" + // << *attribute_reorder<1, -1, 1>(scope_tab(3) << type(true) << " _out_" << argument(false) << " = default(" << type(true) << ");\n") + // << scope_tab(3) << name_helpers::managed_method_name(*property.getter) + // << "(" << (("out _out_" << argument(false)) % ",") << ");\n" + // << scope_tab(3) << "return " << (("_out_"<< argument(false)) % ",") << ";\n" + // << scope_tab(2) << "}" << "\n" + // ).generate(sink, std::make_tuple(parameters, parameters, parameters), context)) + // return false; + // } - if (has_setter) - generate_set (sink, property, context, set_scope, empty_keys, values, is_interface); + if (property.setter.is_engaged() && is_interface) + { + if (is_set_public) + if (!as_generator(scope_tab(2) << scope_tab << set_scope << "set;\n" + ).generate(sink, attributes::unused, context)) + return false; + } + else if (parameters.size() == 1 && property.setter.is_engaged()) + { + if (!as_generator(scope_tab(2) << scope_tab << set_scope << "set " << "{ " + name_helpers::managed_method_name(*property.setter) + "(" + dir_mod + "value); }\n" + ).generate(sink, attributes::unused, context)) + return false; + } + else if (parameters.size() > 1 && property.setter.is_engaged()) + { + if (!as_generator(scope_tab(2) << scope_tab << set_scope << "set " << ("{ " + name_helpers::managed_method_name(*property.setter) + "(" + dir_mod) << ((" value.Item" << counter(1)) % ", ") << "); }" << "\n" + ).generate(sink, parameters, context)) + return false; } if (!as_generator(scope_tab(2) << "}\n\n").generate(sink, attributes::unused, context)) @@ -749,56 +542,16 @@ struct property_wrapper_definition_generator return true; } - attributes::klass_def const* implementing_klass, *klass_from_property; + attributes::klass_def const* implementing_klass; }; struct property_wrapper_definition_parameterized { - property_wrapper_definition_generator operator()(attributes::klass_def const& klass - , attributes::klass_def const& prop_from_klass) const - { - return {&klass, &prop_from_klass}; - } -} const property_wrapper_definition; -property_wrapper_definition_generator as_generator(property_wrapper_definition_parameterized) -{ - return {}; -} - -struct interface_property_indexer_definition_generator -{ - template - bool generate(OutputIterator sink, attributes::property_def const& property, Context const& context) const - { - using efl::eolian::grammar::attribute_reorder; - using efl::eolian::grammar::counter; - using efl::eolian::grammar::attributes::parameter_direction; - using efl::eolian::grammar::attributes::parameter_def; - - bool is_interface = context_find_tag(context).current_wrapper_kind == class_context::interface; - - assert (is_interface); - auto klass_name = name_helpers::klass_concrete_or_interface_name (*implementing_klass); - std::string managed_name = name_helpers::property_managed_name(property); - - if (!as_generator - (scope_tab << "public interface " << name_helpers::property_interface_indexer_short_name(property, *implementing_klass) << "\n" - << scope_tab << "{\n" - << scope_tab << "}\n" - ).generate (sink, attributes::unused, context)) - return false; - - return true; - } - attributes::klass_def const* implementing_klass; -}; -struct interface_property_indexer_definition_parameterized -{ - interface_property_indexer_definition_generator operator()(attributes::klass_def const& klass) const + property_wrapper_definition_generator operator()(attributes::klass_def const& klass) const { return {&klass}; } -} const interface_property_indexer_definition; -interface_property_indexer_definition_generator as_generator(interface_property_indexer_definition_parameterized) +} const property_wrapper_definition; +property_wrapper_definition_generator as_generator(property_wrapper_definition_parameterized) { return {}; } @@ -818,10 +571,6 @@ struct is_eager_generator< ::eolian_mono::property_wrapper_definition_generator> template <> struct is_eager_generator< ::eolian_mono::property_wrapper_definition_parameterized> : std::true_type {}; template <> -struct is_eager_generator< ::eolian_mono::interface_property_indexer_definition_parameterized> : std::true_type {}; -template <> -struct is_eager_generator< ::eolian_mono::interface_property_indexer_definition_generator> : std::true_type {}; -template <> struct is_generator< ::eolian_mono::function_definition_generator> : std::true_type {}; template <> struct is_generator< ::eolian_mono::native_function_definition_generator> : std::true_type {}; @@ -833,10 +582,6 @@ template <> struct is_generator< ::eolian_mono::property_wrapper_definition_generator> : std::true_type {}; template <> struct is_generator< ::eolian_mono::property_wrapper_definition_parameterized> : std::true_type {}; -template <> -struct is_generator< ::eolian_mono::interface_property_indexer_definition_parameterized> : std::true_type {}; -template <> -struct is_generator< ::eolian_mono::interface_property_indexer_definition_generator> : std::true_type {}; namespace type_traits { template <> @@ -855,13 +600,8 @@ template <> struct attributes_needed< ::eolian_mono::property_wrapper_definition_generator> : std::integral_constant {}; template <> struct attributes_needed< ::eolian_mono::property_wrapper_definition_parameterized> : std::integral_constant {}; - -template <> -struct attributes_needed< ::eolian_mono::interface_property_indexer_definition_parameterized> : std::integral_constant {}; -template <> -struct attributes_needed< ::eolian_mono::interface_property_indexer_definition_generator> : std::integral_constant {}; } - + } } } #endif diff --git a/src/bin/eolian_mono/eolian/mono/generation_contexts.hh b/src/bin/eolian_mono/eolian/mono/generation_contexts.hh index 2ac16b0f61..f7376f056a 100644 --- a/src/bin/eolian_mono/eolian/mono/generation_contexts.hh +++ b/src/bin/eolian_mono/eolian/mono/generation_contexts.hh @@ -26,7 +26,6 @@ namespace eolian_mono { struct class_context { enum wrapper_kind { - none, interface, concrete, inherit, @@ -110,12 +109,6 @@ struct options_context { std::string examples_dir; }; -template -bool context_want_beta(Context const& context) -{ - return efl::eolian::grammar::context_find_tag(context).want_beta; -} - } #endif diff --git a/src/bin/eolian_mono/eolian/mono/helpers.hh b/src/bin/eolian_mono/eolian/mono/helpers.hh index 049f263d80..b34a985749 100644 --- a/src/bin/eolian_mono/eolian/mono/helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/helpers.hh @@ -17,7 +17,6 @@ #define EOLIAN_MONO_HELPERS_HH #include "grammar/klass_def.hpp" -#include "grammar/context.hpp" #include "blacklist.hh" #include "generation_contexts.hh" #include "name_helpers.hh" @@ -306,106 +305,6 @@ inline std::vector reorder_constructors(std::vector return constructors; } -enum class has_property_wrapper_bit -{ - has_none = 0 - , has_getter = 1 << 0 - , has_setter = 1 << 1 - , has_indexer = 1 << 2 - , has_key_tuple = 1 << 3 - , has_value_tuple = 1 << 4 - , has_set_error_check = 1 << 5 - , has_get_error_check = 1 << 6 -}; - -has_property_wrapper_bit& operator|=(has_property_wrapper_bit& self, has_property_wrapper_bit bit) -{ - self = static_cast(static_cast(self) | static_cast(bit)); - return self; -} - -bool operator&(has_property_wrapper_bit self, has_property_wrapper_bit bit) -{ - return static_cast(self) & static_cast(bit); -} - -template -has_property_wrapper_bit has_property_wrapper(attributes::property_def const& property, attributes::klass_def const* implementing_klass - , Context const& context) -{ - using efl::eolian::grammar::context_find_tag; - has_property_wrapper_bit r = has_property_wrapper_bit::has_none; - - if (blacklist::is_property_blacklisted(property, *implementing_klass, context)) - return r; - - bool has_getter = property.getter.is_engaged(); - bool has_setter = property.setter.is_engaged(); - - bool is_interface = context_find_tag(context).current_wrapper_kind == class_context::interface; - bool is_static = (property.getter.is_engaged() && property.getter->is_static) - || (has_setter && property.setter->is_static); - bool is_concrete = context_find_tag(context).current_wrapper_kind == class_context::concrete; - - if (is_static) - { - if (is_interface) return r; - else if (is_concrete) return r; - } - - // EINA_LOG_ERR("Generating property %s", name_helpers::property_managed_name(property).c_str()); - // C# interface can have only - if (is_interface) - { - has_getter = has_getter && property.getter->scope == attributes::member_scope:: scope_public; - } - - if (!has_getter) - { - return r; - } - - if (property.getter->explicit_return_type != attributes::void_) - { - return r; - } - else if (has_setter) - { - if (property.setter->explicit_return_type != attributes::void_) - has_setter = false; // do not generate setter - else if (property.setter->keys != property.getter->keys) - has_setter = false; - else if (property.setter->values != property.getter->values) - has_setter = false; - } - - if (is_interface) - { - if (property.getter->scope != attributes::member_scope::scope_public) - return r; - else if (has_setter && property.setter->scope != attributes::member_scope::scope_public) - has_setter = false; - } - - if (has_getter) - r |= has_property_wrapper_bit::has_getter; - if (has_setter) - r |= has_property_wrapper_bit::has_setter; - - if (property.getter->keys.size() == 1) - r |= has_property_wrapper_bit::has_indexer; - else if (property.getter->keys.size() > 1) - { - r |= has_property_wrapper_bit::has_indexer; - r |= has_property_wrapper_bit::has_key_tuple; - } - - if (property.getter->values.size() > 1) - r |= has_property_wrapper_bit::has_value_tuple; - - return r; -} - } // namespace helpers } // namespace eolian_mono diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh b/src/bin/eolian_mono/eolian/mono/klass.hh index 7fe60f0fcf..072ea6c143 100644 --- a/src/bin/eolian_mono/eolian/mono/klass.hh +++ b/src/bin/eolian_mono/eolian/mono/klass.hh @@ -106,10 +106,6 @@ struct klass name_helpers::klass_full_concrete_or_interface_name(cls)}, context); - // Property wrappers - if (!as_generator(*(interface_property_indexer_definition(cls))).generate(sink, cls.properties, iface_cxt)) - return false; - if(!as_generator(documentation(1)).generate(sink, cls, iface_cxt)) return false; @@ -162,7 +158,7 @@ struct klass ).generate(sink, p, iface_cxt)) return false; - if (!as_generator(*(property_wrapper_definition(cls, cls))).generate(sink, cls.properties, iface_cxt)) + if (!as_generator(*(property_wrapper_definition(cls))).generate(sink, cls.properties, iface_cxt)) return false; // End of interface declaration @@ -263,13 +259,13 @@ struct klass return false; // Property wrappers - if (!as_generator(*(property_wrapper_definition(cls, cls))).generate(sink, cls.properties, concrete_cxt)) + if (!as_generator(*(property_wrapper_definition(cls))).generate(sink, cls.properties, concrete_cxt)) return false; for (auto&& klass : helpers::non_implemented_interfaces(cls, concrete_cxt)) { attributes::klass_def c(get_klass(klass, cls.unit), cls.unit); - if (!as_generator(*(property_wrapper_definition(cls, c))).generate(sink, c.properties, concrete_cxt)) + if (!as_generator(*(property_wrapper_definition(cls))).generate(sink, c.properties, concrete_cxt)) return false; } @@ -347,13 +343,13 @@ struct klass return false; // Property wrappers - if (!as_generator(*(property_wrapper_definition(cls, cls))).generate(sink, cls.properties, inherit_cxt)) + if (!as_generator(*(property_wrapper_definition(cls))).generate(sink, cls.properties, inherit_cxt)) return false; for (auto&& klass : helpers::non_implemented_interfaces(cls, inherit_cxt)) { attributes::klass_def c(get_klass(klass, cls.unit), cls.unit); - if (!as_generator(*(property_wrapper_definition(cls, c))).generate(sink, c.properties, inherit_cxt)) + if (!as_generator(*(property_wrapper_definition(cls))).generate(sink, c.properties, inherit_cxt)) return false; } diff --git a/src/bin/eolian_mono/eolian/mono/name_helpers.hh b/src/bin/eolian_mono/eolian/mono/name_helpers.hh index bf0abb7863..7f71d9279b 100644 --- a/src/bin/eolian_mono/eolian/mono/name_helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/name_helpers.hh @@ -334,6 +334,28 @@ inline std::string to_field_name(std::string const& in) return utils::capitalize(in); } + + +template +inline std::string property_managed_name(T const& klass, std::string const& name) +{ + auto names = utils::split(name, '_'); + // No need to escape keyword here as it will be capitalized and already + // namespaced inside the owner class. + auto managed_name = utils::to_pascal_case(names); + auto managed_klass_name = klass_concrete_or_interface_name(klass); + + if (managed_name == "Type") + managed_name = managed_klass_name + managed_name; + + return managed_name; +} + +inline std::string property_managed_name(attributes::property_def const& property) +{ + return property_managed_name(property.klass, property.name); +} + inline std::string managed_part_name(attributes::part_def const& part) { std::vector names = utils::split(part.name, '_'); @@ -490,45 +512,6 @@ inline std::string translate_inherited_event_name(const attributes::event_def &e return join_namespaces(klass.namespaces, '_') + klass_interface_name(klass) + "_" + managed_event_name(evt.name); } -// Properties - -template -inline std::string property_managed_name(T const& klass, std::string const& name) -{ - auto names = utils::split(name, '_'); - // No need to escape keyword here as it will be capitalized and already - // namespaced inside the owner class. - auto managed_name = utils::to_pascal_case(names); - auto managed_klass_name = klass_concrete_or_interface_name(klass); - - if (managed_name == "Type") - managed_name = managed_klass_name + managed_name; - - return managed_name; -} - -inline std::string property_managed_name(attributes::property_def const& property) -{ - return property_managed_name(property.klass, property.name); -} - -inline std::string property_concrete_indexer_name(attributes::property_def const& property) -{ - return property_managed_name(property) + "Indexer"; -} - -template -inline std::string property_interface_indexer_name(attributes::property_def const& property, T const& current_klass) -{ - return name_helpers::klass_full_interface_name(current_klass) + property_concrete_indexer_name(property); -} - -template -inline std::string property_interface_indexer_short_name(attributes::property_def const& property, T const& current_klass) -{ - return name_helpers::klass_interface_name(current_klass) + property_concrete_indexer_name(property); -} - // Open/close namespaces template bool open_namespaces(OutputIterator sink, std::vector namespaces, Context const& context) diff --git a/src/bin/eolian_mono/eolian/mono/parameter.hh b/src/bin/eolian_mono/eolian/mono/parameter.hh index 824dc0c927..abd94641ef 100644 --- a/src/bin/eolian_mono/eolian/mono/parameter.hh +++ b/src/bin/eolian_mono/eolian/mono/parameter.hh @@ -65,7 +65,7 @@ struct is_generator< ::eolian_mono::parameter_generator> : std::true_type {}; namespace type_traits { template <> -struct attributes_needed< ::eolian_mono::parameter_generator> : std::integral_constant {}; +struct attributes_needed< ::eolian_mono::parameter_generator> : std::integral_constant {}; } template <> @@ -75,9 +75,9 @@ struct is_generator< ::eolian_mono::marshall_parameter_generator> : std::true_ty namespace type_traits { template <> -struct attributes_needed< ::eolian_mono::marshall_parameter_generator> : std::integral_constant {}; +struct attributes_needed< ::eolian_mono::marshall_parameter_generator> : std::integral_constant {}; } - + template <> struct is_eager_generator< ::eolian_mono::argument_generator> : std::true_type {}; template <> @@ -85,9 +85,9 @@ struct is_generator< ::eolian_mono::argument_generator> : std::true_type {}; namespace type_traits { template <> -struct attributes_needed< ::eolian_mono::argument_generator> : std::integral_constant {}; +struct attributes_needed< ::eolian_mono::argument_generator> : std::integral_constant {}; } - + template <> struct is_eager_generator< ::eolian_mono::argument_invocation_generator> : std::true_type {}; template <> @@ -1588,7 +1588,7 @@ struct native_convert_function_pointer_generator struct constructor_parameter_name_generator { - + template bool generate(OutputIterator sink, attributes::parameter_def const& param, Context const& context) const { diff --git a/src/bin/eolian_mono/eolian_mono.cc b/src/bin/eolian_mono/eolian_mono.cc index bf3874a414..1a96aaa826 100644 --- a/src/bin/eolian_mono/eolian_mono.cc +++ b/src/bin/eolian_mono/eolian_mono.cc @@ -183,14 +183,13 @@ run(options_type const& opts) auto context = context_add_tag(eolian_mono::indentation_context{0}, context_add_tag(eolian_mono::eolian_state_context{opts.state}, - context_add_tag(eolian_mono::class_context{eolian_mono::class_context::none}, context_add_tag(eolian_mono::options_context{opts.want_beta, opts.examples_dir}, context_add_tag(eolian_mono::library_context{opts.dllimport, opts.v_major, opts.v_minor, opts.references_map}, - efl::eolian::grammar::context_null()))))); + efl::eolian::grammar::context_null())))); EINA_ITERATOR_FOREACH(aliases, tp) { diff --git a/src/bindings/mono/efl_mono/GenericModel.cs b/src/bindings/mono/efl_mono/GenericModel.cs index faa2a2f099..8d7cc813a2 100644 --- a/src/bindings/mono/efl_mono/GenericModel.cs +++ b/src/bindings/mono/efl_mono/GenericModel.cs @@ -52,7 +52,7 @@ public class GenericModel : Efl.Object, Efl.IModel /// Gets the value of the given property in the wrapped model. /// The property of the model. /// The value of the property. - public Eina.Value GetProperty(System.String property) + public Eina.Value GetProperty( System.String property) { return model.GetProperty(property); } @@ -62,7 +62,7 @@ public class GenericModel : Efl.Object, Efl.IModel /// The value of the property. /// An that resolves when the property has /// been set or reports an error if it could not be set. - public Eina.Future SetProperty(System.String property, Eina.Value value) + public Eina.Future SetProperty( System.String property, Eina.Value value) { return model.SetProperty(property, value); } @@ -77,7 +77,7 @@ public class GenericModel : Efl.Object, Efl.IModel /// Returns an that will resolve when the property is ready to be read. /// The property of the model. /// An that resolves when the property is ready. - public Eina.Future GetPropertyReady(System.String property) + public Eina.Future GetPropertyReady( System.String property) { return model.GetPropertyReady(property); } @@ -87,7 +87,7 @@ public class GenericModel : Efl.Object, Efl.IModel /// The size of the range. /// An that resolves to an /// of children models. - public Eina.Future GetChildrenSlice(uint start, uint count) + public Eina.Future GetChildrenSlice( uint start, uint count) { return model.GetChildrenSlice(start, count); } @@ -141,7 +141,7 @@ public class GenericModel : Efl.Object, Efl.IModel /// The token for the task's cancellation. /// Task that resolves when the property has been set or could not /// be set. - public System.Threading.Tasks.Task SetPropertyAsync(System.String property, Eina.Value value, System.Threading.CancellationToken token=default(System.Threading.CancellationToken)) + public System.Threading.Tasks.Task SetPropertyAsync( System.String property, Eina.Value value, System.Threading.CancellationToken token=default(System.Threading.CancellationToken)) { return model.SetPropertyAsync(property, value, token); } @@ -151,7 +151,7 @@ public class GenericModel : Efl.Object, Efl.IModel /// The token for the task's cancellation. /// Task that resolves when the given property is ready to be /// read. - public System.Threading.Tasks.Task GetPropertyReadyAsync(System.String property, System.Threading.CancellationToken token=default(System.Threading.CancellationToken)) + public System.Threading.Tasks.Task GetPropertyReadyAsync( System.String property, System.Threading.CancellationToken token=default(System.Threading.CancellationToken)) { return model.GetPropertyReadyAsync(property, token); } @@ -162,7 +162,7 @@ public class GenericModel : Efl.Object, Efl.IModel /// Token to notify the async operation of external request to cancel. /// Task that resolves when the desired of /// children models is ready. - public System.Threading.Tasks.Task GetChildrenSliceAsync(uint start, uint count, System.Threading.CancellationToken token=default(System.Threading.CancellationToken)) + public System.Threading.Tasks.Task GetChildrenSliceAsync( uint start, uint count, System.Threading.CancellationToken token=default(System.Threading.CancellationToken)) { return model.GetChildrenSliceAsync(start, count, token); } diff --git a/src/examples/evas/efl-canvas-animation.c b/src/examples/evas/efl-canvas-animation.c index cc24550dea..a9058c50d6 100644 --- a/src/examples/evas/efl-canvas-animation.c +++ b/src/examples/evas/efl-canvas-animation.c @@ -114,7 +114,7 @@ main(void) Evas_Object *scale_rect = _new_rectangle_add(d.evas); efl_gfx_entity_geometry_set(scale_rect, EINA_RECT(50, 50, 50, 50)); efl_canvas_object_animation_start(scale_rect, - efl_new(EFL_CANVAS_ANIMATION_SCALE_CLASS, + efl_new(EFL_CANVAS_SCALE_ANIMATION_CLASS, efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(3.0, 3.0), scale_rect, EINA_VECTOR2(0.5, 0.5)), efl_animation_start_delay_set(efl_added, 5.0), efl_animation_duration_set(efl_added, 2.0), @@ -125,7 +125,7 @@ main(void) Evas_Object *scale_rect2 = _new_rectangle_add(d.evas); efl_gfx_entity_geometry_set(scale_rect2, EINA_RECT(50, 200, 50, 50)); efl_canvas_object_animation_start(scale_rect2, - efl_new(EFL_CANVAS_ANIMATION_SCALE_CLASS, + efl_new(EFL_CANVAS_SCALE_ANIMATION_CLASS, efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(3.0, 3.0), scale_rect2, EINA_VECTOR2(0.5, 0.5)), efl_animation_duration_set(efl_added, 2.0), efl_animation_play_count_set(efl_added, 0), @@ -136,7 +136,7 @@ main(void) Evas_Object *scale_rect3 = _new_rectangle_add(d.evas); efl_gfx_entity_geometry_set(scale_rect3, EINA_RECT(50, 350, 50, 50)); efl_canvas_object_animation_start(scale_rect3, - efl_new(EFL_CANVAS_ANIMATION_SCALE_CLASS, + efl_new(EFL_CANVAS_SCALE_ANIMATION_CLASS, efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(3.0, 3.0), scale_rect3, EINA_VECTOR2(0.5, 0.5)), efl_animation_duration_set(efl_added, 2.0), efl_animation_play_count_set(efl_added, 4), @@ -147,7 +147,7 @@ main(void) Evas_Object *scale_rect4 = _new_rectangle_add(d.evas); efl_gfx_entity_geometry_set(scale_rect4, EINA_RECT(200, 50, 50, 50)); efl_canvas_object_animation_start(scale_rect4, - efl_new(EFL_CANVAS_ANIMATION_SCALE_CLASS, + efl_new(EFL_CANVAS_SCALE_ANIMATION_CLASS, efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(3.0, 3.0), scale_rect4, EINA_VECTOR2(0.5, 0.5)), efl_animation_duration_set(efl_added, 2.0), efl_animation_final_state_keep_set(efl_added, EINA_TRUE) @@ -159,7 +159,7 @@ main(void) efl_gfx_color_set(scale_rect5, 255, 0, 0, 255); efl_gfx_entity_geometry_set(scale_rect5, EINA_RECT(200, 200, 50, 50)); efl_canvas_object_animation_start(scale_rect5, - efl_new(EFL_CANVAS_ANIMATION_SCALE_CLASS, + efl_new(EFL_CANVAS_SCALE_ANIMATION_CLASS, efl_animation_scale_set(efl_added, EINA_VECTOR2(1.0, 1.0), EINA_VECTOR2(5.0, 5.0), scale_rect5, EINA_VECTOR2(0.5, 0.5)), efl_animation_duration_set(efl_added, 5.0), efl_animation_play_count_set(efl_added, 0) diff --git a/src/lib/ecore_wl2/ecore_wl2.c b/src/lib/ecore_wl2/ecore_wl2.c index d14b14aee5..33e06873cd 100644 --- a/src/lib/ecore_wl2/ecore_wl2.c +++ b/src/lib/ecore_wl2/ecore_wl2.c @@ -90,8 +90,6 @@ _ecore_wl2_surface_modules_init(void) local_module = NULL; return EINA_FALSE; } - eina_module_free(local_module); - local_module = NULL; return EINA_TRUE; } } diff --git a/src/lib/efl/interfaces/efl_input_text.eo b/src/lib/efl/interfaces/efl_input_text.eo index f563b6dc4f..d967bbeb1a 100644 --- a/src/lib/efl/interfaces/efl_input_text.eo +++ b/src/lib/efl/interfaces/efl_input_text.eo @@ -65,7 +65,7 @@ enum @beta Efl.Input_Text.Panel_Return_Key_State disabled, [[The return key on input panel is disabled.]] } -enum @beta Efl.Input_Text.Hints_Type +enum @beta Efl.Input_Text.Content_Type { [[Enumeration that defines the types of Input Hints.]] none = 0, [[No active hints.]] @@ -178,14 +178,14 @@ interface @beta Efl.Input_Text { } } // FIXME: I agree with Mike, looks bad - @property input_hint { + @property input_content_type @beta { [[The input hint which allows input methods to fine-tune their behavior.]] set { } get { } values { - hints: Efl.Input_Text.Hints_Type; [[Input hint.]] + hints: Efl.Input_Text.Content_Type; [[Input hint.]] } } @property input_panel_layout { diff --git a/src/lib/elementary/efl_text_interactive.eo b/src/lib/elementary/efl_text_interactive.eo index 933aad0cb1..2f16ce89d8 100644 --- a/src/lib/elementary/efl_text_interactive.eo +++ b/src/lib/elementary/efl_text_interactive.eo @@ -25,13 +25,17 @@ interface @beta Efl.Text_Interactive extends Efl.Text, Efl.Text_Font_Properties, } @property selection_cursors { [[The cursors used for selection handling. - If the cursors are equal there's no selection. - - You are allowed to retain and modify them. Modifying them modifies - the selection of the object. ]] - get {} + get { + [[You are allowed to retain and modify them. Modifying them modifies + the selection of the object (recommended to extend selection range).]] + } + set { + [[The positions of passed cursors will be used to set selection cursors positions. + Further modification for passed @Efl.Text.Cursor objects, will not affect selection. + Setter is recommended to set new range for selection.]] + } values { start: Efl.Text.Cursor; [[The start of the selection.]] end: Efl.Text.Cursor; [[The end of the selection.]] diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.c b/src/lib/elementary/efl_ui_internal_text_interactive.c index 829c952a65..42d3bdb8bb 100644 --- a/src/lib/elementary/efl_ui_internal_text_interactive.c +++ b/src/lib/elementary/efl_ui_internal_text_interactive.c @@ -14,6 +14,7 @@ typedef struct _Efl_Ui_Internal_Text_Interactive_Data { Efl_Text_Cursor *sel_start, *sel_end; + int sel_start_pos, sel_end_pos; Efl_Text_Cursor *main_cursor; Efl_Text_Cursor *preedit_start, *preedit_end; Ecore_Timer *pw_timer; @@ -33,7 +34,7 @@ typedef struct _Efl_Ui_Internal_Text_Interactive_Data Efl_Input_Text_Capitalize_Type autocapital_type; Efl_Input_Text_Panel_Language_Type input_panel_lang; Efl_Input_Text_Panel_Return_Key_Type input_panel_return_key_type; - Efl_Input_Text_Hints_Type input_hints; + Efl_Input_Text_Content_Type input_hints; Efl_Input_Text_Panel_Return_Key_State input_panel_return_key_state; #ifdef HAVE_ECORE_IMF @@ -44,10 +45,11 @@ typedef struct _Efl_Ui_Internal_Text_Interactive_Data } Efl_Ui_Internal_Text_Interactive_Data; static void _sel_range_del_emit(Evas_Object *obj, Efl_Ui_Internal_Text_Interactive_Data *en); -static void _sel_init(Efl_Text_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en); -static void _sel_enable(Efl_Text_Cursor *c EINA_UNUSED, Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en); -static void _sel_extend(Efl_Text_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en); -static void _sel_clear(Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en); +static void _sel_init(Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data *en); +static void _sel_enable(Evas_Object *o,Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool emit_event); +static void _sel_extend(Efl_Text_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool emit_event); +static void _sel_clear(Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool emit_event); +static void _emit_sel_state( Eo *o, Efl_Ui_Internal_Text_Interactive_Data *en); static const char *_entry_selection_get(Efl_Ui_Internal_Text_Interactive *obj, Efl_Ui_Internal_Text_Interactive_Data *en); static void _entry_imf_cursor_info_set(Efl_Ui_Internal_Text_Interactive_Data *en); @@ -201,7 +203,7 @@ _entry_imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED, void { /* delete selected characters */ _sel_range_del_emit(obj, en); - _sel_clear(obj, en); + _sel_clear(obj, en, EINA_TRUE); } } @@ -626,12 +628,12 @@ _entry_imf_event_selection_set_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED } else { - _sel_clear(obj, en); + _sel_clear(obj, en, EINA_TRUE); efl_text_cursor_position_set(cur, ev->start); - _sel_enable(cur, obj, en); - _sel_init(cur, obj, en); + _sel_enable(obj, en, EINA_TRUE); + _sel_init(cur, en); efl_text_cursor_position_set(cur, ev->end); - _sel_extend(cur, obj, en); + _sel_extend(cur, obj, en, EINA_TRUE); } } @@ -747,18 +749,64 @@ _entry_selection_get(Efl_Ui_Internal_Text_Interactive *obj EINA_UNUSED, Efl_Ui_I } static void -_sel_cursor_changed(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ -// Eo *obj = data; +_sel_reset(Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en){ + if (!en->have_selection && efl_text_cursor_equal(en->sel_start, en->sel_end)) + return; + + if ( en->sel_start_pos == efl_text_cursor_position_get(en->sel_start) && + en->sel_end_pos == efl_text_cursor_position_get(en->sel_end)) + return; + + if (en->have_selection) + { + if (efl_text_cursor_equal(en->sel_start, en->sel_end)) + { + _sel_clear(obj, en, EINA_TRUE); + } + else + { + _entry_imf_cursor_info_set(en); + if (en->selection) + { + free(en->selection); + en->selection = NULL; + } + _emit_sel_state(obj, en); + } + } + else + { + if (!efl_text_cursor_equal(en->sel_start, en->sel_end)) + { + _sel_enable(obj, en, EINA_TRUE); + _entry_imf_cursor_info_set(en); + if (en->selection) + { + free(en->selection); + en->selection = NULL; + } + _emit_sel_state(obj, en); + } + } } static void -_sel_init(Efl_Text_Cursor *c, Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en) +_sel_cursor_changed(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) +{ + Efl_Ui_Internal_Text_Interactive *obj = data; + Efl_Ui_Internal_Text_Interactive_Data *en = efl_data_scope_get(obj, MY_CLASS); + _sel_reset(obj, en); +} + +static void +_sel_init(Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data *en) { if (en->have_selection) return; + en->sel_start_pos = efl_text_cursor_position_get(c); _cur_pos_copy(c, en->sel_start); + en->sel_end_pos = efl_text_cursor_position_get(c); _cur_pos_copy(c, en->sel_end); en->have_selection = EINA_FALSE; @@ -770,8 +818,7 @@ _sel_init(Efl_Text_Cursor *c, Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_I } static void -_sel_enable(Efl_Text_Cursor *c EINA_UNUSED, - Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en) +_sel_enable(Eo *o, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool emit_event) { if (en->have_selection) return; en->have_selection = EINA_TRUE; @@ -781,8 +828,11 @@ _sel_enable(Efl_Text_Cursor *c EINA_UNUSED, en->selection = NULL; } - Eina_Bool b_value = EINA_TRUE; - efl_event_callback_call(o, EFL_TEXT_INTERACTIVE_EVENT_HAVE_SELECTION_CHANGED, &b_value); + if (emit_event) + { + Eina_Bool b_value = EINA_TRUE; + efl_event_callback_call(o, EFL_TEXT_INTERACTIVE_EVENT_HAVE_SELECTION_CHANGED, &b_value); + } _entry_imf_context_reset(en); } @@ -791,8 +841,7 @@ _emit_sel_state( Eo *o, Efl_Ui_Internal_Text_Interactive_Data *en) { if (!efl_text_cursor_compare(en->sel_start, en->sel_end)) { - Eina_Bool b_value = EINA_FALSE; - efl_event_callback_call(o, EFL_TEXT_INTERACTIVE_EVENT_HAVE_SELECTION_CHANGED, &b_value); + _sel_clear(o, en, EINA_TRUE); } else { @@ -804,12 +853,12 @@ _emit_sel_state( Eo *o, Efl_Ui_Internal_Text_Interactive_Data *en) } static void -_sel_extend(Efl_Text_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en) +_sel_extend(Efl_Text_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool emit_event) { - if (!en->sel_end) return; - _sel_enable(c, o, en); + _sel_enable(o, en, emit_event); if (efl_text_cursor_equal(c, en->sel_end)) return; + en->sel_end_pos = efl_text_cursor_position_get(c); _cur_pos_copy(c, en->sel_end); _entry_imf_cursor_info_set(en); @@ -824,7 +873,7 @@ _sel_extend(Efl_Text_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive } static void -_sel_clear(Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en) +_sel_clear(Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool emit_change) { en->had_sel = EINA_FALSE; if (en->selection) @@ -836,8 +885,10 @@ _sel_clear(Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en { en->have_selection = EINA_FALSE; Eina_Bool b_value = en->have_selection; + en->sel_start_pos = en->sel_end_pos = efl_text_cursor_position_get(en->sel_start); _cur_pos_copy(en->sel_start, en->sel_end); - efl_event_callback_call(o, EFL_TEXT_INTERACTIVE_EVENT_HAVE_SELECTION_CHANGED, &b_value); + if (emit_change) + efl_event_callback_call(o, EFL_TEXT_INTERACTIVE_EVENT_HAVE_SELECTION_CHANGED, &b_value); } } @@ -845,32 +896,32 @@ EOLIAN static void _efl_ui_internal_text_interactive_efl_text_interactive_all_unselect( Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en) { - _sel_clear(obj, en); + _sel_clear(obj, en, EINA_TRUE); } EOLIAN static Eina_Bool _efl_ui_internal_text_interactive_efl_text_interactive_have_selection_get( const Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en) { + if (!en->have_selection) return en->have_selection; return !efl_text_cursor_equal(en->sel_start, en->sel_end); } EOLIAN static void _efl_ui_internal_text_interactive_efl_text_interactive_all_select( - Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en) + Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en EINA_UNUSED) { if (!efl_text_interactive_selection_allowed_get(obj)) return; - Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj); - _entry_imf_context_reset(en); + Eo *c1 = efl_canvas_textblock_cursor_create(obj); + Eo *c2 = efl_canvas_textblock_cursor_create(obj); - efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST); - _entry_imf_context_reset(en); - _sel_init(cur, obj, en); - efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LAST); - _sel_extend(cur, obj, en); + efl_text_cursor_move(c1, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST); + efl_text_cursor_move(c2, EFL_TEXT_CURSOR_MOVE_TYPE_LAST); + + efl_text_interactive_selection_cursors_set(obj, c1, c2); } @@ -903,7 +954,7 @@ static void _sel_range_del_emit(Evas_Object *obj, Efl_Ui_Internal_Text_Interactive_Data *en) { _range_del_emit(obj, en->sel_start, en->sel_end); - _sel_clear(obj, en); + _sel_clear(obj, en, EINA_TRUE); } static void @@ -1024,7 +1075,7 @@ _key_down_sel_pre(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor *cur, E { if (shift) { - _sel_init(cur, obj, en); + _sel_init(cur, en); } else if (en->have_selection) { @@ -1032,8 +1083,9 @@ _key_down_sel_pre(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor *cur, E if ((sel_forward && movement_forward) || (!sel_forward && !movement_forward)) _cur_pos_copy(en->sel_end, cur); else - _cur_pos_copy(en->sel_start, cur); - _sel_clear(obj, en); + + _cur_pos_copy(en->sel_start, cur); + _sel_clear(obj, en, EINA_TRUE); } } } @@ -1043,8 +1095,8 @@ _key_down_sel_post(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor *cur, { if (en->select_allow) { - if (shift) _sel_extend(cur, obj, en); - else _sel_clear(obj, en); + if (shift) _sel_extend(cur, obj, en, EINA_TRUE); + else _sel_clear(obj, en, EINA_TRUE); } } @@ -1237,7 +1289,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void _delete_emit(obj, cur, en, old_cur_pos, EINA_TRUE); } } - _sel_clear(obj, en); + _sel_clear(obj, en, EINA_TRUE); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if (!strcmp(ev->key, "Delete") || @@ -1273,7 +1325,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void _delete_emit(obj, cur, en, old_cur_pos, EINA_FALSE); } } - _sel_clear(obj, en); + _sel_clear(obj, en, EINA_TRUE); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((!alt) && @@ -1561,19 +1613,19 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EIN efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START); else efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END); - _sel_extend(cur, obj, en); + _sel_extend(cur, obj, en, EINA_TRUE); } else { en->have_selection = EINA_FALSE; en->selecting = EINA_FALSE; - _sel_clear(obj, en); + _sel_clear(obj, en, EINA_TRUE); tc = efl_canvas_textblock_cursor_create(obj); _cur_pos_copy(cur, tc); efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START); - _sel_init(cur, obj, en); + _sel_init(cur, en); efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END); - _sel_extend(cur, obj, en); + _sel_extend(cur, obj, en, EINA_TRUE); } goto end; } @@ -1590,20 +1642,20 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EIN efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END); efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT); } - _sel_extend(cur, obj, en); + _sel_extend(cur, obj, en, EINA_TRUE); } else { en->have_selection = EINA_FALSE; en->selecting = EINA_FALSE; - _sel_clear(obj, en); + _sel_clear(obj, en, EINA_TRUE); tc = efl_canvas_textblock_cursor_create(obj); _cur_pos_copy(cur, tc); efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START); - _sel_init(cur, obj, en); + _sel_init(cur, en); efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END); efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT); - _sel_extend(cur, obj, en); + _sel_extend(cur, obj, en, EINA_TRUE); } goto end; } @@ -1614,13 +1666,13 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EIN { if ((en->have_selection) && (shift)) { - _sel_extend(cur, obj, en); + _sel_extend(cur, obj, en, EINA_TRUE); } else { en->selecting = EINA_TRUE; - _sel_clear(obj, en); - _sel_init(cur, obj, en); + _sel_clear(obj, en, EINA_TRUE); + _sel_init(cur, en); } } @@ -1716,10 +1768,10 @@ _mouse_move_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, vo if (en->select_allow) { - _sel_extend(cur, obj, en); + _sel_extend(cur, obj, en, EINA_TRUE); if (!efl_text_cursor_equal(en->sel_start, en->sel_end)) - _sel_enable(cur, obj, en); + _sel_enable(obj, en, EINA_TRUE); } efl_del(tc); } @@ -1754,7 +1806,9 @@ _efl_ui_internal_text_interactive_efl_object_finalize(Eo *obj, Efl_Ui_Internal_T en->sel_start = efl_canvas_textblock_cursor_create(obj); en->sel_end = efl_canvas_textblock_cursor_create(obj); - efl_event_callback_add(efl_text_interactive_main_cursor_get(obj), EFL_TEXT_CURSOR_EVENT_CHANGED, + efl_event_callback_add(en->sel_start, EFL_TEXT_CURSOR_EVENT_CHANGED, + _sel_cursor_changed, obj); + efl_event_callback_add(en->sel_end, EFL_TEXT_CURSOR_EVENT_CHANGED, _sel_cursor_changed, obj); #ifdef HAVE_ECORE_IMF @@ -1847,7 +1901,7 @@ _efl_ui_internal_text_interactive_efl_text_interactive_selection_allowed_set(Eo pd->select_allow = allowed; if (!allowed) { - _sel_clear(obj, pd); + _sel_clear(obj, pd, EINA_TRUE); } } @@ -1873,6 +1927,16 @@ _efl_ui_internal_text_interactive_efl_text_interactive_selection_cursors_get(con } } +EOLIAN static void +_efl_ui_internal_text_interactive_efl_text_interactive_selection_cursors_set(Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en, Efl_Text_Cursor *start, Efl_Text_Cursor *end) +{ + en->sel_start_pos = efl_text_cursor_position_get(start); + en->sel_end_pos = efl_text_cursor_position_get(en->sel_end); + efl_text_cursor_position_set(en->sel_start, en->sel_start_pos); + en->sel_end_pos = -1; + efl_text_cursor_position_set(en->sel_end, efl_text_cursor_position_get(end)); +} + EOLIAN static void _efl_ui_internal_text_interactive_efl_text_interactive_editable_set(Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *sd, Eina_Bool editable) { @@ -2044,9 +2108,9 @@ _efl_ui_internal_text_interactive_efl_input_text_input_panel_layout_set(Eo *obj #endif if (layout == EFL_INPUT_TEXT_PANEL_LAYOUT_TYPE_PASSWORD) - efl_input_text_input_hint_set(obj, ((sd->input_hints & ~EFL_INPUT_TEXT_HINTS_TYPE_AUTO_COMPLETE) | EFL_INPUT_TEXT_HINTS_TYPE_SENSITIVE_DATA)); + efl_input_text_input_content_type_set(obj, ((sd->input_hints & ~EFL_INPUT_TEXT_CONTENT_TYPE_AUTO_COMPLETE) | EFL_INPUT_TEXT_CONTENT_TYPE_SENSITIVE_DATA)); else if (layout == EFL_INPUT_TEXT_PANEL_LAYOUT_TYPE_TERMINAL) - efl_input_text_input_hint_set(obj, (sd->input_hints & ~EFL_INPUT_TEXT_HINTS_TYPE_AUTO_COMPLETE)); + efl_input_text_input_content_type_set(obj, (sd->input_hints & ~EFL_INPUT_TEXT_CONTENT_TYPE_AUTO_COMPLETE)); } EOLIAN static Efl_Input_Text_Panel_Layout_Type @@ -2152,7 +2216,7 @@ _efl_ui_internal_text_interactive_efl_input_text_predictable_get(const Eo *obj, EOLIAN static void -_efl_ui_internal_text_interactive_efl_input_text_input_hint_set(Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en, Efl_Input_Text_Hints_Type input_hints) +_efl_ui_internal_text_interactive_efl_input_text_input_content_type_set(Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en, Efl_Input_Text_Content_Type input_hints) { #ifdef HAVE_ECORE_IMF if (en->imf_context) @@ -2166,12 +2230,12 @@ _efl_ui_internal_text_interactive_efl_input_text_input_hint_set(Eo *obj, Efl_Ui_ } -EOLIAN static Efl_Input_Text_Hints_Type -_efl_ui_internal_text_interactive_efl_input_text_input_hint_get(const Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en) +EOLIAN static Efl_Input_Text_Content_Type +_efl_ui_internal_text_interactive_efl_input_text_input_content_type_get(const Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en) { #ifdef HAVE_ECORE_IMF if (en->imf_context) - return (Efl_Input_Text_Hints_Type)ecore_imf_context_input_hint_get(en->imf_context); + return (Efl_Input_Text_Content_Type)ecore_imf_context_input_hint_get(en->imf_context); (void)obj; #else (void)obj; diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.eo b/src/lib/elementary/efl_ui_internal_text_interactive.eo index 44e871cb9b..0688334500 100644 --- a/src/lib/elementary/efl_ui_internal_text_interactive.eo +++ b/src/lib/elementary/efl_ui_internal_text_interactive.eo @@ -9,7 +9,7 @@ class @beta Efl.Ui.Internal.Text.Interactive extends Efl.Canvas.Textblock implem Efl.Object.finalize; Efl.Text_Interactive.main_cursor { get; } Efl.Text_Interactive.selection_allowed { get; set; } - Efl.Text_Interactive.selection_cursors { get; } + Efl.Text_Interactive.selection_cursors { get; set; } Efl.Text_Interactive.editable { get; set; } Efl.Text_Interactive.all_unselect; Efl.Text_Interactive.all_select; @@ -22,7 +22,7 @@ class @beta Efl.Ui.Internal.Text.Interactive extends Efl.Canvas.Textblock implem Efl.Input_Text.autocapitalization { get; set; } Efl.Input_Text.input_panel_return_key_state { get; set; } Efl.Input_Text.predictable { get; set; } - Efl.Input_Text.input_hint { get; set; } + Efl.Input_Text.input_content_type { get; set; } Efl.Input_Text.input_panel_layout { get; set; } Efl.Input_Text.input_panel_return_key_type { get; set; } Efl.Input_Text.input_panel_autoshow { get; set; } diff --git a/src/lib/elementary/efl_ui_spotlight_manager_stack.c b/src/lib/elementary/efl_ui_spotlight_manager_stack.c index b89a4c6554..26965326a3 100644 --- a/src/lib/elementary/efl_ui_spotlight_manager_stack.c +++ b/src/lib/elementary/efl_ui_spotlight_manager_stack.c @@ -62,7 +62,7 @@ _efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_bind(Eo *obj, Efl_Ui_Sp { pd->container = spotlight; - pd->alpha_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, obj); + pd->alpha_anim = efl_add(EFL_CANVAS_ALPHA_ANIMATION_CLASS, obj); efl_animation_alpha_set(pd->alpha_anim, 0.0, 1.0); efl_animation_duration_set(pd->alpha_anim, 0.5); diff --git a/src/lib/elementary/efl_ui_textbox.c b/src/lib/elementary/efl_ui_textbox.c index b72521b8f3..83ecb12c41 100644 --- a/src/lib/elementary/efl_ui_textbox.c +++ b/src/lib/elementary/efl_ui_textbox.c @@ -821,8 +821,7 @@ _efl_ui_textbox_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Textbox_Data *s EOLIAN static Eina_Bool _efl_ui_textbox_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Textbox_Data *sd) { - Evas_Object *top; - Eina_Bool top_is_win = EINA_FALSE; + Efl_Object *top; if (!efl_text_interactive_editable_get(obj)) return EINA_FALSE; @@ -834,7 +833,7 @@ _efl_ui_textbox_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Textbox_Data _edje_signal_emit(sd, "efl,action,focus", "efl"); - if (top && efl_input_text_input_panel_autoshow_get(obj) && !efl_input_text_input_panel_show_on_demand_get(obj)) + if (efl_input_text_input_panel_autoshow_get(obj) && !efl_input_text_input_panel_show_on_demand_get(obj)) elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON); if (_elm_config->atspi_mode) efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_TYPE_FOCUSED, EINA_TRUE); @@ -846,7 +845,7 @@ _efl_ui_textbox_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Textbox_Data _edje_signal_emit(sd, "efl,action,unfocus", "efl"); efl_canvas_object_key_focus_set(sw, EINA_FALSE); - if (top && top_is_win && efl_input_text_input_panel_autoshow_get(obj)) + if (efl_input_text_input_panel_autoshow_get(obj)) elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_OFF); if (_elm_config->atspi_mode) efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_TYPE_FOCUSED, EINA_FALSE); @@ -1270,8 +1269,7 @@ _mouse_up_cb(void *data, void *event_info) { Evas_Event_Mouse_Up *ev = event_info; - Eina_Bool top_is_win = EINA_FALSE; - Evas_Object *top; + Efl_Object *top; EFL_UI_TEXT_DATA_GET(data, sd); @@ -1292,15 +1290,9 @@ _mouse_up_cb(void *data, } else { - top = elm_widget_top_get(data); - if (top) - { - if (efl_isa(top, EFL_UI_WIN_CLASS)) - top_is_win = EINA_TRUE; - - if (top_is_win && efl_input_text_input_panel_autoshow_get(data) && efl_input_text_input_panel_show_on_demand_get(data)) - elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON); - } + top = efl_provider_find(data, EFL_UI_WIN_CLASS); + if (efl_input_text_input_panel_autoshow_get(data) && efl_input_text_input_panel_show_on_demand_get(data)) + elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON); } } /* Since context menu disabled flag was checked at mouse right key down, @@ -1911,7 +1903,7 @@ _efl_ui_textbox_efl_object_finalize(Eo *obj, efl_input_text_input_panel_layout_set(obj, EFL_INPUT_TEXT_PANEL_LAYOUT_TYPE_NORMAL); efl_input_text_input_panel_autoshow_set(obj, EINA_TRUE); efl_input_text_predictable_set(obj, EINA_TRUE); - efl_input_text_input_hint_set(obj, EFL_INPUT_TEXT_HINTS_TYPE_AUTO_COMPLETE); + efl_input_text_input_content_type_set(obj, EFL_INPUT_TEXT_CONTENT_TYPE_AUTO_COMPLETE); sd->calc_force = EINA_TRUE; @@ -1992,7 +1984,7 @@ _efl_ui_textbox_efl_text_format_password_set(Eo *obj, Efl_Ui_Textbox_Data *sd, E if (password) { efl_text_multiline_set(obj, EINA_FALSE); - efl_input_text_input_hint_set(obj, ((efl_input_text_input_hint_get(obj) & ~EFL_INPUT_TEXT_HINTS_TYPE_AUTO_COMPLETE) | EFL_INPUT_TEXT_HINTS_TYPE_SENSITIVE_DATA)); + efl_input_text_input_content_type_set(obj, ((efl_input_text_input_content_type_get(obj) & ~EFL_INPUT_TEXT_CONTENT_TYPE_AUTO_COMPLETE) | EFL_INPUT_TEXT_CONTENT_TYPE_SENSITIVE_DATA)); efl_access_object_role_set(obj, EFL_ACCESS_ROLE_PASSWORD_TEXT); } else @@ -2004,7 +1996,7 @@ _efl_ui_textbox_efl_text_format_password_set(Eo *obj, Efl_Ui_Textbox_Data *sd, E _dnd_leave_cb, NULL, _dnd_pos_cb, NULL, _dnd_drop_cb, NULL); - efl_input_text_input_hint_set(obj, ((efl_input_text_input_hint_get(obj) | EFL_INPUT_TEXT_HINTS_TYPE_AUTO_COMPLETE) & ~EFL_INPUT_TEXT_HINTS_TYPE_SENSITIVE_DATA)); + efl_input_text_input_content_type_set(obj, ((efl_input_text_input_content_type_get(obj) | EFL_INPUT_TEXT_CONTENT_TYPE_AUTO_COMPLETE) & ~EFL_INPUT_TEXT_CONTENT_TYPE_SENSITIVE_DATA)); efl_access_object_role_set(obj, EFL_ACCESS_ROLE_ENTRY); } diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp b/src/lib/eolian_cxx/grammar/klass_def.hpp index 48b8b52c80..86fb61e8a3 100644 --- a/src/lib/eolian_cxx/grammar/klass_def.hpp +++ b/src/lib/eolian_cxx/grammar/klass_def.hpp @@ -897,7 +897,7 @@ struct function_def } else if(type == EOLIAN_PROP_GET) { - for(auto v : values) + for(auto&& v : values) { v.direction = parameter_direction::out; parameters.push_back(v); diff --git a/src/lib/evas/Efl_Canvas.h b/src/lib/evas/Efl_Canvas.h index dc3f61a43b..fe18f75353 100644 --- a/src/lib/evas/Efl_Canvas.h +++ b/src/lib/evas/Efl_Canvas.h @@ -64,14 +64,14 @@ extern "C" { #include #include -#include +#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h index 7c5efc3f45..b1cecf11ba 100644 --- a/src/lib/evas/Evas_Common.h +++ b/src/lib/evas/Evas_Common.h @@ -3371,52 +3371,52 @@ typedef Eo Efl_Animation; #endif -#ifndef _EFL_ANIMATION_ALPHA_EO_CLASS_TYPE -#define _EFL_ANIMATION_ALPHA_EO_CLASS_TYPE +#ifndef _EFL_ALPHA_ANIMATION_EO_CLASS_TYPE +#define _EFL_ALPHA_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Alpha; +typedef Eo Efl_Alpha_Animation; #endif -#ifndef _EFL_ANIMATION_ROTATE_EO_CLASS_TYPE -#define _EFL_ANIMATION_ROTATE_EO_CLASS_TYPE +#ifndef _EFL_ROTATE_ANIMATION_EO_CLASS_TYPE +#define _EFL_ROTATE_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Rotate; +typedef Eo Efl_Rotate_Animation; #endif -#ifndef _EFL_ANIMATION_SCALE_EO_CLASS_TYPE -#define _EFL_ANIMATION_SCALE_EO_CLASS_TYPE +#ifndef _EFL_SCALE_ANIMATION_EO_CLASS_TYPE +#define _EFL_SCALE_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Scale; +typedef Eo Efl_Scale_Animation; #endif -#ifndef _EFL_ANIMATION_TRANSLATE_EO_CLASS_TYPE -#define _EFL_ANIMATION_TRANSLATE_EO_CLASS_TYPE +#ifndef _EFL_TRANSLATE_ANIMATION_EO_CLASS_TYPE +#define _EFL_TRANSLATE_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Translate; +typedef Eo Efl_Translate_Animation; #endif -#ifndef _EFL_ANIMATION_GROUP_EO_CLASS_TYPE -#define _EFL_ANIMATION_GROUP_EO_CLASS_TYPE +#ifndef _EFL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Group; +typedef Eo Efl_Group_Animation; #endif -#ifndef _EFL_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE -#define _EFL_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE +#ifndef _EFL_PARALLEL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_PARALLEL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Group_Parallel; +typedef Eo Efl_Parallel_Group_Animation; #endif -#ifndef _EFL_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE -#define _EFL_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE +#ifndef _EFL_SEQUENTIAL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_SEQUENTIAL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Group_Sequential; +typedef Eo Efl_Sequential_Group_Animation; #endif @@ -3462,17 +3462,17 @@ typedef Eo Efl_Animation_Player_Group; #endif -#ifndef _EFL_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE -#define _EFL_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE +#ifndef _EFL_PARALLEL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_PARALLEL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Group_Parallel; +typedef Eo Efl_Parallel_Group_Animation; #endif -#ifndef _EFL_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE -#define _EFL_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE +#ifndef _EFL_SEQUENTIAL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_SEQUENTIAL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Animation_Group_Sequential; +typedef Eo Efl_Sequential_Group_Animation; #endif diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h index d9cc99932c..356a8fcc53 100644 --- a/src/lib/evas/Evas_Eo.h +++ b/src/lib/evas/Evas_Eo.h @@ -17,52 +17,52 @@ typedef Eo Efl_Canvas_Animation; #endif -#ifndef _EFL_CANVAS_ANIMATION_ALPHA_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_ALPHA_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_ALPHA_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_ALPHA_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Alpha; +typedef Eo Efl_Canvas_Alpha_Animation; #endif -#ifndef _EFL_CANVAS_ANIMATION_ROTATE_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_ROTATE_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_ROTATE_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_ROTATE_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Rotate; +typedef Eo Efl_Canvas_Rotate_Animation; #endif -#ifndef _EFL_CANVAS_ANIMATION_SCALE_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_SCALE_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_SCALE_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_SCALE_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Scale; +typedef Eo Efl_Canvas_Scale_Animation; #endif -#ifndef _EFL_CANVAS_ANIMATION_TRANSLATE_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_TRANSLATE_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_TRANSLATE_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_TRANSLATE_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Translate; +typedef Eo Efl_Canvas_Translate_Animation; #endif -#ifndef _EFL_CANVAS_ANIMATION_GROUP_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_GROUP_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Group; +typedef Eo Efl_Canvas_Group_Animation; #endif -#ifndef _EFL_CANVAS_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_PARALLEL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_PARALLEL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Group_Parallel; +typedef Eo Efl_Canvas_Parallel_Group_Animation; #endif -#ifndef _EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_SEQUENTIAL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_SEQUENTIAL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Group_Sequential; +typedef Eo Efl_Canvas_Sequential_Group_Animation; #endif @@ -108,17 +108,17 @@ typedef Eo Efl_Canvas_Animation_Player_Group; #endif -#ifndef _EFL_CANVAS_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_GROUP_PARALLEL_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_PARALLEL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_PARALLEL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Group_Parallel; +typedef Eo Efl_Canvas_Parallel_Group_Animation; #endif -#ifndef _EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE -#define _EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_EO_CLASS_TYPE +#ifndef _EFL_CANVAS_SEQUENTIAL_GROUP_ANIMATION_EO_CLASS_TYPE +#define _EFL_CANVAS_SEQUENTIAL_GROUP_ANIMATION_EO_CLASS_TYPE -typedef Eo Efl_Canvas_Animation_Group_Sequential; +typedef Eo Efl_Canvas_Sequential_Group_Animation; #endif @@ -219,13 +219,13 @@ struct _Efl_Canvas_Object_Animation_Event #include "canvas/efl_canvas_object.eo.h" #include "canvas/efl_canvas_object_animation.eo.h" #include "canvas/efl_canvas_animation.eo.h" -#include "canvas/efl_canvas_animation_alpha.eo.h" -#include "canvas/efl_canvas_animation_rotate.eo.h" -#include "canvas/efl_canvas_animation_scale.eo.h" -#include "canvas/efl_canvas_animation_translate.eo.h" -#include "canvas/efl_canvas_animation_group.eo.h" -#include "canvas/efl_canvas_animation_group_parallel.eo.h" -#include "canvas/efl_canvas_animation_group_sequential.eo.h" +#include "canvas/efl_canvas_alpha_animation.eo.h" +#include "canvas/efl_canvas_rotate_animation.eo.h" +#include "canvas/efl_canvas_scale_animation.eo.h" +#include "canvas/efl_canvas_translate_animation.eo.h" +#include "canvas/efl_canvas_group_animation.eo.h" +#include "canvas/efl_canvas_parallel_group_animation.eo.h" +#include "canvas/efl_canvas_sequential_group_animation.eo.h" #include "canvas/efl_canvas_event_grabber.eo.h" /** diff --git a/src/lib/evas/canvas/efl_canvas_animation_alpha.c b/src/lib/evas/canvas/efl_canvas_alpha_animation.c similarity index 64% rename from src/lib/evas/canvas/efl_canvas_animation_alpha.c rename to src/lib/evas/canvas/efl_canvas_alpha_animation.c index c0bca11101..913a826a04 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_alpha.c +++ b/src/lib/evas/canvas/efl_canvas_alpha_animation.c @@ -1,10 +1,10 @@ -#include "efl_canvas_animation_alpha_private.h" +#include "efl_canvas_alpha_animation_private.h" -#define MY_CLASS EFL_CANVAS_ANIMATION_ALPHA_CLASS +#define MY_CLASS EFL_CANVAS_ALPHA_ANIMATION_CLASS EOLIAN static void -_efl_canvas_animation_alpha_alpha_set(Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Alpha_Data *pd, +_efl_canvas_alpha_animation_alpha_set(Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Alpha_Animation_Data *pd, double from_alpha, double to_alpha) { @@ -13,8 +13,8 @@ _efl_canvas_animation_alpha_alpha_set(Eo *eo_obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_alpha_alpha_get(const Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Alpha_Data *pd, +_efl_canvas_alpha_animation_alpha_get(const Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Alpha_Animation_Data *pd, double *from_alpha, double *to_alpha) { @@ -26,8 +26,8 @@ _efl_canvas_animation_alpha_alpha_get(const Eo *eo_obj EINA_UNUSED, EOLIAN static double -_efl_canvas_animation_alpha_efl_canvas_animation_animation_apply(Eo *eo_obj, - Efl_Canvas_Animation_Alpha_Data *pd EINA_UNUSED, +_efl_canvas_alpha_animation_efl_canvas_animation_animation_apply(Eo *eo_obj, + Efl_Canvas_Alpha_Animation_Data *pd EINA_UNUSED, double progress, Efl_Canvas_Object *target) { @@ -50,8 +50,8 @@ _efl_canvas_animation_alpha_efl_canvas_animation_animation_apply(Eo *eo_obj, } EOLIAN static Efl_Object * -_efl_canvas_animation_alpha_efl_object_constructor(Eo *eo_obj, - Efl_Canvas_Animation_Alpha_Data *pd) +_efl_canvas_alpha_animation_efl_object_constructor(Eo *eo_obj, + Efl_Canvas_Alpha_Animation_Data *pd) { eo_obj = efl_constructor(efl_super(eo_obj, MY_CLASS)); @@ -61,4 +61,4 @@ _efl_canvas_animation_alpha_efl_object_constructor(Eo *eo_obj, return eo_obj; } -#include "efl_canvas_animation_alpha.eo.c" +#include "efl_canvas_alpha_animation.eo.c" diff --git a/src/lib/evas/canvas/efl_canvas_animation_alpha.eo b/src/lib/evas/canvas/efl_canvas_alpha_animation.eo similarity index 87% rename from src/lib/evas/canvas/efl_canvas_animation_alpha.eo rename to src/lib/evas/canvas/efl_canvas_alpha_animation.eo index d0b18f4afc..f466c00e79 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_alpha.eo +++ b/src/lib/evas/canvas/efl_canvas_alpha_animation.eo @@ -1,4 +1,4 @@ -class Efl.Canvas.Animation_Alpha extends Efl.Canvas.Animation +class Efl.Canvas.Alpha_Animation extends Efl.Canvas.Animation { [[Animated alpha blending effect. @@ -9,7 +9,7 @@ class Efl.Canvas.Animation_Alpha extends Efl.Canvas.Animation @since 1.24 ]] c_prefix: efl_animation_alpha; - data: Efl_Canvas_Animation_Alpha_Data; + data: Efl_Canvas_Alpha_Animation_Data; methods { @property alpha { [[Alpha range to animate. $[0.0] means the object is transparent and $[1.0] means diff --git a/src/lib/evas/canvas/efl_canvas_alpha_animation_private.h b/src/lib/evas/canvas/efl_canvas_alpha_animation_private.h new file mode 100644 index 0000000000..d167f458f7 --- /dev/null +++ b/src/lib/evas/canvas/efl_canvas_alpha_animation_private.h @@ -0,0 +1,19 @@ +#define EFL_ANIMATION_PROTECTED + +#include "evas_common_private.h" +#include +#include "efl_canvas_animation_private.h" + +#define EFL_ALPHA_ANIMATION_DATA_GET(o, pd) \ + Efl_Canvas_Alpha_Animation_Data *pd = efl_data_scope_get(o, EFL_CANVAS_ALPHA_ANIMATION_CLASS) + +typedef struct _Efl_Canvas_Alpha_Animation_Property +{ + double alpha; +} Efl_Canvas_Alpha_Animation_Property; + +typedef struct _Efl_Canvas_Alpha_Animation_Data +{ + Efl_Canvas_Alpha_Animation_Property from; + Efl_Canvas_Alpha_Animation_Property to; +} Efl_Canvas_Alpha_Animation_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation.eo b/src/lib/evas/canvas/efl_canvas_animation.eo index 665b3b509e..b7bcb0452f 100644 --- a/src/lib/evas/canvas/efl_canvas_animation.eo +++ b/src/lib/evas/canvas/efl_canvas_animation.eo @@ -9,7 +9,7 @@ class Efl.Canvas.Animation extends Efl.Object implements Efl.Playable The value of the changed properties moves smoothly as the provided progress value evolves from $[0] to $[1]. - For example implementations see @Efl.Canvas.Animation_Translate or @Efl.Canvas.Animation_Scale. + For example implementations see @Efl.Canvas.Translate_Animation or @Efl.Canvas.Scale_Animation. Note: Unless @.final_state_keep is used, when an animation finishes any effect it introduced on the object is removed. This means that if the animation does not end in the object's initial state there will be a noticeable @@ -103,7 +103,7 @@ class Efl.Canvas.Animation extends Efl.Object implements Efl.Playable animation_apply { [[Overwrite this method to implement your own animation subclasses. - This is used for example by @Efl.Canvas.Animation_Translate or @Efl.Canvas.Animation_Scale. + This is used for example by @Efl.Canvas.Translate_Animation or @Efl.Canvas.Scale_Animation. Subclasses should call their parent's @.animation_apply to get the adjusted $progress value and then perform the animation by modifying the $target's properties. diff --git a/src/lib/evas/canvas/efl_canvas_animation_alpha_private.h b/src/lib/evas/canvas/efl_canvas_animation_alpha_private.h deleted file mode 100644 index fc0b9e655f..0000000000 --- a/src/lib/evas/canvas/efl_canvas_animation_alpha_private.h +++ /dev/null @@ -1,19 +0,0 @@ -#define EFL_ANIMATION_PROTECTED - -#include "evas_common_private.h" -#include -#include "efl_canvas_animation_private.h" - -#define EFL_ANIMATION_ALPHA_DATA_GET(o, pd) \ - Efl_Canvas_Animation_Alpha_Data *pd = efl_data_scope_get(o, EFL_CANVAS_ANIMATION_ALPHA_CLASS) - -typedef struct _Efl_Canvas_Animation_Alpha_Property -{ - double alpha; -} Efl_Canvas_Animation_Alpha_Property; - -typedef struct _Efl_Canvas_Animation_Alpha_Data -{ - Efl_Canvas_Animation_Alpha_Property from; - Efl_Canvas_Animation_Alpha_Property to; -} Efl_Canvas_Animation_Alpha_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation_group_private.h b/src/lib/evas/canvas/efl_canvas_animation_group_private.h deleted file mode 100644 index 335053d9c1..0000000000 --- a/src/lib/evas/canvas/efl_canvas_animation_group_private.h +++ /dev/null @@ -1,16 +0,0 @@ -#define EFL_ANIMATION_PROTECTED - -#include "evas_common_private.h" -#include - -#define MY_CLASS EFL_CANVAS_ANIMATION_GROUP_CLASS -#define MY_CLASS_NAME efl_class_name_get(MY_CLASS) - -#define EFL_ANIMATION_GROUP_DATA_GET(o, pd) \ - Efl_Canvas_Animation_Group_Data *pd = efl_data_scope_get(o, EFL_CANVAS_ANIMATION_GROUP_CLASS) - -typedef struct _Efl_Canvas_Animation_Group_Data -{ - Eina_List *animations; - Eina_Bool is_duration_set : 1; //EINA_TRUE if duration is set -} Efl_Canvas_Animation_Group_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation_rotate_private.h b/src/lib/evas/canvas/efl_canvas_animation_rotate_private.h deleted file mode 100644 index 64c5887959..0000000000 --- a/src/lib/evas/canvas/efl_canvas_animation_rotate_private.h +++ /dev/null @@ -1,30 +0,0 @@ -#define EFL_ANIMATION_PROTECTED - -#include "evas_common_private.h" -#include -#include "efl_canvas_animation_private.h" - -#define EFL_ANIMATION_ROTATE_DATA_GET(o, pd) \ - Efl_Canvas_Animation_Rotate_Data *pd = efl_data_scope_get(o, EFL_CANVAS_ANIMATION_ROTATE_CLASS) - -typedef struct _Efl_Canvas_Animation_Rotate_Property -{ - double degree; -} Efl_Canvas_Animation_Rotate_Property; - -typedef struct _Efl_Canvas_Animation_Rotate_Relative_Pivot -{ - Efl_Canvas_Object *obj; - Eina_Vector2 pos; -} Efl_Canvas_Animation_Rotate_Relative_Pivot; - -typedef struct _Efl_Canvas_Animation_Rotate_Data -{ - Efl_Canvas_Animation_Rotate_Property from; - Efl_Canvas_Animation_Rotate_Property to; - - Eina_Position2D abs_pivot; - Efl_Canvas_Animation_Rotate_Relative_Pivot rel_pivot; - - Eina_Bool use_rel_pivot; -} Efl_Canvas_Animation_Rotate_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation_scale_private.h b/src/lib/evas/canvas/efl_canvas_animation_scale_private.h deleted file mode 100644 index 57dc40d725..0000000000 --- a/src/lib/evas/canvas/efl_canvas_animation_scale_private.h +++ /dev/null @@ -1,25 +0,0 @@ -#define EFL_ANIMATION_PROTECTED - -#include "evas_common_private.h" -#include -#include "efl_canvas_animation_private.h" - -#define EFL_ANIMATION_SCALE_DATA_GET(o, pd) \ - Efl_Canvas_Animation_Scale_Data *pd = efl_data_scope_get(o, EFL_CANVAS_ANIMATION_SCALE_CLASS) - -typedef struct _Efl_Canvas_Animation_Scale_Relative_Pivot -{ - Efl_Canvas_Object *obj; - Eina_Vector2 pos; -} Efl_Canvas_Animation_Scale_Relative_Pivot; - -typedef struct _Efl_Canvas_Animation_Scale_Data -{ - Eina_Vector2 from; - Eina_Vector2 to; - - Eina_Position2D pos; - Efl_Canvas_Animation_Scale_Relative_Pivot rel_pivot; - - Eina_Bool use_rel_pivot; -} Efl_Canvas_Animation_Scale_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation_translate_private.h b/src/lib/evas/canvas/efl_canvas_animation_translate_private.h deleted file mode 100644 index 47665a5984..0000000000 --- a/src/lib/evas/canvas/efl_canvas_animation_translate_private.h +++ /dev/null @@ -1,16 +0,0 @@ -#define EFL_ANIMATION_PROTECTED - -#include "evas_common_private.h" -#include -#include "efl_canvas_animation_private.h" - -#define EFL_ANIMATION_TRANSLATE_DATA_GET(o, pd) \ - Efl_Canvas_Animation_Translate_Data *pd = efl_data_scope_get(o, EFL_CANVAS_ANIMATION_TRANSLATE_CLASS) - -typedef struct _Efl_Canvas_Animation_Translate_Data -{ - Eina_Position2D from; - Eina_Position2D to; - - Eina_Bool use_rel_move; -} Efl_Canvas_Animation_Translate_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation_group.c b/src/lib/evas/canvas/efl_canvas_group_animation.c similarity index 71% rename from src/lib/evas/canvas/efl_canvas_animation_group.c rename to src/lib/evas/canvas/efl_canvas_group_animation.c index 7dc7c24bb8..f2e068c8d1 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_group.c +++ b/src/lib/evas/canvas/efl_canvas_group_animation.c @@ -1,8 +1,8 @@ -#include "efl_canvas_animation_group_private.h" +#include "efl_canvas_group_animation_private.h" EOLIAN static void -_efl_canvas_animation_group_animation_add(Eo *eo_obj, - Efl_Canvas_Animation_Group_Data *pd, +_efl_canvas_group_animation_animation_add(Eo *eo_obj, + Efl_Canvas_Group_Animation_Data *pd, Efl_Canvas_Animation *animation) { if (!animation) return; @@ -24,8 +24,8 @@ _efl_canvas_animation_group_animation_add(Eo *eo_obj, } EOLIAN static void -_efl_canvas_animation_group_animation_del(Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Group_Data *pd, +_efl_canvas_group_animation_animation_del(Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Group_Animation_Data *pd, Efl_Canvas_Animation *animation) { Eina_List *list; @@ -45,15 +45,15 @@ _efl_canvas_animation_group_animation_del(Eo *eo_obj EINA_UNUSED, } EOLIAN static Eina_Iterator* -_efl_canvas_animation_group_animations_get(const Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Group_Data *pd) +_efl_canvas_group_animation_animations_get(const Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Group_Animation_Data *pd) { return eina_list_iterator_new(pd->animations); } EOLIAN static void -_efl_canvas_animation_group_efl_canvas_animation_duration_set(Eo *eo_obj, - Efl_Canvas_Animation_Group_Data *pd, +_efl_canvas_group_animation_efl_canvas_animation_duration_set(Eo *eo_obj, + Efl_Canvas_Group_Animation_Data *pd, double duration) { EINA_SAFETY_ON_FALSE_RETURN(duration >= 0.0); @@ -72,8 +72,8 @@ _efl_canvas_animation_group_efl_canvas_animation_duration_set(Eo *eo_obj, } EOLIAN static void -_efl_canvas_animation_group_efl_canvas_animation_final_state_keep_set(Eo *eo_obj, - Efl_Canvas_Animation_Group_Data *pd, +_efl_canvas_group_animation_efl_canvas_animation_final_state_keep_set(Eo *eo_obj, + Efl_Canvas_Group_Animation_Data *pd, Eina_Bool keep_final_state) { Eina_List *l; @@ -87,8 +87,8 @@ _efl_canvas_animation_group_efl_canvas_animation_final_state_keep_set(Eo *eo_obj } EOLIAN static void -_efl_canvas_animation_group_efl_canvas_animation_interpolator_set(Eo *eo_obj, - Efl_Canvas_Animation_Group_Data *pd, +_efl_canvas_group_animation_efl_canvas_animation_interpolator_set(Eo *eo_obj, + Efl_Canvas_Group_Animation_Data *pd, Efl_Interpolator *interpolator) { Eina_List *l; @@ -102,8 +102,8 @@ _efl_canvas_animation_group_efl_canvas_animation_interpolator_set(Eo *eo_obj, } EOLIAN static Efl_Object * -_efl_canvas_animation_group_efl_object_constructor(Eo *eo_obj, - Efl_Canvas_Animation_Group_Data *pd) +_efl_canvas_group_animation_efl_object_constructor(Eo *eo_obj, + Efl_Canvas_Group_Animation_Data *pd) { eo_obj = efl_constructor(efl_super(eo_obj, MY_CLASS)); pd->animations = NULL; @@ -112,8 +112,8 @@ _efl_canvas_animation_group_efl_object_constructor(Eo *eo_obj, } EOLIAN static void -_efl_canvas_animation_group_efl_object_destructor(Eo *eo_obj, - Efl_Canvas_Animation_Group_Data *pd) +_efl_canvas_group_animation_efl_object_destructor(Eo *eo_obj, + Efl_Canvas_Group_Animation_Data *pd) { Efl_Canvas_Animation *anim; @@ -123,4 +123,4 @@ _efl_canvas_animation_group_efl_object_destructor(Eo *eo_obj, efl_destructor(efl_super(eo_obj, MY_CLASS)); } -#include "efl_canvas_animation_group.eo.c" +#include "efl_canvas_group_animation.eo.c" diff --git a/src/lib/evas/canvas/efl_canvas_animation_group.eo b/src/lib/evas/canvas/efl_canvas_group_animation.eo similarity index 85% rename from src/lib/evas/canvas/efl_canvas_animation_group.eo rename to src/lib/evas/canvas/efl_canvas_group_animation.eo index b4fe40a294..65d2fbd12f 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_group.eo +++ b/src/lib/evas/canvas/efl_canvas_group_animation.eo @@ -1,15 +1,15 @@ -abstract Efl.Canvas.Animation_Group extends Efl.Canvas.Animation +abstract Efl.Canvas.Group_Animation extends Efl.Canvas.Animation { [[Base class for combined animations (groups of animations that are played together). This class provides methods to add, remove and retrieve individual animations from the group. - See for example @Efl.Canvas.Animation_Group_Parallel and @Efl.Canvas.Animation_Group_Sequential. + See for example @Efl.Canvas.Parallel_Group_Animation and @Efl.Canvas.Sequential_Group_Animation. @since 1.24 ]] c_prefix: efl_animation_group; - data: Efl_Canvas_Animation_Group_Data; + data: Efl_Canvas_Group_Animation_Data; methods { animation_add { [[Adds the given animation to the animation group.]] diff --git a/src/lib/evas/canvas/efl_canvas_group_animation_private.h b/src/lib/evas/canvas/efl_canvas_group_animation_private.h new file mode 100644 index 0000000000..38b7804533 --- /dev/null +++ b/src/lib/evas/canvas/efl_canvas_group_animation_private.h @@ -0,0 +1,16 @@ +#define EFL_ANIMATION_PROTECTED + +#include "evas_common_private.h" +#include + +#define MY_CLASS EFL_CANVAS_GROUP_ANIMATION_CLASS +#define MY_CLASS_NAME efl_class_name_get(MY_CLASS) + +#define EFL_GROUP_ANIMATION_DATA_GET(o, pd) \ + Efl_Canvas_Group_Animation_Data *pd = efl_data_scope_get(o, EFL_CANVAS_GROUP_ANIMATION_CLASS) + +typedef struct _Efl_Canvas_Group_Animation_Data +{ + Eina_List *animations; + Eina_Bool is_duration_set : 1; //EINA_TRUE if duration is set +} Efl_Canvas_Group_Animation_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation_group_parallel.c b/src/lib/evas/canvas/efl_canvas_parallel_group_animation.c similarity index 89% rename from src/lib/evas/canvas/efl_canvas_animation_group_parallel.c rename to src/lib/evas/canvas/efl_canvas_parallel_group_animation.c index 9960e4105e..3d811fb738 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_group_parallel.c +++ b/src/lib/evas/canvas/efl_canvas_parallel_group_animation.c @@ -1,9 +1,9 @@ -#include "efl_canvas_animation_group_parallel_private.h" +#include "efl_canvas_parallel_group_animation_private.h" -#define MY_CLASS EFL_CANVAS_ANIMATION_GROUP_PARALLEL_CLASS +#define MY_CLASS EFL_CANVAS_PARALLEL_GROUP_ANIMATION_CLASS EOLIAN static double -_efl_canvas_animation_group_parallel_efl_canvas_animation_animation_apply(Eo *eo_obj, +_efl_canvas_parallel_group_animation_efl_canvas_animation_animation_apply(Eo *eo_obj, void *_pd EINA_UNUSED, double progress, Efl_Canvas_Object *target) @@ -53,7 +53,7 @@ _efl_canvas_animation_group_parallel_efl_canvas_animation_animation_apply(Eo *eo } EOLIAN static double -_efl_canvas_animation_group_parallel_efl_canvas_animation_duration_get(const Eo *eo_obj, void *_pd EINA_UNUSED) +_efl_canvas_parallel_group_animation_efl_canvas_animation_duration_get(const Eo *eo_obj, void *_pd EINA_UNUSED) { double child_total_duration; double total_duration = 0.0; @@ -74,4 +74,4 @@ _efl_canvas_animation_group_parallel_efl_canvas_animation_duration_get(const Eo return total_duration; } -#include "efl_canvas_animation_group_parallel.eo.c" +#include "efl_canvas_parallel_group_animation.eo.c" diff --git a/src/lib/evas/canvas/efl_canvas_animation_group_parallel.eo b/src/lib/evas/canvas/efl_canvas_parallel_group_animation.eo similarity index 70% rename from src/lib/evas/canvas/efl_canvas_animation_group_parallel.eo rename to src/lib/evas/canvas/efl_canvas_parallel_group_animation.eo index e109a00baa..9f38769f66 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_group_parallel.eo +++ b/src/lib/evas/canvas/efl_canvas_parallel_group_animation.eo @@ -1,4 +1,4 @@ -class Efl.Canvas.Animation_Group_Parallel extends Efl.Canvas.Animation_Group +class Efl.Canvas.Parallel_Group_Animation extends Efl.Canvas.Group_Animation { [[Combined animation which plays its individual animations in parallel (all of them simultaneously). @@ -6,11 +6,10 @@ class Efl.Canvas.Animation_Group_Parallel extends Efl.Canvas.Animation_Group For instance, this could be used to move an @Efl.Canvas.Object from one position to another while rotating it along the way. - Use @Efl.Canvas.Animation_Group.animation_add to append individual animations. + Use @Efl.Canvas.Group_Animation.animation_add to append individual animations. @since 1.24 ]] - c_prefix: efl_animation_group_parallel; data: null; methods { } diff --git a/src/lib/evas/canvas/efl_canvas_animation_group_parallel_private.h b/src/lib/evas/canvas/efl_canvas_parallel_group_animation_private.h similarity index 100% rename from src/lib/evas/canvas/efl_canvas_animation_group_parallel_private.h rename to src/lib/evas/canvas/efl_canvas_parallel_group_animation_private.h diff --git a/src/lib/evas/canvas/efl_canvas_animation_rotate.c b/src/lib/evas/canvas/efl_canvas_rotate_animation.c similarity index 75% rename from src/lib/evas/canvas/efl_canvas_animation_rotate.c rename to src/lib/evas/canvas/efl_canvas_rotate_animation.c index ba07733275..4fb029dd37 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_rotate.c +++ b/src/lib/evas/canvas/efl_canvas_rotate_animation.c @@ -1,10 +1,10 @@ -#include "efl_canvas_animation_rotate_private.h" +#include "efl_canvas_rotate_animation_private.h" -#define MY_CLASS EFL_CANVAS_ANIMATION_ROTATE_CLASS +#define MY_CLASS EFL_CANVAS_ROTATE_ANIMATION_CLASS EOLIAN static void -_efl_canvas_animation_rotate_rotate_set(Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Rotate_Data *pd, +_efl_canvas_rotate_animation_rotate_set(Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Rotate_Animation_Data *pd, double from_degree, double to_degree, Efl_Canvas_Object *pivot, @@ -20,8 +20,8 @@ _efl_canvas_animation_rotate_rotate_set(Eo *eo_obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_rotate_rotate_get(const Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Rotate_Data *pd, +_efl_canvas_rotate_animation_rotate_get(const Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Rotate_Animation_Data *pd, double *from_degree, double *to_degree, Efl_Canvas_Object **pivot, @@ -47,8 +47,8 @@ _efl_canvas_animation_rotate_rotate_get(const Eo *eo_obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_rotate_rotate_absolute_set(Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Rotate_Data *pd, +_efl_canvas_rotate_animation_rotate_absolute_set(Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Rotate_Animation_Data *pd, double from_degree, double to_degree, Eina_Position2D abs) @@ -61,8 +61,8 @@ _efl_canvas_animation_rotate_rotate_absolute_set(Eo *eo_obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_rotate_rotate_absolute_get(const Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Rotate_Data *pd, +_efl_canvas_rotate_animation_rotate_absolute_get(const Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Rotate_Animation_Data *pd, double *from_degree, double *to_degree, Eina_Position2D *abs) @@ -84,8 +84,8 @@ _efl_canvas_animation_rotate_rotate_absolute_get(const Eo *eo_obj EINA_UNUSED, } EOLIAN static double -_efl_canvas_animation_rotate_efl_canvas_animation_animation_apply(Eo *eo_obj, - Efl_Canvas_Animation_Rotate_Data *pd, +_efl_canvas_rotate_animation_efl_canvas_animation_animation_apply(Eo *eo_obj, + Efl_Canvas_Rotate_Animation_Data *pd, double progress, Efl_Canvas_Object *target) { @@ -114,8 +114,8 @@ _efl_canvas_animation_rotate_efl_canvas_animation_animation_apply(Eo *eo_obj, } EOLIAN static Efl_Object * -_efl_canvas_animation_rotate_efl_object_constructor(Eo *eo_obj, - Efl_Canvas_Animation_Rotate_Data *pd) +_efl_canvas_rotate_animation_efl_object_constructor(Eo *eo_obj, + Efl_Canvas_Rotate_Animation_Data *pd) { eo_obj = efl_constructor(efl_super(eo_obj, MY_CLASS)); @@ -134,4 +134,4 @@ _efl_canvas_animation_rotate_efl_object_constructor(Eo *eo_obj, return eo_obj; } -#include "efl_canvas_animation_rotate.eo.c" +#include "efl_canvas_rotate_animation.eo.c" diff --git a/src/lib/evas/canvas/efl_canvas_animation_rotate.eo b/src/lib/evas/canvas/efl_canvas_rotate_animation.eo similarity index 94% rename from src/lib/evas/canvas/efl_canvas_animation_rotate.eo rename to src/lib/evas/canvas/efl_canvas_rotate_animation.eo index c81f6eeaea..aa79e28a2f 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_rotate.eo +++ b/src/lib/evas/canvas/efl_canvas_rotate_animation.eo @@ -1,4 +1,6 @@ -class Efl.Canvas.Animation_Rotate extends Efl.Canvas.Animation +import eina_types; + +class Efl.Canvas.Rotate_Animation extends Efl.Canvas.Animation { [[Animated rotation effect. @@ -12,7 +14,7 @@ class Efl.Canvas.Animation_Rotate extends Efl.Canvas.Animation @since 1.24 ]] c_prefix: efl_animation_rotate; - data: Efl_Canvas_Animation_Rotate_Data; + data: Efl_Canvas_Rotate_Animation_Data; methods { @property rotate { [[Degree range to animate and pivot object. diff --git a/src/lib/evas/canvas/efl_canvas_rotate_animation_private.h b/src/lib/evas/canvas/efl_canvas_rotate_animation_private.h new file mode 100644 index 0000000000..459997cf77 --- /dev/null +++ b/src/lib/evas/canvas/efl_canvas_rotate_animation_private.h @@ -0,0 +1,30 @@ +#define EFL_ANIMATION_PROTECTED + +#include "evas_common_private.h" +#include +#include "efl_canvas_animation_private.h" + +#define EFL_ROTATE_ANIMATION_DATA_GET(o, pd) \ + Efl_Canvas_Rotate_Animation_Data *pd = efl_data_scope_get(o, EFL_CANVAS_ROTATE_ANIMATION_CLASS) + +typedef struct _Efl_Canvas_Rotate_Animation_Property +{ + double degree; +} Efl_Canvas_Rotate_Animation_Property; + +typedef struct _Efl_Canvas_Rotate_Animation_Relative_Pivot +{ + Efl_Canvas_Object *obj; + Eina_Vector2 pos; +} Efl_Canvas_Rotate_Animation_Relative_Pivot; + +typedef struct _Efl_Canvas_Rotate_Animation_Data +{ + Efl_Canvas_Rotate_Animation_Property from; + Efl_Canvas_Rotate_Animation_Property to; + + Eina_Position2D abs_pivot; + Efl_Canvas_Rotate_Animation_Relative_Pivot rel_pivot; + + Eina_Bool use_rel_pivot; +} Efl_Canvas_Rotate_Animation_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation_scale.c b/src/lib/evas/canvas/efl_canvas_scale_animation.c similarity index 75% rename from src/lib/evas/canvas/efl_canvas_animation_scale.c rename to src/lib/evas/canvas/efl_canvas_scale_animation.c index e8a13233d6..68abf64b2b 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_scale.c +++ b/src/lib/evas/canvas/efl_canvas_scale_animation.c @@ -1,10 +1,10 @@ -#include "efl_canvas_animation_scale_private.h" +#include "efl_canvas_scale_animation_private.h" -#define MY_CLASS EFL_CANVAS_ANIMATION_SCALE_CLASS +#define MY_CLASS EFL_CANVAS_SCALE_ANIMATION_CLASS EOLIAN static void -_efl_canvas_animation_scale_scale_set(Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Scale_Data *pd, +_efl_canvas_scale_animation_scale_set(Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Scale_Animation_Data *pd, Eina_Vector2 from_scale, Eina_Vector2 to_scale, Efl_Canvas_Object *pivot, @@ -21,8 +21,8 @@ _efl_canvas_animation_scale_scale_set(Eo *eo_obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_scale_scale_get(const Eo *obj EINA_UNUSED, - Efl_Canvas_Animation_Scale_Data *pd, +_efl_canvas_scale_animation_scale_get(const Eo *obj EINA_UNUSED, + Efl_Canvas_Scale_Animation_Data *pd, Eina_Vector2 *from_scale, Eina_Vector2 *to_scale, Efl_Canvas_Object **pivot, Eina_Vector2 *pivot_pos) { @@ -46,8 +46,8 @@ _efl_canvas_animation_scale_scale_get(const Eo *obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_scale_scale_absolute_set(Eo *obj EINA_UNUSED, - Efl_Canvas_Animation_Scale_Data *pd, +_efl_canvas_scale_animation_scale_absolute_set(Eo *obj EINA_UNUSED, + Efl_Canvas_Scale_Animation_Data *pd, Eina_Vector2 from_scale, Eina_Vector2 to_scale, Eina_Position2D pos) { @@ -61,8 +61,8 @@ _efl_canvas_animation_scale_scale_absolute_set(Eo *obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_scale_scale_absolute_get(const Eo *obj EINA_UNUSED, - Efl_Canvas_Animation_Scale_Data *pd, +_efl_canvas_scale_animation_scale_absolute_get(const Eo *obj EINA_UNUSED, + Efl_Canvas_Scale_Animation_Data *pd, Eina_Vector2 *from_scale, Eina_Vector2 *to_scale, Eina_Position2D *pos) { @@ -83,8 +83,8 @@ _efl_canvas_animation_scale_scale_absolute_get(const Eo *obj EINA_UNUSED, } EOLIAN static double -_efl_canvas_animation_scale_efl_canvas_animation_animation_apply(Eo *eo_obj, - Efl_Canvas_Animation_Scale_Data *pd, +_efl_canvas_scale_animation_efl_canvas_animation_animation_apply(Eo *eo_obj, + Efl_Canvas_Scale_Animation_Data *pd, double progress, Efl_Canvas_Object *target) { @@ -114,8 +114,8 @@ _efl_canvas_animation_scale_efl_canvas_animation_animation_apply(Eo *eo_obj, } EOLIAN static Efl_Object * -_efl_canvas_animation_scale_efl_object_constructor(Eo *eo_obj, - Efl_Canvas_Animation_Scale_Data *pd) +_efl_canvas_scale_animation_efl_object_constructor(Eo *eo_obj, + Efl_Canvas_Scale_Animation_Data *pd) { eo_obj = efl_constructor(efl_super(eo_obj, MY_CLASS)); @@ -130,4 +130,4 @@ _efl_canvas_animation_scale_efl_object_constructor(Eo *eo_obj, return eo_obj; } -#include "efl_canvas_animation_scale.eo.c" +#include "efl_canvas_scale_animation.eo.c" diff --git a/src/lib/evas/canvas/efl_canvas_animation_scale.eo b/src/lib/evas/canvas/efl_canvas_scale_animation.eo similarity index 95% rename from src/lib/evas/canvas/efl_canvas_animation_scale.eo rename to src/lib/evas/canvas/efl_canvas_scale_animation.eo index 1bde1a07f6..d0b890a2f4 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_scale.eo +++ b/src/lib/evas/canvas/efl_canvas_scale_animation.eo @@ -1,4 +1,6 @@ -class Efl.Canvas.Animation_Scale extends Efl.Canvas.Animation +import eina_types; + +class Efl.Canvas.Scale_Animation extends Efl.Canvas.Animation { [[Animated scaling effect. @@ -13,7 +15,7 @@ class Efl.Canvas.Animation_Scale extends Efl.Canvas.Animation @since 1.24 ]] c_prefix: efl_animation_scale; - data: Efl_Canvas_Animation_Scale_Data; + data: Efl_Canvas_Scale_Animation_Data; methods { @property scale { [[Scale range and pivot object. diff --git a/src/lib/evas/canvas/efl_canvas_scale_animation_private.h b/src/lib/evas/canvas/efl_canvas_scale_animation_private.h new file mode 100644 index 0000000000..85363ba490 --- /dev/null +++ b/src/lib/evas/canvas/efl_canvas_scale_animation_private.h @@ -0,0 +1,25 @@ +#define EFL_ANIMATION_PROTECTED + +#include "evas_common_private.h" +#include +#include "efl_canvas_animation_private.h" + +#define EFL_SCALE_ANIMATION_DATA_GET(o, pd) \ + Efl_Canvas_Scale_Animation_Data *pd = efl_data_scope_get(o, EFL_CANVAS_SCALE_ANIMATION_CLASS) + +typedef struct _Efl_Canvas_Scale_Animation_Relative_Pivot +{ + Efl_Canvas_Object *obj; + Eina_Vector2 pos; +} Efl_Canvas_Scale_Animation_Relative_Pivot; + +typedef struct _Efl_Canvas_Scale_Animation_Data +{ + Eina_Vector2 from; + Eina_Vector2 to; + + Eina_Position2D pos; + Efl_Canvas_Scale_Animation_Relative_Pivot rel_pivot; + + Eina_Bool use_rel_pivot; +} Efl_Canvas_Scale_Animation_Data; diff --git a/src/lib/evas/canvas/efl_canvas_animation_group_sequential.c b/src/lib/evas/canvas/efl_canvas_sequential_group_animation.c similarity index 90% rename from src/lib/evas/canvas/efl_canvas_animation_group_sequential.c rename to src/lib/evas/canvas/efl_canvas_sequential_group_animation.c index 26edb21355..16234471ae 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_group_sequential.c +++ b/src/lib/evas/canvas/efl_canvas_sequential_group_animation.c @@ -1,9 +1,9 @@ -#include "efl_canvas_animation_group_sequential_private.h" +#include "efl_canvas_sequential_group_animation_private.h" -#define MY_CLASS EFL_CANVAS_ANIMATION_GROUP_SEQUENTIAL_CLASS +#define MY_CLASS EFL_CANVAS_SEQUENTIAL_GROUP_ANIMATION_CLASS EOLIAN static double -_efl_canvas_animation_group_sequential_efl_canvas_animation_animation_apply(Eo *eo_obj, +_efl_canvas_sequential_group_animation_efl_canvas_animation_animation_apply(Eo *eo_obj, void *_pd EINA_UNUSED, double progress, Efl_Canvas_Object *target) @@ -58,7 +58,7 @@ _efl_canvas_animation_group_sequential_efl_canvas_animation_animation_apply(Eo * } EOLIAN static double -_efl_canvas_animation_group_sequential_efl_canvas_animation_duration_get(const Eo *eo_obj, void *_pd EINA_UNUSED) +_efl_canvas_sequential_group_animation_efl_canvas_animation_duration_get(const Eo *eo_obj, void *_pd EINA_UNUSED) { double total_duration = 0.0; double child_total_duration; @@ -78,4 +78,4 @@ _efl_canvas_animation_group_sequential_efl_canvas_animation_duration_get(const E return total_duration; } -#include "efl_canvas_animation_group_sequential.eo.c" +#include "efl_canvas_sequential_group_animation.eo.c" diff --git a/src/lib/evas/canvas/efl_canvas_animation_group_sequential.eo b/src/lib/evas/canvas/efl_canvas_sequential_group_animation.eo similarity index 78% rename from src/lib/evas/canvas/efl_canvas_animation_group_sequential.eo rename to src/lib/evas/canvas/efl_canvas_sequential_group_animation.eo index 09f9e2178e..01417b4b41 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_group_sequential.eo +++ b/src/lib/evas/canvas/efl_canvas_sequential_group_animation.eo @@ -1,4 +1,4 @@ -class Efl.Canvas.Animation_Group_Sequential extends Efl.Canvas.Animation_Group +class Efl.Canvas.Sequential_Group_Animation extends Efl.Canvas.Group_Animation { [[Combined animation which plays its individual animations in a sequential order (one after the other). @@ -6,7 +6,7 @@ class Efl.Canvas.Animation_Group_Sequential extends Efl.Canvas.Animation_Group For instance, this could be used to move an @Efl.Canvas.Object from one position to another and then start rotating it once it reaches its destination. - Use @Efl.Canvas.Animation_Group.animation_add to append individual animations. + Use @Efl.Canvas.Group_Animation.animation_add to append individual animations. Animations are played in the order in which they are added. @since 1.24 diff --git a/src/lib/evas/canvas/efl_canvas_animation_group_sequential_private.h b/src/lib/evas/canvas/efl_canvas_sequential_group_animation_private.h similarity index 100% rename from src/lib/evas/canvas/efl_canvas_animation_group_sequential_private.h rename to src/lib/evas/canvas/efl_canvas_sequential_group_animation_private.h diff --git a/src/lib/evas/canvas/efl_canvas_animation_translate.c b/src/lib/evas/canvas/efl_canvas_translate_animation.c similarity index 70% rename from src/lib/evas/canvas/efl_canvas_animation_translate.c rename to src/lib/evas/canvas/efl_canvas_translate_animation.c index 1a98daa60d..51e22d5446 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_translate.c +++ b/src/lib/evas/canvas/efl_canvas_translate_animation.c @@ -1,6 +1,6 @@ -#include "efl_canvas_animation_translate_private.h" +#include "efl_canvas_translate_animation_private.h" -#define MY_CLASS EFL_CANVAS_ANIMATION_TRANSLATE_CLASS +#define MY_CLASS EFL_CANVAS_TRANSLATE_ANIMATION_CLASS typedef struct __Translate_Property_Double { @@ -9,8 +9,8 @@ typedef struct __Translate_Property_Double } _Translate_Property_Double; EOLIAN static void -_efl_canvas_animation_translate_translate_set(Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Translate_Data *pd, +_efl_canvas_translate_animation_translate_set(Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Translate_Animation_Data *pd, Eina_Position2D from, Eina_Position2D to) { @@ -22,8 +22,8 @@ _efl_canvas_animation_translate_translate_set(Eo *eo_obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_translate_translate_get(const Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Translate_Data *pd, +_efl_canvas_translate_animation_translate_get(const Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Translate_Animation_Data *pd, Eina_Position2D *from, Eina_Position2D *to) { @@ -41,8 +41,8 @@ _efl_canvas_animation_translate_translate_get(const Eo *eo_obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_translate_translate_absolute_set(Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Translate_Data *pd, +_efl_canvas_translate_animation_translate_absolute_set(Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Translate_Animation_Data *pd, Eina_Position2D from, Eina_Position2D to) { @@ -54,8 +54,8 @@ _efl_canvas_animation_translate_translate_absolute_set(Eo *eo_obj EINA_UNUSED, } EOLIAN static void -_efl_canvas_animation_translate_translate_absolute_get(const Eo *eo_obj EINA_UNUSED, - Efl_Canvas_Animation_Translate_Data *pd, +_efl_canvas_translate_animation_translate_absolute_get(const Eo *eo_obj EINA_UNUSED, + Efl_Canvas_Translate_Animation_Data *pd, Eina_Position2D *from, Eina_Position2D *to) { @@ -73,8 +73,8 @@ _efl_canvas_animation_translate_translate_absolute_get(const Eo *eo_obj EINA_UNU } EOLIAN static double -_efl_canvas_animation_translate_efl_canvas_animation_animation_apply(Eo *eo_obj, - Efl_Canvas_Animation_Translate_Data *pd, +_efl_canvas_translate_animation_efl_canvas_animation_animation_apply(Eo *eo_obj, + Efl_Canvas_Translate_Animation_Data *pd, double progress, Efl_Canvas_Object *target) { @@ -102,8 +102,8 @@ _efl_canvas_animation_translate_efl_canvas_animation_animation_apply(Eo *eo_obj, } EOLIAN static Efl_Object * -_efl_canvas_animation_translate_efl_object_constructor(Eo *eo_obj, - Efl_Canvas_Animation_Translate_Data *pd) +_efl_canvas_translate_animation_efl_object_constructor(Eo *eo_obj, + Efl_Canvas_Translate_Animation_Data *pd) { eo_obj = efl_constructor(efl_super(eo_obj, MY_CLASS)); @@ -115,4 +115,4 @@ _efl_canvas_animation_translate_efl_object_constructor(Eo *eo_obj, return eo_obj; } -#include "efl_canvas_animation_translate.eo.c" +#include "efl_canvas_translate_animation.eo.c" diff --git a/src/lib/evas/canvas/efl_canvas_animation_translate.eo b/src/lib/evas/canvas/efl_canvas_translate_animation.eo similarity index 92% rename from src/lib/evas/canvas/efl_canvas_animation_translate.eo rename to src/lib/evas/canvas/efl_canvas_translate_animation.eo index fdb3883156..23e9fe09b8 100644 --- a/src/lib/evas/canvas/efl_canvas_animation_translate.eo +++ b/src/lib/evas/canvas/efl_canvas_translate_animation.eo @@ -1,4 +1,6 @@ -class Efl.Canvas.Animation_Translate extends Efl.Canvas.Animation +import eina_types; + +class Efl.Canvas.Translate_Animation extends Efl.Canvas.Animation { [[Animated translation effect. @@ -12,7 +14,7 @@ class Efl.Canvas.Animation_Translate extends Efl.Canvas.Animation @since 1.24 ]] c_prefix: efl_animation_translate; - data: Efl_Canvas_Animation_Translate_Data; + data: Efl_Canvas_Translate_Animation_Data; methods { @property translate { [[Translation vector, relative to the starting position of the object. diff --git a/src/lib/evas/canvas/efl_canvas_translate_animation_private.h b/src/lib/evas/canvas/efl_canvas_translate_animation_private.h new file mode 100644 index 0000000000..ba67bb2b9d --- /dev/null +++ b/src/lib/evas/canvas/efl_canvas_translate_animation_private.h @@ -0,0 +1,16 @@ +#define EFL_ANIMATION_PROTECTED + +#include "evas_common_private.h" +#include +#include "efl_canvas_animation_private.h" + +#define EFL_TRANSLATE_ANIMATION_DATA_GET(o, pd) \ + Efl_Canvas_Translate_Animation_Data *pd = efl_data_scope_get(o, EFL_CANVAS_TRANSLATE_ANIMATION_CLASS) + +typedef struct _Efl_Canvas_Translate_Animation_Data +{ + Eina_Position2D from; + Eina_Position2D to; + + Eina_Bool use_rel_move; +} Efl_Canvas_Translate_Animation_Data; diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build index 196b3962bb..35bdb46841 100644 --- a/src/lib/evas/canvas/meson.build +++ b/src/lib/evas/canvas/meson.build @@ -32,13 +32,13 @@ pub_eo_files = [ 'efl_canvas_pointer.eo', 'efl_canvas_scene.eo', 'efl_canvas_animation.eo', - 'efl_canvas_animation_alpha.eo', - 'efl_canvas_animation_rotate.eo', - 'efl_canvas_animation_scale.eo', - 'efl_canvas_animation_translate.eo', - 'efl_canvas_animation_group.eo', - 'efl_canvas_animation_group_parallel.eo', - 'efl_canvas_animation_group_sequential.eo', + 'efl_canvas_alpha_animation.eo', + 'efl_canvas_rotate_animation.eo', + 'efl_canvas_scale_animation.eo', + 'efl_canvas_translate_animation.eo', + 'efl_canvas_group_animation.eo', + 'efl_canvas_parallel_group_animation.eo', + 'efl_canvas_sequential_group_animation.eo', 'efl_canvas_textblock_factory.eo', 'efl_canvas_rectangle.eo', 'efl_canvas_object.eo', @@ -179,13 +179,13 @@ evas_src += files([ 'efl_input_clickable.c', 'efl_input_device.c', 'efl_canvas_animation.c', - 'efl_canvas_animation_alpha.c', - 'efl_canvas_animation_rotate.c', - 'efl_canvas_animation_scale.c', - 'efl_canvas_animation_translate.c', - 'efl_canvas_animation_group.c', - 'efl_canvas_animation_group_parallel.c', - 'efl_canvas_animation_group_sequential.c', + 'efl_canvas_alpha_animation.c', + 'efl_canvas_rotate_animation.c', + 'efl_canvas_scale_animation.c', + 'efl_canvas_translate_animation.c', + 'efl_canvas_group_animation.c', + 'efl_canvas_parallel_group_animation.c', + 'efl_canvas_sequential_group_animation.c', 'efl_gfx_vg_value_provider.c', 'efl_canvas_vg_object.c', 'efl_canvas_vg_node.c', diff --git a/src/tests/efl_mono/Eo.cs b/src/tests/efl_mono/Eo.cs index af40bf12d8..7c580480ad 100644 --- a/src/tests/efl_mono/Eo.cs +++ b/src/tests/efl_mono/Eo.cs @@ -402,15 +402,15 @@ class TestCsharpProperties obj.Dispose(); } - // public static void test_setter_only() - // { - // var obj = new Dummy.TestObject(); - // int val = -1984; + public static void test_setter_only() + { + var obj = new Dummy.TestObject(); + int val = -1984; - // obj.SetterOnly = val; - // Test.AssertEquals(val, obj.GetSetterOnly()); - // obj.Dispose(); - // } + obj.SetterOnly = val; + Test.AssertEquals(val, obj.GetSetterOnly()); + obj.Dispose(); + } public static void test_class_property() { @@ -436,52 +436,6 @@ class TestCsharpProperties Test.AssertEquals(ret, (1, 2)); obj.Dispose(); } - - public static void test_csharp_keyed_multi_valued_prop() - { - var obj = new Dummy.TestObject(); - obj.KeyedMultiValuedProp[100] = (1, 2); - Test.AssertEquals(obj.KeyedMultiValuedProp[100], (1, 2)); - obj.Dispose(); - } - - public static void test_csharp_multi_keyed_multi_valued_prop() - { - var obj = new Dummy.TestObject(); - obj.MultiKeyedMultiValuedProp[(100, 101)] = (1, 2); - Test.AssertEquals(obj.MultiKeyedMultiValuedProp[(100, 101)], (1, 2)); - obj.Dispose(); - } - - public static void test_csharp_multi_prop() - { - var obj = new Dummy.TestObject(); - obj.MultiKeyedMultiValuedProp[(100, 101)] = (1, 2); - obj.KeyedMultiValuedProp[100] = (1, 2); - Test.AssertEquals(obj.KeyedMultiValuedProp[100], - obj.MultiKeyedMultiValuedProp[(100, 101)]); - int a1, b1, a2, b2; -#if __MonoCS__ - (int a, int b) t1 = obj.MultiKeyedMultiValuedProp[(100, 101)]; - (a1, b1) = (t1.Item1, t1.Item2); - (int a, int b) t2 = obj.KeyedMultiValuedProp[100]; - (a2, b2) = (t2.Item1, t2.Item2); -#else - (a1, b1) = obj.MultiKeyedMultiValuedProp[(100, 101)]; - (a2, b2) = obj.KeyedMultiValuedProp[100]; -#endif - Test.AssertEquals(a1, a2); - Test.AssertEquals(b1, b2); - var i = (100, 101); - var j = 100; - Test.AssertEquals(obj.KeyedMultiValuedProp[j], - obj.MultiKeyedMultiValuedProp[i]); - obj.MultiKeyedMultiValuedProp[i] = (1, 3); - obj.KeyedMultiValuedProp[j] = obj.MultiKeyedMultiValuedProp[i]; - Test.AssertEquals(obj.KeyedMultiValuedProp[j], - obj.MultiKeyedMultiValuedProp[i]); - - } } class TestEoGrandChildrenFinalize diff --git a/src/tests/efl_mono/dummy_event_manager.c b/src/tests/efl_mono/dummy_event_manager.c index 813622929a..62bdd05c7f 100644 --- a/src/tests/efl_mono/dummy_event_manager.c +++ b/src/tests/efl_mono/dummy_event_manager.c @@ -43,12 +43,6 @@ _dummy_event_manager_emitter_set(EINA_UNUSED Eo *obj, Dummy_Event_Manager_Data * pd->emitter = emitter; } -static Efl_Object* -_dummy_event_manager_emitter_get(EINA_UNUSED Eo const *obj, Dummy_Event_Manager_Data *pd) -{ - return pd->emitter; -} - static Eina_Bool _dummy_event_manager_emit_with_int(EINA_UNUSED Eo *obj, Dummy_Event_Manager_Data *pd, int data) { diff --git a/src/tests/efl_mono/dummy_event_manager.eo b/src/tests/efl_mono/dummy_event_manager.eo index 5c8b1d0791..b16f7b92cb 100644 --- a/src/tests/efl_mono/dummy_event_manager.eo +++ b/src/tests/efl_mono/dummy_event_manager.eo @@ -4,6 +4,8 @@ class Dummy.Event_Manager extends Efl.Object { methods { @property emitter { + set { + } values { emitter: Efl.Object @move; } diff --git a/src/tests/efl_mono/dummy_test_object.c b/src/tests/efl_mono/dummy_test_object.c index 19539906f4..b87aff1cd4 100644 --- a/src/tests/efl_mono/dummy_test_object.c +++ b/src/tests/efl_mono/dummy_test_object.c @@ -16,7 +16,6 @@ #define DUMMY_TEST_IFACE_PROTECTED -#include #include "libefl_mono_native_test.h" typedef struct Dummy_Test_Object_Data @@ -4613,36 +4612,6 @@ void _dummy_test_object_multi_valued_prop_set(Eo* obj EINA_UNUSED, Dummy_Test_Ob pd->prop2 = prop2; } -void _dummy_test_object_keyed_multi_valued_prop_get(Eo const* obj EINA_UNUSED, Dummy_Test_Object_Data* pd, int prop_key1, int* prop1, int* prop2) -{ - assert (prop_key1 == 100); - *prop1 = pd->prop1; - *prop2 = pd->prop2; -} - -void _dummy_test_object_keyed_multi_valued_prop_set(Eo* obj EINA_UNUSED, Dummy_Test_Object_Data* pd, int prop_key1, int prop1, int prop2) -{ - assert (prop_key1 == 100); - pd->prop1 = prop1; - pd->prop2 = prop2; -} - -void _dummy_test_object_multi_keyed_multi_valued_prop_get(Eo const* obj EINA_UNUSED, Dummy_Test_Object_Data* pd, int prop_key1, int prop_key2, int* prop1, int* prop2) -{ - assert (prop_key1 == 100); - assert (prop_key2 == 101); - *prop1 = pd->prop1; - *prop2 = pd->prop2; -} - -void _dummy_test_object_multi_keyed_multi_valued_prop_set(Eo* obj EINA_UNUSED, Dummy_Test_Object_Data* pd, int prop_key1, int prop_key2, int prop1, int prop2) -{ - assert (prop_key1 == 100); - assert (prop_key2 == 101); - pd->prop1 = prop1; - pd->prop2 = prop2; -} - /* Class Properties */ static int _dummy_test_object_klass_prop = 0; diff --git a/src/tests/efl_mono/dummy_test_object.eo b/src/tests/efl_mono/dummy_test_object.eo index 37c08cb495..cf2ae7ce03 100644 --- a/src/tests/efl_mono/dummy_test_object.eo +++ b/src/tests/efl_mono/dummy_test_object.eo @@ -1581,31 +1581,6 @@ class Dummy.Test_Object extends Efl.Object implements Dummy.Test_Iface { } } - @property keyed_multi_valued_prop { - get {} - set {} - keys { - key1: int; - } - values { - prop1: int; - prop2: int; - } - } - - @property multi_keyed_multi_valued_prop { - get {} - set {} - keys { - key1: int; - key2: int; - } - values { - prop1: int; - prop2: int; - } - } - @property klass_prop @static { get {} set {} diff --git a/src/tests/elementary/efl_ui_test_text.c b/src/tests/elementary/efl_ui_test_text.c index a49c7e7cc9..b7886544f1 100644 --- a/src/tests/elementary/efl_ui_test_text.c +++ b/src/tests/elementary/efl_ui_test_text.c @@ -72,6 +72,45 @@ EFL_START_TEST(text_all_select_all_unselect) ecore_main_loop_iterate(); ck_assert_int_eq(i_have_selection, 2); ck_assert_int_eq(i_selection, 1); + + /*Partial select, the select all*/ + Eo *sel1, *sel2; + i_selection = 0; + efl_text_interactive_selection_cursors_get(txt, &sel1, &sel2); + efl_text_cursor_position_set(sel1, 1); + efl_text_cursor_position_set(sel2, 2); + ck_assert_int_eq(i_selection, 2); + efl_text_interactive_all_select(txt); + ck_assert_int_eq(i_selection, 3); + ck_assert_int_eq(efl_text_cursor_position_get(sel1), 0); + ck_assert_int_eq(efl_text_cursor_position_get(sel2), 5); + + Eo *cur1 = efl_ui_textbox_cursor_create(txt); + Eo *cur2 = efl_ui_textbox_cursor_create(txt); + efl_text_cursor_position_set(cur1, 1); + efl_text_cursor_position_set(cur2, 2); + efl_text_interactive_selection_cursors_set(txt, cur1, cur2); + ck_assert_int_eq(i_selection, 4); + efl_text_interactive_selection_cursors_get(txt, &sel1, &sel2); + ck_assert_int_eq(efl_text_cursor_position_get(sel1),1); + ck_assert_int_eq(efl_text_cursor_position_get(sel2),2); + + + /*Select part then select all*/ + efl_text_interactive_all_unselect(txt); + i_have_selection = 0, i_selection = 0; + efl_text_cursor_position_set(cur1, 1); + efl_text_cursor_position_set(cur2, 2); + efl_text_interactive_selection_cursors_set(txt, cur1, cur2); + ck_assert_int_eq(i_selection, 1); + ck_assert_int_eq(i_have_selection, 1); + efl_text_interactive_all_select(txt); + ck_assert_int_eq(i_selection, 2); + ck_assert_int_eq(i_have_selection, 1); + efl_text_interactive_all_unselect(txt); + ck_assert_int_eq(i_have_selection, 2); + + efl_del(txt); efl_del(win); }