From 47666c23cd3e310191a76472226b742aee40bb1f Mon Sep 17 00:00:00 2001 From: SangHyeon Lee Date: Thu, 3 May 2018 19:40:45 +0900 Subject: [PATCH] cursor: fix ABI break in widget item cursor APIs 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. Change-Id: Ie5cf051d5d22e10f4c11ef8747d9bd9a3fccae1a Signed-off-by: SangHyeon Lee (cherry picked from commit 0190020675ab40f7db6882f42ce4ecf46e5b53c5) --- src/lib/elementary/efl_ui_widget.c | 25 +++++++++--- src/lib/elementary/elm_priv.h | 9 +++++ src/lib/elementary/els_cursor.c | 80 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 0db48b1..dd8e8ce 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -5051,7 +5051,10 @@ EOLIAN static const char * _elm_widget_item_cursor_get(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); + //TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs + //return elm_object_cursor_get(item->view); + return elm_object_sub_cursor_get(item->view); + // } EOLIAN static void @@ -5084,7 +5087,10 @@ _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); + //TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs + //elm_object_cursor_style_set(item->view, style); + elm_object_sub_cursor_style_set(item->view, style); + // } /** @@ -5103,7 +5109,10 @@ _elm_widget_item_cursor_style_get(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); + //TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs + //return elm_object_cursor_style_get(item->view); + return elm_object_sub_cursor_style_get(item->view); + // } /** @@ -5130,7 +5139,10 @@ _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); + //TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs + //elm_object_cursor_theme_search_enabled_set(item->view, !engine_only); + elm_object_sub_cursor_theme_search_enabled_set(item->view, !engine_only); + // } /** @@ -5149,7 +5161,10 @@ EOLIAN static Eina_Bool _elm_widget_item_cursor_engine_only_get(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); + //TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs + //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 e14c11d..a4d1d79 100644 --- a/src/lib/elementary/elm_priv.h +++ b/src/lib/elementary/elm_priv.h @@ -678,6 +678,15 @@ void elm_cursor_theme(Elm_Cursor *cur); void elm_object_sub_cursor_set(Evas_Object *eventarea, Evas_Object *owner, const char *cursor); +//TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs +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 7e00da9..600faf6 100644 --- a/src/lib/elementary/els_cursor.c +++ b/src/lib/elementary/els_cursor.c @@ -650,12 +650,28 @@ _efl_ui_widget_efl_ui_cursor_cursor_set(Evas_Object *obj, Elm_Widget_Smart_Data return EINA_TRUE; } +//TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs +/* EOLIAN const char * _efl_ui_widget_efl_ui_cursor_cursor_get(const Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) { ELM_CURSOR_GET_OR_RETURN(cur, obj, NULL); return cur->cursor_name; } +*/ +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) @@ -719,10 +735,17 @@ elm_object_cursor_unset(Evas_Object *obj) free(cur); } +//TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs +/* 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); if (!eina_stringshare_replace(&cur->style, style)) @@ -755,12 +778,37 @@ _efl_ui_widget_efl_ui_cursor_cursor_style_set(Evas_Object *obj, Elm_Widget_Smart return EINA_TRUE; } +//TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs +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); +} +// + +//TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs +/* EOLIAN const char * _efl_ui_widget_efl_ui_cursor_cursor_style_get(const Evas_Object *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED) { ELM_CURSOR_GET_OR_RETURN(cur, obj, NULL); return cur->style ? cur->style : "default"; } +*/ +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. @@ -777,10 +825,17 @@ elm_cursor_theme(Elm_Cursor *cur) _elm_cursor_set_hot_spots(cur); } +//TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs +/* 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; ELM_SAFE_FREE(cur->obj, evas_object_del); @@ -788,11 +843,36 @@ _efl_ui_widget_efl_ui_cursor_cursor_theme_search_enabled_set(Evas_Object *obj, E return EINA_TRUE; } +//TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs +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) +{ + return elm_object_sub_cursor_theme_search_enabled_set(obj, theme_search); +} +// + +//TIZEN_ONLY(20180504): fix ABI break on elm_object_item cursor APIs +/* 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) { ELM_CURSOR_GET_OR_RETURN(cur, obj, EINA_FALSE); return cur->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" -- 2.7.4