📄 mmimmsdeleteall.c
字号:
#ifdef _MMS_ENABLE_
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#if defined (NEW_FRAME)
#include "typedefs.h"
#include "vsi.h"
#include "pei.h"
#include "custom.h"
#include "gsm.h"
#else
#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#endif
#include "p_sim.h"
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_edt.h"
#include "mfw_tim.h"
#include "mfw_phb.h"
#include "ksd.h"
#include "psa.h"
#include "mfw_sms.h"
#include "mfw_smsi.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_lng.h"
#include "mfw_sat.h"
#include "mfw_kbd.h"
#include "mfw_nm.h"
#include "dspl.h"
#include "MmiMain.h"
#include "MmiDummy.h"
#include "MmiMmi.h"
#include "MmiDialogs.h"
#include "MmiLists.h"
#include "MmiMenu.h"
#include "MmiSoftKeys.h"
#include "MmiEditor.h"
//begin xie
#include "mmimms_cfg.h"
#include "mmibookshared.h"
#include "MmiSmsIdle.h"
#include "mmiMMSffs.h" //add by xie 04-07-08
#include "mmiMMSDeleteAll.h"
#include "mmiMMSGlobalDef.h"
#include "mmimms_cfg.h" //#include "Mmiutilapi.h" //modified by xie 04-07-12
//#include "mmiMMSNew.h"
//end xie
MMS_PARA_SETTING_STATE stateDelAll = MMS_PARAM_OFF,
stateDelSendFolder = MMS_PARAM_OFF,
stateDelRecvFolder = MMS_PARAM_OFF,
stateDelDraftFolder = MMS_PARAM_OFF,
stateDelSentFolder = MMS_PARAM_OFF;
typedef struct
{
/* administrative data */
T_MMI_CONTROL mmi_control;
T_MFW_HND win;
T_MFW_HND parent;
/* associated handlers */
T_MFW_HND kbd;
T_MFW_HND kbd_long;
T_MFW_HND menu;
//begin feng
T_MFW_HND info_win;
//end feng
}T_MMS_DELETE_ALL_OPT;
static int MMS_DeleteAll_Opt_win_cb(MfwEvt e, MfwWin *w);
static int MMS_DeleteAll_Opt_mnu_cb ( MfwEvt e, MfwMnu *m );
static int MMS_DeleteAll_Opt_kbd_cb(MfwEvt e, MfwKbd *k);
static void MMS_DeleteAll_Opt_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static void MMS_DeleteAll_Opt_destroy(T_MFW_HND win);
static T_MFW_HND MMS_DeleteAll_Opt_create(T_MFW_HND parent_window);
static T_MFW_HND MMS_DeleteAll_Opt_start(MfwHnd parent_window , MfwMnuAttr *menuAttr);
static void MMS_DeleteAll_InforDialog (T_MFW_HND win);
static int MMS_DeleteAll_InforDialog_cb(T_MFW_HND win,USHORT identifier, UBYTE reason);
int MMS_Menu_Delete_All (MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
MMS_TRACE_FUNCTION("MMS_Menu_Delete_All");
MMS_DeleteAll_Opt_start(win,(MfwMnuAttr *)MMSDeleteAllOptionMenuAttributes());
}
static T_MFW_HND MMS_DeleteAll_Opt_start(MfwHnd parent_window , MfwMnuAttr *menuAttr)
{
T_MFW_HND win;
MMS_TRACE_FUNCTION("MMS_DeleteAll_Opt_start");
win = MMS_DeleteAll_Opt_create (parent_window);
if( win NEQ NULL )
{
SEND_EVENT (win, E_INIT, NULL, (void *)menuAttr);
}
return win;
}
static T_MFW_HND MMS_DeleteAll_Opt_create(T_MFW_HND parent_window)
{
T_MMS_DELETE_ALL_OPT * data = (T_MMS_DELETE_ALL_OPT *)ALLOC_MEMORY (sizeof (T_MMS_DELETE_ALL_OPT));
T_MFW_WIN * win;
MMS_TRACE_FUNCTION("MMS_DeleteAll_Opt_create");
data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)MMS_DeleteAll_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_DeleteAll_Opt_dialog;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent = parent_window;
return data->win;
}
static void MMS_DeleteAll_Opt_destroy(T_MFW_HND win)
{
T_MFW_WIN * win_data;
T_MMS_DELETE_ALL_OPT * data;
stateDelAll = MMS_PARAM_OFF,
stateDelSendFolder = MMS_PARAM_OFF,
stateDelRecvFolder = MMS_PARAM_OFF,
stateDelDraftFolder = MMS_PARAM_OFF,
stateDelSentFolder = MMS_PARAM_OFF;
MMS_TRACE_FUNCTION("MMS_DeleteAll_Opt_destroy");
if(win)
{
win_data = ((T_MFW_HDR *)win)->data;
data = (T_MMS_DELETE_ALL_OPT *)win_data->user;
if(data->info_win)
win_delete (data->info_win);
if( data )
{
win_delete (data->win);
FREE_MEMORY ((void *)data, sizeof (T_MMS_DELETE_ALL_OPT));
}
else
{
MMS_TRACE_EVENT((" "));
}
}
}
static void MMS_DeleteAll_Opt_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_DELETE_ALL_OPT * data = (T_MMS_DELETE_ALL_OPT *)win_data->user;
T_MFW_HDR * parent = data->parent;
char * title;
MMS_TRACE_FUNCTION("MMS_DeleteAll_Opt_dialog");
switch( event )
{
case E_INIT:
/* initialization of administrative data */
data->kbd = kbdCreate(data->win,KEY_ALL, (MfwCb)MMS_DeleteAll_Opt_kbd_cb);
data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)MMS_DeleteAll_Opt_kbd_cb);
title = (char *) MmiRsrcGetText(TxtMMSDeleteAll); // get the editor title text
data->menu = mnuListCreate(data->win,(MfwMnuAttr*)parameter, E_MNU_ESCAPE, (MfwCb)MMS_DeleteAll_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;
default:
return;
}
}
static int MMS_DeleteAll_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_DELETE_ALL_OPT * data = (T_MMS_DELETE_ALL_OPT *)win_data->user;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_DeleteAll_Opt_kbd_cb");
if( e & KEY_LONG )
{
switch( k->code )
{
case KCD_HUP: /* back to previous menu */
/* if(mms->manager)
{
MMS_Codec_Destory();
manager_on_destroy();
mms->manager = NULL;
}
*/
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)
{
MMS_Codec_Destory();
manager_on_destroy();
mms->manager = NULL;
}
*/
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_DeleteAll_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_DELETE_ALL_OPT * data = (T_MMS_DELETE_ALL_OPT *)win_data->user;
MMS_TRACE_FUNCTION("MMS_DeleteAll_Opt_mnu_cb");
switch( e )
{
case E_MNU_ESCAPE: /* back to previous menu */
if(
MMS_PARAM_OFF==stateDelSendFolder &&
MMS_PARAM_OFF==stateDelRecvFolder &&
MMS_PARAM_OFF==stateDelDraftFolder &&
MMS_PARAM_OFF==stateDelSentFolder &&
MMS_PARAM_OFF==stateDelAll )
{
MMS_DeleteAll_Opt_destroy(data->win);
}
else
{
MMS_DeleteAll_InforDialog(data->win);
}
break;
default: /* in mnuCreate() only E_MNU_ESCAPE has been enabled! */
return MFW_EVENT_REJECTED;
}
return MFW_EVENT_CONSUMED;
}
static int MMS_DeleteAll_Opt_win_cb(MfwEvt e, MfwWin *w)
{
MMS_TRACE_FUNCTION("MMS_DeleteAll_Opt_win_cb");
switch( e )
{
case MfwWinVisible: /* window is visible */
dspl_ClearAll();
if(
MMS_PARAM_OFF==stateDelSendFolder &&
MMS_PARAM_OFF==stateDelRecvFolder &&
MMS_PARAM_OFF==stateDelDraftFolder &&
MMS_PARAM_OFF==stateDelSentFolder &&
MMS_PARAM_OFF==stateDelAll )
{
displaySoftKeys(TxtSoftSelect,TxtSoftBack);
}
else
displaySoftKeys(TxtSoftSelect,TxtSoftConfirm);
break;
case MfwWinFocussed: /* input focus / selected */
case MfwWinDelete: /* window will be deleted */
default:
return MFW_EVENT_REJECTED;
}
return MFW_EVENT_CONSUMED;
}
static void MMS_DeleteAll_InforDialog (T_MFW_HND win)
{
T_MFW_WIN * win_data;
T_MMS_DELETE_ALL_OPT * data;
T_DISPLAY_DATA display_info;
MMS_TRACE_FUNCTION("MMS_DeleteAll_InforDialog");
if(win)
{
win_data = ((T_MFW_HDR *)win)->data;
data = (T_MMS_DELETE_ALL_OPT *)win_data->user;
dialog_info_init(&display_info);
display_info.LeftSoftKey = TxtSoftOK;
display_info.RightSoftKey = TxtCancel;//TxtSoftBack;
display_info.TextId2 = TxtMMSDelAllMsg;//TxtCFCancelAffirm;
display_info.TextId = '\0';
display_info.TextString = '\0';
display_info.TextString2 = '\0';
display_info.Time = FOREVER;
display_info.iconindex=REMIND_REQUIRE;
display_info.Callback = (T_VOID_FUNC)MMS_DeleteAll_InforDialog_cb;
display_info.KeyEvents = KEY_HUP | KEY_LEFT | KEY_RIGHT;
data->info_win=info_dialog(data->win, &display_info);
}
return;
}
static int MMS_DeleteAll_InforDialog_cb(T_MFW_HND win,USHORT identifier, UBYTE reason)
{
T_MFW_WIN * win_data;
T_MMS_DELETE_ALL_OPT * data;
pMessage pMsg;
P_MMS mms = getMMS();
win_data = ((T_MFW_HDR *)win)->data;
data = (T_MMS_DELETE_ALL_OPT *)win_data->user;
MMS_TRACE_FUNCTION("MMS_DeleteAll_InforDialog_cb");
switch(reason)
{
case INFO_KCD_LEFT:
if(stateDelAll == MMS_PARAM_ON)
{
manager_on_deleteall(mms->manager->unsendfolder);
manager_on_deleteall(mms->manager->receivefolder);
manager_on_deleteall(mms->manager->draftfolder);
manager_on_deleteall(mms->manager->sendfolder);
manager_on_store(); //add by xie 04-07-13
MMS_TRACE_EVENT(("MMS_info_cb stateDelAll == MMS_PARAM_ON"));
MMS_TRACE_EVENT((" "));
MMS_TRACE_EVENT((" "));
}
if(stateDelSendFolder == MMS_PARAM_ON)
{
manager_on_deleteall(mms->manager->unsendfolder);
//manager_on_store(); //add by xie 04-07-13
storemessagefolder(mms->manager->unsendfolder);//modified by xie 04-08-05
MMS_TRACE_EVENT(("MMS_info_cb stateDelSendFolder == MMS_PARAM_ON"));
MMS_TRACE_EVENT((" "));
MMS_TRACE_EVENT((" "));
}
if(stateDelRecvFolder == MMS_PARAM_ON)
{
manager_on_deleteall(mms->manager->receivefolder);
//manager_on_store(); //add by xie 04-07-13
storemessagefolder(mms->manager->receivefolder);//modified by xie 04-08-05
MMS_TRACE_EVENT(("MMS_info_cb stateDelRecvFolder == MMS_PARAM_ON"));
MMS_TRACE_EVENT((" "));
MMS_TRACE_EVENT((" "));
}
if(stateDelDraftFolder == MMS_PARAM_ON)
{
manager_on_deleteall(mms->manager->draftfolder);
//manager_on_store(); //add by xie 04-07-13
storemessagefolder(mms->manager->draftfolder);//modified by xie 04-08-05
MMS_TRACE_EVENT(("MMS_info_cb stateDelSendFolder == MMS_PARAM_ON"));
MMS_TRACE_EVENT((" "));
MMS_TRACE_EVENT((" "));
}
if(stateDelSentFolder == MMS_PARAM_ON)
{
manager_on_deleteall(mms->manager->sendfolder);
//manager_on_store(); //add by xie 04-07-13
storemessagefolder(mms->manager->sendfolder);//modified by xie 04-08-05
MMS_TRACE_EVENT(("MMS_info_cb stateDelSentFolder == MMS_PARAM_ON"));
MMS_TRACE_EVENT((" "));
MMS_TRACE_EVENT((" "));
}
MMS_DeleteAll_Opt_destroy(data->win);
break;
case INFO_KCD_RIGHT:
MMS_DeleteAll_Opt_destroy(data->win);
break;
case INFO_KCD_HUP: /* back to previous menu */
/*if(mms->manager)
{
MMS_Codec_Destory();
manager_on_destroy();
mms->manager = NULL;
}*/
if( returntoidle(0) )
break;
default:
break;
}
}
int MMS_Del_All_OnOff (MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
stateDelAll = ((stateDelAll==MMS_PARAM_OFF)?MMS_PARAM_ON:MMS_PARAM_OFF);
MMS_TRACE_FUNCTION("MMS_Del_All_OnOff");
if(stateDelAll == MMS_PARAM_ON)
{
stateDelSendFolder = MMS_PARAM_OFF,
stateDelRecvFolder = MMS_PARAM_OFF,
stateDelDraftFolder = MMS_PARAM_OFF,
stateDelSentFolder = MMS_PARAM_OFF;
}
mnuUpdate(m);
winShow(win);
}
int MMS_Del_SendFolder_OnOff (MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
MMS_TRACE_FUNCTION("MMS_Del_SendFolder_OnOff");
if(stateDelAll == MMS_PARAM_OFF)
{
stateDelSendFolder = ((stateDelSendFolder==MMS_PARAM_OFF)?MMS_PARAM_ON:MMS_PARAM_OFF);
mnuUpdate(m);
winShow(win);
}
}
int MMS_Del_RecvFolder_OnOff (MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
MMS_TRACE_FUNCTION("MMS_Del_RecvFolder_OnOff");
if(stateDelAll == MMS_PARAM_OFF)
{
stateDelRecvFolder = ((stateDelRecvFolder==MMS_PARAM_OFF)?MMS_PARAM_ON:MMS_PARAM_OFF);
mnuUpdate(m);
winShow(win);
}
}
int MMS_Del_DraftFolder_OnOff(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
MMS_TRACE_FUNCTION("MMS_Del_DraftFolder_OnOff");
if(stateDelAll == MMS_PARAM_OFF)
{
stateDelDraftFolder = ((stateDelDraftFolder==MMS_PARAM_OFF)?MMS_PARAM_ON:MMS_PARAM_OFF);
mnuUpdate(m);
winShow(win);
}
}
int MMS_Del_SentFolder_OnOff (MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
MMS_TRACE_FUNCTION("MMS_Del_SentFolder_OnOff");
if(stateDelAll == MMS_PARAM_OFF)
{
stateDelSentFolder = ((stateDelSentFolder==MMS_PARAM_OFF)?MMS_PARAM_ON:MMS_PARAM_OFF);
mnuUpdate(m);
winShow(win);
}
}
USHORT MMS_Del_flagFunc( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi )
{
if(
((int)mi->str == TxtMMSDelAll && stateDelAll == MMS_PARAM_ON)||
((int)mi->str == TxtMMSDelSendFolder && stateDelSendFolder == MMS_PARAM_ON)||
((int)mi->str == TxtMMSDelRecvFolder && stateDelRecvFolder == MMS_PARAM_ON)||
((int)mi->str == TxtMMSDelDraftFolder && stateDelDraftFolder == MMS_PARAM_ON)||
((int)mi->str == TxtMMSDelSentFolder && stateDelSentFolder == MMS_PARAM_ON)
)
{
return FLAGFUNC_TRUE_ICON;
}
else
return FLAGFUNC_FALSE_ICON;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -