📄 vencurschedule.c
字号:
WSTRLCAT(EveryDaySchedule6,pMe->FileArry[pMe->day].DetailFileArry[pMe->period+5].Course,sizeof(EveryDaySchedule6));
WSTRLCAT(EveryDaySchedule6,pMe->FileArry[pMe->day].DetailFileArry[pMe->period+5].Class,sizeof(EveryDaySchedule6));
WSTRLCAT(EveryDaySchedule7,Burl7,sizeof(EveryDaySchedule7));
WSTRLCAT(EveryDaySchedule7,pMe->FileArry[pMe->day].DetailFileArry[pMe->period+6].Course,sizeof(EveryDaySchedule7));
WSTRLCAT(EveryDaySchedule7,pMe->FileArry[pMe->day].DetailFileArry[pMe->period+6].Class,sizeof(EveryDaySchedule7));
WSTRLCAT(EveryDaySchedule8,Burl8,sizeof(EveryDaySchedule8));
WSTRLCAT(EveryDaySchedule8,pMe->FileArry[pMe->day].DetailFileArry[pMe->period+7].Course,sizeof(EveryDaySchedule8));
WSTRLCAT(EveryDaySchedule8,pMe->FileArry[pMe->day].DetailFileArry[pMe->period+7].Class,sizeof(EveryDaySchedule8));
IMENUCTL_AddItem(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,NULL,IDS_V1,EveryDaySchedule1,1);
IMENUCTL_AddItem(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,NULL,IDS_V2,EveryDaySchedule2,2);
IMENUCTL_AddItem(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,NULL,IDS_V3,EveryDaySchedule3,3);
IMENUCTL_AddItem(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,NULL,IDS_V4,EveryDaySchedule4,4);
IMENUCTL_AddItem(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,NULL,IDS_V5,EveryDaySchedule5,5);
IMENUCTL_AddItem(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,NULL,IDS_V6,EveryDaySchedule6,6);
IMENUCTL_AddItem(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,NULL,IDS_V7,EveryDaySchedule7,7);
IMENUCTL_AddItem(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,NULL,IDS_V8,EveryDaySchedule8,8);
IMENUCTL_AddItem(pMe->m_pSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_BEFOREDAY,IDS_BEFOREDAY,NULL,1);
IMENUCTL_AddItem(pMe->m_pSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_AFTERDAY,IDS_AFTERDAY,NULL,1);
nNormal.ft = AEE_FT_NONE; //没有边框
nNormal.xOffset = nNormal.yOffset = 0;
nNormal.roImage = AEE_RO_TRANSPARENT; //help1337
nSel.ft = AEE_FT_RAISED; //凸起 的2像素3d边框
nSel.xOffset = nSel.yOffset = 0;
nSel.yOffset = AEE_RO_TRANSPARENT;
IMENUCTL_SetStyle(pMe->v_pIMenuCtl,&nNormal,&nSel); //设置菜单项的显示样式
IMENUCTL_SetProperties( pMe->v_pIMenuCtl,
IMENUCTL_GetProperties( pMe->v_pIMenuCtl ) &~(MP_ICON_TEXT_TOP) ); //设置菜单控件特定的属性或标记
SETAEERECT( &nRect, 0, 15, pMe->m_nScrWidth, pMe->m_nScrHeight-35 );
IMENUCTL_SetRect( pMe->v_pIMenuCtl, &nRect );
IMENUCTL_SetActive( pMe->v_pIMenuCtl, TRUE );
IMENUCTL_Redraw(pMe->m_pSoftMenu);
IDISPLAY_Update(pMe->pIDisplay);
pMe->m_nState = APP_STATE_VMAINMENU;
}
/************************************************************************/
/* Add the Design Function */
/************************************************************************/
static void VenCurSchedule_DisplayDesignScreen(VenCurSchedule* pMe,uint16 Wday,int Nodal)
{
pMe->Text[0] = pMe->pITextCtl;
pMe->Text[1] = pMe->CpITextCtl;
pMe->Text[2] = pMe->TpITextCtl;
pMe->Text[3] = pMe->RpITextCtl;
pMe->Text[4] = pMe->MpITextCtl;
pMe->rect.x = 30;
pMe->rect.dx = pMe->DeviceInfo.cxScreen-30;
pMe->rect.dy = 20;
pMe->m_sRect.x = 0;
pMe->m_sRect.y = pMe->DeviceInfo.cyScreen-30;
pMe->m_sRect.dx = pMe->DeviceInfo.cxScreen;
pMe->m_sRect.dy = 30;
IMENUCTL_Reset(pMe->pIMenuCtl);
IMENUCTL_SetActive(pMe->pIMenuCtl,FALSE);
IMENUCTL_Reset(pMe->m_pSoftMenu);
IMENUCTL_SetActive(pMe->m_pSoftMenu,FALSE);
IMENUCTL_Reset(pMe->v_pIMenuCtl);
IMENUCTL_SetActive(pMe->v_pIMenuCtl,FALSE);
IMENUCTL_SetTitle(pMe->v_pIMenuCtl,VENCURSCHEDULE_RES_FILE,IDS_MON,NULL);
IMENUCTL_AddItem(pMe->m_pSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_CHANGE,IDS_CHANGE,NULL,0); //软菜单中的添加按钮
IMENUCTL_AddItem(pMe->m_pSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_DESIGN_BEFOREDAY,IDS_DESIGN_BEFOREDAY,NULL,0); //软件菜单中的前一天按钮
IMENUCTL_AddItem(pMe->m_pSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_DESIGN_AFTERDAY,IDS_DESIGN_AFTERDAY,NULL,0); //软件菜单中的后一天按钮
IMENUCTL_AddItem(pMe->m_pSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_BEFORE_NODAL,IDS_BEFORE_NODAL,NULL,0); //软件菜单中的前一节课按钮
IMENUCTL_AddItem(pMe->m_pSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_AFTER_NODAL,IDS_AFTER_NODAL,NULL,0); //软件菜单中的后一节课按钮
IMENUCTL_SetRect(pMe->m_pSoftMenu,&pMe->m_sRect);
ITEXTCTL_SetProperties(pMe->pITextCtl,TP_FRAME); //设置有边框
ITEXTCTL_SetProperties(pMe->CpITextCtl,TP_FRAME);
ITEXTCTL_SetProperties(pMe->TpITextCtl,TP_FRAME);
ITEXTCTL_SetProperties(pMe->RpITextCtl,TP_FRAME);
ITEXTCTL_SetProperties(pMe->MpITextCtl,TP_FRAME);
pMe->rect.y = 20;
ITEXTCTL_SetRect(pMe->pITextCtl,&pMe->rect);
pMe->rect.y = 40;
ITEXTCTL_SetRect(pMe->CpITextCtl,&pMe->rect);
pMe->rect.y = 60;
ITEXTCTL_SetRect(pMe->TpITextCtl,&pMe->rect);
pMe->rect.y = 80;
ITEXTCTL_SetRect(pMe->RpITextCtl,&pMe->rect);
pMe->rect.y = 100;
ITEXTCTL_SetRect(pMe->MpITextCtl,&pMe->rect);
ITEXTCTL_SetInputMode(pMe->pITextCtl,AEE_TM_CURRENT);
ITEXTCTL_SetInputMode(pMe->CpITextCtl,AEE_TM_CURRENT);
ITEXTCTL_SetInputMode(pMe->TpITextCtl,AEE_TM_CURRENT);
ITEXTCTL_SetInputMode(pMe->RpITextCtl,AEE_TM_CURRENT);
ITEXTCTL_SetInputMode(pMe->MpITextCtl,AEE_TM_CURRENT);
ITEXTCTL_SetMaxSize(pMe->pITextCtl,8);
ITEXTCTL_SetMaxSize(pMe->CpITextCtl,8);
ITEXTCTL_SetMaxSize(pMe->TpITextCtl,8);
ITEXTCTL_SetMaxSize(pMe->RpITextCtl,8);
ITEXTCTL_SetMaxSize(pMe->MpITextCtl,8);
VenCurSchedule_ReadScheduleFile(pMe);
pMe->Eday = Wday;
pMe->period = Nodal;
pMe->day = Wday;
if(pMe->day == 0) VenCurSchedule_DisplayFontScreen(pMe,IDS_DESIGN_MON,20,0);
if(pMe->day == 1) VenCurSchedule_DisplayFontScreen(pMe,IDS_DESIGN_TUES,20,0);
if(pMe->day == 2) VenCurSchedule_DisplayFontScreen(pMe,IDS_DESIGN_WED,20,0);
if(pMe->day == 3) VenCurSchedule_DisplayFontScreen(pMe,IDS_DESIGN_THURS,20,0);
if(pMe->day == 4) VenCurSchedule_DisplayFontScreen(pMe,IDS_DESIGN_FRI,20,0);
if(pMe->day == 5) VenCurSchedule_DisplayFontScreen(pMe,IDS_DESIGN_SAT,20,0);
if(pMe->day == 6) VenCurSchedule_DisplayFontScreen(pMe,IDS_DESIGN_SUN,20,0);
if(pMe->period == 0) VenCurSchedule_DisplayFontScreen(pMe,IDS_NODAL1,50,0);
if(pMe->period == 1) VenCurSchedule_DisplayFontScreen(pMe,IDS_NODAL2,50,0);
if(pMe->period == 2) VenCurSchedule_DisplayFontScreen(pMe,IDS_NODAL3,50,0);
if(pMe->period == 3) VenCurSchedule_DisplayFontScreen(pMe,IDS_NODAL4,50,0);
if(pMe->period == 4) VenCurSchedule_DisplayFontScreen(pMe,IDS_NODAL5,50,0);
if(pMe->period == 5) VenCurSchedule_DisplayFontScreen(pMe,IDS_NODAL6,50,0);
if(pMe->period == 6) VenCurSchedule_DisplayFontScreen(pMe,IDS_NODAL7,50,0);
if(pMe->period == 7) VenCurSchedule_DisplayFontScreen(pMe,IDS_NODAL8,50,0);
ITEXTCTL_SetText(pMe->pITextCtl,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Course,8);
ITEXTCTL_SetText(pMe->CpITextCtl,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Class,8);
ITEXTCTL_SetText(pMe->TpITextCtl,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Teacher,8);
ITEXTCTL_SetText(pMe->RpITextCtl,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Remind,8);
ITEXTCTL_SetText(pMe->MpITextCtl,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Memo,8);
VenCurSchedule_DisplayFontScreen(pMe,IDS_COURSE, 0,20);
VenCurSchedule_DisplayFontScreen(pMe,IDS_CLASS,0,40);
VenCurSchedule_DisplayFontScreen(pMe,IDS_TEACHER,0,60);
VenCurSchedule_DisplayFontScreen(pMe,IDS_REMIND,0,80);
VenCurSchedule_DisplayFontScreen(pMe,IDS_MEMO,0,100);
IDISPLAY_Update(pMe->pIDisplay);
ITEXTCTL_SetActive(pMe->pITextCtl,TRUE);
IMENUCTL_Redraw(pMe->m_pSoftMenu);
pMe->m_nState = APP_STATE_DESIGN;
}
/************************************************************************/
/* Add the Design FontView Function */
/************************************************************************/
static void VenCurSchedule_DisplayFontScreen(VenCurSchedule* pMe, uint16 wReslID,int x,int y)
{
AECHAR arry[10]={0};
ISHELL_LoadResString(pMe->pIShell,VENCURSCHEDULE_RES_FILE,wReslID,arry,sizeof(arry));
IDISPLAY_SetColor(pMe->pIDisplay,CLR_USER_TEXT,MAKE_RGB(0,0,0));
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,arry,-1,x,y,NULL,IDF_TEXT_TRANSPARENT);
}
/************************************************************************/
/* 对每一天每一节的课程进行设计 , 主要用于主菜单浏览课程表节次的触发 */
/************************************************************************/
static void VenCurSchedule_EveryCourseDesignScreen(VenCurSchedule* pMe)
{
pMe->m_sRect.x = 0;
pMe->m_sRect.y = pMe->DeviceInfo.cyScreen-20;
pMe->m_sRect.dx = pMe->DeviceInfo.cxScreen;
pMe->m_sRect.dy = 20;
IMENUCTL_SetActive(pMe->pIMenuCtl,FALSE);
IMENUCTL_SetActive(pMe->v_pIMenuCtl,FALSE);
ISHELL_CreateDialog(pMe->pIShell,VENCURSCHEDULE_RES_FILE,IDD_EVERY_CLSSDESIGN,NULL);
pMe->pIDiag = ISHELL_GetActiveDialog(pMe->pIShell);
IDIALOG_SetFocus(pMe->pIDiag,IDD_EC_TCOURSE);
pMe->pDTextCourse = (ITextCtl*)IDIALOG_GetControl(pMe->pIDiag,IDD_EC_TCOURSE);
ITEXTCTL_SetProperties(pMe->pDTextCourse,TP_FRAME); //绘制文本框的外框
ITEXTCTL_SetText(pMe->pDTextCourse,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Course,8);
ITEXTCTL_SetActive(pMe->pDTextCourse,TRUE);
pMe->pDTextClass = (ITextCtl*)IDIALOG_GetControl(pMe->pIDiag,IDD_EC_TCLASS);
ITEXTCTL_SetProperties(pMe->pDTextClass,TP_FRAME); //绘制文本框的外框
ITEXTCTL_SetText(pMe->pDTextClass,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Class,8);
ITEXTCTL_SetActive(pMe->pDTextClass,TRUE);
IDIALOG_Redraw(pMe->pIDiag);
IMENUCTL_Reset(pMe->m_pSoftMenu);
IMENUCTL_SetActive(pMe->m_pSoftMenu,FALSE);
IMENUCTL_AddItem(pMe->m_pSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_ED_CHANGE,IDS_ED_CHANGE,NULL,0);
IMENUCTL_SetRect(pMe->m_pSoftMenu,&pMe->m_sRect);
IMENUCTL_SetActive(pMe->m_pSoftMenu,TRUE);
pMe->m_nState = APP_STATE_EVERYDESIGN;
}
/************************************************************************/
/* 对课程表的系统设置 */
/************************************************************************/
static void VenCurSchedule_SystemDesignSCreen(VenCurSchedule* pMe)
{
pMe->m_sRect.x = 0;
pMe->m_sRect.y = pMe->DeviceInfo.cyScreen-30;
pMe->m_sRect.dx = pMe->DeviceInfo.cxScreen;
pMe->m_sRect.dy = 30;
IMENUCTL_SetActive(pMe->pIMenuCtl,FALSE);
IMENUCTL_SetActive(pMe->v_pIMenuCtl,FALSE);
IDISPLAY_ClearScreen(pMe->pIDisplay);
ISHELL_CreateDialog(pMe->pIShell,VENCURSCHEDULE_RES_FILE,IDD_SYSTEM_DESIGN,NULL);
pMe->pIDiag = ISHELL_GetActiveDialog(pMe->pIShell);
IDIALOG_SetFocus(pMe->pIDiag,IDD_CLASSROOM_TLIST);
//IDIALOG_Redraw(pMe->pIDiag);
IMENUCTL_Reset(pMe->helpSoftMenu);
IMENUCTL_SetActive(pMe->helpSoftMenu,FALSE);
IMENUCTL_AddItem(pMe->helpSoftMenu,VENCURSCHEDULE_RES_FILE,IDS_SYSTEM_SOFTOK,IDS_SYSTEM_SOFTOK,NULL,1);
IMENUCTL_SetRect(pMe->helpSoftMenu,&pMe->m_sRect);
IMENUCTL_SetActive(pMe->helpSoftMenu,TRUE);
pMe->m_nState = APP_STATE_SYSTEM;
}
/************************************************************************/
/* 读文件 (全读) */
/************************************************************************/
static void VenCurSchedule_ReadScheduleFile(VenCurSchedule* pMe)
{
int i,j,m;
IFILEMGR_GetFreeSpace(pMe->pScheduleFileMgr,&pMe->ScheduleTotleSize);
IFILEMGR_EnumInit(pMe->pScheduleFileMgr,".c",FALSE);
while(IFILEMGR_EnumNext(pMe->pScheduleFileMgr,&pMe->ScheduleFileInfo))
{
}
if(IFILEMGR_Test(pMe->pScheduleFileMgr,"ScheduleFile.txt") == SUCCESS)
{
pMe->pScheduleFile = IFILEMGR_OpenFile(pMe->pScheduleFileMgr,"ScheduleFile.txt",_OFM_READWRITE);
}
else
{
pMe->pScheduleFile = IFILEMGR_OpenFile(pMe->pScheduleFileMgr,"ScheduleFile.txt",_OFM_CREATE);
}
for(i= 0;i<7;i++)
{
for(j=0;j<8;j++)
{
for (m=0;m<8;m++)
{
pMe->FileArry[i].DetailFileArry[j].Course[m] = 0;
pMe->FileArry[i].DetailFileArry[j].Class[m] = 0;
pMe->FileArry[i].DetailFileArry[j].Teacher[m] = 0;
pMe->FileArry[i].DetailFileArry[j].Remind[m] = 0;
pMe->FileArry[i].DetailFileArry[j].Memo[m] = 0;
}
}
}
IFILE_Seek(pMe->pScheduleFile,_SEEK_START,0);
for(pMe->Eday=0;pMe->Eday<7;pMe->Eday++)
{
for(pMe->period=0;pMe->period<8;pMe->period++)
{
IFILE_Read(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Course,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Course));
IFILE_Read(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Class,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Class));
IFILE_Read(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Teacher,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Teacher));
IFILE_Read(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Remind,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Remind));
IFILE_Read(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Memo,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Memo));
}
}
IFILE_Release(pMe->pScheduleFile);
}
/************************************************************************/
/* 写文件(全写) */
/************************************************************************/
static void VenCurSchedule_WriteScheduleFile(VenCurSchedule* pMe)
{
IFILEMGR_GetFreeSpace(pMe->pScheduleFileMgr,&pMe->ScheduleTotleSize);
IFILEMGR_EnumInit(pMe->pScheduleFileMgr,".c",FALSE);
while(IFILEMGR_EnumNext(pMe->pScheduleFileMgr,&pMe->ScheduleFileInfo))
{
}
if(IFILEMGR_Test(pMe->pScheduleFileMgr,"ScheduleFile.txt") == SUCCESS)
{
pMe->pScheduleFile = IFILEMGR_OpenFile(pMe->pScheduleFileMgr,"ScheduleFile.txt",_OFM_READWRITE);
}
else
{
pMe->pScheduleFile = IFILEMGR_OpenFile(pMe->pScheduleFileMgr,"ScheduleFile.txt",_OFM_CREATE);
}
IFILE_Seek(pMe->pScheduleFile,_SEEK_START,0);
for(pMe->Eday=0;pMe->Eday<7;pMe->Eday++)
{
for (pMe->period=0;pMe->period<8;pMe->period++)
{
if(IFILE_Write(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Course,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Course)) != sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Course))
{
//写入数据出错
}
if(IFILE_Write(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Class,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Class)) != sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Class))
{
//写入数据出错
}
if(IFILE_Write(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Teacher,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Teacher)) != sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Teacher))
{
//写入数据出错
}
if(IFILE_Write(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Remind,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Remind)) != sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Remind))
{
//写入数据出错
}
if(IFILE_Write(pMe->pScheduleFile,pMe->FileArry[pMe->Eday].DetailFileArry[pMe->period].Memo,sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Memo)) != sizeof(pMe->FileArry[pMe->day].DetailFileArry[pMe->period].Memo))
{
//写入数据出错
}
}
}
IFILE_Release(pMe->pScheduleFile);
}
/************************************************************************/
/* */
/************************************************************************/
static void VenCurSchedule_FinishSplashScreen(VenCurSchedule* pMe)
{
IImage* pImage = NULL;
AEEImageInfo rImageInfo;
// Load the splash image from the rsource file
pImage = ISHELL_LoadResImage(pMe->a.m_pIShell,VENCURSCHEDULE_RES_FILE,IDB_SUCCESS);
if(pImage)
{
// Clear screen and draw the image in the center of the screen
IDISPLAY_ClearScreen(pMe->a.m_pIDisplay);
IIMAGE_GetInfo(pImage,&rImageInfo);
IIMAGE_Draw(pImage,0,0);
IDISPLAY_Update(pMe->a.m_pIDisplay);
IIMAGE_Release(pImage);
// Set the callback timer to call this function again
ISHELL_SetTimer(pMe->a.m_pIShell,FINISH_DISPLAY_TIMER,(PFNNOTIFY)VenCurSchedule_MenuStart,(void*)pMe);
}
else
{
VenCurSchedule_MenuStart(pMe);
}
pMe->m_nState = APP_STATE_SPLASH;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -