|
輸入法、字庫與文件操作
引子:
通過本章的學習,我們將重點學習怎樣,在手機中加入新的輸入法,怎樣添加字庫。
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
|
|