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);
}

Responses

0 Replies