mt2503 [Input Method]Modis全键盘如何添加新按键

szx940213 2017-11-23 07:26:48
[DESCRIPTION]
为了便于debug,有客户需求在modis添加一些qwerty键盘的key值。使之可以通过modis的流程被正确响应。

[SOLUTION]
MODIS添加的具体步骤如下:
(以添加Gemini的Send2key为例)
a)添加对应按键的图片信息call_SIM2_down.bmpcall_sim2_up.bmp
b)增加并修改modis\QWERTY_Skins\240x400\Default_Skin\Profile_DualSIM.ini
DEVICE_KEY_SEND2_DOWN=call_sim2_down.bmp
DEVICE_KEY_SEND2_UP=call_sim2_up.bmp
c)在Profile_DualSIM.ini中将down和up按键图片的IMAGE和Coordinate左上角相应的对应起来。
d)w32_DSPl_layer.c文件中的key_mapping_table[]=加入对应的按键定义,如{73,DEVICE_KEY_SEND2,0x00},
到这里模拟器键盘驱动部分就可以正常的模拟按键的处理了。如果是手机上的话,可以用drivetool修改键盘的布局。如果有问题的话,可以直接在
函数MMI_frm_device_key_handle里面的trace参数device_key_code是否正确。
接下来需要完成上层的字符的输入,以添加@符号输入为例,在输入法这边做一些修改如下:
a)mmi_imc_qwerty_key_translate_event函数的
caseMMI_IMC_STATE_INITIAL:
caseMMI_IMC_STATE_NUMERIC_PASSWORD_MULTITAP:
caseMMI_IMC_STATE_HAND_WRITING_CAND:
if(event_type==KEY_EVENT_DOWN||event_type==KEY_EVENT_REPEAT)
{
if(ucs2_value!=0)
{
returnimc_key;
}
else
{
…….
在最后加上一个
elseif(key_code==KEY_AT)
{
returnMMI_IMC_KEY_AT;//addfor@directlyinput
}
}
b)mmi_imc_key_qwerty_common_key_down_handler函数中加入
switch(mmi_imc_get_state())
{
caseMMI_IMC_STATE_INITIAL:
这个case下最后面加入如下一个elseif
elseif(key_code==MMI_IMC_KEY_AT)//addfor@input
{
if(mmi_imm_test_input((UI_string_type)L"@",1))
{
mmi_imc_key_send_message(MMI_IMC_MESSAGE_INSERT_CHAR,0x40,0);
ret=MMI_TRUE;
}
else
{
UI_Editor_play_tone_cannot_insert();
}
}
c)mmi_imc_key_custom_value里面的MMI_IMC_KEY_MAX上面加入MMI_IMC_KEY_AT,//addfor@directlyinput
MT2503相关资料,可到一牛网论坛查阅
...全文
560 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧