tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=46a33339c3c626253e5c1abccd5b7259b98c61fb
commit 46a33339c3c626253e5c1abccd5b7259b98c61fb Author: shilpa.singh <shilpa.si...@samsung.com> Date: Wed Jun 3 10:41:13 2015 +0100 Elm: Add context,open signal in elm_entry. Summary: When context,open signal is sent from elm_entry before showing context menu, dynamic addition of context menu items to entry becomes easier. @feature Test Plan: Run elementary_test Launch Entry Scrolled test Right Click on Multiline Markup entry Reviewers: tasn Reviewed By: tasn Subscribers: subodh6129, poornima.srinivasan Differential Revision: https://phab.enlightenment.org/D2580 --- src/bin/test_entry.c | 11 +++++++++++ src/lib/elm_entry.c | 3 +++ src/lib/elm_entry.eo | 1 + 3 files changed, 15 insertions(+) diff --git a/src/bin/test_entry.c b/src/bin/test_entry.c index 07550f4..6abf1ec 100644 --- a/src/bin/test_entry.c +++ b/src/bin/test_entry.c @@ -301,6 +301,16 @@ _end_hide_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNU elm_entry_end_visible_set(en, EINA_FALSE); } +static Eina_Bool +_context_menu_show_cb(void *data EINA_UNUSED, Eo *obj, + const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED) +{ + elm_entry_context_menu_clear(obj); + elm_entry_context_menu_item_add(obj, "MenuD1", NULL, ELM_ICON_NONE, _item_cb, NULL); + elm_entry_context_menu_item_add(obj, "MenuD2", NULL, ELM_ICON_NONE, _item_cb, NULL); + return EO_CALLBACK_CONTINUE; +} + void test_entry_scrolled(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -533,6 +543,7 @@ test_entry_scrolled(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en); evas_object_show(en); elm_box_pack_end(bx, en); + eo_do(en, eo_event_callback_add(ELM_ENTRY_EVENT_CONTEXT_OPEN, _context_menu_show_cb, NULL)); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 5ab7fd1..c20582e 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -1454,6 +1454,9 @@ _menu_call(Evas_Object *obj) ELM_ENTRY_DATA_GET(obj, sd); if (sd->anchor_hover.hover) return; + + eo_do(obj, eo_event_callback_call(ELM_ENTRY_EVENT_CONTEXT_OPEN, NULL)); + if ((sd->api) && (sd->api->obj_longpress)) { sd->api->obj_longpress(obj); diff --git a/src/lib/elm_entry.eo b/src/lib/elm_entry.eo index 4c63d9f..c60e848 100644 --- a/src/lib/elm_entry.eo +++ b/src/lib/elm_entry.eo @@ -1232,6 +1232,7 @@ class Elm.Entry (Elm.Layout, Elm_Interface_Scrollable, Evas.Clickable_Interface, changed; changed,user; validate; + context,open; } } --