awtk/docs/manual/input_engine_t.md

320 lines
10 KiB
Markdown
Raw Normal View History

2018-12-20 17:33:31 +08:00
## input\_engine\_t
### 概述
2019-12-14 13:25:56 +08:00
输入法引擎接口。
常见的实现方式有以下几种:
* 空实现。用于不需要输入法的嵌入式平台。
* 拼音输入法实现。用于需要输入法的嵌入式平台。
![image](images/input_engine_t_0.png)
2019-10-16 09:02:32 +08:00
2019-01-15 14:34:05 +08:00
----------------------------------
2018-12-20 17:33:31 +08:00
### 函数
<p id="input_engine_t_methods">
| 函数名称 | 说明 |
| -------- | ------------ |
2021-01-11 08:23:05 +08:00
| <a href="#input_engine_t_input_engine_add_candidate">input\_engine\_add\_candidate</a> | 给输入法引擎对象加入一个候选字。 |
| <a href="#input_engine_t_input_engine_add_candidates_from_char">input\_engine\_add\_candidates\_from\_char</a> | 根据字符类型给输入法引擎对象加入所有符合的候选字。 |
| <a href="#input_engine_t_input_engine_add_candidates_from_string">input\_engine\_add\_candidates\_from\_string</a> | 根据字符串给输入法引擎对象加入所有符合的候选字。 |
2018-12-21 12:11:40 +08:00
| <a href="#input_engine_t_input_engine_create">input\_engine\_create</a> | 创建输入法引擎对象。 |
2021-01-11 08:23:05 +08:00
| <a href="#input_engine_t_input_engine_deinit">input\_engine\_deinit</a> | 释放输入法引擎对象。 |
2019-01-02 15:29:25 +08:00
| <a href="#input_engine_t_input_engine_destroy">input\_engine\_destroy</a> | 销毁输入法引擎对象。 |
2021-01-11 08:23:05 +08:00
| <a href="#input_engine_t_input_engine_dispatch_candidates">input\_engine\_dispatch\_candidates</a> | 请求显示候选字。 |
2023-06-29 10:44:29 +08:00
| <a href="#input_engine_t_input_engine_get_lang">input\_engine\_get\_lang</a> | 获取语言。 |
2021-01-11 08:23:05 +08:00
| <a href="#input_engine_t_input_engine_init">input\_engine\_init</a> | 初始化输入法引擎对象。 |
2018-12-21 12:11:40 +08:00
| <a href="#input_engine_t_input_engine_input">input\_engine\_input</a> | 输入新的按键,并更新候选字。 |
2021-01-11 08:23:05 +08:00
| <a href="#input_engine_t_input_engine_reset_candidates">input\_engine\_reset\_candidates</a> | 重置输入法引擎对象。 |
2018-12-21 12:11:40 +08:00
| <a href="#input_engine_t_input_engine_reset_input">input\_engine\_reset\_input</a> | 清除所有输入的按键组合和候选字。 |
2020-04-27 08:36:57 +08:00
| <a href="#input_engine_t_input_engine_search">input\_engine\_search</a> | 根据按键组合更新候选字并通过输入法对象提交候选字和pre候选字。 |
2023-06-29 10:44:29 +08:00
| <a href="#input_engine_t_input_engine_set_lang">input\_engine\_set\_lang</a> | 设置语言。 |
2018-12-20 17:33:31 +08:00
### 属性
<p id="input_engine_t_properties">
2019-01-17 15:56:15 +08:00
| 属性名称 | 类型 | 说明 |
2018-12-20 17:33:31 +08:00
| -------- | ----- | ------------ |
2021-01-11 08:23:05 +08:00
#### input\_engine\_add\_candidate 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_input_engine_add_candidate">给输入法引擎对象加入一个候选字。
* 函数原型:
```
2023-06-29 10:44:29 +08:00
ret_t input_engine_add_candidate (input_engine_t* engine, const char* str);
2021-01-11 08:23:05 +08:00
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
2023-06-29 10:44:29 +08:00
| str | const char* | 候选字。 |
2021-01-11 08:23:05 +08:00
#### input\_engine\_add\_candidates\_from\_char 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_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 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_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 | 是否只查询完全匹配的字符串。 |
2018-12-20 17:33:31 +08:00
#### input\_engine\_create 函数
2018-12-21 18:29:29 +08:00
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="input_engine_t_input_engine_create">创建输入法引擎对象。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2020-04-27 08:36:57 +08:00
input_engine_t* input_engine_create (input_method_t* im);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | input\_engine\_t* | 返回输入法引擎对象。 |
2020-04-27 08:36:57 +08:00
| im | input\_method\_t* | 输入法对象。 |
2021-01-11 08:23:05 +08:00
#### input\_engine\_deinit 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_input_engine_deinit">释放输入法引擎对象。
* 函数原型:
```
ret_t input_engine_deinit (input_engine_t* engine);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
2018-12-21 18:29:29 +08:00
#### input\_engine\_destroy 函数
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="input_engine_t_input_engine_destroy">销毁输入法引擎对象。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
ret_t input_engine_destroy (input_engine_t* engine);
```
* 参数说明:
2021-01-11 08:23:05 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
#### input\_engine\_dispatch\_candidates 函数
-----------------------
* 函数功能:
> <p id="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 | 缺省选中候选字的序数。 |
2023-06-29 10:44:29 +08:00
#### input\_engine\_get\_lang 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_input_engine_get_lang">获取语言。
* 函数原型:
```
const char* input_engine_get_lang (input_engine_t* engine);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | const char* | 返回语言。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
2021-01-11 08:23:05 +08:00
#### input\_engine\_init 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_input_engine_init">初始化输入法引擎对象。
* 函数原型:
```
ret_t input_engine_init (input_engine_t* engine);
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
2018-12-21 18:29:29 +08:00
#### input\_engine\_input 函数
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="input_engine_t_input_engine_input">输入新的按键,并更新候选字。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
ret_t input_engine_input (input_engine_t* engine, int key);
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
| key | int | 键值。 |
2021-01-11 08:23:05 +08:00
#### input\_engine\_reset\_candidates 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_input_engine_reset_candidates">重置输入法引擎对象。
* 函数原型:
```
ret_t input_engine_reset_candidates (input_engine_t* engine);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
2018-12-21 18:29:29 +08:00
#### input\_engine\_reset\_input 函数
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="input_engine_t_input_engine_reset_input">清除所有输入的按键组合和候选字。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
ret_t input_engine_reset_input (input_engine_t* engine);
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
2020-04-27 08:36:57 +08:00
#### input\_engine\_search 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_input_engine_search">根据按键组合更新候选字并通过输入法对象提交候选字和pre候选字。
* 函数原型:
```
ret_t input_engine_search (input_engine_t* engine, const char* keys);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| engine | input\_engine\_t* | 输入法引擎对象。 |
| keys | const char* | 按键组合。 |
2023-06-29 10:44:29 +08:00
#### input\_engine\_set\_lang 函数
-----------------------
* 函数功能:
> <p id="input_engine_t_input_engine_set_lang">设置语言。
> 有时在同一种语言环境下,也需要输入多种文字,典型的情况是同时输入中文和英文。
> 比如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等。 |