if (ic->info.mime) { /* see if we have any mime handlers registered for this file */ l = e_fm_mime_handler_mime_handlers_get(ic->info.mime); } else { /* see if we have any glob handlers registered for this file */ snprintf(buf, sizeof(buf), "*.%s", strrchr(ic->info.file, '.')); l = e_fm_mime_handler_glob_handlers_get(buf); } if (l) { Evas_List *ll = NULL; mi = e_menu_item_new(mn); e_menu_item_separator_set(mi, 1); for (ll = l; ll; ll = ll->next) { E_Fm_Mime_Handler *handler = NULL; E_Fm2_Context_Menu_Data *md = NULL; handler = ll->data; if (!handler) continue; md = E_NEW(E_Fm2_Context_Menu_Data, 1); if (!md) continue; md->icon = ic; md->handler = handler; mi = e_menu_item_new(mn); e_menu_item_label_set(mi, handler->label); /* TODO: Add Icon */ e_menu_item_callback_set(mi, _e_fm2_icon_menu_item_cb, md); } }