现在的位置: 首页 > 综合 > 正文

file manager中查看图片时切换上一张/下一张时如何将非image格式的文件过滤掉

2013年10月12日 ⁄ 综合 ⁄ 共 2273字 ⁄ 字号 评论关闭

 要实现只是显示图片文件,请参考以下修改方法:
 1. 在filemgrmain.c中添加如下全局变量和函数:
mmi_id g_cui_imgview;
U32 G_cui_id;

U8 fmgr_imgvwr_buffer[SRV_FMGR_FOLDER_FILELIST_MEM_SIZE];
SRV_FMGR_FILELIST_HANDLE fhlr;

mmi_ret mmi_imgvwr_filelist_refresh_proc(mmi_event_struct *param)
{
S16 start_index = 0;        
    
    srv_fmgr_filelist_refresh_result_event_struct *evt = (srv_fmgr_filelist_refresh_result_event_struct*) param;
    switch(param->evt_id) 
    {
    case EVT_ID_SRV_FMGR_FILELIST_REFRESH_RESULT:
     
     {
    S32 file_count;
    if (evt->result >= 0)
       {

    file_count = srv_fmgr_filelist_count(evt->handle);

    if (file_count > 0)
        {
                cui_imgview_set_mode_filelist(g_cui_imgview, evt->handle,start_index);
        cui_imgview_run(g_cui_imgview);
        
        }
        }
     }
    break;
    }
    return MMI_RET_OK;
}
 2.用static void fmgr_main_run_imgviewcui(mmi_fmgr_instance_struct *instance)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_id cui_id = GRP_ID_INVALID;
FMGR_FILTER filter;
FMGR_FILTER_INIT(&filter);
FMGR_FILTER_SET_IMAGE(&filter);
FMGR_FILTER_CLEAR(&filter, FMGR_TYPE_ANM);
FMGR_FILTER_CLEAR(&filter, FMGR_TYPE_EMS);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
cui_id = cui_imgview_create(mmi_fmgri_instance_get_screen_id(instance->id));
if (cui_id != GRP_ID_INVALID)

fmgr_main_p->imageviewer_cui_id = cui_id;
g_cui_imgview = cui_id;
srv_fmgr_folder_filelist_create((const WCHAR *)instance->file_path, &filter, srv_fmgr_sort_get(), fmgr_imgvwr_buffer, 
SRV_FMGR_FOLDER_FILELIST_MEM_SIZE, &fhlr);
srv_fmgr_filelist_refresh(fhlr, NULL, 0, 0, mmi_imgvwr_filelist_refresh_proc, NULL);
}
}
替换filemgrmain.c.c中原来的同名函数。
 另外,在某些版本中cui_imgview_set_mode_filelist的定义有错,
#define cui_imgview_set_mode_filelist(image_viewer_id, filelist, start_index)   \
        do{                                                                     \
            cui_imgview_src_data src_data;                                      \
            src_data.file_list.h_list = filelist;                               \
            src_data.file_list.cur_index = start_index;                         \
            cui_imgview_init_source(cui_id, IMGVIEW_SRC_FILELIST, &src_data);   \
        }while(0);
请将cui_imgview_init_source(cui_id, IMGVIEW_SRC_FILELIST, &src_data); 
中的cui_id改为
cui_imgview_init_source(image_viewer_id, IMGVIEW_SRC_FILELIST, &src_data); 

抱歉!评论已关闭.