rename efl_ui_item_container -> efl_ui_collection
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Wed, 24 Jul 2019 15:57:01 +0000 (17:57 +0200)
committerWooHyun Jung <wh0705.jung@samsung.com>
Mon, 5 Aug 2019 01:47:33 +0000 (10:47 +0900)
this is the first rename of the main widget, the renames of the test
suites will follow

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9408

19 files changed:
src/benchmarks/elementary/item_container.c
src/bin/elementary/test.c
src/bin/elementary/test_ui_item_container.c
src/lib/elementary/Efl_Ui.h
src/lib/elementary/efl_ui_collection.c [moved from src/lib/elementary/efl_ui_item_container.c with 80% similarity]
src/lib/elementary/efl_ui_collection.eo [moved from src/lib/elementary/efl_ui_item_container.eo with 98% similarity]
src/lib/elementary/efl_ui_grid.c
src/lib/elementary/efl_ui_grid.eo
src/lib/elementary/efl_ui_list.c
src/lib/elementary/efl_ui_list.eo
src/lib/elementary/meson.build
src/tests/elementary/efl_ui_suite.c
src/tests/elementary/efl_ui_test_grid.c
src/tests/elementary/efl_ui_test_grid_container.c
src/tests/elementary/efl_ui_test_item_container.c
src/tests/elementary/efl_ui_test_item_container_common.c
src/tests/elementary/efl_ui_test_list_container.c
src/tests/elementary/spec/efl_ui_spec_suite.c
src/tests/elementary/spec/test_efl_ui_item_container_list.eo

index 5419756..982df1d 100644 (file)
@@ -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");
index 2062f18..79d56af 100644 (file)
@@ -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);
index af82d7a..97f3f07 100644 (file)
@@ -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)
 {
index c7597e7..8502154 100644 (file)
@@ -254,7 +254,7 @@ typedef Eo Efl_Ui_Spotlight_Indicator;
 # include <efl_ui_slider.eo.h>
 # include <efl_ui_item.eo.h>
 # include <efl_ui_position_manager_entity.eo.h>
-# include <efl_ui_item_container.eo.h>
+# include <efl_ui_collection.eo.h>
 # include <efl_ui_position_manager_list.eo.h>
 # include <efl_ui_position_manager_grid.eo.h>
 # include <efl_ui_list_default_item.eo.h>
similarity index 80%
rename from src/lib/elementary/efl_ui_item_container.c
rename to src/lib/elementary/efl_ui_collection.c
index e2a8a65..564bb10 100644 (file)
@@ -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"
similarity index 98%
rename from src/lib/elementary/efl_ui_item_container.eo
rename to src/lib/elementary/efl_ui_collection.eo
index 962eb00..26f3bb3 100644 (file)
@@ -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,
index a82c0a7..7097653 100644 (file)
@@ -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;
 }
index 5ae359b..48221f8 100644 (file)
@@ -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.]]
 
index eb842e1..9a4cc7f 100644 (file)
@@ -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;
 }
index 6254e16..94e90f7 100644 (file)
@@ -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 {
index 8e6be0f..9596b9d 100644 (file)
@@ -184,7 +184,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',
@@ -1000,7 +1000,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',
index bc8a1c6..3478095 100644 (file)
@@ -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 }
index a8d4ea0..9eaa096 100644 (file)
@@ -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
index 6177623..a8e94b0 100644 (file)
@@ -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));
 
 }
 
index 9b3de48..349f73f 100644 (file)
@@ -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);
index e97f3e7..3a7cad3 100644 (file)
@@ -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);
index 74a41ba..6edad08 100644 (file)
@@ -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));
 
 }
 
index bf26623..8316e36 100644 (file)
@@ -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;
 }
index d61bc0f..e1cb3e9 100644 (file)
@@ -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;