📄 mmimmsfolders.c
字号:
if( data->win EQ NULL )
{
return NULL;
}
MMS_Set_MsgList_WHnd(data->win);
data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_Menu_Folder_dialog;
data->mmi_control.data = data;
data->winID = folderType;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent = window;
winShow(data->win);
return data->win;
}
static void MMS_Menu_Folder_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_MENU_FOLDERS * data = (T_MMS_MENU_FOLDERS *)win_data->user;
T_MFW_HND * parent = data->parent;
P_MMS mms = getMMS();
T_DISPLAY_DATA display_info;
MMS_TRACE_FUNCTION("MMS_Menu_Folder_dialog");
MMS_TRACE_EVENT(( " foldertype:%d", value));
switch( event )
{
case E_INIT:
if(value == MMS_SEND_FOLDER)
manager_set_currentfolder(mms->manager->unsendfolder);
else if(value == MMS_RECV_FOLDER)
manager_set_currentfolder(mms->manager->receivefolder);
else if(value == MMS_DRAFT_FOLDER)
manager_set_currentfolder(mms->manager->draftfolder);
else if(value == MMS_SENT_FOLDER)
manager_set_currentfolder(mms->manager->sendfolder);
else
return;
if(mms->manager && mms->manager->currentfolder && mms->manager->currentfolder->messagenumber > 0)
MMS_Menu_Folder_listmenu_create(data);
break;
case E_RETURN:
case E_EXIT:
case E_BACK:
if(mms->manager && mms->manager->currentfolder)
{
if(mms->manager->currentfolder->messagenumber > 0)
{
MMS_Menu_Folder_destroy(data->win);
MMS_Menu_Folder_start(parent , gCurMMSPos);
return;
}
else
{
#if 0
switch(gCurMMSPos)
{
case MMS_SEND_FOLDER:
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtSoftBack;
//display_info.LeftSoftKey = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
display_info.Time = TWO_SECS;
display_info.KeyEvents = KEY_RIGHT;
display_info.TextId2 = TxtMMSSendFolderEmpty;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex = REMIND_COMPLETE;
info_dialog (win, &display_info);
break;
case MMS_RECV_FOLDER:
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtSoftBack;
//display_info.LeftSoftKey = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
display_info.Time = TWO_SECS;
display_info.KeyEvents = KEY_RIGHT;
display_info.TextId2 = TxtMMSRecvFolderEmpty;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex = REMIND_COMPLETE;
info_dialog (win, &display_info);
break;
case MMS_DRAFT_FOLDER:
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtSoftBack;
//display_info.LeftSoftKey = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
display_info.Time = TWO_SECS;
display_info.KeyEvents = KEY_RIGHT;
display_info.TextId2 = TxtMMSDraftFolderEmpty;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex = REMIND_COMPLETE;
info_dialog (win, &display_info);
break;
case MMS_SENT_FOLDER:
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtSoftBack;
//display_info.LeftSoftKey = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
display_info.Time = TWO_SECS;
display_info.KeyEvents = KEY_RIGHT;
display_info.TextId2 = TxtMMSSentFolderEmpty;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex = REMIND_COMPLETE;
info_dialog (win, &display_info);
break;
default:
break;
}
#endif
MMS_Menu_Folder_destroy(data->win);
switch(gCurMMSPos)
{
case MMS_SEND_FOLDER:
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtSoftBack;
//display_info.LeftSoftKey = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
display_info.Time = TWO_SECS;
display_info.KeyEvents = KEY_RIGHT;
display_info.TextId2 = TxtMMSSendFolderEmpty;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex = REMIND_COMPLETE;
info_dialog (parent, &display_info);
break;
case MMS_RECV_FOLDER:
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtSoftBack;
//display_info.LeftSoftKey = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
display_info.Time = TWO_SECS;
display_info.KeyEvents = KEY_RIGHT;
display_info.TextId2 = TxtMMSRecvFolderEmpty;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex = REMIND_COMPLETE;
info_dialog (parent, &display_info);
break;
case MMS_DRAFT_FOLDER:
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtSoftBack;
//display_info.LeftSoftKey = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
display_info.Time = TWO_SECS;
display_info.KeyEvents = KEY_RIGHT;
display_info.TextId2 = TxtMMSDraftFolderEmpty;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex = REMIND_FAILURE;
info_dialog (parent, &display_info);
break;
case MMS_SENT_FOLDER:
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtSoftBack;
//display_info.LeftSoftKey = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
display_info.Time = TWO_SECS;
display_info.KeyEvents = KEY_RIGHT;
display_info.TextId2 = TxtMMSSentFolderEmpty;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.Identifier = DIALOGS_REASON_NULL;
display_info.iconindex = REMIND_COMPLETE;
info_dialog (parent, &display_info);
break;
default:
break;
}
// SEND_EVENT (parent, event, 0, NULL);
}
}
break;
case E_ABORT:
MMS_Menu_Folder_destroy(data->win);
SEND_EVENT (parent, event, 0, NULL); /* forward event to parent */
break;
default:
return;
};
return;
}
static void MMS_Menu_Folder_listmenu_create(T_MMS_MENU_FOLDERS *data)
{
int i=0;
pMessage msglist;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Menu_Folder_listmenu_create");
switch( data->winID )
{
case MMS_SEND_FOLDER:
data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtMMSSendFolder);
break;
case MMS_RECV_FOLDER:
data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtMMSRecvFolder);
break;
case MMS_DRAFT_FOLDER:
data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtMMSDraftFolder);
break;
case MMS_SENT_FOLDER:
data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtMMSSentFolder);
break;
}
MMS_TRACE_EVENT(("MMS_Menu_Folder_listmenu_create()"));
MMS_TRACE_EVENT(("the message number in current folder is:%d",mms->manager->currentfolder->messagenumber));
data->list_menu_data.ListPosition = iMsgListIndex+1;
data->list_menu_data.CursorPosition = iMsgListIndex+1;
data->list_menu_data.SnapshotSize = mms->manager->currentfolder->messagenumber;
data->list_menu_data.Font = 0;
data->list_menu_data.LeftSoftKey = TxtSoftSelect;
data->list_menu_data.RightSoftKey = TxtSoftBack;
data->list_menu_data.KeyEvents = KEY_ALL^KEY_CALL;//KEY_RIGHT|KEY_LEFT | KEY_MNUUP | KEY_MNUDOWN;
data->list_menu_data.Reason = 0;
data->list_menu_data.Strings = TRUE;
data->list_menu_data.Attr = &MMS_Menu_Folder_Attrib;
data->list_menu_data.autoDestroy = TRUE;
data->list_menu_data.List = (MfwMnuItem *)ALLOC_MEMORY ((mms->manager->currentfolder->messagenumber) * sizeof (MfwMnuItem));
data->list_menu_data.ListMenuFlag=1;
data->list_menu_data.ListLength = mms->manager->currentfolder->messagenumber;
data->list_menu_data.autoDestroy = TRUE;
for(msglist=mms->manager->currentfolder->root; msglist; msglist=msglist->next)
{
data->list_menu_data.List[i].icon =&textlistIcon;
data->list_menu_data.List[i].exta = 0;
data->list_menu_data.List[i].edit = 0;
data->list_menu_data.List[i].menu = 0;
data->list_menu_data.List[i].func = 0;
data->list_menu_data.List[i].flagFunc = item_flag_none;
if(msglist->title && msglist->title[0] != '\0')
{
data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY ( MMS_TITLE_NUM_LENGTH);
wstrcpy(data->list_menu_data.List[i].str ,(char *) (msglist->title));
}
else
{
data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY (MMS_TITLE_NUM_LENGTH);
data->list_menu_data.List[i].str[0] = '\0';
}
i++;
}
data->msgNum = i;
//manager_set_currentmessage(mms->manager->currentfolder, 1);
listDisplayListMenu(data->win, &data->list_menu_data, (ListCbFunc)MMS_Menu_Folder_listmenu_cb,0);
}
static void MMS_Menu_Folder_listmenu_cb (T_MFW_HND * win, ListMenuData * ListData)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_MENU_FOLDERS * data = (T_MMS_MENU_FOLDERS *)win_data->user;
P_MMS mms = getMMS();
pMessage curMsg = NULL;
pMessage msglist = NULL;
MMS_TRACE_FUNCTION("MMS_Menu_Folder_listmenu_cb");
switch( ListData->Reason )
{
case LISTS_REASON_OK:
case LISTS_REASON_SELECT:
// iMsgListIndex = data->list_menu_data.CursorPosition;
iMsgListIndex = ListData->CursorPosition;
if(iMsgListIndex <= (mms->manager->currentfolder->messagenumber -1))
{
#ifdef MMI_MMSTASK_ENABLED/*talcon added for mms task,2004.07.19*/
{
mmsui_data->temp_win = info_mms_dialog(win);
mmsui_data->current_win = win;
mmsui_data->folderType = data->winID;
}
{
T_MMI_MMS_MSETCMSG_IND parameter;
parameter.pFolder = mms->manager->currentfolder;
parameter.index = iMsgListIndex + 1;
MMS_TRACE_EVENT(("0x%08x,0x%08x,%d", mms->manager, mms->manager->currentfolder,parameter.index));
MMS_TRACE_EVENT(("type:%d,n:%d,unsel:%d,prote:%d,size:%d,0x%08x,0x%08x",mms->manager->currentfolder->type,mms->manager->currentfolder->messagenumber,mms->manager->currentfolder->unsettlednumber,mms->manager->currentfolder->protectednumber,mms->manager->currentfolder->size,mms->manager->currentfolder->currentmessage,mms->manager->currentfolder->root));
M_MMI_MMS_MSETCMSG_IND( ¶meter);
}
#else
manager_set_currentmessage(mms->manager->currentfolder, iMsgListIndex + 1);
curMsg = mms->manager->currentfolder->currentmessage;
#endif
}
#ifndef MMI_MMSTASK_ENABLED
if(curMsg && curMsg->state != MMS_MSG_TYPE_UNNOTI)
{
MMS_Folders_Play_start(data->win , data->winID);
}
else
MMS_Folder_Detail_start(data->win);
#endif
break;
case LISTS_REASON_BACK:
MMS_Menu_Folder_destroy(data->win);
break;
case LISTS_REASON_UP:
for(msglist=mms->manager->currentfolder->root; msglist->next; msglist=msglist->next)
{
if(msglist->next == mms->manager->currentfolder->currentmessage)
{
mms->manager->currentfolder->currentmessage = msglist;
}
}
break;
case LISTS_REASON_DOWN:
if(mms->manager->currentfolder->currentmessage->next)
{
mms->manager->currentfolder->currentmessage = mms->manager->currentfolder->currentmessage->next;
}
break;
case LISTS_REASON_HANGUP:
/*if(mms->manager)
{
manager_on_destroy();
mms->manager = NULL;
}*/
break;
default:
break;
}
return;
}
static void MMS_Menu_Folder_destroy (T_MFW_HND window)
{
T_MFW_WIN * win_data;
T_MMS_MENU_FOLDERS * data;
USHORT i;
// pMessage pMsg;
// P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Menu_Folder_destroy");
if( window )
{
win_data = ((T_MFW_HDR *)window)->data;
data = (T_MMS_MENU_FOLDERS *)win_data->user;
if( data )
{
win_delete (data->win);
MMS_Set_MsgList_WHnd(NULL);
// for( i = 0; i < mms->manager->currentfolder->messagenumber; i++ )
for(i=0; i < data->msgNum; i++)
FREE_MEMORY( (void *)(data->list_menu_data.List[i].str), MMS_TITLE_NUM_LENGTH);
FREE_MEMORY ((void *)data->list_menu_data.List, data->msgNum* sizeof (MfwMnuItem));
FREE_MEMORY ((void *)data, sizeof (T_MMS_MENU_FOLDERS));
}
else
{
;
}
}
}
//MMS播放界面
static T_MFW_HND MMS_Folders_Play_start(MfwHnd parent_window, MMS_FOLDER_TYPE folderType)
{
T_MFW_HND win;
MMS_TRACE_FUNCTION("MMS_Folders_Play_start");
win = MMS_Folders_Play_create (parent_window, folderType);
if( win NEQ NULL )
{
SEND_EVENT (win, E_INIT, NULL, NULL);
}
return win;
}
static T_MFW_HND MMS_Folders_Play_create(T_MFW_HND parent_window, MMS_FOLDER_TYPE folderType)
{
T_MMS_FOLDERS_PLAYER * data = (T_MMS_FOLDERS_PLAYER *)ALLOC_MEMORY (sizeof (T_MMS_FOLDERS_PLAYER));
T_MFW_WIN * win;
PlayerInitRetVal playerVal;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Folders_Play_create");
data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)MMS_Folders_Play_win_cb);
if( data->win EQ NULL )
{
return NULL;
}
data->winID = folderType;
data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_Folders_Play_dialog;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent = parent_window;
//播放器的初始化
if(mms->player == NULL)
{
#ifdef MMI_MMSTASK_ENABLED
mmsui_data->temp_win = info_mms_dialog(win);
mmsui_data->current_win = win;
{
T_MMI_MMS_PLAYERINITIALIZE_IND parameter;
parameter.event = PLAYER_INIT_PLAY;
MMSTASK_DELAY(10);
M_MMI_MMS_PLAYERINITIALIZE_IND(¶meter);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -