⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmimmsfolders.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
#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 + -