📄 mmischedule.c
字号:
return MFW_EVENT_CONSUMED;
}
/* "每月" */
int type_month(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND parent_win = mfwParent( mfw_header());
T_DISPLAY_DATA display_info;
T_MFW_WIN *win_data = ( (T_MFW_HDR *) sche_win )->data;
schedule_data * data=(schedule_data*)win_data->user;
int k=0,j;
dialog_info_init(&display_info);
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 =TxtSaved;
display_info.TextId = '\0';
display_info.Time = FOREVER;
display_info.Callback = (T_VOID_FUNC)type_dialog_cb;
display_info.iconindex = REMIND_COMPLETE;
/*
* Call Info Screen
*/
info_dialog (parent_win, &display_info);
sche_data.ringandf=sche_data.ringandf+EVERYMONTH;
while( (ScheDetailIndex[k].index!=0)&&(k<SCHEDULE_NUMBER) )
k++;
//showAlarmIcon();
ScheRecordAddOneIndex(k);
/* if(sche_index<70)
{
for(j=0;j<sche_index;j++)
FFS_ScheData.FfsSche[j]=sche_data[j];
Flash_ScheWrite((char*)ScheTable[0]);
}
else if(sche_index<140)
{
for(j=0;j<70;j++)
FFS_ScheData.FfsSche[j]=sche_data[j];
Flash_ScheWrite((char *)ScheTable[0]);
for(j=0;j<sche_index-70;j++)
FFS_ScheData.FfsSche[j]=sche_data[70+j];
Flash_ScheWrite((char *)ScheTable[1]);
}
else
{
for(j=0;j<70;j++)
FFS_ScheData.FfsSche[j]=sche_data[j];
Flash_ScheWrite((char *)ScheTable[0]);
for(j=0;j<70;j++)
FFS_ScheData.FfsSche[j]=sche_data[70+j];
Flash_ScheWrite((char *)ScheTable[1]);
for(j=0;j<sche_index-140;j++)
FFS_ScheData.FfsSche[j]=sche_data[140+j];
Flash_ScheWrite((char *)ScheTable[2]);
}*/
/* bookMenuDestroy(parent_win);
TRdestroy(TR_win);
schedestroy(sche_win);
calin_destroy(calin_win);*/
return MFW_EVENT_CONSUMED;
}
/* "每年" */
int type_year(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND parent_win = mfwParent( mfw_header());
T_DISPLAY_DATA display_info;
T_MFW_WIN *win_data = ( (T_MFW_HDR *) sche_win )->data;
schedule_data* data=(schedule_data*)win_data->user;
int k=0,j;
sche_data.ringandf=sche_data.ringandf+ANNUALLY;
while( (ScheDetailIndex[k].index!=0)&&(k<SCHEDULE_NUMBER) )
k++;
// showAlarmIcon();
if( ScheRecordAddOneIndex(k) )
{
dialog_info_init(&display_info);
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 =TxtSaved;
display_info.TextId = '\0';
display_info.Time = FOREVER;
display_info.Callback = (T_VOID_FUNC)type_dialog_cb;
display_info.iconindex = REMIND_COMPLETE;
/*
* Call Info Screen
*/
info_dialog (parent_win, &display_info);
}
/* if(sche_index<70)
{
for(j=0;j<sche_index;j++)
FFS_ScheData.FfsSche[j]=sche_data[j];
Flash_ScheWrite((char*)ScheTable[0]);
}
else if(sche_index<140)
{
for(j=0;j<70;j++)
FFS_ScheData.FfsSche[j]=sche_data[j];
Flash_ScheWrite((char *)ScheTable[0]);
for(j=0;j<sche_index-70;j++)
FFS_ScheData.FfsSche[j]=sche_data[70+j];
Flash_ScheWrite((char *)ScheTable[1]);
}
else
{
for(j=0;j<70;j++)
FFS_ScheData.FfsSche[j]=sche_data[j];
Flash_ScheWrite((char *)ScheTable[0]);
for(j=0;j<70;j++)
FFS_ScheData.FfsSche[j]=sche_data[70+j];
Flash_ScheWrite((char *)ScheTable[1]);
for(j=0;j<sche_index-140;j++)
FFS_ScheData.FfsSche[j]=sche_data[140+j];
Flash_ScheWrite((char *)ScheTable[2]);
}*/
/* bookMenuDestroy(parent_win);
TRdestroy(TR_win);
schedestroy(sche_win);
calin_destroy(calin_win);*/
return MFW_EVENT_CONSUMED;
}
int ScheChange(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND parent_win = mfwParent( mfw_header());
T_MFW_HND win = change_create(parent_win);
ScheBrowse_data * data = ( (T_MFW_HDR *) browse_win )->data;
menu_win=parent_win;
if( win!=NULL )
{
SEND_EVENT(win, CHANGE_INIT, 0, data);
}
return MFW_EVENT_CONSUMED;
}
int ScheSMS(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND parent_win = mfwParent( mfw_header());
T_MFW_HND win = change_create(parent_win);
ScheBrowse_data * data = ( (T_MFW_HDR *) browse_win )->data;
if( win!=NULL )
{
SEND_EVENT(win, CHANGE_SMS, 0, data);
}
return MFW_EVENT_CONSUMED;
}
int ScheDelete(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND parent_win = mfwParent( mfw_header());
T_MFW_WIN * win_data = ( (T_MFW_HDR *) browse_win )->data;
ScheBrowse_data * data =(ScheBrowse_data *)win_data->user;
T_DISPLAY_DATA display_info;
T_MFW_SCHE_INDEX t;
int j=0,k=0;
TRACE_EVENT("ScheDelete");
FFS_ScheData.FfsSche[data->flag].date[0]=0;
FFS_ScheData.FfsSche[data->flag].date[1]=0;
FFS_ScheData.FfsSche[data->flag].hour=0;
FFS_ScheData.FfsSche[data->flag].minute=0;
FFS_ScheData.FfsSche[data->flag].ringandf=0;
FFS_ScheData.FfsSche[data->flag].type=0;
strcpy((char*)FFS_ScheData.FfsSche[data->flag].text,"");
Flash_ScheWrite((char *)CurrentScheFileName);
set_latest_alarm();
ScheDetailIndex[ScheIndex[k].index-1].index=0;
ScheDetailIndex[ScheIndex[k].index-1].date[0]=0;
ScheDetailIndex[ScheIndex[k].index-1].date[1]=0;
ScheDetailIndex[ScheIndex[k].index-1].wday=0;
ScheDetailIndex[ScheIndex[k].index-1].hour=0;
ScheDetailIndex[ScheIndex[k].index-1].minute=0;
ScheDetailIndex[ScheIndex[k].index-1].number=0;
ScheDetailIndex[ScheIndex[k].index-1].ringandt=0;
ScheIndex[data->index].date[0]=0;
ScheIndex[data->index].date[1]=0;
ScheIndex[data->index].wday=0;
ScheIndex[data->index].hour=0;
ScheIndex[data->index].minute=0;
ScheIndex[data->index].index=0;
j=data->index;
while( ScheIndex[j+1].index )
{
/* ScheIndex[j].date[0]=ScheIndex[j+1].date[0];
ScheIndex[j].date[1]=ScheIndex[j+1].date[1];
ScheIndex[j].time=ScheIndex[j+1].time;
ScheIndex[j].index=ScheIndex[j+1].index;*/
copy(&ScheIndex[j],&ScheIndex[j+1]);
//ScheIndex[j+1]=t;
j++;
}
ScheIndex[j].index=0;
ScheIndex[j].date[0]=0;
ScheIndex[j].date[1]=0;
ScheIndex[j].hour=0;
ScheIndex[j].minute=0;
//copy((T_MFW_SCHE_INDEX *)ScheIndex[j],(T_MFW_SCHE_INDEX *)0);
data->index=0;
//TraceInt(data->flag1);
/*k=0;
for(j=0;j<SCHEDULE_NUMBER;j++)
{
if(ScheDetailIndex[j].index)
{
ScheIndex[k].date[0]=ScheDetailIndex[j].date[0];
ScheIndex[k].date[1]=ScheDetailIndex[j].date[1];
ScheIndex[k].time=ScheDetailIndex[j].time;
ScheIndex[k].index=ScheDetailIndex[j].index;
k++;
}
}*/
dialog_info_init(&display_info);
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)delete_dialog_cb;
display_info.iconindex = REMIND_COMPLETE;
/*
* Call Info Screen
*/
info_dialog(parent_win, &display_info);
/* while(j<SCHEDULE_NUMBER)
{
if(ScheDetailIndex[j].index)
{
ScheIndex[k].index=ScheDetailIndex[j].index;
//ScheIndex[k].number=j;
ScheIndex[k].date[0]=ScheDetailIndex[j].date[0];
ScheIndex[k].date[1]=ScheDetailIndex[j].date[1];
ScheIndex[k].time=ScheIndex[j].time;
k++;
}
j++;
}*/
showAlarmIcon();
}
/* "日程闹钟"窗口创建*/
int TimeAndRing(MfwHnd parent_window)
{
T_MFW_HND win = TR_create(parent_window);
TRACE_EVENT("TimeAndRing");
if( win NEQ NULL )
{
SEND_EVENT(win, TR_RING, 0, 0);
}
return MFW_EVENT_CONSUMED;
}
/* "日程表"窗口创建 */
static T_MFW_HND calin_create(MfwHnd parent_window)
{
T_MFW_WIN * win;
tddata* data = (tddata *)ALLOC_MEMORY (sizeof (tddata ));
data->calin=(TIMEDATE *)ALLOC_MEMORY(sizeof(TIMEDATE));
data->month_table=(MONTHTABLE *)ALLOC_MEMORY(sizeof(MONTHTABLE));
//int i=0;
memset(data->month_table,0,sizeof(MONTHTABLE));
memset(data->calin,0,sizeof(TIMEDATE));
memset(data->calin->l_year,0,16);
TRACE_EVENT("calin_create");
if( data EQ NULL )
{
return NULL;
}
// Create window handler
data->win = win_create(parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)calin_win_cb);
if( data->win EQ NULL )
{
return NULL;
}
// connect the dialog data to the MFW-window
data->mmi_control.dialog = (T_DIALOG_FUNC)calin_DialogCB;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *)data;
data->parent_win = parent_window;
calin_win=data->win;
return data->win;
}
/* "日程表"窗口事件处理 */
static void calin_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data;
tddata* data = (tddata *) win_data->user;
TRACE_EVENT("calin_DialogCB");
switch( event )
{
case TD_INIT:
TRACE_EVENT("TD_INIT");
data->kbd=kbdCreate(data->win, KEY_ALL, (T_MFW_CB)calin_kbd_cb);
GetTimeDate(currdate.year, currdate.month,currdate.day,data->calin);//currdate.month, currdate.day,);
data->wday=data->calin->week;
TRACE_EVENT(data->calin->l_year);
// TraceInt(data->calin->month);
// TraceInt(data->calin->day);
TRACE_EVENT("GetTimeDate");
GetMonthTable(data->calin, 0, 0,data->month_table);
// TraceInt(data->month_table->day);
winShow(win);
break;
case TD_EXIT:
calin_destroy(win);
break;
}
}
/* "日程表" 窗口显示回调函数
* 2003.10.21 wyj 加入英文节日的显示
* 2003.11.5 wyj 限定农历日期的显示范围1980-2031
* 2003.11.17 WYJ 重写显示函数
* 2003.12.2 WYJ 修改界面
*/
static int calin_win_cb (T_MFW_EVENT event,T_MFW_WIN * win)
{
tddata * data = (tddata *)win->user;
char strn[30];
char strnMonth[3];//jhxu720 add
char strn1[30];
char strm[10];
char strd[20];
char str[40];
char ly[20];//lunar year
short lm;//lunar month
short ld;//lunar day
short wd=0;//week day
int i,j;
int sum=0;
int posx=0;//横坐标
int posy=47;//纵坐标
int old_color;
int oldFontColor;
game_Line line;
game_Rectangle rectangle;
/*2003/11/11,talcon add*/
U8 uMode = 0;
TRACE_EVENT ("calin_win_cb()");
if( data EQ 0 )
return 1;
switch( event )
{
case E_WIN_VISIBLE:
TRACE_EVENT("E_WIN_VISIBLE");
if( win->flags & E_WIN_VISIBLE )
{
/*2003/11/11,talcon add*/
uMode = dspl_Enable(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -