bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5235f1da85ab8847b7514ebb647dda6d00d3bc19

commit 5235f1da85ab8847b7514ebb647dda6d00d3bc19
Author: Marcel Hollerbach <[email protected]>
Date:   Sun Feb 24 10:57:01 2019 +0100

    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 <[email protected]>
    Differential Revision: https://phab.enlightenment.org/D8013
---
 src/Makefile_Elementary.am                      |  1 +
 src/lib/elementary/efl_ui_widget.c              |  7 +------
 src/lib/elementary/efl_ui_widget.eo             |  9 ---------
 src/lib/elementary/elc_ctxpopup.c               |  2 +-
 src/lib/elementary/elm_ctxpopup.eo              |  4 ++--
 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                   |  4 ++--
 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 +
 17 files changed, 33 insertions(+), 32 deletions(-)

diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index bd3490387c..b6f8d17129 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -158,6 +158,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 47f854ab7a..45967bb588 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -3539,12 +3539,6 @@ _efl_ui_widget_focus_highlight_geometry_get(const Eo 
*obj, Elm_Widget_Smart_Data
    return r;
 }
 
-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)
 {
@@ -6156,6 +6150,7 @@ ELM_PART_TEXT_DEFAULT_GET(efl_ui_widget, NULL)
    EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_widget_efl_object_dbg_info_get)
 
 #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 d85e2fd100..20e7e3f4c1 100644
--- a/src/lib/elementary/efl_ui_widget.eo
+++ b/src/lib/elementary/efl_ui_widget.eo
@@ -583,15 +583,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 dabc798777..a7b743a4e1 100644
--- a/src/lib/elementary/elc_ctxpopup.c
+++ b/src/lib/elementary/elc_ctxpopup.c
@@ -1399,7 +1399,7 @@ _elm_ctxpopup_selected_item_get(const Eo *obj 
EINA_UNUSED, Elm_Ctxpopup_Data *sd
 }
 
 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 7d94b87fe4..ea58d9fbe1 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,7 +237,7 @@ 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;
-      Efl.Ui.Widget.focused_item { get; }
+      Elm.Widget_Item_Container.focused_item { get; }
       Efl.Access.Widget.Action.elm_actions { get; }
       Efl.Access.Object.state_set { get; }
       Efl.Part.part_get;
diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c
index febe0b86c7..d4e0cf3449 100644
--- a/src/lib/elementary/elm_gengrid.c
+++ b/src/lib/elementary/elm_gengrid.c
@@ -5606,7 +5606,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 e397ad4987..83d9916c7d 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; }
       Elm.Interface_Scrollable.item_loop_enabled { get; set; }
       Elm.Interface_Scrollable.bounce_allow { set; }
       Elm.Interface_Scrollable.policy { get; set; }
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 016352490d..004e1e2be7 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -8721,7 +8721,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 2ef3817f1b..40a599fc51 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;
@@ -538,7 +538,7 @@ class Elm.Genlist extends Efl.Ui.Layout implements 
Elm.Interface_Scrollable, Efl
       Efl.Ui.Focus.Object.on_focus_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; }
       Elm.Interface_Scrollable.item_loop_enabled { get; set; }
       Elm.Interface_Scrollable.bounce_allow { get; set; }
       Elm.Interface_Scrollable.policy { get; set; }
diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c
index 7310201c27..604c45be9a 100644
--- a/src/lib/elementary/elm_list.c
+++ b/src/lib/elementary/elm_list.c
@@ -296,7 +296,7 @@ _elm_list_item_content_focus_set(Elm_List_Item_Data *it, 
Elm_Focus_Direction dir
    Evas_Object *focus_chain[2];
    Evas_Object *focused = NULL;
    int idx;
-   
+
    if (it->icon && elm_object_widget_check(it->icon) && 
elm_object_focus_allow_get(it->icon))
      focus_chain[focus_objs++] = it->icon;
    if (it->end && elm_object_widget_check(it->end) && 
elm_object_focus_allow_get(it->end))
@@ -3052,7 +3052,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 e5d6a57b26..c2115ba476 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; }
       Efl.Ui.Widget.focus_state_apply;
       Elm.Interface_Scrollable.item_loop_enabled { get; set; }
       Elm.Interface_Scrollable.policy { set; }
diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c
index f2dd116cd3..6cab53b217 100644
--- a/src/lib/elementary/elm_main.c
+++ b/src/lib/elementary/elm_main.c
@@ -1928,7 +1928,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 e379a6f09a..d79ae57b1e 100644
--- a/src/lib/elementary/elm_toolbar.c
+++ b/src/lib/elementary/elm_toolbar.c
@@ -3871,7 +3871,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 e70dafc6e4..0324f87cd3 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
 {
    [[Elementary toolbar class]]
    legacy_prefix: elm_toolbar;
@@ -356,7 +356,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; }
       Efl.Ui.Direction.direction { get; set; [[Only supports $vertical and 
$horizontal. Default is $horizontal.]] }
       Efl.Ui.Widget.focus_state_apply;
       Efl.Access.Widget.Action.elm_actions { get; }
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index 99229851f8..cdc2653831 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -305,6 +305,7 @@ typedef void                  
(*Elm_Widget_Item_Signal_Cb)(void *data, Elm_Objec
 typedef void (*Elm_Access_On_Highlight_Cb)(void *data);
 
 #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 0000000000..7a0c33c148
--- /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 159d5005b0..4363984615 100644
--- a/src/lib/elementary/meson.build
+++ b/src/lib/elementary/meson.build
@@ -258,6 +258,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',

-- 


Reply via email to