edit_t

概述

image

单行编辑器控件。

在基于SDL的平台,单行编辑器控件使用平台原生的输入法,对于嵌入式平台使用内置的输入法。

在使用内置的输入法时,软键盘由输入类型决定,开发者可以自定义软键盘的界面。

edit_t是widget_t的子类控件,widget_t的函数均适用于edit_t控件。

edit_t本身可以做为容器,放入按钮等控件。有几个特殊的子控件:

  • 名为”clear”的按钮。点击时清除编辑器中的内容。
  • 名为”inc”的按钮。点击时增加编辑器的值,用于实现类似于spinbox的功能。
  • 名为”dec”的按钮。点击时减少编辑器的值,用于实现类似于spinbox的功能。
  • 名为”visible”的复选框。勾选时显示密码,反之不显示密码。

在xml中使用”edit”标签创建编辑器控件。如:

  1. <edit x="c" y="m" w="80" h="30"
  2. 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创建编辑器控件。如:

  1. widget_t* edit = edit_create(win, 10, 10, 128, 30);
  2. widget_set_text(edit, L"OK");

创建之后,可以用widget_set_text或widget_set_text_utf8设置文本内容。

完整示例请参考:
edit demo

可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:

  1. <style name="default" border_color="#a0a0a0" text_color="black" text_align_h="left">
  2. <normal bg_color="#f0f0f0" />
  3. <focused bg_color="#f0f0f0" border_color="black"/>
  4. <disable bg_color="gray" text_color="#d0d0d0" />
  5. <error bg_color="#f0f0f0" text_color="red" />
  6. <empty bg_color="#f0f0f0" text_color="#a0a0a0" />
  7. </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_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对象(供脚本语言使用)。

  • 函数原型:
  1. widget_t* edit_cast (widget_t* widget);
  • 参数说明:
参数 类型 说明
返回值 widget_t* edit对象。
widget widget_t* edit对象。

edit_create 函数


  • 函数功能:

创建edit对象

  • 函数原型:
  1. 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类型的值。

  • 函数原型:
  1. double edit_get_double (widget_t* widget);
  • 参数说明:
参数 类型 说明
返回值 double 返回double的值。
widget widget_t* widget对象。

edit_get_int 函数


  • 函数功能:

获取int类型的值。

  • 函数原型:
  1. int32_t edit_get_int (widget_t* widget);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回int的值。
widget widget_t* widget对象。

edit_set_auto_fix 函数


  • 函数功能:

设置编辑器是否为自动改正。

  • 函数原型:
  1. 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类型的值。

  • 函数原型:
  1. ret_t edit_set_double (widget_t* widget, double value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
widget widget_t* widget对象。
value double 值。

edit_set_float_limit 函数


  • 函数功能:

设置为浮点数输入及取值范围。

  • 函数原型:
  1. 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 函数


  • 函数功能:

设置为焦点。

  • 函数原型:
  1. 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 函数


  • 函数功能:

设置编辑器的输入提示。

  • 函数原型:
  1. 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 函数


  • 函数功能:

设置编辑器的输入类型。

  • 函数原型:
  1. 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类型的值。

  • 函数原型:
  1. 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 函数


  • 函数功能:

设置为整数输入及取值范围。

  • 函数原型:
  1. 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_password_visible 函数


  • 函数功能:

当编辑器输入类型为密码时,设置密码是否可见。

  • 函数原型:
  1. 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 函数


  • 函数功能:

设置编辑器是否为只读。

  • 函数原型:
  1. 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状态。

  • 函数原型:
  1. 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修改