📄 wgui_datetime.c
字号:
b->flags |= UI_SINGLE_LINE_INPUT_BOX_DISABLE_CURSOR_DRAW;
}
/*****************************************************************************
* FUNCTION
* wgui_date_time_input_set_focus
* DESCRIPTION
* set focus on input box pass as paaremter
* PARAMETERS
* focus [IN]
* RETURNS
* void
*****************************************************************************/
void wgui_date_time_input_set_focus(U8 focus)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
wgui_date_time_input_focus = focus;
switch (wgui_date_time_input_focus)
{
case WGUI_DATE_TIME_INPUT_FOCUS_NONE:
wgui_date_time_input_object_focus = NULL;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_DAY:
wgui_date_time_input_object_focus = &wgui_date_input_day;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_MONTH:
wgui_date_time_input_object_focus = &wgui_date_input_month;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_YEAR:
wgui_date_time_input_object_focus = &wgui_date_input_year;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_HOURS:
wgui_date_time_input_object_focus = &wgui_time_input_hours;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_MINUTES:
wgui_date_time_input_object_focus = &wgui_time_input_minutes;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_SECONDS:
wgui_date_time_input_object_focus = &wgui_time_input_seconds;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_AM_PM:
wgui_date_time_input_object_focus = &wgui_time_input_AM_PM;
break;
default:
wgui_date_time_input_object_focus = NULL;
break;
}
wgui_date_time_input_set_object_focus(wgui_date_time_input_object_focus);
}
/*****************************************************************************
* FUNCTION
* wgui_date_time_input_remove_focus
* DESCRIPTION
* remove focus from input box pass as paaremter
* PARAMETERS
* focus [IN]
* RETURNS
* void
*****************************************************************************/
void wgui_date_time_input_remove_focus(U8 focus)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
single_line_input_box *f = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (focus)
{
case WGUI_DATE_TIME_INPUT_FOCUS_NONE:
f = NULL;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_DAY:
f = &wgui_date_input_day;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_MONTH:
f = &wgui_date_input_month;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_YEAR:
f = &wgui_date_input_year;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_HOURS:
f = &wgui_time_input_hours;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_MINUTES:
f = &wgui_time_input_minutes;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_SECONDS:
f = &wgui_time_input_seconds;
break;
case WGUI_DATE_TIME_INPUT_FOCUS_AM_PM:
f = &wgui_time_input_AM_PM;
break;
default:
f = NULL;
break;
}
wgui_date_time_input_remove_object_focus(f);
}
/*****************************************************************************
* FUNCTION
* wgui_date_time_input_set_previous_focus
* DESCRIPTION
* set focus to previous position of current input box
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_date_time_input_set_previous_focus(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
wgui_date_time_input_remove_focus(wgui_date_time_input_focus);
switch (wgui_date_time_input_focus)
{
case WGUI_DATE_TIME_INPUT_FOCUS_NONE:
break;
case WGUI_DATE_TIME_INPUT_FOCUS_DAY:
wgui_date_time_input_set_focus(wgui_day_input_previous_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_MONTH:
wgui_date_time_input_set_focus(wgui_month_input_previous_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_YEAR:
wgui_date_time_input_set_focus(wgui_year_input_previous_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_HOURS:
wgui_date_time_input_set_focus(wgui_hours_input_previous_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_MINUTES:
wgui_date_time_input_set_focus(wgui_minutes_input_previous_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_SECONDS:
wgui_date_time_input_set_focus(wgui_seconds_input_previous_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_AM_PM:
wgui_date_time_input_set_focus(wgui_AM_PM_input_previous_focus);
break;
default:
break;
}
}
/*****************************************************************************
* FUNCTION
* wgui_date_time_input_set_next_focus
* DESCRIPTION
* set focus to next position of current input box
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_date_time_input_set_next_focus(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
wgui_date_time_input_remove_focus(wgui_date_time_input_focus);
switch (wgui_date_time_input_focus)
{
case WGUI_DATE_TIME_INPUT_FOCUS_NONE:
break;
case WGUI_DATE_TIME_INPUT_FOCUS_DAY:
wgui_date_time_input_set_focus(wgui_day_input_next_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_MONTH:
wgui_date_time_input_set_focus(wgui_month_input_next_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_YEAR:
wgui_date_time_input_set_focus(wgui_year_input_next_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_HOURS:
wgui_date_time_input_set_focus(wgui_hours_input_next_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_MINUTES:
wgui_date_time_input_set_focus(wgui_minutes_input_next_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_SECONDS:
wgui_date_time_input_set_focus(wgui_seconds_input_next_focus);
break;
case WGUI_DATE_TIME_INPUT_FOCUS_AM_PM:
wgui_date_time_input_set_focus(wgui_AM_PM_input_next_focus);
break;
default:
break;
}
}
/*****************************************************************************
* FUNCTION
* wgui_date_time_input_get_previous_focus
* DESCRIPTION
* return the previous focus input box
* PARAMETERS
* void
* RETURNS
* byte:- return the previous focus input box ..day/month/year/hour/minute/second
*****************************************************************************/
U8 wgui_date_time_input_get_previous_focus(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (wgui_date_time_input_focus)
{
case WGUI_DATE_TIME_INPUT_FOCUS_NONE:
return (WGUI_DATE_TIME_INPUT_FOCUS_NONE);
case WGUI_DATE_TIME_INPUT_FOCUS_DAY:
return (wgui_day_input_previous_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_MONTH:
return (wgui_month_input_previous_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_YEAR:
return (wgui_year_input_previous_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_HOURS:
return (wgui_hours_input_previous_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_MINUTES:
return (wgui_minutes_input_previous_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_SECONDS:
return (wgui_seconds_input_previous_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_AM_PM:
return (wgui_AM_PM_input_previous_focus);
default:
return (WGUI_DATE_TIME_INPUT_FOCUS_NONE);
}
}
/*****************************************************************************
* FUNCTION
* wgui_date_time_input_get_next_focus
* DESCRIPTION
* return the next foucs input box
* PARAMETERS
* void
* RETURNS
* byte:- return the previous focus input box ..day/month/year/hour/minute/second
*****************************************************************************/
U8 wgui_date_time_input_get_next_focus(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (wgui_date_time_input_focus)
{
case WGUI_DATE_TIME_INPUT_FOCUS_NONE:
return (WGUI_DATE_TIME_INPUT_FOCUS_NONE);
case WGUI_DATE_TIME_INPUT_FOCUS_DAY:
return (wgui_day_input_next_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_MONTH:
return (wgui_month_input_next_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_YEAR:
return (wgui_year_input_next_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_HOURS:
return (wgui_hours_input_next_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_MINUTES:
return (wgui_minutes_input_next_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_SECONDS:
return (wgui_seconds_input_next_focus);
case WGUI_DATE_TIME_INPUT_FOCUS_AM_PM:
return (wgui_AM_PM_input_next_focus);
default:
return (WGUI_DATE_TIME_INPUT_FOCUS_NONE);
}
}
/*****************************************************************************
* FUNCTION
* wgui_redraw_date_time_input
* DESCRIPTION
* redraw dte/time input box depend on current focus input box
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void wgui_redraw_date_time_input(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 x1, y1, x2, y2;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (wgui_date_time_input_object_focus == NULL)
{
return;
}
gdi_layer_lock_frame_buffer();
gui_show_single_line_input_box(wgui_date_time_input_object_focus);
gdi_layer_unlock_frame_buffer();
x1 = wgui_date_time_input_object_focus->x;
y1 = wgui_date_time_input_object_focus->y;
x2 = x1 + wgui_date_time_input_object_focus->width - 1;
y2 = y1 + wgui_date_time_input_object_focus->height - 1;
gdi_layer_blt_previous(x1, y1, x2, y2);
}
/*****************************************************************************
* FUNCTION
* wgui_date_time_direct_input
* DESCRIPTION
* input the character enter by user in date tiem input box
* PARAMETERS
* c [IN]
* RETURNS
* void
*****************************************************************************/
void wgui_date_time_direct_input(UI_character_type c)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*-----------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -