From 4247a46978090c594ea8db08bc44767248ddb564 Mon Sep 17 00:00:00 2001 From: raster Date: Fri, 25 Mar 2011 04:42:12 +0000 Subject: [PATCH] From: Tristan Lelong Subject: [E-devel] [PATCH]: keyboard navigation in menus I was using elementary on a target that only has a keyboard, and I add to do several modification on the elm_menu to handle keyboard navigation. - patch 1: discard a menu from C source code - patch 2: add accessors for menu items and add the ability to handle selected item from C source code git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@58084 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/Elementary.h.in | 1 + src/lib/elm_menu.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/lib/Elementary.h.in b/src/lib/Elementary.h.in index 4c5f27d..dd522cf 100644 --- a/src/lib/Elementary.h.in +++ b/src/lib/Elementary.h.in @@ -1559,6 +1559,7 @@ extern "C" { EAPI void elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_menu_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI void elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1); + EAPI void elm_menu_close(Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI const Eina_List *elm_menu_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_menu_item_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1); EAPI Elm_Menu_Item *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1); diff --git a/src/lib/elm_menu.c b/src/lib/elm_menu.c index b6936cb..c470ad4 100644 --- a/src/lib/elm_menu.c +++ b/src/lib/elm_menu.c @@ -571,6 +571,22 @@ elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) } /** + * Close a opened menu + * + * @param obj the menu object + * @return void + * + * @ingroup Menu + */ +EAPI void +elm_menu_close(Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + _menu_hide(obj, wd->hv, NULL); +} + +/** * Get the Evas_Object of an Elm_Menu_Item * * @param item The menu item object. -- 2.7.4