awtk/docs/manual/widget_pool_t.md
2019-07-11 15:39:09 +08:00

202 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## widget\_pool\_t
### 概述
有时需要频繁创建和销毁控件widget pool把销毁的控件缓存起来再次使用时直接拿回来用。
* 优点:速度快,内存碎片少。
* 缺点:占用一点内存空间。
通过宏WITH\_WIDGET\_POOL来指定最大缓存控件的数量。
控件可以通过vt->enable\_pool参数决定该类控件是否启用缓存。
----------------------------------
### 函数
<p id="widget_pool_t_methods">
| 函数名称 | 说明 |
| -------- | ------------ |
| <a href="#widget_pool_t_widget_pool">widget\_pool</a> | 获取缺省widget pool对象。 |
| <a href="#widget_pool_t_widget_pool_clear_cache">widget\_pool\_clear\_cache</a> | 清除全部缓存控件。 |
| <a href="#widget_pool_t_widget_pool_count">widget\_pool\_count</a> | 计算缓存控件个数。 |
| <a href="#widget_pool_t_widget_pool_create">widget\_pool\_create</a> | 创建widget pool对象。 |
| <a href="#widget_pool_t_widget_pool_create_widget">widget\_pool\_create\_widget</a> | 创建widget对象。 |
| <a href="#widget_pool_t_widget_pool_destroy">widget\_pool\_destroy</a> | 清除全部缓存控件并销毁widget pool对象。 |
| <a href="#widget_pool_t_widget_pool_destroy_widget">widget\_pool\_destroy\_widget</a> | 销毁或回收widget对象。 |
| <a href="#widget_pool_t_widget_pool_set">widget\_pool\_set</a> | 设置缺省widget pool对象。 |
#### widget\_pool 函数
-----------------------
* 函数功能:
> <p id="widget_pool_t_widget_pool"> 获取缺省widget pool对象。
* 函数原型:
```
widget_pool_t* widget_pool ();
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | widget\_pool\_t* | 返回widget pool对象。 |
#### widget\_pool\_clear\_cache 函数
-----------------------
* 函数功能:
> <p id="widget_pool_t_widget_pool_clear_cache"> 清除全部缓存控件。
* 函数原型:
```
ret_t widget_pool_clear_cache (widget_pool_t* pool);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| pool | widget\_pool\_t* | widget pool对象。 |
#### widget\_pool\_count 函数
-----------------------
* 函数功能:
> <p id="widget_pool_t_widget_pool_count"> 计算缓存控件个数。
* 函数原型:
```
int32_t widget_pool_count (widget_pool_t* pool);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | int32\_t | 返回缓存控件个数。 |
| pool | widget\_pool\_t* | widget pool对象。 |
#### widget\_pool\_create 函数
-----------------------
* 函数功能:
> <p id="widget_pool_t_widget_pool_create"> 创建widget pool对象。
* 函数原型:
```
widget_pool_t* widget_pool_create (uint32_t max_cache_nr);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | widget\_pool\_t* | 返回widget pool对象。 |
| max\_cache\_nr | uint32\_t | 最大缓存对象个数。 |
#### widget\_pool\_create\_widget 函数
-----------------------
* 函数功能:
> <p id="widget_pool_t_widget_pool_create_widget"> 创建widget对象。
* 函数原型:
```
widget_t widget_pool_create_widget (widget_pool_t* pool, const widget_vtable_t* vt);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | widget\_t | 返回控件对象。 |
| pool | widget\_pool\_t* | widget pool对象。 |
| vt | const widget\_vtable\_t* | 控件虚表。 |
#### widget\_pool\_destroy 函数
-----------------------
* 函数功能:
> <p id="widget_pool_t_widget_pool_destroy"> 清除全部缓存控件并销毁widget pool对象。
* 函数原型:
```
ret_t widget_pool_destroy (widget_pool_t* pool);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| pool | widget\_pool\_t* | widget pool对象。 |
#### widget\_pool\_destroy\_widget 函数
-----------------------
* 函数功能:
> <p id="widget_pool_t_widget_pool_destroy_widget"> 销毁或回收widget对象。
* 函数原型:
```
ret_t widget_pool_destroy_widget (widget_pool_t* pool, widget_t* widget);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| pool | widget\_pool\_t* | widget pool对象。 |
| widget | widget\_t* | 控件对象。 |
#### widget\_pool\_set 函数
-----------------------
* 函数功能:
> <p id="widget_pool_t_widget_pool_set"> 设置缺省widget pool对象。
* 函数原型:
```
ret_t widget_pool_set (widget_pool_t* pool);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| pool | widget\_pool\_t* | widget pool对象。 |