summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--NEWS1
-rw-r--r--src/bin/test_menu.c9
-rw-r--r--src/lib/elm_menu.c4
-rw-r--r--src/lib/elm_menu.h1
5 files changed, 18 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 989ee94db..42f9639a4 100644
--- a/ChangeLog
+++ b/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/NEWS b/NEWS
index 061bae4ec..2295473b5 100644
--- a/NEWS
+++ b/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/src/bin/test_menu.c b/src/bin/test_menu.c
index 65a2244c2..9f9fb10cb 100644
--- a/src/bin/test_menu.c
+++ b/src/bin/test_menu.c
@@ -5,6 +5,13 @@
#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/src/lib/elm_menu.c b/src/lib/elm_menu.c
index 44b4a749f..7572473df 100644
--- a/src/lib/elm_menu.c
+++ b/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/src/lib/elm_menu.h b/src/lib/elm_menu.h
index 13ba589f8..10cddde61 100644
--- a/src/lib/elm_menu.h
+++ b/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