18 KiB
edit_t
概述
单行编辑器控件。
在基于SDL的平台,单行编辑器控件使用平台原生的输入法,对于嵌入式平台使用内置的输入法。
在使用内置的输入法时,软键盘由输入类型决定,开发者可以自定义软键盘的界面。
edit_t是widget_t的子类控件,widget_t的函数均适用于edit_t控件。
edit_t本身可以做为容器,放入按钮等控件。有几个特殊的子控件:
- 名为"clear"的按钮。点击时清除编辑器中的内容。
- 名为"inc"的按钮。点击时增加编辑器的值,用于实现类似于spinbox的功能。
- 名为"dec"的按钮。点击时减少编辑器的值,用于实现类似于spinbox的功能。
- 名为"visible"的复选框。勾选时显示密码,反之不显示密码。
在xml中使用"edit"标签创建编辑器控件。如:
<edit x="c" y="m" w="80" h="30"
tips="age" input_type="uint" min="0" max="150" step="1" auto_fix="true" style="number" />
XXX:需要在min/max/step之前设置input_type。
更多用法请参考: edit.xml
在c代码中使用函数edit_create创建编辑器控件。如:
widget_t* edit = edit_create(win, 10, 10, 128, 30);
widget_set_text(edit, L"OK");
创建之后,可以用widget_set_text或widget_set_text_utf8设置文本内容。
完整示例请参考: edit demo
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
<style name="default" border_color="#a0a0a0" text_color="black" text_align_h="left">
<normal bg_color="#f0f0f0" />
<focused bg_color="#f0f0f0" border_color="black"/>
<disable bg_color="gray" text_color="#d0d0d0" />
<error bg_color="#f0f0f0" text_color="red" />
<empty bg_color="#f0f0f0" text_color="#a0a0a0" />
</style>
更多用法请参考: theme default
函数
函数名称 | 说明 |
---|---|
edit_cast | 转换为edit对象(供脚本语言使用)。 |
edit_create | 创建edit对象 |
edit_get_double | 获取double类型的值。 |
edit_get_int | 获取int类型的值。 |
edit_set_auto_fix | 设置编辑器是否为自动改正。 |
edit_set_double | 设置double类型的值。 |
edit_set_float_limit | 设置为浮点数输入及取值范围。 |
edit_set_focus | 设置为焦点。 |
edit_set_input_tips | 设置编辑器的输入提示。 |
edit_set_input_type | 设置编辑器的输入类型。 |
edit_set_int | 设置int类型的值。 |
edit_set_int_limit | 设置为整数输入及取值范围。 |
edit_set_is_valid_char | 设置输入字符检查函数。 |
edit_set_password_visible | 当编辑器输入类型为密码时,设置密码是否可见。 |
edit_set_readonly | 设置编辑器是否为只读。 |
edit_set_text_limit | 设置为文本输入及其长度限制,不允许输入超过max个字符,少于min个字符时进入error状态。 |
属性
属性名称 | 类型 | 说明 |
---|---|---|
auto_fix | bool_t | 输入无效时,是否自动改正。 |
bottom_margin | uint8_t | 下边距。 |
focus | bool_t | 设置为焦点(通常用于在XML中缺省设置为焦点控件)。 |
input_type | input_type_t | 输入类型。 |
left_margin | uint8_t | 左边距。 |
max | float_t | 最大值或最大长度。 |
min | float_t | 最小值或最小长度。 |
password_visible | bool_t | 密码是否可见。 |
readonly | bool_t | 编辑器是否为只读。 |
right_margin | uint8_t | 右边距。 |
step | float_t | 步长。 |
tips | char* | 输入提示。 |
top_margin | uint8_t | 上边距。 |
事件
事件名称 | 类型 | 说明 |
---|---|---|
EVT_VALUE_CHANGING | event_t | 文本正在改变事件(编辑中)。 |
EVT_VALUE_CHANGED | event_t | 文本改变事件。 |
edit_cast 函数
- 函数功能:
转换为edit对象(供脚本语言使用)。
- 函数原型:
widget_t* edit_cast (widget_t* widget);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | widget_t* | edit对象。 |
widget | widget_t* | edit对象。 |
edit_create 函数
- 函数功能:
创建edit对象
- 函数原型:
widget_t* edit_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | widget_t* | 对象。 |
parent | widget_t* | 父控件 |
x | xy_t | x坐标 |
y | xy_t | y坐标 |
w | wh_t | 宽度 |
h | wh_t | 高度 |
edit_get_double 函数
- 函数功能:
获取double类型的值。
- 函数原型:
double edit_get_double (widget_t* widget);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | double | 返回double的值。 |
widget | widget_t* | widget对象。 |
edit_get_int 函数
- 函数功能:
获取int类型的值。
- 函数原型:
int32_t edit_get_int (widget_t* widget);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | int32_t | 返回int的值。 |
widget | widget_t* | widget对象。 |
edit_set_auto_fix 函数
- 函数功能:
设置编辑器是否为自动改正。
- 函数原型:
ret_t edit_set_auto_fix (widget_t* widget, bool_t auto_fix);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
auto_fix | bool_t | 自动改正。 |
edit_set_double 函数
- 函数功能:
设置double类型的值。
- 函数原型:
ret_t edit_set_double (widget_t* widget, double value);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
value | double | 值。 |
edit_set_float_limit 函数
- 函数功能:
设置为浮点数输入及取值范围。
- 函数原型:
ret_t edit_set_float_limit (widget_t* widget, double min, double max, double step);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
min | double | 最小值。 |
max | double | 最大值。 |
step | double | 步长。 |
edit_set_focus 函数
- 函数功能:
设置为焦点。
- 函数原型:
ret_t edit_set_focus (widget_t* widget, bool_t focus);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
focus | bool_t | 是否为焦点。 |
edit_set_input_tips 函数
- 函数功能:
设置编辑器的输入提示。
- 函数原型:
ret_t edit_set_input_tips (widget_t* widget, char* tips);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
tips | char* | 输入提示。 |
edit_set_input_type 函数
- 函数功能:
设置编辑器的输入类型。
- 函数原型:
ret_t edit_set_input_type (widget_t* widget, input_type_t type);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
type | input_type_t | 输入类型。 |
edit_set_int 函数
- 函数功能:
设置int类型的值。
- 函数原型:
ret_t edit_set_int (widget_t* widget, int32_t value);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
value | int32_t | 值。 |
edit_set_int_limit 函数
- 函数功能:
设置为整数输入及取值范围。
- 函数原型:
ret_t edit_set_int_limit (widget_t* widget, int32_t min, int32_t max, int32_t step);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
min | int32_t | 最小值。 |
max | int32_t | 最大值。 |
step | int32_t | 步长。 |
edit_set_is_valid_char 函数
- 函数功能:
设置输入字符检查函数。 如果内置检查函数不能满足需求时,可以设置自定义的检查函数。
- 函数原型:
ret_t edit_set_is_valid_char (widget_t* widget, edit_is_valid_char_t is_valid_char);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
is_valid_char | edit_is_valid_char_t | 检查输入字符是否有效的回调函数。 |
edit_set_password_visible 函数
- 函数功能:
当编辑器输入类型为密码时,设置密码是否可见。
- 函数原型:
ret_t edit_set_password_visible (widget_t* widget, bool_t password_visible);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
password_visible | bool_t | 密码是否可见。 |
edit_set_readonly 函数
- 函数功能:
设置编辑器是否为只读。
- 函数原型:
ret_t edit_set_readonly (widget_t* widget, bool_t readonly);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
readonly | bool_t | 只读。 |
edit_set_text_limit 函数
- 函数功能:
设置为文本输入及其长度限制,不允许输入超过max个字符,少于min个字符时进入error状态。
- 函数原型:
ret_t edit_set_text_limit (widget_t* widget, uint32_t min, uint32_t max);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
widget | widget_t* | widget对象。 |
min | uint32_t | 最小长度。 |
max | uint32_t | 最大长度。 |
auto_fix 属性
输入无效时,是否自动改正。
- 类型:bool_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
bottom_margin 属性
下边距。
- 类型:uint8_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
focus 属性
设置为焦点(通常用于在XML中缺省设置为焦点控件)。
- 类型:bool_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
input_type 属性
输入类型。
XXX:需要在min/max/step之前设置。
- 类型:input_type_t
特性 | 是否支持 |
---|---|
可直接读取 | 否 |
可直接修改 | 否 |
可持久化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
left_margin 属性
左边距。
- 类型:uint8_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
max 属性
最大值或最大长度。
- 类型:float_t
特性 | 是否支持 |
---|---|
可直接读取 | 否 |
可直接修改 | 否 |
可持久化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
min 属性
最小值或最小长度。
- 类型:float_t
特性 | 是否支持 |
---|---|
可直接读取 | 否 |
可直接修改 | 否 |
可持久化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
password_visible 属性
密码是否可见。
- 类型:bool_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
readonly 属性
编辑器是否为只读。
- 类型:bool_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
right_margin 属性
右边距。
- 类型:uint8_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
step 属性
步长。
作为数值型编辑器时,一次增加和减少时的数值。
- 类型:float_t
特性 | 是否支持 |
---|---|
可直接读取 | 否 |
可直接修改 | 否 |
可持久化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
tips 属性
输入提示。
- 类型:char*
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |
top_margin 属性
上边距。
- 类型:uint8_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
可持久化 | 是 |
可脚本化 | 是 |
可在IDE中设置 | 是 |
可在XML中设置 | 是 |
可通过widget_get_prop读取 | 是 |
可通过widget_set_prop修改 | 是 |