static void gocomics_create_menu (void) { Evas_Object *o; int i; /* Create List */ ENNA_OBJECT_DEL(mod->list); o = enna_list_add(enna->layout); for (i = 0; gocomics_list_map[i].name; i++) { Enna_File *item; item = calloc(1, sizeof(Enna_File)); item->label = (char *) gocomics_list_map[i].name; item->uri = (char *) gocomics_list_map[i].id; item->type = ENNA_FILE_FILE; enna_list_file_append(o, item, gocomics_select_comic, (void *) item); } enna_list_select_nth(o, 0); mod->list = o; elm_object_part_content_set(mod->layout, "service.browser.swallow", o); }
static void _parse_directory(Evas_Object *list, const char *dir_path) { struct dirent *dp; DIR *dir; if (!(dir = opendir(dir_path))) return; while ((dp = readdir(dir))) { Game_Entry *game; char dsfile[4096]; if (!enna_util_str_has_extension(dp->d_name, "desktop")) continue; sprintf(dsfile, "%s/%s", dir_path, dp->d_name); if ((game = _parse_desktop_game(dsfile))) { Enna_File *item; item = ENNA_NEW(Enna_File, 1); item->label = strdup(game->name); item->is_menu = 1; if (game->icon) item->icon = strdup(game->icon); enna_list_file_append(list, item, _play, strdup(game->exec));//TODO free this dup mod->count++; ENNA_FREE(game->name); ENNA_FREE(game->icon); ENNA_FREE(game->exec); ENNA_FREE(game); } } closedir(dir); }