资源描述:
《mmi培训资料--自定义模板》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、mtk平台mmi培训资料(中文)2008-06-0621:48本文详细说明了如何建设一个自定义列表窗体模板。原理部分请参见《MTK平台(1)——如何添加一个窗体模板》。最终实现的是一个字典输入界面。布局为:该模板不包含业务逻辑,仅提供页面显示和InputBox框输入事件后的ListBox的Redraw事件的注册,以及基本的输入法设置、清空后的返回函数。一、添加用户自定义列表模板的过程(一)在g_categories_controls_map[]中加入:,{MMI_CATEGORY_CUSTOM_LIST,(U8*)custom_define_list,(s16*)coor
2、dinate_custom_list,NULL}constU8custom_define_list[]={ 5, DM_BASE_LAYER_START, DM_SCR_BG, DM_BASE_CONTROL_SET1, DM_SINGLELINE_INPUTBOX1, DM_LIST1};constS16coordinate_custom_list[]={ DM_FULL_SCREEN_COORDINATE_FLAG, DM_CUSTOM_DEFINE_INPUTBOX, //需要定义 DM_CUSTOM_DEFINE_LIS
3、T //需要定义};(二)在dm_get_coordinates()函数中加入://设定列表位置和大小(不要忘记全局变量MMI_custom_Listbox_x等的定义)elseif(*UICtrlAccessPtr_p==DM_CUSTOM_DEFINE_LIST){ dm_coordinate_info->s16X=MMI_custom_Listbox_x; dm_coordinate_info->s16Y=MMI_custom_Listbox_y; dm_coordinate_info->s16Width=MMI_custom_Listbo
4、x_width; dm_coordinate_info->s16Height=MMI_custom_Listbox_height; dm_coordinate_info->Flags=DM_NO_FLAGS;UICtrlAccessPtr_p++;}//设定输入框位置和大小elseif(*UICtrlAccessPtr_p==DM_CUSTOM_DEFINE_INPUTBOX){ dm_coordinate_info->s16X=MMI_custom_inputbox_x; dm_coordinate_info->s16Y=MMI_custom_in
5、putbox_y; dm_coordinate_info->s16Width=MMI_custom_inputbox_width; dm_coordinate_info->s16Height=MMI_custom_inputbox_height; dm_coordinate_info->Flags=DM_SINGLE_LINE_INPUTBOX_SPECIFIC_HEIGHT; UICtrlAccessPtr_p++;}(三)在Wgui_category.c中定义模板显示函数voidShowCategoryCustomListScreen(
6、U8*title, U16title_icon, U16left_softkey, U16left_softkey_icon, U16right_softkey, U16right_softkey_icon, S32number_of_items, U8**list_of_items, U16*list_of_icons, S32flags, S32highlighted_item, U8*history_buffer){ /*-----
7、-----------------------------------------------------------*/ /*LocalVariables */ /*----------------------------------------------------------------*/ dm_data_structdm_data; S32i; U8h_flag; /*----------------