📄 mmidc_storage_wintab.c
字号:
// Note:
/*****************************************************************************/
PUBLIC void MMIDC_OpenAlbumWin(MMIDC_ALBUM_OPEN_FROM open_album_status)
{
uint32 total_photo_num = 0;
total_photo_num = DCSaveInfo_GetPotoTotalNum();
if (total_photo_num > 0)
{
//save that who opened the album
s_album_open_status = open_album_status;
MMK_CreateWin((uint32 *)MMIDC_ALBUM_WIN_TAB, PNULL);
}
else
{
PUBWIN_OpenPromptAlertWin(PUBWIN_SOFTKEY_ONE, TXT_DC_NOPHOTO, IMAGE_PROMPT_ICON_ALERT, MMI_3SECONDS, PNULL);
}
}
/*****************************************************************************/
// Description : get album open status that has been saved
// Global resource dependence :
// Author: bruce.chi
// Note:
/*****************************************************************************/
PUBLIC const MMIDC_ALBUM_OPEN_FROM *GetAlbumOpenStatus(void)
{
return &s_album_open_status;
}
/*****************************************************************************/
// Description : get album open status that has been saved
// Global resource dependence :
// Author:
// Note:
/*****************************************************************************/
PUBLIC void SetAlbumOpenStatus(MMIDC_ALBUM_OPEN_FROM open_status)
{
s_album_open_status = open_status;
}
/*****************************************************************************/
// Description : open photo option window
// Global resource dependence :
// Author:
// Note: BOOLEAN is_from_capture : TRUE: from capture, FALSE: from album
/*****************************************************************************/
PUBLIC void MMIDC_OpenPhotoOptionWin(BOOLEAN is_from_capture, BOOLEAN is_valid, uint32 photo_index, uint8 *buf_ptr, uint32 buf_len)
{
static PHOTO_OPT_WINDOW_INFO_T *photo_opt_info_ptr = PNULL;
DC_ASSERT_LOW(photo_index < MMIDC_MAX_PHOTO_NUM);
SCI_TRACE_LOW("MMIDC_OpenPhotoOptionWin:is_from_capture=%d, is_valid=%d", is_from_capture, is_valid);
photo_opt_info_ptr = SCI_ALLOC(sizeof(PHOTO_OPT_WINDOW_INFO_T));
photo_opt_info_ptr->photo_index = photo_index;
photo_opt_info_ptr->photo_buf_ptr = buf_ptr;
photo_opt_info_ptr->photo_buf_len = buf_len;
photo_opt_info_ptr->is_photo_valid = is_valid;
if (is_from_capture)
{
MMK_CreateWin((uint32 *) MMIMDC_PHOTOOPTION_WIN_TAB, (ADD_DATA)photo_opt_info_ptr);
}
else
{
MMK_CreateWin((uint32 *) MMIMDC_ALBUMOPTION_WIN_TAB, (ADD_DATA)photo_opt_info_ptr);
}
}
/*****************************************************************************/
// Description : to handle the message of picture optioni win
// Global resource dependence :
// Author:bruce.chi
// Note:
/*****************************************************************************/
LOCAL MMI_RESULT_E HandlePicOptionMenuWinMsg(
MMI_WIN_ID_T win_id,
MMI_MESSAGE_ID_E msg_id,
DPARAM param
)
{
BOOLEAN copy_is_grap = FALSE,menu_is_grap = FALSE;
BOOLEAN recode = MMI_RESULT_TRUE;
MMI_MENU_ID_T menu_id = 0;
MMI_MENU_GROUP_ID_T group_id = 0;
MMI_STRING_T prompt_str = {0};
uint32 photo_total_num = 0;
uint32 photo_index = 0;
MMI_CTRL_ID_T menu_ctrl_id = MMIDC_PICOPTION_MENU_ID;
PHOTO_OPT_WINDOW_INFO_T *photo_opt_info_ptr = PNULL;
MMIDC_FFS_DEL_RESULT_E del_result = 0;
MMIDC_FFS_ASY_DEL_RESULT_T *st_del_result_ptr = PNULL;
const MMIDC_PHOTO_DETAIL_T *photo_detail_ptr = PNULL;
uint8 name_arr[MMIDC_MAX_PHOTO_NAME_LEN + MMIDC_DEFAULT_SUBFIX_LEN * 2 + 2] = {0};
uint16 name_len = 0;
#ifdef MMI_BLUETOOTH
uint16 ucs2_str[MMIBT_SEND_FILE_NAME_MAX_LEN] ={0};
uint8 ucs2_len = 0;
uint8 gb_pathname[MMIBT_FILE_DIR_MAX_LENGTH] = {0};
MMI_STRING_T file_name_info = {0};
uint16 file_name[(MMIDC_MAX_PHOTO_NAME_LEN + MMIDC_DEFAULT_SUBFIX_LEN * 2 + 4) / 2] = {0};
uint16 file_name_len = 0;
#endif
switch(msg_id)
{
case MSG_OPEN_WINDOW:
photo_opt_info_ptr = (PHOTO_OPT_WINDOW_INFO_T *)MMK_GetWinAddDataPtr(win_id);
SCI_ASSERT(photo_opt_info_ptr != PNULL);
//whether read file succeed
//whether read file succeed
if (!photo_opt_info_ptr->is_photo_valid)
{
menu_is_grap = TRUE;
}
else
{
menu_is_grap = FALSE;
}
//设置菜单项是否要变灰
if(MMI_GetSDStatus())
{
copy_is_grap = FALSE;
}
else
{
copy_is_grap = TRUE;
}
MMI_EnableGrayed(MENU_DC_ALBUM_OPT, ID_DC_OPT_WALLPAPER, menu_is_grap);
MMI_EnableGrayed(MENU_DC_ALBUM_OPT, ID_DC_OPT_SEND, menu_is_grap);
MMI_EnableGrayed(MENU_DC_ALBUM_OPT, ID_DC_OPT_RENAME, menu_is_grap);
MMI_EnableGrayed(MENU_DC_ALBUM_OPT, ID_DC_OPT_COPY, copy_is_grap);
MMI_EnableGrayed(MENU_DC_PHOTO_OPT, ID_DC_OPT_WALLPAPER, menu_is_grap);
MMI_EnableGrayed(MENU_DC_PHOTO_OPT, ID_DC_OPT_SEND, menu_is_grap);
MMI_EnableGrayed(MENU_DC_PHOTO_OPT, ID_DC_OPT_RENAME, menu_is_grap);
//T-flash上的照片不能发送和设为墙纸
photo_detail_ptr = DCSaveInfo_GetPhotoDetail(photo_opt_info_ptr->photo_index);
if (MMIMEDIUM_TFLASH == photo_detail_ptr->location)
{
MMI_EnableGrayed(MENU_DC_ALBUM_OPT, ID_DC_OPT_WALLPAPER,TRUE);
#ifndef MMI_NOR_VERSION
MMI_EnableGrayed(MENU_DC_ALBUM_OPT, ID_DC_OPT_SEND,TRUE);
#endif
MMI_EnableGrayed(MENU_DC_PHOTO_OPT, ID_DC_OPT_WALLPAPER, TRUE);
#ifndef MMI_NOR_VERSION
MMI_EnableGrayed(MENU_DC_PHOTO_OPT, ID_DC_OPT_SEND, TRUE);
#endif
}
MMK_SetAtvCtrl(win_id, menu_ctrl_id);
break;
case MSG_CLOSE_WINDOW:
MMK_FreeWinAddData(win_id);
//close capture window
MMIDC_CloseCaptureWin();
break;
case MSG_CTL_OK:
GUIMENU_GetRetID(menu_ctrl_id, &group_id, &menu_id);
photo_opt_info_ptr = (PHOTO_OPT_WINDOW_INFO_T *)MMK_GetWinAddDataPtr(win_id);
SCI_ASSERT(photo_opt_info_ptr != PNULL);
switch (menu_id)
{
#ifdef MMI_BLUETOOTH
case ID_DC_ALBUM_SEND_MMS:
if(PNULL != photo_opt_info_ptr->photo_buf_ptr)
{
if (MMIMMS_SendImage(ANIM_JPG, photo_opt_info_ptr->photo_buf_len, photo_opt_info_ptr->photo_buf_ptr))
{
//To avoid that MMS preview JPG, which will use one BLOCK_MEM, I close this window and former preview JPG window
MMIDC_CloseCaptureWin();
MMK_CloseWin(win_id);
}
}
break;
case ID_DC_ALBUM_SEMD_BT:
photo_detail_ptr = DCSaveInfo_GetPhotoDetail(photo_opt_info_ptr->photo_index);
//get picture file path name
sprintf((char*)gb_pathname,"%s",MMIDC_PATH_NAME);
ucs2_len = GUI_GB2UCS(ucs2_str, gb_pathname, strlen((char*)gb_pathname));
//get picture file name
file_name_info = DCSaveInfo_GetPotoName(photo_opt_info_ptr->photo_index);
SCI_MEMCPY(file_name, file_name_info.str_ptr, file_name_info.length);
file_name_len = MMISTR_AddSubfix((uint8 *)file_name, file_name_info.length, TRUE, (uint8 *)MMIDC_DEFAULT_SUBFIX, MMIDC_DEFAULT_SUBFIX_LEN);
//call bt function to send file
MMIBT_SendFile( photo_detail_ptr->location,
ucs2_str,
ucs2_len,
file_name,
file_name_len,
photo_detail_ptr->memory_size);
break;
#else
case ID_DC_OPT_SEND: //Send
if(PNULL != photo_opt_info_ptr->photo_buf_ptr)
{
#ifndef MMI_NOR_VERSION
if (MMIMMS_SendImage(ANIM_JPG, photo_opt_info_ptr->photo_buf_len, photo_opt_info_ptr->photo_buf_ptr))
{
//To avoid that MMS preview JPG, which will use one BLOCK_MEM, I close this window and former preview JPG window
MMIDC_CloseCaptureWin();
MMK_CloseWin(MMIDC_BROWSER_WIN_ID);
MMK_CloseWin(win_id);
}
#else
//To avoid that MMS preview JPG, which will use one BLOCK_MEM, I close this window and former preview JPG window
MMIDC_CloseCaptureWin();
MMK_CloseWin(MMIDC_PREVIEW_WIN_ID);
MMK_CloseWin(MMIDC_BROWSER_WIN_ID);
MMK_CloseWin(win_id);
MMIMMS_SendImage(ANIM_JPG, photo_opt_info_ptr->photo_buf_len, photo_opt_info_ptr->photo_buf_ptr);
#endif
}
break;
#endif
case ID_DC_OPT_DELETEALL: //Delte all
PUBWIN_OpenPromptQueryWin(TXT_DC_OPT_DELETEALL, IMAGE_PROMPT_ICON_QUERY);
break;
case ID_DC_OPT_DELETE: //Delete
PUBWIN_OpenPromptQueryWin(TXT_DC_DELETEQUERY, IMAGE_PROMPT_ICON_QUERY);
break;
case ID_DC_OPT_WALLPAPER: //Set to wallpapre
PUBWIN_OpenPromptAlertWin(PUBWIN_SOFTKEY_NONE, TXTSYS_WAITING, IMAGE_PROMPT_ICON_WAIT, 0, HandleAlwaysWaitingAlertWinMsg);
MMK_PostMsg(win_id, MSG_MULTIM_CLOSE_WAITING_WIN, PNULL, 0);
break;
case ID_DC_OPT_RENAME: //Rename
MMIDC_OpenInputNameWin(photo_opt_info_ptr->photo_index);
break;
case ID_DC_OPT_DETAIL: //Detail
MMK_CreateWin((uint32*)MMIDC_SHOWDETAILWIN_TAB, (ADD_DATA)photo_opt_info_ptr);
break;
case ID_DC_OPT_COPY:
//询问是否复制
PUBWIN_OpenPromptQueryWin((MMI_TEXT_ID_T)TXT_DC_OPT_COPY, IMAGE_PROMPT_ICON_QUERY);
break;
default:
SCI_ASSERT(FALSE);
}
break;
case MSG_CTL_CANCEL:
MMK_CloseWin(win_id);
break;
case MSG_PROMPTWIN_OK:
//stop all ring
MMISET_StopAllRing(FALSE);
PUBWIN_ClosePromptQueryWin();
GUIMENU_GetRetID(MMIDC_PICOPTION_MENU_ID, &group_id, &menu_id);
if(menu_id == ID_DC_OPT_DELETE)
{
MMI_GetLabelTextByLang(TXTSYS_WAITING, &prompt_str);
//open waiting win
PUBWIN_OpenWaitingMessageWin(
MMIDC_DELETE_WAITING_WIN_ID,
WIN_ONE_LEVEL,
PUBWIN_SOFTKEY_NONE,
&prompt_str,
PNULL,
IMAGE_EXCEPTIVE_WAIT_ANIMA,
0,//WAIT_TEXT_BACKGROUND_COLOR,
PNULL,
HandleAlwaysWaitingWinMsg
);
photo_opt_info_ptr = (PHOTO_OPT_WINDOW_INFO_T *)MMK_GetWinAddDataPtr(win_id);
SCI_ASSERT(photo_opt_info_ptr != PNULL);
del_result = DCSaveInfo_AsyDelete(win_id, photo_opt_info_ptr->photo_index);
//alert delete result
AlertDeleteResult(del_result);
//modify album list
if (del_result == DCFFS_DEL_SUCCEED)
{
SCI_ASSERT(0);
}
else if (del_result == DCFFS_DEL_FAIL)
{
//close waiting win
PUBWIN_CloseWaitingMessageWin(MMIDC_DELETE_WAITING_WIN_ID);
}
}
else if (menu_id == ID_DC_OPT_DELETEALL)
{
MMI_GetLabelTextByLang(TXTSYS_WAITING, &prompt_str);
//open waiting win
PUBWIN_OpenWaitingMessageWin(
MMIDC_DELETE_WAITING_WIN_ID,
WIN_ONE_LEVEL,
PUBWIN_SOFTKEY_NONE,
&prompt_str,
PNULL,
IMAGE_EXCEPTIVE_WAIT_ANIMA,
0,//WAIT_TEXT_BACKGROUND_COLOR,
PNULL,
HandleAlwaysWaitingWinMsg
);
photo_total_num = DCSaveInfo_GetPotoTotalNum();
DC_ASSERT_LOW(photo_total_num > 0);
photo_index = DCSaveInfo_GetPotoTotalNum() - 1;
del_result = DCSaveInfo_AsyDelete(win_id, photo_index);
//alert delete result
AlertDeleteResult(del_result);
//modify album list
if (del_result == DCFFS_DEL_SUCCEED)
{
SCI_ASSERT(0);
}
else if (del_result == DCFFS_DEL_FAIL)
{
//close waiting win
PUBWIN_CloseWaitingMessageWin(MMIDC_DELETE_WAITING_WIN_ID);
//close review win
MMK_CloseWin(MMIDC_BROWSER_WIN_ID);
//close album win
MMK_CloseWin(MMIDC_ALBUM_WIN_ID);
//close this win
MMK_CloseWin(win_id);
}
}
else if (menu_id == ID_DC_OPT_COPY)
{ //提示请稍后
PUBWIN_OpenPromptAlertWinExt2(MMI_COPY_WAIT_WIN_ID,WIN_ONE_LEVEL,PUBWIN_SOFTKEY_NONE,(MMI_TEXT_ID_T)TXTSYS_WAITING,IMAGE_PROMPT_ICON_WAIT,0, MMIMP3_NotInterruptFfs);
//get the selected item
photo_index = GUILISTBOX_GetCurItemIndex(MMIDC_ALBUM_LISTBOX_CTRL_ID);
photo_index = (uint16)(s_mmidc_photo_info.total_num - 1 - photo_index);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -