📄 mmimmssetting.c
字号:
break;
case MfwWinFocussed: /* input focus / selected */
case MfwWinDelete: /* window will be deleted */
default:
return MFW_EVENT_REJECTED;
}
return MFW_EVENT_CONSUMED;
}
//设置列表
int MMS_Cur_Settings_List(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
MMS_TRACE_FUNCTION("MMS_Cur_Settings_List");
MMS_All_Settings_List_start(win,CUR_SETTINGS);
}
int MMS_All_Settings_List(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfwParent(mfw_header());
MMS_TRACE_FUNCTION("MMS_All_Settings_List");
MMS_All_Settings_List_start(win,ALL_SETTINGS);
}
T_MFW_HND MMS_All_Settings_List_start (T_MFW_HND parent , SETTINGS_MENU_ID menuID)
{
T_MFW_HND win;
win = MMS_All_Settings_List_create(parent, menuID);
MMS_TRACE_FUNCTION("MMS_All_Settings_List_start");
if( win NEQ NULL )
{
SEND_EVENT (win, E_INIT, menuID, NULL);
}
return win;
}
T_MFW_HND MMS_All_Settings_List_create (T_MFW_HND parent_window, SETTINGS_MENU_ID menuID)
{
T_MMS_ALL_SETTINGS_LIST * data = (T_MMS_ALL_SETTINGS_LIST *)ALLOC_MEMORY (sizeof (T_MMS_ALL_SETTINGS_LIST));
T_MFW_WIN * win;
MMS_TRACE_FUNCTION("MMS_All_Settings_List_create");
data->win =win_create (parent_window, 0, E_WIN_VISIBLE, NULL);
if( data->win EQ NULL )
{
return NULL;
}
if(menuID == CUR_SETTINGS)
{
MMS_Set_CurSetList_WHnd(data->win);
}
else if(menuID == ALL_SETTINGS)
{
MMS_Set_AllSetList_WHnd(data->win);
}
data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_All_Settings_List_dialog;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent = parent_window;
winShow(data->win);
return data->win;
}
void MMS_All_Settings_List_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_ALL_SETTINGS_LIST * data = (T_MMS_ALL_SETTINGS_LIST *)win_data->user;
T_MFW_HND * parent=data->parent;
MMS_TRACE_FUNCTION("MMS_All_Settings_List_dialog");
switch( event )
{
case E_INIT:
/* initialization of the dialog data */
data->list_menu_data.ListPosition = iSettingsItemIndex+1;/* True cursor position in list menu. */
data->list_menu_data.CursorPosition = iSettingsItemIndex;/* Cursor position in list snapshot. */
data->list_menu_data.Font = 0;
data->list_menu_data.LeftSoftKey = TxtSoftSelect;
data->list_menu_data.RightSoftKey = TxtSoftBack;
data->list_menu_data.KeyEvents = KEY_RIGHT|KEY_LEFT |KEY_OK | KEY_MNUUP | KEY_MNUDOWN|KEY_HUP;
data->list_menu_data.Reason = 0;
data->list_menu_data.Strings = TRUE;
data->list_menu_data.Attr = &MMS_All_Settings_List_Attrib;
data->list_menu_data.autoDestroy = TRUE;
data->menuID = value;
MMS_All_Settings_List_listmenu_create(data);
break;
case E_RETURN:
case E_EXIT:
case E_BACK:
MMS_All_Settings_List_destroy(data->win);
SEND_EVENT (parent, event, 0, NULL); /* forward event to parent */
break;
default:
return;
}
}
void MMS_All_Settings_List_listmenu_create (T_MMS_ALL_SETTINGS_LIST *data)
{
int i = 0;
T_MFW_HND * parent=data->parent;
MMS_TRACE_FUNCTION("MMS_All_Settings_List_listmenu_create");
data->list_menu_data.ListMenuFlag=1;//for display the title
if(data->menuID == CUR_SETTINGS)
{
data->list_menu_data.autoDestroy = TRUE;
data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtMMSCurSettings);
data->list_menu_data.List = (MfwMnuItem *)ALLOC_MEMORY (MMS_SETTINGS_SUM * sizeof (MfwMnuItem));
for(i = 0; i < MMS_SETTINGS_SUM; i++)
{
data->list_menu_data.List[i].icon = (MfwIcnAttr*)&situationIcon; ///textlistIcon;
data->list_menu_data.List[i].exta = 0;
data->list_menu_data.List[i].edit = 0;
data->list_menu_data.List[i].menu = 0;
if(i == 0)
data->list_menu_data.List[i].func = MMS_Setting_Group1;
else if(i == 1)
data->list_menu_data.List[i].func = MMS_Setting_Group2;
else if(i == 2)
data->list_menu_data.List[i].func = MMS_Setting_Group3;
else if(i == 3)
data->list_menu_data.List[i].func = MMS_Setting_Group4;
else if(i == 4)
data->list_menu_data.List[i].func = MMS_Setting_Group5;
data->list_menu_data.List[i].flagFunc = MMS_Setting_flagFunc;
data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY ( MMS_SETTINGS_GROUPNAME_LEN +1);
if( mmsSettings.allSettings[i].strName[0] == 0x00)
{
char tempName[4];
sprintf(tempName,"%d",i+1);
wstrcpy(data->list_menu_data.List[i].str,(char *) MmiRsrcGetText(TxtMMSAllSettings));
wstrcat(data->list_menu_data.List[i].str,tempName);
}
else
wstrcpy(data->list_menu_data.List[i].str ,(char *) mmsSettings.allSettings[i].strName);
}
}
else if(data->menuID == ALL_SETTINGS)
{
data->list_menu_data.autoDestroy = TRUE;
data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtMMSAllSettings);
data->list_menu_data.List = (MfwMnuItem *)ALLOC_MEMORY (MMS_SETTINGS_SUM * sizeof (MfwMnuItem));
for(i = 0; i < MMS_SETTINGS_SUM; i++)
{
data->list_menu_data.List[i].icon = (MfwIcnAttr*)&colist; ///textlistIcon;
data->list_menu_data.List[i].exta = 0;
data->list_menu_data.List[i].edit = 0;
data->list_menu_data.List[i].menu = 0;
data->list_menu_data.List[i].func = 0;
data->list_menu_data.List[i].flagFunc = item_flag_none;
data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY ( MMS_SETTINGS_GROUPNAME_LEN +1);
if( mmsSettings.allSettings[i].strName[0] == 0x00)
{
char tempName[4];
sprintf(tempName,"%d",i+1);
wstrcpy(data->list_menu_data.List[i].str,(char *) MmiRsrcGetText(TxtMMSAllSettings));
wstrcat(data->list_menu_data.List[i].str,tempName);
}
else
wstrcpy(data->list_menu_data.List[i].str ,(char *) mmsSettings.allSettings[i].strName);
}
}
data->list_menu_data.SnapshotSize = MMS_SETTINGS_SUM; /* Number of list entries to view. */
data->list_menu_data.ListLength = MMS_SETTINGS_SUM;
listDisplayListMenu(data->win, &data->list_menu_data, (ListCbFunc)MMS_All_Settings_List_listmenu_cb,0);
}
void MMS_All_Settings_List_listmenu_cb (T_MFW_HND * win, ListMenuData * ListData)
{
#if 0
extern void flash_MMSSettingsInfo();
#endif
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_ALL_SETTINGS_LIST * data = (T_MMS_ALL_SETTINGS_LIST *)win_data->user;
T_MFW_WIN * parent= data->parent;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_All_Settings_List_listmenu_cb");
switch( ListData->Reason )
{
case LISTS_REASON_OK:
case LISTS_REASON_SELECT:
iSettingsItemIndex=ListData->ListPosition;
if(CUR_SETTINGS == data->menuID)
{
#if 0
mmsSettings.curSettingsIndex = iSettingsItemIndex;
flash_MMSSettingswrite();
flash_MMSSettingsInfo();
#endif
}
else if(ALL_SETTINGS == data->menuID)
{
MMS_Settings_Opt_start(data->win , (MfwMnuAttr *)MMSAllSettingsMenuAttributes());
}
break;
case LISTS_REASON_BACK:
MMS_All_Settings_List_destroy(data->win);
SEND_EVENT (parent, E_BACK, 0, NULL);
break;
case LISTS_REASON_HANGUP:
/* if(mms->manager)
{
MMS_Codec_Destory();
manager_on_destroy();
mms->manager = NULL;
}*/
if( returntoidle(0) )
break;
break;
default:
break;
}
return;
}
static void MMS_All_Settings_List_destroy (T_MFW_HND window)
{
T_MFW_WIN * win_data;
T_MMS_ALL_SETTINGS_LIST * data;
USHORT i;
MMS_TRACE_FUNCTION("MMS_All_Settings_List_destroy");
if( window )
{
win_data = ((T_MFW_HDR *)window)->data;
data = (T_MMS_ALL_SETTINGS_LIST *)win_data->user;
if( data )
{
if(data->menuID == CUR_SETTINGS)
{
MMS_Set_CurSetList_WHnd(NULL);
}
else if(data->menuID == ALL_SETTINGS)
{
MMS_Set_AllSetList_WHnd(NULL);
}
win_delete (data->win);
data->win = NULL;
for( i = 0; i < MMS_SETTINGS_SUM; i++ )
FREE_MEMORY( (void *)(data->list_menu_data.List[i].str), MMS_SETTINGS_GROUPNAME_LEN +1);
FREE_MEMORY ((void *)data->list_menu_data.List, MMS_SETTINGS_SUM* sizeof (MfwMnuItem));
FREE_MEMORY ((void *)data, sizeof (T_MMS_ALL_SETTINGS_LIST));
iSettingsItemIndex = 0;
}
else
{
TRACE_EVENT ("MMS_All_Settings_destroy called twice");
}
}
}
//设置的选项菜单
static T_MFW_HND MMS_Settings_Opt_start(MfwHnd parent_window , MfwMnuAttr *menuAttr)
{
T_MFW_HND win;
MMS_TRACE_FUNCTION("MMS_Settings_Opt_start");
win = MMS_Settings_Opt_create (parent_window);
if( win NEQ NULL )
{
SEND_EVENT (win, E_INIT, NULL, (void *)menuAttr);
}
return win;
}
static T_MFW_HND MMS_Settings_Opt_create(T_MFW_HND parent_window)
{
T_MMS_SETTINGS_OPT * data = (T_MMS_SETTINGS_OPT *)ALLOC_MEMORY (sizeof (T_MMS_SETTINGS_OPT));
T_MFW_WIN * win;
MMS_TRACE_FUNCTION("MMS_Settings_Opt_create");
data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)MMS_Settings_Opt_win_cb);
if( data->win EQ NULL )
{
return NULL;
}
data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_Settings_Opt_dialog;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent = parent_window;
return data->win;
}
static void MMS_Settings_Opt_destroy(T_MFW_HND win)
{
T_MFW_WIN * win_data;
T_MMS_SETTINGS_OPT * data;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Settings_Opt_destroy");
if(win)
{
win_data = ((T_MFW_HDR *)win)->data;
data = (T_MMS_SETTINGS_OPT *)win_data->user;
if( data )
{
if(data->kbd)
{
kbd_delete(data->kbd);
data->kbd = NULL;
}
if(data->kbd_long)
{
kbd_delete(data->kbd_long);
data->kbd_long = NULL;
}
if(data->menu)
{
mnuDelete(data->menu);
data->menu = NULL;
}
win_delete (data->win);
data->win = NULL;
FREE_MEMORY ((void *)data, sizeof (T_MMS_SETTINGS_OPT));
}
else
{
MMS_TRACE_EVENT((" "));
}
}
}
static void MMS_Settings_Opt_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_SETTINGS_OPT * data = (T_MMS_SETTINGS_OPT *)win_data->user;
T_MFW_HDR * parent = data->parent;
char * title;
MMS_TRACE_FUNCTION("MMS_Settings_Opt_dialog");
switch( event )
{
case E_INIT:
/* initialization of administrative data */
data->kbd = kbdCreate(data->win,KEY_ALL, (MfwCb)MMS_Settings_Opt_kbd_cb);
data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)MMS_Settings_Opt_kbd_cb);
title = (char *) MmiRsrcGetText(TxtMMSAllSettings);
data->menu = mnuListCreate(data->win,(MfwMnuAttr*)parameter, E_MNU_ESCAPE, (MfwCb)MMS_Settings_Opt_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:
//SEND_EVENT (parent, E_BACK, 0, NULL);
break;
case E_ABORT:
MMS_Settings_Opt_destroy(data->win);
SEND_EVENT (parent, event, 0, NULL);
break;
default:
return;
}
}
static int MMS_Settings_Opt_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_OPT * data = (T_MMS_SETTINGS_OPT *)win_data->user;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Settings_Opt_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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -