MTK输入法介绍_第1页
MTK输入法介绍_第2页
MTK输入法介绍_第3页
MTK输入法介绍_第4页
MTK输入法介绍_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录1 概述22 目的23 参考文档24 T9输入法文件说明24.1 H文件24.2 C文件24.3 T9层次结构34.4 输入法的调用流程34.4.1 输入法的初始化:44.4.2 进入需要输入法的短消息界面54.4.3 引擎输出的buffer及一些辅助信息64.4.4 相关的显示区域及状态94.5 反查码表115 语言种类的选择116 字库的选择与添加116.1 加入库文件116.2 建立相关的文件夹126.3 ADS编译需用到的一些设置文件126.4 设置按键处理函数126.5 候选窗口136.6 输入法图标136.7 输入法菜单136.8 改变EMS默认的输入法146.9 其他146.

2、10 CommonScreens.c156.11 EditorPen.c156.12 Wui_ems_categories.c166.13 Wui_inputs.c:206.14 资源文件206.15 其他注意的问题:217 问题与讨论211概述该文档是输入法的技术说明文档2目的供内部人员开发使用3参考文档MTK6226代码实现4T9输入法文件说明中文输入方式:中文输入方式即用手机在编写短信息或是电话簿等项目中用到的输入方式。T9:T9输入法全名为智能输入法,字库容量九千多字,支持十多种语言,包括欧洲及中文繁体、简体、香港常用字等。4.1 H文件t9main.h,t9definition.h,

3、t9.h,t9api.h,t9awapi.h,t9ccapi.h,t9cgen.h,t9env.h,t9gen.h,t9lang.h,t9ver.h其中t9main.h,t9definition.h为MMIFrameWork需要用到的头文件,而t9.h,t9api.h,t9awapi.h,t9ccapi.h,t9cgen.h,t9env.h,t9gen.h,t9lang.h,t9ver.h为引擎API层需要用到的头文件。4.2 C文件t9lang.c,t9main.c4.3 T9层次结构T9采用了三层结构引擎层根据输入键值搜索数据。引擎API封装层主要是对T9引擎API的封装,MMI层只要往这

4、一层输入键值,然后该层直接提供可以显示的数据。输入:用户输入的一些按键信息。输出:引擎输出的一些bufer及一些辅助信息。显示:根据引擎输出的一些bufer及辅助信息显示出来。4.4 输入法的调用流程输入法模块调用流程图如下:重新进入输入法模块开机,初始输入法进入某个需 要输入法的 界面,如短 消息2进入输入法模块关机,退出 输入法模块刷新输入法相关的显示区域及主屏区向引擎API圭寸装层传入键消息4.4.1 输入法的初始化:在文件MMITask.c中的函数voidInitlME(void).InitInputMethod();/t9输入法的初始化进行了输入法的初始化.主要是初始化输入法的模式(

5、全局变量,当前模式设置IMERES.h定义了一个数据结构定义输入法的模式所涵盖的细节typedefstruct_IMEModeDetailsSUPPORT_INPUT_MODESIME_Mode_ID;SUPPORT_INPUT_TYPESIME_Type_ID;U16Common_Screen_StringID;U16Prefered_IMEStringID;MMI_BOOLEnglish_Only_Flag;sIMEModeDetails;,如果要增加或者删减相关的模式,在此数组在IMERES.c定义了一个全局的输入法模式数组下修改.constsIMEModeDetailsmtk_gIME

6、ModeArray=.4.4.2 进入需要输入法的短消息界面4.4.2.1 短消息编写短消息时会进入一个句柄绑定函数(SMSMoMtGuiInterface.c)voidHighlightWMessageHandler(void).SetLeftSoftkeyFunction(mmi_msg_entry_write_msg,KEY_EVENT_UP);.voidmmi_msg_entry_write_msg(void)ShowCategory28Screen()voidShowCategory28Screen()./如果是非触摸屏/关联*键,用于切换特殊字符SetKeyHandler(chan

7、ge_input_mode,KEY_STAR,KEY_EVENT_DOWN);/注册一个回调函数register_multiline_inputbox_input_callback(handle_category28_input);/关联#键,用于切换输入模式SetKeyHandler(handle_category28_change_input_mode,KEY_POUND,KEY_EVENT_DOWN);./与T9联系起来,关联09键change_EMS_inputbox_input_mode();/如果是触摸屏mmi_pen_editor_setup_input_box(。)/进入edi

8、torpen.c文件,相关的键处理都在此文件下进行4.4.2.2 彩信在widget_ctk.c中staticvoidwidget_ctk_show_smil_editor(ctk_layout_handlelayoutid)ShowCategory275Screen(.).4.4.3 引擎输出的buffer及一些辅助信息经过相关的键输入信息T9STATUST9FARCALLT9HandleKey(T9FieldInfo*pFieldInfo,T9KEYeKeyID)可以得到相关的引擎输出的buffer及一些辅助信息,此是利用几个结构的数据类型来进入输入信息显示的。1 structT9CCFi

9、eldInfo_sT9FieldInfoG;/*Genericdata.*/T9U8pbKeyBufT9CCKEYBUFMAXSIZE;/*Bufferofkeystrokes*/T9UINT nKeyBufLen;/*Numberofkeystrokescurrentlyinthebuffer*/T9U16pwSelectPageT9CCSELECTPAGEMAXSIZE;/*Bufferoftheselectionpage*/T9UINT nSelectPageMax;T9UINT nSelectPageLen;T9UINT nSelectPageNum;T9U8 bToneCode;T9

10、U8 bSpellCode;T9U16 wChineseState;/*Currentmaxsizeofselectionpage*/*Currentnumberofvalidentriesinselectionpage*/*0-basedcurrentpagenumberofselectionpage*/*Filtervaluetoprovideonly1toneforkeys*/*Filtervaluetoprovideonly1phoneticformforkeys*/*CurrentstatebitsforChinese*/T9U8pbSpellBufT9CCSPELLBUFMAXSI

11、ZE;/*BufferforPinyinorBoPoMoFospellings*/T9U16 wComponent;T9U8 bNumCompStrokes;T9U16 wFirstComponent;/* available)*/T9U16 wLastComponent;T9UINT nDymCtxtFence;T9UINT nDymCtxtSearchDepth;T9U8 bPhraseCompFence;T9U8 bPhraseCompLen;T9U16 wPhraseCompCursor;/*Selectedcomponent(0ifnone)*/*Numberofstrokesinc

12、urrentcomponent*/Firstavailablecomponentcode(0ifnocomponents/*Lastavailablecomponentcode*/*thefenceofDynamiccontext*/*DynamiccontextSearchDepth*/*Phrasecompletionfence*/*Lengthofcompletionpartofphrasecompletion*/*Originalcursorbeforephrasecompletionoccurs*/T9CCUdbInfoT9FARUDBPOINTER*pCudbInfo;/*Poin

13、tertoChineseUDB*/T9CCUdbObjUdbCacheObj;/*cachecopyofthecurrentUDBobject*/T9CCAudbInfoT9FARUDBPOINTER*pCAUdbInfo;/*PointertoChineseAutoUserdatabase*/T9UINTnCAUdbFence;/*AUDBfence*/T9U8bLdbModuleFlag;/*FlagstoindicatewhichmodulesareavailableincurrentLDB*/T9U8bSpellMatchFromLdb;/*recordhowmanymatchedsp

14、ellsarefromldb*/T9U8bSpellMatchFromCudb;/*recordhowmanymatchedspellsarefromcudb*/structT9CC_Private_sT9CPrivate;/*PersistentmemoryforT9Chinese*/void*pOEMPrivate;/*pointerforOEMuseforcallbacks*/T9CCLoadLdb_fT9CCLoadLdb;2structT9FieldInfo_sT9SYMB*psTxtBuf;/*Sharedtextbuffer.*/T9AuxType*paAuxBuf;/*Shar

15、edauxillarybuffer.*/T9UINTnBufLenMax;/*MemorySizeoftextandkeybuffers.*/T9UINTnBufLen;/*Numbercharactersintextandkeybuffers.*/T9UINTnCursor;/*Currentcursorposition.*/T9UINTnWordLen;/*Lengthofactivekeystrokes.*/T9UINTnComplLen;/*Lengthofwordbeyondactivekeystrokes.*/T9UINTnLdbNum;/*Currentlinguisticsda

16、tabasenumber.*/T9U8bSymbolClass;/*SymbolclassofLDB*/T9U8bNumDbKeys;/*NumberofambiguouskeysLDBspecifies*/T9U8bNumTapKeys;/*NumberofmultitapkeysLDBspecifies*/T9UINTnCurSelObj;/* Thecurrentselectedobjectintheselectionlist* whennexting/pre-ing.Thevalidvalue* is1.T9AWMAXSELECTIONOBJECT*/T9U32dwStateBits;

17、/*CurrentStatebits*/*SeeT9STATEBITaboveforlegalvalues.*/#ifdefT9EVENTAPIT9_upAuxAPIuLangData;/*unionofptrsreferencingLDBspecificAPIs*/#endifstructT9_Private_sT9Private;/*PersistentmemoryforT9'suse.*/void*pOEMPrivate;/*pointerforOEMuseforcallbacks*/T9U32dwReserved;T9HandleRequest_fT9HandleRequest

18、;T9ReadLdbData_fT9ReadLdbData;T9ConvertChar_fT9ConvertChar;;3拼音拦信息键信息侯选字信息NameURIFicldlnfnhCCFieldlnfowSclectPac0x0105O9a(i363352528926469280102D1023186720919fl4智能联想例如你输入积极的积,将“积”字赋于变量phrase通过T9AddExplicitChar(&FieldInfo.CCFieldInfo.G,phrase);就可以联想到与积相关的词组。4.4.4相关的显示区域及状态4.4.4.1 未定义_MMI_TOUCH_SC

19、REENYiii二上班写短信国PiWnSPinyin0/1224llkl>I路拉泳I浪I了屡冷I选择国PM清除在t9main.c中t9CompositionArea上图中的拼音拦的显示区域t9SelectionArea上图中的侯选栏的显示区域T9_SCREEN_STATE_A初始状态T9_SCREEN_STATE_B_PRE上图中的拼音栏选择状态T9_SCREEN_STATE_B上图中的侯选栏的选择状态T9_SCREEN_STATE_C侯选栏连续选择状态T9_SCREEN_STATE_D删除状态非触摸屏通过voidT9InputBoxDisplayForEMSInputBox(void)

20、4.4.4.2 定义了_MMI_TOUCH_SCREEN匕m臼写短信PinyinSPinyinD/1224拉来浪了类泅日同11III*I回同nrnoaiHMFH回同ITIJITTHFECEEHEHHEEZZEZO选择图Pinyin清除(1)虚拟键盘用虚拟键盘的显示函数voidmmi_pen_editor_vk_show(void)虚拟键盘的相关文件:wgui_virtual_keyboad.h,gui_virtual_keyboad.hwgui_virtual_keyboad.c,gui_virtual_keyboad.c(2)键处理函数触摸响应函数voidmmipeneditorsmartl

21、atinkeydownhandler(S32key);智能英语voidmmipeneditorsmartlatinkeydownhandler(S32key);智能拼音voidmmi_pen_editor_smart_bpmf_pinyin_key_down_handler(S32key);笔划voidmmi_pen_editor_chinese_stroke_key_down_handler(S32key);/按#键执行函数voidmmipeneditorswitchinputmethod(void)(3)显示区域及显示函数g_pen_editor_composition_input_box

22、上图中的拼音拦的显示区域gPenEditorCandidateInputBox上图中的侯选栏的显示区域在按键的过程中通过诸如以下函数来显示的mmi_pen_editor_chinese_stroke_get_candidates_by_key_sequencemmi_pen_editor_smart_bpmf_pinyin_get_candidates_by_key_sequence等等。4.5反查码表在电话簿快速查找时需要用到反查码表,用下列函数T9CCGetCharStrokes(.);T9CCGetCharSpell();5语言种类的选择在文件MMI_features*.h,中定义了以下

23、的宏#define_MMI_LANG_ENGLISH_#define_MMI_LANG_TR_CHINESE_#define_MMI_LANG_SM_CHINESE_在设置话机设置-语言中,如果想添加或者减少语言的种类,只需打开或者屏蔽上述的宏即可.6字库的选择与添加下面我以国笔输入法的添加为例(项目:V520,平台:6226),MTK平台的输入法没有按照模块化来设置,代码非常分散,所以移植起来有点麻烦。一般来说,所有出现过_MMI_KA_的地方我们都需要修改。6.1加入库文件在目录plutommiCustomerCustResourcePLUTO_MMIInputMethod下增加两个文件夹

24、:GUOBI_LIB与GUOBI_INC,将相应的第三方软件提供的*.lib,*.a文件拷入GUOBI_LIB其中,将引擎头文件文件拷入GUOBI_INC。6.2 建立相关的文件夹在V520当前工程目录下建立一个文件夹GUOBI(仿照T9),其下建立文件夹SRC与include,.c与.h文件分别拷入其中,另外建立自己的接口文件gbmain.c与gbmain.h.6.3 ADS编译需用到的一些设置文件在文件*_GSM.mak(make)中有如下的语句INPUT_METHOD=MMI_T9,将其替换为MMI_GUOBI.并且搜索MMI_T9,将相应位置添加MMI_GUOBI,将需要用到*.lib

25、,*.a依样加入,同样在REL_MMI_GPRS.mak也需要仿照MMI_T9,加入其相应的文件。(2)在make文件夹里加入你的输入法的目录GUOBI并建立以下几个文件,guobi.def:需要使用的一些特殊的宏定义guobi.inc:需要使用的一些头文件的引用guobi.lis:包含的文件guobi.pth:包含文件的路径(3)在custominfo.pl下push(thatdirs,"inputmethod$mmi_versioninc");语句后力口入push(thatdirs,"inputmethod$mmi_versionguobi_inc"

26、);(4)在plutommimmiGlobalSimulatorPathDef文件最后加入/I".custominputmethodPLUTO_MMIguobi_inc"6.4 设置按键处理函数主要在change_EMS_inputbox_mode,change_singleline_inputbox_modechange_multiline_inputbox_mode三个函数。这是系统在改变输入法时调用的函数,这时候输入法需要把自己的按键处理函数设置到系统。键和*#两个键。一般来说,MTK里面已经实现了数字输入法, 不需要修改。但是要修改这几个输入法里面的有关的按键包括所

27、有的数字键、方向键、确定MULTITAP输入法,这几个输入法我们基本*和#键的调用。一般来说我们在INPUT_MODE_123、INPUT_MODE_MULTITAP_UPPERCASE_ABC,INPUT_MODE_MULTITAP_LOWERCASE_ABC的输入模式的处理程序后面加入#ifdef_MMI_GUOBI_GBClearKeyHandler(gbKeyStarPound);SetKeyHandler(mmi_pen_editor_switch_input_method,KEY_STAR,KEY_EVENT_DOWN);#endif并且我们要加入我们自己的4个输入模式的处理函数:

28、mmi_pen_editor_switch_input_method是触摸屏版本MTK里面切换输入法的统一函数,在非触摸屏的版本里面,可能要把它改为change_EMS_inputbox_mode,change_singleline_inputbox_mode,change_multiline_inputbox_mode中的个。6.5 候选窗口国笔的候选窗口比较复杂,所以我们建议自己画,而不是使用系统的控件。对于触摸屏的版本的MTK平台,我们建议使用一个空的虚拟键盘来做我们的候选窗口,候选窗口还可以通过点击进行操作。但是这个虚拟键盘一定要自己来画。对于非触摸屏的版本,建议建立一个空的singl

29、ineinputbox来做我们的候选窗口。(但是记得不要往这个inputbox插入字符。)对于singlineinputbox的候选窗口,需要注意的是有时候需要隐藏这个候选窗。画候选窗口需要部首的图片。这些图片共5*29=145个,要全部加入到资源里面。6.6 输入法图标wgui_EMS_show_input_mode 函数处EMS里面左上角有一个输入法图标,这个图标主要在理。我们需要跟着_MMI_T9进行处理。6.7 输入法菜单IMERes.c里面有一个数组:constsIMEModeDetailsmtk_gIMEModeArray口这个数组当前可用的输入法而输入法的顺序。这里面我们需要加入

30、4个输入法。#ifdefined(_MMI_GUOBI_)/*SmartPinyin*/INPUT_MODE_SM_PINYIN,INPUT_TYPE_SM_PINYIN,STR_INPUT_METHOD_MENU_PINYIN,STR_INPUT_METHOD_PINYIN,0,INPUT_MODE_SM_STROKE,INPUT_TYPE_SM_STROKE,STR_INPUT_METHOD_MENU_SIMPLIFIED_CHINESE_STROKE,STR_INPUT_METHOD_SM_STROKE,0,/*Smartabc*/INPUT_MODE_SMART_LOWERCASE_A

31、BC,INPUT_TYPE_SMART_LOWERCASE_ABC,STR_INPUT_METHOD_MENU_SMART_abc,STR_INPUT_METHOD_SMART_L_ABC,1,/*SmartABC*/INPUT_MODE_SMART_UPPERCASE_ABC,INPUT_TYPE_SMART_UPPERCASE_ABC,STR_INPUT_METHOD_MENU_SMART_ABC,STR_INPUT_METHOD_SMART_U_ABC,1,#endif_MMI_GUOBI_Wgui_categories_inputs.c里面有一个数组MMI_implement_inpu

32、t_mode_set,这个数组也需要加入:#ifdefined(_MMI_GUOBI_)/MMI_implement_input_mode_setINPUT_MODE_SM_PINYIN,INPUT_MODE_SM_STROKE,INPUT_MODE_SMART_UPPERCASE_ABC,INPUT_MODE_SMART_LOWERCASE_ABC,#endif6.8改变EMS默认的输入法ShowCategory28ScreenS数的开头有个语句:U16input_type=(U16)INPUT_TYPE_ALPHANUMERIC_LOWERCASE;把它改成:#ifndef_MMI_GUO

33、BI_U16input_type=(U16)INPUT_TYPE_ALPHANUMERIC_LOWERCASE;#elseU16input_type=(U16)INPUT_TYPE_SM_PINYIN;#endif6.9其他MTK代码里面有很多:#ifdefined(_MMI_T9_)|defined(_MMI_ITAP_)|defined(_MMI_KA_)一般来说我们在后面加上|defined(_MMI_GUOBI_)就好了。基本我们需要加入的地方都会有_MMI_KA_,移植的时候把_MMI_KA_全部找出来,然后每一个看看,慢慢加入。6.10 CommonScreens.c在SetSav

34、edInputType#ifdefined(_MMI_T9_)|defined(_MMI_ZI_)|defined(_MMI_KA_)后面加入defined(_MMI_GUOBI_)U32InputMethodSetKeyHandler(FuncPtr*preFuncPtrs,FuncPtr*postPtrs,constsIMEModeDetails*IMEModeArray,BOOLEnglishOnly,BOOLAP_required)函数里面:switch(input_mode_id)里面加入:#ifdef_MMI_GUOBIcaseINPUT_MODE_SMART_UPPERCASE_

35、ABC:preFuncPtrsj=wgui_change_inputbox_mode_smart_ABC;break;caseINPUT_MODE_SMART_LOWERCASE_ABC:preFuncPtrsj=wgui_change_inputbox_mode_smart_abc;break;caseINPUT_MODE_SM_PINYIN:preFuncPtrsj=wgui_change_inputbox_mode_sm_pinyin;break;caseINPUT_MODE_SM_STROKE:preFuncPtrsj=wgui_change_inputbox_mode_sm_stro

36、ke;break;#endif6.11 EditorPen.cvoidmmi_pen_editor_setup_input_box(mmi_pen_handwriting_area_struct*stroke_area,mmi_pen_handwriting_area_struct*ext_stroke,U16input_type,U8information_bar_flag,mmi_pen_editor_input_box_type_enuminput_box_type)SetKeyHandler(mmi_pen_editor_switch_input_method,KEY_POUND,KE

37、Y_EVENT_DOWN);改成(*键切换输入法功能)#ifdef_MMI_GUOBI_ClearKeyHandler(KEY_POUND,KEY_EVENT_DOWN);SetKeyHandler(mmi_pen_editor_switch_input_method,KEY_STAR,KEY_EVENT_DOWN);#elseSetKeyHandler(mmi_pen_editor_switch_input_method,KEY_POUND,KEY_EVENT_DOWN);#endifvoidmmi_pen_editor_switch_input_methodVoid);输入法切权之有一聚一

38、一if(INPUT_MODE_TR_MULTITAP_BOPOMO=MMI_current_input_mode|INPUT_MODE_SM_MULTITAP_PINYIN=MMI_current_input_mode)mmi_pen_editor_bpmf_pinyin_create_multitap(MMI_current_input_mode);mmi_pen_editor_bpmf_pinyin_register_multitap_function();elseif(INPUT_MODE_SMART_UPPERCASE_ABC=MMI_current_input_mode|INPUT_

39、MODE_SMART_LOWERCASE_ABC=MMI_current_input_mode)mmi_pen_editor_smart_latin_register_key_function();elseif(INPUT_MODE_TR_STROKE=MMI_current_input_mode|INPUT_MODE_SM_STROKE=MMI_current_input_mode)mmi_pen_editor_chinese_stroke_register_key_function();elseif(INPUT_MODE_TR_BOPOMO=MMI_current_input_mode|I

40、NPUT_MODE_SM_PINYIN=MMI_current_input_mode)mmi_pen_editor_smart_bpmf_pinyin_register_key_function();在国笔输入法里面,把这段去掉。6.12 Wui_ems_categories.cvoidchange_EMS_inputbox_mode(U8mode);这个函数主变是将输入法模长;改过来。然后在每一次切换输入法之后把*键的功能改为切换输入法。voidchange_EMS_inputbox_mode(U8mode)/*/*LocalVariables*/*/*/*CodeBody*/*/*PMTd

41、araaddedforMultitapthai*/#ifdefined(_MMI_MULTITAP_THAI_)SetKeyHandler(handle_category28_change_input_mode,KEY_POUND,KEY_EVENT_DOWN);#endifswitch(mode)caseINPUT_MODE_MULTITAP_UPPERCASE_ABC:change_multitap_mode(INPUT_MODE_MULTITAP_UPPERCASE_ABC);register_EMS_multitap_function();#ifdef_MMI_GUOBI_/*键切换输

42、入法SetKeyHandler(mmi_pen_editor_switch_input_method,KEY_STAR,KEY_EVENT_DOWN);#endifbreak;caseINPUT_MODE_MULTITAP_LOWERCASE_ABC:change_multitap_mode(INPUT_MODE_MULTITAP_LOWERCASE_ABC);register_EMS_multitap_function();#ifdef_MMI_GUOBI_/*键切换输入法SetKeyHandler(mmi_pen_editor_switch_input_method,KEY_STAR,KE

43、Y_EVENT_DOWN);#endifbreak;caseINPUT_MODE_123:change_multitap_mode(INPUT_MODE_123);clear_multitap_key_handlers();register_MMI_key_input_handler();register_key_down_handler(EMS_inputbox_handle_key_down);register_keyboard_input_handler(EMS_inputbox_numeric_keyboard_input_handler)wgui_set_EMS_inputbox_R

44、SK();register_EMS_inputbox_keys();if(MMI_current_input_type&INPUT_TYPE_MASK)=INPUT_TYPE_NUMERIC_CHANGEABLE)SetKeyHandler(wgui_EMS_inputbox_handle_symbol_picker_star_key,KEY_STAR,KEY_EVENT_DOWN);#ifdef_MMI_GUOBI_SetKeyHandler(mmi_pen_editor_switch_input_method,KEY_STAR,KEY_EVENT_DOWN);#endifbreak

45、;卜.#ifdef_MMI_GUOBI_caseINPUT_MODE_SM_PINYIN:caseINPUT_MODE_SM_STROKE:caseINPUT_MODE_SMART_UPPERCASE_ABC:caseINPUT_MODE_SMART_LOWERCASE_ABC:输入法模式切换这里面会把上下左右设置EMS处理*键处理#endifvoidhandle_category28_change_input_mode(void)函数这个函数主要是改变输入法的图标只要把获取中文输入法图标里面#ifdefined(_MMI_T9_)|defined(_MMI_ITAP_)|defined(_M

46、MI_KA_)加上|defined(_MMI_GUOBI_)就可以了。同时在Wui_ems_categories.c,还有:#ifdefined(_MMI_T9_)|defined(_MMI_ZI_)|defined(_MMI_KA_)|defined(_MMI_ITAP_)voidwgui_EMS_inputbox_change_input_mode_smart_ABC(void).voidwgui_EMS_inputbox_change_input_mode_smart_abc(void)voidwgui_EMS_inputbox_change_input_mode_tr_bpmf(voi

47、d)我们在前面同样加上|defined(_MMI_GUOBI_)voidShowCategory28Screen(IU16title,U16title_icon,U16left_softkey,U16left_softkey_icon,U16right_softkey,U16right_softkey_icon,EMSData*data,U8*history_buffer)函数里面加入对GBInputMethodEnterCategory28函数的调用,如:#ifdef_MMI_T9_InuptMethodEnterCategory28();#elifdefined(_MMI_ZI_)&

48、;&defined(_MMI_MESSAGES_EMS_)ZiInuptMethodEnterCategory28();#elifdefined(_MMI_KA_)KonkaInuptMethodEnterCategory28();#elifdefined(_MMI_ITAP_)/已经处理过了/*underconstruction!*/*underconstruction!*/#elifdefined(_MMI_GUOBI_)/OKGBInputMethodEnterCategory28();#endif在wgui_categories_inputs.改件里面有很多#ifdef_MMI

49、_T9_InuptMethodExitCategory5();#elifdefined_MMI_ZI_ZiInuptMethodExitCategory5();#elifdefined_MMI_KA_KonkaInuptMethodExitCategory5();#elifdefined_MMI_ITAP_/handled/*underconstruction!*/*underconstruction!*/#elifdefined(_MMI_GUOBI_)/ExitCategory5();GBInputMethodExitCategory5();#endif类似的程序段,对于这些都依萌产画瓢就

50、可以了。还有很多的#ifdefined(_MMI_T9_)|defined(_MMI_ZI_)|defined(_MMI_ITAP_)对于这些都到后面加上|defined(_MMI_GUOBI_)好了。具体可以参照附丽的wgui_categories_inputs.c文件.6.13 Wui_inputs.c:wgui_set_EMS_inputbox_RSK,EMS_inputbox_direct_input函数,这些都需要根据当疝输入框Q进行修威一一一也需要修改下面两个函数:voidchange_singleline_inputbox_mode(U8mode);voidchange_multiline_inputbox_mode(U8mode);根据gPenEditorInputBoxType变量来获得当前输入框的类型。6.14 资源文件<1>把图片文件加入到工程里面需要有以下步骤:1 .把图片加到plutommiCustomerImagesPLUTO240

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论