Skip to content

window_base_t

概述

窗口。

本类把窗口相关的公共行为进行抽象,放到一起方便重用。目前已知的具体实现如下图:

本类是一个抽象类,不能进行实例化。请在应用程序中使用具体的类,如window_t。

函数

函数名称说明
window_base_auto_scale_children根据参数自动缩放子控件。
window_base_cast转换为window_base对象(供脚本语言使用)。
window_base_create创建window base对象。
window_base_get_prop窗口get_prop函数的缺省实现。
window_base_get_widget_vtable获取 window_base 虚表。
window_base_invalidate窗口on_invalidate函数的缺省实现。
window_base_on_copy默认拷贝函数。
window_base_on_destroy窗口on_destroy函数的缺省实现。
window_base_on_event窗口on_event函数的缺省实现。
window_base_on_paint_begin窗口on_paint_begin函数的缺省实现。
window_base_on_paint_end窗口on_paint_end函数的缺省实现。
window_base_on_paint_self窗口on_paint_self函数的缺省实现。
window_base_set_need_relayout设置是否需要relayout
window_base_set_prop窗口set_prop函数的缺省实现。

属性

属性名称类型说明
applet_namechar*小应用程序(applet)的名称。
assets_managerassets_manager_t*获取资源管理器对象。
auto_scale_children_hbool_t窗口大小与设计时大小不同时,是否自动调整子控件的高度。
auto_scale_children_wbool_t窗口大小与设计时大小不同时,是否自动调整子控件的宽度。
auto_scale_children_xbool_t窗口大小与设计时大小不同时,是否自动调整子控件的x坐标。
auto_scale_children_ybool_t窗口大小与设计时大小不同时,是否自动调整子控件的y坐标。
closablewindow_closable_t收到EVT_REQUEST_CLOSE_WINDOW是否自动关闭窗口。
close_anim_hintchar*关闭窗口动画的名称。
design_huint16_t设计时高度。
design_wuint16_t设计时宽度。
disable_animbool_t禁用窗口动画。
font_managerfont_manager_t*获取字体管理器对象。
image_managerimage_manager_t*获取图片管理器对象。
locale_infolocale_info_t*获取多国语言字符串管理器对象。
move_focus_down_keychar*向下移动焦点的键值。
move_focus_left_keychar*向左移动焦点的键值。
move_focus_next_keychar*向后移动焦点的键值。
move_focus_prev_keychar*向前移动焦点的键值。
move_focus_right_keychar*向右移动焦点的键值。
move_focus_up_keychar*向上移动焦点的键值。
open_anim_hintchar*打开窗口动画的名称。
single_instancebool_t单例。如果窗口存在,先关闭再打开。
stagewindow_stage_t窗口当前处于的状态。
strongly_focusbool_t点击非focusable控件时,是否让当前焦点控件失去焦点。比如点击窗口空白区域,是否让编辑器失去焦点。
themechar*窗体样式资源的名称。
theme_objtheme_t*窗口的常量窗体样式数据。

事件

事件名称类型说明
EVT_WINDOW_WILL_OPENevent_t窗口即将打开事件。 如果有窗口动画,在窗口动画开始前触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。
EVT_WINDOW_OPENevent_t窗口打开事件。 如果有窗口动画,在窗口动画完成时触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。
EVT_WINDOW_TO_BACKGROUNDevent_t窗口被切换到后台事件。 打开新窗口时,当前窗口被切换到后台时,对当前窗口触发本事件。
EVT_WINDOW_TO_FOREGROUNDevent_t窗口被切换到前台事件。 关闭当前窗口时,前一个窗口被切换到前台时,对前一个窗口触发本事件。
EVT_WINDOW_CLOSEevent_t窗口关闭事件。
EVT_WINDOW_LOADevent_t窗口加载完成事件。
EVT_REQUEST_CLOSE_WINDOWevent_t请求关闭窗口的事件。
EVT_LOCALE_CHANGEDevent_tlocale改变的事件。

window_base_auto_scale_children 函数

  • 函数功能:

根据参数自动缩放子控件。

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

window_base_cast 函数

  • 函数功能:

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

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

window_base_create 函数

  • 函数功能:

创建window base对象。

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

window_base_get_prop 函数

  • 函数功能:

窗口get_prop函数的缺省实现。

  • 函数原型:
ret_t window_base_get_prop (widget_t* widget, const char* name, value_t* v);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。。
widgetwidget_t*window_base对象。g
nameconst char*属性名。
vvalue_t*value对象

window_base_get_widget_vtable 函数

  • 函数功能:

获取 window_base 虚表。

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

window_base_invalidate 函数

  • 函数功能:

窗口on_invalidate函数的缺省实现。

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

window_base_on_copy 函数

  • 函数功能:

默认拷贝函数。

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

window_base_on_destroy 函数

  • 函数功能:

窗口on_destroy函数的缺省实现。

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

window_base_on_event 函数

  • 函数功能:

窗口on_event函数的缺省实现。

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

window_base_on_paint_begin 函数

  • 函数功能:

窗口on_paint_begin函数的缺省实现。

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

window_base_on_paint_end 函数

  • 函数功能:

窗口on_paint_end函数的缺省实现。

  • 函数原型:
ret_t window_base_on_paint_end (widget_t* widget, canvas_t* c);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。1
widgetwidget_t*window_base对象。
ccanvas_t*canvas对象。

window_base_on_paint_self 函数

  • 函数功能:

窗口on_paint_self函数的缺省实现。

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

window_base_set_need_relayout 函数

  • 函数功能:

设置是否需要relayout

  • 函数原型:
ret_t window_base_set_need_relayout (widget_t* widget, bool_t need_relayout);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*window_base对象。
need_relayoutbool_t是否需要relayout。

window_base_set_prop 函数

  • 函数功能:

窗口set_prop函数的缺省实现。

  • 函数原型:
ret_t window_base_set_prop (widget_t* widget, const char* name, const value_t* v);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*window_base对象。
nameconst char*属性名。
vconst value_t*value对象

applet_name 属性

小应用程序(applet)的名称。

如果该窗口属于某个独立的小程序应用(applet),需要指定它的名称,以便到对应的资源目录查找资源。

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

assets_manager 属性

获取资源管理器对象。

把资源管理器对象与窗口关联起来,是为了解决UI设计器与被设计的窗口需要从不同的位置加载资源资源的问题。

  • 类型:assets_manager_t*
特性是否支持
可直接读取
可直接修改
可通过widget_get_prop读取

auto_scale_children_h 属性

窗口大小与设计时大小不同时,是否自动调整子控件的高度。

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

auto_scale_children_w 属性

窗口大小与设计时大小不同时,是否自动调整子控件的宽度。

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

auto_scale_children_x 属性

窗口大小与设计时大小不同时,是否自动调整子控件的x坐标。

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

auto_scale_children_y 属性

窗口大小与设计时大小不同时,是否自动调整子控件的y坐标。

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

closable 属性

收到EVT_REQUEST_CLOSE_WINDOW是否自动关闭窗口。

如果关闭窗口时,需要用户确认:

  • 1.将closable设置为WINDOW_CLOSABLE_CONFIRM

  • 2.处理窗口的EVT_REQUEST_CLOSE_WINDOW事件

closable在XML中取值为:yes/no/confirm,缺省为yes。

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

close_anim_hint 属性

关闭窗口动画的名称。 请参考窗口动画

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

design_h 属性

设计时高度。

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

design_w 属性

设计时宽度。

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

disable_anim 属性

禁用窗口动画。

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

font_manager 属性

获取字体管理器对象。

把字体管理器对象与窗口关联起来,是为了解决UI设计器与被设计的窗口需要从不同的位置加载字体资源的问题。

  • 类型:font_manager_t*
特性是否支持
可直接读取
可直接修改
可通过widget_get_prop读取

image_manager 属性

获取图片管理器对象。

把图片管理器对象与窗口关联起来,是为了解决UI设计器与被设计的窗口需要从不同的位置加载图片资源的问题。

  • 类型:image_manager_t*
特性是否支持
可直接读取
可直接修改
可通过widget_get_prop读取

locale_info 属性

获取多国语言字符串管理器对象。

把多国语言字符串管理器对象与窗口关联起来,是为了解决UI设计器与被设计的窗口需要从不同的位置加载资源资源的问题。

  • 类型:locale_info_t*
特性是否支持
可直接读取
可直接修改
可通过widget_get_prop读取

move_focus_down_key 属性

向下移动焦点的键值。

请参考控件焦点

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

move_focus_left_key 属性

向左移动焦点的键值。

请参考控件焦点

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

move_focus_next_key 属性

向后移动焦点的键值。

请参考控件焦点

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

move_focus_prev_key 属性

向前移动焦点的键值。

请参考控件焦点

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

move_focus_right_key 属性

向右移动焦点的键值。

请参考控件焦点

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

move_focus_up_key 属性

向上移动焦点的键值。

请参考控件焦点

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

open_anim_hint 属性

打开窗口动画的名称。 请参考窗口动画

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

single_instance 属性

单例。如果窗口存在,先关闭再打开。

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

stage 属性

窗口当前处于的状态。

  • 类型:window_stage_t
特性是否支持
可直接读取
可直接修改
可通过widget_get_prop读取

strongly_focus 属性

点击非focusable控件时,是否让当前焦点控件失去焦点。比如点击窗口空白区域,是否让编辑器失去焦点。

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

theme 属性

窗体样式资源的名称。 每个窗口都可以有独立的窗体样式文件,如果没指定,则使用系统缺省的窗体样式文件。 窗体样式是一个XML文件,放在assets/raw/styles目录下。 请参考窗体样式

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

theme_obj 属性

窗口的常量窗体样式数据。

把窗体样式管理器对象与窗口关联起来,是为了解决UI设计器与被设计的窗口需要从不同的位置加载窗体样式资源的问题。

  • 类型:theme_t*
特性是否支持
可直接读取
可直接修改
可通过widget_get_prop读取