update docs

This commit is contained in:
xianjimli 2019-01-03 09:59:18 +08:00
parent d7f8657c60
commit 853238f0e2
14 changed files with 347 additions and 10 deletions

View File

@ -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
View 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
View 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]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -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的信息。
### 控件动画
### 窗口动画
### 布局器
### 定时器
## 二、基本函数库

View 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
| 特性 | 是否支持 |
| -------- | ----- |
| 可直接读取 | 是 |
| 可直接修改 | 否 |

View File

@ -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
View 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
| 特性 | 是否支持 |
| -------- | ----- |
| 可直接读取 | 是 |
| 可直接修改 | 否 |

View File

@ -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的IDTK\_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 函数
-----------------------

View File

@ -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">

View File

@ -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
*
*/
/**

View File

@ -138,6 +138,21 @@ uint32_t timer_manager_next_time(timer_manager_t* timer_manager);
*
* > 1000/FPSOS提供的定时器
*
*
*
* ```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
*
*/
/**

View File

@ -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,