The Efl.Ui.Focus.Manager abstracts the creation of a localization graph and a logical tree. The localization graph is used to find a object right left up or down of a given object. The logical tree is used to iterate throuw the containers which are used to build a ui.
Those managers can be used bound to some layer in the ui, so for example the window is a layer, the content of a scroller is a layer. With those layers, we can make sure that movements of a scroller for example just means that this graph of objects in the scroller needs to be recalculated, and not the complete ui.
The advantage of having this to layer bound datastructures is that you can easily debug those graphs, since the complete layer of this managerobject can be calculated completly.
01f46ae efl_ui: introduce a focus manager and sub manager object
src/Makefile_Elementary.am | 16 +-
src/lib/elementary/Elementary.h | 14 +
src/lib/elementary/efl_ui_focus_manager.c | 1051 ++++++++++++++++++++++++
src/lib/elementary/efl_ui_focus_manager.eo | 129 +++
src/lib/elementary/efl_ui_focus_manager_sub.c | 188 +++++
src/lib/elementary/efl_ui_focus_manager_sub.eo | 25 +
src/lib/elementary/efl_ui_focus_object.c | 30 +
src/lib/elementary/efl_ui_focus_object.eo | 28 +
src/lib/elementary/efl_ui_focus_user.eo | 18 +
src/tests/elementary/elm_suite.c | 2 +
src/tests/elementary/elm_suite.h | 2 +
src/tests/elementary/elm_test_focus.c | 347 ++++++++
src/tests/elementary/elm_test_focus_common.c | 79 ++
src/tests/elementary/elm_test_focus_common.h | 28 +
src/tests/elementary/elm_test_focus_sub.c | 242 ++++++
src/tests/elementary/focus_test.eo | 14 +
src/tests/elementary/focus_test_sub.eo | 8 +
17 files changed, 2220 insertions(+), 1 deletion(-)