[DESCRIPTION]
目前 inline editor caption item 只能显示固定长度的text 长度,当text 长度超过最大可显示范围,超过的部分显示不出来,所以text 需要滚动显示,目前修改的方法适用于FTE project,NON-FTE project 请参照此codebase ,修改和FTE对应函数。
[SOLUTION]
基本原理是highlight show caption item 的时候,判断如果text 长度超过最大可显示长度就start timer 定时刷新text,unhighlight 或 screen exit 的时候 stop当前的timer。
具体修改步骤如下:
所有修改都是基于wgui_inline_edit.c
1.add a variable
at the head of wgui_inline_edit.c, add a variable definition
static scrolling_text wgui_inline_scroll_text2 ; //for caption scrolling
2.add a function
void wgui_inline_scrolling_timer2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
//for caption scrolling
gui_handle_scrolling_text(&wgui_inline_scroll_text2);
}
3.add a function
void wgui_scrolling_text_draw_background2(S32 x1, S32 y1, S32 x2, S32 y2)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 * image = NULL;
UI_filled_area *bg_filler = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_FTE_SUPPORT__
if((wgui_inline_items[wgui_inline_item_highlighted_index-1].flags & 0xff)
== INLINE_ITEM_TYPE_CAPTION)
{
gdi_draw_solid_rect(x1, y1, x2, y2, GDI_COLOR_TRANSPARENT); // 如果需要显
示其他background,这里要修改
}
#else
gui_draw_filled_area(x1, y1, x2, y2,
(wgui_inline_select_fixed_text_menuitem_theme.selected_filler));
#endif
}
?
来源:一牛网论坛
本文暂时没有评论,来添加一个吧(●'◡'●)