Introduce Efl.Ui.Item_Container
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Sat, 29 Jun 2019 14:19:08 +0000 (16:19 +0200)
committerWooHyun Jung <wh0705.jung@samsung.com>
Mon, 5 Aug 2019 01:47:21 +0000 (10:47 +0900)
commit0f25061d68a5c8917e36bbfc60b103cc33ab1043
treea70054f508e7c8e3dba3edf0e78def35a8d66f23
parent221bd465ffac37d6368a224e020d153b03f13d02
Introduce Efl.Ui.Item_Container

this is a new widget which aims to replace Efl.Ui.Grid / Efl.Ui.List.
The widget is split up in a widget and a interface for item placement.

Efl_Ui_Item_Position_Manager: The interface contains API which is used
by the Item_Container to place the items, there is also a set of common
tests which tests for the casual tripping wires, and ensures that the
events are emitted in the correct moments (the later part still can be
improved)

Efl_Ui_Item_Container: The widget itself, it contains the API for the
enduser to add Items to the widget, it handles the different modes for
selection type and emits the events for selection changes. The pack API
is conform with the spec unit test. An additional set of tests is
defined which should be able to be run on every widget with a specific
position_manager beeing set.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9285
31 files changed:
data/elementary/themes/default.edc
data/elementary/themes/edc/efl/item_container.edc [new file with mode: 0644]
src/benchmarks/elementary/item_container.c [new file with mode: 0644]
src/benchmarks/elementary/meson.build
src/bin/elementary/meson.build
src/bin/elementary/test.c
src/bin/elementary/test_ui_item_container.c [new file with mode: 0644]
src/lib/elementary/Efl_Ui.h
src/lib/elementary/efl_ui_grid_position_manager.c [new file with mode: 0644]
src/lib/elementary/efl_ui_grid_position_manager.eo [new file with mode: 0644]
src/lib/elementary/efl_ui_item_container.c [new file with mode: 0644]
src/lib/elementary/efl_ui_item_container.eo [new file with mode: 0644]
src/lib/elementary/efl_ui_item_position_manager.c [new file with mode: 0644]
src/lib/elementary/efl_ui_item_position_manager.eo [new file with mode: 0644]
src/lib/elementary/efl_ui_list_position_manager.c [new file with mode: 0644]
src/lib/elementary/efl_ui_list_position_manager.eo [new file with mode: 0644]
src/lib/elementary/meson.build
src/tests/elementary/efl_ui_suite.c
src/tests/elementary/efl_ui_suite.h
src/tests/elementary/efl_ui_test_grid_container.c [new file with mode: 0644]
src/tests/elementary/efl_ui_test_item_container.c [new file with mode: 0644]
src/tests/elementary/efl_ui_test_item_container_common.c [new file with mode: 0644]
src/tests/elementary/efl_ui_test_item_container_common.h [new file with mode: 0644]
src/tests/elementary/efl_ui_test_list_container.c [new file with mode: 0644]
src/tests/elementary/efl_ui_test_position_manager_common.c [new file with mode: 0644]
src/tests/elementary/meson.build
src/tests/elementary/spec/efl_test_pack_linear.c
src/tests/elementary/spec/efl_ui_spec_suite.c
src/tests/elementary/spec/efl_ui_spec_suite.h
src/tests/elementary/spec/meson.build
src/tests/elementary/spec/test_efl_ui_item_container_list.eo [new file with mode: 0644]