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

📄 mmimmsnew.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_kbd.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_icn.h"
#include "mfw_mnu.h"
#include "mfw_lng.h"
#include "mfw_sat.h"
#include "mfw_kbd.h"
#include "mfw_nm.h"
#include "mfw_str.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"
#include "Mmitextinput.h"
#include "phb.h"  
#include "mmiBookshared.h" 
#include "mmiSmsMenu.h"
#include "mmismssend.h"
#include "mmismsidle.h"

//begin xie
#include "mmimms_cfg.h"
#include "mmiMMSNew.h"
#include "mmseditor.h"
#include "mmiMMSGlobalDef.h"
#include "mmiutilapi.h"
#include "player.h"
#include "mmsgloble.h"
#include "msglist.h"
#include "jpeg.h"
#include "CmsImage.h"

#include "mmimmsmenu.h"
#include "listicn.h"

#ifdef MMI_MMSTASK_ENABLED
#define MMS_COMPILE_FORAPP
#include "mmstask.h"
#endif
#include "CmsWbmp.h" //add by xie for wbmp file preview
#include "CmsDraw.h" 
//end xie


/*新建多媒体信息窗口*/

#define MMS_Menu_New_Listmenu_Num  4

typedef struct _MMS_Frame_Data{
	char title[MMS_TITLE_NUM_LENGTH+1];
	char imageFileName[MMS_IMAGE_NUM_LENGTH+1];
	char audioFileName[MMS_RING_NUM_LENGTH+1];
	char text[MMS_CONTEXT_NUM_LENGTH+1];
}MMS_Frame_Data;
MMS_Frame_Data  frameData;

static unsigned int MMS_NEW_ITEMLEN_MAX[]={
	MMS_TITLE_NUM_LENGTH,
	MMS_IMAGE_NUM_LENGTH,
	MMS_RING_NUM_LENGTH,
	MMS_CONTEXT_NUM_LENGTH,
};

typedef enum 
{
	MMS_Menu_New_Edit_Title=0,
	MMS_Menu_New_List_Image,
	MMS_Menu_New_List_Ring,
	MMS_Menu_New_Edit_Text,	
} MMS_Menu_New_Edit_ID;

int iMenuItemIndex = MMS_Menu_New_Edit_Title; 

/*talcon delett it*/
//static MfwRect MMS_Menu_New_Area = {0,0,SCREEN_SIZE_X,LINE_HEIGHT*(MMS_Menu_New_Listmenu_Num+5)}; 
extern MfwRect menuListArea;
static MfwMnuAttr MMS_Menu_New_Attrib =
{
    0,
	&menuListArea,//&MMS_Menu_New_Area,
	MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu       */
	-1,                                 /* use default font         */
	NULL,                               /* with these items         */
	0                                   /* number of items     */
};

typedef struct
{
    /* administrative data */	
    T_MMI_CONTROL   mmi_control;
    T_MFW_HND       win;
    T_MFW_HND       parent;	

    /* associated handlers */
	
    /* internal data */
    ListMenuData    list_menu_data;
	unsigned int iItemLen[MMS_Menu_New_Listmenu_Num];

} T_MMS_MENU_NEW;

static T_MFW_HND MMS_Menu_New_create (T_MFW_HND window);
static void      MMS_Menu_New_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter);
static void      MMS_Menu_New_listmenu_create (T_MMS_MENU_NEW *data);
static void      MMS_Menu_New_listmenu_cb (T_MFW_HND * win, ListMenuData * ListData);
static void      MMS_Menu_New_destroy (T_MFW_HND window);

/*主题或内容编辑窗口*/
typedef struct
{
    T_MMI_CONTROL   mmi_control;
    T_MFW_HND       win;
    T_MFW_HND       parent;
	MMS_Menu_New_Edit_ID edtID;
	
    T_MFW_HND       editor;
    T_EDITOR_DATA   editor_info; 
}T_MMS_MENU_NEW_EDITOR; 

static T_MFW_HND MMS_Menu_New_Edit_start  (MfwHnd parent_window,MMS_Menu_New_Edit_ID  edtID);
static T_MFW_HND MMS_Menu_New_Edit_create (T_MFW_HND win);
static void		 MMS_Menu_New_Edit_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter);
static void		 MMS_Menu_New_Edit_edit_cb(T_MFW_HND win, USHORT Identifier, SHORT reason);
static void      MMS_Menu_New_Edit_destroy (T_MFW_HND window);
static void      MMS_Menu_New_Edit_LoadEditDefault(T_EDITOR_DATA *editor_data);

/*右软键选项菜单窗口以及右软键选项菜单处理函数*/ 
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;
    /* internal data */
	T_MFW_HND       info_win; 
	
}T_MMS_NEW_LIST_RIGHT; 

static T_MFW_HND MMS_New_List_Right_start(MfwHnd parent_window , MfwMnuAttr *menuAttr);
static T_MFW_HND MMS_New_List_Right_create(T_MFW_HND parent_window);
static void MMS_New_List_Right_destroy(T_MFW_HND win);
static void MMS_New_List_Right_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int MMS_New_List_Right_kbd_cb(MfwEvt e, MfwKbd *k);
static int MMS_New_List_Right_mnu_cb ( MfwEvt e, MfwMnu *m );
static int MMS_New_List_Right_win_cb(MfwEvt e, MfwWin *w);

static int MMS_NEW_List_Right_PageDown     (MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_AddPage(MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_DeleteImage(MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_DeleteMusic(MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_DeletePage(MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_PageUp	(MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_Exit(MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_PreView(MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_Send(MfwMnu* m, MfwMnuItem* i);
static int MMS_NEW_List_Right_StoreMsg(MfwMnu* m, MfwMnuItem* i);

/*talcon delete it*/
//MfwRect MMS_NEW_EDIT_OPTItems_Area = {0,0,SCREEN_SIZE_X,LINE_HEIGHT*9};


static MfwMnuItem MMS_NEW_EDIT_OPTItems00[] =
{
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSPreview,   0, (MenuFunc)MMS_NEW_List_Right_PreView,   item_flag_none},		
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSSend,   0, (MenuFunc)MMS_NEW_List_Right_Send,   item_flag_none},		
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSAddpage,   0, (MenuFunc)MMS_NEW_List_Right_AddPage,   item_flag_none},		
    {(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSDeletepage,   0, (MenuFunc)MMS_NEW_List_Right_DeletePage,   item_flag_none},
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSPageUp,   0, (MenuFunc)MMS_NEW_List_Right_PageUp,   item_flag_none},		
    {(MfwIcnAttr*)&colist,0,0,(char *)TxtMMSPageDown,0,(MenuFunc)MMS_NEW_List_Right_PageDown,item_flag_none},
	{(MfwIcnAttr*)&colist,0,0,(char *)TxtMMSStoreMsg,0,(MenuFunc)MMS_NEW_List_Right_StoreMsg,item_flag_none},
    {(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSExit,  0, (MenuFunc)MMS_NEW_List_Right_Exit,  item_flag_none}		
};

static MfwMnuItem MMS_NEW_EDIT_OPTItems10[] =
{
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSPreview,   0, (MenuFunc)MMS_NEW_List_Right_PreView,   item_flag_none},		
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSSend,   0, (MenuFunc)MMS_NEW_List_Right_Send,   item_flag_none},		
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSDeleteImage,   0, (MenuFunc)MMS_NEW_List_Right_DeleteImage,   item_flag_none},
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSAddpage,   0, (MenuFunc)MMS_NEW_List_Right_AddPage,   item_flag_none},		
    {(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSDeletepage,   0, (MenuFunc)MMS_NEW_List_Right_DeletePage,   item_flag_none},
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSPageUp,   0, (MenuFunc)MMS_NEW_List_Right_PageUp,   item_flag_none},		
    {(MfwIcnAttr*)&colist,0,0,(char *)TxtMMSPageDown,0,(MenuFunc)MMS_NEW_List_Right_PageDown,item_flag_none},
	{(MfwIcnAttr*)&colist,0,0,(char *)TxtMMSStoreMsg,0,(MenuFunc)MMS_NEW_List_Right_StoreMsg,item_flag_none},
    {(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSExit,  0, (MenuFunc)MMS_NEW_List_Right_Exit,  item_flag_none}		
};

static MfwMnuItem MMS_NEW_EDIT_OPTItems01[] =
{
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSPreview,   0, (MenuFunc)MMS_NEW_List_Right_PreView,   item_flag_none},		
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSSend,   0, (MenuFunc)MMS_NEW_List_Right_Send,   item_flag_none},		
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSDeleteMusic,   0, (MenuFunc)MMS_NEW_List_Right_DeleteMusic,   item_flag_none},
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSAddpage,   0, (MenuFunc)MMS_NEW_List_Right_AddPage,   item_flag_none},		
    {(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSDeletepage,   0, (MenuFunc)MMS_NEW_List_Right_DeletePage,   item_flag_none},
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSPageUp,   0, (MenuFunc)MMS_NEW_List_Right_PageUp,   item_flag_none},		
    {(MfwIcnAttr*)&colist,0,0,(char *)TxtMMSPageDown,0,(MenuFunc)MMS_NEW_List_Right_PageDown,item_flag_none},
	{(MfwIcnAttr*)&colist,0,0,(char *)TxtMMSStoreMsg,0,(MenuFunc)MMS_NEW_List_Right_StoreMsg,item_flag_none},
    {(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSExit,  0, (MenuFunc)MMS_NEW_List_Right_Exit,  item_flag_none}		
};

static MfwMnuItem MMS_NEW_EDIT_OPTItems11[] =
{
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSPreview,   0, (MenuFunc)MMS_NEW_List_Right_PreView,   item_flag_none},		
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSSend,   0, (MenuFunc)MMS_NEW_List_Right_Send,   item_flag_none},		
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSDeleteImage,   0, (MenuFunc)MMS_NEW_List_Right_DeleteImage,   item_flag_none},
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSDeleteMusic,   0, (MenuFunc)MMS_NEW_List_Right_DeleteMusic,   item_flag_none},	
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSAddpage,   0, (MenuFunc)MMS_NEW_List_Right_AddPage,   item_flag_none},		
    {(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSDeletepage,   0, (MenuFunc)MMS_NEW_List_Right_DeletePage,   item_flag_none},
	{(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSPageUp,   0, (MenuFunc)MMS_NEW_List_Right_PageUp,   item_flag_none},		
    {(MfwIcnAttr*)&colist,0,0,(char *)TxtMMSPageDown,0,(MenuFunc)MMS_NEW_List_Right_PageDown,item_flag_none},
	{(MfwIcnAttr*)&colist,0,0,(char *)TxtMMSStoreMsg,0,(MenuFunc)MMS_NEW_List_Right_StoreMsg,item_flag_none},
    {(MfwIcnAttr*)&colist, 0,0, (char *)TxtMMSExit,  0, (MenuFunc)MMS_NEW_List_Right_Exit,  item_flag_none}		
};

static MfwMnuAttr MMS_NEW_EDIT_OPTAttr00 =
{
    0,
	&menuListArea,//&MMS_NEW_EDIT_OPTItems_Area,
	MNU_LEFT | MNU_LIST | MNU_CUR_LINE, 
	-1,                                
	MMS_NEW_EDIT_OPTItems00,                    
	sizeof(MMS_NEW_EDIT_OPTItems00)/sizeof(MfwMnuItem) 
}; 

static MfwMnuAttr MMS_NEW_EDIT_OPTAttr01 =
{
    0,
	&menuListArea,//&MMS_NEW_EDIT_OPTItems_Area,
	MNU_LEFT | MNU_LIST | MNU_CUR_LINE, 
	-1,                                
	MMS_NEW_EDIT_OPTItems01,                    
	sizeof(MMS_NEW_EDIT_OPTItems01)/sizeof(MfwMnuItem) 
}; 

static MfwMnuAttr MMS_NEW_EDIT_OPTAttr10 =
{
    0,
	&menuListArea,//&MMS_NEW_EDIT_OPTItems_Area,
	MNU_LEFT | MNU_LIST | MNU_CUR_LINE, 
	-1,                                
	MMS_NEW_EDIT_OPTItems10,                    
	sizeof(MMS_NEW_EDIT_OPTItems10)/sizeof(MfwMnuItem) 
}; 

static MfwMnuAttr MMS_NEW_EDIT_OPTAttr11 =
{
    0,
	&menuListArea,//&MMS_NEW_EDIT_OPTItems_Area,
	MNU_LEFT | MNU_LIST | MNU_CUR_LINE, 
	-1,                                
	MMS_NEW_EDIT_OPTItems11,                    
	sizeof(MMS_NEW_EDIT_OPTItems11)/sizeof(MfwMnuItem) 
}; 

/*图片或铃声列表窗口*/
typedef struct
{
    /* administrative data */	
    T_MMI_CONTROL   mmi_control;
    T_MFW_HND       win;
    T_MFW_HND       parent;	
	
    /* associated handlers */
	
    /* internal data */
    ListMenuData    list_menu_data;
	
	/*feng */
	int ListID;
} T_MMS_MENU_NEW_LIST;

typedef struct
{
    /* administrative data */	
    T_MMI_CONTROL   mmi_control;
    T_MFW_HND       win;
    T_MFW_HND       parent;	
	/*20040609 feng*/
	T_MFW_HND       info_win; 
	int ListID;
} T_MMS_MENU_NEW_LIST_PIC;  

int iListMenuItemIndex=0;
int mediaFileNumber =0;

T_MFW_HND MMS_Menu_New_List_start(T_MFW_HND parent, int  edtID);
T_MFW_HND  MMS_Menu_New_List_create(MfwHnd parent_window);
void MMS_Menu_New_List_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter);
void MMS_Menu_New_List_listmenu_create(T_MMS_MENU_NEW_LIST *data);
void MMS_Menu_New_List_listmenu_cb (T_MFW_HND * win, ListMenuData * ListData);
void  MMS_Menu_New_List_destroy (T_MFW_HND window);

//MMS相册浏览窗口
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_MMS_IMAGE_PREVIEW;  

T_MFW_HND gHndMMSImagePreview = NULL;

static T_MFW_HND MMS_Image_Preview_start(MfwHnd parent_window );
static T_MFW_HND MMS_Image_Preview_create(T_MFW_HND parent_window);
static void MMS_Image_Preview_destroy(T_MFW_HND win);
static void MMS_Image_Preview_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int MMS_Image_Preview_kbd_cb(MfwEvt e, MfwKbd *k);
static int MMS_Image_Preview_win_cb(MfwEvt e, MfwWin *w);

//预览
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_MMS_NEW_PREVIEW;  

static T_MFW_HND MMS_New_Preview_start(MfwHnd parent_window );
static T_MFW_HND MMS_New_Preview_create(T_MFW_HND parent_window);
static void MMS_New_Preview_destroy(T_MFW_HND win);
static void MMS_New_Preview_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int MMS_New_Preview_kbd_cb(MfwEvt e, MfwKbd *k);
static int MMS_New_Preview_win_cb(MfwEvt e, MfwWin *w);

void MMS_Menu_New_Pic_ShowAffirmWin (T_MFW_HND win,int picID);
static void MMS_Menu_New_Pic_cb(T_MFW_HND win,USHORT identifier, UBYTE reason);


//发送时接收者设置窗口
#define RECEIVER_NUMBER_MAX  15
#define RECEIVER_LENGTH_MAX  30

typedef enum{
	NORECEIVER,
	EMAIL,
	TELEPHONE
}RECEIVER_TYPE;

typedef struct _RECEIVER_
{
    RECEIVER_TYPE type;
    char receiver[RECEIVER_LENGTH_MAX+1];
}RECEIVER;

RECEIVER recvLists[RECEIVER_NUMBER_MAX];
unsigned char   receiverIndex = 0;

/*talcon delete it*/
//static MfwRect MMS_Receiver_List_Area = {0,0,SCREEN_SIZE_X,LINE_HEIGHT*9}; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -