📄 schedatedisp.c
字号:
/**************************************************************************
* Function Name : ScheDateDisp_Disp
* Description : 显示整个界面.
* Input Parameters : CMainWin *
* Output Parameters: None
* Return Value : None
* Date : 2007/04/11
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
void ScheDateDisp_Disp(CMainWin* pMe)
{
ScheExt_Reset((Schedule *)pMe->m_pOwner,pMe->set);
ScheDateDisp_DrawGround(pMe);
ScheExt_SetMonthProperties((Schedule *)pMe->m_pOwner);
ScheDateDisp_DrawCusor(pMe);
ScheDateDisp_DrawDate(pMe);
}
/**************************************************************************
* Function Name : ScheDateDisp_DrawCusor
* Description : 绘制屏幕上选中日期的小矩形.
* Input Parameters : CMainWin *
* Output Parameters: None
* Return Value : None
* Date : 2007/04/11
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
static void ScheDateDisp_DrawCusor(CMainWin* pMe)
{
int new_xPos=0;
int new_yPos=0;
switch(pMe->m_firstPos)
{
case 0:
if(pMe->m_pOwner->m_day<=7)
{
pMe->v_count = 0;
pMe->h_count = pMe->m_pOwner->m_day-1;
}
else if(pMe->m_pOwner->m_day<=14)
{
pMe->v_count = 1;
pMe->h_count = pMe->m_pOwner->m_day-8;
}
else if(pMe->m_pOwner->m_day<=21)
{
pMe->v_count = 2;
pMe->h_count = pMe->m_pOwner->m_day-15;
}
else if(pMe->m_pOwner->m_day<=28)
{
pMe->v_count = 3;
pMe->h_count = pMe->m_pOwner->m_day-22;
}
else
{
pMe->v_count = 4;
pMe->h_count = pMe->m_pOwner->m_day-30;
}
break;
case 1:
if(pMe->m_pOwner->m_day<=6)
{
pMe->v_count = 0;
pMe->h_count = pMe->m_pOwner->m_day;
}
else if(pMe->m_pOwner->m_day<=13)
{
pMe->v_count = 1;
pMe->h_count = pMe->m_pOwner->m_day-7;
}
else if(pMe->m_pOwner->m_day<=20)
{
pMe->v_count = 2;
pMe->h_count = pMe->m_pOwner->m_day-14;
}
else if(pMe->m_pOwner->m_day<=27)
{
pMe->v_count = 3;
pMe->h_count = pMe->m_pOwner->m_day-21;
}
else
{
pMe->v_count = 4;
pMe->h_count = pMe->m_pOwner->m_day-28;
}
break;
case 2:
if(pMe->m_pOwner->m_day<=5)
{
pMe->v_count = 0;
pMe->h_count = pMe->m_pOwner->m_day+1;
}
else if(pMe->m_pOwner->m_day<=12)
{
pMe->v_count = 1;
pMe->h_count = pMe->m_pOwner->m_day-6;
}
else if(pMe->m_pOwner->m_day<=19)
{
pMe->v_count = 2;
pMe->h_count = pMe->m_pOwner->m_day-13;
}
else if(pMe->m_pOwner->m_day<=26)
{
pMe->v_count = 3;
pMe->h_count = pMe->m_pOwner->m_day-20;
}
else
{
pMe->v_count = 4;
pMe->h_count = pMe->m_pOwner->m_day-27;
}
break;
case 3:
if(pMe->m_pOwner->m_day<=4)
{
pMe->v_count = 0;
pMe->h_count = pMe->m_pOwner->m_day+2;
}
else if(pMe->m_pOwner->m_day<=11)
{
pMe->v_count = 1;
pMe->h_count = pMe->m_pOwner->m_day-5;
}
else if(pMe->m_pOwner->m_day<=18)
{
pMe->v_count = 2;
pMe->h_count = pMe->m_pOwner->m_day-12;
}
else if(pMe->m_pOwner->m_day<=25)
{
pMe->v_count = 3;
pMe->h_count = pMe->m_pOwner->m_day-19;
}
else
{
pMe->v_count = 4;
pMe->h_count = pMe->m_pOwner->m_day-26;
}
break;
case 4:
if(pMe->m_pOwner->m_day<=3)
{
pMe->v_count = 0;
pMe->h_count = pMe->m_pOwner->m_day+3;
}
else if(pMe->m_pOwner->m_day<=10)
{
pMe->v_count = 1;
pMe->h_count = pMe->m_pOwner->m_day-4;
}
else if(pMe->m_pOwner->m_day<=17)
{
pMe->v_count = 2;
pMe->h_count = pMe->m_pOwner->m_day-11;
}
else if(pMe->m_pOwner->m_day<=24)
{
pMe->v_count = 3;
pMe->h_count = pMe->m_pOwner->m_day-18;
}
else
{
pMe->v_count = 4;
pMe->h_count = pMe->m_pOwner->m_day-25;
}
break;
case 5:
if(pMe->m_pOwner->m_day<=2)
{
pMe->v_count = 0;
pMe->h_count = pMe->m_pOwner->m_day+4;
}
else if(pMe->m_pOwner->m_day<=9)
{
pMe->v_count = 1;
pMe->h_count = pMe->m_pOwner->m_day-3;
}
else if(pMe->m_pOwner->m_day<=16)
{
pMe->v_count = 2;
pMe->h_count = pMe->m_pOwner->m_day-10;
}
else if(pMe->m_pOwner->m_day<=23)
{
pMe->v_count = 3;
pMe->h_count = pMe->m_pOwner->m_day-17;
}
else if(pMe->m_pOwner->m_day<=30)
{
pMe->v_count = 4;
pMe->h_count = pMe->m_pOwner->m_day-24;
}
else
{
pMe->v_count = 5;
pMe->h_count = pMe->m_pOwner->m_day-31;
}
break;
case 6:
if(pMe->m_pOwner->m_day<=1)
{
pMe->v_count = 0;
pMe->h_count = pMe->m_pOwner->m_day+5;
}
else if(pMe->m_pOwner->m_day<=8)
{
pMe->v_count = 1;
pMe->h_count = pMe->m_pOwner->m_day-2;
}
else if(pMe->m_pOwner->m_day<=15)
{
pMe->v_count = 2;
pMe->h_count = pMe->m_pOwner->m_day-9;
}
else if(pMe->m_pOwner->m_day<=22)
{
pMe->v_count = 3;
pMe->h_count = pMe->m_pOwner->m_day-16;
}
else if(pMe->m_pOwner->m_day<=29)
{
pMe->v_count = 4;
pMe->h_count = pMe->m_pOwner->m_day-23;
}
else
{
pMe->v_count = 5;
pMe->h_count = pMe->m_pOwner->m_day-30;
}
break;
default: ;
}
new_xPos = pMe->h_startPos + pMe->h_count*pMe->h_distance;
new_yPos = pMe->v_startPos + pMe->v_count*pMe->v_distance;
SETAEERECT( &pMe->m_rGridRect,new_xPos + 1, new_yPos + 1, pMe->h_distance - 1, pMe->v_distance - 1);
IDISPLAY_FillRect (pMe->m_pOwner->a.m_pIDisplay,&pMe->m_rGridRect, MAKE_RGB(183,111,255));
}
/**************************************************************************
* Function Name : ScheExt_InitClassData
* Description : 初始化布局屏幕的矩形.
* Input Parameters : ScheExt** , Schedule*
* Output Parameters: None
* Return Value : None
* Date : 2007/04/11
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
boolean ScheExt_InitClassData(ScheExt** ppObj,Schedule* pAee)
{
ScheExt* pMe = NULL;
pMe = (ScheExt*)MALLOC(sizeof(ScheExt));
if(NULL == pMe)
{
return FALSE;
}
// initial [S]
SETAEERECT( &pMe->m_rRect1, 0, 0, pAee->DeviceInfo.cxScreen,20 );
SETAEERECT( &pMe->m_rRect2, 0,pAee->DeviceInfo.cyScreen-15, pAee->DeviceInfo.cxScreen,15 );
SETAEERECT( &pMe->m_rRect3, 0, 20, pAee->DeviceInfo.cxScreen,pAee->DeviceInfo.cyScreen-35 );
// initial [E]
*ppObj = pMe;
return TRUE;
}
/**************************************************************************
* Function Name : ScheExt_Reset
* Description : Draw hander of the application
* Input Parameters : ScheExt** , Schedule*
* Output Parameters: None
* Return Value : None
* Date : 2007/04/11
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
void ScheExt_Reset(Schedule* pMe,ScheExt* Set)
{
IDISPLAY_ClearScreen(pMe->a.m_pIDisplay);
IDISPLAY_FillRect (pMe->a.m_pIDisplay,&Set->m_rRect1, MAKE_RGB(255,70,70));
IDISPLAY_FillRect (pMe->a.m_pIDisplay,&Set->m_rRect2, MAKE_RGB(255,70,70));
}
/**************************************************************************
* Function Name : ScheExt_SetMonthProperties
* Description : This function set any month days
* Input Parameters : Schedule*
* Output Parameters: None
* Return Value : None
* Date : 2007/04/11
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
void ScheExt_SetMonthProperties(Schedule* pMe)
{
switch(pMe->m_month)
{
case 1:
{
pMe->m_days=31;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=0;
break;
}
case 2:
{
pMe->m_days=28;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=3;
break;
}
case 3:
{
pMe->m_days=31;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=3;
break;
}
case 4:
{
pMe->m_days=30;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=6;
break;
}
case 5:
{
pMe->m_days=31;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=1;
break;
}
case 6:
{
pMe->m_days=30;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=4;
break;
}
case 7:
{
pMe->m_days=31;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=6;
break;
}
case 8:
{
pMe->m_days=31;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=2;
break;
}
case 9:
{
pMe->m_days=30;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=5;
break;
}
case 10:
{
pMe->m_days=31;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=0;
break;
}
case 11:
{
pMe->m_days=30;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=3;
break;
}
case 12:
{
pMe->m_days=31;
((CMainWin *)(pMe->m_pWin) )->m_firstPos=5;
break;
}
default : ;
}
}
/**************************************************************************
* Function Name : release_ScheExt
* Description : This function is release ScheExt*.
* Input Parameters : ScheExt *
* Output Parameters: None
* Return Value : None
* Date : 2007/04/11
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
void release_ScheExt(ScheExt* Set)
{
FREEIF(Set);
}
//-------------------------------------end of file-------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -