MTK之DrawManager机制
来源:互联网 发布:highcharts 3d.js下载 编辑:程序博客网 时间:2024/06/06 21:04
1、void dm_setup_data(dm_data_struct *dm_data)
设置全局变量g_dm_data(模板ID、屏幕ID、标志)
备份当前模板退出函数到全局变量dm_backup_exit_category_function并设置全局变量ExitCategoryFunction为dm_exit_category_function
根据内部全局变量g_dm_cntx的redraw_screen_main当前值重设g_dm_cntx.redraw_screen_main
正常步骤set:NORMAL_EXIT -> NORMAL_SHOW
从重回屏幕set:NORMAL_REDRAW -> REDRAW_2_SHOW -> dm_reset_context -> NORMAL_SHOW
从正常显示和其它set:不变
2、ShowCategoryXXXScreen(...)
高亮处理
按键注册
注册自绘区控制:dm_register_category_controlled_callback(dm_category_XXX_controlled_area);
dm_setup_category_functions(dm_redraw_category_screen, GetCategoryXXXHistory, GetCategoryXXXHistorySize);//此函数实际包含如下三个设置:
RedrawCategoryFunction = dm_redraw_category_screen;//1
GetCategoryHistory = dm_get_category_history;//2
GetCategoryHistorySize = dm_get_category_history_size;//3
ExitCategoryFunction = ExitCategoryXXXScreen;
dm_data.s32ScrId = (S32)GetActiveScreenId();
dm_data.s32CatId = MMI_CATEGORYXXX_ID;
dm_data.s32flags = DM_NO_FLAGS;
dm_setup_data(&dm_data);
dm_redraw_category_screen();
3、dm_redraw_category_screen()
根据g_dm_cntx.redraw_screen_main判断重绘方式
通过模板ID获取控件列表和坐标区域
若存在屏幕ID和坐标区域的关联定义,则通过屏幕ID获取模板坐标区域
根据上面获得的坐标区域设置x、y值
根据s32flags值清除该区域
顺序绘制各控件
4、U8 *dm_get_category_history(U8 *history_buffer)
通过模板ID获取控件列表和坐标区域
顺序获取各控件历史
5、S32 dm_get_category_history_size(void)
通过模板ID获取控件列表和坐标区域
顺序返回各控件历史大小(sizeof)
设置全局变量g_dm_data(模板ID、屏幕ID、标志)
备份当前模板退出函数到全局变量dm_backup_exit_category_function并设置全局变量ExitCategoryFunction为dm_exit_category_function
根据内部全局变量g_dm_cntx的redraw_screen_main当前值重设g_dm_cntx.redraw_screen_main
正常步骤set:NORMAL_EXIT -> NORMAL_SHOW
从重回屏幕set:NORMAL_REDRAW -> REDRAW_2_SHOW -> dm_reset_context -> NORMAL_SHOW
从正常显示和其它set:不变
2、ShowCategoryXXXScreen(...)
高亮处理
按键注册
注册自绘区控制:dm_register_category_controlled_callback(dm_category_XXX_controlled_area);
dm_setup_category_functions(dm_redraw_category_screen, GetCategoryXXXHistory, GetCategoryXXXHistorySize);//此函数实际包含如下三个设置:
RedrawCategoryFunction = dm_redraw_category_screen;//1
GetCategoryHistory = dm_get_category_history;//2
GetCategoryHistorySize = dm_get_category_history_size;//3
ExitCategoryFunction = ExitCategoryXXXScreen;
dm_data.s32ScrId = (S32)GetActiveScreenId();
dm_data.s32CatId = MMI_CATEGORYXXX_ID;
dm_data.s32flags = DM_NO_FLAGS;
dm_setup_data(&dm_data);
dm_redraw_category_screen();
3、dm_redraw_category_screen()
根据g_dm_cntx.redraw_screen_main判断重绘方式
通过模板ID获取控件列表和坐标区域
若存在屏幕ID和坐标区域的关联定义,则通过屏幕ID获取模板坐标区域
根据上面获得的坐标区域设置x、y值
根据s32flags值清除该区域
顺序绘制各控件
4、U8 *dm_get_category_history(U8 *history_buffer)
通过模板ID获取控件列表和坐标区域
顺序获取各控件历史
5、S32 dm_get_category_history_size(void)
通过模板ID获取控件列表和坐标区域
顺序返回各控件历史大小(sizeof)
- MTK之DrawManager机制
- MTK高亮机制
- MTK DM机制讲解
- MTK History机制讲解
- .MTK 高亮机制
- MTK history机制
- MTK Screen Histroy机制
- MTK定时器消息机制分析
- 再谈MTK的History机制
- MTK的高亮机制
- MTK的高亮机制
- MTK的高亮机制
- 再谈MTK的History机制
- MTK的高亮机制
- MTK任务管理、事件机制
- MTK 高亮处理机制
- MTK定时器消息机制分析
- MTK定时器消息机制分析
- Oracle 存储过程
- MTK10A之短信函数解读
- JS实现的动态背景渐变
- linux 代码学习
- 关于大型项目代码风格
- MTK之DrawManager机制
- 2
- 在用户刷新或者关闭浏览器时弹框提示用户(兼容IE和Firefox)
- 多线程12天--10
- MTK中EntryNewScreen进入新屏幕和GoBackHistory返回原屏幕机制
- SQL XTYPE
- [BetterExplained]书写是为了更好的思考
- java笔记 策略模式
- android intent