## popup\_t
### 概述
![image](images/popup_t_0.png)
弹出窗口。
弹出窗口是一种特殊的窗口,大小和位置可以自由设置,主要用来实现右键菜单和combo\_box的下列列表等功能。
popup\_t是[window\_base\_t](window_base_t.md)的子类控件,window\_base\_t的函数均适用于popup\_t控件。
在xml中使用"popup"标签创建弹出窗口。如:
```xml
| 函数名称 | 说明 | | -------- | ------------ | | popup\_cast | 转换为popup对象(供脚本语言使用)。 | | popup\_create | 创建popup对象。 | | popup\_get\_widget\_vtable | 获取 popup 虚表。 | | popup\_set\_close\_when\_click | 设置点击时是否关闭窗口。 | | popup\_set\_close\_when\_click\_outside | 设置点击窗口外部时是否关闭窗口。 | | popup\_set\_close\_when\_timeout | 设置超时关闭时间(ms)。 | ### 属性
| 属性名称 | 类型 | 说明 | | -------- | ----- | ------------ | | close\_when\_click | bool\_t | 点击时是否关闭窗口。 | | close\_when\_click\_outside | bool\_t | 点击到窗口外时是否关闭窗口。 | | close\_when\_timeout | uint32\_t | 超时后自动关闭窗口(ms)。 | #### popup\_cast 函数 ----------------------- * 函数功能: >
转换为popup对象(供脚本语言使用)。 * 函数原型: ``` widget_t* popup_cast (widget_t* widget); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | widget\_t* | popup对象。 | | widget | widget\_t* | popup对象。 | #### popup\_create 函数 ----------------------- * 函数功能: >
创建popup对象。 * 函数原型: ``` widget_t* popup_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | widget\_t* | popup对象。 | | parent | widget\_t* | 父控件 | | x | xy\_t | x坐标 | | y | xy\_t | y坐标 | | w | wh\_t | 宽度 | | h | wh\_t | 高度 | #### popup\_get\_widget\_vtable 函数 ----------------------- * 函数功能: >
获取 popup 虚表。 * 函数原型: ``` const widget_vtable_t* popup_get_widget_vtable (); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | const widget\_vtable\_t* | 成功返回 popup 虚表。 | #### popup\_set\_close\_when\_click 函数 ----------------------- * 函数功能: >
设置点击时是否关闭窗口。 * 函数原型: ``` ret_t popup_set_close_when_click (widget_t* widget, bool_t close_when_click); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | 控件对象。 | | close\_when\_click | bool\_t | 点击时是否关闭窗口。 | #### popup\_set\_close\_when\_click\_outside 函数 ----------------------- * 函数功能: >
设置点击窗口外部时是否关闭窗口。 * 函数原型: ``` ret_t popup_set_close_when_click_outside (widget_t* widget, bool_t close_when_click_outside); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | 控件对象。 | | close\_when\_click\_outside | bool\_t | 点击窗口外部时是否关闭窗口。 | #### popup\_set\_close\_when\_timeout 函数 ----------------------- * 函数功能: >
设置超时关闭时间(ms)。 * 函数原型: ``` ret_t popup_set_close_when_timeout (widget_t* widget, uint32_t close_when_timeout); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | 控件对象。 | | close\_when\_timeout | uint32\_t | 大于0时,为定时器时间(ms),超时关闭窗口。 | #### close\_when\_click 属性 ----------------------- >
点击时是否关闭窗口。 * 类型:bool\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 | #### close\_when\_click\_outside 属性 ----------------------- >
点击到窗口外时是否关闭窗口。 * 类型:bool\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 | #### close\_when\_timeout 属性 ----------------------- >
超时后自动关闭窗口(ms)。 * 类型:uint32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 |