简单分析DM模板内部机制
1. DM模板的全局变量 g_dm_data
typedef struct
{
S32 s32ScrId;
S32 s32CatId;
S32 s32flags;
} dm_data_struct;
dm_data_struct g_dm_data;
2. analyse the API function
(1) dm_setup_data
在call dm_setup_data() 之前,DM的接口数据是存储在局部变量中的,根据MTK代码习惯,一般是dm_data
dm_setup_data主要作用就是将屏幕ID与模板ID关联起来;
(2) 重点分析 dm_redraw_category_screen( )
执行流程:
A. dm_search_coordinate_set( )
首先调用函数 dm_search_coordinate_set( )
作用:由给出的屏幕ID得到指向DM控制属性的指针;
B. dm_get_cat_scr_coordinates( )
然后调用函数 dm_get_cat_scr_coordinates( )
作用: 由于DM模板需要在其他组件被绘制前绘制窗体本身,
根据DM控制属性的第一项即基本属性得到窗体的属性值并更新指向属性的指针变量
注意: 在该函数被调用后,MMI将更新当前窗体
C. dm_get_coordinates( )
最后调用DM画图函数
在该函数内通过调用dm_get_coordinates( )以根据属性值更新全局属性变量,最后绘出图像
(3). DM模板的控件数组
控件在列表中放置的顺序:越往后的控件显示越靠上层,也越容易接收触摸屏操作
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2151338