From 2151730a043d6a67741d7d72e0d9ee199a2ef144 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Sun, 24 Feb 2019 10:57:01 +0100 Subject: [PATCH] efl_ui_widget: remove focused_item focused_item is only used in item containers. This API is now moved into a widget item container, which *can* have a focused item. ref T7553 Reviewed-by: WooHyun Jung Differential Revision: https://phab.enlightenment.org/D8013 --- src/Makefile_Elementary.am | 1 + src/lib/elementary/efl_ui_widget.c | 31 +++++++++++-------------- src/lib/elementary/efl_ui_widget.eo | 9 ------- src/lib/elementary/elc_ctxpopup.c | 2 +- src/lib/elementary/elm_ctxpopup.eo | 7 ++---- src/lib/elementary/elm_gengrid.c | 2 +- src/lib/elementary/elm_gengrid.eo | 4 ++-- src/lib/elementary/elm_genlist.c | 2 +- src/lib/elementary/elm_genlist.eo | 4 ++-- src/lib/elementary/elm_list.c | 2 +- src/lib/elementary/elm_list.eo | 4 ++-- src/lib/elementary/elm_main.c | 4 +++- src/lib/elementary/elm_toolbar.c | 2 +- src/lib/elementary/elm_toolbar.eo | 4 ++-- src/lib/elementary/elm_widget.h | 1 + src/lib/elementary/elm_widget_item_container.eo | 10 ++++++++ src/lib/elementary/meson.build | 1 + src/lib/elementary_tizen/elc_ctxpopup.c | 2 +- src/lib/elementary_tizen/elm_genlist.c | 2 +- 19 files changed, 46 insertions(+), 48 deletions(-) create mode 100644 src/lib/elementary/elm_widget_item_container.eo diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 5ffd0f5..9fd570b 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -160,6 +160,7 @@ elm_public_eolian_files += \ lib/elementary/elm_view_form.eo \ lib/elementary/elm_web.eo \ lib/elementary/elm_widget_item.eo \ + lib/elementary/elm_widget_item_container.eo \ $(NULL) # Private classes (not exposed or shipped) diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index aa7670e..8c0dc21 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -3755,6 +3755,18 @@ _efl_ui_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Widget_Smart_Data return r; } +EOLIAN static void +_efl_ui_widget_interest_region_mode_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd, Elm_Focus_Region_Show_Mode mode) +{ + _pd->focus_region_show_mode = mode; +} + +EOLIAN static Elm_Focus_Region_Show_Mode +_efl_ui_widget_interest_region_mode_get(const Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd) +{ + return _pd->focus_region_show_mode; +} + EAPI void elm_widget_activate(Evas_Object *obj, Efl_Ui_Activate act) { @@ -7186,24 +7198,6 @@ _efl_ui_widget_focus_mouse_up_handle(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UN efl_ui_widget_focus_steal(obj, NULL); } -EOLIAN static Elm_Object_Item* -_efl_ui_widget_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd EINA_UNUSED) -{ - return NULL; -} - -EOLIAN static void -_efl_ui_widget_interest_region_mode_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd, Elm_Focus_Region_Show_Mode mode) -{ - _pd->focus_region_show_mode = mode; -} - -EOLIAN static Elm_Focus_Region_Show_Mode -_efl_ui_widget_interest_region_mode_get(const Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd) -{ - return _pd->focus_region_show_mode; -} - //TIZEN_ONLY(20160929) : atspi: Improves how to find the can_highlight of the widget static Eina_Bool @@ -9927,6 +9921,7 @@ _elm_object_focus_chain_del_cb(void *data, } // #include "elm_widget_item.eo.c" +#include "elm_widget_item_container.eo.c" #include "efl_ui_widget.eo.c" /* Others */ diff --git a/src/lib/elementary/efl_ui_widget.eo b/src/lib/elementary/efl_ui_widget.eo index dc5e512..b66d19e 100644 --- a/src/lib/elementary/efl_ui_widget.eo +++ b/src/lib/elementary/efl_ui_widget.eo @@ -846,15 +846,6 @@ abstract @beta Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Obje $false otherwise]] } } - - /* FIXME: No more items in EO API */ - @property focused_item @beta { - get { - [[Get the focused widget item.]] - return: Elm.Widget.Item; [[Focused item]] - } - } - /* Focus Manager API */ focus_state_apply @protected { [[Register focus with the given configuration. diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index 85b6e18..94ec00f 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -1583,7 +1583,7 @@ _elm_ctxpopup_selected_item_get(const Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd // TIZEN_ONLY(20180112): remove focused item get function EOLIAN static Elm_Object_Item* -_elm_ctxpopup_efl_ui_widget_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd) +_elm_ctxpopup_elm_widget_item_container_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd) { if (!sd->list) return NULL; diff --git a/src/lib/elementary/elm_ctxpopup.eo b/src/lib/elementary/elm_ctxpopup.eo index 5223e13..fd6fb33 100644 --- a/src/lib/elementary/elm_ctxpopup.eo +++ b/src/lib/elementary/elm_ctxpopup.eo @@ -8,7 +8,7 @@ enum Elm.Ctxpopup.Direction unknown [[Ctxpopup does not determine it's direction yet.]] } -class Elm.Ctxpopup extends Efl.Ui.Layout implements Efl.Ui.Focus.Layer, Efl.Access.Widget.Action, Efl.Ui.Legacy +class Elm.Ctxpopup extends Efl.Ui.Layout implements Efl.Ui.Focus.Layer, Efl.Access.Widget.Action, Efl.Ui.Legacy, Elm.Widget_Item_Container { [[Elementary context popup class]] legacy_prefix: elm_ctxpopup; @@ -237,15 +237,12 @@ class Elm.Ctxpopup extends Efl.Ui.Layout implements Efl.Ui.Focus.Layer, Efl.Acce Efl.Ui.L10n.translation_update; Efl.Ui.Widget.theme_apply; Efl.Ui.Widget.widget_event; + // Elm.Widget_Item_Container.focused_item { get; } // TIZEN_ONLY(20180112): remove focused item get function Efl.Access.Widget.Action.elm_actions { get; } Efl.Access.Object.state_set { get; } Efl.Access.Component.extents { get; } Efl.Part.part_get; - // TIZEN_ONLY(20180112): remove focused item get function - // Efl.Ui.Widget.focused_item { get; } - // - // TIZEN_ONLY(20170116): merge eo & header files for different profiles Efl.Access.Object.access_children { get; } // diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index 2d067ad..b7df21e 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -7178,7 +7178,7 @@ _elm_gengrid_efl_ui_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Gengr } EOLIAN static Elm_Object_Item * -_elm_gengrid_efl_ui_widget_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd) +_elm_gengrid_elm_widget_item_container_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Gengrid_Data *sd) { return sd->focused_item; } diff --git a/src/lib/elementary/elm_gengrid.eo b/src/lib/elementary/elm_gengrid.eo index 5165d64..eb31ef3 100644 --- a/src/lib/elementary/elm_gengrid.eo +++ b/src/lib/elementary/elm_gengrid.eo @@ -11,7 +11,7 @@ enum Elm.Gengrid.Reorder_Type class Elm.Gengrid extends Efl.Ui.Layout implements Efl.Ui.Focus.Composition, Elm.Interface_Scrollable, Efl.Ui.Clickable, Efl.Access.Widget.Action, - Efl.Access.Selection, Efl.Ui.Legacy + Efl.Access.Selection, Efl.Ui.Legacy, Elm.Widget_Item_Container { [[Elementary gengrid class]] legacy_prefix: elm_gengrid; @@ -510,7 +510,7 @@ class Elm.Gengrid extends Efl.Ui.Layout implements Efl.Ui.Focus.Composition, Elm Efl.Ui.Widget.interest_region { get; } Efl.Ui.Widget.widget_event; Efl.Ui.Widget.focus_highlight_geometry { get; } - Efl.Ui.Widget.focused_item { get; } + Elm.Widget_Item_Container.focused_item { get; } //TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off, //register/unregister access objects accordingly. // TIZEN_ONLY(20170516): connect to at-spi dbus based on org.a11y.Status.IsEnabled property diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 257f3df..a1eb443 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -9181,7 +9181,7 @@ _elm_genlist_search_by_text_item_get(Eo *obj EINA_UNUSED, } EOLIAN static Elm_Object_Item* -_elm_genlist_efl_ui_widget_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd) +_elm_genlist_elm_widget_item_container_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd) { return sd->focused_item; } diff --git a/src/lib/elementary/elm_genlist.eo b/src/lib/elementary/elm_genlist.eo index d2fbe4d..274ebe5 100644 --- a/src/lib/elementary/elm_genlist.eo +++ b/src/lib/elementary/elm_genlist.eo @@ -2,7 +2,7 @@ import elm_general; class Elm.Genlist extends Efl.Ui.Layout implements Elm.Interface_Scrollable, Efl.Ui.Clickable, Efl.Access.Widget.Action, Efl.Access.Selection, - Efl.Ui.Selectable, Efl.Ui.Legacy + Efl.Ui.Selectable, Efl.Ui.Legacy, Elm.Widget_Item_Container { [[Elementary genlist class]] legacy_prefix: elm_genlist; @@ -678,7 +678,7 @@ class Elm.Genlist extends Efl.Ui.Layout implements Elm.Interface_Scrollable, Efl //Efl.Ui.Widget.widget_event; Efl.Ui.Focus.Object.on_focus_update; Efl.Ui.Widget.widget_event; // rebase - Efl.Ui.Widget.focused_item { get; } + Elm.Widget_Item_Container.focused_item { get; } //TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off, //register/unregister access objects accordingly. // TIZEN_ONLY(20170516): connect to at-spi dbus based on org.a11y.Status.IsEnabled property diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c index 95cc440..a77dcb0 100644 --- a/src/lib/elementary/elm_list.c +++ b/src/lib/elementary/elm_list.c @@ -3217,7 +3217,7 @@ _elm_list_efl_ui_widget_focus_highlight_geometry_get(const Eo *obj, Elm_List_Dat } EOLIAN static Elm_Object_Item* -_elm_list_efl_ui_widget_focused_item_get(const Eo *obj EINA_UNUSED, Elm_List_Data *sd) +_elm_list_elm_widget_item_container_focused_item_get(const Eo *obj EINA_UNUSED, Elm_List_Data *sd) { return sd->focused_item; } diff --git a/src/lib/elementary/elm_list.eo b/src/lib/elementary/elm_list.eo index a54ec02..f20e3ef 100644 --- a/src/lib/elementary/elm_list.eo +++ b/src/lib/elementary/elm_list.eo @@ -2,7 +2,7 @@ import elm_general; class Elm.List extends Efl.Ui.Layout implements Elm.Interface_Scrollable, Efl.Access.Widget.Action, Efl.Access.Selection, Efl.Access.Object, - Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy + Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy, Elm.Widget_Item_Container { [[Elementary list class]] legacy_prefix: elm_list; @@ -405,7 +405,7 @@ class Elm.List extends Efl.Ui.Layout implements Elm.Interface_Scrollable, Efl.Ui.L10n.translation_update; Efl.Ui.Widget.widget_sub_object_del; Efl.Ui.Widget.widget_event; - Efl.Ui.Widget.focused_item { get; } + Elm.Widget_Item_Container.focused_item { get; } //TIZEN_ONLY(20160822): When atspi mode is dynamically switched on/off, //register/unregister access objects accordingly. // TIZEN_ONLY(20170516): connect to at-spi dbus based on org.a11y.Status.IsEnabled property diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index 0251660..cdfac84 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -1999,7 +1999,9 @@ EAPI Elm_Object_Item * elm_object_focused_item_get(const Evas_Object *obj) { EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL); - return efl_ui_widget_focused_item_get(obj); + if (!efl_isa(obj, ELM_WIDGET_ITEM_CONTAINER_INTERFACE)) + return NULL; + return elm_widget_item_container_focused_item_get(obj); } EAPI void diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c index 2ad8782..e2c7d5a 100644 --- a/src/lib/elementary/elm_toolbar.c +++ b/src/lib/elementary/elm_toolbar.c @@ -4218,7 +4218,7 @@ _elm_toolbar_item_efl_access_object_state_set_get(const Eo *eo_it, Elm_Toolbar_I } EOLIAN static Elm_Object_Item * -_elm_toolbar_efl_ui_widget_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd) +_elm_toolbar_elm_widget_item_container_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd) { return sd->focused_item; } diff --git a/src/lib/elementary/elm_toolbar.eo b/src/lib/elementary/elm_toolbar.eo index c41c8c7..b79b433 100644 --- a/src/lib/elementary/elm_toolbar.eo +++ b/src/lib/elementary/elm_toolbar.eo @@ -25,7 +25,7 @@ enum Elm.Toolbar_Shrink_Mode class Elm.Toolbar extends Efl.Ui.Widget implements Efl.Ui.Focus.Composition, Elm.Interface_Scrollable, Efl.Ui.Direction, Efl.Access.Widget.Action, Efl.Access.Selection, Efl.Access.Object, - Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy, + Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy, Elm.Widget_Item_Container, //TIZEN_ONLY(20180112): toolbar: apply TIZEN_ONLY code. Efl.Orientation // @@ -419,7 +419,7 @@ class Elm.Toolbar extends Efl.Ui.Widget implements Efl.Ui.Focus.Composition, Elm Efl.Ui.L10n.translation_update; Efl.Ui.Widget.widget_event; Efl.Ui.Widget.focus_highlight_geometry { get; } - Efl.Ui.Widget.focused_item { get; } + Elm.Widget_Item_Container.focused_item { get; } // //TIZEN_ONLY(20150625): fix item resize issue. Efl.Orientation.orientation { set; } // diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h index 862b127..05f5317 100644 --- a/src/lib/elementary/elm_widget.h +++ b/src/lib/elementary/elm_widget.h @@ -307,6 +307,7 @@ typedef void (*Elm_Access_On_Highlight_Cb)(void *data); typedef void * (*list_data_get_func_type)(const Eina_List * l); #include "efl_ui_widget.eo.h" +#include "elm_widget_item_container.eo.h" /** * @addtogroup Widget diff --git a/src/lib/elementary/elm_widget_item_container.eo b/src/lib/elementary/elm_widget_item_container.eo new file mode 100644 index 0000000..7a0c33c --- /dev/null +++ b/src/lib/elementary/elm_widget_item_container.eo @@ -0,0 +1,10 @@ +interface Elm.Widget_Item_Container { + methods { + @property focused_item { + get { + [[Get the focused widget item.]] + return: Elm.Widget.Item; [[Focused item]] + } + } + } +} diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index c033a97..e71b626 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -259,6 +259,7 @@ pub_eo_files = [ 'efl_ui_radio_legacy_part.eo', 'efl_ui_check_legacy_part.eo', 'efl_ui_progressbar_legacy_part.eo', + 'elm_widget_item_container.eo', 'elm_spinner.eo', 'elm_multibuttonentry.eo', 'elm_multibuttonentry_item.eo', diff --git a/src/lib/elementary_tizen/elc_ctxpopup.c b/src/lib/elementary_tizen/elc_ctxpopup.c index e71c2cb..0100e78 100644 --- a/src/lib/elementary_tizen/elc_ctxpopup.c +++ b/src/lib/elementary_tizen/elc_ctxpopup.c @@ -2608,7 +2608,7 @@ _elm_ctxpopup_selected_item_get(const Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd // TIZEN_ONLY(20180112): remove focused item get function EOLIAN static Elm_Object_Item* -_elm_ctxpopup_efl_ui_widget_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd) +_elm_ctxpopup_elm_widget_item_container_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd) { if (!sd->list) return NULL; diff --git a/src/lib/elementary_tizen/elm_genlist.c b/src/lib/elementary_tizen/elm_genlist.c index d7efe85..0d42f3c 100644 --- a/src/lib/elementary_tizen/elm_genlist.c +++ b/src/lib/elementary_tizen/elm_genlist.c @@ -4548,7 +4548,7 @@ _elm_genlist_item_elm_widget_item_item_focus_get(const Eo *eo_it, Elm_Gen_Item * } EOLIAN static Elm_Object_Item* -_elm_genlist_efl_ui_widget_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd) +_elm_genlist_elm_widget_item_container_focused_item_get(const Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd) { return sd->focused_item; } -- 2.7.4