# input_method_t

# 概述

输入法接口。

常见的实现方式有以下几种:

  • 空实现。用于不需要输入法的嵌入式平台。

  • 缺省实现。用于需要输入法的嵌入式平台。

  • 基于SDL实现的平台原生输入法。用于桌面系统和手机系统。

image
image

输入类型请参考:input_type

# 函数

函数名称 说明
input_method 获取全局输入法对象。
input_method_commit_text 提交输入文本。
input_method_commit_text_ex 提交输入文本。
input_method_create 创建输入法对象。在具体实现中实现。
input_method_destroy 销毁输入法对象。在具体实现中实现。
input_method_dispatch 分发一个事件。
input_method_dispatch_action 软键盘上的action按钮被点击时,调用本函数分发EVT_IM_ACTION事件。
input_method_dispatch_candidates 请求显示候选字。
input_method_dispatch_key 提交按键。
input_method_dispatch_keys 提交按键。
input_method_dispatch_pre_candidates 请求显示预候选字。
input_method_dispatch_preedit 分发进入预编辑状态的事件。
input_method_dispatch_preedit_abort 分发取消预编辑状态的事件(提交预编辑内容,退出预编辑状态)。
input_method_dispatch_preedit_confirm 分发确认预编辑状态的事件(提交预编辑内容,退出预编辑状态)。
input_method_dispatch_to_widget 分发一个事件当前焦点控件。
input_method_get_lang 获取语言。
input_method_is_native 是否是平台原生输入法。
input_method_off 注销指定事件的处理函数。
input_method_on 注册指定事件的处理函数。
input_method_request 打开或关闭输入法。
input_method_set 设置全局输入法对象。
input_method_set_lang 设置语言。
input_method_update_action_button_info 设置软键盘上的action按钮的信息。

# 属性

属性名称 类型 说明
action_button_enable bool_t 软键盘的上的action按钮是否可用。
action_button_text char* 软键盘的上的action按钮文本。
is_native bool_t 是否是原生输入法。
keyboard_name char* 软键盘资源名称。

# input_method 函数

  • 函数功能:

获取全局输入法对象。

  • 函数原型:
input_method_t* input_method ();
  • 参数说明:
参数 类型 说明
返回值 input_method_t* 成功返回输入法对象,失败返回NULL。

# input_method_commit_text 函数

  • 函数功能:

提交输入文本。

  • 函数原型:
ret_t input_method_commit_text (input_method_t* im, const char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
text const char* 文本。

# input_method_commit_text_ex 函数

  • 函数功能:

提交输入文本。

  • 函数原型:
ret_t input_method_commit_text_ex (input_method_t* im, bool_t replace, const char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
replace bool_t 是否替换原来的文本。
text const char* 文本。

# input_method_create 函数

  • 函数功能:

创建输入法对象。在具体实现中实现。

  • 函数原型:
input_method_t* input_method_create ();
  • 参数说明:
参数 类型 说明
返回值 input_method_t* 成功返回输入法对象,失败返回NULL。

# input_method_destroy 函数

  • 函数功能:

销毁输入法对象。在具体实现中实现。

  • 函数原型:
ret_t input_method_destroy (input_method_t* im);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。

# input_method_dispatch 函数

  • 函数功能:

分发一个事件。

  • 函数原型:
ret_t input_method_dispatch (input_method_t* im, event_t* e);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 控件对象。
e event_t* 事件。

# input_method_dispatch_action 函数

  • 函数功能:

软键盘上的action按钮被点击时,调用本函数分发EVT_IM_ACTION事件。

  • 函数原型:
ret_t input_method_dispatch_action (input_method_t* im);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。

# input_method_dispatch_candidates 函数

  • 函数功能:

请求显示候选字。

  • 函数原型:
ret_t input_method_dispatch_candidates (input_method_t* im, const char* strs, uint32_t nr, int32_t selected);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
strs const char* 候选字列表。
nr uint32_t 候选字个数。
selected int32_t 缺省选中候选字的序数。

# input_method_dispatch_key 函数

  • 函数功能:

提交按键。

  • 函数原型:
ret_t input_method_dispatch_key (input_method_t* im, uint32_t key);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
key uint32_t 键值。

# input_method_dispatch_keys 函数

  • 函数功能:

提交按键。

  • 函数原型:
ret_t input_method_dispatch_keys (input_method_t* im, const char* keys);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
keys const char* 键值。

# input_method_dispatch_pre_candidates 函数

  • 函数功能:

请求显示预候选字。

预候选字: 在有的输入法中,比如T9硬键盘输入时,按下12两个键时,预候选字会显示可用的拼音列表。 从预候选字列表中选择拼音,再查询拼音对应的候选字列表。

  • 函数原型:
ret_t input_method_dispatch_pre_candidates (input_method_t* im, const char* strs, uint32_t nr, int32_t selected);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
strs const char* 候选字列表。
nr uint32_t 候选字个数。
selected int32_t 缺省选中候选字的序数。

# input_method_dispatch_preedit 函数

  • 函数功能:

分发进入预编辑状态的事件。

  • 函数原型:
ret_t input_method_dispatch_preedit (input_method_t* im);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。

# input_method_dispatch_preedit_abort 函数

  • 函数功能:

分发取消预编辑状态的事件(提交预编辑内容,退出预编辑状态)。

  • 函数原型:
ret_t input_method_dispatch_preedit_abort (input_method_t* im);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。

# input_method_dispatch_preedit_confirm 函数

  • 函数功能:

分发确认预编辑状态的事件(提交预编辑内容,退出预编辑状态)。

  • 函数原型:
ret_t input_method_dispatch_preedit_confirm (input_method_t* im);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。

# input_method_dispatch_to_widget 函数

  • 函数功能:

分发一个事件当前焦点控件。

  • 函数原型:
ret_t input_method_dispatch_to_widget (input_method_t* im, event_t* e);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 控件对象。
e event_t* 事件。

# input_method_get_lang 函数

  • 函数功能:

获取语言。

  • 函数原型:
const char* input_method_get_lang (input_method_t* im);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回语言。
im input_method_t* 输入法对象。

# input_method_is_native 函数

  • 函数功能:

是否是平台原生输入法。

  • 函数原型:
bool_t input_method_is_native (input_method_t* im);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示是原生输入法,否则表示不是。
im input_method_t* 输入法对象。

# input_method_off 函数

  • 函数功能:

注销指定事件的处理函数。

  • 函数原型:
ret_t input_method_off (input_method_t* im, uint32_t id);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
id uint32_t input_method_on返回的ID。

# input_method_on 函数

  • 函数功能:

注册指定事件的处理函数。

  • 函数原型:
uint32_t input_method_on (input_method_t* im, event_type_t type, event_func_t on_event, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回id,用于input_method_off。
im input_method_t* 输入法对象。
type event_type_t 事件类型。
on_event event_func_t 事件处理函数。
ctx void* 事件处理函数上下文。

# input_method_request 函数

  • 函数功能:

打开或关闭输入法。

  • 函数原型:
ret_t input_method_request (input_method_t* im, widget_t* widget);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
widget widget_t* 焦点控件,为NULL时关闭输入法,非NULL时打开输入法。

# input_method_set 函数

  • 函数功能:

设置全局输入法对象。

  • 函数原型:
ret_t input_method_set (input_method_t* im);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。

# input_method_set_lang 函数

  • 函数功能:

设置语言。

有时在同一种语言环境下,也需要输入多种文字,典型的情况是同时输入中文和英文。 比如T9输入法,可以同时支持中文和英文输入,配合软键盘随时切换输入的语言。 数字、小写字母、大写字母和符合也可以视为输入的语言。 主要用于提示输入法引擎选择适当的输入方法。

  • 函数原型:
ret_t input_method_set_lang (input_method_t* im, const char* lang);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
lang const char* 语言。格式为语言+国家/地区码。如:zh_cn和en_us等。

# input_method_update_action_button_info 函数

  • 函数功能:

设置软键盘上的action按钮的信息。

  • 函数原型:
ret_t input_method_update_action_button_info (input_method_t* im, const char* text, bool_t enable);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
im input_method_t* 输入法对象。
text const char* 按钮的文本。
enable bool_t 按钮的是否可用。

# action_button_enable 属性

软键盘的上的action按钮是否可用。

  • 类型:bool_t
特性 是否支持
可直接读取
可直接修改

# action_button_text 属性

软键盘的上的action按钮文本。

  • 类型:char*
特性 是否支持
可直接读取
可直接修改

# is_native 属性

是否是原生输入法。

  • 类型:bool_t
特性 是否支持
可直接读取
可直接修改

# keyboard_name 属性

软键盘资源名称。

  • 类型:char*
特性 是否支持
可直接读取
可直接修改