awtk/docs/manual/draggable_t.md
2023-06-29 10:44:29 +08:00

15 KiB
Raw Blame History

draggable_t

概述

image

将draggable放入目标控件即可让目标控件或当前窗口可以被拖动。

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

在xml中使用"draggable"标签创建draggable控件。如

<button text="Drag Me" w="80" h="40" x="10" y="10">
<draggable />
</button>

拖动对话框标题时移动对话框:

<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" >
<draggable drag_window="true"/>
</dialog_title>

更多用法请参考: draggable.xml

在c代码中使用函数draggable_create创建按钮控件。如

widget_t* draggable = draggable_create(target, 0, 0, 0, 0);

draggable本身不可见故无需style。


函数

函数名称 说明
draggable_cast 转换为draggable对象(供脚本语言使用)。
draggable_create 创建draggable对象
draggable_get_widget_vtable 获取 draggable 虚表。
draggable_set_allow_out_of_screen 设置是否无范围限制拖动。
draggable_set_bottom 设置bottom。
draggable_set_drag_native_window 设置drag_native_window。
draggable_set_drag_parent 设置drag_parent。
draggable_set_drag_window 设置drag_window。
draggable_set_horizontal_only 设置horizontal_only。
draggable_set_left 设置left。
draggable_set_right 设置right。
draggable_set_top 设置top。
draggable_set_vertical_only 设置vertical_only。

属性

属性名称 类型 说明
allow_out_of_screen bool_t 支持超出原生窗口边界拖动。(无法完全移出原生窗口,同时优先受到拖动范围限制的影响)
bottom int32_t 拖动范围的底部限制。缺省为父控件的底部。
drag_native_window bool_t 拖动原生窗口。
drag_parent uint32_t 拖动父控件。0表示直系父控件1表示父控件的父控件依次类推。
drag_window bool_t 拖动窗口而不是父控件。比如放在对话框的titlebar上拖动titlebar其实是希望拖动对话框。
horizontal_only bool_t 只允许水平拖动。
left int32_t 拖动范围的左边限制。缺省为父控件的左边。
right int32_t 拖动范围的右边限制。缺省为父控件的右边边。
top int32_t 拖动范围的顶部限制。缺省为父控件的顶部。
vertical_only bool_t 只允许垂直拖动。

draggable_cast 函数


  • 函数功能:

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

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

draggable_create 函数


  • 函数功能:

创建draggable对象

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

draggable_get_widget_vtable 函数


  • 函数功能:

获取 draggable 虚表。

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

draggable_set_allow_out_of_screen 函数


  • 函数功能:

设置是否无范围限制拖动。

备注:可以让窗口拖动到外面去。

  • 函数原型:
ret_t draggable_set_allow_out_of_screen (widget_t* widget, bool_t allow_out_of_screen);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
allow_out_of_screen bool_t 是否无范围限制拖动。

draggable_set_bottom 函数


  • 函数功能:

设置bottom。

  • 函数原型:
ret_t draggable_set_bottom (widget_t* widget, int32_t bottom);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
bottom int32_t 拖动范围的底部限制。缺省为父控件的底部。

draggable_set_drag_native_window 函数


  • 函数功能:

设置drag_native_window。

  • 函数原型:
ret_t draggable_set_drag_native_window (widget_t* widget, bool_t drag_native_window);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
drag_native_window bool_t 是否拖动原生窗口。

draggable_set_drag_parent 函数


  • 函数功能:

设置drag_parent。

拖动窗口而不是父控件。比如放在对话框的titlebar上拖动titlebar其实是希望拖动对话框。

  • 函数原型:
ret_t draggable_set_drag_parent (widget_t* widget, uint32_t drag_parent);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
drag_parent uint32_t 0表示直系父控件1表示父控件的父控件依次类推。

draggable_set_drag_window 函数


  • 函数功能:

设置drag_window。

拖动窗口而不是父控件。比如放在对话框的titlebar上拖动titlebar其实是希望拖动对话框。

  • 函数原型:
ret_t draggable_set_drag_window (widget_t* widget, bool_t drag_window);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
drag_window bool_t 是否拖动窗口。

draggable_set_horizontal_only 函数


  • 函数功能:

设置horizontal_only。

  • 函数原型:
ret_t draggable_set_horizontal_only (widget_t* widget, bool_t horizontal_only);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
horizontal_only bool_t 只允许水平拖动。

draggable_set_left 函数


  • 函数功能:

设置left。

  • 函数原型:
ret_t draggable_set_left (widget_t* widget, int32_t left);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
left int32_t 拖动范围的左边限制。缺省为父控件的左边。

draggable_set_right 函数


  • 函数功能:

设置right。

  • 函数原型:
ret_t draggable_set_right (widget_t* widget, int32_t right);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
right int32_t 拖动范围的右边限制。缺省为父控件的右边边。

draggable_set_top 函数


  • 函数功能:

设置top。

  • 函数原型:
ret_t draggable_set_top (widget_t* widget, int32_t top);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
top int32_t 拖动范围的顶部限制。缺省为父控件的顶部。

draggable_set_vertical_only 函数


  • 函数功能:

设置vertical_only。

  • 函数原型:
ret_t draggable_set_vertical_only (widget_t* widget, bool_t vertical_only);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
widget widget_t* widget对象。
vertical_only bool_t 只允许垂直拖动。

allow_out_of_screen 属性


支持超出原生窗口边界拖动。(无法完全移出原生窗口,同时优先受到拖动范围限制的影响)

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

bottom 属性


拖动范围的底部限制。缺省为父控件的底部。

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

drag_native_window 属性


拖动原生窗口。

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

drag_parent 属性


拖动父控件。0表示直系父控件1表示父控件的父控件依次类推。

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

drag_window 属性


拖动窗口而不是父控件。比如放在对话框的titlebar上拖动titlebar其实是希望拖动对话框。

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

horizontal_only 属性


只允许水平拖动。

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

left 属性


拖动范围的左边限制。缺省为父控件的左边。

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

right 属性


拖动范围的右边限制。缺省为父控件的右边边。

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

top 属性


拖动范围的顶部限制。缺省为父控件的顶部。

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

vertical_only 属性


只允许垂直拖动。

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