efl_container: remove content_remove

Most of classes implements Efl.Container.content_remove are just calling "unpack"
except of "Efl.Canvas.Layout" and "Efl.Ui.Layout".
This patch remove the asymmetrical API and add content_remove API of
"Efl.Canvas.Layout" and "Efl.Ui.Layout" that child can be remove without efl_part
APIs.

ref T7576

Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D7913
This commit is contained in:
Yeongjong Lee 2019-02-12 11:55:11 +00:00 committed by Marcel Hollerbach
parent 7bda677eb0
commit 4628021fe5
23 changed files with 12 additions and 90 deletions

View File

@ -99,12 +99,6 @@ _efl_canvas_layout_part_box_efl_pack_linear_pack_content_get(Eo *obj, void *_pd
return _edje_part_box_content_at(pd->ed, pd->part, index);
}
EOLIAN static Eina_Bool
_efl_canvas_layout_part_box_efl_container_content_remove(Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx_Entity *subobj)
{
return efl_pack_unpack(obj, subobj);
}
EOLIAN static int
_efl_canvas_layout_part_box_efl_pack_linear_pack_index_get(Eo *obj, void *_pd EINA_UNUSED, const Efl_Gfx_Entity * subobj)
{

View File

@ -74,7 +74,6 @@ EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_text_cursor_geometry_get, _efl_canvas_
EDJE_PART_INVALID_VOID(efl_text_markup_interactive_cursor_markup_insert, _efl_canvas_layout_part_invalid_efl_text_markup_interactive_cursor_markup_insert, Efl_Text_Cursor_Cursor *cur, const char *markup)
EDJE_PART_INVALID(Eina_Iterator *, 0, efl_content_iterate, _efl_canvas_layout_part_invalid_efl_container_content_iterate)
EDJE_PART_INVALID(int, 0, efl_content_count, _efl_canvas_layout_part_invalid_efl_container_content_count)
EDJE_PART_INVALID(Eina_Bool, 0, efl_content_remove, _efl_canvas_layout_part_invalid_efl_container_content_remove, Efl_Gfx_Entity *content)
EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_clear, _efl_canvas_layout_part_invalid_efl_pack_pack_clear)
EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_unpack_all, _efl_canvas_layout_part_invalid_efl_pack_unpack_all)
EDJE_PART_INVALID(Eina_Bool, 0, efl_pack_unpack, _efl_canvas_layout_part_invalid_efl_pack_unpack, Efl_Gfx_Entity *subobj)

View File

@ -27,7 +27,7 @@ _efl_canvas_layout_part_swallow_efl_content_content_unset(Eo *obj, void *_pd EIN
PROXY_DATA_GET(obj, pd);
Efl_Gfx_Entity *content = _edje_efl_content_content_get(pd->ed, pd->part);
if (!content) return NULL;
efl_content_remove(obj, content);
efl_canvas_layout_content_remove(obj, content);
return content;
}

View File

@ -29,12 +29,6 @@ _efl_canvas_layout_part_table_efl_container_content_count(Eo *obj, void *_pd EIN
return evas_obj_table_count(pd->rp->object);
}
EOLIAN static Eina_Bool
_efl_canvas_layout_part_table_efl_container_content_remove(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED EINA_UNUSED, Efl_Gfx_Entity *content)
{
return efl_pack_unpack(obj, content);
}
EOLIAN static Eina_Bool
_efl_canvas_layout_part_table_efl_pack_pack_clear(Eo *obj, void *_pd EINA_UNUSED)
{

View File

@ -3363,7 +3363,7 @@ _swallow_real_part_get(Evas_Object *obj_swallow)
}
EOLIAN Eina_Bool
_efl_canvas_layout_efl_container_content_remove(Eo *obj EINA_UNUSED, Edje *ed, Evas_Object *obj_swallow)
_efl_canvas_layout_content_remove(Eo *obj EINA_UNUSED, Edje *ed, Evas_Object *obj_swallow)
{
Edje_Real_Part *rp;
Edje_User_Defined *eud;
@ -6461,7 +6461,7 @@ edje_object_part_swallow(Edje_Object *obj, const char *part, Evas_Object *obj_sw
EAPI void
edje_object_part_unswallow(Edje_Object *obj, Evas_Object *obj_swallow)
{
efl_content_remove(obj, obj_swallow);
efl_canvas_layout_content_remove(obj, obj_swallow);
}
EAPI Evas_Object *

View File

@ -80,6 +80,13 @@ class @beta Efl.Canvas.Layout extends Efl.Canvas.Group implements Efl.File, Efl.
error: Efl.Gfx.Image_Load_Error(Efl.Gfx.Image_Load_Error.none); [[The load error code.]]
}
}
content_remove {
[[Unswallow an object from this Edje.]]
params {
@in content: Efl.Gfx.Entity; [[To be removed content.]]
}
return: bool; [[$false if $content was not a child or can not be removed.]]
}
}
events {
part,invalid @beta: string; [[Emitted when trying to use an invalid part.
@ -122,7 +129,6 @@ class @beta Efl.Canvas.Layout extends Efl.Canvas.Group implements Efl.File, Efl.
Efl.Ui.I18n.language { set; get; }
Efl.Gfx.Entity.scale { set; get; }
Efl.File.load;
Efl.Container.content_remove;
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Part.part_get; [[Returns @Efl.Canvas.Layout_Part]]

View File

@ -10,7 +10,6 @@ class @beta Efl.Canvas.Layout_Part_Box extends Efl.Canvas.Layout_Part implements
implements {
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Container.content_remove;
Efl.Pack.pack_clear;
Efl.Pack.unpack_all;
Efl.Pack.unpack;

View File

@ -48,7 +48,6 @@ class @beta Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implem
// Efl.Canvas.Layout_Part_Box
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Container.content_remove;
Efl.Pack.pack_clear;
Efl.Pack.unpack_all;
Efl.Pack.unpack;

View File

@ -9,7 +9,6 @@ class @beta Efl.Canvas.Layout_Part_Table extends Efl.Canvas.Layout_Part implemen
implements {
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Container.content_remove;
Efl.Pack.pack_clear;
Efl.Pack.unpack_all;
Efl.Pack.unpack;

View File

@ -8,13 +8,6 @@ interface @beta Efl.Container
eo_prefix: efl_content;
event_prefix: efl_container;
methods {
content_remove {
[[Unswallow an object from this container.]]
params {
@in content: Efl.Gfx.Entity; [[To be removed content]]
}
return: bool; [[$false if $content was not a child or can not be removed.]]
}
content_iterate {
[[Begin iterating over this object's contents.]]
return: iterator<Efl.Gfx.Entity> @owned @warn_unused; [[Iterator to object content]]

View File

@ -193,14 +193,6 @@ _efl_ui_box_efl_container_content_count(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED
return bd ? eina_list_count(bd->children) : 0;
}
EOLIAN static Eina_Bool
_efl_ui_box_efl_container_content_remove(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd EINA_UNUSED, Efl_Gfx_Entity *content)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, 0);
return evas_object_box_remove(wd->resize_obj, content);
}
EOLIAN static Eina_Bool
_efl_ui_box_efl_pack_pack_clear(Eo *obj, Efl_Ui_Box_Data *pd)
{

View File

@ -30,7 +30,6 @@ class @beta Efl.Ui.Box extends Efl.Ui.Widget implements Efl.Pack_Linear, Efl.Pac
implements {
Efl.Object.constructor;
Efl.Canvas.Group.group_calculate;
Efl.Container.content_remove;
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Ui.Direction.direction { get; set; }

View File

@ -2209,15 +2209,6 @@ _efl_ui_flip_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *
return eina_list_count(pd->content_list);
}
EOLIAN static Eina_Bool
_efl_ui_flip_efl_container_content_remove(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *content)
{
pd->content_list = eina_list_remove(pd->content_list, content);
pd->content_list = eina_list_remove(pd->content_list, content);
_content_removed(obj, pd, content);
return EINA_TRUE;
}
EOLIAN static Eina_Bool
_efl_ui_flip_efl_pack_unpack(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subobj)
{

View File

@ -235,7 +235,6 @@ class @beta Efl.Ui.Flip extends Efl.Ui.Widget implements Efl.Pack_Linear
Efl.Ui.Widget.widget_sub_object_del;
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Container.content_remove;
Efl.Part.part_get;
Efl.Pack.unpack;
Efl.Pack.pack;

View File

@ -1145,23 +1145,6 @@ _efl_ui_layout_content_unset(Eo *obj, Efl_Ui_Layout_Data *sd, const char *part)
return NULL;
}
EOLIAN static Eina_Bool
_efl_ui_layout_base_efl_container_content_remove(Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED,
Efl_Gfx_Entity *content)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
if (!_elm_widget_sub_object_redirect_to_top(obj, content))
{
ERR("could not remove sub object %p from %p", content, obj);
return EINA_FALSE;
}
edje_object_part_unswallow(wd->resize_obj, content);
_eo_unparent_helper(content, obj);
return EINA_TRUE;
}
/* legacy only - eo is iterator */
EAPI Eina_List *
elm_layout_content_swallow_list_get(const Evas_Object *obj)

View File

@ -86,7 +86,6 @@ abstract @beta Efl.Ui.Layout_Base extends Efl.Ui.Widget implements Efl.Container
Efl.Ui.Widget.widget_sub_object_del;
Efl.Ui.Focus.Object.on_focus_update;
Efl.Container.content_count;
Efl.Container.content_remove;
Efl.Container.content_iterate;
Efl.Part.part_get;
Efl.Ui.View.model { get; set; }

View File

@ -111,13 +111,6 @@ _efl_ui_layout_part_box_efl_pack_unpack(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Box_D
return _efl_ui_layout_box_remove(pd->obj, pd->sd, pd->part, subobj) != NULL;
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_box_efl_container_content_remove(Eo *obj, Efl_Ui_Layout_Box_Data *pd, Efl_Gfx_Entity *content)
{
// alias for efl_pack_unpack
return _efl_ui_layout_part_box_efl_pack_unpack(obj, pd, content);
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_box_efl_pack_pack(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Box_Data *pd, Efl_Gfx_Entity *subobj)
{
@ -281,13 +274,6 @@ _efl_ui_layout_part_table_efl_pack_unpack(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Tab
return _efl_ui_layout_table_unpack(pd->obj, pd->sd, pd->part, subobj) == subobj;
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_table_efl_container_content_remove(Eo *obj, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity *content)
{
// alias for efl_pack_unpack
return _efl_ui_layout_part_table_efl_pack_unpack(obj, pd, content);
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_table_efl_pack_table_pack_table(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity *subobj, int col, int row, int colspan, int rowspan)
{

View File

@ -22,7 +22,6 @@ class @beta Efl.Ui.Layout_Part_Box extends Efl.Object implements Efl.Pack_Linear
Efl.Object.destructor;
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Container.content_remove;
Efl.Ui.Direction.direction { get; }
Efl.Pack.pack_clear;
Efl.Pack.unpack_all;

View File

@ -21,7 +21,6 @@ class @beta Efl.Ui.Layout_Part_Table extends Efl.Object implements Efl.Pack_Tabl
Efl.Object.destructor;
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Container.content_remove;
Efl.Pack.pack_clear;
Efl.Pack.unpack_all;
Efl.Pack.unpack;

View File

@ -572,13 +572,6 @@ _efl_ui_table_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Table_Data
return pd->count;
}
EOLIAN static Eina_Bool
_efl_ui_table_efl_container_content_remove(Eo *obj, Efl_Ui_Table_Data *pd EINA_UNUSED, Efl_Gfx_Entity *content)
{
return efl_pack_unpack(obj, content);
}
EOLIAN static Eina_Iterator *
_efl_ui_table_efl_pack_table_table_contents_get(Eo *obj, Efl_Ui_Table_Data *pd EINA_UNUSED,
int col, int row, Eina_Bool below)

View File

@ -21,7 +21,6 @@ class @beta Efl.Ui.Table extends Efl.Ui.Widget implements Efl.Pack_Table, Efl.Pa
Efl.Object.constructor;
Efl.Canvas.Group.group_calculate;
Efl.Ui.Widget.theme_apply;
Efl.Container.content_remove;
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Ui.Direction.direction { get; set; }

View File

@ -102,7 +102,7 @@ EFL_START_TEST(edje_test_box_eoapi)
fail_if(i != 3);
eina_iterator_free(it);
fail_if(!efl_content_remove(efl_part(obj, "box"), sobjs[0]));
fail_if(!efl_pack_unpack(efl_part(obj, "box"), sobjs[0]));
fail_if(efl_content_count(efl_part(obj, "box")) != 2);
fail_if(!efl_pack_unpack_at(efl_part(obj, "box"), 1));
fail_if(efl_content_count(efl_part(obj, "box")) != 1);

View File

@ -107,7 +107,7 @@ EFL_START_TEST(edje_test_swallows_eoapi)
fail_if(!efl_content_set(efl_part(ly, "swallow"), o1));
ck_assert_ptr_eq(efl_parent_get(o1), ly);
efl_content_remove(ly, o1);
efl_canvas_layout_content_remove(ly, o1);
ck_assert_ptr_eq(efl_parent_get(o1), evas_object_evas_get(o1));
fail_if(!efl_content_set(efl_part(ly, "swallow"), o1));