mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-29 18:48:09 +08:00
update docs
This commit is contained in:
parent
d7f8657c60
commit
853238f0e2
@ -1,4 +1,8 @@
|
||||
# 最新动态
|
||||
* 2019/01/03
|
||||
* 同步SDL代码。
|
||||
* 整理API文档:timer/idle
|
||||
|
||||
* 2019/01/02
|
||||
* 整理API文档:input\_method/input\_method\_default/input\_method\_sdl/input\_method\_null
|
||||
* 整理API文档:input\_engine/input\_engine\_pinyin/input\_engine\_null
|
||||
|
11
docs/dots/idle_overview
Normal file
11
docs/dots/idle_overview
Normal file
@ -0,0 +1,11 @@
|
||||
digraph UML {
|
||||
rankdir = LR
|
||||
|
||||
fontname = "Courier New"
|
||||
fontsize = 10
|
||||
|
||||
node [ fontname = "Courier New", fontsize = 10, shape = "record" ];
|
||||
edge [ fontname = "Courier New", fontsize = 10 ];
|
||||
|
||||
idle_t -> idle_info_t[arrowhead=vee]
|
||||
}
|
11
docs/dots/timer_overview
Normal file
11
docs/dots/timer_overview
Normal file
@ -0,0 +1,11 @@
|
||||
digraph UML {
|
||||
rankdir = LR
|
||||
|
||||
fontname = "Courier New"
|
||||
fontsize = 10
|
||||
|
||||
node [ fontname = "Courier New", fontsize = 10, shape = "record" ];
|
||||
edge [ fontname = "Courier New", fontsize = 10 ];
|
||||
|
||||
timer_t -> timer_info_t[arrowhead=vee]
|
||||
}
|
BIN
docs/images/idle_overview.png
Normal file
BIN
docs/images/idle_overview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.6 KiB |
BIN
docs/images/timer_overview.png
Normal file
BIN
docs/images/timer_overview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.6 KiB |
@ -120,13 +120,26 @@
|
||||
* [input\_engine\_null](manual/input_engine_null_t.md) 空输入法引擎实现。
|
||||
* [input\_engine\_pinyin](manual/input_engine_pinyin_t.md) 拼音输入法引擎实现。
|
||||
|
||||
### 定时器/IDLE
|
||||
|
||||
![timer\_overview](images/timer_overview.png)
|
||||
|
||||
* [timer](manual/timer_t.md) 定时器。
|
||||
|
||||
* [timer\_info](manual/timer_info_t.md) 单个timer的信息。
|
||||
|
||||
![idle\_overview](images/idle_overview.png)
|
||||
|
||||
* [idle](manual/idle_t.md) 用于异步执行一些函数。
|
||||
|
||||
* [idle\_info](manual/idle_info_t.md) 单个idle的信息。
|
||||
|
||||
### 控件动画
|
||||
|
||||
### 窗口动画
|
||||
|
||||
### 布局器
|
||||
|
||||
### 定时器
|
||||
|
||||
## 二、基本函数库
|
||||
|
||||
|
76
docs/manual/idle_info_t.md
Normal file
76
docs/manual/idle_info_t.md
Normal file
@ -0,0 +1,76 @@
|
||||
## idle\_info\_t
|
||||
### 概述
|
||||
单个idle的信息。
|
||||
|
||||
### 属性
|
||||
<p id="idle_info_t_properties">
|
||||
|
||||
| 名属性称 | 类型 | 说明 |
|
||||
| -------- | ----- | ------------ |
|
||||
| <a href="#idle_info_t_ctx">ctx</a> | void* | idle回调函数上下文。 |
|
||||
| <a href="#idle_info_t_id">id</a> | uint32\_t | idle的ID |
|
||||
| <a href="#idle_info_t_on_destroy">on\_destroy</a> | tk\_destroy\_t | idle销毁时的回调函数。 |
|
||||
| <a href="#idle_info_t_on_destroy_ctx">on\_destroy\_ctx</a> | tk\_destroy\_t | idle销毁时的回调函数的上下文。 |
|
||||
| <a href="#idle_info_t_on_idle">on\_idle</a> | idle\_func\_t | idle回调函数。 |
|
||||
#### ctx 属性
|
||||
-----------------------
|
||||
> <p id="idle_info_t_ctx"> idle回调函数上下文。
|
||||
|
||||
|
||||
|
||||
* 类型:void*
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### id 属性
|
||||
-----------------------
|
||||
> <p id="idle_info_t_id"> idle的ID
|
||||
|
||||
> 为TK\_INVALID\_ID时表示无效idle。
|
||||
|
||||
|
||||
|
||||
* 类型:uint32\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### on\_destroy 属性
|
||||
-----------------------
|
||||
> <p id="idle_info_t_on_destroy"> idle销毁时的回调函数。
|
||||
|
||||
|
||||
|
||||
* 类型:tk\_destroy\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### on\_destroy\_ctx 属性
|
||||
-----------------------
|
||||
> <p id="idle_info_t_on_destroy_ctx"> idle销毁时的回调函数的上下文。
|
||||
|
||||
|
||||
|
||||
* 类型:tk\_destroy\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### on\_idle 属性
|
||||
-----------------------
|
||||
> <p id="idle_info_t_on_idle"> idle回调函数。
|
||||
|
||||
|
||||
|
||||
* 类型:idle\_func\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
@ -1,6 +1,28 @@
|
||||
## idle\_t
|
||||
### 概述
|
||||
idle函数在主循环中paint之后执行。
|
||||
|
||||
idle可以看作是duration为0的定时器,不同的是idle函数在主循环中paint之后执行。
|
||||
|
||||
> idle可以用来实现一些异步处理。
|
||||
|
||||
示例:
|
||||
|
||||
```c
|
||||
static ret_t something_on_idle(const idle_info_t* info) {
|
||||
widget_t* widget = WIDGET(info->ctx);
|
||||
edit_t* edit = EDIT(widget);
|
||||
...
|
||||
return RET_REMOVE;
|
||||
}
|
||||
|
||||
...
|
||||
|
||||
idle_add(something_on_idle, edit);
|
||||
|
||||
```
|
||||
|
||||
> 在非GUI线程请用idle\_queue。
|
||||
|
||||
|
||||
### 函数
|
||||
<p id="idle_t_methods">
|
||||
|
131
docs/manual/timer_info_t.md
Normal file
131
docs/manual/timer_info_t.md
Normal file
@ -0,0 +1,131 @@
|
||||
## timer\_info\_t
|
||||
### 概述
|
||||
单个定时器的信息。
|
||||
|
||||
### 属性
|
||||
<p id="timer_info_t_properties">
|
||||
|
||||
| 名属性称 | 类型 | 说明 |
|
||||
| -------- | ----- | ------------ |
|
||||
| <a href="#timer_info_t_ctx">ctx</a> | void* | 定时器回调函数的上下文 |
|
||||
| <a href="#timer_info_t_duration">duration</a> | uint32\_t | 时间间隔(单位为毫秒)。 |
|
||||
| <a href="#timer_info_t_id">id</a> | uint32\_t | 定时器的ID |
|
||||
| <a href="#timer_info_t_now">now</a> | uint32\_t | 当前时间(相对时间,单位为毫秒)。 |
|
||||
| <a href="#timer_info_t_on_destroy">on\_destroy</a> | tk\_destroy\_t | 定时器销毁时的回调函数。 |
|
||||
| <a href="#timer_info_t_on_destroy_ctx">on\_destroy\_ctx</a> | void* | 定时器销毁时的回调函数上下文。 |
|
||||
| <a href="#timer_info_t_on_timer">on\_timer</a> | timer\_func\_t | 定时器回调函数。 |
|
||||
| <a href="#timer_info_t_start">start</a> | uint32\_t | 起始时间(相对时间,单位为毫秒)。 |
|
||||
| <a href="#timer_info_t_user_changed_time">user\_changed\_time</a> | bool\_t | 用户是否修改了系统时间。 |
|
||||
#### ctx 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_ctx"> 定时器回调函数的上下文
|
||||
|
||||
|
||||
|
||||
* 类型:void*
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### duration 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_duration"> 时间间隔(单位为毫秒)。
|
||||
|
||||
|
||||
|
||||
|
||||
* 类型:uint32\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### id 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_id"> 定时器的ID
|
||||
|
||||
> 为TK\_INVALID\_ID时表示无效定时器。
|
||||
|
||||
|
||||
|
||||
* 类型:uint32\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### now 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_now"> 当前时间(相对时间,单位为毫秒)。
|
||||
|
||||
|
||||
|
||||
|
||||
* 类型:uint32\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### on\_destroy 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_on_destroy"> 定时器销毁时的回调函数。
|
||||
|
||||
|
||||
|
||||
* 类型:tk\_destroy\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### on\_destroy\_ctx 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_on_destroy_ctx"> 定时器销毁时的回调函数上下文。
|
||||
|
||||
|
||||
|
||||
* 类型:void*
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### on\_timer 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_on_timer"> 定时器回调函数。
|
||||
|
||||
|
||||
|
||||
* 类型:timer\_func\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### start 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_start"> 起始时间(相对时间,单位为毫秒)。
|
||||
|
||||
|
||||
|
||||
|
||||
* 类型:uint32\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
||||
#### user\_changed\_time 属性
|
||||
-----------------------
|
||||
> <p id="timer_info_t_user_changed_time"> 用户是否修改了系统时间。
|
||||
|
||||
|
||||
|
||||
* 类型:bool\_t
|
||||
|
||||
| 特性 | 是否支持 |
|
||||
| -------- | ----- |
|
||||
| 可直接读取 | 是 |
|
||||
| 可直接修改 | 否 |
|
@ -2,6 +2,24 @@
|
||||
### 概述
|
||||
定时器系统。
|
||||
|
||||
> 本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。
|
||||
|
||||
示例:
|
||||
|
||||
```c
|
||||
static ret_t my_on_timer(const timer_info_t* info) {
|
||||
widget_t* widget = WIDGET(info->ctx);
|
||||
...
|
||||
return RET_REPEAT;
|
||||
}
|
||||
|
||||
...
|
||||
|
||||
timer_add(my_on_timer, widget, 1000);
|
||||
```
|
||||
> 在非GUI线程请用timer\_queue。
|
||||
|
||||
|
||||
### 函数
|
||||
<p id="timer_t_methods">
|
||||
|
||||
@ -27,7 +45,7 @@
|
||||
* 函数原型:
|
||||
|
||||
```
|
||||
uint32_t timer_add (timer_func_t on_timer, void* ctx, uint32_t duration_ms);
|
||||
uint32_t timer_add (timer_func_t on_timer, void* ctx, uint32_t duration);
|
||||
```
|
||||
|
||||
* 参数说明:
|
||||
@ -37,7 +55,7 @@ uint32_t timer_add (timer_func_t on_timer, void* ctx, uint32_t duration_ms);
|
||||
| 返回值 | uint32\_t | 返回timer的ID,TK\_INVALID\_ID表示失败。 |
|
||||
| on\_timer | timer\_func\_t | timer回调函数。 |
|
||||
| ctx | void* | timer回调函数的上下文。 |
|
||||
| duration\_ms | uint32\_t | 时间。 |
|
||||
| duration | uint32\_t | 时间。 |
|
||||
#### timer\_count 函数
|
||||
-----------------------
|
||||
|
||||
@ -115,7 +133,7 @@ uint32_t timer_now ();
|
||||
* 函数原型:
|
||||
|
||||
```
|
||||
ret_t timer_queue (timer_func_t , void* ctx, uint32_t duration_ms);
|
||||
ret_t timer_queue (timer_func_t , void* ctx, uint32_t duration);
|
||||
```
|
||||
|
||||
* 参数说明:
|
||||
@ -125,7 +143,7 @@ ret_t timer_queue (timer_func_t , void* ctx, uint32_t duration_ms);
|
||||
| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 |
|
||||
| | timer\_func\_t | r |
|
||||
| ctx | void* | timer回调函数的上下文。 |
|
||||
| duration\_ms | uint32\_t | 时间。 |
|
||||
| duration | uint32\_t | 时间。 |
|
||||
#### timer\_remove 函数
|
||||
-----------------------
|
||||
|
||||
|
@ -10,8 +10,6 @@
|
||||
它负责控件的生命周期、通用状态、事件分发和Style的管理。
|
||||
本类提供的接口(函数和属性)除非特别说明,一般都适用于子类控件。
|
||||
|
||||
> **widget_t**是抽象类,不要直接创建**widget_t**的实例。
|
||||
|
||||
为了便于解释,这里特别说明一下几个术语:
|
||||
|
||||
* **父控件与子控件**:父控件与子控件指的两个控件的组合关系(这是在运行时决定的)。
|
||||
@ -26,6 +24,26 @@
|
||||
![image](images/widget_t_2.png)
|
||||
|
||||
|
||||
widget相关的函数都只能在GUI线程中执行,如果需在非GUI线程中想调用widget相关函数,
|
||||
请用idle\_queue或timer\_queue进行串行化。
|
||||
请参考[demo thread](https://github.com/zlgopen/awtk/blob/master/demos/demo_thread_app.c)
|
||||
|
||||
**widget\_t**是抽象类,不要直接创建**widget\_t**的实例。控件支持两种创建方式:
|
||||
|
||||
* 通过XML创建。如:
|
||||
|
||||
```xml
|
||||
<button x="c" y="m" w="80" h="30" text="OK"/>
|
||||
```
|
||||
|
||||
* 通过代码创建。如:
|
||||
|
||||
```c
|
||||
widget_t* button = button_create(win, 10, 10, 128, 30);
|
||||
widget_set_text(button, L"OK");
|
||||
widget_on(button, EVT_CLICK, on_click, NULL);
|
||||
```
|
||||
|
||||
|
||||
### 函数
|
||||
<p id="widget_t_methods">
|
||||
|
@ -107,6 +107,24 @@ uint32_t idle_manager_add(idle_manager_t* idle_manager, idle_func_t on_idle, voi
|
||||
*
|
||||
* > idle可以用来实现一些异步处理。
|
||||
*
|
||||
* 示例:
|
||||
*
|
||||
* ```c
|
||||
* static ret_t something_on_idle(const idle_info_t* info) {
|
||||
* widget_t* widget = WIDGET(info->ctx);
|
||||
* edit_t* edit = EDIT(widget);
|
||||
* ...
|
||||
* return RET_REMOVE;
|
||||
* }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* idle_add(something_on_idle, edit);
|
||||
*
|
||||
* ```
|
||||
*
|
||||
* > 在非GUI线程请用idle\_queue。
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -138,6 +138,21 @@ uint32_t timer_manager_next_time(timer_manager_t* timer_manager);
|
||||
*
|
||||
* > 本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。
|
||||
*
|
||||
* 示例:
|
||||
*
|
||||
* ```c
|
||||
* static ret_t my_on_timer(const timer_info_t* info) {
|
||||
* widget_t* widget = WIDGET(info->ctx);
|
||||
* ...
|
||||
* return RET_REPEAT;
|
||||
* }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* timer_add(my_on_timer, widget, 1000);
|
||||
* ```
|
||||
* > 在非GUI线程请用timer\_queue。
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -2510,7 +2510,7 @@
|
||||
"events": [],
|
||||
"properties": [],
|
||||
"header": "base/idle.h",
|
||||
"desc": "\n idle可以看作是duration为0的定时器,不同的是idle函数在主循环中paint之后执行。\n\n > idle可以用来实现一些异步处理。\n\n\n",
|
||||
"desc": "\n idle可以看作是duration为0的定时器,不同的是idle函数在主循环中paint之后执行。\n\n > idle可以用来实现一些异步处理。\n\n 示例:\n\n ```c\n static ret_t something_on_idle(const idle_info_t* info) {\n widget_t* widget = WIDGET(info->ctx);\n edit_t* edit = EDIT(widget);\n ...\n return RET_REMOVE;\n }\n\n ...\n\n idle_add(something_on_idle, edit);\n\n ```\n\n > 在非GUI线程请用idle\\_queue。\n\n\n",
|
||||
"name": "idle_t",
|
||||
"annotation": {
|
||||
"scriptable": true,
|
||||
@ -5585,7 +5585,7 @@
|
||||
"events": [],
|
||||
"properties": [],
|
||||
"header": "base/timer.h",
|
||||
"desc": " 定时器系统。\n\n > 本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。\n\n\n",
|
||||
"desc": " 定时器系统。\n\n > 本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。\n\n 示例:\n\n ```c\n static ret_t my_on_timer(const timer_info_t* info) {\n widget_t* widget = WIDGET(info->ctx);\n ...\n return RET_REPEAT;\n }\n\n ...\n\n timer_add(my_on_timer, widget, 1000);\n ```\n > 在非GUI线程请用timer\\_queue。\n\n\n",
|
||||
"name": "timer_t",
|
||||
"annotation": {
|
||||
"scriptable": true,
|
||||
|
Loading…
Reference in New Issue
Block a user