awtk/docs/manual/window_manager_t.md

626 lines
19 KiB
Markdown
Raw Normal View History

2019-10-17 14:23:01 +08:00
## window\_manager\_t
### 概述
![image](images/window_manager_t_0.png)
2019-11-15 11:33:43 +08:00
窗口管理器。
2019-10-17 14:23:01 +08:00
----------------------------------
### 函数
<p id="window_manager_t_methods">
| 函数名称 | 说明 |
| -------- | ------------ |
| <a href="#window_manager_t_window_manager">window\_manager</a> | 获取全局window_manager对象 |
2019-12-14 13:25:56 +08:00
| <a href="#window_manager_t_window_manager_back">window\_manager\_back</a> | 请求关闭顶层窗口。 |
| <a href="#window_manager_t_window_manager_back_to">window\_manager\_back\_to</a> | 回到指定的窗口,关闭之上的全部窗口。 |
| <a href="#window_manager_t_window_manager_back_to_home">window\_manager\_back\_to\_home</a> | 回到主窗口,关闭之上的全部窗口。 |
2020-05-24 19:28:22 +08:00
| <a href="#window_manager_t_window_manager_begin_wait_pointer_cursor">window\_manager\_begin\_wait\_pointer\_cursor</a> | 开始等待鼠标指针。 |
2019-10-17 14:23:01 +08:00
| <a href="#window_manager_t_window_manager_cast">window\_manager\_cast</a> | 转换为window_manager对象(供脚本语言使用)。 |
2020-12-08 09:04:40 +08:00
| <a href="#window_manager_t_window_manager_close_all">window\_manager\_close\_all</a> | 关闭全部窗口。 |
2021-01-11 08:23:05 +08:00
| <a href="#window_manager_t_window_manager_close_window_force">window\_manager\_close\_window\_force</a> | 强制立即关闭窗口。 |
2020-08-04 21:45:46 +08:00
| <a href="#window_manager_t_window_manager_dispatch_input_event">window\_manager\_dispatch\_input\_event</a> | 分发输入事件。 |
2019-10-17 14:23:01 +08:00
| <a href="#window_manager_t_window_manager_dispatch_native_window_event">window\_manager\_dispatch\_native\_window\_event</a> | 处理native window事件。 |
2020-05-24 19:28:22 +08:00
| <a href="#window_manager_t_window_manager_end_wait_pointer_cursor">window\_manager\_end\_wait\_pointer\_cursor</a> | 结束等待鼠标指针。 |
2019-10-17 14:23:01 +08:00
| <a href="#window_manager_t_window_manager_get_pointer_pressed">window\_manager\_get\_pointer\_pressed</a> | 获取指针当前是否按下。 |
| <a href="#window_manager_t_window_manager_get_pointer_x">window\_manager\_get\_pointer\_x</a> | 获取指针当前的X坐标。 |
| <a href="#window_manager_t_window_manager_get_pointer_y">window\_manager\_get\_pointer\_y</a> | 获取指针当前的Y坐标。 |
| <a href="#window_manager_t_window_manager_get_prev_window">window\_manager\_get\_prev\_window</a> | 获取前一个的窗口。 |
| <a href="#window_manager_t_window_manager_get_top_main_window">window\_manager\_get\_top\_main\_window</a> | 获取最上面的主窗口。 |
| <a href="#window_manager_t_window_manager_get_top_window">window\_manager\_get\_top\_window</a> | 获取最上面的窗口。 |
2020-01-06 17:18:47 +08:00
| <a href="#window_manager_t_window_manager_is_animating">window\_manager\_is\_animating</a> | 获取当前窗口动画是否正在播放。 |
2020-08-04 21:45:46 +08:00
| <a href="#window_manager_t_window_manager_open_window">window\_manager\_open\_window</a> | 打开窗口。 |
2020-05-25 17:44:36 +08:00
| <a href="#window_manager_t_window_manager_paint">window\_manager\_paint</a> | 绘制。 |
2020-01-03 15:48:06 +08:00
| <a href="#window_manager_t_window_manager_resize">window\_manager\_resize</a> | 调整原生窗口的大小。 |
2019-10-17 14:23:01 +08:00
| <a href="#window_manager_t_window_manager_set">window\_manager\_set</a> | 设置缺省的窗口管理器。 |
| <a href="#window_manager_t_window_manager_set_cursor">window\_manager\_set\_cursor</a> | 设置鼠标指针。 |
2021-08-03 07:53:37 +08:00
| <a href="#window_manager_t_window_manager_set_ignore_input_events">window\_manager\_set\_ignore\_input\_events</a> | 设置是否忽略用户输入事件。 |
| <a href="#window_manager_t_window_manager_set_max_fps">window\_manager\_set\_max\_fps</a> | 限制最大帧率。 |
2019-10-17 14:23:01 +08:00
| <a href="#window_manager_t_window_manager_set_screen_saver_time">window\_manager\_set\_screen\_saver\_time</a> | 设置屏保时间。 |
| <a href="#window_manager_t_window_manager_set_show_fps">window\_manager\_set\_show\_fps</a> | 设置是否显示FPS。 |
2020-12-08 09:04:40 +08:00
| <a href="#window_manager_t_window_manager_switch_to">window\_manager\_switch\_to</a> | 切换到指定窗口。 |
2020-10-26 11:53:50 +08:00
### 属性
<p id="window_manager_t_properties">
| 属性名称 | 类型 | 说明 |
| -------- | ----- | ------------ |
| <a href="#window_manager_t_global_emitter">global\_emitter</a> | emitter\_t* | 全局事情分发器。 |
2021-05-11 15:53:22 +08:00
### 事件
<p id="window_manager_t_events">
| 事件名称 | 类型 | 说明 |
| -------- | ----- | ------- |
| EVT\_TOP\_WINDOW\_CHANGED | window\_event\_t | 顶层窗口改变的事件。 |
| EVT\_SCREEN\_SAVER | window\_event\_t | 在指定的时间内(WITH\_SCREEN\_SAVER\_TIME),没有用户输入事件,由窗口管理器触发。 |
| EVT\_ORIENTATION\_CHANGED | event\_t | 屏幕旋转事件。 |
2019-10-17 14:23:01 +08:00
#### window\_manager 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager">获取全局window_manager对象
2019-10-17 14:23:01 +08:00
* 函数原型:
```
widget_t* window_manager ();
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | widget\_t* | 对象。 |
#### window\_manager\_back 函数
-----------------------
* 函数功能:
2019-12-14 13:25:56 +08:00
> <p id="window_manager_t_window_manager_back">请求关闭顶层窗口。
> 如果顶层窗口时模态对话框用DIALOG\_QUIT\_NONE调用dialog\_quit。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
ret_t window_manager_back (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
2019-12-09 11:51:36 +08:00
#### window\_manager\_back\_to 函数
-----------------------
* 函数功能:
2019-12-14 13:25:56 +08:00
> <p id="window_manager_t_window_manager_back_to">回到指定的窗口,关闭之上的全部窗口。
> 如果顶层窗口时模态对话框用DIALOG\_QUIT\_NONE调用dialog\_quit。
2019-12-09 11:51:36 +08:00
* 函数原型:
```
ret_t window_manager_back_to (widget_t* widget, const char* target);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| target | const char* | 目标窗口的名称。 |
2019-10-17 14:23:01 +08:00
#### window\_manager\_back\_to\_home 函数
-----------------------
* 函数功能:
2019-12-14 13:25:56 +08:00
> <p id="window_manager_t_window_manager_back_to_home">回到主窗口,关闭之上的全部窗口。
> 如果顶层窗口时模态对话框用DIALOG\_QUIT\_NONE调用dialog\_quit。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
ret_t window_manager_back_to_home (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
2020-05-24 19:28:22 +08:00
#### window\_manager\_begin\_wait\_pointer\_cursor 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_begin_wait_pointer_cursor">开始等待鼠标指针。
* 函数原型:
```
ret_t window_manager_begin_wait_pointer_cursor (widget_t* widget, bool_t ignore_user_input);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。。 |
| widget | widget\_t* | 窗口管理器对象。 |
| ignore\_user\_input | bool\_t | 是否忽略用户输入。 |
2019-10-17 14:23:01 +08:00
#### window\_manager\_cast 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_cast">转换为window_manager对象(供脚本语言使用)。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
widget_t* window_manager_cast (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | widget\_t* | window\_manager对象。 |
| widget | widget\_t* | window\_manager对象。 |
2020-12-08 09:04:40 +08:00
#### window\_manager\_close\_all 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_close_all">关闭全部窗口。
* 函数原型:
```
ret_t window_manager_close_all (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
2021-01-11 08:23:05 +08:00
#### window\_manager\_close\_window\_force 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_close_window_force">强制立即关闭窗口。
> 本函数不会执行窗口动画。
* 函数原型:
```
ret_t window_manager_close_window_force (widget_t* widget, widget_t* window);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| window | widget\_t* | 窗口对象。 |
2020-08-04 21:45:46 +08:00
#### window\_manager\_dispatch\_input\_event 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_dispatch_input_event">分发输入事件。
> 一般仅由主循环调用,特殊情况也可以用来注入事件。
* 函数原型:
```
ret_t window_manager_dispatch_input_event (widget_t* widget, event_t* e);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| e | event\_t* | 事件对象。 |
2019-10-17 14:23:01 +08:00
#### window\_manager\_dispatch\_native\_window\_event 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_dispatch_native_window_event">处理native window事件。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
ret_t window_manager_dispatch_native_window_event (widget_t* widget, event_t* e, void* handle);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| e | event\_t* | 事件。 |
| handle | void* | native window句柄。 |
2020-05-24 19:28:22 +08:00
#### window\_manager\_end\_wait\_pointer\_cursor 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_end_wait_pointer_cursor">结束等待鼠标指针。
* 函数原型:
```
ret_t window_manager_end_wait_pointer_cursor (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。。 |
| widget | widget\_t* | 窗口管理器对象。 |
2019-10-17 14:23:01 +08:00
#### window\_manager\_get\_pointer\_pressed 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_get_pointer_pressed">获取指针当前是否按下。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
bool_t window_manager_get_pointer_pressed (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | bool\_t | 返回指针当前是否按下。 |
| widget | widget\_t* | 窗口管理器对象。 |
#### window\_manager\_get\_pointer\_x 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_get_pointer_x">获取指针当前的X坐标。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
xy_t window_manager_get_pointer_x (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | xy\_t | 返回指针当前的X坐标。 |
| widget | widget\_t* | 窗口管理器对象。 |
#### window\_manager\_get\_pointer\_y 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_get_pointer_y">获取指针当前的Y坐标。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
xy_t window_manager_get_pointer_y (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | xy\_t | 返回指针当前的X坐标。 |
| widget | widget\_t* | 窗口管理器对象。 |
#### window\_manager\_get\_prev\_window 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_get_prev_window">获取前一个的窗口。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
widget_t* window_manager_get_prev_window (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | widget\_t* | 返回窗口对象。 |
| widget | widget\_t* | 窗口管理器对象。 |
#### window\_manager\_get\_top\_main\_window 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_get_top_main_window">获取最上面的主窗口。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
widget_t* window_manager_get_top_main_window (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | widget\_t* | 返回窗口对象。 |
| widget | widget\_t* | 窗口管理器对象。 |
#### window\_manager\_get\_top\_window 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_get_top_window">获取最上面的窗口。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
widget_t* window_manager_get_top_window (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | widget\_t* | 返回窗口对象。 |
| widget | widget\_t* | 窗口管理器对象。 |
2020-01-06 17:18:47 +08:00
#### window\_manager\_is\_animating 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_is_animating">获取当前窗口动画是否正在播放。
* 函数原型:
```
bool_t window_manager_is_animating (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | bool\_t | 返回TRUE表示正在播放FALSE表示没有播放。 |
| widget | widget\_t* | 窗口管理器对象。 |
2020-08-04 21:45:46 +08:00
#### window\_manager\_open\_window 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_open_window">打开窗口。
* 函数原型:
```
ret_t window_manager_open_window (widget_t* widget, widget_t* window);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| window | widget\_t* | 窗口对象。 |
2020-05-25 17:44:36 +08:00
#### window\_manager\_paint 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_paint">绘制。
> 仅由主循环调用。
* 函数原型:
```
ret_t window_manager_paint (widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
2020-01-03 15:48:06 +08:00
#### window\_manager\_resize 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_resize">调整原生窗口的大小。
* 函数原型:
```
ret_t window_manager_resize (widget_t* widget, wh_t w, wh_t h);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| w | wh\_t | 宽度 |
| h | wh\_t | 高度 |
2019-10-17 14:23:01 +08:00
#### window\_manager\_set 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_set">设置缺省的窗口管理器。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
ret_t window_manager_set (window_manager_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | window\_manager\_t* | 窗口管理器对象。 |
#### window\_manager\_set\_cursor 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_set_cursor">设置鼠标指针。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
ret_t window_manager_set_cursor (widget_t* widget, const char* cursor);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| cursor | const char* | 图片名称(从图片管理器中加载)。 |
2021-08-03 07:53:37 +08:00
#### window\_manager\_set\_ignore\_input\_events 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_set_ignore_input_events">设置是否忽略用户输入事件。
* 函数原型:
```
ret_t window_manager_set_ignore_input_events (widget_t* widget, bool_t ignore_input_events);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| ignore\_input\_events | bool\_t | 是否忽略用户输入事件。 |
#### window\_manager\_set\_max\_fps 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_set_max_fps">限制最大帧率。
> TK\_MAX\_LOOP\_FPS/max\_fps最好是整数比如TK\_MAX\_LOOP\_FPS为120max\_fps可取60/30/20/10等。
* 函数原型:
```
ret_t window_manager_set_max_fps (widget_t* widget, uint32_t max_fps);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| max\_fps | uint32\_t | 最大帧率。 |
2019-10-17 14:23:01 +08:00
#### window\_manager\_set\_screen\_saver\_time 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_set_screen_saver_time">设置屏保时间。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
ret_t window_manager_set_screen_saver_time (widget_t* widget, uint32_t screen_saver_time);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
2020-06-18 21:54:25 +08:00
| screen\_saver\_time | uint32\_t | 屏保时间(单位毫秒), 为0关闭屏保。 |
2019-10-17 14:23:01 +08:00
#### window\_manager\_set\_show\_fps 函数
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="window_manager_t_window_manager_set_show_fps">设置是否显示FPS。
2019-10-17 14:23:01 +08:00
* 函数原型:
```
ret_t window_manager_set_show_fps (widget_t* widget, bool_t show_fps);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| show\_fps | bool\_t | 是否显示FPS。 |
2020-12-08 09:04:40 +08:00
#### window\_manager\_switch\_to 函数
-----------------------
* 函数功能:
> <p id="window_manager_t_window_manager_switch_to">切换到指定窗口。
* 函数原型:
```
ret_t window_manager_switch_to (widget_t* widget, widget_t* curr_win, widget_t* target_win, bool_t close);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| widget | widget\_t* | 窗口管理器对象。 |
| curr\_win | widget\_t* | 当前窗口。 |
| target\_win | widget\_t* | 目标窗口。 |
| close | bool\_t | 是否关闭当前窗口。 |
2020-10-26 11:53:50 +08:00
#### global\_emitter 属性
-----------------------
> <p id="window_manager_t_global_emitter">全局事情分发器。
* 类型emitter\_t*
| 特性 | 是否支持 |
| -------- | ----- |
| 可直接读取 | 是 |
| 可直接修改 | 否 |