Skip to content

Latest commit

 

History

History
711 lines (569 loc) · 23.7 KB

window_base_t.md

File metadata and controls

711 lines (569 loc) · 23.7 KB

window_base_t

概述

image

窗口。

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

image

本类是一个抽象类,不能进行实例化。请在应用程序中使用具体的类,如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_invalidate 窗口on_invalidate函数的缺省实现。
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函数的缺省实现。

属性

属性名称 类型 说明
assets_manager assets_manager_t* 获取资源管理器对象。
auto_scale_children_h bool_t 窗口大小与设计时大小不同时,是否自动调整子控件的高度。
auto_scale_children_w bool_t 窗口大小与设计时大小不同时,是否自动调整子控件的宽度。
auto_scale_children_x bool_t 窗口大小与设计时大小不同时,是否自动调整子控件的x坐标。
auto_scale_children_y bool_t 窗口大小与设计时大小不同时,是否自动调整子控件的y坐标。
closable window_closable_t 收到EVT_REQUEST_CLOSE_WINDOW是否自动关闭窗口。
close_anim_hint char* 关闭窗口动画的名称。
design_h uint16_t 设计时高度。
design_w uint16_t 设计时宽度。
disable_anim bool_t 禁用窗口动画。
font_manager font_manager_t* 获取字体管理器对象。
image_manager image_manager_t* 获取图片管理器对象。
move_focus_down_key char* 向下移动焦点的键值。
move_focus_left_key char* 向左移动焦点的键值。
move_focus_next_key char* 向后移动焦点的键值。
move_focus_prev_key char* 向前移动焦点的键值。
move_focus_right_key char* 向右移动焦点的键值。
move_focus_up_key char* 向上移动焦点的键值。
open_anim_hint char* 打开窗口动画的名称。
single_instance bool_t 单例。如果窗口存在,先关闭再打开。
stage char* 窗口当前处于的状态。
strongly_focus bool_t 点击非focusable控件时,是否让当前焦点控件失去焦点。比如点击窗口空白区域,是否让编辑器失去焦点。
theme char* 窗体样式资源的名称。
theme_obj theme_t* 窗口的常量窗体样式数据。

事件

事件名称 类型 说明
EVT_WINDOW_WILL_OPEN event_t 窗口即将打开事件。 如果有窗口动画,在窗口动画开始前触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。
EVT_WINDOW_OPEN event_t 窗口打开事件。 如果有窗口动画,在窗口动画完成时触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。
EVT_WINDOW_TO_BACKGROUND event_t 窗口被切换到后台事件。 打开新窗口时,当前窗口被切换到后台时,对当前窗口触发本事件。
EVT_WINDOW_TO_FOREGROUND event_t 窗口被切换到前台事件。 关闭当前窗口时,前一个窗口被切换到前台时,对前一个窗口触发本事件。
EVT_WINDOW_CLOSE event_t 窗口关闭事件。
EVT_WINDOW_LOAD event_t 窗口加载完成事件。
EVT_REQUEST_CLOSE_WINDOW event_t 请求关闭窗口的事件。
EVT_LOCALE_CHANGED event_t locale改变的事件。

window_base_auto_scale_children 函数


  • 函数功能:

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

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

window_base_cast 函数


  • 函数功能:

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

  • 函数原型:
widget_t* window_base_cast (widget_t* widget);
  • 参数说明:
参数 类型 说明
返回值 widget_t* window_base对象。
widget widget_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* 窗口对象。
parent widget_t* 父控件
vt const widget_vtable_t* vtable对象。
x xy_t x坐标
y xy_t y坐标
w wh_t 宽度
h wh_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表示成功,否则表示失败。。
widget widget_t* window_base对象。g
name const char* 属性名。
v value_t* value对象

window_base_invalidate 函数


  • 函数功能:

窗口on_invalidate函数的缺省实现。

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

window_base_on_destroy 函数


  • 函数功能:

窗口on_destroy函数的缺省实现。

  • 函数原型:
ret_t window_base_on_destroy (widget_t* widget);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
widget widget_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表示成功,否则表示失败。
widget widget_t* window_base对象。
e event_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表示成功,否则表示失败。
widget widget_t* window_base对象。
c canvas_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
widget widget_t* window_base对象。
c canvas_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表示成功,否则表示失败。
widget widget_t* window_base对象。
c canvas_t* canvas对象。

window_base_set_need_relayout 函数


  • 函数功能:

设置是否需要relayout

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

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表示成功,否则表示失败。
widget widget_t* window_base对象。
name const char* 属性名。
v const value_t* value对象

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读取

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 属性


窗口当前处于的状态。

  • 类型:char*
特性 是否支持
可直接读取
可直接修改
可通过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读取