📄 fmradiomainscreen.c
字号:
/* animation */
#ifdef __MMI_FM_RADIO_ANIMATION__
fmrdo_main_draw.animation.img_handle = GDI_ERROR_HANDLE;
if (g_fmrdo.is_power_on)
{
gdi_image_draw_animation(
fmrdo_main_draw.animation.x,
fmrdo_main_draw.animation.y,
fmrdo_main_draw.animation.animation_img,
&fmrdo_main_draw.animation.img_handle);
}
else
{
gdi_image_draw(
fmrdo_main_draw.animation.x,
fmrdo_main_draw.animation.y,
fmrdo_main_draw.animation.animation_img);
}
#endif /* __MMI_FM_RADIO_ANIMATION__ */
#ifdef __GDI_MEMORY_PROFILE_2__
/* tuner scale background */
gui_show_image(
fmrdo_main_draw.tuner_scale.x,
fmrdo_main_draw.tuner_scale.y,
fmrdo_main_draw.tuner_scale.bg_img);
is_fmrdo_skin_layer_drawn = TRUE;
gdi_layer_pop_and_restore_active();
}
#endif /* __GDI_MEMORY_PROFILE_2__ */
/* show LSK */
gui_set_font(&MMI_medium_font);
gui_set_text_color(fmrdo_main_draw.LSK_text_color);
gui_set_text_border_color(fmrdo_main_draw.LSK_text_border_color);
gui_measure_string(fmrdo_main_draw.LSK_text, &str_w, &str_h);
x1 = FMRDO_LSK_X_OFFSET - 1;
y1 = UI_device_height - str_h - FMRDO_LSK_Y_OFFSET - 1;
x2 = str_w + FMRDO_LSK_X_OFFSET - 1;
y2 = UI_device_height - FMRDO_LSK_Y_OFFSET - 1;
gui_set_text_clip(x1, y1 - 1, x2, y2);
if (r2lMMIFlag)
{
gui_move_text_cursor(x2, y1);
}
else
{
gui_move_text_cursor(x1, y1);
}
gui_print_bordered_text(fmrdo_main_draw.LSK_text);
#ifdef __MMI_TOUCH_SCREEN__
LSK_area.num = 4;
LSK_area.points = (mmi_pen_point_struct*) LSK_points;
LSK_points[0].x = LSK_points[3].x = x1;
LSK_points[0].y = LSK_points[1].y = y1;
LSK_points[1].x = LSK_points[2].x = x2 + 1;
LSK_points[2].y = LSK_points[3].y = y2 + 1;
#endif /* __MMI_TOUCH_SCREEN__ */
/* show RSK */
gui_set_text_color(fmrdo_main_draw.RSK_text_color);
gui_set_text_border_color(fmrdo_main_draw.RSK_text_border_color);
gui_measure_string(fmrdo_main_draw.RSK_text, &str_w, &str_h);
x1 = UI_device_width - str_w - FMRDO_RSK_X_OFFSET - 1;
y1 = UI_device_height - str_h - FMRDO_RSK_Y_OFFSET - 1;
x2 = UI_device_width - FMRDO_RSK_X_OFFSET - 1;
y2 = UI_device_height - FMRDO_RSK_Y_OFFSET - 1;
gui_set_text_clip(x1, y1 - 1, x2, y2);
if (r2lMMIFlag)
{
gui_move_text_cursor(x2, y1);
}
else
{
gui_move_text_cursor(x1, y1);
}
gui_print_bordered_text(fmrdo_main_draw.RSK_text);
#ifdef __MMI_TOUCH_SCREEN__
RSK_area.num = 4;
RSK_area.points = (mmi_pen_point_struct*) RSK_points;
RSK_points[0].x = RSK_points[3].x = x1;
RSK_points[0].y = RSK_points[1].y = y1;
RSK_points[1].x = RSK_points[2].x = x2 + 1;
RSK_points[2].y = RSK_points[3].y = y2 + 1;
#endif /* __MMI_TOUCH_SCREEN__ */
gui_pop_text_clip();
gui_pop_clip();
/* draw components */
mmi_fmrdo_redraw_main_frequency(g_fmrdo.frequency, TRUE);
mmi_fmrdo_redraw_main_channel_name(0);
mmi_fmrdo_redraw_main_channel_tuner(g_fmrdo.frequency);
mmi_fmrdo_redraw_main_volume();
mmi_fmrdo_redraw_main_push_button(
FMRDO_BUTTON_STEP_DOWN,
(BOOL) (g_fmrdo.is_button_down && (g_fmrdo.selected_button == FMRDO_BUTTON_STEP_DOWN)));
mmi_fmrdo_redraw_main_push_button(
FMRDO_BUTTON_STEP_UP,
(BOOL) (g_fmrdo.is_button_down && (g_fmrdo.selected_button == FMRDO_BUTTON_STEP_UP)));
mmi_fmrdo_redraw_main_toggle_button(
FMRDO_BUTTON_SEARCH,
(BOOL) (g_fmrdo.is_button_down && (g_fmrdo.selected_button == FMRDO_BUTTON_SEARCH)),
g_fmrdo.is_search_on,
TRUE);
mmi_fmrdo_redraw_main_toggle_button(
FMRDO_BUTTON_POWER,
(BOOL) (g_fmrdo.is_button_down && (g_fmrdo.selected_button == FMRDO_BUTTON_POWER)),
g_fmrdo.is_power_on,
TRUE);
#ifdef __MMI_TOUCH_SCREEN__
mmi_fmrdo_redraw_main_push_down_button(0, fmrdo_main_draw.volume_dec_button.down);
mmi_fmrdo_redraw_main_push_down_button(1, fmrdo_main_draw.volume_inc_button.down);
mmi_fmrdo_redraw_main_push_down_button(2, fmrdo_main_draw.setting_button.down);
#endif /* __MMI_TOUCH_SCREEN__ */
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_unlock_double_buffer();
gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
#endif /* (UI_DOUBLE_BUFFER_SUPPORT) */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_redraw_main_frequency
* DESCRIPTION
*
* PARAMETERS
* freq [IN]
* is_shown [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_redraw_main_frequency(U16 freq, BOOL is_shown)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 x, y;
S32 x1 = fmrdo_main_draw.frequency.x;
S32 y1 = fmrdo_main_draw.frequency.y;
S32 x2 = fmrdo_main_draw.frequency.x + fmrdo_main_draw.frequency.w - 1;
S32 y2 = fmrdo_main_draw.frequency.y + fmrdo_main_draw.frequency.h - 1;
S32 prefix_str_w, prefix_str_h, str_w, str_h;
UI_character_type prefix_str[] = L"FM ";
UI_character_type str[32];
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_wsprintf(str, "%d.%d", freq / 10, freq % 10);
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_lock_double_buffer();
#endif
gui_push_clip();
gui_set_clip(x1, y1, x2, y2);
/* background & text */
#ifdef __GDI_MEMORY_PROFILE_2__
gdi_draw_solid_rect(x1, y1, x2, y2, GDI_COLOR_TRANSPARENT);
#else
gui_show_image(0, 0, fmrdo_main_draw.bg_img);
#endif
if (is_shown)
{
gui_push_text_clip();
gui_set_text_clip(x1, y1, x2, y2);
if (g_fmrdo.is_power_on)
{
gui_set_text_color(fmrdo_main_draw.frequency_text_on_color);
}
else
{
gui_set_text_color(fmrdo_main_draw.frequency_text_off_color);
}
gui_set_font(&MMI_medium_font);
gui_measure_string(str, &str_w, &str_h);
gui_set_font(&MMI_small_font);
gui_measure_string(prefix_str, &prefix_str_w, &prefix_str_h);
x = x1 + (fmrdo_main_draw.frequency.w - str_w - prefix_str_w) / 2;
y = y1 + (fmrdo_main_draw.frequency.h - str_h) / 2;
/* prefix "FM " */
if (r2lMMIFlag)
{
gui_move_text_cursor(x + prefix_str_w - 1, y + str_h - prefix_str_h - 1);
}
else
{
gui_move_text_cursor(x, y + str_h - prefix_str_h - 1);
}
gui_print_text(prefix_str);
/* frequency number */
gui_set_font(&MMI_medium_font);
if (r2lMMIFlag)
{
gui_move_text_cursor(x + prefix_str_w + str_w - 1, y);
}
else
{
gui_move_text_cursor(x + prefix_str_w - 1, y);
}
gui_print_text(str);
gui_pop_text_clip();
}
gui_pop_clip();
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_unlock_double_buffer();
gui_BLT_double_buffer(x1, y1, x2, y2);
#endif /* (UI_DOUBLE_BUFFER_SUPPORT) */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_redraw_main_channel_name
* DESCRIPTION
*
* PARAMETERS
* other_str [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_redraw_main_channel_name(UI_string_type other_str)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 x1 = fmrdo_main_draw.channel_name.x;
S32 y1 = fmrdo_main_draw.channel_name.y;
S32 x2 = fmrdo_main_draw.channel_name.x + fmrdo_main_draw.channel_name.w - 1;
S32 y2 = fmrdo_main_draw.channel_name.y + fmrdo_main_draw.channel_name.h - 1;
S32 str_w, str_h;
UI_string_type str;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (other_str == 0)
{
if (g_fmrdo.channel_index >= 0)
{
str = fmrdo_main_draw.channel_name_str;
kal_wsprintf(str, "%d. %w", g_fmrdo.channel_index + 1, g_fmrdo.channel_list.name[g_fmrdo.channel_index]);
}
else
{
str = (UI_string_type) GetString(STR_ID_FMRDO_TITLE);
}
}
else
{
str = other_str;
}
/* stop previous scroll text */
if (!fmrdo_main_draw.is_channel_name_scroll_ready)
{
gui_scrolling_text_stop(&fmrdo_main_draw.channel_name_scroll);
}
else
{
fmrdo_main_draw.is_channel_name_scroll_ready = TRUE;
}
gui_create_scrolling_text(
&fmrdo_main_draw.channel_name_scroll,
x1 + 2,
y1 + 1,
fmrdo_main_draw.channel_name.w - 4,
fmrdo_main_draw.channel_name.h - 2,
str,
mmi_fmrdo_scroll_channel_name_hdlr,
mmi_fmrdo_redraw_main_background,
fmrdo_main_draw.channel_name_text_color,
fmrdo_main_draw.channel_name_text_border_color);
fmrdo_main_draw.channel_name_scroll.text_font = MMI_medium_font;
fmrdo_main_draw.channel_name_scroll.flags |= UI_SCROLLING_TEXT_BORDERED_TEXT;
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_lock_double_buffer();
#endif
gui_push_clip();
gui_set_clip(x1, y1, x2, y2);
/* stop scrolling if necessary */
gui_scrolling_text_stop(&fmrdo_main_draw.channel_name_scroll);
gui_set_font(&MMI_medium_font);
gui_measure_string(str, &str_w, &str_h);
/* background */
#ifdef __GDI_MEMORY_PROFILE_2__
gdi_draw_solid_rect(x1, y1, x2, y2, GDI_COLOR_TRANSPARENT);
#else
gui_show_image(0, 0, fmrdo_main_draw.bg_img);
#endif
/* text */
if (str_w > fmrdo_main_draw.channel_name.w - 4)
{
/* scrolling */
gui_change_scrolling_text(&fmrdo_main_draw.channel_name_scroll, str);
gui_show_scrolling_text(&fmrdo_main_draw.channel_name_scroll);
}
else
{
/* no scrolling */
gui_push_text_clip();
gui_set_text_clip(x1, y1, x2, y2);
gui_set_text_color(fmrdo_main_draw.channel_name_text_color);
gui_set_text_border_color(fmrdo_main_draw.channel_name_text_border_color);
if (r2lMMIFlag)
{
gui_move_text_cursor(
x1 + (fmrdo_main_draw.channel_name.w + str_w) / 2,
y1 + (fmrdo_main_draw.channel_name.h - str_h) / 2);
}
else
{
gui_move_text_cursor(
x1 + (fmrdo_main_draw.channel_name.w - str_w) / 2,
y1 + (fmrdo_main_draw.channel_name.h - str_h) / 2);
}
gui_print_bordered_text(str);
gui_pop_text_clip();
}
gui_pop_clip();
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_unlock_double_buffer();
gui_BLT_double_buffer(x1, y1, x2, y2);
#endif /* (UI_DOUBLE_BUFFER_SUPPORT) */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_redraw_main_channel_tuner
* DESCRIPTION
*
* PARAMETERS
* freq [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_redraw_main_channel_tuner(U16 freq)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -