📄 mmimmsfolders.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 "mmiMMSffs.h" //add by xie 04-07-08
#include "manager.h"
#include "mmsgloble.h"
#include "mmiicnOther.h"
#include "mmiMMSGlobalDef.h"
#include "MmiSmsIdle.h"
#include "mmiMMSFolders.h"
#include "mmimms_cfg.h" //#include "Mmiutilapi.h" //modified by xie 04-07-12
#include "mmseditor.h"
#include "mmiMMSNew.h"
#include "player.h"
#include "msglist.h"
#include "mmiutilapi.h"
//end xie
#include "mmimmsmenu.h"
#ifdef MMI_MMSTASK_ENABLED
#define MMS_COMPILE_FORAPP
#include "mmstask.h"
#endif
//消息列表
typedef struct
{
/* administrative data */
T_MMI_CONTROL mmi_control;
T_MFW_HND win;
MMS_FOLDER_TYPE winID;
T_MFW_HND parent;
/* associated handlers */
/* internal data */
ListMenuData list_menu_data;
unsigned int msgNum;
} T_MMS_MENU_FOLDERS;
static int iMsgListIndex = 0;
/*talcon delete it*/
//static MfwRect MMS_Menu_Folder_Area = {0,0,SCREEN_SIZE_X,LINE_HEIGHT*9};
extern MfwRect menuListArea;
static MfwMnuAttr MMS_Menu_Folder_Attrib =
{
0,
&menuListArea,//&MMS_Menu_Folder_Area,
MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */
-1, /* use default font */
NULL, /* with these items */
0 /* number of items */
};
static void MMS_Menu_Folder_listmenu_create(T_MMS_MENU_FOLDERS *data);
static void MMS_Menu_Folder_listmenu_cb (T_MFW_HND * win, ListMenuData * ListData);
static void MMS_Menu_Folder_destroy (T_MFW_HND window);
static void MMS_Menu_Folder_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter);
static T_MFW_HND MMS_Menu_Folder_create (T_MFW_HND window , MMS_FOLDER_TYPE folderType);
static T_MFW_HND MMS_Menu_Folder_start (T_MFW_HND window , MMS_FOLDER_TYPE folderType);
static int MMS_Menu_Folders (MMS_FOLDER_TYPE folderType);
//播放
typedef struct
{
/* administrative data */
T_MMI_CONTROL mmi_control;
T_MFW_HND win;
T_MFW_HND parent;
MMS_FOLDER_TYPE winID;
/* associated handlers */
T_MFW_HND kbd;
T_MFW_HND kbd_long;
}T_MMS_FOLDERS_PLAYER;
static T_MFW_HND MMS_Folders_Play_start(MfwHnd parent_window , MMS_FOLDER_TYPE folderType);
static T_MFW_HND MMS_Folders_Play_create(T_MFW_HND parent_window, MMS_FOLDER_TYPE folderType);
static void MMS_Folders_Play_destroy(T_MFW_HND win);
static void MMS_Folders_Play_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int MMS_Folders_Play_kbd_cb(MfwEvt e, MfwKbd *k);
static int MMS_Folders_Play_win_cb(MfwEvt e, MfwWin *w);
//选项
typedef struct
{
/* administrative data */
T_MMI_CONTROL mmi_control;
T_MFW_HND win;
MMS_FOLDER_TYPE winID;
T_MFW_HND parent;
/* associated handlers */
T_MFW_HND kbd;
T_MFW_HND kbd_long;
T_MFW_HND menu;
/* internal data */
T_MMS_FOLDERS_PLAYER *parent_data;
}T_MMS_FOLDER_OPT;
static int MMS_Folder_Opt_win_cb(MfwEvt e, MfwWin *w);
static int MMS_Folder_Opt_mnu_cb ( MfwEvt e, MfwMnu *m );
static int MMS_Folder_Opt_kbd_cb(MfwEvt e, MfwKbd *k);
static void MMS_Folder_Opt_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static void MMS_Folder_Opt_destroy(T_MFW_HND win);
static T_MFW_HND MMS_Folder_Opt_create(T_MFW_HND parent_window);
static T_MFW_HND MMS_Folder_Opt_start(MfwHnd parent_window , MfwMnuAttr *menuAttr);
INFO_DIALOG_DATA iddMMSRetrieving ={NULL,NULL};
//int MMS_Retrieving_dialog_cb(T_MFW_HND win, USHORT Identifier, USHORT Reason);
//MMS媒体列表窗口
static int g_codememalloc = 0;
#define MMS_new(ptr, size) MI_ALLOC(ptr, size,g_codememalloc)
#define MMS_free(ptr,size) MI_FREE(ptr, g_codememalloc)
typedef enum
{
MUSIC,
IMAGE
}MMS_MEDIA_TYPE;
#define MMS_FILENAME_LEN 64
char mmsMediaFileName[MMS_FILENAME_LEN+1];
char originMediaFileName[MMS_FILENAME_LEN+1];
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND win;
MMS_MEDIA_TYPE winID;
T_MFW_HND parent;
T_MFW_HND editor;
T_EDITOR_DATA editor_info;
}T_MMS_MEDIALIST_EDITOR;
static void MMS_MediaList_Edit_LoadEditDefault(T_EDITOR_DATA *editor_data);
static void MMS_MediaList_Edit_destroy(MfwHnd own_window);
static void MMS_MediaList_Edit_edit_cb(T_MFW_HND win, USHORT Identifier, SHORT reason);
static void MMS_MediaList_Edit_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter);
static T_MFW_HND MMS_MediaList_Edit_create(MfwHnd parent_window,MMS_MEDIA_TYPE winID);
static T_MFW_HND MMS_MediaList_Edit_start(T_MFW_HND parent, MMS_MEDIA_TYPE winID);
//详细资料
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;
/* internal data */
}T_MMS_FOLDER_DETAIL;
static int MMS_Folder_Detail_win_cb(MfwEvt e, MfwWin *w);
static int MMS_Folder_Detail_kbd_cb(MfwEvt e, MfwKbd *k);
static void MMS_Folder_Detail_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static void MMS_Folder_Detail_destroy(T_MFW_HND win);
static T_MFW_HND MMS_Folder_Detail_create(T_MFW_HND parent_window);
static T_MFW_HND MMS_Folder_Detail_start(MfwHnd parent_window );
int MMS_Menu_Send_Folder(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_DISPLAY_DATA display_info;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Menu_Send_Folder");
if(mms->manager && mms->manager->unsendfolder && mms->manager->unsendfolder->messagenumber <= 0)
{
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);
return 0;
}
else
{
gCurMMSPos = MMS_SEND_FOLDER;
MMS_Menu_Folders(MMS_SEND_FOLDER);
return 1;
}
}
void MMS_Entry_Recv_Folder_In_Idle(T_MFW_HND parentWin)
{
T_DISPLAY_DATA display_info;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Entry_Recv_Folder_In_Idle");
if(mms->manager && mms->manager->receivefolder && mms->manager->receivefolder->messagenumber <= 0)
{
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 (parentWin, &display_info);
return ;
}
else
{
gCurMMSPos = MMS_RECV_FOLDER;
iMsgListIndex = 0;
MMS_Menu_Folder_start(parentWin, MMS_RECV_FOLDER);
return ;
}
}
int MMS_Menu_Recv_Folder(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_DISPLAY_DATA display_info;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Menu_Recv_Folder");
if(mms->manager && mms->manager->receivefolder && mms->manager->receivefolder->messagenumber <= 0)
{
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);
return 0;
}
else
{
gCurMMSPos = MMS_RECV_FOLDER;
MMS_Menu_Folders(MMS_RECV_FOLDER);
return 1;
}
}
int MMS_Menu_Draft_Folder(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_DISPLAY_DATA display_info;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Menu_Draft_Folder");
if(mms->manager && mms->manager->draftfolder && mms->manager->draftfolder->messagenumber <= 0)
{
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);
return 0;
}
else
{
gCurMMSPos = MMS_DRAFT_FOLDER;
MMS_Menu_Folders(MMS_DRAFT_FOLDER);
return 1;
}
}
int MMS_Menu_Sent_Folder(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_DISPLAY_DATA display_info;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Menu_Sent_Folder");
if(mms->manager && mms->manager->sendfolder && mms->manager->sendfolder->messagenumber <= 0)
{
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);
return 0;
}
else
{
gCurMMSPos = MMS_SENT_FOLDER;
MMS_Menu_Folders(MMS_SENT_FOLDER);
return 1;
}
}
static int MMS_Menu_Folders(MMS_FOLDER_TYPE folderType)
{
T_MFW_HND win = mfwParent(mfwHeader());
MMS_TRACE_EVENT(("MMS_Menu_Folders( %d )", folderType));
switch(folderType)
{
case MMS_SEND_FOLDER:
iMsgListIndex = 0;
MMS_Menu_Folder_start(win, MMS_SEND_FOLDER);
break;
case MMS_RECV_FOLDER:
iMsgListIndex = 0;
MMS_Menu_Folder_start(win, MMS_RECV_FOLDER);
break;
case MMS_DRAFT_FOLDER:
iMsgListIndex = 0;
MMS_Menu_Folder_start(win, MMS_DRAFT_FOLDER);
break;
case MMS_SENT_FOLDER:
iMsgListIndex = 0;
MMS_Menu_Folder_start(win, MMS_SENT_FOLDER);
break;
default:
return 0;
}
return 1;
}
static T_MFW_HND MMS_Menu_Folder_start(T_MFW_HND window , MMS_FOLDER_TYPE folderType)
{
T_MFW_HND win;
MMS_TRACE_FUNCTION("MMS_Menu_Folder_start");
win = MMS_Menu_Folder_create(window , folderType);
if( win NEQ NULL )
{
SEND_EVENT (win, E_INIT, folderType , NULL);
}
return win;
}
static T_MFW_HND MMS_Menu_Folder_create(T_MFW_HND window , MMS_FOLDER_TYPE folderType)
{
T_MMS_MENU_FOLDERS * data = (T_MMS_MENU_FOLDERS *)ALLOC_MEMORY (sizeof (T_MMS_MENU_FOLDERS));
T_MFW_WIN * win;
data->win =win_create (window, 0, 0, NULL);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -