📄 mmistopwatch.c
字号:
display_info.TextId2 =TxtNorecord;
display_info.Time = FOREVER;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.iconindex = REMIND_NORECORD;
display_info.Identifier =0;
/*
* Call Info Screen
*/
info_dialog (win, &display_info);
dynamicTitleMenu_destroy(win);
}
}
else if( data->id==BROWSE_DELETE )
{
data->numberOfRecords=StopwMemoRead();//gdy add 27/08/02
// while(StopwIndex[data->numberOfRecords].flag)
// data->numberOfRecords++;
// zgzTraceData("data->numberOfRecords", data->numberOfRecords);
if( data->numberOfRecords )
{
data->menu_list_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData));
if( data->menu_list_data == 0 )
{
TRACE_EVENT("Failed memory alloc 1 ");
return;
}
data->menu_list_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( data->numberOfRecords * sizeof(T_MFW_MNU_ITEM) );
if( data->menu_list_data->List == 0 )
{
TRACE_EVENT("Failed memory alloc 2");
return;
}
for( i = 0; i < data->numberOfRecords ; i++ )
{
if( StopwIndex[i].type )
{
/* 2004/06 sunsj modify for picture manage */
data->menu_list_data->List[i].icon = GET_ICONATTR(ICON_STOPWATCH_CIRCLE, 0);//&circle_bmp;
}
else
{
/* 2004/06 sunsj modify for picture manage */
data->menu_list_data->List[i].icon = GET_ICONATTR(ICON_STOPWATCH_SEPA, 0);//&sepa_bmp;
}
data->menu_list_data->List[i].exta = 0;
data->menu_list_data->List[i].edit = 0;
data->menu_list_data->List[i].menu =0;
data->menu_list_data->List[i].func = NULL;
TRACE_EVENT((char*)StopwIndex[i].name);
data->menu_list_data->List[i].str=(char*)StopwIndex[i].name;
TRACE_EVENT(data->menu_list_data->List[i].str);
data->menu_list_data->List[i].flagFunc = item_flag_none;
}
data->menu_list_data->ListLength =data->numberOfRecords;
data->menu_list_data->ListPosition = 1;
data->menu_list_data->CursorPosition = 1;
data->menu_list_data->SnapshotSize = data->numberOfRecords;
data->menu_list_data->Font = 0;
data->menu_list_data->LeftSoftKey = TxtDelete;
data->menu_list_data->RightSoftKey = TxtSoftBack;
data->menu_list_data->KeyEvents = KEY_ALL;
data->menu_list_data->Reason = 0;
data->menu_list_data->Strings = TRUE;
data->menu_list_data->Attr = &stopw_menuAttrib;
data->menu_list_data->autoDestroy = FALSE;
data->menu_list_data->ListMenuFlag =1;
data->menu_list_data->ListMenuHeadStr =MmiRsrcGetText(TxtStopwatch);
listDisplayListMenu(win, data->menu_list_data,(ListCbFunc)dynamicTitleList_cb,0);//
}
else
{
dialog_info_init(&display_info);
display_info.TextId2 =TxtNorecord;
display_info.Time = FOREVER;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.iconindex = REMIND_NORECORD;
display_info.Identifier =0;
/*
* Call Info Screen
*/
info_dialog (win, &display_info);
dynamicTitleMenu_destroy(win);
}
}
//winShow(win);
break;
case DYNAMIC_EXIT:
dynamicTitleMenu_destroy(win);
break;
default:
break;
}
}
static int dynamicTitle_win_cb (T_MFW_EVENT event, T_MFW_WIN * win)
{
DynamicTitleData* data = (DynamicTitleData *)win->user;
if( data EQ NULL )
return 0;
switch( event )
{
case E_WIN_VISIBLE:
if( win->flags & E_WIN_VISIBLE )
{
/*
* Clear Screen
*/
dspl_ClearAll();
}
break;
default:
return 0;
}
return 1;
}
int GetNumber()
{
int i=0;
while( temp_data.record[i] )
{
if(i >= STOPWRECORD_NUM) // MI18800000346 2004.4.23 WYJ
{
i = STOPWRECORD_NUM;
break;
}
i++;
}
return i;
}
void dynamicTitleList_cb(T_MFW_HND Parent, ListMenuData * ListData)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)Parent)->data;
DynamicTitleData * data = (DynamicTitleData *)win_data->user;
T_MFW_HND win;
T_MFW_HND parent;
T_DISPLAY_DATA display_info;
int i,flag=0;
TRACE_EVENT("StopwList_cb");
if( data->id==BROWSE_TITEL )
{
TRACE_EVENT("data->id==BROWSE_STOPW");
if( (ListData->Reason EQ LISTS_REASON_BACK) || (ListData->Reason EQ LISTS_REASON_CLEAR)
|| (ListData->Reason EQ LISTS_REASON_HANGUP) )
{
listsDestroy(data->menu_list_data->win);
dynamicTitleMenu_destroy(data->win);
}
else if( ListData->Reason EQ LISTS_REASON_SELECT )
{
//TRACE_EVENT(StopwIndex[ListData->ListPosition].name);
parent=data->parent_win;
wstrcpy((char*)temp_data.name,(char*)StopwIndex[ListData->ListPosition].name);
temp_data.group_number=StopwIndex[ListData->ListPosition].group_number;
temp_data.type=StopwIndex[ListData->ListPosition].type;
TRACE_EVENT(temp_data.name);
i=0;
while( FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1].record[i] )
{
if(i >= STOPWRECORD_NUM) // MI18800000346 2004.4.23 WYJ
break;
temp_data.record[i]=FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1].record[i];
i++;
}
listsDestroy(data->menu_list_data->win);
dynamicTitleMenu_destroy(data->win);
win= dynamicRecord_create(parent);
if( win NEQ NULL )
SEND_EVENT(win, DYNAMIC_RECORD_INIT, 0, 0);
}
}
else if( data->id==BROWSE_DELETE )
{
TRACE_EVENT("data->id==BROWSE_DELETE");
if( (ListData->Reason EQ LISTS_REASON_BACK) || (ListData->Reason EQ LISTS_REASON_CLEAR)
|| (ListData->Reason EQ LISTS_REASON_HANGUP) )
{
listsDestroy(data->menu_list_data->win);
dynamicTitleMenu_destroy(data->win);
}
else if( ListData->Reason EQ LISTS_REASON_SELECT )
{
for( i=0;i<NUMBER_OF_GROUP;i++ )
{
if( FFS_StopwData.group[i].group_number>FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1].group_number )
FFS_StopwData.group[i].group_number--;
}
FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1].type=0;
memset(FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1].name,0,sizeof(FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1].name));
for( i=0;i<A_GROUP_NUMBER;i++ )
{
FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1].record[i]=0;
}
memset(&FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1],0,sizeof(FlashStopwatch));
//FFS_StopwData.group[StopwIndex[ListData->ListPosition].flag-1].group_number=0;
if( !flash_Stopwrite() )
{
TRACE_EVENT("flash_Stopwrite success");
dialog_info_init(&display_info);//gdy add
display_info.KeyEvents = KEY_OK | KEY_RIGHT | KEY_LEFT;
display_info.LeftSoftKey = '\0';
display_info.RightSoftKey = TxtSoftBack;
display_info.TextString = '\0';
display_info.TextString2 = '\0';
display_info.TextId2 =TxtDeleted;
display_info.TextId = '\0';
display_info.Time = FOREVER;
display_info.Callback = (T_VOID_FUNC)NULL;//dynamicTitle_dialog_cb;
display_info.iconindex = REMIND_COMPLETE;
display_info.Identifier =0;
/*
* Call Info Screen
*/
info_dialog (data->win, &display_info);
listsDestroy(data->menu_list_data->win);
dynamicTitleMenu_destroy(dynamic_win);
}
else
{
dialog_info_init(&display_info);//gdy add
display_info.KeyEvents = KEY_OK | KEY_RIGHT | KEY_LEFT;
display_info.LeftSoftKey = '\0';
display_info.RightSoftKey = TxtSoftBack;
display_info.TextString = '\0';
display_info.TextString2 = '\0';
display_info.TextId2 =TxtError;
display_info.TextId = '\0';
display_info.Time = ONE_SECS;
display_info.Callback = (T_VOID_FUNC)NULL;//dynamicTitle_dialog_cb;
display_info.iconindex = REMIND_FAILURE;
display_info.Identifier =0;
/*
* Call Info Screen
*/
info_dialog (data->win, &display_info);
for( i=0;i<NUMBER_OF_GROUP;i++ )
{
if( FFS_StopwData.group[i].group_number )
flag=1;
}
// zgzTraceData("flag=", flag);
if( flag )
{
listsDestroy(data->menu_list_data->win);
SEND_EVENT(dynamic_win, DYNAMIC_INIT, BROWSE_DELETE, 0);
}
else
{
listsDestroy(data->menu_list_data->win);
dynamicTitleMenu_destroy(dynamic_win);
}
}
}
}
}
void dynamicTitleMenu_destroy(MfwHnd own_window)
{
T_MFW_WIN * win = ((T_MFW_HDR *)own_window)->data;
DynamicTitleData* data = (DynamicTitleData*)win->user;
TRACE_EVENT ("dynamicTitleMenu_destroy()");
dynamic_win=NULL;
if( own_window )
{
/*
* Delete WIN Handler
*/
win_delete (own_window);
/*
* Free Memory
*/
if( data )
{
if( data->menu_list_data )
{
if( data->menu_list_data->List )
FREE_MEMORY((void*)data->menu_list_data->List,data->numberOfRecords*sizeof(T_MFW_MNU_ITEM));
FREE_MEMORY((void*)data->menu_list_data,sizeof(ListMenuData));
}
FREE_MEMORY ((void *)data, sizeof (DynamicTitleData));
}
}
}
static T_MFW_HND dynamicRecord_create(MfwHnd parent_window)
{
T_MFW_WIN * win;
DynamicRecordData* data = (DynamicRecordData *)ALLOC_MEMORY (sizeof (DynamicRecordData ));
TRACE_EVENT("dynamicRecord_create");
if( data EQ NULL )
{
return NULL;
}
// Create window handler
data->win = win_create(parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)dynamic_win_cb);
if( data->win EQ NULL )
{
return NULL;
}
// connect the dialog data to the MFW-window
data->mmi_control.dialog = (T_DIALOG_FUNC)dynamicRecord_DialogCB;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent_win = parent_window;
//
//realpositon=1;
//displaypositon=1;
//data->stroll=0;
dynamicRecord_win=data->win;
return data->win;
}
static void dynamicRecord_DialogCB (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
DynamicRecordData* data = (DynamicRecordData *) win_data->user;
T_DISPLAY_DATA display_info;
char tem_str[4];
char* titleStr;
int i;
TRACE_EVENT("dynamicRecord_DialogCB");
switch( event )
{
case DYNAMIC_RECORD_INIT:
data->kbd=kbd_create(win, KEY_ALL, (T_MFW_CB)dynamic_kbd_cb);
data->numberOfRecords =GetNumber();
#if (MAIN_LCD_SIZE==4)
data->screenNumber=data->numberOfRecords/7+1;
#elif (MAIN_LCD_SIZE==3)
data->screenNumber=data->numberOfRecords/6+1;
#endif
data->currentNumber=1;
if( data->numberOfRecords )
{
winShow(win);
}
else
{
dialog_info_init(&display_info);//gdy add
display_info.KeyEvents = KEY_OK | KEY_RIGHT | KEY_LEFT;
display_info.LeftSoftKey = '\0';
display_info.RightSoftKey = TxtSoftBack;
display_info.TextString = '\0';
display_info.TextString2 = '\0';
display_info.TextId2 =TxtNorecord;
display_info.TextId = '\0';
display_info.Time = FOREVER;
display_info.Callback = (T_VOID_FUNC)NULL;
display_info.iconindex = REMIND_COMPLETE;
display_info.Identifier =0;
/*
* Call Info Screen
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -