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

📄 mmimmssetting.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 4 页
字号:
#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"
#include "listicn.h"
//begin xie
#include "mmiMMSffs.h"   //add by xie 04-07-08
#include "mmimms_cfg.h"
#include "manager.h"
#include "mmiMMSSetting.h"
#include "mmiMMSGlobalDef.h"
#include "mmimms_cfg.h"  //modified by xie 04-07-12 
//end xie

/*
                        MMS_PARA_SETTING_STATE  stateAutoRecv   = MMS_PARAM_OFF,
                                                stateAutoSave   = MMS_PARAM_OFF,
                                                stateSendReport = 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;
}T_MMS_SETTINGS_MENU; 

static T_MFW_HND MMS_SettingsMenu_start(MfwHnd parent_window , MfwMnuAttr *menuAttr);
static T_MFW_HND MMS_SettingsMenu_create(T_MFW_HND parent_window);
static void      MMS_SettingsMenu_destroy(T_MFW_HND win);
static void      MMS_SettingsMenu_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int       MMS_SettingsMenu_kbd_cb(MfwEvt e, MfwKbd *k);
static int       MMS_SettingsMenu_mnu_cb ( MfwEvt e, MfwMnu *m );
static int       MMS_SettingsMenu_win_cb(MfwEvt e, MfwWin *w);

//设置列表
typedef enum
{
  CUR_SETTINGS = 0,
  ALL_SETTINGS
}SETTINGS_MENU_ID;

/*talcon delete it*/
//static MfwRect MMS_All_Settings_List_Area = {0,0,SCREEN_SIZE_X,LINE_HEIGHT*9}; 
extern MfwRect menuListArea;
static MfwMnuAttr MMS_All_Settings_List_Attrib =
{
    0,
	&menuListArea,//&MMS_All_Settings_List_Area,
	//MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu       */
	MNU_LEFT | MNU_OVERLAPPED | MNU_CUR_LINE,
	-1,                                 /* use default font         */
	NULL,                               /* with these items         */
	0                                   /* number of items     */
};

int iSettingsItemIndex = 0;

typedef struct
{
    /* administrative data */	
    T_MMI_CONTROL   mmi_control;
    T_MFW_HND       win;
    T_MFW_HND       parent;	
	unsigned int menuID;
    /* associated handlers */
	
    /* internal data */
    ListMenuData    list_menu_data;
	
} T_MMS_ALL_SETTINGS_LIST;

static T_MFW_HND MMS_All_Settings_List_start (T_MFW_HND window, SETTINGS_MENU_ID menuID);
static T_MFW_HND MMS_All_Settings_List_create (T_MFW_HND window, SETTINGS_MENU_ID menuID);
static void      MMS_All_Settings_List_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter);
static void      MMS_All_Settings_List_listmenu_create (T_MMS_ALL_SETTINGS_LIST *data);
static void      MMS_All_Settings_List_listmenu_cb (T_MFW_HND * win, ListMenuData * ListData);
static void      MMS_All_Settings_List_destroy (T_MFW_HND window);

static T_MFW_HND   gMMSCurSetListHnd = NULL;
static T_MFW_HND   gMMSAllSetListHnd = NULL;
void MMS_Set_CurSetList_WHnd(T_MFW_HND win)
{ 
    gMMSCurSetListHnd = win;
}
T_MFW_HND MMS_Get_CurSetList_WHnd(void )
{
    return gMMSCurSetListHnd;
}
void MMS_Set_AllSetList_WHnd(T_MFW_HND win)
{ 
    gMMSAllSetListHnd = win;
}
T_MFW_HND MMS_Get_AllSetList_WHnd(void )
{
    return gMMSAllSetListHnd;
}
//当前设置菜单响应函数
static int MMS_Setting_Group1 (MfwMnu* m, MfwMnuItem* i);  
static int MMS_Setting_Group2 (MfwMnu* m, MfwMnuItem* i);
static int  MMS_Setting_Group3 (MfwMnu* m, MfwMnuItem* i);
static int MMS_Setting_Group4 (MfwMnu* m, MfwMnuItem* i);
static int MMS_Setting_Group5 (MfwMnu* m, MfwMnuItem* i);

//设置的选项菜单
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;
}T_MMS_SETTINGS_OPT; 

static T_MFW_HND MMS_Settings_Opt_start(MfwHnd parent_window , MfwMnuAttr *menuAttr);
static T_MFW_HND MMS_Settings_Opt_create(T_MFW_HND parent_window);
static void      MMS_Settings_Opt_destroy(T_MFW_HND win);
static void      MMS_Settings_Opt_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int       MMS_Settings_Opt_kbd_cb(MfwEvt e, MfwKbd *k);
static int       MMS_Settings_Opt_mnu_cb ( MfwEvt e, MfwMnu *m );
static int       MMS_Settings_Opt_win_cb(MfwEvt e, MfwWin *w);


//设置中编辑窗口
typedef enum
{
	MMS_SETTINGS_GROUP_NAME,
	MMS_MMSC_URL,

	MMS_GSM_IP_ADDRESS,
	MMS_GSM_IP_PORT,
	MMS_GSM_DIAL_NUMBER,
	MMS_GSM_LOGIN_ID,
	MMS_GSM_PASSWORD,

	MMS_GPRS_IP_ADDRESS,
	MMS_GPRS_IP_PORT,
	MMS_GPRS_APN,
	MMS_GPRS_LOGIN_ID,
	MMS_GPRS_PASSWORD
}T_MMS_EDITOR_ID;

typedef struct
{    
	T_MMI_CONTROL   mmi_control;
	T_MFW_HND       win;
	unsigned int    winID;
	T_MFW_HND       parent;
	
	T_MFW_HND       editor;
	T_EDITOR_DATA   editor_info;   
}T_MMS_SETTINGS_EDITOR;

static void MMS_Settings_Edit_LoadEditDefault(T_EDITOR_DATA *editor_data);
static void MMS_Settings_Edit_destroy(MfwHnd own_window);
static void MMS_Settings_Edit_edit_cb(T_MFW_HND win, USHORT Identifier, SHORT reason);
static void MMS_Settings_Edit_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter);
static T_MFW_HND MMS_Settings_Edit_create(MfwHnd parent_window);  
static T_MFW_HND MMS_Settings_Edit_start(T_MFW_HND parent, unsigned int  winID);

#if 0
static T_MFW_HND   gMMSSettingEditsHnd = NULL;
void MMS_Set_MMSSettingEdits_WHnd(T_MFW_HND win)
{ 
    gMMSSettingEditsHnd = win;
}

T_MFW_HND MMS_Get_MMSSettingEdits_WHnd(void )
{
    return gMMSSettingEditsHnd;
}
#endif

//设置的菜单
int MMS_SettingsMenu(MfwMnu* m, MfwMnuItem* i)
{
	T_MFW_HND    win  = mfwParent(mfw_header());
	MMS_TRACE_FUNCTION("MMS_SettingsMenu");
	MMS_SettingsMenu_start(win, (MfwMnuAttr *)MMSSettingsMenuAttributes());
}

T_MFW_HND MMS_SettingsMenu_start(MfwHnd parent_window , MfwMnuAttr *menuAttr)
{
	T_MFW_HND win;	
	MMS_TRACE_FUNCTION("MMS_SettingsMenu_start");
    win = MMS_SettingsMenu_create (parent_window);	
    if( win NEQ NULL )
    {
        SEND_EVENT (win, E_INIT, NULL, (void *)menuAttr);
    }
    return win;
}

T_MFW_HND MMS_SettingsMenu_create(T_MFW_HND parent_window)
{
	T_MMS_SETTINGS_MENU      * data = (T_MMS_SETTINGS_MENU *)ALLOC_MEMORY (sizeof (T_MMS_SETTINGS_MENU));
    T_MFW_WIN  * win;
	
	MMS_TRACE_FUNCTION("MMS_SettingsMenu_create");
    data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)MMS_SettingsMenu_win_cb);
    if( data->win EQ NULL )
    {
        return NULL;
    }
	
    data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_SettingsMenu_dialog;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent             = parent_window;
	
    return data->win;
}

void      MMS_SettingsMenu_destroy(T_MFW_HND win)
{
	T_MFW_WIN              * win_data;
    T_MMS_SETTINGS_MENU     * data;
	P_MMS mms = getMMS();
	MMS_TRACE_FUNCTION("MMS_SettingsMenu_destroy");
    if(win)
    {
        win_data = ((T_MFW_HDR *)win)->data;
        data = (T_MMS_SETTINGS_MENU *)win_data->user;
		
        if( data )
        {
            win_delete (data->win);
			data->win = NULL;
            FREE_MEMORY ((void *)data, sizeof (T_MMS_SETTINGS_MENU));
        }
        else
        {
            MMS_TRACE_EVENT((" "));
        }
    }
}

void      MMS_SettingsMenu_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
	
	T_MFW_WIN        * win_data = ((T_MFW_HDR *) win)->data;
    T_MMS_SETTINGS_MENU  * data     = (T_MMS_SETTINGS_MENU *)win_data->user;
    T_MFW_HDR    * parent      =  data->parent;
	
    char * title;
	MMS_TRACE_FUNCTION("MMS_SettingsMenu_dialog");
    switch( event )
    {
    case E_INIT:
        /* initialization of administrative data */     
        data->kbd =      kbdCreate(data->win,KEY_ALL,         (MfwCb)MMS_SettingsMenu_kbd_cb);
        data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)MMS_SettingsMenu_kbd_cb);
        title = (char *) MmiRsrcGetText(TxtMMSSettings); 
		
        data->menu = mnuListCreate(data->win,(MfwMnuAttr*)parameter, E_MNU_ESCAPE, (MfwCb)MMS_SettingsMenu_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: 
    case E_EXIT: 
    case E_BACK:
		//MMS_MainMenu_destroy(data->win);
		//MMS_MainMenu_start(parent, (MfwMnuAttr*)MMSMainMenuAttributes());
		//SEND_EVENT (parent, E_BACK, 0, NULL); 
		break;
	case E_ABORT:
		MMS_SettingsMenu_destroy(data->win);
        SEND_EVENT (parent, event, 0, NULL); 
		break;
    default:
        return;
    }
}

int       MMS_SettingsMenu_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_SETTINGS_MENU      * data = (T_MMS_SETTINGS_MENU *)win_data->user;
	P_MMS  mms = getMMS();
	MMS_TRACE_FUNCTION("MMS_SettingsMenu_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);
            break;
        case KCD_RIGHT: 
            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;
			}*/
			
            if( returntoidle(0) )
                break;
			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;
}

int       MMS_SettingsMenu_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_SETTINGS_MENU      * data = (T_MMS_SETTINGS_MENU *)win_data->user;
	T_MFW_HND              * parent=data->parent;
	MMS_TRACE_FUNCTION("MMS_SettingsMenu_mnu_cb");
    switch( e )
    {
    case E_MNU_ESCAPE: /* back to previous menu */
        MMS_SettingsMenu_destroy(data->win);	
        //SEND_EVENT (parent, E_BACK, 0, NULL); //delete by xie 04-07-13
        break;
		
    default: /* in mnuCreate() only E_MNU_ESCAPE has been enabled! */
        return MFW_EVENT_REJECTED;
    }
    return MFW_EVENT_CONSUMED;
}

int       MMS_SettingsMenu_win_cb(MfwEvt e, MfwWin *w)
{
	MMS_TRACE_FUNCTION("MMS_SettingsMenu_win_cb");
	switch( e )
    {
    case MfwWinVisible:  /* window is visible  */
        dspl_ClearAll();
        displaySoftKeys(TxtSoftSelect,TxtSoftBack);

⌨️ 快捷键说明

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