📄 settime.c
字号:
break;
default:
break;
}
}
_SETTIME_UpdateCursor(hSetTime, FALSE);
break;
case KEY_DOWN:
//updaet the time
{
switch (_bSETTIMEDialogCursorPos[hSetTime])
{
case SET_TIME_DIALOG_CURSOR_POS_HOUR:
if (_SETTIMESetTime[hSetTime].DisplayTime.bHour > 0)
{
_SETTIMESetTime[hSetTime].DisplayTime.bHour--;
}
else
{
_SETTIMESetTime[hSetTime].DisplayTime.bHour = 23;
}
break;
case SET_TIME_DIALOG_CURSOR_POS_MINUTE:
if (_SETTIMESetTime[hSetTime].DisplayTime.bMinute > 0)
{
_SETTIMESetTime[hSetTime].DisplayTime.bMinute--;
}
else
{
_SETTIMESetTime[hSetTime].DisplayTime.bMinute = 59;
}
break;
case SET_TIME_DIALOG_CURSOR_POS_SECOND:
if (_SETTIMESetTime[hSetTime].DisplayTime.bSecond > 0)
{
_SETTIMESetTime[hSetTime].DisplayTime.bSecond--;
}
else
{
_SETTIMESetTime[hSetTime].DisplayTime.bSecond = 59;
}
break;
default:
break;
}
}
_SETTIME_UpdateCursor(hSetTime, FALSE);
break;
case KEY_LEFT:
if (_bSETTIMEDialogCursorPos[hSetTime] == SET_TIME_DIALOG_CURSOR_POS_HOUR)
{
#ifndef NL_SOLUTION
//Clear the cursor
_SETTIME_UpdateCursor(hSetTime, TRUE);
return SETTIME_EDIT_ACTION_EXCEED_LEFT;
#endif //NL_SOLUTION
}
else
{
_SETTIME_UpdateCursor(hSetTime, TRUE);
_bSETTIMEDialogCursorPos[hSetTime]--;
_SETTIME_UpdateCursor(hSetTime, FALSE);
}
break;
case KEY_RIGHT:
if (_SETTIMESetTime[hSetTime].DisplayTime.bDisplayType == SETTIME_DISPLAY_MODE_HOUR_MINUTE)
{
if (_bSETTIMEDialogCursorPos[hSetTime] == SET_TIME_DIALOG_CURSOR_POS_MINUTE)
{
#ifdef NL_SOLUTION
return SETTIME_EDIT_ACTION_DONE;
#else
//Clear the cursor
_SETTIME_UpdateCursor(hSetTime, TRUE);
return SETTIME_EDIT_ACTION_EXCEED_RIGHT;
#endif //NL_SOLUTION
}
}
else if (_SETTIMESetTime[hSetTime].DisplayTime.bDisplayType == SETTIME_DISPLAY_MODE_HOUR_MINUTE_SEC)
{
if (_bSETTIMEDialogCursorPos[hSetTime] == SET_TIME_DIALOG_CURSOR_POS_SECOND)
{
#ifdef NL_SOLUTION
return SETTIME_EDIT_ACTION_DONE;
#else
//Clear the cursor
_SETTIME_UpdateCursor(hSetTime, TRUE);
return SETTIME_EDIT_ACTION_EXCEED_RIGHT;
#endif //#ifndef NL_SOLUTION
}
}
_SETTIME_UpdateCursor(hSetTime, TRUE);
_bSETTIMEDialogCursorPos[hSetTime]++;
_SETTIME_UpdateCursor(hSetTime, FALSE);
break;
case KEY_PLAY:
case KEY_ENTER:
return SETTIME_EDIT_ACTION_EXCEED_ENTER;
default:
break;
}
return SETTIME_EDIT_ACTION_DONE;
}
void SETTIME_Recover(HSETTIME hSetTime)
{
_SETTIME_DrawAllUI(hSetTime);
}
void SETTIME_Exit(HSETTIME hSetTime, BYTE bClearBackground)
{
BYTE i;
if (_hSETTIMEDlg[hSetTime] != DIALOG_HANDLE_INVALID)
{
DIALOG_DeleteDialog(_hSETTIMEDlg[hSetTime], bClearBackground);
_hSETTIMEDlg[hSetTime] = DIALOG_HANDLE_INVALID;
}
for (i = 0; i < MAX_SUPPORT_SETTIME_HANDLE_NUM; i++)
{
if (_hSETTIMESetTimeStack[i] == hSetTime)
{
_hSETTIMESetTimeStack[i] = SETTIME_HANDLE_FREE;
return;
}
}
}
void _SETTIME_UpdateCursor(HSETTIME hSetTime, BYTE bClear)
{
switch (_bSETTIMEDialogCursorPos[hSetTime])
{
case SET_TIME_DIALOG_CURSOR_POS_HOUR:
_SETTIME_ShowTimeNum(hSetTime, _SETTIMESetTime[hSetTime].DisplayTime.bHour, _SETTIMESetTime[hSetTime].DisplayTime.wStartX, !bClear);
break;
case SET_TIME_DIALOG_CURSOR_POS_MINUTE:
_SETTIME_ShowTimeNum(hSetTime, _SETTIMESetTime[hSetTime].DisplayTime.bMinute, _SETTIMESetTime[hSetTime].DisplayTime.wStartX+SETTIME_NUM_WIDTH*2+SETTIME_NUM_COLON_WIDTH, !bClear);
break;
case SET_TIME_DIALOG_CURSOR_POS_SECOND:
_SETTIME_ShowTimeNum(hSetTime, _SETTIMESetTime[hSetTime].DisplayTime.bSecond, _SETTIMESetTime[hSetTime].DisplayTime.wStartX+SETTIME_NUM_WIDTH*4+SETTIME_NUM_COLON_WIDTH*2, !bClear);
break;
default:
break;
}
}
void _SETTIME_ShowTime(HSETTIME hSetTime)
{
//Show hour
_SETTIME_ShowTimeNum(hSetTime, _SETTIMESetTime[hSetTime].DisplayTime.bHour, _SETTIMESetTime[hSetTime].DisplayTime.wStartX, FALSE);
//Show colon
_SETTIME_ShowColon(hSetTime, 0);
//Show minute
_SETTIME_ShowTimeNum(hSetTime, _SETTIMESetTime[hSetTime].DisplayTime.bMinute, _SETTIMESetTime[hSetTime].DisplayTime.wStartX+SETTIME_NUM_WIDTH*2+SETTIME_NUM_COLON_WIDTH, FALSE);
if (_SETTIMESetTime[hSetTime].DisplayTime.bDisplayType == SETTIME_DISPLAY_MODE_HOUR_MINUTE_SEC)
{
//Show colon
_SETTIME_ShowColon(hSetTime, 1);
//Show second
_SETTIME_ShowTimeNum(hSetTime, _SETTIMESetTime[hSetTime].DisplayTime.bSecond, _SETTIMESetTime[hSetTime].DisplayTime.wStartX+SETTIME_NUM_WIDTH*4+SETTIME_NUM_COLON_WIDTH*2, FALSE);
}
}
void _SETTIME_ShowColon(HSETTIME hSetTime, BYTE bPos)
{
PARM_DRAW_STRING SETTIMEStringAttr;
SETTIMEStringAttr.bBackground = DIALOG_PALETTE_ENTRY_CONTENT_BACKGROUND;
SETTIMEStringAttr.bColorKey = 0;
SETTIMEStringAttr.bShadow1 = DIALOG_PALETTE_ENTRY_CONTENT_BACKGROUND;
SETTIMEStringAttr.bShadow2 = DIALOG_PALETTE_ENTRY_CONTENT_BACKGROUND;
SETTIMEStringAttr.bTextColor = SET_TIME_DIALOG_PALETTE_ENTRY_EDIT_INFO;
SETTIMEStringAttr.wX = _SETTIMESetTime[hSetTime].DisplayTime.wStartX+(SETTIME_NUM_WIDTH*2)*(bPos+1)+SETTIME_NUM_COLON_WIDTH*bPos;
SETTIMEStringAttr.wY = _SETTIMESetTime[hSetTime].DisplayTime.wStartY;
GDI_DrawString(0, &SETTIMEStringAttr, aSETTIMEColon);
}
//***************************************************************************
// Function : _SETTIME_ShowTime
// Abstract :
// Arguments : wNum: The number you want to output.
// Return : none.
// Side Effect : none.
// Notes :
//***************************************************************************
void _SETTIME_ShowTimeNum(HSETTIME hSetTime, WORD wNum, WORD wStartX, BYTE bCursor)
{
PARM_DRAW_STRING SETTIMEStringAttr;
OSDUTL_PrepareOutputString();
OSDUTL_OutputNumFromIndex((WORD)(wNum/10));
OSDUTL_OutputNumFromIndex((WORD)(wNum%10));
if (bCursor)
{
SETTIMEStringAttr.bBackground = SET_TIME_DIALOG_PALETTE_ENTRY_EDIT_HIGHLIGHT;
}
else
{
SETTIMEStringAttr.bBackground = DIALOG_PALETTE_ENTRY_CONTENT_BACKGROUND;
}
SETTIMEStringAttr.bColorKey = 0;
SETTIMEStringAttr.bShadow1 = DIALOG_PALETTE_ENTRY_CONTENT_BACKGROUND;
SETTIMEStringAttr.bShadow2 = DIALOG_PALETTE_ENTRY_CONTENT_BACKGROUND;
SETTIMEStringAttr.bTextColor = SET_TIME_DIALOG_PALETTE_ENTRY_EDIT_INFO;
SETTIMEStringAttr.wX = wStartX;
SETTIMEStringAttr.wY = _SETTIMESetTime[hSetTime].DisplayTime.wStartY;
GDI_DrawString(0, &SETTIMEStringAttr, __pOSDUTLOutputString);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -