程序员的知识教程库

网站首页 > 教程分享 正文

〖FAQ〗MT2503inline caption item text太长的时候如何滚动显示?

henian88 2024-08-14 18:32:35 教程分享 28 ℃ 0 评论

[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

}

?

来源:一牛网论坛

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表