bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=95a2b3457a9656c271abf93318c5e9a551d43b7b
commit 95a2b3457a9656c271abf93318c5e9a551d43b7b Author: Marcel Hollerbach <m...@marcel-hollerbach.de> Date: Fri Feb 14 17:37:42 2020 +0100 efl_ui_spotlight_manager: introduce a reason for switch_to This is preparation work for a later commit. This brings a flag that indicates what the reason for a switch to call is, either a jump a push or a pop. Reviewed-by: Xavi Artigas <xavierarti...@yahoo.es> Differential Revision: https://phab.enlightenment.org/D11357 --- src/lib/elementary/efl_ui_spotlight_container.c | 22 ++++++++++++++-------- src/lib/elementary/efl_ui_spotlight_fade_manager.c | 2 +- src/lib/elementary/efl_ui_spotlight_manager.eo | 8 ++++++++ .../elementary/efl_ui_spotlight_plain_manager.c | 2 +- .../elementary/efl_ui_spotlight_scroll_manager.c | 2 +- 5 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/lib/elementary/efl_ui_spotlight_container.c b/src/lib/elementary/efl_ui_spotlight_container.c index 74be9c5b83..5df66e518c 100644 --- a/src/lib/elementary/efl_ui_spotlight_container.c +++ b/src/lib/elementary/efl_ui_spotlight_container.c @@ -437,10 +437,8 @@ _efl_ui_spotlight_container_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, return eina_list_data_idx(pd->content_list, (void *)subobj); } -EOLIAN static void -_efl_ui_spotlight_container_active_element_set(Eo *obj EINA_UNUSED, - Efl_Ui_Spotlight_Container_Data *pd, - Efl_Ui_Widget *new_page) +static void +_active_element_set(Eo *obj, Efl_Ui_Spotlight_Container_Data *pd, Efl_Ui_Widget *new_page, Efl_Ui_Spotlight_Manager_Switch_Reason reason) { int before = -1; int index; @@ -463,7 +461,16 @@ _efl_ui_spotlight_container_active_element_set(Eo *obj EINA_UNUSED, } pd->curr.page = new_page; - efl_ui_spotlight_manager_switch_to(pd->transition, before, index); + efl_ui_spotlight_manager_switch_to(pd->transition, before, index, reason); + +} + +EOLIAN static void +_efl_ui_spotlight_container_active_element_set(Eo *obj EINA_UNUSED, + Efl_Ui_Spotlight_Container_Data *pd, + Efl_Ui_Widget *new_page) +{ + _active_element_set(obj, pd, new_page, EFL_UI_SPOTLIGHT_MANAGER_SWITCH_REASON_JUMP); } EOLIAN static Efl_Ui_Widget* @@ -724,8 +731,7 @@ _efl_ui_spotlight_container_push(Eo *obj, Efl_Ui_Spotlight_Container_Data *pd EI if (!efl_pack_end(obj, view)) return; } - - efl_ui_spotlight_active_element_set(obj, view); + _active_element_set(obj, pd, view, EFL_UI_SPOTLIGHT_MANAGER_SWITCH_REASON_PUSH); } static Eina_Value @@ -780,7 +786,7 @@ _efl_ui_spotlight_container_pop(Eo *obj, Efl_Ui_Spotlight_Container_Data *pd, Ei if (del) transition_done = eina_future_then(transition_done, _delete_obj, NULL); - efl_ui_spotlight_active_element_set(obj, efl_pack_content_get(obj, new_index)); + _active_element_set(obj, pd, efl_pack_content_get(obj, new_index), EFL_UI_SPOTLIGHT_MANAGER_SWITCH_REASON_POP); return transition_done; } diff --git a/src/lib/elementary/efl_ui_spotlight_fade_manager.c b/src/lib/elementary/efl_ui_spotlight_fade_manager.c index 559a220a92..441bb38896 100644 --- a/src/lib/elementary/efl_ui_spotlight_fade_manager.c +++ b/src/lib/elementary/efl_ui_spotlight_fade_manager.c @@ -135,7 +135,7 @@ is_valid(Eo *obj, int index) } EOLIAN static void -_efl_ui_spotlight_fade_manager_efl_ui_spotlight_manager_switch_to(Eo *obj, Efl_Ui_Spotlight_Fade_Manager_Data *pd, int from, int to) +_efl_ui_spotlight_fade_manager_efl_ui_spotlight_manager_switch_to(Eo *obj, Efl_Ui_Spotlight_Fade_Manager_Data *pd, int from, int to, Efl_Ui_Spotlight_Manager_Switch_Reason reason EINA_UNUSED) { if (efl_pack_content_get(pd->container, to) == pd->content[1]) return; diff --git a/src/lib/elementary/efl_ui_spotlight_manager.eo b/src/lib/elementary/efl_ui_spotlight_manager.eo index 6de4898a94..00e338443d 100644 --- a/src/lib/elementary/efl_ui_spotlight_manager.eo +++ b/src/lib/elementary/efl_ui_spotlight_manager.eo @@ -1,3 +1,10 @@ +enum @beta Efl.Ui.Spotlight.Manager_Switch_Reason { + [[Indicator for the reason of a @Efl.Ui.Spotlight.Manager.switch_to call]] + jump, [[The Reason for this switch is a casual jump caused by @Efl.Ui.Spotlight.Container.active_element]] + push, [[The Reason for this switch is a casual jump caused by @Efl.Ui.Spotlight.Container.push]] + pop [[The Reason for this switch is a casual jump caused by @Efl.Ui.Spotlight.Container.pop]] +} + abstract @beta Efl.Ui.Spotlight.Manager extends Efl.Object { [[Manager object used by @Efl.Ui.Spotlight.Container to handle rendering and animation of its sub-widgets, and user interaction. @@ -41,6 +48,7 @@ abstract @beta Efl.Ui.Spotlight.Manager extends Efl.Object { params { from : int; [[Index of the starting sub-widget in the container's list. Might be -1 if unknown.]] to : int; [[Index of the target sub-widget in the container's list.]] + reason : Efl.Ui.Spotlight.Manager_Switch_Reason; [[The reason for this switch to call]] } } @property size @pure_virtual { diff --git a/src/lib/elementary/efl_ui_spotlight_plain_manager.c b/src/lib/elementary/efl_ui_spotlight_plain_manager.c index d120ef8f11..5075641704 100644 --- a/src/lib/elementary/efl_ui_spotlight_plain_manager.c +++ b/src/lib/elementary/efl_ui_spotlight_plain_manager.c @@ -108,7 +108,7 @@ _efl_ui_spotlight_plain_manager_efl_ui_spotlight_manager_content_del(Eo *obj, Ef _content_changed(obj, pd); } EOLIAN static void -_efl_ui_spotlight_plain_manager_efl_ui_spotlight_manager_switch_to(Eo *obj, Efl_Ui_Spotlight_Plain_Manager_Data *pd, int from EINA_UNUSED, int to) +_efl_ui_spotlight_plain_manager_efl_ui_spotlight_manager_switch_to(Eo *obj, Efl_Ui_Spotlight_Plain_Manager_Data *pd, int from EINA_UNUSED, int to, Efl_Ui_Spotlight_Manager_Switch_Reason reason EINA_UNUSED) { Efl_Gfx_Entity *to_obj, *from_obj; to_obj = efl_pack_content_get(pd->container, to); diff --git a/src/lib/elementary/efl_ui_spotlight_scroll_manager.c b/src/lib/elementary/efl_ui_spotlight_scroll_manager.c index 63147c1d1b..f6eb1323e6 100644 --- a/src/lib/elementary/efl_ui_spotlight_scroll_manager.c +++ b/src/lib/elementary/efl_ui_spotlight_scroll_manager.c @@ -285,7 +285,7 @@ _animation_request_switch(Eo *obj, Efl_Ui_Spotlight_Scroll_Manager_Data *pd, int } EOLIAN static void -_efl_ui_spotlight_scroll_manager_efl_ui_spotlight_manager_switch_to(Eo *obj, Efl_Ui_Spotlight_Scroll_Manager_Data *pd, int from, int to) +_efl_ui_spotlight_scroll_manager_efl_ui_spotlight_manager_switch_to(Eo *obj, Efl_Ui_Spotlight_Scroll_Manager_Data *pd, int from, int to, Efl_Ui_Spotlight_Manager_Switch_Reason reason EINA_UNUSED) { if (pd->animation) { --