ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:24.54KB ,
资源ID:18644254      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18644254.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(mmi培训资料自定义模板Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

mmi培训资料自定义模板Word格式.docx

1、 DM_CUSTOM_DEFINE_LIST(二)在dm_get_coordinates()函数中加入:/设定列表位置和大小(不要忘记全局变量 MMI_custom_Listbox_x 等的定义)else if( *UICtrlAccessPtr_p = DM_CUSTOM_DEFINE_LIST ) dm_coordinate_info-s16X = MMI_custom_Listbox_x;s16Y = MMI_custom_Listbox_y;s16Width = MMI_custom_Listbox_width;s16Height = MMI_custom_Listbox_height

2、;Flags = DM_NO_FLAGS;UICtrlAccessPtr_p + ;/设定输入框位置和大小else if( *UICtrlAccessPtr_p = DM_CUSTOM_DEFINE_INPUTBOX )s16X = MMI_custom_inputbox_x ;s16Y = MMI_custom_inputbox_y;s16Width = MMI_custom_inputbox_width ;dm_coordinate_info-s16Height = MMI_custom_inputbox_height;Flags = DM_SINGLE_LINE_INPUTBOX_SPE

3、CIFIC_HEIGHT; UICtrlAccessPtr_p + ;(三)在Wgui_category.c中定义模板显示函数void ShowCategoryCustomListScreen( U8 *title, U16 title_icon, U16 left_softkey, U16 left_softkey_icon, U16 right_softkey, U16 right_softkey_icon, S32 number_of_items, U8 *list_of_items, U16 *list_of_icons, S32 flags, S32 highlighted_item

4、, U8 *history_buffer) /*-*/ /* Local Variables */ dm_data_struct dm_data; S32 i; U8 h_flag; /* Code Body gdi_layer_lock_frame_buffer(); SetupCategoryKeyHandlers(); MMI_title_string = (UI_string_type) title; MMI_title_icon = (PU8) get_image(title_icon); change_left_softkey(left_softkey, left_softkey_

5、icon); change_right_softkey(right_softkey, right_softkey_icon);/Create List create_fixed_icontext_menuitems(); associate_fixed_icontext_list(); ShowListCategoryScreen( (UI_string_type) title, get_image(title_icon), get_string(left_softkey), get_image(left_softkey_icon), get_string(right_softkey), ge

6、t_image(right_softkey_icon), number_of_items); for (i = 0; i = (MMI_singleline_inputbox.available_length - ENCODING_LENGTH) return; gui_single_line_input_box_insert_multitap_character(&MMI_singleline_inputbox, c); redraw_singleline_inputbox(); singleline_inputbox_input_callback(); singleline_inputbo

7、x_custom_input_callback();(五)Wgui_Category.c中添加用户事件定义接口/右键事件注册void SetCategoryCustomListRightSoftkeyFunction(void (*f) (void) wgui_singleline_inputbox_RSK_function = f;/key_0到key_9按下时的事件注册extern void (*singleline_inputbox_custom_input_callback) (void);void SetCategoryCustomListNumKeyFunction(void (*

8、f) (void)singleline_inputbox_custom_input_callback = f ;/设置InputBox大小void SetCustomList_Inputbox_Size(S32 p_x , S32 p_y , S32 p_width , S32 p_height )MMI_custom_inputbox_x = p_x ;MMI_custom_inputbox_y = p_y ;MMI_custom_inputbox_width = p_width ;MMI_custom_inputbox_height = p_height ;/设置ListBox大小void

9、 SetCustomList_Listbox_Size(S32 p_x , S32 p_y , S32 p_width , S32 p_height )MMI_custom_Listbox_x = p_x ;MMI_custom_Listbox_y = p_y ;MMI_custom_Listbox_width = p_width ;MMI_custom_Listbox_height = p_height ;二、自定义列表模板的使用方法1、 调用SetCustomList_Inputbox_Size 和 SetCustomList_Listbox_Size 设置列表框和输入框的大小。2、 调用

10、显示窗体的接口 ShowCategoryCustomListScreen。3、 调用右键事件注册函数,注册文本框被清空后的事件(如返回等)SetCategoryCustomListRightSoftkeyFunction。4、 调用key_0至key_9的事件注册函数,SetCategoryCustomListNumKeyFunction()。三、参数详细说明 void SetCustomList_Inputbox_Size(S32 p_x , S32 p_y , S32 p_width , S32 p_height ) 与 void SetCustomList_Listbox_Size(S3

11、2 p_x , S32 p_y , S32 p_width , S32 p_height )p_x , p_y :起始位置p_width , p_height : 大小。 void SetCategoryCustomListRightSoftkeyFunction(void (*f) (void) void SetCategoryCustomListNumKeyFunction(void (*f) (void) f(void) :函数地址。 void ShowCategoryCustomListScreen( U8 *title, / 标题文本指针 U16 title_icon, / 标题图标

12、ID U16 left_softkey, / 左键文本ID U16 left_softkey_icon, / 左键图标ID U16 right_softkey, / 右键文本ID U16 right_softkey_icon, / 右键图标ID U8* custom_single_input_buffer, / Input输入Buffer S32 number_of_items, / 列表条目数 U8 *list_of_items, / 列表项文本指针数组 U16 *list_of_icons, / 列表项Icon S32 highlighted_item, / 当前高亮显示的列表条目 U8

13、*history_buffer) / 历史记录Buffer附:所需更改的文件wgui.cwgui_categories.cwgui_draw_manager.cwgui_inputs.cwgui.hwgui_categories_defs.hwgui_draw_manager.hCustCoordinate.c一、什么是History管理 对于我们上层用户而言,经常接触到的History管理是这样的: void EntryFunc()U8 *guiBuffer; EntryNewScreen( Screen_ID , Exit_Func , Entry_Func , NULL ); guiBu

14、ffer = GetCurrGuiBuffer( SCR_ID_WORDMAIN_LIST ); ShowCategroyXXScreen( Title_ID , , guiBuffer);但是,无论是EntryNewScreen的调用,还是guiBuffer的传入,我们都很少考虑过对这些指针和函数在GUI的管理起到了什么样的作用。下面我们就要了解,以上的代码与History管理之间存在的关系。 在MTK环境中,每当我们进入一个窗口,系统将先提取前一个窗口需保留的数据。这些数据包括:1. 窗口ID ;2. 进入窗口时调用的函数和退出调用的函数 - Exit_Func 和 Entry_Func

15、;3. 组成窗体的控件的属性(如,列表控件当前高亮显示的条目、当前屏的首末条目等)。举例说明这些数据在实际中是如何被使用的。假设存在AB两个窗口,A窗口需要保留的数据为data_A。我们先从A窗口进入到B窗口。data_A将在B窗口调用EntryNewScreen()的时候,被压入一个结构类似于栈的数据存储区域;当从B调用GoBackHistory()返回A时,data_A从栈顶被弹出,然后A利用data_A将自身还原到其进入B之前的状态。这就是History管理的作用。简言之,就是要保持窗口的外观状态。二、History管理的机制 现在,我们来了解一下前面所说的data_A的数据结构是什么样

16、的。typedef struct _history U16 scrnID; /(1)Screen ID (窗口号) FuncPtr entryFuncPtr; /(2)EntryNewScreen时要进入的 Entry_Func U8 inputBufferMAX_INPUT_BUFFER; /(3)没遇到过其使用,都是NULL。 U8 guiBufferMAX_GUI_BUFFER; /(4)窗体中控件的一些需保存的信息的Buffer,通常/在使用时被转化成各控件自定义的结构体如: list_menu_category_history。 history;而存放data_A的类似于堆栈的数据区则以全局变量的形式定义在系统中:historyNode historyDataMAX_HISTORY; (MAX_HISTORY = 50):设当前窗口A所对应的数据是historyData EntryScreenNum 1 ,那么它是何时、是如何被赋值的?又是何时、如何被使用的?经过跟踪调试,我们已经知道,在由窗口A进入到窗口B(调用EntryNewScreen)的时候,我们

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1