## input\_engine\_t ### 概述 输入法引擎接口。 常见的实现方式有以下几种: * 空实现。用于不需要输入法的嵌入式平台。 * 拼音输入法实现。用于需要输入法的嵌入式平台。 ![image](images/input_engine_t_0.png) ---------------------------------- ### 函数

| 函数名称 | 说明 | | -------- | ------------ | | input\_engine\_add\_candidate | 给输入法引擎对象加入一个候选字。 | | input\_engine\_add\_candidates\_from\_char | 根据字符类型给输入法引擎对象加入所有符合的候选字。 | | input\_engine\_add\_candidates\_from\_string | 根据字符串给输入法引擎对象加入所有符合的候选字。 | | input\_engine\_create | 创建输入法引擎对象。 | | input\_engine\_deinit | 释放输入法引擎对象。 | | input\_engine\_destroy | 销毁输入法引擎对象。 | | input\_engine\_dispatch\_candidates | 请求显示候选字。 | | input\_engine\_get\_lang | 获取语言。 | | input\_engine\_init | 初始化输入法引擎对象。 | | input\_engine\_input | 输入新的按键,并更新候选字。 | | input\_engine\_reset\_candidates | 重置输入法引擎对象。 | | input\_engine\_reset\_input | 清除所有输入的按键组合和候选字。 | | input\_engine\_search | 根据按键组合,更新候选字,并通过输入法对象提交候选字和pre候选字。 | | input\_engine\_set\_lang | 设置语言。 | ### 属性

| 属性名称 | 类型 | 说明 | | -------- | ----- | ------------ | #### input\_engine\_add\_candidate 函数 ----------------------- * 函数功能: >

给输入法引擎对象加入一个候选字。 * 函数原型: ``` ret_t input_engine_add_candidate (input_engine_t* engine, const char* str); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | | str | const char* | 候选字。 | #### input\_engine\_add\_candidates\_from\_char 函数 ----------------------- * 函数功能: >

根据字符类型给输入法引擎对象加入所有符合的候选字。 备注:搜索表是二维数组,需要通过参数 c 来确定使用具体行数。 * 函数原型: ``` ret_t input_engine_add_candidates_from_char (input_engine_t* engine, const wchar_t** table, char c); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | | table | const wchar\_t** | 输入法搜索表。 | | c | char | 需要显示查询的字符。 | #### input\_engine\_add\_candidates\_from\_string 函数 ----------------------- * 函数功能: >

根据字符串给输入法引擎对象加入所有符合的候选字。 * 函数原型: ``` ret_t input_engine_add_candidates_from_string (input_engine_t* engine, const table_entry_t* items, uint32_t items_nr, const char* key, bool_t exact); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | | items | const table\_entry\_t* | 输入法搜索表。 | | items\_nr | uint32\_t | 输入法搜索表长度。 | | key | const char* | 需要显示查询的字符。 | | exact | bool\_t | 是否只查询完全匹配的字符串。 | #### input\_engine\_create 函数 ----------------------- * 函数功能: >

创建输入法引擎对象。 * 函数原型: ``` input_engine_t* input_engine_create (input_method_t* im); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | input\_engine\_t* | 返回输入法引擎对象。 | | im | input\_method\_t* | 输入法对象。 | #### input\_engine\_deinit 函数 ----------------------- * 函数功能: >

释放输入法引擎对象。 * 函数原型: ``` ret_t input_engine_deinit (input_engine_t* engine); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | #### input\_engine\_destroy 函数 ----------------------- * 函数功能: >

销毁输入法引擎对象。 * 函数原型: ``` ret_t input_engine_destroy (input_engine_t* engine); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | #### input\_engine\_dispatch\_candidates 函数 ----------------------- * 函数功能: >

请求显示候选字。 * 函数原型: ``` ret_t input_engine_dispatch_candidates (input_engine_t* engine, int32_t selected); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | | selected | int32\_t | 缺省选中候选字的序数。 | #### input\_engine\_get\_lang 函数 ----------------------- * 函数功能: >

获取语言。 * 函数原型: ``` const char* input_engine_get_lang (input_engine_t* engine); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | const char* | 返回语言。 | | engine | input\_engine\_t* | 输入法引擎对象。 | #### input\_engine\_init 函数 ----------------------- * 函数功能: >

初始化输入法引擎对象。 * 函数原型: ``` ret_t input_engine_init (input_engine_t* engine); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | #### input\_engine\_input 函数 ----------------------- * 函数功能: >

输入新的按键,并更新候选字。 * 函数原型: ``` ret_t input_engine_input (input_engine_t* engine, int key); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | | key | int | 键值。 | #### input\_engine\_reset\_candidates 函数 ----------------------- * 函数功能: >

重置输入法引擎对象。 * 函数原型: ``` ret_t input_engine_reset_candidates (input_engine_t* engine); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | #### input\_engine\_reset\_input 函数 ----------------------- * 函数功能: >

清除所有输入的按键组合和候选字。 * 函数原型: ``` ret_t input_engine_reset_input (input_engine_t* engine); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | #### input\_engine\_search 函数 ----------------------- * 函数功能: >

设置语言。 > 有时在同一种语言环境下,也需要输入多种文字,典型的情况是同时输入中文和英文。 > 比如T9输入法,可以同时支持中文和英文输入,配合软键盘随时切换输入的语言。 > 数字、小写字母、大写字母和符合也可以视为输入的语言。 > 主要用于提示输入法引擎选择适当的输入方法。 * 函数原型: ``` ret_t input_engine_set_lang (input_engine_t* engine, const char* lang); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | engine | input\_engine\_t* | 输入法引擎对象。 | | lang | const char* | 语言。格式为语言+国家/地区码。如:zh\_cn和en\_us等。 |