Skip to content

window_t

概述

窗口。

缺省的应用程序窗口,占用除system_bar_t之外的整个区域,请不要修改它的位置和大小(除非你清楚后果)。

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

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

xml
<window theme="basic" anim_hint="htranslate">
...
</window>

更多用法请参考:window.xml

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

c
widget_t* window = window_create(NULL, 0, 0, 0, 0);

无需指定父控件、坐标和大小,使用0即可。

完整示例请参考:window demo

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

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

更多用法请参考:theme default

函数

函数名称说明
image_blend把图片指定的区域渲染到framebuffer指定的区域,src的大小和dst的大小不一致则进行缩放。
image_clear用颜色填充指定的区域。
image_copy把图片指定的区域拷贝到framebuffer中。
image_fill用颜色绘制指定的区域。
image_rotate把图片指定的区域进行旋转并拷贝到framebuffer相应的区域,本函数主要用于辅助实现横屏和竖屏的切换,一般支持90度旋转即可。
image_rotate_blend把图片指定的区域渲染到framebuffer指定的区域,src的大小和dst的大小不一致则进行缩放以及旋转。
image_rotate_ex把图片指定的区域进行旋转。
window_cast转换为window对象(供脚本语言使用)。
window_close关闭窗口。
window_close_force立即无条件关闭窗口(无动画)。
window_create创建window对象
window_create_default以缺省的方式创建window对象。
window_get_widget_vtable获取 window 虚表。
window_open从资源文件中加载并创建window_base对象。本函数在ui_loader/ui_builder_default里实现。
window_open_and_close从资源文件中加载并创建window对象。本函数在ui_loader/ui_builder_default里实现。
window_set_auto_scale_children当设计分辨率和实际分辨率不一致时,自动调整子控件的位置和大小。
window_set_fullscreen设置为全屏窗口。

属性

属性名称类型说明
fullscreenbool_t是否全屏。

image_blend 函数

  • 函数功能:

把图片指定的区域渲染到framebuffer指定的区域,src的大小和dst的大小不一致则进行缩放。

  • 函数原型:
ret_t image_blend (bitmap_t* dst, bitmap_t* src, const rectf_t* dst_r, const rectf_t* src_r, uint8_t global_alpha);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败,返回失败则上层用软件实现。
dstbitmap_t*目标图片对象。
srcbitmap_t*源图片对象。
dst_rconst rectf_t*目的区域。
src_rconst rectf_t*源区域。
global_alphauint8_t全局alpha。

image_clear 函数

  • 函数功能:

用颜色填充指定的区域。

  • 函数原型:
ret_t image_clear (bitmap_t* dst, const rect_t* dst_r, color_t c);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败,返回失败则上层用软件实现。
dstbitmap_t*目标图片对象。
dst_rconst rect_t*要填充的目标区域。
ccolor_t颜色。

image_copy 函数

  • 函数功能:

把图片指定的区域拷贝到framebuffer中。

  • 函数原型:
ret_t image_copy (bitmap_t* dst, bitmap_t* src, const rect_t* src_r, xy_t dx, xy_t dy);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败,返回失败则上层用软件实现。
dstbitmap_t*目标图片对象。
srcbitmap_t*源图片对象。
src_rconst rect_t*要拷贝的区域。
dxxy_t目标位置的x坐标。
dyxy_t目标位置的y坐标。

image_fill 函数

  • 函数功能:

用颜色绘制指定的区域。

  • 函数原型:
ret_t image_fill (bitmap_t* dst, const rect_t* dst_r, color_t c);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败,返回失败则上层用软件实现。
dstbitmap_t*目标图片对象。
dst_rconst rect_t*要填充的目标区域。
ccolor_t颜色。

image_rotate 函数

  • 函数功能:

把图片指定的区域进行旋转并拷贝到framebuffer相应的区域,本函数主要用于辅助实现横屏和竖屏的切换,一般支持90度旋转即可。 备注:旋转方向为逆时针。

  • 函数原型:
ret_t image_rotate (bitmap_t* dst, bitmap_t* src, const rect_t* src_r, lcd_orientation_t o);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败,返回失败则上层用软件实现。
dstbitmap_t*目标图片对象。
srcbitmap_t*源图片对象。
src_rconst rect_t*要旋转并拷贝的区域。
olcd_orientation_t旋转角度(一般支持90度即可)。

image_rotate_blend 函数

  • 函数功能:

把图片指定的区域渲染到framebuffer指定的区域,src的大小和dst的大小不一致则进行缩放以及旋转。

  • 函数原型:
ret_t image_rotate_blend (bitmap_t* dst, bitmap_t* src, const rectf_t* dst_r, const rectf_t* src_r, uint8_t global_alpha, lcd_orientation_t o);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败,返回失败则上层用软件实现。
dstbitmap_t*目标图片对象。
srcbitmap_t*源图片对象。
dst_rconst rectf_t*目的区域。(坐标原点为旋转后的坐标系原点,并非是 dst 的左上角)
src_rconst rectf_t*源区域。
global_alphauint8_t全局alpha。
olcd_orientation_t旋转角度(一般支持90度即可,旋转方向为逆时针)。

image_rotate_ex 函数

  • 函数功能:

把图片指定的区域进行旋转。

  • 函数原型:
ret_t image_rotate_ex (bitmap_t* dst, bitmap_t* src, const rect_t* src_r, xy_t dx, xy_t dy, lcd_orientation_t o);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败,返回失败则上层用软件实现。
dstbitmap_t*目标图片对象。
srcbitmap_t*源图片对象。
src_rconst rect_t*要旋转并拷贝的区域。
dxxy_t目标位置的x坐标。(坐标原点为旋转后的坐标系原点,并非是 dst 的左上角)
dyxy_t目标位置的y坐标。(坐标原点为旋转后的坐标系原点,并非是 dst 的左上角)
olcd_orientation_t旋转角度(一般支持90度即可,旋转方向为逆时针)。

window_cast 函数

  • 函数功能:

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

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

window_close 函数

  • 函数功能:

关闭窗口。

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

window_close_force 函数

  • 函数功能:

立即无条件关闭窗口(无动画)。

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

window_create 函数

  • 函数功能:

创建window对象

  • 函数原型:
widget_t* window_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
  • 参数说明:
参数类型说明
返回值widget_t*对象。
parentwidget_t*父控件
xxy_tx坐标
yxy_ty坐标
wwh_t宽度
hwh_t高度

window_create_default 函数

  • 函数功能:

以缺省的方式创建window对象。

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

window_get_widget_vtable 函数

  • 函数功能:

获取 window 虚表。

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

window_open 函数

  • 函数功能:

从资源文件中加载并创建window_base对象。本函数在ui_loader/ui_builder_default里实现。

  • 函数原型:
widget_t* window_open (const char* name);
  • 参数说明:
参数类型说明
返回值widget_t*对象。
nameconst char*window的名称。

window_open_and_close 函数

  • 函数功能:

从资源文件中加载并创建window对象。本函数在ui_loader/ui_builder_default里实现。

  • 函数原型:
widget_t* window_open_and_close (const char* name, widget_t* to_close);
  • 参数说明:
参数类型说明
返回值widget_t*对象。
nameconst char*window的名称。
to_closewidget_t*关闭该窗口。

window_set_auto_scale_children 函数

  • 函数功能:

当设计分辨率和实际分辨率不一致时,自动调整子控件的位置和大小。

当子控件有self_layout参数或者子控件的父控件有children_layout参数时,不会自动调整。

  • 函数原型:
ret_t window_set_auto_scale_children (widget_t* widget, uint32_t design_w, uint32_t design_h);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*window对象。
design_wuint32_t设计时宽度。
design_huint32_t设计时高度。

window_set_fullscreen 函数

  • 函数功能:

设置为全屏窗口。

如果app_type是SIMULATOR,全屏是指与LCD相同大小,而非让SDL窗口全屏。

  • 函数原型:
ret_t window_set_fullscreen (widget_t* widget, bool_t fullscreen);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*window对象。
fullscreenbool_t是否全屏。

fullscreen 属性

是否全屏。

对于模拟器,全屏是让窗口和LCD具有相同大小,而非让SDL窗口全屏。

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