Elementary menu widget
This code snippets show how to create a menu widget, populate it with items and set the proper callbacks.
//item clicked callback
static void item_callback(void *data, Evas_Object *obj, void *event_info) {
dlog_print(DLOG_DEBUG, LOG_TAG, "Menu item clicked");
}
static void menu_test(appdata_s *ad) {
// create menu object
Evas_Object *menu = elm_menu_add(ad->win);
elm_menu_move(menu, 50, 50);
// create main items
Elm_Object_Item *item_1 = elm_menu_item_add(menu, NULL, "NULL", "item 1", NULL, NULL);
Elm_Object_Item *item_2 = elm_menu_item_add(menu, NULL, "NULL", "item 2", NULL, NULL);
Elm_Object_Item *item_3 = elm_menu_item_add(menu, NULL, "NULL", "item 3", NULL, NULL);
// create the rest of the itmes with callbacks
elm_menu_item_add(menu, item_1, NULL, "item 1.1", item_callback, NULL);
elm_menu_item_add(menu, item_1, NULL, "item 1.2", item_callback, NULL);
elm_menu_item_add(menu, item_1, NULL, "item 1.3", item_callback, NULL);
elm_menu_item_add(menu, item_3, NULL, "item 3.1", item_callback, NULL);
//disable one of the items
elm_object_item_disabled_set(item_2, EINA_TRUE);
evas_object_show(menu);
}