From a4f7baa911a07d225e81d747bd7d79a177aae552 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Wed, 24 Jul 2019 17:57:01 +0200 Subject: [PATCH] rename efl_ui_item_container -> efl_ui_collection this is the first rename of the main widget, the renames of the test suites will follow Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D9408 --- src/benchmarks/elementary/item_container.c | 10 +- src/bin/elementary/test.c | 8 +- src/bin/elementary/test_ui_item_container.c | 18 +-- src/lib/elementary/Efl_Ui.h | 2 +- ...i_item_container.c => efl_ui_collection.c} | 113 ++++++++++-------- ...item_container.eo => efl_ui_collection.eo} | 2 +- src/lib/elementary/efl_ui_grid.c | 2 +- src/lib/elementary/efl_ui_grid.eo | 2 +- src/lib/elementary/efl_ui_list.c | 2 +- src/lib/elementary/efl_ui_list.eo | 2 +- src/lib/elementary/meson.build | 4 +- src/tests/elementary/efl_ui_suite.c | 2 +- src/tests/elementary/efl_ui_test_grid.c | 2 +- .../elementary/efl_ui_test_grid_container.c | 4 +- .../elementary/efl_ui_test_item_container.c | 8 +- .../efl_ui_test_item_container_common.c | 20 ++-- .../elementary/efl_ui_test_list_container.c | 4 +- src/tests/elementary/spec/efl_ui_spec_suite.c | 2 +- .../spec/test_efl_ui_item_container_list.eo | 2 +- 19 files changed, 112 insertions(+), 97 deletions(-) rename src/lib/elementary/{efl_ui_item_container.c => efl_ui_collection.c} (80%) rename src/lib/elementary/{efl_ui_item_container.eo => efl_ui_collection.eo} (98%) diff --git a/src/benchmarks/elementary/item_container.c b/src/benchmarks/elementary/item_container.c index 5419756e09..982df1df81 100644 --- a/src/benchmarks/elementary/item_container.c +++ b/src/benchmarks/elementary/item_container.c @@ -10,11 +10,11 @@ _timer_tick(void *data, const Efl_Event *ev) { if (timer % 2 == 0) { - efl_ui_item_container_item_scroll(data, last, EINA_TRUE); + efl_ui_collection_item_scroll(data, last, EINA_TRUE); } else { - efl_ui_item_container_item_scroll(data, first, EINA_TRUE); + efl_ui_collection_item_scroll(data, first, EINA_TRUE); } timer--; @@ -51,7 +51,7 @@ _started_cb(void *data, const Efl_Event *ev EINA_UNUSED) static void _first_frame_cb(void *data, const Efl_Event *ev EINA_UNUSED) { - efl_ui_item_container_item_scroll(data, middle, EINA_FALSE); + efl_ui_collection_item_scroll(data, middle, EINA_FALSE); //give time to stabelize efl_add(EFL_LOOP_TIMER_CLASS, efl_main_loop_get(), efl_loop_timer_interval_set(efl_added, 15.0), @@ -72,8 +72,8 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) ); list = efl_new(EFL_UI_POSITION_MANAGER_LIST_CLASS); - item_container = efl_add(EFL_UI_ITEM_CONTAINER_CLASS, win, - efl_ui_item_container_position_manager_set(efl_added, list)); + item_container = efl_add(EFL_UI_COLLECTION_CLASS, win, + efl_ui_collection_position_manager_set(efl_added, list)); efl_content_set(win, item_container); printf("Building 5000 objects\n"); diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index 2062f18acb..79d56af40e 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -394,8 +394,8 @@ void test_ui_spotlight_scroll(void *data, Evas_Object *obj, void *event_info); void test_ui_relative_layout(void *data, Evas_Object *obj, void *event_info); void test_efl_ui_radio(void *data, Evas_Object *obj, void *event_info); -void test_efl_ui_item_container_list(void *data, Evas_Object *obj, void *event_info ); -void test_efl_ui_item_container_grid(void *data, Evas_Object *obj, void *event_info); +void test_efl_ui_collection_list(void *data, Evas_Object *obj, void *event_info ); +void test_efl_ui_collection_grid(void *data, Evas_Object *obj, void *event_info); static void _list_udpate(void); static Evas_Object *win, *tbx, *entry; // TODO: refactoring @@ -869,8 +869,8 @@ add_tests: ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Table (Linear API)", test_ui_table_linear); ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Table_Static", test_ui_table_static); ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Relative_Layout", test_ui_relative_layout); - ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Item_Container List", test_efl_ui_item_container_list); - ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Item_Container Grid", test_efl_ui_item_container_grid); + ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Collection List", test_efl_ui_collection_list); + ADD_TEST_EO(NULL, "Containers", "Efl.Ui.Collection Grid", test_efl_ui_collection_grid); //------------------------------// ADD_TEST_EO(NULL, "Events", "Event Refeed", test_events); diff --git a/src/bin/elementary/test_ui_item_container.c b/src/bin/elementary/test_ui_item_container.c index af82d7a6d9..97f3f0797b 100644 --- a/src/bin/elementary/test_ui_item_container.c +++ b/src/bin/elementary/test_ui_item_container.c @@ -20,7 +20,7 @@ _scroll_to_animated_cb(void *data, const Efl_Event *ev EINA_UNUSED) EINA_SAFETY_ON_NULL_RETURN(element_1154); - efl_ui_item_container_item_scroll(data, element_1154, EINA_TRUE); + efl_ui_collection_item_scroll(data, element_1154, EINA_TRUE); } static void @@ -30,7 +30,7 @@ _scroll_to_cb(void *data, const Efl_Event *ev EINA_UNUSED) EINA_SAFETY_ON_NULL_RETURN(element_10); - efl_ui_item_container_item_scroll(data, element_10, EINA_FALSE); + efl_ui_collection_item_scroll(data, element_10, EINA_FALSE); } static void @@ -54,7 +54,7 @@ _change_min_size_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) typedef struct { Efl_Ui_Check *v, *h; - Efl_Ui_Item_Container *c; + Efl_Ui_Collection *c; } Match_Content_Ctx; static void @@ -76,7 +76,7 @@ _widget_del_cb(void *data, const Efl_Event *ev EINA_UNUSED) } static void -_add_item(Efl_Ui_Item_Container *c) +_add_item(Efl_Ui_Collection *c) { Efl_Class *itc = efl_key_data_get(c, "__item_class"); char buf[PATH_MAX]; @@ -143,7 +143,7 @@ _add_thousend_items(void *data, const Efl_Event *ev EINA_UNUSED) static void _select_value_cb(void *data, const Efl_Event *ev) { - Efl_Ui_Item_Container *c = data; + Efl_Ui_Collection *c = data; efl_ui_select_mode_set(c, efl_ui_radio_group_selected_value_get(ev->object)); } @@ -160,8 +160,8 @@ void create_item_container_ui(Efl_Ui_Position_Manager_Entity *manager, const Efl tbl = efl_add(EFL_UI_TABLE_CLASS, win); efl_content_set(win, tbl); - item_container = o = efl_add(EFL_UI_ITEM_CONTAINER_CLASS, win, - efl_ui_item_container_position_manager_set(efl_added, manager)); + item_container = o = efl_add(EFL_UI_COLLECTION_CLASS, win, + efl_ui_collection_position_manager_set(efl_added, manager)); efl_key_data_set(o, "__item_class", item); efl_event_callback_add(o, EFL_EVENT_DEL, _widget_del_cb, ctx); for (int i = 0; i < 2000; ++i) @@ -257,14 +257,14 @@ void create_item_container_ui(Efl_Ui_Position_Manager_Entity *manager, const Efl efl_pack_end(bx, o); } -void test_efl_ui_item_container_grid(void *data EINA_UNUSED, +void test_efl_ui_collection_grid(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { create_item_container_ui(efl_new(EFL_UI_POSITION_MANAGER_GRID_CLASS), EFL_UI_GRID_DEFAULT_ITEM_CLASS, "Efl.Ui.Item_Container Grid"); } -void test_efl_ui_item_container_list(void *data EINA_UNUSED, +void test_efl_ui_collection_list(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index 0cf1d0fb5d..93d3a0a1fa 100644 --- a/src/lib/elementary/Efl_Ui.h +++ b/src/lib/elementary/Efl_Ui.h @@ -252,7 +252,7 @@ typedef Eo Efl_Ui_Spotlight_Indicator; # include # include # include -# include +# include # include # include # include diff --git a/src/lib/elementary/efl_ui_item_container.c b/src/lib/elementary/efl_ui_collection.c similarity index 80% rename from src/lib/elementary/efl_ui_item_container.c rename to src/lib/elementary/efl_ui_collection.c index e2a8a65b7d..564bb108e0 100644 --- a/src/lib/elementary/efl_ui_item_container.c +++ b/src/lib/elementary/efl_ui_collection.c @@ -145,10 +145,10 @@ _fast_accessor_remove(Fast_Accessor *accessor, const Eina_List *removed_elem) } -#define MY_CLASS EFL_UI_ITEM_CONTAINER_CLASS +#define MY_CLASS EFL_UI_COLLECTION_CLASS #define MY_DATA_GET(obj, pd) \ - Efl_Ui_Item_Container_Data *pd = efl_data_scope_get(obj, MY_CLASS); + Efl_Ui_Collection_Data *pd = efl_data_scope_get(obj, MY_CLASS); typedef struct { Efl_Ui_Scroll_Manager *smanager; @@ -166,13 +166,13 @@ typedef struct { Fast_Accessor obj_accessor; Fast_Accessor size_accessor; Efl_Gfx_Entity *sizer; -} Efl_Ui_Item_Container_Data; +} Efl_Ui_Collection_Data; -static Eina_Bool register_item(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Item *item); -static Eina_Bool unregister_item(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Item *item); +static Eina_Bool register_item(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Item *item); +static Eina_Bool unregister_item(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Item *item); static void -flush_min_size(Eo *obj, Efl_Ui_Item_Container_Data *pd) +flush_min_size(Eo *obj, Efl_Ui_Collection_Data *pd) { Eina_Size2D tmp = pd->content_min_size; @@ -186,7 +186,7 @@ flush_min_size(Eo *obj, Efl_Ui_Item_Container_Data *pd) } static int -clamp_index(Efl_Ui_Item_Container_Data *pd, int index) +clamp_index(Efl_Ui_Collection_Data *pd, int index) { if (index < ((int)eina_list_count(pd->items)) * -1) return -1; @@ -196,7 +196,7 @@ clamp_index(Efl_Ui_Item_Container_Data *pd, int index) } static int -index_adjust(Efl_Ui_Item_Container_Data *pd, int index) +index_adjust(Efl_Ui_Collection_Data *pd, int index) { int c = eina_list_count(pd->items); if (index < c * -1) @@ -240,7 +240,7 @@ EFL_CALLBACKS_ARRAY_DEFINE(pan_events_cb, static void _item_scroll_internal(Eo *obj EINA_UNUSED, - Efl_Ui_Item_Container_Data *pd, + Efl_Ui_Collection_Data *pd, Efl_Ui_Item *item, double align, Eina_Bool anim) @@ -262,25 +262,25 @@ _item_scroll_internal(Eo *obj EINA_UNUSED, } EOLIAN static void -_efl_ui_item_container_item_scroll(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Item *item, Eina_Bool animation) +_efl_ui_collection_item_scroll(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Item *item, Eina_Bool animation) { _item_scroll_internal(obj, pd, item, -1.0, animation); } EOLIAN static void -_efl_ui_item_container_item_scroll_align(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Item *item, double align, Eina_Bool animation) +_efl_ui_collection_item_scroll_align(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Item *item, double align, Eina_Bool animation) { _item_scroll_internal(obj, pd, item, align, animation); } EOLIAN static Efl_Ui_Item* -_efl_ui_item_container_last_selected_item_get(const Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_last_selected_item_get(const Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { return eina_list_last_data_get(pd->selected); } EOLIAN static Eina_Iterator* -_efl_ui_item_container_selected_items_get(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_selected_items_get(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { return eina_list_iterator_new(pd->selected); } @@ -303,7 +303,7 @@ _size_accessor_get_at(Fast_Accessor *accessor, unsigned int idx, void **data) EOLIAN static Efl_Object* -_efl_ui_item_container_efl_object_constructor(Eo *obj, Efl_Ui_Item_Container_Data *pd EINA_UNUSED) +_efl_ui_collection_efl_object_constructor(Eo *obj, Efl_Ui_Collection_Data *pd EINA_UNUSED) { Eo *o; @@ -336,7 +336,7 @@ _efl_ui_item_container_efl_object_constructor(Eo *obj, Efl_Ui_Item_Container_Dat } EOLIAN static Efl_Object* -_efl_ui_item_container_efl_object_finalize(Eo *obj, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_efl_object_finalize(Eo *obj, Efl_Ui_Collection_Data *pd) { EINA_SAFETY_ON_NULL_RETURN_VAL(pd->pos_man, NULL); @@ -344,7 +344,7 @@ _efl_ui_item_container_efl_object_finalize(Eo *obj, Efl_Ui_Item_Container_Data * } EOLIAN static Eina_Error -_efl_ui_item_container_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Collection_Data *pd) { Eina_Error res; @@ -358,13 +358,13 @@ _efl_ui_item_container_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Item_Container_ } EOLIAN static void -_efl_ui_item_container_efl_object_destructor(Eo *obj, Efl_Ui_Item_Container_Data *pd EINA_UNUSED) +_efl_ui_collection_efl_object_destructor(Eo *obj, Efl_Ui_Collection_Data *pd EINA_UNUSED) { efl_destructor(efl_super(obj, MY_CLASS)); } static void -deselect_all(Efl_Ui_Item_Container_Data *pd) +deselect_all(Efl_Ui_Collection_Data *pd) { while(pd->selected) { @@ -375,9 +375,9 @@ deselect_all(Efl_Ui_Item_Container_Data *pd) } EOLIAN static void -_efl_ui_item_container_efl_object_invalidate(Eo *obj, Efl_Ui_Item_Container_Data *pd EINA_UNUSED) +_efl_ui_collection_efl_object_invalidate(Eo *obj, Efl_Ui_Collection_Data *pd EINA_UNUSED) { - efl_ui_item_container_position_manager_set(obj, NULL); + efl_ui_collection_position_manager_set(obj, NULL); deselect_all(pd); @@ -388,19 +388,19 @@ _efl_ui_item_container_efl_object_invalidate(Eo *obj, Efl_Ui_Item_Container_Data } EOLIAN static Eina_Iterator* -_efl_ui_item_container_efl_container_content_iterate(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_efl_container_content_iterate(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { return eina_list_iterator_new(pd->items); } EOLIAN static int -_efl_ui_item_container_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { return eina_list_count(pd->items); } EOLIAN static void -_efl_ui_item_container_efl_ui_layout_orientable_orientation_set(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Layout_Orientation dir) +_efl_ui_collection_efl_ui_layout_orientable_orientation_set(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, Efl_Ui_Layout_Orientation dir) { if (pd->dir == dir) return; @@ -410,13 +410,13 @@ _efl_ui_item_container_efl_ui_layout_orientable_orientation_set(Eo *obj EINA_UNU } EOLIAN static Efl_Ui_Layout_Orientation -_efl_ui_item_container_efl_ui_layout_orientable_orientation_get(const Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_efl_ui_layout_orientable_orientation_get(const Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { return pd->dir; } EOLIAN static void -_efl_ui_item_container_efl_ui_scrollable_interactive_match_content_set(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd, Eina_Bool w, Eina_Bool h) +_efl_ui_collection_efl_ui_scrollable_interactive_match_content_set(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, Eina_Bool w, Eina_Bool h) { if (pd->match_content.w == w && pd->match_content.h == h) return; @@ -429,7 +429,7 @@ _efl_ui_item_container_efl_ui_scrollable_interactive_match_content_set(Eo *obj E } EOLIAN static void -_efl_ui_item_container_efl_ui_multi_selectable_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Select_Mode mode) +_efl_ui_collection_efl_ui_multi_selectable_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, Efl_Ui_Select_Mode mode) { pd->mode = mode; if ((mode == EFL_UI_SELECT_MODE_SINGLE_ALWAYS || mode == EFL_UI_SELECT_MODE_SINGLE) && @@ -448,7 +448,7 @@ _efl_ui_item_container_efl_ui_multi_selectable_select_mode_set(Eo *obj EINA_UNUS } EOLIAN static Efl_Ui_Select_Mode -_efl_ui_item_container_efl_ui_multi_selectable_select_mode_get(const Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_efl_ui_multi_selectable_select_mode_get(const Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { return pd->mode; } @@ -538,7 +538,7 @@ EFL_CALLBACKS_ARRAY_DEFINE(active_item, ) static Eina_Bool -register_item(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Item *item) +register_item(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Item *item) { EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(item, EFL_UI_ITEM_CLASS), EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(!!eina_list_data_find(pd->items, item), EINA_FALSE); @@ -555,7 +555,7 @@ register_item(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Item *item) } static Eina_Bool -unregister_item(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Item *item) +unregister_item(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Item *item) { Eina_List *elem = eina_list_data_find_list(pd->items, item); if (!elem) @@ -576,12 +576,13 @@ unregister_item(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Item *item) pd->selected = eina_list_remove(pd->selected, item); efl_event_callback_array_del(item, active_item(), obj); efl_ui_position_manager_entity_item_removed(pd->pos_man, id, item); + efl_ui_item_container_set(item, NULL); return EINA_TRUE; } static void -update_pos_man(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd, Efl_Gfx_Entity *subobj) +update_pos_man(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, Efl_Gfx_Entity *subobj) { int id = eina_list_data_idx(pd->items, subobj); if (id == 0) @@ -595,7 +596,7 @@ update_pos_man(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd, Efl_Gfx_Enti } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_pack_clear(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_efl_pack_pack_clear(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { while(pd->items) { @@ -606,7 +607,7 @@ _efl_ui_item_container_efl_pack_pack_clear(Eo *obj EINA_UNUSED, Efl_Ui_Item_Cont } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_unpack_all(Eo *obj, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_efl_pack_unpack_all(Eo *obj, Efl_Ui_Collection_Data *pd) { while(pd->items) { @@ -617,7 +618,7 @@ _efl_ui_item_container_efl_pack_unpack_all(Eo *obj, Efl_Ui_Item_Container_Data * } EOLIAN static Efl_Gfx_Entity* -_efl_ui_item_container_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Item_Container_Data *pd, int index) +_efl_ui_collection_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Collection_Data *pd, int index) { Efl_Ui_Item *it = eina_list_nth(pd->items, index_adjust(pd, index)); @@ -630,21 +631,21 @@ _efl_ui_item_container_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Item_Conta } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_unpack(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Gfx_Entity *subobj) +_efl_ui_collection_efl_pack_unpack(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Gfx_Entity *subobj) { return unregister_item(obj, pd, subobj); } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_pack(Eo *obj, Efl_Ui_Item_Container_Data *pd EINA_UNUSED, Efl_Gfx_Entity *subobj) +_efl_ui_collection_efl_pack_pack(Eo *obj, Efl_Ui_Collection_Data *pd EINA_UNUSED, Efl_Gfx_Entity *subobj) { return efl_pack_end(obj, subobj); } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Gfx_Entity *subobj) +_efl_ui_collection_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Gfx_Entity *subobj) { if (!register_item(obj, pd, subobj)) return EINA_FALSE; @@ -655,7 +656,7 @@ _efl_ui_item_container_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Item_Container_D EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Gfx_Entity *subobj) +_efl_ui_collection_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Gfx_Entity *subobj) { if (!register_item(obj, pd, subobj)) return EINA_FALSE; @@ -665,7 +666,7 @@ _efl_ui_item_container_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Item_Container } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) +_efl_ui_collection_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) { Eina_List *subobj_list = eina_list_data_find_list(pd->items, existing); EINA_SAFETY_ON_NULL_RETURN_VAL(subobj_list, EINA_FALSE); @@ -678,7 +679,7 @@ _efl_ui_item_container_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Item_Containe } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) +_efl_ui_collection_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) { Eina_List *subobj_list = eina_list_data_find_list(pd->items, existing); EINA_SAFETY_ON_NULL_RETURN_VAL(subobj_list, EINA_FALSE); @@ -691,7 +692,7 @@ _efl_ui_item_container_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Item_Container } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Gfx_Entity *subobj, int index) +_efl_ui_collection_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Gfx_Entity *subobj, int index) { Eina_List *subobj_list; int clamp; @@ -713,13 +714,13 @@ _efl_ui_item_container_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Item_Container_Da } EOLIAN static int -_efl_ui_item_container_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd, const Efl_Gfx_Entity *subobj) +_efl_ui_collection_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, const Efl_Gfx_Entity *subobj) { return eina_list_data_idx(pd->items, (void*)subobj); } EOLIAN static Efl_Gfx_Entity* -_efl_ui_item_container_efl_pack_linear_pack_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd, int index) +_efl_ui_collection_efl_pack_linear_pack_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, int index) { return eina_list_nth(pd->items, index_adjust(pd, index)); } @@ -750,7 +751,7 @@ EFL_CALLBACKS_ARRAY_DEFINE(pos_manager_cbs, ) EOLIAN static void -_efl_ui_item_container_position_manager_set(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Position_Manager_Entity *layouter) +_efl_ui_collection_position_manager_set(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Position_Manager_Entity *layouter) { if (layouter) EINA_SAFETY_ON_FALSE_RETURN(efl_isa(layouter, EFL_UI_POSITION_MANAGER_ENTITY_INTERFACE)); @@ -773,32 +774,46 @@ _efl_ui_item_container_position_manager_set(Eo *obj, Efl_Ui_Item_Container_Data } EOLIAN static Efl_Ui_Position_Manager_Entity* -_efl_ui_item_container_position_manager_get(const Eo *obj EINA_UNUSED, Efl_Ui_Item_Container_Data *pd) +_efl_ui_collection_position_manager_get(const Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { return pd->pos_man; } EOLIAN static Efl_Ui_Focus_Manager* -_efl_ui_item_container_efl_ui_widget_focus_manager_focus_manager_create(Eo *obj, Efl_Ui_Item_Container_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root) +_efl_ui_collection_efl_ui_widget_focus_manager_focus_manager_create(Eo *obj, Efl_Ui_Collection_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root) { return efl_add(EFL_UI_FOCUS_MANAGER_CALC_CLASS, obj, efl_ui_focus_manager_root_set(efl_added, root)); } EOLIAN static Eina_Bool -_efl_ui_item_container_efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Item_Container_Data *pd EINA_UNUSED, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State *configured_state, Efl_Ui_Widget *redirect EINA_UNUSED) +_efl_ui_collection_efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Collection_Data *pd EINA_UNUSED, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State *configured_state, Efl_Ui_Widget *redirect EINA_UNUSED) { return efl_ui_widget_focus_state_apply(efl_super(obj, MY_CLASS), current_state, configured_state, obj); } EOLIAN static Efl_Ui_Focus_Object* -_efl_ui_item_container_efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Item_Container_Data *pd, Efl_Ui_Focus_Direction direction) +_efl_ui_collection_efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Focus_Direction direction) { Eo *new_obj, *focus; Eina_Size2D step; - new_obj = efl_ui_focus_manager_move(efl_super(obj, MY_CLASS), direction); focus = efl_ui_focus_manager_focus_get(obj); + if (focus) + { + /* if this is outside the viewport, then we must bring that in first */ + Eina_Rect viewport; + Eina_Rect element; + element = efl_gfx_entity_geometry_get(focus); + viewport = efl_gfx_entity_geometry_get(obj); + if (!eina_spans_intersect(element.x, element.x+element.w, viewport.x, viewport.x+viewport.w) && + !eina_spans_intersect(element.y, element.y+element.h, viewport.y, viewport.y+viewport.y)) + { + efl_ui_scrollable_scroll(obj, element, EINA_TRUE); + return focus; + } + } + new_obj = efl_ui_focus_manager_move(efl_super(obj, MY_CLASS), direction); step = efl_gfx_hint_size_min_get(focus); if (!new_obj) { @@ -855,4 +870,4 @@ _efl_ui_item_container_efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Item_Container_ return new_obj; } -#include "efl_ui_item_container.eo.c" +#include "efl_ui_collection.eo.c" diff --git a/src/lib/elementary/efl_ui_item_container.eo b/src/lib/elementary/efl_ui_collection.eo similarity index 98% rename from src/lib/elementary/efl_ui_item_container.eo rename to src/lib/elementary/efl_ui_collection.eo index 962eb00d19..26f3bb3bc0 100644 --- a/src/lib/elementary/efl_ui_item_container.eo +++ b/src/lib/elementary/efl_ui_collection.eo @@ -1,4 +1,4 @@ -class @beta Efl.Ui.Item_Container extends Efl.Ui.Layout_Base implements +class @beta Efl.Ui.Collection extends Efl.Ui.Layout_Base implements Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar, Efl.Pack_Linear, Efl.Pack_Layout, diff --git a/src/lib/elementary/efl_ui_grid.c b/src/lib/elementary/efl_ui_grid.c index a82c0a77dd..709765373c 100644 --- a/src/lib/elementary/efl_ui_grid.c +++ b/src/lib/elementary/efl_ui_grid.c @@ -24,7 +24,7 @@ _efl_ui_grid_efl_object_constructor(Eo *obj, Efl_Ui_Grid_Data *pd EINA_UNUSED) { obj = efl_constructor(efl_super(obj, MY_CLASS)); - efl_ui_item_container_position_manager_set(obj, efl_new(EFL_UI_POSITION_MANAGER_GRID_CLASS)); + efl_ui_collection_position_manager_set(obj, efl_new(EFL_UI_POSITION_MANAGER_GRID_CLASS)); return obj; } diff --git a/src/lib/elementary/efl_ui_grid.eo b/src/lib/elementary/efl_ui_grid.eo index 5ae359b727..48221f8f72 100644 --- a/src/lib/elementary/efl_ui_grid.eo +++ b/src/lib/elementary/efl_ui_grid.eo @@ -1,4 +1,4 @@ -class @beta Efl.Ui.Grid extends Efl.Ui.Item_Container +class @beta Efl.Ui.Grid extends Efl.Ui.Collection { [[Simple grid widget with Pack interface.]] diff --git a/src/lib/elementary/efl_ui_list.c b/src/lib/elementary/efl_ui_list.c index eb842e137a..9a4cc7fb16 100644 --- a/src/lib/elementary/efl_ui_list.c +++ b/src/lib/elementary/efl_ui_list.c @@ -24,7 +24,7 @@ _efl_ui_list_efl_object_constructor(Eo *obj, Efl_Ui_List_Data *pd EINA_UNUSED) { obj = efl_constructor(efl_super(obj, MY_CLASS)); - efl_ui_item_container_position_manager_set(obj, efl_new(EFL_UI_POSITION_MANAGER_LIST_CLASS)); + efl_ui_collection_position_manager_set(obj, efl_new(EFL_UI_POSITION_MANAGER_LIST_CLASS)); return obj; } diff --git a/src/lib/elementary/efl_ui_list.eo b/src/lib/elementary/efl_ui_list.eo index 6254e16a18..94e90f760d 100644 --- a/src/lib/elementary/efl_ui_list.eo +++ b/src/lib/elementary/efl_ui_list.eo @@ -1,4 +1,4 @@ -class @beta Efl.Ui.List extends Efl.Ui.Item_Container +class @beta Efl.Ui.List extends Efl.Ui.Collection { [[Simple list widget with Pack interface.]] implements { diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 07d85244a1..72226f5cf3 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -179,7 +179,7 @@ pub_eo_files = [ 'efl_ui_clickable.eo', 'efl_ui_clickable_util.eo', 'efl_ui_format.eo', - 'efl_ui_item_container.eo', + 'efl_ui_collection.eo', 'efl_ui_position_manager_entity.eo', 'efl_ui_position_manager_list.eo', 'efl_ui_position_manager_grid.eo', @@ -934,7 +934,7 @@ elementary_src = [ 'efl_ui_clickable_util.c', 'efl_ui_format.c', 'efl_ui_scroll_util.c', - 'efl_ui_item_container.c', + 'efl_ui_collection.c', 'efl_ui_position_manager_entity.c', 'efl_ui_position_manager_list.c', 'efl_ui_position_manager_grid.c', diff --git a/src/tests/elementary/efl_ui_suite.c b/src/tests/elementary/efl_ui_suite.c index bc8a1c6902..3478095936 100644 --- a/src/tests/elementary/efl_ui_suite.c +++ b/src/tests/elementary/efl_ui_suite.c @@ -32,7 +32,7 @@ static const Efl_Test_Case etc[] = { { "efl_ui_win", efl_ui_test_win }, { "efl_ui_spin", efl_ui_test_spin }, { "efl_ui_spin_button", efl_ui_test_spin_button }, - { "efl_ui_item_container", efl_ui_test_item_container }, + { "efl_ui_collection", efl_ui_test_item_container }, { "efl_ui_grid_container", efl_ui_test_grid_container }, { "efl_ui_list_container", efl_ui_test_list_container }, { NULL, NULL } diff --git a/src/tests/elementary/efl_ui_test_grid.c b/src/tests/elementary/efl_ui_test_grid.c index a8d4ea0433..9eaa096ad0 100644 --- a/src/tests/elementary/efl_ui_test_grid.c +++ b/src/tests/elementary/efl_ui_test_grid.c @@ -289,7 +289,7 @@ EFL_START_TEST(efl_ui_grid_scroll) efl_event_callback_array_add(grid, grid_scroll_callbacks(), timer); /*FIXME: efl_ui_scroll_interface only emit scroll event when animation exist */ - efl_ui_item_container_item_scroll(grid, item, EINA_TRUE); + efl_ui_collection_item_scroll(grid, item, EINA_TRUE); ecore_main_loop_begin(); } EFL_END_TEST diff --git a/src/tests/elementary/efl_ui_test_grid_container.c b/src/tests/elementary/efl_ui_test_grid_container.c index 61776237cb..a8e94b05b4 100644 --- a/src/tests/elementary/efl_ui_test_grid_container.c +++ b/src/tests/elementary/efl_ui_test_grid_container.c @@ -14,8 +14,8 @@ item_container_setup() Eo * list = efl_new(EFL_UI_POSITION_MANAGER_GRID_CLASS); position_manager = efl_new(EFL_UI_POSITION_MANAGER_GRID_CLASS); win = win_add(); - item_container = efl_add(EFL_UI_ITEM_CONTAINER_CLASS, win, - efl_ui_item_container_position_manager_set(efl_added, list)); + item_container = efl_add(EFL_UI_COLLECTION_CLASS, win, + efl_ui_collection_position_manager_set(efl_added, list)); } diff --git a/src/tests/elementary/efl_ui_test_item_container.c b/src/tests/elementary/efl_ui_test_item_container.c index 9b3de482b3..349f73fee0 100644 --- a/src/tests/elementary/efl_ui_test_item_container.c +++ b/src/tests/elementary/efl_ui_test_item_container.c @@ -28,18 +28,18 @@ EFL_START_TEST(finalizer_check) Eo *o; EXPECT_ERROR_START; - ck_assert_ptr_eq(efl_add(EFL_UI_ITEM_CONTAINER_CLASS, win), NULL); + ck_assert_ptr_eq(efl_add(EFL_UI_COLLECTION_CLASS, win), NULL); EXPECT_ERROR_END; EXPECT_ERROR_START; - ck_assert_ptr_eq(efl_add(EFL_UI_ITEM_CONTAINER_CLASS, win, efl_ui_item_container_position_manager_set(efl_added, random_obj)), NULL); + ck_assert_ptr_eq(efl_add(EFL_UI_COLLECTION_CLASS, win, efl_ui_collection_position_manager_set(efl_added, random_obj)), NULL); EXPECT_ERROR_END; - o = efl_add(EFL_UI_ITEM_CONTAINER_CLASS, win, efl_ui_item_container_position_manager_set(efl_added, grid)); + o = efl_add(EFL_UI_COLLECTION_CLASS, win, efl_ui_collection_position_manager_set(efl_added, grid)); ck_assert_ptr_ne(o, NULL); ck_assert_ptr_eq(efl_parent_get(grid), o); efl_del(o); - o = efl_add(EFL_UI_ITEM_CONTAINER_CLASS, win, efl_ui_item_container_position_manager_set(efl_added, list)); + o = efl_add(EFL_UI_COLLECTION_CLASS, win, efl_ui_collection_position_manager_set(efl_added, list)); ck_assert_ptr_ne(o, NULL); ck_assert_ptr_eq(efl_parent_get(list), o); efl_del(o); diff --git a/src/tests/elementary/efl_ui_test_item_container_common.c b/src/tests/elementary/efl_ui_test_item_container_common.c index e97f3e7971..3a7cad3678 100644 --- a/src/tests/elementary/efl_ui_test_item_container_common.c +++ b/src/tests/elementary/efl_ui_test_item_container_common.c @@ -67,8 +67,8 @@ EFL_START_TEST(test_multi_select) unselected = NULL; ck_assert_int_eq(efl_ui_item_selected_get(efl_pack_content_get(item_container, 0)), EINA_TRUE); ck_assert_int_eq(efl_ui_item_selected_get(efl_pack_content_get(item_container, 2)), EINA_TRUE); - ck_assert_ptr_eq(efl_ui_item_container_last_selected_item_get(item_container), efl_pack_content_get(item_container, 2)); - _iterator_to_array(&arr_selected, efl_ui_item_container_selected_items_get(item_container)); + ck_assert_ptr_eq(efl_ui_collection_last_selected_item_get(item_container), efl_pack_content_get(item_container, 2)); + _iterator_to_array(&arr_selected, efl_ui_collection_selected_items_get(item_container)); ck_assert_int_eq(eina_array_count(arr_selected), 2); ck_assert_ptr_eq(eina_array_data_get(arr_selected, 0), efl_pack_content_get(item_container, 0)); ck_assert_ptr_eq(eina_array_data_get(arr_selected, 1), efl_pack_content_get(item_container, 2)); @@ -109,8 +109,8 @@ EFL_START_TEST(test_multi_select_removal) selected = NULL; unselected = NULL; - ck_assert_ptr_eq(efl_ui_item_container_last_selected_item_get(item_container), NULL); - _iterator_to_array(&arr_selected, efl_ui_item_container_selected_items_get(item_container)); + ck_assert_ptr_eq(efl_ui_collection_last_selected_item_get(item_container), NULL); + _iterator_to_array(&arr_selected, efl_ui_collection_selected_items_get(item_container)); ck_assert_int_eq(eina_array_count(arr_selected), 0); efl_event_callback_del(item_container, EFL_UI_EVENT_ITEM_SELECTED, _set_pointer_quit, &selected); efl_event_callback_del(item_container, EFL_UI_EVENT_ITEM_UNSELECTED, _set_pointer_quit, &unselected); @@ -140,8 +140,8 @@ EFL_START_TEST(test_single_select) unselected = NULL; ck_assert_int_eq(efl_ui_item_selected_get(efl_pack_content_get(item_container, 0)), EINA_FALSE); ck_assert_int_eq(efl_ui_item_selected_get(efl_pack_content_get(item_container, 2)), EINA_TRUE); - ck_assert_ptr_eq(efl_ui_item_container_last_selected_item_get(item_container), efl_pack_content_get(item_container, 2)); - _iterator_to_array(&arr_selected, efl_ui_item_container_selected_items_get(item_container)); + ck_assert_ptr_eq(efl_ui_collection_last_selected_item_get(item_container), efl_pack_content_get(item_container, 2)); + _iterator_to_array(&arr_selected, efl_ui_collection_selected_items_get(item_container)); ck_assert_int_eq(eina_array_count(arr_selected), 1); ck_assert_ptr_eq(eina_array_data_get(arr_selected, 0), efl_pack_content_get(item_container, 2)); @@ -183,8 +183,8 @@ EFL_START_TEST(test_single_select_always) unselected = NULL; ck_assert_int_eq(efl_ui_item_selected_get(efl_pack_content_get(item_container, 0)), EINA_FALSE); ck_assert_int_eq(efl_ui_item_selected_get(efl_pack_content_get(item_container, 2)), EINA_TRUE); - ck_assert_ptr_eq(efl_ui_item_container_last_selected_item_get(item_container), efl_pack_content_get(item_container, 2)); - _iterator_to_array(&arr_selected, efl_ui_item_container_selected_items_get(item_container)); + ck_assert_ptr_eq(efl_ui_collection_last_selected_item_get(item_container), efl_pack_content_get(item_container, 2)); + _iterator_to_array(&arr_selected, efl_ui_collection_selected_items_get(item_container)); ck_assert_int_eq(eina_array_count(arr_selected), 1); ck_assert_ptr_eq(eina_array_data_get(arr_selected, 0), efl_pack_content_get(item_container, 2)); efl_event_callback_del(item_container, EFL_UI_EVENT_ITEM_SELECTED, _set_pointer_quit, &selected); @@ -215,8 +215,8 @@ EFL_START_TEST(test_none_select) unselected = NULL; ck_assert_int_eq(efl_ui_item_selected_get(efl_pack_content_get(item_container, 0)), EINA_FALSE); ck_assert_int_eq(efl_ui_item_selected_get(efl_pack_content_get(item_container, 2)), EINA_FALSE); - ck_assert_ptr_eq(efl_ui_item_container_last_selected_item_get(item_container), NULL); - _iterator_to_array(&arr_selected, efl_ui_item_container_selected_items_get(item_container)); + ck_assert_ptr_eq(efl_ui_collection_last_selected_item_get(item_container), NULL); + _iterator_to_array(&arr_selected, efl_ui_collection_selected_items_get(item_container)); ck_assert_int_eq(eina_array_count(arr_selected), 0); efl_event_callback_del(item_container, EFL_UI_EVENT_ITEM_SELECTED, _set_pointer_quit, &selected); efl_event_callback_del(item_container, EFL_UI_EVENT_ITEM_UNSELECTED, _set_pointer_quit, &unselected); diff --git a/src/tests/elementary/efl_ui_test_list_container.c b/src/tests/elementary/efl_ui_test_list_container.c index 74a41bacaa..6edad08126 100644 --- a/src/tests/elementary/efl_ui_test_list_container.c +++ b/src/tests/elementary/efl_ui_test_list_container.c @@ -14,8 +14,8 @@ item_container_setup() Eo * list = efl_new(EFL_UI_POSITION_MANAGER_LIST_CLASS); position_manager = efl_new(EFL_UI_POSITION_MANAGER_LIST_CLASS); win = win_add(); - item_container = efl_add(EFL_UI_ITEM_CONTAINER_CLASS, win, - efl_ui_item_container_position_manager_set(efl_added, list)); + item_container = efl_add(EFL_UI_COLLECTION_CLASS, win, + efl_ui_collection_position_manager_set(efl_added, list)); } diff --git a/src/tests/elementary/spec/efl_ui_spec_suite.c b/src/tests/elementary/spec/efl_ui_spec_suite.c index bf26623a08..8316e36bc7 100644 --- a/src/tests/elementary/spec/efl_ui_spec_suite.c +++ b/src/tests/elementary/spec/efl_ui_spec_suite.c @@ -13,7 +13,7 @@ EOLIAN static Efl_Object* _test_efl_ui_item_container_list_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED) { efl_constructor(efl_super(obj, TEST_EFL_UI_ITEM_CONTAINER_LIST_CLASS)); - efl_ui_item_container_position_manager_set(obj, efl_new(EFL_UI_POSITION_MANAGER_LIST_CLASS)); + efl_ui_collection_position_manager_set(obj, efl_new(EFL_UI_POSITION_MANAGER_LIST_CLASS)); return obj; } diff --git a/src/tests/elementary/spec/test_efl_ui_item_container_list.eo b/src/tests/elementary/spec/test_efl_ui_item_container_list.eo index d61bc0fcaa..e1cb3e9884 100644 --- a/src/tests/elementary/spec/test_efl_ui_item_container_list.eo +++ b/src/tests/elementary/spec/test_efl_ui_item_container_list.eo @@ -1,4 +1,4 @@ -class @beta Test.Efl.Ui.Item_Container_List extends Efl.Ui.Item_Container { +class @beta Test.Efl.Ui.Item_Container_List extends Efl.Ui.Collection { data: null; implements { Efl.Object.constructor;