From a7cd873410c7a9eaf1443e1554dfa199b2e4c50c Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Sat, 21 Sep 2013 19:45:12 +0900 Subject: [PATCH] elm_menu: added "dismissed" smart callback for dismiss action. - "clicked" smart callback was used for dismiss action. - "clicked" should be removed in EFL 2.0. Updated "EFL 2.0 TODO" wiki page. - Updated ChangeLog and NEWS. - Added sample code to elementary_test. - Updated documentation. --- legacy/elementary/ChangeLog | 4 ++++ legacy/elementary/NEWS | 1 + legacy/elementary/src/bin/test_menu.c | 9 +++++++++ legacy/elementary/src/lib/elm_menu.c | 4 +++- legacy/elementary/src/lib/elm_menu.h | 1 + 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index 989ee94db5..42f9639a4c 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -1640,3 +1640,7 @@ 2013-09-21 Daniel Juyung Seo (SeoZ) * hover: added "dismissed" callback. + +2013-09-21 Daniel Juyung Seo (SeoZ) + + * menu: added "dismissed" callback. diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index 061bae4ecf..2295473b52 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -92,6 +92,7 @@ Additions: * elm_object_item : Introduces new APIs, elm_object_item_track(), elm_object_item_untrack(), elm_object_item_track_get(). * Add elm_widget_item_part_text_custom_set(), elm_widget_item_part_text_custom_get(), elm_widget_item_part_text_custom_update(). * Add "dismissed" smart callback for hover. + * Add "dismissed" smart callback for menu. Improvements: diff --git a/legacy/elementary/src/bin/test_menu.c b/legacy/elementary/src/bin/test_menu.c index 65a2244c21..9f9fb10cbb 100644 --- a/legacy/elementary/src/bin/test_menu.c +++ b/legacy/elementary/src/bin/test_menu.c @@ -4,6 +4,13 @@ #include #ifndef ELM_LIB_QUICKLAUNCH +static void +_menu_dismissed_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + printf("menu dismissed callback is called!\n"); +} + static void _menu_show_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) @@ -118,6 +125,8 @@ test_menu(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, evas_object_show(rect); menu = elm_menu_add(win); + evas_object_smart_callback_add(menu, "dismissed", _menu_dismissed_cb, NULL); + elm_menu_item_add(menu, NULL, NULL, "first item", NULL, NULL); menu_it = elm_menu_item_add(menu, NULL, "mail-reply-all", "second item", diff --git a/legacy/elementary/src/lib/elm_menu.c b/legacy/elementary/src/lib/elm_menu.c index 44b4a749f8..7572473dfe 100644 --- a/legacy/elementary/src/lib/elm_menu.c +++ b/legacy/elementary/src/lib/elm_menu.c @@ -14,7 +14,8 @@ EAPI Eo_Op ELM_OBJ_MENU_BASE_ID = EO_NOOP; #define MY_CLASS_NAME "elm_menu" #define ELM_PRIV_MENU_SIGNALS(cmd) \ - cmd(SIG_CLICKED, "clicked", "") + cmd(SIG_CLICKED, "clicked", "") \ + cmd(SIG_DISMISSED, "dismissed", "") ELM_PRIV_MENU_SIGNALS(ELM_PRIV_STATIC_VARIABLE_DECLARE); @@ -391,6 +392,7 @@ _hover_dismissed_cb(void *data, { _menu_hide(data, obj, event_info); evas_object_smart_callback_call(data, SIG_CLICKED, NULL); + evas_object_smart_callback_call(data, SIG_DISMISSED, NULL); } static void diff --git a/legacy/elementary/src/lib/elm_menu.h b/legacy/elementary/src/lib/elm_menu.h index 13ba589f80..10cddde617 100644 --- a/legacy/elementary/src/lib/elm_menu.h +++ b/legacy/elementary/src/lib/elm_menu.h @@ -15,6 +15,7 @@ * * Signals that you can add callbacks for are: * @li @c "clicked" - the user clicked the empty space in the menu to dismiss. + * @li @c "dismissed" - the user clicked the empty space in the menu to dismiss (since 1.8) * * Default content parts of the menu items that you can use for are: * @li @c "default" - A main content of the menu item