📄 filemgr.c
字号:
#ifdef __USB_IN_NORMAL_MODE__
if (!mmi_usb_is_in_mass_storage_mode() ||
mmi_usb_is_leaving_ms_mode() ||
!mmi_usb_is_any_exported_drive())
#endif
{
fmgr_p->drv_count++;
UnicodeToAnsii((PS8) fmgr_p->drv_list[FMGR_DRM_RO_STORAGE], (PS8) DRM_RO_PATH);
}
#endif /* __DRM_MTK__ */
}
/*****************************************************************************
* FUNCTION
* highlight_fmgr_drive_list
* DESCRIPTION
* highlight handler for drive
* PARAMETERS
* hiliteID [IN]
* RETURNS
* void
*****************************************************************************/
void highlight_fmgr_drive_list(S32 hiliteID)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 index;
U8 sel_type;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
fmgr_p->cur_index = hiliteID;
index = fmgr_get_drive_index(hiliteID);
if (index >= 0)
{
AnsiiToUnicodeString((PS8) fmgr_p->file_path, (PS8) fmgr_p->drv_list[index]);
}
if (fmgr_p->src_application == APP_FILEMANAGER)
{
if (fmgr_p->tree_action == FMGR_ACTION_COPY || fmgr_p->tree_action == FMGR_ACTION_MOVE)
{
#if 0//def __DRM_MTK__ added chenyang,20071010
if (index == FMGR_DRM_RO_STORAGE)
{
ChangeLeftSoftkey(0, 0);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_LSK, KEY_EVENT_UP);
SetRightSoftkeyFunction(fmgr_abort_copy_select, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
}
else
#endif /* __DRM_MTK__ */
{
ChangeLeftSoftkey(STR_GLOBAL_OPTIONS, 0);
SetKeyHandler(fmgr_set_curr_tree_and_enter, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_drive_option, KEY_EVENT_UP);
SetRightSoftkeyFunction(fmgr_abort_copy_select, KEY_EVENT_UP);
/* Leo start 20050808 */
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(fmgr_set_curr_tree_and_enter);
#endif
/* Leo end 20050808 */
}
}
else
{
#if 0//defined(__DRM_MTK__) added chenyang,20071010
if (index == FMGR_DRM_RO_STORAGE)
{
ChangeLeftSoftkey(STR_FMGR_OPEN, 0);
SetKeyHandler(entry_fmgr_explorer, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_explorer, KEY_EVENT_UP);
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(entry_fmgr_explorer);
#endif
}
else
#endif /* __DRM_MTK__ */
{
ChangeLeftSoftkey(STR_GLOBAL_OPTIONS, 0);
SetKeyHandler(entry_fmgr_explorer, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_drive_option, KEY_EVENT_UP);
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
/* Leo start 20050808 */
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(entry_fmgr_explorer);
#endif
/* Leo end 20050808 */
}
}
ClearKeyHandler(KEY_LEFT_ARROW, KEY_EVENT_DOWN);
return;
}
#if 0//defined(__DRM_MTK__) added chenyang,20071010
if (index == FMGR_DRM_RO_STORAGE)
{
/* not FMGR, can't enter DRM drive */
ChangeLeftSoftkey(0, 0);
ClearKeyHandler(KEY_LEFT_ARROW, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_LSK, KEY_EVENT_UP);
SetRightSoftkeyFunction(fmgr_abort_app_select, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
return;
}
#endif /* __DRM_MTK__ */
sel_type = fmgr_p->sel_type & 0x0f;
switch (sel_type)
{
case FMGR_SELECT_FILE:
ChangeLeftSoftkey(STR_FMGR_OPEN, 0);
SetKeyHandler(entry_fmgr_explorer, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_explorer, KEY_EVENT_UP);
/* Leo start 20050808 */
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(entry_fmgr_explorer);
#endif
/* Leo end 20050808 */
break;
case FMGR_SELECT_FILE_OR_FOLDER:
case FMGR_SELECT_FOLDER:
ChangeLeftSoftkey(STR_GLOBAL_OPTIONS, 0);
SetKeyHandler(entry_fmgr_explorer, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_drive_option, KEY_EVENT_UP);
/* Leo start 20050808 */
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(entry_fmgr_explorer);
#endif
/* Leo end 20050808 */
break;
case FMGR_SELECT_BROWSE:
ChangeLeftSoftkey(STR_GLOBAL_OPTIONS, 0);
SetKeyHandler(entry_fmgr_explorer, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_app_drive_option, KEY_EVENT_UP);
/* Leo start 20050808 */
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(entry_fmgr_explorer);
#endif
/* Leo end 20050808 */
break;
}
ClearKeyHandler(KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(fmgr_abort_app_select, KEY_EVENT_UP);
}
/*****************************************************************************
* FUNCTION
* fmgr_get_drive_index
* DESCRIPTION
* map highlight id and drive index
* PARAMETERS
* hiliteID [IN]
* RETURNS
* void
*****************************************************************************/
S8 fmgr_get_drive_index(S32 hiliteID)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 i = 0, count = 0, mask;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mask = fmgr_get_msdc_mask();
for (i = 0; i < FMGR_TOTAL_STORAGE; i++)
{
if (fmgr_p->drv_list[i][0] != 0)
{
if (((i >= FMGR_REMOVABLE_STORAGE) &&
(mask & (0x01 << (i - FMGR_REMOVABLE_STORAGE)))) || i < FMGR_REMOVABLE_STORAGE)
{
count++;
}
}
if (count == hiliteID + 1)
{
break;
}
}
if (i == FMGR_TOTAL_STORAGE)
{
return (S8) - 1;
}
return i;
}
/*****************************************************************************
* FUNCTION
* fmgr_return_to_editor
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void fmgr_return_to_editor(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
GoBacknHistory(1);
}
/*****************************************************************************
* FUNCTION
* highlight_fmgr_drive_open
* DESCRIPTION
* highlight handler for open drive
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void highlight_fmgr_drive_open(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_explorer, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
}
/*****************************************************************************
* FUNCTION
* highlight_fmgr_format
* DESCRIPTION
* highlight handler for format drive
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void highlight_fmgr_format(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
fmgr_p->drive_action = FMGR_ACTION_FORMAT;
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_drive_confirm, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
}
/*****************************************************************************
* FUNCTION
* highlight_fmgr_check_drive
* DESCRIPTION
* highlight handler for scan drive
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void highlight_fmgr_check_drive(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
fmgr_p->drive_action = FMGR_ACTION_CHECK_DRIVE;
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_drive_confirm, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
}
/*****************************************************************************
* FUNCTION
* highlight_fmgr_unmount
* DESCRIPTION
* highlight handler for unmount card
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void highlight_fmgr_unmount(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
fmgr_p->drive_action = FMGR_ACTION_UNMOUNT;
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_drive_confirm, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
}
/*****************************************************************************
* FUNCTION
* highlight_fmgr_node
* DESCRIPTION
* highlight handler for file or folder
* PARAMETERS
* index [IN]
* RETURNS
* void
*****************************************************************************/
void highlight_fmgr_node(S32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
FMGR_FILE_INFO_STRUCT file_info;
U8 sel_type;
#if defined(__DRM_V02__)
MMI_BOOL is_multi_odf = MMI_FALSE;
S32 file_type = 0;
#endif
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mmi_fmgr_kernel_get_file_info(index, &file_info);
fmgr_p->cur_index = index;
if (fmgr_p->src_application == APP_FILEMANAGER
#ifdef __MMI_MY_FAVORITE__
|| fmgr_p->src_application == APP_MYFAVORITE
#endif /* #ifdef __MMI_MY_FAVORITE__*/
)
{
#ifdef __DRM_MTK__
if (UCS2Strncmp((PS8) fmgr_p->file_path, (PS8) DRM_RO_PATH, UCS2Strlen((PS8) DRM_RO_PATH)) == 0)
{
/* DRM rights, back and left arrow only go back to drive list */
ChangeLeftSoftkey(STR_GLOBAL_OPTIONS, 0);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
/* SetLeftSoftkeyFunction(entry_fmgr_delete_confirm, KEY_EVENT_UP); */
SetLeftSoftkeyFunction(entry_fmgr_drm_rights_option, KEY_EVENT_UP);
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
return;
}
else
#endif /* __DRM_MTK__ */
#ifdef __MMI_DOWNLOAD_AGENT__
/* download agent file */
if (fmgr_is_da_file())
{
/* file node */
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_file_option, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
}
else
#endif /* __MMI_DOWNLOAD_AGENT__ */
{
if (file_info.attribute & FS_ATTR_DIR)
{
/* folder node */
if (fmgr_p->src_application == APP_FILEMANAGER)
{
SetLeftSoftkeyFunction(entry_fmgr_folder_option, KEY_EVENT_UP);
}
#ifdef __MMI_MY_FAVORITE__
else if (fmgr_p->src_application == APP_MYFAVORITE)
{
SetLeftSoftkeyFunction(entry_fmgr_folder_option, KEY_EVENT_UP);
}
#endif /* #ifdef __MMI_MY_FAVORITE__*/
SetKeyHandler(fmgr_set_curr_path_and_enter, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(fmgr_set_curr_path_and_enter);
#endif
}
else
{
/* file node */
if (fmgr_p->src_application == APP_FILEMANAGER)
{
SetLeftSoftkeyFunction(entry_fmgr_file_option, KEY_EVENT_UP);
}
#ifdef __MMI_MY_FAVORITE__
else if (fmgr_p->src_application == APP_MYFAVORITE)
{
SetLeftSoftkeyFunction(entry_fmgr_app_file_option, KEY_EVENT_UP);
}
#endif /* #ifdef __MMI_MY_FAVORITE__*/
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
}
SetKeyHandler(fmgr_back_to_parent, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(fmgr_back_to_parent, KEY_EVENT_UP);
}
return;
}
/* for other applications */
sel_type = fmgr_p->sel_type & 0x0f;
#if defined(__DRM_V02__)
if (FMGR_FILTER_IS_SET(&file_info.file_type, FMGR_TYPE_ODF))
{
if (mmi_fmgr_append_file_name((PS8) fmgr_p->file_path, (PS8) file_info.file_name) == FALSE
#ifndef __MMI_SHOW_FILE_EXT__
|| mmi_fmgr_append_file_name((PS8) fmgr_p->file_path, (PS8) file_info.file_ext) == FALSE
#endif
)
{
ChangeLeftSoftkey(STR_GLOBAL_OK, 0);
SetLeftSoftkeyFunction(fmgr_return_to_app, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
return;
}
file_type = mmi_fmgr_get_drm_file_type_by_path((PS8) fmgr_p->file_path, &file_info.file_type);
/* it is for avoid misjudge while highlight the files in the multipart ODF.
because DRM_IS_ARCHIVE() will return true, when query a single file in the multipart ODF */
if (file_type == FMGR_TYPE_ODF)
{
/* multi part ODF */
is_multi_odf = MMI_TRUE;
}
mmi_fmgr_remove_last_dir((PS8) fmgr_p->file_path);
}
#endif /* defined(__DRM_V02__) */
switch (sel_type)
{
case FMGR_SELECT_FILE:
/* select file */
if (file_info.attribute & FS_ATTR_DIR)
{
ChangeLeftSoftkey(STR_FMGR_OPEN, 0);
SetKeyHandler(fmgr_set_curr_path_and_enter, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(fmgr_set_curr_path_and_enter, KEY_EVENT_UP);
/* Leo start 20050808 */
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(fmgr_set_curr_path_and_enter);
#endif
/* Leo end 20050808 */
}
else
{
#if defined(__DRM_V02__)
if ((is_multi_odf == MMI_TRUE) && !(fmgr_p->sel_type & FMGR_SELECT_ARCHIVE))
{
if (fmgr_p->sel_type & FMGR_SELECT_ARCHIVE_WITH_SINGLE_OBJECT)
{
ChangeLeftSoftkey(0, 0);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
}
else
{
ChangeLeftSoftkey(STR_FMGR_OPEN, 0);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(fmgr_open_mul_odf_hdlr, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(fmgr_open_mul_odf_hdlr);
#endif
}
}
else
{
if (FMGR_FILTER_IS_SET(&file_info.file_type, FMGR_TYPE_ODF))
{
if (!FMGR_FILTER_IS_SET(&fmgr_p->filter_type , file_type))
{
ChangeLeftSoftkey(0, 0);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
}
else
{
ChangeLeftSoftkey(STR_GLOBAL_OK, 0);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(fmgr_return_to_app, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
}
}
else
{
ChangeLeftSoftkey(STR_GLOBAL_OK, 0);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(fmgr_return_to_app, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
}
}
#else /* defined(__DRM_V02__) */
ChangeLeftSoftkey(STR_GLOBAL_OK, 0);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(fmgr_return_to_app, KEY_EVENT_UP);
#ifdef __MMI_TOUCH_SCREEN__
wgui_reset_list_item_selected_callback();
#endif
#endif /* #if defined(__DRM_V02__) */
}
#ifndef __AHONG_PROJECT_FEATURES__
SetKeyHandler(fmgr_back_to_parent, KEY_LEFT_ARROW, KEY_EVENT_DOWN);//wanggang 20071214 bug49551
#endif
SetRightSoftkeyFunction(fmgr_abort_app_select, KEY_EVENT_UP);
#if defined(__MMI_MY_FAVORITE__)
ClearKeyHandler(KEY_LEFT_ARROW, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
#endif
break;
case FMGR_SELECT_FOLDER:
/* select folder to save file */
if (file_info.attribute & FS_ATTR_DIR)
{
ChangeLeftSoftkey(STR_GLOBAL_OPTIONS, 0);
SetKeyHandler(fmgr_set_curr_path_and_enter, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(entry_fmgr_folder_option, KEY_EVENT_UP);
/* Leo start 20050808 */
#ifdef __MMI_TOUCH_SCREEN__
wgui_register_list_item_selected_callback(fmgr_set_curr_path_and_enter);
#endif
/* Leo end 20050808 */
}
SetKeyHandler(fmgr_back_to_parent, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(fmgr_abort_app_select, KEY_EVENT_UP);
#ifdef __MMI_CSB_BROWSER__
if(fmgr_p->src_application == APP_CSB)
{
ChangeLeftSoftkey(STR_ID_CSB_SET_TEXT, 0);
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
SetLeftSoftkeyFunction(fmgr_return_to_app, KEY_EVENT_UP);
}
#endif /* __MMI_CSB_BROWSER__ */
break;
case FMGR_SELECT_FILE_OR_FOLDER:
/* select file or folder */
if (file_info.attribute & FS_ATTR_DIR)
{
/* folder node */
ChangeLeftSoftkey(STR_GLOBAL_OPTIONS, 0);
SetKeyHandler(fmgr_set_curr_pat
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -