# overlay_t

# 概述

image
image

overlay窗口。

overlay窗口有点类似于非模态的dialog,但是它位置和大小是完全自由的,窗口管理器不会对它做任何限制。

如果overlay窗口有透明或半透效果,则不支持窗口动画,但可以通过移动窗口位置来实现类似动画的效果。

overlay_t是window_base_t的子类控件,window_base_t的函数均适用于overlay_t控件。

在xml中使用"overlay"标签创建窗口。需要指定坐标和大小,可以指定窗体样式和动画名称。如:

<overlay theme="basic" x="100" y="100" w="200" h="300">
...
</overlay>

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

在c代码中使用函数overlay_create创建窗口。如:

widget_t* overlay = overlay_create(NULL, 100, 100, 200, 300);

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

可用通过style来设置窗口的风格,如背景颜色或图片等。如:

<style name="bricks">
<normal bg_image="bricks"  bg_image_draw_type="repeat"/>
</style>

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

# 函数

函数名称 说明
overlay_cast 转换为overlay对象(供脚本语言使用)。
overlay_create 创建overlay对象
overlay_get_widget_vtable 获取 overlay 虚表。
overlay_set_always_on_top 设置是否总是在最上面。
overlay_set_click_through 设置是否启用点击穿透。
overlay_set_modeless 设置是否非模态窗口模式。

# 属性

属性名称 类型 说明
always_on_top bool_t 是否总在最上面。
click_through bool_t 点击穿透。点击没有子控件的位置,是否穿透到底层窗口。
modeless bool_t 非模态窗口。

# overlay_cast 函数

  • 函数功能:

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

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

# overlay_create 函数

  • 函数功能:

创建overlay对象

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

# overlay_get_widget_vtable 函数

  • 函数功能:

获取 overlay 虚表。

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

# overlay_set_always_on_top 函数

  • 函数功能:

设置是否总是在最上面。

  • 函数原型:
ret_t overlay_set_always_on_top (widget_t* widget, bool_t always_on_top);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
widget widget_t* 控件对象。
always_on_top bool_t 是否总是在最上面。

# overlay_set_click_through 函数

  • 函数功能:

设置是否启用点击穿透。

  • 函数原型:
ret_t overlay_set_click_through (widget_t* widget, bool_t click_through);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
widget widget_t* 控件对象。
click_through bool_t 是否启用点击穿透。

# overlay_set_modeless 函数

  • 函数功能:

设置是否非模态窗口模式。

  • 函数原型:
ret_t overlay_set_modeless (widget_t* widget, bool_t modeless);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
widget widget_t* 控件对象。
modeless bool_t 是否非模态窗口模式。

# always_on_top 属性

是否总在最上面。

缺省不启用。

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

# click_through 属性

点击穿透。点击没有子控件的位置,是否穿透到底层窗口。

缺省不启用。

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

# modeless 属性

非模态窗口。

缺省不启用。

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