# spin_box_t

# 概述

image
image

spinbox控件。

一个特殊的数值编辑器,将edit_t和button_t进行组合,方便编辑数值。

点击向上的按钮将数值增加一个step,点击向下的按钮将数值减小一个step。 step的值可以通过step属性进行设置。

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

在xml中使用"spin_box"标签创建spinbox控件。如:

<spin_box w="70%" input_type="int" min="-100" max="100" step="5">

更多用法请参考:spin_box.xml (opens new window)

在c代码中使用函数spin_box_create创建spinbox控件。如:

widget_t* spin_box = spin_box_create(win, 10, 10, 128, 30);
edit_set_input_type(spin_box, type);

创建之后:

可以用edit相关函数去设置它的各种属性。

完整示例请参考:spin_box demo (opens new window)

可用通过style来设置控件的显示风格,如背景和边框等。如:

<spin_box>
<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>
</spin_box>

更多用法请参考:theme default (opens new window)

# 函数

函数名称 说明
spin_box_cast 转换为spin_box对象(供脚本语言使用)。
spin_box_create 创建spin_box对象
spin_box_get_widget_vtable 获取 spin_box 虚表。
spin_box_set_button_position 设置按钮位置样式。
spin_box_set_easy_touch_mode 设置是否启用易点击模式。
spin_set_repeat 设置连击的时间间隔。

# 属性

属性名称 类型 说明
button_position char* 按钮位置样式选择,优先级高于easy_touch_mode,各模式对应样式如下,默认为none。
easy_touch_mode bool_t 是否启用易点击模式(在电容屏设备上建议启用)。
repeat int32_t 重复触发EVT_CLICK事件的时间间隔。

# spin_box_cast 函数

  • 函数功能:

转换为spin_box对象(供脚本语言使用)。

  • 函数原型:
widget_t* spin_box_cast (widget_t* widget);
  • 参数说明:
参数 类型 说明
返回值 widget_t* spin_box对象。
widget widget_t* spin_box对象。

# spin_box_create 函数

  • 函数功能:

创建spin_box对象

  • 函数原型:
widget_t* spin_box_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 高度

# spin_box_get_widget_vtable 函数

  • 函数功能:

获取 spin_box 虚表。

  • 函数原型:
const widget_vtable_t* spin_box_get_widget_vtable ();
  • 参数说明:
参数 类型 说明
返回值 const widget_vtable_t* 成功返回 spin_box 虚表。

# spin_box_set_button_position 函数

  • 函数功能:

设置按钮位置样式。

  • 函数原型:
ret_t spin_box_set_button_position (widget_t* widget, const char* button_position);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
widget widget_t* widget对象。
button_position const char* 按钮位置样式。

# spin_box_set_easy_touch_mode 函数

  • 函数功能:

设置是否启用易点击模式。

  • 函数原型:
ret_t spin_box_set_easy_touch_mode (widget_t* widget, bool_t easy_touch_mode);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
widget widget_t* widget对象。
easy_touch_mode bool_t 易点击模式。

# spin_set_repeat 函数

  • 函数功能:

设置连击的时间间隔。 备注:时间间隔越低,速度越快。

  • 函数原型:
ret_t spin_set_repeat (widget_t* widget, int32_t repeat);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
widget widget_t* widget对象。
repeat int32_t 连击的时间间隔。

# button_position 属性

按钮位置样式选择,优先级高于easy_touch_mode,各模式对应样式如下,默认为none。 none:按照easy_touch_mode选择样式 default:inc按钮在右上角,dec按钮在右下角。 left_right:dec按钮在左边,inc按钮在右边。 top_bottom:inc按钮在顶部,dec按钮在底部。

  • 类型:char*
特性 是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

# easy_touch_mode 属性

是否启用易点击模式(在电容屏设备上建议启用)。

在该模式下:

  • 1.当高度大于font size的3倍时,inc按钮在顶部(style名为spinbox_top),dec按钮在底部(style名为spinbox_bottom)。
  • 2.当高度正常时,dec按钮在左边(style名为spinbox_left),inc按钮在右边(style名为spinbox_right)。 不在该模式下: inc按钮在右上角(style名为spinbox_up),dec按钮在右下角(style名为spinbox_down)。
  • 类型:bool_t
特性 是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

# repeat 属性

重复触发EVT_CLICK事件的时间间隔。

为0则不重复触发EVT_CLICK事件。

  • 类型:int32_t
特性 是否支持
可直接读取
可直接修改
可持久化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改