mt2503 在view message body的时候,希望将header跟消息内容一块滚动,增...
时间:10-02
整理:3721RD
点击:
[Editor]在view message body的时候,希望将header跟消息内容一块滚动,增加显示消息内容的显示区域
[DESCRIPTION]
目前头信息的显示方式是用multiline,而短消息是使用EMS,因此在滑动短消息时头信息不会跟着滑动。ems本身是可以显示头信息的,只是目前没
有用。
[SOLUTION]
修改如下:
1.去掉原有的头信息
CustCoordinates.c//plutoMMI\customer\custresource下的文件
constU8category39[]=
{
4,//由5改为4
DM_BASE_LAYER_START,
DM_SCR_BG,
DM_BASE_CONTROL_SET_COMMON,
//DM_CATEGORY_CONTROLLED_AREA,//原有头信息位置
#if(UI_DISABLE_EMS_INPUT_BOX)
DM_MULTILINE_INPUTBOX1
#else
DM_EMS_INPUTBOX1
#endif
};
constS16coordinate_set39[]=
{
DM_FULL_SCREEN_COORDINATE_FLAG,
DM_COMMON_CONTENT_COORDINATE_FLAG,/*Emsheadercontrolarea*/
//0,1,MMI_CONTENT_WIDTH,MAIN_LCD_DEVICE_HEIGHT-MMI_BUTTON_BAR_HEIGHT,/*Multilineinputbox*/
DM_PREVIOUS_CONTROL_END_Y|DM_HEIGHT_OFFSET_PREVIOUS_CONTROL_END_Y
};
2.去掉原有头信息对于的处理函数
ShowCategory39Screen
a.//dm_register_category_controlled_callback(DrawCate39CategoryControlArea);//注释该语句
b.在gui_set_EMS_input_box_data(&MMI_EMS_inputbox,data)之前
MMI_EMS_inputbox.flags|=UI_EMS_INPUT_BOX_VIEW_MODE之后,添加下面语句
MMI_EMS_inputbox.flags|=UI_EMS_INPUT_BOX_DISPLAY_HEADER;//用于显示ems本身的头信息
3.修改现有头信息的起始显示位置
EMS_viewer_show_header函数中
#if!defined(__MMI_MAINLCD_128X128__)
gui_set_text_color(current_header_information_text_theme->text_color);
gdi_image_get_dimension_id(WGUI_IMG_TEXT_BG_TOP,&top_image_width,&top_image_height);
gdi_image_get_dimension_id(WGUI_IMG_TEXT_BG_BOTTOM,&bottom_image_width,&bottom_image_height);
//以下为修改部分
/*ey1=y1-top_image_height-1;
ey2=y2+bottom_image_height+1;
gui_set_CLIp(ex1,ey1,ex2,ey2);
DrawTextAreaBackground(ex1,y1-top_image_height,ex2,y2+bottom_image_height);*/
ey1=y1;
ey2=y2+bottom_image_height+1;
gui_set_clip(ex1,ey1,ex2,ey2);
DrawTextAreaBackground(ex1,y1,ex2,y2+bottom_image_height);
//modifyend
#else
ey1=y1+1;
ey2=y2-1;
gui_set_clip(ex1,ey1,ex2,ey2);
gui_set_text_color(UI_COLOR_BLACK);
gui_draw_filled_area(ex1,y1,ex2,y2,&EMS_viewer_header_background_filler);
#endif
4.gui_EMS_input_box_scroll_down函数中
if((b->display_y+b->display_height)<b->height)
{
b->display_y=b->height-b->display_height-GUI_EMS_INPUTBOX_HEIGHT_EXTRA_GAP;
}
修改为:
if((b->display_y+b->display_height+b->header_height)<b->height)
{
b->display_y=b->height-b->display_height-GUI_EMS_INPUTBOX_HEIGHT_EXTRA_GAP-b->header_height;
}
//多了个b->header_height
[DESCRIPTION]
目前头信息的显示方式是用multiline,而短消息是使用EMS,因此在滑动短消息时头信息不会跟着滑动。ems本身是可以显示头信息的,只是目前没
有用。
[SOLUTION]
修改如下:
1.去掉原有的头信息
CustCoordinates.c//plutoMMI\customer\custresource下的文件
constU8category39[]=
{
4,//由5改为4
DM_BASE_LAYER_START,
DM_SCR_BG,
DM_BASE_CONTROL_SET_COMMON,
//DM_CATEGORY_CONTROLLED_AREA,//原有头信息位置
#if(UI_DISABLE_EMS_INPUT_BOX)
DM_MULTILINE_INPUTBOX1
#else
DM_EMS_INPUTBOX1
#endif
};
constS16coordinate_set39[]=
{
DM_FULL_SCREEN_COORDINATE_FLAG,
DM_COMMON_CONTENT_COORDINATE_FLAG,/*Emsheadercontrolarea*/
//0,1,MMI_CONTENT_WIDTH,MAIN_LCD_DEVICE_HEIGHT-MMI_BUTTON_BAR_HEIGHT,/*Multilineinputbox*/
DM_PREVIOUS_CONTROL_END_Y|DM_HEIGHT_OFFSET_PREVIOUS_CONTROL_END_Y
};
2.去掉原有头信息对于的处理函数
ShowCategory39Screen
a.//dm_register_category_controlled_callback(DrawCate39CategoryControlArea);//注释该语句
b.在gui_set_EMS_input_box_data(&MMI_EMS_inputbox,data)之前
MMI_EMS_inputbox.flags|=UI_EMS_INPUT_BOX_VIEW_MODE之后,添加下面语句
MMI_EMS_inputbox.flags|=UI_EMS_INPUT_BOX_DISPLAY_HEADER;//用于显示ems本身的头信息
3.修改现有头信息的起始显示位置
EMS_viewer_show_header函数中
#if!defined(__MMI_MAINLCD_128X128__)
gui_set_text_color(current_header_information_text_theme->text_color);
gdi_image_get_dimension_id(WGUI_IMG_TEXT_BG_TOP,&top_image_width,&top_image_height);
gdi_image_get_dimension_id(WGUI_IMG_TEXT_BG_BOTTOM,&bottom_image_width,&bottom_image_height);
//以下为修改部分
/*ey1=y1-top_image_height-1;
ey2=y2+bottom_image_height+1;
gui_set_CLIp(ex1,ey1,ex2,ey2);
DrawTextAreaBackground(ex1,y1-top_image_height,ex2,y2+bottom_image_height);*/
ey1=y1;
ey2=y2+bottom_image_height+1;
gui_set_clip(ex1,ey1,ex2,ey2);
DrawTextAreaBackground(ex1,y1,ex2,y2+bottom_image_height);
//modifyend
#else
ey1=y1+1;
ey2=y2-1;
gui_set_clip(ex1,ey1,ex2,ey2);
gui_set_text_color(UI_COLOR_BLACK);
gui_draw_filled_area(ex1,y1,ex2,y2,&EMS_viewer_header_background_filler);
#endif
4.gui_EMS_input_box_scroll_down函数中
if((b->display_y+b->display_height)<b->height)
{
b->display_y=b->height-b->display_height-GUI_EMS_INPUTBOX_HEIGHT_EXTRA_GAP;
}
修改为:
if((b->display_y+b->display_height+b->header_height)<b->height)
{
b->display_y=b->height-b->display_height-GUI_EMS_INPUTBOX_HEIGHT_EXTRA_GAP-b->header_height;
}
//多了个b->header_height
谢谢分享