资源描述:
《mmi培训资料--自定义模板.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、mmi培训资料--自定义模板2008-06-0621:48本文详细讲明了如何建设一个自定义列表窗体模板。原理部分请参见《MTK平台(1)——如何添加一个窗体模板》。最终实现的是一个字典输入界面。布局为:该模板不包含业务逻辑,仅提供页面显示和InputBox框输入事件后的ListBox的Redraw事件的注册,以及差不多的输入法设置、清空后的返回函数。一、添加用户自定义列表模板的过程(一)在g_categories_controls_map[]中加入:,{MMI_CATEGORY_CUSTOM_LIST,(U8*)custom_define_l
2、ist,(s16*)coordinate_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_LIST
3、//需要定义};(二)在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_Listbox_
4、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_inpu
5、tbox_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(U8*titl
6、e,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){/*----------------------------------------------------------------*//*LocalVari
7、ables*//*----------------------------------------------------------------*/dm_data_structdm_data;S32i;U8h_flag;/*----------------------------------------------------------------*//*CodeBody*//*----------------------------------------------------------------*/gdi_layer_lock_
8、frame_buffer();SetupCategoryKeyHandlers();MMI_title_string=(UI_string_type)title;M