下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、MTK平臺MMI窗口的繪制繪制窗體實際上可以看作是繪制輪廓和繪制組件兩個部分。我們先看這么一個文件 CustCoordinates.c 這個文件主要是定義了這么一個宏 g_categories_controls_map:或者類似于這樣的定義,這個數(shù)組就具體的將窗體的輪廓以及窗體的各個組件的位置作出了定義下面我們以一個具體的例子作為說明:const U8 category5 = 5, / 這個代表組件的個數(shù); DM_BASE_LAYER_START,/ 開始層; DM_SCR_BG,/ 背景; DM_BASE_CONTROL_SET1,/表示窗體的基本組成狀態(tài)欄、標(biāo)題和軟按鍵 DM_MULTIL
2、INE_INPUTBOX1, /多行輸入框 DM_CATEGORY_CONTROLLED_AREA / 輸入法的部分;;這些組件ID被定義在枚舉結(jié)構(gòu)mmi_dm_control_ids_enum中。const S16 coordinate_set5 = DM_FULL_SCREEN_COORDINATE_FLAG, DM_CONTENT_COORDINATE_FLAG, DM_FULL_SCREEN_COORDINATE_FLAG;這個數(shù)組是這些組件的屬性;這個屬性主要是指各個組件的坐標(biāo),高度,寬度;這些數(shù)組里面定義的內(nèi)容通過dm_get_coordinates() 這個函數(shù)映射到 具體的繪制
3、過程中;在dm_get_coordinates 這個函數(shù)中我們可以看到,這些 DM_FULL_SCREEN_COORDINATE_FLAG常量實際上都被轉(zhuǎn)化為坐標(biāo)?,F(xiàn)在我們回到剛才的那個函數(shù) ShowCategory.Screen() 中來。下圖是個典型的窗口圖:以下為例子:void ShowCategory353Screen(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_o
4、f_items,U16 *list_of_icons,U8 *list_of_descriptions,S32 flags,S32 highlighted_item,U8 *history_buffer) /*-*/ /* Local Variables*/ /*-*/ dm_data_struct dm_data; S32 i; U8 h_flag; /*-*/ /* Code Body */ /*-*/ 鎖定當(dāng)前層的buffergdi_layer_lock_frame_buffer();/ 創(chuàng)建一個列表式的窗口 create_fixed_icontext_menuitems(); asso
5、ciate_fixed_icontext_list(); / 并將窗口下的內(nèi)容,包括標(biāo)題欄,左右軟件,以及各個子菜單的圖標(biāo) 顯示出來; ShowListCategoryScreen(UI_string_type) title,get_image(title_icon),get_string(left_softkey),get_image(left_softkey_icon),get_string(right_softkey),get_image(right_softkey_icon),number_of_items);if (list_of_descriptions = NULL)for (i
6、 = 0; i < number_of_items; i+)add_fixed_icontext_item(UI_string_type) list_of_itemsi, wgui_get_list_menu_icon(i, list_of_iconsi);wgui_pop_up_description_stringsi.text_strings0 = NULL;elsefor (i = 0; i < number_of_items; i+)add_fixed_icontext_item(UI_string_type) list_of_itemsi,wgui_get_list_me
7、nu_icon(i, list_of_iconsi);wgui_pop_up_description_stringsi.text_strings0 = (UI_string_type) list_of_descriptionsi;h_flag = set_list_menu_category_history(MMI_CATEGORY52_ID, history_buffer);/ 高亮當(dāng)前選中的ITEM if (h_flag)fixed_list_goto_item_no_redraw(MMI_fixed_list_menu.highlighted_item);elsefixed_list_g
8、oto_item_no_redraw(highlighted_item);MMI_title_string = (UI_string_type) title;MMI_title_icon = (PU8) get_image(title_icon);set_pop_up_descriptions(1, number_of_items, MMI_fixed_list_menu.highlighted_item);gdi_layer_unlock_frame_buffer();/前面這整個一段是用來繪制一個列表窗口,/這部分的內(nèi)容基本上根據(jù)自己的選擇有什么畫什么;/ 而下面的內(nèi)容是每個窗體都共有的部
9、分;ExitCategoryFunction = ExitListCategoryScreen;dm_setup_category_functions(dm_redraw_category_screen,dm_get_category_history,dm_get_category_history_size);dm_data.s32ScrId = (S32) GetActiveScreenId();dm_data.s32CatId = MMI_CATEGORY52_ID;dm_data.s32flags = 0;dm_setup_data(&dm_data);dm_redraw_cat
10、egory_screen(); /* end of ShowCategory353Screen */因為MTK后面的代碼的gui 部分是用 draw_manager 這個來控制的,因此所有的窗口的控件的實際繪制過程都是通過 dm_redraw_category_screen()這個函數(shù)來實現(xiàn)的;這個函數(shù)可以幫助我們繪制一些比較特殊的自己需要的組件,當(dāng)然如果我們使用的組件已經(jīng)包含在這個函數(shù)里面,那么直接使用??梢苑治鲆幌逻@個函數(shù)的流程:獲取窗體模版的ID;這個在showcategory里面實現(xiàn),dm_data.s32CatId = MMI_CATEGORY52_ID;根據(jù)模版的ID得到組件的集合
11、和個數(shù);control_set_ptr = dm_search_control_set(U16) g_dm_data.s32CatId, &DeafultCoordinateSet_p);根據(jù)模版ID得到組件屬性標(biāo)識的集合; UICtrlAccessPtr_p = dm_search_coordinate_set(g_dm_data.s32ScrId);鎖定當(dāng)前的frame,各個組件繪制前的任務(wù)準(zhǔn)備就緒;gdi_layer_lock_frame_buffer();繪制窗體之前,還可以改變窗體的大??;UICtrlAccessPtr_p = dm_get_cat_scr_coordinates(UICtrlAccessPtr_p, &dm_cat_scr_info);獲取不同組件的不同屬性,并根據(jù)不同的屬性繪制出自己需要的窗口;for (u8CtrlCt = 1; u8C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商標(biāo)權(quán)知識產(chǎn)權(quán)轉(zhuǎn)讓合同
- 債權(quán)轉(zhuǎn)讓合同范例
- 戶外廣告合同樣本格式模板
- 二手車輛買賣協(xié)議范本
- 2024年接送服務(wù)合同標(biāo)準(zhǔn)范本
- 股份協(xié)議書合同股份協(xié)議書2024年
- 房屋買賣代理合同范文
- 2024年離婚協(xié)議書官方范本
- 2024年購買香蕉的買賣合同范本
- 2024年居間公司股份轉(zhuǎn)讓合同
- MES運行管理辦法
- 地層編號原則
- 廠區(qū)吸煙管理規(guī)定(共2頁)
- 東營市初中學(xué)科教研基地建設(shè)實施方案
- 施耐德XB2-BE系列按鈕指示燈選型手冊
- 第9講PID算法ppt課件
- 起重機(jī)械租賃公司管理制度匯編
- 拋光標(biāo)準(zhǔn) 50
- 淺析醫(yī)藥行業(yè)供應(yīng)鏈融資
- 醫(yī)院患兒發(fā)生跌倒墜床應(yīng)急預(yù)案演練腳本
- 人教版七年級上冊生物第一單元《生物的特征》說課稿(共4頁)
評論
0/150
提交評論