📄 mmimmsnew.c
字号:
T_MFW_WIN * win_data;
T_MMS_MENU_NEW_LIST_PIC * data;
T_DISPLAY_DATA display_info;
MMS_TRACE_FUNCTION("MMS_Menu_New_Pic_ShowAffirmWin");
if(win)
{
win_data = ((T_MFW_HDR *)win)->data;
data = (T_MMS_MENU_NEW_LIST_PIC *)win_data->user;
dialog_info_init(&display_info);//gdy add
display_info.LeftSoftKey = TxtAdd;
display_info.RightSoftKey = TxtSoftBack;
// display_info.TextId2 = TxtCancelAffirm;//TxtCFCancelAffirm;
display_info.TextId = '\0';
display_info.TextString = '\0';
display_info.TextString2 = '\0';
display_info.Time = FOREVER;
display_info.iconindex=REMIND_WAP;
display_info.Callback = (T_VOID_FUNC)MMS_Menu_New_Pic_cb;
display_info.KeyEvents = KEY_HUP | KEY_LEFT | KEY_RIGHT;
data->info_win=info_dialog(data->win, &display_info);
}
}
static void MMS_Menu_New_Pic_cb(T_MFW_HND win,USHORT identifier, UBYTE reason)
{
T_MFW_WIN * win_data=((T_MFW_HDR *)win)->data;
T_MMS_MENU_NEW_LIST_PIC * data=(T_MMS_MENU_NEW_LIST_PIC *)win_data->user;
T_MFW_HND * parent=data->parent;
MMS_TRACE_FUNCTION("MMS_Menu_New_Pic_cb");
switch(reason)
{
case INFO_KCD_LEFT:
win_delete (data->info_win);
SEND_EVENT (win, E_BACK, 0, NULL);
break;
case INFO_KCD_RIGHT:
win_delete (data->info_win);
SEND_EVENT (win, E_ABORT, 0, NULL);
break;
default:
break;
}
}
/**********************************************************************/
/* 主题或邮件内容填写窗口 */
/**********************************************************************/
T_MFW_HND MMS_Menu_New_Edit_start(T_MFW_HND parent, int edtID)
{
T_MFW_HND win;
win = MMS_Menu_New_Edit_create(parent);
MMS_TRACE_FUNCTION("MMS_Menu_New_Edit_start");
if( win NEQ NULL )
{
SEND_EVENT (win, E_INIT, edtID, NULL);
}
return win;
}
static T_MFW_HND MMS_Menu_New_Edit_create(MfwHnd parent_window)
{
T_MMS_MENU_NEW_EDITOR * data = (T_MMS_MENU_NEW_EDITOR *)ALLOC_MEMORY (sizeof (T_MMS_MENU_NEW_EDITOR));
T_MFW_WIN * win;
MMS_TRACE_FUNCTION("MMS_Menu_New_Edit_create");
data->win = win_create (parent_window, 0, E_WIN_VISIBLE, NULL);
if( data->win EQ NULL )
{
return NULL;
}
data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_Menu_New_Edit_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;
}
static void MMS_Menu_New_Edit_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_MENU_NEW_EDITOR * data = (T_MMS_MENU_NEW_EDITOR *)win_data->user;
T_MFW_HDR * parent = data->parent;
MMS_TRACE_FUNCTION("MMS_Menu_New_Edit_dialog");
switch(event)
{
case E_INIT:
{
switch(value)
{
case MMS_Menu_New_Edit_Title: //主题
data->edtID = MMS_Menu_New_Edit_Title;
MMS_Menu_New_Edit_LoadEditDefault(&(data->editor_info));
editor_attr_init_fullscr(&(data->editor_info.editor_attr),1,TxtNewMMSTitle,(char *)frameData.title,MMS_NEW_ITEMLEN_MAX[0],edtCurBar1);
data->editor_info.mode = TEXTINPUT_MODE;
data->editor_info.min_enter = 0;
data->editor_info.LeftSoftKey = TxtConfirm;
data->editor_info.edtInPbk = 0;
//data->editor_info.AlternateLeftSoftKey = TxtSoftOptions;
data->editor_info.RightSoftKey = TxtDelete;
data->editor_info.Callback = (T_EDIT_CB)MMS_Menu_New_Edit_edit_cb;
data->editor_info.destroyEditor = FALSE;
data->editor_info.InputMode = PINYIN_INPUT_MODE;
// data->editor_info.editor_attr.e_size = 163;
data->editor = text_input(win, &(data->editor_info));//text_input(win, &editor_data);
break;
case MMS_Menu_New_Edit_Text: //邮件内容
data->edtID = MMS_Menu_New_Edit_Text;
MMS_Menu_New_Edit_LoadEditDefault(&(data->editor_info));
editor_attr_init_fullscr(&(data->editor_info.editor_attr),1,TxtNewMMSText,(char *)frameData.text,MMS_NEW_ITEMLEN_MAX[3],edtCurBar1);
data->editor_info.mode = TEXTINPUT_MODE;
//data->editor_info.Identifier = SMSSEND_ID_TEXTEDIT ;
data->editor_info.min_enter = 0;
data->editor_info.LeftSoftKey = TxtConfirm;
data->editor_info.edtInPbk = 0;
//data->editor_info.AlternateLeftSoftKey = TxtSoftOptions;
data->editor_info.RightSoftKey = TxtDelete;
data->editor_info.Callback = (T_EDIT_CB )MMS_Menu_New_Edit_edit_cb;
data->editor_info.destroyEditor = FALSE;
data->editor_info.InputMode = PINYIN_INPUT_MODE;
// data->editor_info.editor_attr.e_size = 163;
data->editor = text_input(win, &(data->editor_info));
break;
default:
return;
}
}
break;
case E_ABORT:
case E_EXIT:
MMS_Menu_New_Edit_destroy(data->win);
SEND_EVENT (parent, event, 0, NULL); /* forward event to parent */
break;
default:
return;
}
return;
}
static void MMS_Menu_New_Edit_edit_cb(T_MFW_HND win, USHORT Identifier, SHORT reason)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_MENU_NEW_EDITOR * data = (T_MMS_MENU_NEW_EDITOR *)win_data->user;
T_MFW_HDR * parent = data->parent;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Menu_New_Edit_edit_cb");
switch( reason )
{
case INFO_KCD_ALTERNATELEFT:
case INFO_KCD_LEFT:
MMS_Menu_New_Edit_destroy(data->win);
SEND_EVENT (parent, E_EXIT, 0, NULL);
break;
case INFO_KCD_RIGHT:
SEND_EVENT (win, E_EXIT, 0, NULL);
// SEND_EVENT (parent, E_EXIT, 0, NULL);
break;
case INFO_KCD_HUP:
if(mms->editor)
{
editor_on_destroy();
mms->editor = NULL;
}
/*
if(mms->manager)
{
MMS_Codec_Destory();
manager_on_destroy();
mms->manager = NULL;
}*/
/*
if(mms->player)
{
player_destrory();
mms->player = NULL;
}*/
iMenuItemIndex = 0;
iListMenuItemIndex =0;
returntoidle(0);
break;
default:
break;
}
return;
}
static void MMS_Menu_New_Edit_destroy(MfwHnd own_window)
{
T_MFW_WIN * win_data;
T_MMS_MENU_NEW_EDITOR * data = NULL;
P_MMS mms = getMMS();
pMessage pMsg = NULL;
MMS_TRACE_FUNCTION("MMS_Menu_New_Edit_destroy");
if( own_window )
{
win_data = ((T_MFW_HDR *)own_window)->data;
if( win_data != NULL )
data = (T_MMS_MENU_NEW_EDITOR *)win_data->user;
if( data->edtID == MMS_Menu_New_Edit_Title )
{
if(mms && mms->editor)
pMsg = editor_get_msg();
msg_set_title(pMsg, (char*)(frameData.title) );
}
else if( data->edtID == MMS_Menu_New_Edit_Text)
{
editor_text_new( (char*)(frameData.text) );
}
if (data)
{
if(data->editor != 0)
{
text_input_destroy(data->editor);
data->editor = NULL;
}
win_delete (data->win);
/*
* MMS_FREE Memory
*/
FREE_MEMORY ((void *)data, sizeof (T_MMS_MENU_NEW_EDITOR));
}
else
{
MMS_TRACE_EVENT((" "));
}
}
}
static void MMS_Menu_New_Edit_LoadEditDefault(T_EDITOR_DATA *editor_data)
{
MMS_TRACE_FUNCTION("MMS_Menu_New_Edit_LoadEditDefault");
editor_attr_init(&editor_data->editor_attr, NULL, edtCurNone, 0, 0, 0);
editor_data->hide = FALSE;
editor_data->min_enter = 1;
editor_data->LeftSoftKey = TxtSoftSelect;
editor_data->RightSoftKey = TxtSoftBack;
editor_data->AlternateLeftSoftKey = TxtNull;
editor_data->TextId = '\0';
editor_data->Identifier = 0;
editor_data->TextString = NULL;
editor_data->timeout = FOREVER;
editor_data->mode = ALPHA_MODE;
editor_data->Callback = NULL;
editor_data->destroyEditor = TRUE ;
}
/**********************************************************************/
/* 右软键显示菜单窗口 */
/**********************************************************************/
static T_MFW_HND MMS_New_List_Right_start(MfwHnd parent_window , MfwMnuAttr *menuAttr)
{
T_MFW_HND win;
MMS_TRACE_FUNCTION("MMS_New_List_Right_start");
win = MMS_New_List_Right_create (parent_window);
if( win NEQ NULL )
{
SEND_EVENT (win, E_INIT, NULL, (void *)menuAttr);
}
return win;
}
static T_MFW_HND MMS_New_List_Right_create(T_MFW_HND parent_window)
{
T_MMS_NEW_LIST_RIGHT * data = (T_MMS_NEW_LIST_RIGHT *)ALLOC_MEMORY (sizeof (T_MMS_NEW_LIST_RIGHT));
T_MFW_WIN * win;
MMS_TRACE_FUNCTION("MMS_New_List_Right_create");
data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)MMS_New_List_Right_win_cb);
if( data->win EQ NULL )
{
return NULL;
}
data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_New_List_Right_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_New_List_Right_destroy(T_MFW_HND win)
{
T_MFW_WIN * win_data;
T_MMS_NEW_LIST_RIGHT * data;
MMS_TRACE_FUNCTION("MMS_New_List_Right_destroy");
if(win)
{
win_data = ((T_MFW_HDR *)win)->data;
data = (T_MMS_NEW_LIST_RIGHT *)win_data->user;
if( data )
{
win_delete (data->win);
MMS_TRACE_EVENT(("before MMS_New_List_Right_destroy"));
FREE_MEMORY ((void *)data, sizeof (T_MMS_NEW_LIST_RIGHT));
MMS_TRACE_EVENT(("after MMS_New_List_Right_destroy "));
}
else
{
MMS_TRACE_EVENT((" "));
}
}
}
static void MMS_New_List_Right_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_NEW_LIST_RIGHT * data = (T_MMS_NEW_LIST_RIGHT *)win_data->user;
T_MFW_HDR * parent = data->parent;
char * title;
MMS_TRACE_FUNCTION("MMS_New_List_Right_dialog");
switch( event )
{
case E_INIT:
/* initialization of administrative data */
data->kbd = kbdCreate(data->win,KEY_ALL, (MfwCb)MMS_New_List_Right_kbd_cb);
data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)MMS_New_List_Right_kbd_cb);
title = (char *) MmiRsrcGetText(TxtSoftOptions); // get the editor title text
data->menu = mnuListCreate(data->win,(MfwMnuAttr*)parameter, E_MNU_ESCAPE, (MfwCb)MMS_New_List_Right_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_BACK:
MMS_New_List_Right_destroy(data->win);
SEND_EVENT (parent, E_BACK, 0, NULL);
break;
case E_ABORT:
MMS_New_List_Right_destroy(data->win);
SEND_EVENT (parent, E_ABORT, 0, NULL);
break;
default:
return;
}
}
static int MMS_New_List_Right_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_NEW_LIST_RIGHT * data = (T_MMS_NEW_LIST_RIGHT *)win_data->user;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_New_List_Right_kbd_cb");
if( e & KEY_LONG )
{
switch( k->code )
{
case KCD_HUP: /* back to previous menu */
if(mms->editor)
{
editor_on_destroy();
mms->editor = NULL;
}
/*
if(mms->manager)
{
MMS_Codec_Destory();
manager_on_destroy();
mms->manager = NULL;
}*/
iMenuItemIndex = 0;
returntoidle(0);
break;
case KCD_RIGHT:
return MFW_EVENT_REJECTED; /* handled by idle */
default: /* no response to all other keys */
return MFW_EVENT_CONSU
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -