📄 mmimmsfolders.c
字号:
T_MFW_HND MMS_Folder_Opt_create(T_MFW_HND parent_window)
{
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)ALLOC_MEMORY (sizeof (T_MMS_FOLDER_OPT));
T_MFW_WIN * win;
T_MFW_WIN * parentWin = ((T_MFW_HDR *)parent_window)->data;
T_MMS_FOLDERS_PLAYER * parent_data = (T_MMS_FOLDERS_PLAYER *)parentWin->user;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_create");
data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)MMS_Folder_Opt_win_cb);
if( data->win EQ NULL )
{
return NULL;
}
/*
* connect the dialog data to the MFW-window
*/
data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_Folder_Opt_dialog;
data->mmi_control.data = data;
data->winID = parent_data->winID;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent = parent_window;
return data->win;
}
static void MMS_Folder_Opt_destroy(T_MFW_HND win)
{
T_MFW_WIN * win_data;
T_MMS_FOLDER_OPT * data;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_destroy");
if(win)
{
win_data = ((T_MFW_HDR *)win)->data;
data = (T_MMS_FOLDER_OPT *)win_data->user;
if( data )
{
win_delete (data->win);
FREE_MEMORY ((void *)data, sizeof (T_MMS_FOLDER_OPT));
}
else
{
;
}
}
}
static void MMS_Folder_Opt_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)win_data->user;
T_MFW_HDR * parent = data->parent;
T_MFW_WIN * win_data2 = ((T_MFW_HDR *)parent)->data;
T_MMS_FOLDERS_PLAYER * parent_data = (T_MMS_FOLDERS_PLAYER *)win_data2->user;
// MMS_FOLDER_TYPE parentWinId =parent_data->winID;
char * title;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_dialog");
switch( event )
{
case E_INIT:
/* initialization of administrative data */
data->parent_data = parent_data;
data->kbd = kbdCreate(data->win,KEY_ALL, (MfwCb)MMS_Folder_Opt_kbd_cb);
data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)MMS_Folder_Opt_kbd_cb);
title = (char *) MmiRsrcGetText(TxtSoftOptions); // get the editor title text
data->menu = mnuListCreate(data->win,(MfwMnuAttr*)parameter, E_MNU_ESCAPE, (MfwCb)MMS_Folder_Opt_mnu_cb,title);
mnuLang(data->menu,mainMmiLng);
/* put the (new) dialog window on top of the window stack */
mnuUnhide(data->menu);
winShow(win);
break;
case E_RETURN:
MMS_Folder_Opt_destroy(data->win);
switch( data->winID)
{
case MMS_SEND_FOLDER:
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSSendFolderOptionMenuAttributes());
break;
case MMS_RECV_FOLDER:
{
P_MMS mms = getMMS();
pMessage pMsg = NULL;
if(mms->manager && mms->manager->currentfolder )
{
pMsg = mms->manager->currentfolder->currentmessage;
MMS_TRACE_EVENT(("MMS_Folder_Opt_dialog: pMsg->state -%d",pMsg->state));
if(pMsg->state == MMS_MSG_TYPE_UNNOTI)
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSRetrieveMsgOptionMenuAttributes());
else
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSRecvFolderOptionMenuAttributes());
}
}
break;
case MMS_DRAFT_FOLDER:
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSDraftFolderOptionMenuAttributes());
break;
case MMS_SENT_FOLDER:
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSSentFolderOptionMenuAttributes());
break;
}
break;
case E_EXIT:
case E_BACK:
MMS_Folder_Opt_destroy(data->win);//add by xie
SEND_EVENT (parent, event, 0, NULL);
break;
case E_ABORT:
MMS_Folder_Opt_destroy(data->win);
SEND_EVENT (parent, E_BACK, 0, NULL); /* forward event to parent */
break;
default:
return;
}
}
static int MMS_Folder_Opt_kbd_cb(MfwEvt e, MfwKbd *k)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)win_data->user;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Folder_Opt_kbd_cb");
if( e & KEY_LONG )
{
switch( k->code )
{
case KCD_HUP: /* back to previous menu */
/*if(mms->manager)
{
manager_on_destroy();
mms->manager = NULL;
MMS_Codec_Destory();
}*/
if(mms->player)
{
player_destrory(PLAYER_INIT_PLAY);
mms->player = NULL;
mmsPlayerState = STOP;
}
iMsgListIndex = 0;
returntoidle(0);
//mnuEscape(data->menu);
break;
case KCD_RIGHT: /* Power Down */
return MFW_EVENT_REJECTED; /* handled by idle */
default: /* no response to all other keys */
return MFW_EVENT_CONSUMED;
}
}
else
{
switch( k->code )
{
case KCD_MNUUP: /* highlight previous entry */
mnuUp(data->menu);
break;
case KCD_MNUDOWN: /* highlight next entry */
mnuDown(data->menu);
break;
case KCD_LEFT: /* activate this entry */
case KCD_OK:
mnuSelect(data->menu);
break;
case KCD_HUP: /* back to previous menu */
/*if(mms->manager)
{
manager_on_destroy();
mms->manager = NULL;
MMS_Codec_Destory();
}*/
if(mms->player)
{
player_destrory(PLAYER_INIT_PLAY);
mms->player = NULL;
mmsPlayerState = STOP;
}
iMsgListIndex =0;
returntoidle(0);
break;
case KCD_RIGHT: /* back to previous menu */
mnuEscape(data->menu);
break;
default: /* no response to all other keys */
return MFW_EVENT_CONSUMED;
}
}
return MFW_EVENT_CONSUMED;//when change to MFW_EVENT_REJECTED,deleting string will lead to collapsed.
}
static int MMS_Folder_Opt_mnu_cb ( MfwEvt e, MfwMnu *m )
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)win_data->user;
T_MFW_HDR * parent = data->parent;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_mnu_cb");
switch( e )
{
case E_MNU_ESCAPE: /* back to previous menu */
MMS_Folder_Opt_destroy(data->win);
SEND_EVENT (parent, E_BACK, 0, NULL);
break;
default: /* in mnuCreate() only E_MNU_ESCAPE has been enabled! */
return MFW_EVENT_REJECTED;
}
return MFW_EVENT_CONSUMED;
}
static int MMS_Folder_Opt_win_cb(MfwEvt e, MfwWin *w)
{
MMS_TRACE_FUNCTION("MMS_Folder_Opt_win_cb");
switch( e )
{
case MfwWinVisible: /* window is visible */
dspl_ClearAll();
displaySoftKeys(TxtSoftSelect,TxtSoftBack);
break;
case MfwWinFocussed: /* input focus / selected */
case MfwWinDelete: /* window will be deleted */
default:
return MFW_EVENT_REJECTED;
}
return MFW_EVENT_CONSUMED;
}
int MMS_Folder_Opt_Retrieve (MfwMnu* m, MfwMnuItem* i)
{
pMMI_MMS_EVENT temp;
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)win_data->user;
T_MFW_HDR * parent = data->parent;
T_DISPLAY_DATA display_info;
pMessage pCurrentMsg;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_Retrieve");
pCurrentMsg = manager_get_currentmsg(manager_get_currentfolder());
/*dialog_info_init(&display_info);
display_info.LeftSoftKey = TxtNull;
display_info.RightSoftKey = TxtCancel;
display_info.TextId = TxtMMSRetrieving;
display_info.TextId2 = TxtMMSPleaseWaitting;
display_info.Callback = (T_VOID_FUNC)MMS_Retrieving_dialog_cb;
display_info.Time = FOREVER;
display_info.KeyEvents = KEY_RIGHT | KEY_HUP;
display_info.iconindex = REMIND_WAITTING;
iddMMSRetrieving.hndParent = data->win;
iddMMSRetrieving.hndInfo = info_dialog(win,&display_info);
*/
MMS_Folder_Opt_destroy(win);
if(iMsgListIndex >= 1)
iMsgListIndex = iMsgListIndex -1;
SEND_EVENT(parent, E_ABORT, 0 , NULL);
info_mms_screen(0,MMS_SCREEN_ID_RETRIEVE);
//mms_test_recv_message();
/*talcon added 2004.07.15*/
#ifdef MMS_WAP_ENABLED
{
extern void MMS_Force_Recv(char* filename);
MMS_Force_Recv(pCurrentMsg->filename);
}
#endif
// MMS_MMI_NewMMS_notification(temp);
#if 0
MMS_Folder_Opt_destroy(win);
if(iMsgListIndex >= 1)
iMsgListIndex = iMsgListIndex -1;
SEND_EVENT(parent, E_ABORT, 0 , NULL);
#endif
}
#if 0
int MMS_Retrieving_dialog_cb(T_MFW_HND win, USHORT Identifier, USHORT Reason)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)win_data->user;
T_MFW_HND * parent = data->parent;
TRACE_FUNCTION ("SmsRead_dialog_cb()");
switch( Reason )
{
case INFO_KCD_HUP:
case INFO_KCD_RIGHT:
iddMMSRetrieving.hndInfo = NULL;
MMS_Folder_Opt_destroy(win);
if(iMsgListIndex >= 1)
iMsgListIndex = iMsgListIndex -1;
iddMMSRetrieving.hndParent = NULL;
SEND_EVENT(parent, E_ABORT, 0 , NULL);
return MFW_EVENT_CONSUMED;
default:
return MFW_EVENT_REJECTED;
}
}
void MMS_Retrieving_End(void)
{
T_MFW_HND *parent = iddMMSRetrieving.hndParent;
T_MFW_WIN * winFolderOpt = ((T_MFW_HDR *)parent)->data;
T_MMS_FOLDER_OPT * dataFolderOpt = (T_MMS_FOLDER_OPT *)winFolderOpt->user;
T_MFW_HND * parentFolderOpt = dataFolderOpt->parent;
SEND_EVENT(iddMMSRetrieving.hndInfo,DIALOG_DESTROY, NULL,NULL);
iddMMSRetrieving.hndInfo = NULL;
MMS_Folder_Opt_destroy(dataFolderOpt->win);
if(iMsgListIndex >= 1)
iMsgListIndex = iMsgListIndex -1;
iddMMSRetrieving.hndParent = NULL;
SEND_EVENT(parentFolderOpt, E_ABORT, 0 , NULL);
}
#endif
int MMS_Folder_Opt_Delete (MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)win_data->user;
T_MFW_HDR * parent = data->parent;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Folder_Opt_Delete");
if(mms->manager->currentfolder)
{
player_on_stop(); //add by xie 04-08-05
manager_on_delete( mms->manager->currentfolder );
//manager_on_store(); //added by xie for disposing the file deleted
storemessagefolder(mms->manager->currentfolder);
MMS_Folder_Opt_destroy(win);
if(iMsgListIndex >= 1)
iMsgListIndex = iMsgListIndex -1;
SEND_EVENT(parent, E_ABORT, 0 , NULL);
}
}
int MMS_Folder_Opt_Replay (MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)win_data->user;
T_MFW_HDR * parent = data->parent;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_Replay");
/*
P_MMS mms = getMMS();
pMessage pMsg;
pMsg = mms->manager->currentfolder->currentmessage;
editor_on_initialize(EDITOR_INIT_REPLY, pMsg);*/
player_on_stop(); //modified by xie 04-07-22
player_on_replay();
MMS_Folder_Opt_destroy(win);
}
int MMS_Folder_Opt_Send (MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_FOLDER_OPT * data = (T_MMS_FOLDER_OPT *)win_data->user;
T_MFW_HDR * parent = data->parent;
T_MFW_WIN * parent_data = ((T_MFW_HDR *)parent)->data;
T_MMS_FOLDERS_PLAYER * data2 = (T_MMS_FOLDERS_PLAYER *)parent_data->user;
T_MFW_HDR * folderListHnd = data2->parent;
P_MMS mms = getMMS();
pMessage pMsg;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_Send");
/*talcon added 2004.07.20*/
winUnMask(parent,MfwWinVisible);
MMS_Folder_Opt_destroy(win);
MMS_Folders_Play_destroy(parent);
if(mms->editor==NULL)
{
if(mms->manager && mms->manager->currentfolder && mms->manager->currentfolder->currentmessage)
{
pMsg = mms->manager->currentfolder->currentmessage;
#ifdef MMI_MMSTASK_ENABLED
{
mmsui_data->temp_win = info_mms_dialog(win); //information screen
mmsui_data->current_win = folderListHnd;
}
{
T_MMI_MMS_EDTONINIT_IND parameter;
parameter.event = EDITOR_INIT_EDIT;
parameter.pMsg= pMsg;
M_MMI_MMS_EDTONINIT_IND( ¶meter);
}
return;
#else
mms->editor = editor_on_initialize(EDITOR_INIT_EDIT, pMsg);
if(mms->editor == NULL)
{
MMS_TRACE_EVENT(("editor initialize error in MMS_Folder_Opt_Send"));
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -