示例#1
0
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);
}
示例#2
0
文件: games_sys.c 项目: GeeXboX/enna
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);
}