mmidialogs.c
来自「是一个手机功能的模拟程序」· C语言 代码 · 共 1,424 行 · 第 1/5 页
C
1,424 行
display_info->SoftKeyStrings = TRUE;
win = dialog_info_create (parent_win);
if( win NEQ NULL )
{
SEND_EVENT (win, DIALOG_INIT, 0, display_info);
}
return win;
}
/*******************************************************************************
$Function: dialog_info_create
$Description: Creation of an information dialog
$Returns: Dialogue info win
$Arguments: parent win
*******************************************************************************/
static T_MFW_HND dialog_info_create (T_MFW_HND parent_win)
{
T_MFW_WIN * win_data;
T_dialog_info * data = (T_dialog_info *)ALLOC_MEMORY (sizeof (T_dialog_info));
TRACE_FUNCTION ("dialog_info_create()");
data->info_win = win_create (parent_win, 0, E_WIN_VISIBLE, (T_MFW_CB)dialog_info_win_cb);
if( data->info_win EQ 0 )
return 0;
/* Create window handler */
data->mmi_control.dialog = (T_DIALOG_FUNC)dialog_info;
data->mmi_control.data = data;
data->parent_win = parent_win;
win_data = ((T_MFW_HDR *)data->info_win)->data;
win_data->user = (void *)data;
/* return window handle */
return data->info_win;
}
/*******************************************************************************
$Function: dialog_info_destroy
$Description: Destruction of an information dialog
$Returns: void
$Arguments: win
*******************************************************************************/
void dialog_info_destroy (T_MFW_HND own_window)
{
T_MFW_WIN * win = ((T_MFW_HDR *)own_window)->data;
T_dialog_info * data = (T_dialog_info *)win->user;
MMI_TRACE_EVENT(("win_incoming dialog_info_destroy()"));
if( data )
{
/* Exit TIMER & KEYBOARD Handle */
kbd_delete (data->info_kbd);
kbd_delete (data->info_kbd_long);
tim_delete (data->info_tim);
tim_delete (data->delete_tim_win);
icnDelete(data->icon);//zy 09/11
if( data->animation_timer )
tim_delete(data->animation_timer);
/* Delete WIN Handler */
win_delete (data->info_win);
/* Free Memory */
FREE_MEMORY ((void *)data, sizeof (T_dialog_info));
}
}
#if 1
//zhaowm 2003.1.28
void dlg_zeroDisplayData( T_DISPLAY_DATA *displayInfo)
{
if( displayInfo == NULL )
return;
displayInfo->LeftSoftKey = 0;
displayInfo->RightSoftKey = 0;
displayInfo->LSKString = NULL;
displayInfo->RSKString = NULL;
displayInfo->TextString = NULL;
displayInfo->TextString2 = NULL;
displayInfo->TextString3 = NULL;//zy 02-10
displayInfo->WrapStrings = 0;
displayInfo->TextId = 0;
displayInfo->TextId2 = 0;
displayInfo->TextId3 = 0;//zy 02-10
displayInfo->SoftKeyStrings = FALSE;
// displayInfo->Callback = NULL;
// displayInfo->Time = 0;
//? displayInfo->Time = FOREVER;
// displayInfo->KeyEvents = 0;
displayInfo->Identifier = 0;
dlg_initDisplayData_events( displayInfo, NULL, 0, 0);
}
void dlg_initDisplayData_TextId( T_DISPLAY_DATA *displayInfo, int lsk, int rsk, int str1, int str2)
{
if( displayInfo == NULL )
return;
dlg_zeroDisplayData(displayInfo);
displayInfo->LeftSoftKey = (USHORT)lsk;
displayInfo->RightSoftKey = (USHORT)rsk;
displayInfo->TextId = str1;
displayInfo->TextId2 = str2;
}
void dlg_initDisplayData_TextStr( T_DISPLAY_DATA *displayInfo, int lsk, int rsk,char *str1, char *str2)
{
if( displayInfo == NULL )
return;
dlg_zeroDisplayData(displayInfo);
displayInfo->LeftSoftKey = (USHORT)lsk;
displayInfo->RightSoftKey = (USHORT)rsk;
displayInfo->TextString = str1;
displayInfo->TextString2 = str2;
}
void dlg_initDisplayData_events( T_DISPLAY_DATA *displayInfo, T_VOID_FUNC callback, int timer, T_MFW_EVENT keyEvents)
{
displayInfo->Callback = callback;
displayInfo->Time = timer;
displayInfo->KeyEvents = keyEvents;
}
#endif /*2003/12/13, wangyan delete*/
//
/*******************************************************************************
$Function: dialog_info
$Description: Dialog function for information dialog
$Returns: void
$Arguments: win, window handle event, value, parameter
*******************************************************************************/
void dialog_info (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_dialog_info * data = (T_dialog_info *)win_data->user;
T_DISPLAY_DATA * display_info = (T_DISPLAY_DATA *)parameter;
TRACE_FUNCTION ("dialog_info()");
switch( event )
{
case DIALOG_INIT:
/* Initialize dialog */
/* Create timer and keyboard handler */
if( display_info->Identifier==RECTCALLDETAIL )
{
#ifndef FOR_FTA_CTA
data->info_tim = tim_create (win, display_info->Time, (T_MFW_CB)dialog_info_tim_cb);
#endif
data->info_kbd = kbd_create (win, KEY_ALL, (T_MFW_CB)dialog_info_kbd_cb);
data->info_kbd_long = kbd_create(win,KEY_ALL|KEY_LONG,(MfwCb)dialog_info_kbd_long_cb);
/* Store any other data */
data->KeyEvents = display_info->KeyEvents;
data->TextString = display_info->TextString;
data->LeftSoftKey = display_info->LeftSoftKey;
data->RightSoftKey = display_info->RightSoftKey;
data->SoftKeyStrings = display_info->SoftKeyStrings; // SH - TRUE if using strings rather than IDs
data->LSKString = display_info->LSKString; // Text for left soft key
data->RSKString = display_info->RSKString; // Text for right soft key
data->TextId = display_info->TextId;
data->Identifier = display_info->Identifier;
data->Callback = display_info->Callback;
data->TextString2 = display_info->TextString2;
data->TextId2 = display_info->TextId2;
data->WrapStrings = display_info->WrapStrings; //GW-SPR#762
data->iconIndex =display_info->iconindex;
data->BackColor =display_info->BackColor;
data->FontColor =display_info->FontColor;
data->TextString3 = display_info->TextString3;
data->TextId3 = display_info->TextId3;
data->Time = display_info->Time;
data->animation_timer =0;
#ifndef FOR_FTA_CTA
if( display_info->Time NEQ FOREVER )
{
tim_start (data->info_tim);
}
#endif
win_show (win);
}
else
{
switch( display_info->iconindex )
{
case REMIND_COMPLETE:
/* 2004/05/17 sunsj modify */
display_info->Time=200*7;
break;
case REMIND_FAILURE:
case REMIND_SUCCEED:
if( display_info->Time!=FOREVER )
{
display_info->Time=600;
}
break;
case REMIND_NORECORD:
if( (display_info->Time == FOREVER)&&(display_info->Identifier!=LOW_VOLTAGE_WARNING) ) ///zym modified
display_info->Time=800;
break;
default:
break;
}
if( (display_info->Identifier==SERVICES_AOC_STATISTICS)||(display_info->Identifier==MMI_TIMER_STATISTICS) )
{/* 2003/10/22, wangyan, modify call time statistics menu*/
}
else
{
if( ((display_info->TextId!=0)||(display_info->TextId!='\0'))&&((display_info->TextString!=0)||(display_info->TextString!='\0')) )
/* 2003/10/22, wangyan, modify call time statistics menu*/
display_info->TextString='\0';//gdy add to advoid displaying two different text in the same place
if( ((display_info->TextId2!=0)||(display_info->TextId2!='\0'))&&((display_info->TextString2!=0)||(display_info->TextString2!='\0')) )
/* 2003/10/22, wangyan, modify call time statistics menu*/
display_info->TextString2='\0';//gdy add to advoid displaying two different text in the same place
}
if( (display_info->Identifier==StartAnimDialog)||(display_info->Identifier==StartSwitchoffDialog) )
{
data->info_tim = tim_create (win, display_info->Time, (T_MFW_CB)dialog_info_tim_cb);
tim_start (data->info_tim);
}
#ifndef FOR_FTA_CTA
data->info_tim = tim_create (win, display_info->Time, (T_MFW_CB)dialog_info_tim_cb);
#endif
data->info_kbd = kbd_create (win, KEY_ALL, (T_MFW_CB)dialog_info_kbd_cb);
data->info_kbd_long = kbd_create(win,KEY_ALL|KEY_LONG,(MfwCb)dialog_info_kbd_long_cb);
/* Store any other data */
data->KeyEvents = display_info->KeyEvents;
data->TextString = display_info->TextString;
data->LeftSoftKey = display_info->LeftSoftKey;
data->RightSoftKey = display_info->RightSoftKey;
data->SoftKeyStrings = display_info->SoftKeyStrings; // SH - TRUE if using strings rather than IDs
data->LSKString = display_info->LSKString; // Text for left soft key
data->RSKString = display_info->RSKString; // Text for right soft key
data->TextId = display_info->TextId;
data->Identifier = display_info->Identifier;
data->Callback = display_info->Callback;
data->TextString2 = display_info->TextString2;
data->TextId2 = display_info->TextId2;
data->WrapStrings = display_info->WrapStrings; //GW-SPR#762
data->iconIndex =display_info->iconindex;
data->BackColor =display_info->BackColor;
data->FontColor =display_info->FontColor;
data->TextString3 = display_info->TextString3;
data->TextId3 = display_info->TextId3;
data->Time = display_info->Time;
data->animation_timer =0;
#ifndef FOR_FTA_CTA
if( display_info->Time NEQ FOREVER )
{
tim_start (data->info_tim);
}
#endif
win_show (win);
}
break;
case DIALOG_DESTROY:
dialog_info_destroy(win);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?