From ebdb3b71a1379a679c86c03ef37a65e690ffe411 Mon Sep 17 00:00:00 2001 From: SangHyeon Lee Date: Sat, 19 May 2018 01:13:43 +0900 Subject: [PATCH] cursor: fix ABI break in widget item cursor APIs Summary: fix ABI break in widget item cursor APIs by efl_ui_cursor interface implementing. item's view were not elementary widget mostly, reimplementing efl_ui_cursor on efl_ui_widget cannot resolve item's cursor API call. Test Plan: check, elm_object_item_cursor_XXX API is working properly on elm_object_item. Reviewers: cedric, jpeg, raster Reviewed By: raster Subscribers: stefan_schmidt, zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6046 --- src/lib/elementary/efl_ui_widget.c | 10 +++--- src/lib/elementary/elm_priv.h | 7 ++++ src/lib/elementary/els_cursor.c | 52 +++++++++++++++++++++++------- 3 files changed, 53 insertions(+), 16 deletions(-) diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index f4c8cc9d7d..b252aa67b4 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -4784,7 +4784,7 @@ EOLIAN static const char * _elm_widget_item_cursor_get(const Eo *eo_item EINA_UNUSED, Elm_Widget_Item_Data *item) { ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, NULL); - return elm_object_cursor_get(item->view); + return elm_object_sub_cursor_get(item->view); } EOLIAN static void @@ -4817,7 +4817,7 @@ _elm_widget_item_cursor_style_set(Eo *eo_item EINA_UNUSED, ELM_WIDGET_ITEM_CHECK_OR_RETURN(item); ELM_WIDGET_ITEM_RETURN_IF_ONDEL(item); - elm_object_cursor_style_set(item->view, style); + elm_object_sub_cursor_style_set(item->view, style); } /** @@ -4836,7 +4836,7 @@ _elm_widget_item_cursor_style_get(const Eo *eo_item EINA_UNUSED, Elm_Widget_Item_Data *item) { ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, NULL); - return elm_object_cursor_style_get(item->view); + return elm_object_sub_cursor_style_get(item->view); } /** @@ -4863,7 +4863,7 @@ _elm_widget_item_cursor_engine_only_set(Eo *eo_item EINA_UNUSED, ELM_WIDGET_ITEM_CHECK_OR_RETURN(item); ELM_WIDGET_ITEM_RETURN_IF_ONDEL(item); - elm_object_cursor_theme_search_enabled_set(item->view, !engine_only); + elm_object_sub_cursor_theme_search_enabled_set(item->view, !engine_only); } /** @@ -4882,7 +4882,7 @@ EOLIAN static Eina_Bool _elm_widget_item_cursor_engine_only_get(const Eo *eo_item EINA_UNUSED, Elm_Widget_Item_Data *item) { ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, EINA_FALSE); - return !elm_object_cursor_theme_search_enabled_get(item->view); + return !elm_object_sub_cursor_theme_search_enabled_get(item->view); } EOLIAN static void diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h index 29da1701e2..7ba81130ed 100644 --- a/src/lib/elementary/elm_priv.h +++ b/src/lib/elementary/elm_priv.h @@ -664,6 +664,13 @@ void elm_cursor_theme(Elm_Cursor *cur); void elm_object_sub_cursor_set(Evas_Object *eventarea, Evas_Object *owner, const char *cursor); +const char * elm_object_sub_cursor_get(const Evas_Object *obj); +Eina_Bool elm_object_sub_cursor_style_set(Evas_Object *obj, + const char *style); +const char * elm_object_sub_cursor_style_get(const Evas_Object *obj); +Eina_Bool elm_object_sub_cursor_theme_search_enabled_set(Evas_Object *obj, + Eina_Bool theme_search); +Eina_Bool elm_object_sub_cursor_theme_search_enabled_get(const Evas_Object *obj); void elm_menu_clone(Evas_Object *from_menu, Evas_Object *to_menu, diff --git a/src/lib/elementary/els_cursor.c b/src/lib/elementary/els_cursor.c index f6d1b57297..87adefe50e 100644 --- a/src/lib/elementary/els_cursor.c +++ b/src/lib/elementary/els_cursor.c @@ -680,13 +680,19 @@ _efl_ui_widget_efl_ui_cursor_cursor_set(Evas_Object *obj, Elm_Widget_Smart_Data return EINA_TRUE; } -EOLIAN const char * -_efl_ui_widget_efl_ui_cursor_cursor_get(const Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) +const char * +elm_object_sub_cursor_get(const Evas_Object *obj) { ELM_CURSOR_GET_OR_RETURN(cur, obj, NULL); return cur->cursor_name; } +EOLIAN const char * +_efl_ui_widget_efl_ui_cursor_cursor_get(const Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) +{ + return elm_object_sub_cursor_get(obj); +} + EAPI void elm_object_cursor_unset(Evas_Object *obj) { @@ -751,9 +757,8 @@ elm_object_cursor_unset(Evas_Object *obj) free(cur); } -EOLIAN Eina_Bool -_efl_ui_widget_efl_ui_cursor_cursor_style_set(Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED, - const char *style) +Eina_Bool +elm_object_sub_cursor_style_set(Evas_Object *obj, const char *style) { ELM_CURSOR_GET_OR_RETURN(cur, obj, EINA_FALSE); @@ -787,13 +792,26 @@ _efl_ui_widget_efl_ui_cursor_cursor_style_set(Evas_Object *obj, Elm_Widget_Smart return EINA_TRUE; } -EOLIAN const char * -_efl_ui_widget_efl_ui_cursor_cursor_style_get(const Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) +EOLIAN Eina_Bool +_efl_ui_widget_efl_ui_cursor_cursor_style_set(Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED, + const char *style) +{ + return elm_object_sub_cursor_style_set(obj, style); +} + +const char * +elm_object_sub_cursor_style_get(const Evas_Object *obj) { ELM_CURSOR_GET_OR_RETURN(cur, obj, NULL); return cur->style ? cur->style : "default"; } +EOLIAN const char * +_efl_ui_widget_efl_ui_cursor_cursor_style_get(const Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) +{ + return elm_object_sub_cursor_style_get(obj); +} + /** * Notify cursor should recalculate its theme. * @internal @@ -809,9 +827,8 @@ elm_cursor_theme(Elm_Cursor *cur) _elm_cursor_set_hot_spots(cur); } -EOLIAN Eina_Bool -_efl_ui_widget_efl_ui_cursor_cursor_theme_search_enabled_set(Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED, - Eina_Bool theme_search) +Eina_Bool +elm_object_sub_cursor_theme_search_enabled_set(Evas_Object *obj, Eina_Bool theme_search) { ELM_CURSOR_GET_OR_RETURN(cur, obj, EINA_FALSE); cur->theme_search = theme_search; @@ -821,10 +838,23 @@ _efl_ui_widget_efl_ui_cursor_cursor_theme_search_enabled_set(Evas_Object *obj, E } EOLIAN Eina_Bool -_efl_ui_widget_efl_ui_cursor_cursor_theme_search_enabled_get(const Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) +_efl_ui_widget_efl_ui_cursor_cursor_theme_search_enabled_set(Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED, + Eina_Bool theme_search) +{ + return elm_object_sub_cursor_theme_search_enabled_set(obj, theme_search); +} + +Eina_Bool +elm_object_sub_cursor_theme_search_enabled_get(const Evas_Object *obj) { ELM_CURSOR_GET_OR_RETURN(cur, obj, EINA_FALSE); return cur->theme_search; } +EOLIAN Eina_Bool +_efl_ui_widget_efl_ui_cursor_cursor_theme_search_enabled_get(const Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) +{ + return elm_object_sub_cursor_theme_search_enabled_get(obj); +} + #include "efl_ui_cursor.eo.c"