From: Tristan Lelong <tristan.lelong@blunderer.org>
authorTristan Lelong <tristan.lelong@blunderer.org>
Fri, 25 Mar 2011 04:42:12 +0000 (04:42 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Fri, 25 Mar 2011 04:42:12 +0000 (04:42 +0000)
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

SVN revision: 58084

src/lib/Elementary.h.in
src/lib/elm_menu.c

index 4c5f27d56b7b4f727e691d6b5095cd0ec5b84c09..dd522cfc524a00443c424d82b27320c3e5093972 100644 (file)
@@ -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);
index b6936cbcae63aaf8b7dc7bf93f1968bbfee14bf4..c470ad487befd7760a9fc24ca40ae3cbb54215ed 100644 (file)
@@ -570,6 +570,22 @@ elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
    _sizing_eval(obj);
 }
 
+/**
+ * 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
  *