|
输入法、字库与文件操作
引子:
通过本章的学习,我们将重点学习怎样,在手机中加入新的输入法,怎样添加字库。
8.1输入法调用流程
输入法模块调用流程图如图8.1所示:
图8.1 输入法模块调用流程图
8.2初始化输入法:
在文件MMITask.c 中的函数
void InitIME(void)
{
…..
InitInputMethod();//初始化输入法
}
进行了输入法的初始化.主要是初始化输入法的模式,当前模式设置.
IMERES.h定义了一个数据结构,该数据结构定义了输入法的模式所涵盖的细节
typedef struct _IMEModeDetails
{
SUPPORT_INPUT_MODES IME_Mode_ID;
SUPPORT_INPUT_TYPES IME_Type_ID;
U16 Common_Screen_StringID;
U16 Prefered_IMEStringID;
MMI_BOOL English_Only_Flag;
} sIMEModeDetails;
在IMERES.c定义了一个全局的输入法模式数组,如果要增加或者删减相关的模式,在此数组下修改.
const sIMEModeDetails mtk_gIMEModeArray[] =
{
…..
}
8.3需要输入法的短消息界面的进入
1.编写短消息时会进入一个句柄绑定函数HighlightWMessageHandler(),该函数位于文件SMSMoMtGuiInterface.c中,具体如下所示:
void HighlightWMessageHandler (void)
{
….
SetLeftSoftkeyFunction (mmi_msg_entry_write_msg, KEY_EVENT_UP);
…..
}
void mmi_msg_entry_write_msg (void){
……
ShowCategory28Screen(…)
……
}
void ShowCategory28Screen(…)
{
…..
//若是非触摸屏
//关联*键,用于切换特殊字符
SetKeyHandler(change_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);
…..
//关联0—9键
change_EMS_inputbox_input_mode();
//若是触摸屏
mmi_pen_editor_setup_input_box(。。。)//进入editorpen.c文件,相关的键处理都在此文件下进行
…..
}
2 . 彩信
在widget_ctk.c中
static void widget_ctk_show_smil_editor(ctk_layout_handle layoutid)
{
…..
ShowCategory275Screen(….)
….
}
8.4 虚拟键盘的使用
用虚拟键盘的显示函数void mmi_pen_editor_vk_show(void)
虚拟键盘的相关文件:
wgui_virtual_keyboad.h, gui_virtual_keyboad.h
wgui_virtual_keyboad.c, gui_virtual_keyboad.c
|
|