awtk/docs/manual/edit_t.md
2019-07-11 15:39:09 +08:00

18 KiB
Raw Blame History

edit_t

概述

image

单行编辑器控件。

在基于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修改