📄 mmimmssetting.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_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 + -