update docs
@ -2,7 +2,37 @@
|
||||
### 概述
|
||||
![image](images/app_bar_t_0.png)
|
||||
|
||||
app_bar控件。
一个简单的容器控件,一般在窗口的顶部,用于显示本窗口的状态和信息。
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
子控件的布局可用layout\_children属性指定。
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
app\_bar\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于app\_bar\_t控件。
在xml中使用"app\_bar"标签创建app\_bar。如:
```xml
<app_bar x="0" y="0" w="100%" h="30" >
<label x="0" y="0" w="100%" h="100%" text="Basic Controls" />
</app_bar>
```
在c代码中使用函数app\_bar\_create创建app\_bar。如:
```c
widget_t* app_bar = app_bar_create(win, 0, 0, 320, 30);
```
可用通过style来设置控件的显示风格,如背景颜色等。如:
```xml
<style name="default" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" />
</style>
```
|
||||
app_bar控件。
|
||||
|
||||
一个简单的容器控件,一般在窗口的顶部,用于显示本窗口的状态和信息。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
app\_bar\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于app\_bar\_t控件。
|
||||
|
||||
在xml中使用"app\_bar"标签创建app\_bar。如:
|
||||
|
||||
```xml
|
||||
<app_bar x="0" y="0" w="100%" h="30" >
|
||||
<label x="0" y="0" w="100%" h="100%" text="Basic Controls" />
|
||||
</app_bar>
|
||||
```
|
||||
|
||||
在c代码中使用函数app\_bar\_create创建app\_bar。如:
|
||||
|
||||
```c
|
||||
widget_t* app_bar = app_bar_create(win, 0, 0, 320, 30);
|
||||
```
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
</style>
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="app_bar_t_methods">
|
||||
|
@ -9,7 +9,7 @@
|
||||
| -------- | ----- | ------------ |
|
||||
| <a href="#asset_info_t_is_in_rom">is\_in\_rom</a> | uint8\_t | 资源是否在ROM中。 |
|
||||
| <a href="#asset_info_t_name">name</a> | char* | 名称。 |
|
||||
| <a href="#asset_info_t_refcount">refcount</a> | uint32\_t | 引用计数。
is\_in\_rom == FALSE时才有效。 |
|
||||
| <a href="#asset_info_t_refcount">refcount</a> | uint32\_t | 引用计数。 |
|
||||
| <a href="#asset_info_t_size">size</a> | uint32\_t | 大小。 |
|
||||
| <a href="#asset_info_t_subtype">subtype</a> | uint8\_t | 子类型。 |
|
||||
| <a href="#asset_info_t_type">type</a> | uint16\_t | 类型。 |
|
||||
@ -37,7 +37,8 @@
|
||||
| 可脚本化 | 是 |
|
||||
#### refcount 属性
|
||||
-----------------------
|
||||
> <p id="asset_info_t_refcount">引用计数。
is\_in\_rom == FALSE时才有效。
|
||||
> <p id="asset_info_t_refcount">引用计数。
|
||||
is\_in\_rom == FALSE时才有效。
|
||||
|
||||
* 类型:uint32\_t
|
||||
|
||||
|
@ -1,6 +1,34 @@
|
||||
## assets\_manager\_t
|
||||
### 概述
|
||||
资源管理器。
这里的资源管理器并非Windows下的文件浏览器,而是负责对各种资源,比如字体、主题、图片、界面数据、字符串和其它数据的进行集中管理的组件。引入资源管理器的目的有以下几个:
* 让上层不需要了解存储的方式。
在没有文件系统时或者内存紧缺时,把资源转成常量数组直接编译到代码中。在有文件系统而且内存充足时,资源放在文件系统中。在有网络时,资源也可以存放在服务器上(暂未实现)。资源管理器为上层提供统一的接口,让上层而不用关心底层的存储方式。
* 让上层不需要了解资源的具体格式。
比如一个名为earth的图片,没有文件系统或内存紧缺,图片直接用位图数据格式存在ROM中,而有文件系统时,则用PNG格式存放在文件系统中。资源管理器让上层不需要关心图片的格式,访问时指定图片的名称即可(不用指定扩展名)。
* 让上层不需要了解屏幕的密度。
不同的屏幕密度下需要加载不同的图片,比如MacPro的Retina屏就需要用双倍解析度的图片,否则就出现界面模糊。AWTK以后会支持PC软件和手机软件的开发,所以资源管理器需要为此提供支持,让上层不需关心屏幕的密度。
* 对资源进行内存缓存。
不同类型的资源使用方式是不一样的,比如字体和主题加载之后会一直使用,UI文件在生成界面之后就暂时不需要了,PNG文件解码之后就只需要保留解码的位图数据即可。资源管理器配合图片管理器等其它组件实现资源的自动缓存。
当从文件系统加载资源时,目录结构要求如下:
```
assets/{theme}/raw/
fonts 字体
images 图片
x1 普通密度屏幕的图片。
x2 2倍密度屏幕的图片。
x3 3倍密度屏幕的图片。
xx 密度无关的图片。
strings 需要翻译的字符串。
styles 主题数据。
ui UI描述数据。
```
|
||||
资源管理器。
|
||||
这里的资源管理器并非Windows下的文件浏览器,而是负责对各种资源,比如字体、主题、图片、界面数据、字符串和其它数据的进行集中管理的组件。引入资源管理器的目的有以下几个:
|
||||
|
||||
* 让上层不需要了解存储的方式。
|
||||
在没有文件系统时或者内存紧缺时,把资源转成常量数组直接编译到代码中。在有文件系统而且内存充足时,资源放在文件系统中。在有网络时,资源也可以存放在服务器上(暂未实现)。资源管理器为上层提供统一的接口,让上层而不用关心底层的存储方式。
|
||||
|
||||
* 让上层不需要了解资源的具体格式。
|
||||
比如一个名为earth的图片,没有文件系统或内存紧缺,图片直接用位图数据格式存在ROM中,而有文件系统时,则用PNG格式存放在文件系统中。资源管理器让上层不需要关心图片的格式,访问时指定图片的名称即可(不用指定扩展名)。
|
||||
|
||||
* 让上层不需要了解屏幕的密度。
|
||||
不同的屏幕密度下需要加载不同的图片,比如MacPro的Retina屏就需要用双倍解析度的图片,否则就出现界面模糊。AWTK以后会支持PC软件和手机软件的开发,所以资源管理器需要为此提供支持,让上层不需关心屏幕的密度。
|
||||
|
||||
* 对资源进行内存缓存。
|
||||
不同类型的资源使用方式是不一样的,比如字体和主题加载之后会一直使用,UI文件在生成界面之后就暂时不需要了,PNG文件解码之后就只需要保留解码的位图数据即可。资源管理器配合图片管理器等其它组件实现资源的自动缓存。
|
||||
|
||||
当从文件系统加载资源时,目录结构要求如下:
|
||||
|
||||
```
|
||||
assets/{theme}/raw/
|
||||
fonts 字体
|
||||
images 图片
|
||||
x1 普通密度屏幕的图片。
|
||||
x2 2倍密度屏幕的图片。
|
||||
x3 3倍密度屏幕的图片。
|
||||
xx 密度无关的图片。
|
||||
strings 需要翻译的字符串。
|
||||
styles 主题数据。
|
||||
ui UI描述数据。
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="assets_manager_t_methods">
|
||||
@ -20,7 +48,7 @@
|
||||
| <a href="#assets_manager_t_assets_manager_preload">assets\_manager\_preload</a> | 从文件系统中加载指定的资源,并缓存到内存中。在定义了宏WITH\_FS\_RES时才生效。 |
|
||||
| <a href="#assets_manager_t_assets_manager_ref">assets\_manager\_ref</a> | 在资源管理器的缓存中查找指定的资源并引用它,如果缓存中不存在,尝试加载该资源。 |
|
||||
| <a href="#assets_manager_t_assets_manager_set">assets\_manager\_set</a> | 设置缺省资源管理器。 |
|
||||
| <a href="#assets_manager_t_assets_manager_set_custom_build_asset_dir">assets\_manager\_set\_custom\_build\_asset\_dir</a> | 设置一个函数,该函数用于生成资源路径。
> 有时我们需要优先加载用户自定义的资源,加载失败才加载系统缺省的,可用设置一个函数去实现这类功能。 |
|
||||
| <a href="#assets_manager_t_assets_manager_set_custom_build_asset_dir">assets\_manager\_set\_custom\_build\_asset\_dir</a> | 设置一个函数,该函数用于生成资源路径。 |
|
||||
| <a href="#assets_manager_t_assets_manager_set_locale_info">assets\_manager\_set\_locale\_info</a> | 设置locale_info对象。 |
|
||||
| <a href="#assets_manager_t_assets_manager_set_res_root">assets\_manager\_set\_res\_root</a> | 设置资源所在的目录(其下目录结构请参考demos)。 |
|
||||
| <a href="#assets_manager_t_assets_manager_set_system_info">assets\_manager\_set\_system\_info</a> | 设置system_info对象。 |
|
||||
@ -288,7 +316,9 @@ ret_t assets_manager_set (assets_manager_t* am);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="assets_manager_t_assets_manager_set_custom_build_asset_dir">设置一个函数,该函数用于生成资源路径。
> 有时我们需要优先加载用户自定义的资源,加载失败才加载系统缺省的,可用设置一个函数去实现这类功能。
|
||||
> <p id="assets_manager_t_assets_manager_set_custom_build_asset_dir">设置一个函数,该函数用于生成资源路径。
|
||||
|
||||
> 有时我们需要优先加载用户自定义的资源,加载失败才加载系统缺省的,可用设置一个函数去实现这类功能。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
| <a href="#bitmap_t_bitmap_get_line_length">bitmap\_get\_line\_length</a> | 获取每一行占用内存的字节数。 |
|
||||
| <a href="#bitmap_t_bitmap_get_pixel">bitmap\_get\_pixel</a> | 获取图片指定像素的rgba颜色值(主要用于测试程序)。 |
|
||||
| <a href="#bitmap_t_bitmap_init">bitmap\_init</a> | 初始化图片。 |
|
||||
| <a href="#bitmap_t_bitmap_init_from_rgba">bitmap\_init\_from\_rgba</a> | 初始化图片。
数据。3通道时为RGB888格式,4通道时为RGBA888格式(内部拷贝该数据,不会引用,调用者自行释放)。 |
|
||||
| <a href="#bitmap_t_bitmap_init_from_rgba">bitmap\_init\_from\_rgba</a> | 初始化图片。 |
|
||||
| <a href="#bitmap_t_bitmap_lock_buffer_for_read">bitmap\_lock\_buffer\_for\_read</a> | 为读取数据而锁定bitmap的图片缓冲区。 |
|
||||
| <a href="#bitmap_t_bitmap_lock_buffer_for_write">bitmap\_lock\_buffer\_for\_write</a> | 为修改数据而锁定bitmap的图片缓冲区。 |
|
||||
| <a href="#bitmap_t_bitmap_set_line_length">bitmap\_set\_line\_length</a> | 设置line_length。 |
|
||||
@ -178,7 +178,8 @@ ret_t bitmap_init (bitmap_t* bitmap, uint32_t w, uint32_t h, bitmap_format_t for
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="bitmap_t_bitmap_init_from_rgba">初始化图片。
数据。3通道时为RGB888格式,4通道时为RGBA888格式(内部拷贝该数据,不会引用,调用者自行释放)。
|
||||
> <p id="bitmap_t_bitmap_init_from_rgba">初始化图片。
|
||||
数据。3通道时为RGB888格式,4通道时为RGBA888格式(内部拷贝该数据,不会引用,调用者自行释放)。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,32 @@
|
||||
### 概述
|
||||
![image](images/button_group_t_0.png)
|
||||
|
||||
Button Group控件。一个简单的容器控件,用于容纳一组按钮控件。
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
子控件的布局可用layout\_children属性指定。
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
button\_group\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于button\_group\_t控件。
在xml中使用"button\_group"标签创建button\_group。如:
```xml
<button_group x="0" y="m" w="100%" h="40" children_layout="default(c=4,r=1,s=5,m=5)">
<button name="open:basic" text="Basic"/>
<button name="open:button" text="Buttons"/>
<button name="open:edit" text="Edits"/>
<button name="open:keyboard" text="KeyBoard"/>
</button_group>
```
可用通过style来设置控件的显示风格,如背景颜色等。如:
```xml
<style name="default" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" />
</style>
```
|
||||
Button Group控件。一个简单的容器控件,用于容纳一组按钮控件。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
button\_group\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于button\_group\_t控件。
|
||||
|
||||
在xml中使用"button\_group"标签创建button\_group。如:
|
||||
|
||||
```xml
|
||||
<button_group x="0" y="m" w="100%" h="40" children_layout="default(c=4,r=1,s=5,m=5)">
|
||||
<button name="open:basic" text="Basic"/>
|
||||
<button name="open:button" text="Buttons"/>
|
||||
<button name="open:edit" text="Edits"/>
|
||||
<button name="open:keyboard" text="KeyBoard"/>
|
||||
</button_group>
|
||||
```
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
</style>
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="button_group_t_methods">
|
||||
|
@ -2,7 +2,50 @@
|
||||
### 概述
|
||||
![image](images/button_t_0.png)
|
||||
|
||||
按钮控件。
点击按钮之后会触发EVT\_CLICK事件,注册EVT\_CLICK事件以执行特定操作。
按钮控件也可以作为容器使用,使用图片和文本作为其子控件,可以实现很多有趣的效果。
button\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于button\_t控件。
在xml中使用"button"标签创建按钮控件。如:
```xml
<button x="c" y="m" w="80" h="30" text="OK"/>
```
> 更多用法请参考:
[button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/button.xml)
在c代码中使用函数button\_create创建按钮控件。如:
```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);
```
> 创建之后,需要用widget\_set\_text或widget\_set\_text\_utf8设置文本内容。
> 完整示例请参考:
[button demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/button.c)
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
```xml
<style name="default" border_color="#a0a0a0" text_color="black">
<normal bg_color="#f0f0f0" />
<pressed bg_color="#c0c0c0" x_offset="1" y_offset="1"/>
<over bg_color="#e0e0e0" />
<disable bg_color="gray" text_color="#d0d0d0" />
</style>
```
> 更多用法请参考:
[theme
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L31)
|
||||
按钮控件。
|
||||
|
||||
点击按钮之后会触发EVT\_CLICK事件,注册EVT\_CLICK事件以执行特定操作。
|
||||
|
||||
按钮控件也可以作为容器使用,使用图片和文本作为其子控件,可以实现很多有趣的效果。
|
||||
|
||||
button\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于button\_t控件。
|
||||
|
||||
在xml中使用"button"标签创建按钮控件。如:
|
||||
|
||||
```xml
|
||||
<button x="c" y="m" w="80" h="30" text="OK"/>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/button.xml)
|
||||
|
||||
在c代码中使用函数button\_create创建按钮控件。如:
|
||||
|
||||
```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);
|
||||
```
|
||||
|
||||
> 创建之后,需要用widget\_set\_text或widget\_set\_text\_utf8设置文本内容。
|
||||
|
||||
> 完整示例请参考:
|
||||
[button demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/button.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0" text_color="black">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
<pressed bg_color="#c0c0c0" x_offset="1" y_offset="1"/>
|
||||
<over bg_color="#e0e0e0" />
|
||||
<disable bg_color="gray" text_color="#d0d0d0" />
|
||||
</style>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[theme
|
||||
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L31)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="button_t_methods">
|
||||
@ -18,8 +61,8 @@
|
||||
|
||||
| 属性名称 | 类型 | 说明 |
|
||||
| -------- | ----- | ------------ |
|
||||
| <a href="#button_t_enable_long_press">enable\_long\_press</a> | bool\_t | 是否启用长按事件,为true时才触发长按事件。
触发长按事件后不再触发点击事件。
缺省不启用。 |
|
||||
| <a href="#button_t_repeat">repeat</a> | int32\_t | 重复触发EVT\_CLICK事件的时间间隔。
为0则不重复触发EVT\_CLICK事件。 |
|
||||
| <a href="#button_t_enable_long_press">enable\_long\_press</a> | bool\_t | 是否启用长按事件,为true时才触发长按事件。 |
|
||||
| <a href="#button_t_repeat">repeat</a> | int32\_t | 重复触发EVT\_CLICK事件的时间间隔。 |
|
||||
### 事件
|
||||
<p id="button_t_events">
|
||||
|
||||
@ -111,7 +154,10 @@ ret_t button_set_repeat (widget_t* widget, int32_t repeat);
|
||||
| repeat | int32\_t | 触发EVT\_CLICK事件的时间间隔(毫秒)。 |
|
||||
#### enable\_long\_press 属性
|
||||
-----------------------
|
||||
> <p id="button_t_enable_long_press">是否启用长按事件,为true时才触发长按事件。
触发长按事件后不再触发点击事件。
缺省不启用。
|
||||
> <p id="button_t_enable_long_press">是否启用长按事件,为true时才触发长按事件。
|
||||
|
||||
触发长按事件后不再触发点击事件。
|
||||
缺省不启用。
|
||||
|
||||
* 类型:bool\_t
|
||||
|
||||
@ -127,7 +173,9 @@ ret_t button_set_repeat (widget_t* widget, int32_t repeat);
|
||||
| 可通过widget\_set\_prop修改 | 是 |
|
||||
#### repeat 属性
|
||||
-----------------------
|
||||
> <p id="button_t_repeat">重复触发EVT\_CLICK事件的时间间隔。
为0则不重复触发EVT\_CLICK事件。
|
||||
> <p id="button_t_repeat">重复触发EVT\_CLICK事件的时间间隔。
|
||||
|
||||
为0则不重复触发EVT\_CLICK事件。
|
||||
|
||||
* 类型:int32\_t
|
||||
|
||||
|
@ -2,7 +2,28 @@
|
||||
### 概述
|
||||
![image](images/calibration_win_t_0.png)
|
||||
|
||||
电阻屏校准窗口。
calibration\_win\_t是[window\_base\_t](window_base_t.md)的子类控件,
window\_base\_t的函数均适用于calibration\_win\_t控件。
在xml中使用"calibration\_win"标签创建电阻屏校准窗口。如:
```xml
<calibration_win name="cali" w="100%" h="100%" text="Please click the center of cross">
</calibration_win>
```
> 更多用法请参考:
[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/calibration_win.xml)
在c代码中使用函数calibration\_win\_create创建窗口。如:
```c
widget_t* win = calibration_win_create(NULL, 0, 0, 320, 480);
```
通过calibration\_win\_set\_on\_done注册回调函数,用于保存校准数据。
|
||||
电阻屏校准窗口。
|
||||
|
||||
calibration\_win\_t是[window\_base\_t](window_base_t.md)的子类控件,
|
||||
window\_base\_t的函数均适用于calibration\_win\_t控件。
|
||||
|
||||
在xml中使用"calibration\_win"标签创建电阻屏校准窗口。如:
|
||||
|
||||
```xml
|
||||
<calibration_win name="cali" w="100%" h="100%" text="Please click the center of cross">
|
||||
</calibration_win>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/calibration_win.xml)
|
||||
|
||||
在c代码中使用函数calibration\_win\_create创建窗口。如:
|
||||
|
||||
```c
|
||||
widget_t* win = calibration_win_create(NULL, 0, 0, 320, 480);
|
||||
```
|
||||
|
||||
通过calibration\_win\_set\_on\_done注册回调函数,用于保存校准数据。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="calibration_win_t_methods">
|
||||
|
@ -15,8 +15,8 @@
|
||||
| <a href="#canvas_t_canvas_draw_points">canvas\_draw\_points</a> | 画多个点。 |
|
||||
| <a href="#canvas_t_canvas_draw_text">canvas\_draw\_text</a> | 绘制文本。 |
|
||||
| <a href="#canvas_t_canvas_draw_text_in_rect">canvas\_draw\_text\_in\_rect</a> | 绘制文本。 |
|
||||
| <a href="#canvas_t_canvas_draw_utf8">canvas\_draw\_utf8</a> | 绘制文本。
> 供脚本语言使用。 |
|
||||
| <a href="#canvas_t_canvas_draw_utf8_in_rect">canvas\_draw\_utf8\_in\_rect</a> | 绘制文本。
> 供脚本语言使用。 |
|
||||
| <a href="#canvas_t_canvas_draw_utf8">canvas\_draw\_utf8</a> | 绘制文本。 |
|
||||
| <a href="#canvas_t_canvas_draw_utf8_in_rect">canvas\_draw\_utf8\_in\_rect</a> | 绘制文本。 |
|
||||
| <a href="#canvas_t_canvas_draw_vline">canvas\_draw\_vline</a> | 画垂直线。 |
|
||||
| <a href="#canvas_t_canvas_fill_rect">canvas\_fill\_rect</a> | 填充矩形。 |
|
||||
| <a href="#canvas_t_canvas_get_clip_rect">canvas\_get\_clip\_rect</a> | 获取裁剪区。 |
|
||||
@ -25,19 +25,19 @@
|
||||
| <a href="#canvas_t_canvas_get_width">canvas\_get\_width</a> | 获取画布的宽度。 |
|
||||
| <a href="#canvas_t_canvas_init">canvas\_init</a> | 初始化,系统内部调用。 |
|
||||
| <a href="#canvas_t_canvas_measure_text">canvas\_measure\_text</a> | 计算文本所占的宽度。 |
|
||||
| <a href="#canvas_t_canvas_measure_utf8">canvas\_measure\_utf8</a> | 计算文本所占的宽度。
> 供脚本语言使用。 |
|
||||
| <a href="#canvas_t_canvas_measure_utf8">canvas\_measure\_utf8</a> | 计算文本所占的宽度。 |
|
||||
| <a href="#canvas_t_canvas_reset">canvas\_reset</a> | 释放相关资源。 |
|
||||
| <a href="#canvas_t_canvas_set_clip_rect">canvas\_set\_clip\_rect</a> | 设置裁剪区。 |
|
||||
| <a href="#canvas_t_canvas_set_clip_rect_ex">canvas\_set\_clip\_rect\_ex</a> | 设置裁剪区。 |
|
||||
| <a href="#canvas_t_canvas_set_fill_color">canvas\_set\_fill\_color</a> | 设置填充颜色。 |
|
||||
| <a href="#canvas_t_canvas_set_fill_color_str">canvas\_set\_fill\_color\_str</a> | 设置填充颜色。
> 供脚本语言使用。 |
|
||||
| <a href="#canvas_t_canvas_set_fill_color_str">canvas\_set\_fill\_color\_str</a> | 设置填充颜色。 |
|
||||
| <a href="#canvas_t_canvas_set_font">canvas\_set\_font</a> | 设置字体。 |
|
||||
| <a href="#canvas_t_canvas_set_global_alpha">canvas\_set\_global\_alpha</a> | 设置全局alpha值。 |
|
||||
| <a href="#canvas_t_canvas_set_stroke_color">canvas\_set\_stroke\_color</a> | 设置线条颜色。 |
|
||||
| <a href="#canvas_t_canvas_set_stroke_color_str">canvas\_set\_stroke\_color\_str</a> | 设置线条颜色。
> 供脚本语言使用。 |
|
||||
| <a href="#canvas_t_canvas_set_stroke_color_str">canvas\_set\_stroke\_color\_str</a> | 设置线条颜色。 |
|
||||
| <a href="#canvas_t_canvas_set_text_align">canvas\_set\_text\_align</a> | 设置文本对齐方式。 |
|
||||
| <a href="#canvas_t_canvas_set_text_color">canvas\_set\_text\_color</a> | 设置文本颜色。 |
|
||||
| <a href="#canvas_t_canvas_set_text_color_str">canvas\_set\_text\_color\_str</a> | 设置文本颜色。
> 供脚本语言使用。 |
|
||||
| <a href="#canvas_t_canvas_set_text_color_str">canvas\_set\_text\_color\_str</a> | 设置文本颜色。 |
|
||||
| <a href="#canvas_t_canvas_stroke_rect">canvas\_stroke\_rect</a> | 绘制矩形。 |
|
||||
| <a href="#canvas_t_canvas_translate">canvas\_translate</a> | 平移原点坐标。 |
|
||||
| <a href="#canvas_t_canvas_untranslate">canvas\_untranslate</a> | 反向平移原点坐标。 |
|
||||
@ -241,7 +241,9 @@ ret_t canvas_draw_text_in_rect (canvas_t* c, const wchar_t* str, uint32_t nr, co
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="canvas_t_canvas_draw_utf8">绘制文本。
> 供脚本语言使用。
|
||||
> <p id="canvas_t_canvas_draw_utf8">绘制文本。
|
||||
|
||||
> 供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -263,7 +265,9 @@ ret_t canvas_draw_utf8 (canvas_t* c, const char* str, xy_t x, xy_t y);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="canvas_t_canvas_draw_utf8_in_rect">绘制文本。
> 供脚本语言使用。
|
||||
> <p id="canvas_t_canvas_draw_utf8_in_rect">绘制文本。
|
||||
|
||||
> 供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -448,7 +452,9 @@ float_t canvas_measure_text (canvas_t* c, const wchar_t* str, uint32_t nr);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="canvas_t_canvas_measure_utf8">计算文本所占的宽度。
> 供脚本语言使用。
|
||||
> <p id="canvas_t_canvas_measure_utf8">计算文本所占的宽度。
|
||||
|
||||
> 供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -548,7 +554,9 @@ ret_t canvas_set_fill_color (canvas_t* c, color_t color);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="canvas_t_canvas_set_fill_color_str">设置填充颜色。
> 供脚本语言使用。
|
||||
> <p id="canvas_t_canvas_set_fill_color_str">设置填充颜色。
|
||||
|
||||
> 供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -629,7 +637,9 @@ ret_t canvas_set_stroke_color (canvas_t* c, color_t color);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="canvas_t_canvas_set_stroke_color_str">设置线条颜色。
> 供脚本语言使用。
|
||||
> <p id="canvas_t_canvas_set_stroke_color_str">设置线条颜色。
|
||||
|
||||
> 供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -690,7 +700,9 @@ ret_t canvas_set_text_color (canvas_t* c, color_t color);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="canvas_t_canvas_set_text_color_str">设置文本颜色。
> 供脚本语言使用。
|
||||
> <p id="canvas_t_canvas_set_text_color_str">设置文本颜色。
|
||||
|
||||
> 供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,65 @@
|
||||
### 概述
|
||||
![image](images/canvas_widget_t_0.png)
|
||||
|
||||
画布控件。
画布控件让开发者可以自己在控件上绘制需要的内容。
canvas\_widget\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于canvas\_widget\_t控件。
在xml中使用"canvas"标签创建画布控件。如:
```xml
<canvas name="paint_vgcanvas" x="0" y="0" w="100%" h="100%" />
```
> 更多用法请参考:
[canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/vgcanvas.xml)
在c代码中使用函数canvas\_widget\_create创建画布控件。如:
```c
widget_t* canvas = canvas_widget_create(win, 0, 0, win->w, win->h);
```
> 创建之后,需要用widget\_on注册EVT\_PAINT事件,并在EVT\_PAINT事件处理函数中绘制。
```c
widget_on(canvas, EVT_PAINT, on_paint_event, canvas);
```
绘制时,可以通过canvas接口去绘制,也可以通过vgcanvas接口去绘制。
先从evt获取canvas对象,再通过canvas\_get\_vgcanvas从canvas中获取vgcanvas对象。
```c
static ret_t on_paint_event(void* ctx, event_t* evt) {
widget_t* canvas_widget = WIDGET(ctx);
canvas_t* c = paint_event_cast(evt)->c;
vgcanvas_t* vg = canvas_get_vgcanvas(c);
color_t bg = color_init(0xe0, 0xe0, 0xe0, 0xff);
color_t tc = color_init(0, 0, 0, 0xff);
rect_t r = rect_init(canvas_widget->x, canvas_widget->y, canvas_widget->w, canvas_widget->h);
vgcanvas_save(vg);
vgcanvas_clip_rect(vg, r.x, r.y, r.w, r.h);
vgcanvas_translate(vg, r.x, r.y);
...
vgcanvas_restore(vg);
return RET_OK;
}
```
> 完整示例请参考:
[canvas demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/canvas.c)
参考:
* [canvas接口描述](canvas_t.md)
* [vgcanvas接口描述](vgcanvas_t.md)
|
||||
画布控件。
|
||||
|
||||
画布控件让开发者可以自己在控件上绘制需要的内容。
|
||||
|
||||
canvas\_widget\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于canvas\_widget\_t控件。
|
||||
|
||||
在xml中使用"canvas"标签创建画布控件。如:
|
||||
|
||||
```xml
|
||||
<canvas name="paint_vgcanvas" x="0" y="0" w="100%" h="100%" />
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/vgcanvas.xml)
|
||||
|
||||
在c代码中使用函数canvas\_widget\_create创建画布控件。如:
|
||||
|
||||
```c
|
||||
widget_t* canvas = canvas_widget_create(win, 0, 0, win->w, win->h);
|
||||
```
|
||||
|
||||
> 创建之后,需要用widget\_on注册EVT\_PAINT事件,并在EVT\_PAINT事件处理函数中绘制。
|
||||
|
||||
```c
|
||||
widget_on(canvas, EVT_PAINT, on_paint_event, canvas);
|
||||
```
|
||||
|
||||
绘制时,可以通过canvas接口去绘制,也可以通过vgcanvas接口去绘制。
|
||||
先从evt获取canvas对象,再通过canvas\_get\_vgcanvas从canvas中获取vgcanvas对象。
|
||||
|
||||
```c
|
||||
|
||||
static ret_t on_paint_event(void* ctx, event_t* evt) {
|
||||
widget_t* canvas_widget = WIDGET(ctx);
|
||||
canvas_t* c = paint_event_cast(evt)->c;
|
||||
vgcanvas_t* vg = canvas_get_vgcanvas(c);
|
||||
color_t bg = color_init(0xe0, 0xe0, 0xe0, 0xff);
|
||||
color_t tc = color_init(0, 0, 0, 0xff);
|
||||
rect_t r = rect_init(canvas_widget->x, canvas_widget->y, canvas_widget->w, canvas_widget->h);
|
||||
|
||||
vgcanvas_save(vg);
|
||||
vgcanvas_clip_rect(vg, r.x, r.y, r.w, r.h);
|
||||
vgcanvas_translate(vg, r.x, r.y);
|
||||
|
||||
...
|
||||
|
||||
vgcanvas_restore(vg);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
```
|
||||
|
||||
> 完整示例请参考:
|
||||
[canvas demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/canvas.c)
|
||||
|
||||
参考:
|
||||
|
||||
* [canvas接口描述](canvas_t.md)
|
||||
* [vgcanvas接口描述](vgcanvas_t.md)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="canvas_widget_t_methods">
|
||||
|
@ -2,7 +2,60 @@
|
||||
### 概述
|
||||
![image](images/check_button_t_0.png)
|
||||
|
||||
勾选按钮控件(单选/多选)。
check\_button\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于check\_button\_t控件。
在xml中使用"check_button"标签创建多选按钮控件。如:
```xml
<check_button name="c1" text="Book"/>
```
在xml中使用"radio_button"标签创建单选按钮控件。如:
```xml
<radio_button name="r1" text="Book"/>
```
> 更多用法请参考:
[button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml)
在c代码中使用函数check\_button\_create创建多选按钮控件。如:
```c
widget_t* button = check_button_create(win, x, y, w, h);
widget_set_text(button, L"OK");
widget_on(button, EVT_VALUE_CHANGED, on_changed, NULL);
```
在c代码中使用函数check\_button\_create\_radio创建单选按钮控件。如:
```c
widget_t* button = check_button_create_radio(win, x, y, w, h);
widget_set_text(button, L"OK");
widget_on(button, EVT_VALUE_CHANGED, on_changed, NULL);
```
> 完整示例请参考:
[button demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/check_button.c)
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
```xml
<style name="default" icon_at="left">
<normal icon="unchecked" />
<pressed icon="unchecked" />
<over icon="unchecked" text_color="green"/>
<normal_of_checked icon="checked" text_color="blue"/>
<pressed_of_checked icon="checked" text_color="blue"/>
<over_of_checked icon="checked" text_color="green"/>
</style>
```
> 更多用法请参考:
[theme
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L227)
|
||||
勾选按钮控件(单选/多选)。
|
||||
|
||||
check\_button\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于check\_button\_t控件。
|
||||
|
||||
在xml中使用"check_button"标签创建多选按钮控件。如:
|
||||
|
||||
```xml
|
||||
<check_button name="c1" text="Book"/>
|
||||
```
|
||||
|
||||
在xml中使用"radio_button"标签创建单选按钮控件。如:
|
||||
|
||||
```xml
|
||||
<radio_button name="r1" text="Book"/>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml)
|
||||
|
||||
在c代码中使用函数check\_button\_create创建多选按钮控件。如:
|
||||
|
||||
```c
|
||||
widget_t* button = check_button_create(win, x, y, w, h);
|
||||
widget_set_text(button, L"OK");
|
||||
widget_on(button, EVT_VALUE_CHANGED, on_changed, NULL);
|
||||
```
|
||||
|
||||
在c代码中使用函数check\_button\_create\_radio创建单选按钮控件。如:
|
||||
|
||||
```c
|
||||
widget_t* button = check_button_create_radio(win, x, y, w, h);
|
||||
widget_set_text(button, L"OK");
|
||||
widget_on(button, EVT_VALUE_CHANGED, on_changed, NULL);
|
||||
```
|
||||
|
||||
> 完整示例请参考:
|
||||
[button demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/check_button.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" icon_at="left">
|
||||
<normal icon="unchecked" />
|
||||
<pressed icon="unchecked" />
|
||||
<over icon="unchecked" text_color="green"/>
|
||||
<normal_of_checked icon="checked" text_color="blue"/>
|
||||
<pressed_of_checked icon="checked" text_color="blue"/>
|
||||
<over_of_checked icon="checked" text_color="green"/>
|
||||
</style>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[theme
|
||||
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L227)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="check_button_t_methods">
|
||||
|
@ -2,7 +2,10 @@
|
||||
### 概述
|
||||
![image](images/children_layouter_default_t_0.png)
|
||||
|
||||
缺省的子控件布局算法实现。
> 用法请参考:[缺省子控件布局算法](
https://github.com/zlgopen/awtk/blob/master/docs/children_layouter_default.md)
|
||||
缺省的子控件布局算法实现。
|
||||
|
||||
> 用法请参考:[缺省子控件布局算法](
|
||||
https://github.com/zlgopen/awtk/blob/master/docs/children_layouter_default.md)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="children_layouter_default_t_methods">
|
||||
|
@ -2,7 +2,10 @@
|
||||
### 概述
|
||||
![image](images/children_layouter_list_view_t_0.png)
|
||||
|
||||
listview的子控件布局算法实现。
> 用法请参考:[listview子控件布局算法](
https://github.com/zlgopen/awtk/blob/master/docs/children_layouter_list_view.md)
|
||||
listview的子控件布局算法实现。
|
||||
|
||||
> 用法请参考:[listview子控件布局算法](
|
||||
https://github.com/zlgopen/awtk/blob/master/docs/children_layouter_list_view.md)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="children_layouter_list_view_t_methods">
|
||||
|
@ -1,6 +1,8 @@
|
||||
## children\_layouter\_t
|
||||
### 概述
|
||||
子控件排版布局器的接口。
按特定算法对子控件进行排版布局,子类需要实现vtable中的函数。
|
||||
子控件排版布局器的接口。
|
||||
|
||||
按特定算法对子控件进行排版布局,子类需要实现vtable中的函数。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="children_layouter_t_methods">
|
||||
|
79
docs/manual/clip_view_t.md
Normal file
@ -0,0 +1,79 @@
|
||||
## clip\_view\_t
|
||||
### 概述
|
||||
![image](images/clip_view_t_0.png)
|
||||
|
||||
一个裁剪子控件的容器控件。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
clip\_view\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于clip\_view\_t控件。
|
||||
|
||||
在xml中使用"clip_view"标签创建clip_view,在clip_view控件下的所有子控件都会被裁剪。如下button控件会被裁剪,无法画出clip_view控件 :
|
||||
|
||||
```xml
|
||||
<clip_view x="0" y="0" w="100" h="100">
|
||||
<button x="50" y="10" w="100" h="50" />
|
||||
</clip_view>
|
||||
```
|
||||
|
||||
备注:在clip_view控件下的所有子控件都会被裁剪,如果子控件本身会设置裁剪区的话,在子控件中计算裁剪区的交集,具体请参考scroll_view控件的scroll_view_on_paint_children函数。
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
</style>
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="clip_view_t_methods">
|
||||
|
||||
| 函数名称 | 说明 |
|
||||
| -------- | ------------ |
|
||||
| <a href="#clip_view_t_clip_view_cast">clip\_view\_cast</a> | 转换为clip_view对象(供脚本语言使用)。 |
|
||||
| <a href="#clip_view_t_clip_view_create">clip\_view\_create</a> | 创建clip_view对象 |
|
||||
#### clip\_view\_cast 函数
|
||||
-----------------------
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="clip_view_t_clip_view_cast">转换为clip_view对象(供脚本语言使用)。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
```
|
||||
widget_t* clip_view_cast (widget_t* widget);
|
||||
```
|
||||
|
||||
* 参数说明:
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| -------- | ----- | --------- |
|
||||
| 返回值 | widget\_t* | clip\_view对象。 |
|
||||
| widget | widget\_t* | clip\_view对象。 |
|
||||
#### clip\_view\_create 函数
|
||||
-----------------------
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="clip_view_t_clip_view_create">创建clip_view对象
|
||||
|
||||
* 函数原型:
|
||||
|
||||
```
|
||||
widget_t* clip_view_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
|
||||
```
|
||||
|
||||
* 参数说明:
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| -------- | ----- | --------- |
|
||||
| 返回值 | widget\_t* | 对象。 |
|
||||
| parent | widget\_t* | 父控件 |
|
||||
| x | xy\_t | x坐标 |
|
||||
| y | xy\_t | y坐标 |
|
||||
| w | wh\_t | 宽度 |
|
||||
| h | wh\_t | 高度 |
|
@ -2,7 +2,10 @@
|
||||
### 概述
|
||||
![image](images/color_component_t_0.png)
|
||||
|
||||
颜色选择器的颜色分量。
控件的名称有严格规定:
COLOR_PICKER_CHILD_SV: 水平为Value/Brightness(递增),垂直为Saturation(递减)。
COLOR_PICKER_CHILD_H: 水平为同色,垂直为Hue(递减)。
|
||||
颜色选择器的颜色分量。
|
||||
控件的名称有严格规定:
|
||||
COLOR_PICKER_CHILD_SV: 水平为Value/Brightness(递增),垂直为Saturation(递减)。
|
||||
COLOR_PICKER_CHILD_H: 水平为同色,垂直为Hue(递减)。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="color_component_t_methods">
|
||||
|
@ -1,19 +1,36 @@
|
||||
## color\_parser\_t
|
||||
### 概述
|
||||
颜色解析相关函数。
示例:
```c
color_t c;
c = color_parse("#112233");
c = color_parse("white");
c = color_parse("rgb(11,22,33)");
c = color_parse("rgba(11,22,33,0.5)");
```
|
||||
颜色解析相关函数。
|
||||
|
||||
示例:
|
||||
|
||||
```c
|
||||
color_t c;
|
||||
c = color_parse("#112233");
|
||||
c = color_parse("white");
|
||||
c = color_parse("rgb(11,22,33)");
|
||||
c = color_parse("rgba(11,22,33,0.5)");
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="color_parser_t_methods">
|
||||
|
||||
| 函数名称 | 说明 |
|
||||
| -------- | ------------ |
|
||||
| <a href="#color_parser_t_color_parse">color\_parse</a> | 把字符串格式的颜色转换成color\_t对象。
目前支持下列格式:
* 16进制格式。如:"#112233"
* 颜色名称格式。如:"green"
* rgb格式。如:"rgb(11,22,33)"
* rgba格式。如:"rgba(11,22,33,0.5)" |
|
||||
| <a href="#color_parser_t_color_parse">color\_parse</a> | 把字符串格式的颜色转换成color\_t对象。 |
|
||||
#### color\_parse 函数
|
||||
-----------------------
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_parser_t_color_parse">把字符串格式的颜色转换成color\_t对象。
目前支持下列格式:
* 16进制格式。如:"#112233"
* 颜色名称格式。如:"green"
* rgb格式。如:"rgb(11,22,33)"
* rgba格式。如:"rgba(11,22,33,0.5)"
|
||||
> <p id="color_parser_t_color_parse">把字符串格式的颜色转换成color\_t对象。
|
||||
|
||||
目前支持下列格式:
|
||||
|
||||
* 16进制格式。如:"#112233"
|
||||
* 颜色名称格式。如:"green"
|
||||
* rgb格式。如:"rgb(11,22,33)"
|
||||
* rgba格式。如:"rgba(11,22,33,0.5)"
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,35 @@
|
||||
### 概述
|
||||
![image](images/color_picker_t_0.png)
|
||||
|
||||
颜色选择器。
color\_picker\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于color\_picker\_t控件。
在xml中使用"color\_picker"标签创建颜色选择器控件。如:
```xml
<color_picker x="0" y="0" w="100%" h="100%" value="orange">
<color_component x="0" y="0" w="200" h="200" name="sv"/>
<color_component x="210" y="0" w="20" h="200" name="h"/>
<color_tile x="0" y="210" w="50%" h="20" name="new" bg_color="green"/>
<color_tile x="right" y="210" w="50%" h="20" name="old" bg_color="blue"/>
</color_picker>
```
> 更多用法请参考:
[color\_picker](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker.xml)
其中的子控件必须按下列规则命名:
* r 红色分量。可以是spin_box、edit和slider。
* g 绿色分量。可以是spin_box、edit和slider。
* b 蓝色分量。可以是spin_box、edit和slider。
* h Hue分量。可以是spin_box、edit、slider和color_component。
* s Saturation分量。可以是spin_box、edit和slider。
* v Value/Brightness分量。可以是spin_box、edit和slider。
* sv Saturation和Value/Brightness分量。可以是color_component。
* old 旧的值。可以是spin_box、edit和color_tile。
* new 新的值。可以是spin_box、edit和color_tile。
|
||||
颜色选择器。
|
||||
|
||||
color\_picker\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于color\_picker\_t控件。
|
||||
|
||||
在xml中使用"color\_picker"标签创建颜色选择器控件。如:
|
||||
|
||||
```xml
|
||||
<color_picker x="0" y="0" w="100%" h="100%" value="orange">
|
||||
<color_component x="0" y="0" w="200" h="200" name="sv"/>
|
||||
<color_component x="210" y="0" w="20" h="200" name="h"/>
|
||||
<color_tile x="0" y="210" w="50%" h="20" name="new" bg_color="green"/>
|
||||
<color_tile x="right" y="210" w="50%" h="20" name="old" bg_color="blue"/>
|
||||
</color_picker>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[color\_picker](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker.xml)
|
||||
|
||||
其中的子控件必须按下列规则命名:
|
||||
|
||||
* r 红色分量。可以是spin_box、edit和slider。
|
||||
* g 绿色分量。可以是spin_box、edit和slider。
|
||||
* b 蓝色分量。可以是spin_box、edit和slider。
|
||||
* h Hue分量。可以是spin_box、edit、slider和color_component。
|
||||
* s Saturation分量。可以是spin_box、edit和slider。
|
||||
* v Value/Brightness分量。可以是spin_box、edit和slider。
|
||||
* sv Saturation和Value/Brightness分量。可以是color_component。
|
||||
* old 旧的值。可以是spin_box、edit和color_tile。
|
||||
* new 新的值。可以是spin_box、edit和color_tile。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="color_picker_t_methods">
|
||||
|
@ -7,15 +7,15 @@
|
||||
|
||||
| 函数名称 | 说明 |
|
||||
| -------- | ------------ |
|
||||
| <a href="#color_t_color_a">color\_a</a> | 获取alpha通道的值。
> 主要供脚本语言使用。 |
|
||||
| <a href="#color_t_color_b">color\_b</a> | 获取蓝色通道的值。
> 主要供脚本语言使用。 |
|
||||
| <a href="#color_t_color_cast">color\_cast</a> | 转换为color对象。
> 供脚本语言使用。 |
|
||||
| <a href="#color_t_color_create">color\_create</a> | 创建color对象。
> 主要供脚本语言使用。 |
|
||||
| <a href="#color_t_color_destroy">color\_destroy</a> | 销毁color对象。
> 主要供脚本语言使用。 |
|
||||
| <a href="#color_t_color_from_str">color\_from\_str</a> | 创建color对象。
> 主要供脚本语言使用。 |
|
||||
| <a href="#color_t_color_g">color\_g</a> | 获取绿色通道的值。
> 主要供脚本语言使用。 |
|
||||
| <a href="#color_t_color_a">color\_a</a> | 获取alpha通道的值。 |
|
||||
| <a href="#color_t_color_b">color\_b</a> | 获取蓝色通道的值。 |
|
||||
| <a href="#color_t_color_cast">color\_cast</a> | 转换为color对象。 |
|
||||
| <a href="#color_t_color_create">color\_create</a> | 创建color对象。 |
|
||||
| <a href="#color_t_color_destroy">color\_destroy</a> | 销毁color对象。 |
|
||||
| <a href="#color_t_color_from_str">color\_from\_str</a> | 创建color对象。 |
|
||||
| <a href="#color_t_color_g">color\_g</a> | 获取绿色通道的值。 |
|
||||
| <a href="#color_t_color_init">color\_init</a> | 初始化颜色对象。 |
|
||||
| <a href="#color_t_color_r">color\_r</a> | 获取红色通道的值。
> 主要供脚本语言使用。 |
|
||||
| <a href="#color_t_color_r">color\_r</a> | 获取红色通道的值。 |
|
||||
### 属性
|
||||
<p id="color_t_properties">
|
||||
|
||||
@ -28,7 +28,9 @@
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_t_color_a">获取alpha通道的值。
> 主要供脚本语言使用。
|
||||
> <p id="color_t_color_a">获取alpha通道的值。
|
||||
|
||||
> 主要供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -47,7 +49,9 @@ uint8_t color_a (color_t* c);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_t_color_b">获取蓝色通道的值。
> 主要供脚本语言使用。
|
||||
> <p id="color_t_color_b">获取蓝色通道的值。
|
||||
|
||||
> 主要供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -66,7 +70,9 @@ uint8_t color_b (color_t* c);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_t_color_cast">转换为color对象。
> 供脚本语言使用。
|
||||
> <p id="color_t_color_cast">转换为color对象。
|
||||
|
||||
> 供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -85,7 +91,9 @@ color_t* color_cast (color_t* color);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_t_color_create">创建color对象。
> 主要供脚本语言使用。
|
||||
> <p id="color_t_color_create">创建color对象。
|
||||
|
||||
> 主要供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -107,7 +115,8 @@ color_t* color_create (uint8_t r, uint8_t b, uint8_t g, uint8_t a);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_t_color_destroy">销毁color对象。
> 主要供脚本语言使用。
|
||||
> <p id="color_t_color_destroy">销毁color对象。
|
||||
> 主要供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -126,7 +135,9 @@ ret_t color_destroy (color_t* c);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_t_color_from_str">创建color对象。
> 主要供脚本语言使用。
|
||||
> <p id="color_t_color_from_str">创建color对象。
|
||||
|
||||
> 主要供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -146,7 +157,9 @@ color_t* color_from_str (color_t* c, const char* str);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_t_color_g">获取绿色通道的值。
> 主要供脚本语言使用。
|
||||
> <p id="color_t_color_g">获取绿色通道的值。
|
||||
|
||||
> 主要供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -187,7 +200,9 @@ color_t color_init (uint8_t r, uint8_t g, uint8_t b, uint8_t a);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="color_t_color_r">获取红色通道的值。
> 主要供脚本语言使用。
|
||||
> <p id="color_t_color_r">获取红色通道的值。
|
||||
|
||||
> 主要供脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,30 @@
|
||||
### 概述
|
||||
![image](images/color_tile_t_0.png)
|
||||
|
||||
色块控件。
用来显示一个颜色块,它通过属性而不是主题来设置颜色,方便在运行时动态改变颜色。
可以使用value属性访问背景颜色的颜色值。
color\_tile\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于color\_tile\_t控件。
在xml中使用"color_tile"标签创建色块控件。如:
```xml
<color_tile x="c" y="m" w="80" h="30" bg_color="green" />
```
> 更多用法请参考:
[color_tile](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker_rgb.xml)
在c代码中使用函数color_tile\_create创建色块控件。如:
```c
widget_t* color_tile = color_tile_create(win, 10, 10, 128, 30);
color_tile_set_bg_color(color_tile, "red");
```
> 创建之后,用color\_tile\_set\_bg\_color设置背景颜色。
|
||||
色块控件。
|
||||
|
||||
用来显示一个颜色块,它通过属性而不是主题来设置颜色,方便在运行时动态改变颜色。
|
||||
|
||||
可以使用value属性访问背景颜色的颜色值。
|
||||
|
||||
color\_tile\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于color\_tile\_t控件。
|
||||
|
||||
在xml中使用"color_tile"标签创建色块控件。如:
|
||||
|
||||
```xml
|
||||
<color_tile x="c" y="m" w="80" h="30" bg_color="green" />
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[color_tile](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker_rgb.xml)
|
||||
|
||||
在c代码中使用函数color_tile\_create创建色块控件。如:
|
||||
|
||||
```c
|
||||
widget_t* color_tile = color_tile_create(win, 10, 10, 128, 30);
|
||||
color_tile_set_bg_color(color_tile, "red");
|
||||
```
|
||||
> 创建之后,用color\_tile\_set\_bg\_color设置背景颜色。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="color_tile_t_methods">
|
||||
|
@ -2,7 +2,32 @@
|
||||
### 概述
|
||||
![image](images/column_t_0.png)
|
||||
|
||||
column。一个简单的容器控件,垂直排列其子控件。
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
子控件的布局可用layout\_children属性指定。
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
column\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于column\_t控件。
在xml中使用"column"标签创建column。如:
```xml
<column x="0" y="0" w="100%" h="100%" children_layout="default(c=1,r=0)">
<button name="open:basic" text="Basic"/>
<button name="open:button" text="Buttons"/>
<button name="open:edit" text="Edits"/>
<button name="open:keyboard" text="KeyBoard"/>
</column>
```
可用通过style来设置控件的显示风格,如背景颜色等。如:
```xml
<style name="default" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" />
</style>
```
|
||||
column。一个简单的容器控件,垂直排列其子控件。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
column\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于column\_t控件。
|
||||
|
||||
在xml中使用"column"标签创建column。如:
|
||||
|
||||
```xml
|
||||
<column x="0" y="0" w="100%" h="100%" children_layout="default(c=1,r=0)">
|
||||
<button name="open:basic" text="Basic"/>
|
||||
<button name="open:button" text="Buttons"/>
|
||||
<button name="open:edit" text="Edits"/>
|
||||
<button name="open:keyboard" text="KeyBoard"/>
|
||||
</column>
|
||||
```
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
</style>
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="column_t_methods">
|
||||
|
@ -2,7 +2,9 @@
|
||||
### 概述
|
||||
![image](images/combo_box_item_t_0.png)
|
||||
|
||||
ComboBox Item控件。
本类仅供combo\_box控件内部使用。
|
||||
ComboBox Item控件。
|
||||
|
||||
本类仅供combo\_box控件内部使用。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="combo_box_item_t_methods">
|
||||
|
@ -2,7 +2,116 @@
|
||||
### 概述
|
||||
![image](images/combo_box_t_0.png)
|
||||
|
||||
下拉列表控件。
点击右边的按钮,可弹出一个下拉列表,从中选择一项作为当前的值。
combo\_box\_t是[edit\_t](edit_t.md)的子类控件,edit\_t的函数均适用于combo\_box\_t控件。
在xml中使用"combo_box"标签创建下拉列表控件。
列表选项可以直接写在"options"属性中。如:
```xml
<combo_box readonly="true" x="10" y="bottom:5" w="200" h="30" tr_text="ok"
options="1:ok;2:cancel;"/>
```
列表选项也可以放在独立的窗口中,用属性"open_window"指定窗口的名称。如:
```xml
<combo_box open_window="language" readonly="true" x="10" y="bottom:50" w="200" h="30"
tr_text="english"/>
```
language.xml:
```xml
<popup close_when_click_outside="true" h="80" >
<list_view x="0" y="0" w="100%" h="100%" item_height="30">
<scroll_view name="view" x="0" y="0" w="-12" h="100%">
<combo_box_item tr_text="english"/>
<combo_box_item tr_text="chinese" />
</scroll_view>
<scroll_bar_d name="bar" x="right" y="0" w="12" h="100%" value="0"/>
</list_view>
</popup>
```
> 更多用法请参考:[combo_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/combo_box.xml)
如果在文本比较长时,希望在获得焦点时文本自动滚动,可以放入一个hscroll_label为子控件,并命名为"value"。如:
```xml
<combo_box left_margin="6" readonly="true" x="10" y="50" w="80" h="30" options="leftttttttttt;centerrrrrrrrrrrrrrrr;rightttttttttt;"
selected_index="1">
<hscroll_label x="0" y="0" w="-30" h="100%"
name="value"
lull="1000"
loop="true"
yoyo="true"
ellipses="true"
only_parent_focus="true"/>
<button style="combobox_down" x="right:5" y="middle" w="20" h="20"/>
</combo_box>
```
在c代码中使用函数combo\_box\_create创建下拉列表控件。如:
```c
widget_t* combo_box = combo_box_create(win, 10, 10, 128, 30);
combo_box_set_options(combo_box, "left;center;right;");
combo_box_set_selected_index(combo_box, 1);
```
创建之后:
* 用combo\_box\_set\_options设置可选项目。
* 用combo\_box\_set\_selected\_index设置缺省项。
> 完整示例请参考:[combo_box
demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/combo_box.c)
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
```xml
<combo_box>
<style name="default" border_color="#a0a0a0" text_color="black" text_align_h="left">
<normal bg_color="#f0f0f0" />
<focused bg_color="#f0f0f0" border_color="black"/>
<empty bg_color="#f0f0f0" text_color="#a0a0a0" />
</style>
</combo_box>
```
* 1.combobox的下拉按钮的style名称为combobox_down,可以在主题文件中设置。
```xml
<button>
<style name="combobox_down" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" icon="arrow_down_n"/>
<pressed bg_color="#c0c0c0" icon="arrow_down_p"/>
<over bg_color="#e0e0e0" icon="arrow_down_o"/>
</style>
</button>
```
* 2.combobox的弹出popup窗口的style名称为combobox_popup,可以在主题文件中设置。
```xml
<popup>
<style name="combobox_popup" border_color="red">
<normal bg_color="#808080"/>
</style>
</popup>
```
> 更多用法请参考:[theme
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L422)
|
||||
下拉列表控件。
|
||||
|
||||
点击右边的按钮,可弹出一个下拉列表,从中选择一项作为当前的值。
|
||||
|
||||
combo\_box\_t是[edit\_t](edit_t.md)的子类控件,edit\_t的函数均适用于combo\_box\_t控件。
|
||||
|
||||
在xml中使用"combo_box"标签创建下拉列表控件。
|
||||
|
||||
列表选项可以直接写在"options"属性中。如:
|
||||
|
||||
```xml
|
||||
<combo_box readonly="true" x="10" y="bottom:5" w="200" h="30" tr_text="ok"
|
||||
options="1:ok;2:cancel;"/>
|
||||
```
|
||||
|
||||
列表选项也可以放在独立的窗口中,用属性"open_window"指定窗口的名称。如:
|
||||
|
||||
```xml
|
||||
<combo_box open_window="language" readonly="true" x="10" y="bottom:50" w="200" h="30"
|
||||
tr_text="english"/>
|
||||
```
|
||||
|
||||
language.xml:
|
||||
|
||||
```xml
|
||||
<popup close_when_click_outside="true" h="80" >
|
||||
<list_view x="0" y="0" w="100%" h="100%" item_height="30">
|
||||
<scroll_view name="view" x="0" y="0" w="-12" h="100%">
|
||||
<combo_box_item tr_text="english"/>
|
||||
<combo_box_item tr_text="chinese" />
|
||||
</scroll_view>
|
||||
<scroll_bar_d name="bar" x="right" y="0" w="12" h="100%" value="0"/>
|
||||
</list_view>
|
||||
</popup>
|
||||
```
|
||||
|
||||
> 更多用法请参考:[combo_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/combo_box.xml)
|
||||
|
||||
|
||||
|
||||
如果在文本比较长时,希望在获得焦点时文本自动滚动,可以放入一个hscroll_label为子控件,并命名为"value"。如:
|
||||
|
||||
```xml
|
||||
<combo_box left_margin="6" readonly="true" x="10" y="50" w="80" h="30" options="leftttttttttt;centerrrrrrrrrrrrrrrr;rightttttttttt;"
|
||||
selected_index="1">
|
||||
<hscroll_label x="0" y="0" w="-30" h="100%"
|
||||
name="value"
|
||||
lull="1000"
|
||||
loop="true"
|
||||
yoyo="true"
|
||||
ellipses="true"
|
||||
only_parent_focus="true"/>
|
||||
<button style="combobox_down" x="right:5" y="middle" w="20" h="20"/>
|
||||
</combo_box>
|
||||
```
|
||||
|
||||
在c代码中使用函数combo\_box\_create创建下拉列表控件。如:
|
||||
|
||||
```c
|
||||
widget_t* combo_box = combo_box_create(win, 10, 10, 128, 30);
|
||||
|
||||
combo_box_set_options(combo_box, "left;center;right;");
|
||||
combo_box_set_selected_index(combo_box, 1);
|
||||
|
||||
```
|
||||
|
||||
创建之后:
|
||||
|
||||
* 用combo\_box\_set\_options设置可选项目。
|
||||
* 用combo\_box\_set\_selected\_index设置缺省项。
|
||||
|
||||
> 完整示例请参考:[combo_box
|
||||
demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/combo_box.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
|
||||
|
||||
```xml
|
||||
<combo_box>
|
||||
<style name="default" border_color="#a0a0a0" text_color="black" text_align_h="left">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
<focused bg_color="#f0f0f0" border_color="black"/>
|
||||
<empty bg_color="#f0f0f0" text_color="#a0a0a0" />
|
||||
</style>
|
||||
</combo_box>
|
||||
```
|
||||
|
||||
* 1.combobox的下拉按钮的style名称为combobox_down,可以在主题文件中设置。
|
||||
|
||||
```xml
|
||||
<button>
|
||||
<style name="combobox_down" border_color="#a0a0a0">
|
||||
<normal bg_color="#f0f0f0" icon="arrow_down_n"/>
|
||||
<pressed bg_color="#c0c0c0" icon="arrow_down_p"/>
|
||||
<over bg_color="#e0e0e0" icon="arrow_down_o"/>
|
||||
</style>
|
||||
</button>
|
||||
```
|
||||
|
||||
* 2.combobox的弹出popup窗口的style名称为combobox_popup,可以在主题文件中设置。
|
||||
|
||||
```xml
|
||||
<popup>
|
||||
<style name="combobox_popup" border_color="red">
|
||||
<normal bg_color="#808080"/>
|
||||
</style>
|
||||
</popup>
|
||||
```
|
||||
|
||||
> 更多用法请参考:[theme
|
||||
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L422)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="combo_box_t_methods">
|
||||
|
@ -1,6 +1,23 @@
|
||||
## darray\_t
|
||||
### 概述
|
||||
动态数组,根据元素个数动态调整数组的容量。
用darray\_init初始化时,用darray\_deinit释放。如:
```c
darray_t darray;
darray_init(&darray, 10, destroy, compare);
...
darray_deinit(&darray);
```
用darray\_create创建时,用darray\_destroy销毁。如:
```c
darray_t* darray = darray_create(10, destroy, compare);
...
darray_destroy(darray);
```
|
||||
动态数组,根据元素个数动态调整数组的容量。
|
||||
|
||||
用darray\_init初始化时,用darray\_deinit释放。如:
|
||||
|
||||
```c
|
||||
darray_t darray;
|
||||
darray_init(&darray, 10, destroy, compare);
|
||||
...
|
||||
darray_deinit(&darray);
|
||||
```
|
||||
|
||||
用darray\_create创建时,用darray\_destroy销毁。如:
|
||||
|
||||
```c
|
||||
darray_t* darray = darray_create(10, destroy, compare);
|
||||
...
|
||||
darray_destroy(darray);
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="darray_t_methods">
|
||||
@ -13,7 +30,7 @@
|
||||
| <a href="#darray_t_darray_deinit">darray\_deinit</a> | 清除全部元素,并释放elms。 |
|
||||
| <a href="#darray_t_darray_destroy">darray\_destroy</a> | 销毁darray对象。 |
|
||||
| <a href="#darray_t_darray_find">darray\_find</a> | 查找第一个满足条件的元素。 |
|
||||
| <a href="#darray_t_darray_find_all">darray\_find\_all</a> | 查找全部满足条件的元素。
```
darray_t matched;
darray_init(&matched, 0, NULL, NULL);
darray_find_all(darray, mycmp, myctx, &matched);
...
darray_deinit(&matched);
``` |
|
||||
| <a href="#darray_t_darray_find_all">darray\_find\_all</a> | 查找全部满足条件的元素。 |
|
||||
| <a href="#darray_t_darray_find_index">darray\_find\_index</a> | 查找第一个满足条件的元素,并返回位置。 |
|
||||
| <a href="#darray_t_darray_foreach">darray\_foreach</a> | 遍历元素。 |
|
||||
| <a href="#darray_t_darray_head">darray\_head</a> | 返回第一个元素。 |
|
||||
@ -158,7 +175,16 @@ void* darray_find (darray_t* darray, void* ctx);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="darray_t_darray_find_all">查找全部满足条件的元素。
```
darray_t matched;
darray_init(&matched, 0, NULL, NULL);
darray_find_all(darray, mycmp, myctx, &matched);
...
darray_deinit(&matched);
```
|
||||
> <p id="darray_t_darray_find_all">查找全部满足条件的元素。
|
||||
|
||||
```
|
||||
darray_t matched;
|
||||
darray_init(&matched, 0, NULL, NULL);
|
||||
darray_find_all(darray, mycmp, myctx, &matched);
|
||||
...
|
||||
darray_deinit(&matched);
|
||||
|
||||
```
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
## date\_time\_t
|
||||
### 概述
|
||||
日期时间。
> 在嵌入式平台中,在系统初始时,需要调用date\_time\_global\_init设置实际获取/设置系统时间的函数。
|
||||
日期时间。
|
||||
|
||||
> 在嵌入式平台中,在系统初始时,需要调用date\_time\_global\_init设置实际获取/设置系统时间的函数。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="date_time_t_methods">
|
||||
@ -9,7 +11,7 @@
|
||||
| -------- | ------------ |
|
||||
| <a href="#date_time_t_date_time_create">date\_time\_create</a> | 创建date_time对象,并初始为当前日期和时间(一般供脚本语言中使用)。 |
|
||||
| <a href="#date_time_t_date_time_destroy">date\_time\_destroy</a> | 销毁date_time对象(一般供脚本语言中使用)。 |
|
||||
| <a href="#date_time_t_date_time_global_init">date\_time\_global\_init</a> | 时间日期全局初始化。
> 嵌入式平台需要提供并设置获取当前日期和时间的函数,否则相关的功能(如时钟控件)将无法正常工作。 |
|
||||
| <a href="#date_time_t_date_time_global_init">date\_time\_global\_init</a> | 时间日期全局初始化。 |
|
||||
| <a href="#date_time_t_date_time_init">date\_time\_init</a> | 初始为当前日期和时间。 |
|
||||
| <a href="#date_time_t_date_time_set">date\_time\_set</a> | 设置当前时间。 |
|
||||
### 属性
|
||||
@ -66,7 +68,9 @@ ret_t date_time_destroy (date_time_t* dt);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="date_time_t_date_time_global_init">时间日期全局初始化。
> 嵌入式平台需要提供并设置获取当前日期和时间的函数,否则相关的功能(如时钟控件)将无法正常工作。
|
||||
> <p id="date_time_t_date_time_global_init">时间日期全局初始化。
|
||||
|
||||
> 嵌入式平台需要提供并设置获取当前日期和时间的函数,否则相关的功能(如时钟控件)将无法正常工作。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,28 @@
|
||||
### 概述
|
||||
![image](images/dialog_client_t_0.png)
|
||||
|
||||
对话框客户区控件。
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
子控件的布局可用layout\_children属性指定。
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
dialog\_client\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于dialog\_client\_t控件。
在xml中使用"dialog\_client"标签创建dialog\_client。如:
```xml
<dialog anim_hint="center_scale(duration=300)" x="c" y="m" w="80%" h="160" text="Dialog">
<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" />
<dialog_client x="0" y="bottom" w="100%" h="-30">
<label name="" x="center" y="middle:-20" w="200" h="30" text="Are you ready?"/>
<button name="quit" x="10" y="bottom:10" w="40%" h="30" text="确定"/>
<button name="quit" x="right:10" y="bottom:10" w="40%" h="30" text="取消"/>
</dialog_client>
</dialog>
```
在c代码中,用dialog\_create\_simple创建对话框时,自动创建dialog客户区对象。
|
||||
对话框客户区控件。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
dialog\_client\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于dialog\_client\_t控件。
|
||||
|
||||
在xml中使用"dialog\_client"标签创建dialog\_client。如:
|
||||
|
||||
```xml
|
||||
<dialog anim_hint="center_scale(duration=300)" x="c" y="m" w="80%" h="160" text="Dialog">
|
||||
<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" />
|
||||
<dialog_client x="0" y="bottom" w="100%" h="-30">
|
||||
<label name="" x="center" y="middle:-20" w="200" h="30" text="Are you ready?"/>
|
||||
<button name="quit" x="10" y="bottom:10" w="40%" h="30" text="确定"/>
|
||||
<button name="quit" x="right:10" y="bottom:10" w="40%" h="30" text="取消"/>
|
||||
</dialog_client>
|
||||
</dialog>
|
||||
```
|
||||
|
||||
在c代码中,用dialog\_create\_simple创建对话框时,自动创建dialog客户区对象。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="dialog_client_t_methods">
|
||||
|
@ -1,6 +1,9 @@
|
||||
## dialog\_highlighter\_default\_t
|
||||
### 概述
|
||||
缺省对话框高亮策略。
>本策略在背景上画一层半透明的蒙版来高亮(突出)对话框本身。
>对于性能不高的平台,建议将start\_alpha和end\_alpha设为相同。
|
||||
缺省对话框高亮策略。
|
||||
|
||||
>本策略在背景上画一层半透明的蒙版来高亮(突出)对话框本身。
|
||||
>对于性能不高的平台,建议将start\_alpha和end\_alpha设为相同。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="dialog_highlighter_default_t_methods">
|
||||
|
@ -1,13 +1,15 @@
|
||||
## dialog\_highlighter\_t
|
||||
### 概述
|
||||
对话框高亮策略。
> 高亮策略的基本思路是对背景进行处理,比如将背景变暗或变模糊。
|
||||
对话框高亮策略。
|
||||
|
||||
> 高亮策略的基本思路是对背景进行处理,比如将背景变暗或变模糊。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="dialog_highlighter_t_methods">
|
||||
|
||||
| 函数名称 | 说明 |
|
||||
| -------- | ------------ |
|
||||
| <a href="#dialog_highlighter_t_dialog_highlighter_create">dialog\_highlighter\_create</a> | 创建对话框高亮策略对象。
>供子类构造函数用。 |
|
||||
| <a href="#dialog_highlighter_t_dialog_highlighter_create">dialog\_highlighter\_create</a> | 创建对话框高亮策略对象。 |
|
||||
| <a href="#dialog_highlighter_t_dialog_highlighter_destroy">dialog\_highlighter\_destroy</a> | 销毁对话框高亮策略对象。 |
|
||||
| <a href="#dialog_highlighter_t_dialog_highlighter_draw">dialog\_highlighter\_draw</a> | 绘制背景。 |
|
||||
| <a href="#dialog_highlighter_t_dialog_highlighter_is_dynamic">dialog\_highlighter\_is\_dynamic</a> | 是否是动态绘制(方便外层优化)。 |
|
||||
@ -26,7 +28,9 @@
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="dialog_highlighter_t_dialog_highlighter_create">创建对话框高亮策略对象。
>供子类构造函数用。
|
||||
> <p id="dialog_highlighter_t_dialog_highlighter_create">创建对话框高亮策略对象。
|
||||
|
||||
>供子类构造函数用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
## dialog\_highlighter\_type\_t
|
||||
### 概述
|
||||
@type string
内置的对话框高亮策略。### 常量
|
||||
@type string
|
||||
内置的对话框高亮策略。### 常量
|
||||
<p id="dialog_highlighter_type_t_consts">
|
||||
|
||||
| 名称 | 说明 |
|
||||
|
@ -1,6 +1,8 @@
|
||||
## dialog\_quit\_code\_t
|
||||
### 概述
|
||||
对话框退出码。
> 一般用作dialog_quit函数的参数。### 常量
|
||||
对话框退出码。
|
||||
|
||||
> 一般用作dialog_quit函数的参数。### 常量
|
||||
<p id="dialog_quit_code_t_consts">
|
||||
|
||||
| 名称 | 说明 |
|
||||
|
@ -2,8 +2,100 @@
|
||||
### 概述
|
||||
![image](images/dialog_t_0.png)
|
||||
|
||||
对话框。 对话框是一种特殊的窗口,大小和位置可以自由设置。
AWTK中的对话框可以是模态的,也可以是非模态的。
如果dialog有透明或半透效果则不支持窗口动画。
> 由于浏览器中无法实现主循环嵌套,因此无法实现模态对话框。
如果希望自己写的AWTK应用程序可以在浏览器(包括各种小程序)中运行或演示,
请避免使用模态对话框。
对话框通常由对话框标题和对话框客户区两部分组成:
![image](images/dialog_t_1.png)
|
||||
dialog\_t是[window\_base\_t](window_base_t.md)的子类控件,window\_base\_t的函数均适用于dialog\_t控件。
在xml中使用"dialog"标签创建对话框。如:
```xml
<dialog anim_hint="center_scale(duration=300)" x="c" y="m" w="80%" h="160" text="Dialog">
<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" />
<dialog_client x="0" y="bottom" w="100%" h="-30">
<label name="" x="center" y="middle:-20" w="200" h="30" text="Are you ready?"/>
<button name="quit" x="10" y="bottom:10" w="40%" h="30" text="确定"/>
<button name="quit" x="right:10" y="bottom:10" w="40%" h="30" text="取消"/>
</dialog_client>
</dialog>
```
如果你不需要对话框的标题,可以这样写:
```xml
<dialog anim_hint="center_scale(duration=300)" x="c" y="m" w="80%" h="160" text="Dialog">
<label name="" x="center" y="middle:-20" w="200" h="30" text="Are you ready?"/>
<button name="quit" x="10" y="bottom:10" w="40%" h="30" text="确定"/>
<button name="quit" x="right:10" y="bottom:10" w="40%" h="30" text="取消"/>
</dialog>
```
打开非模态对话框时,其用法与普通窗口一样。打开非模态对话框时,还需要调用dialog\_modal。
```c
widget_t* dlg = dialog_open(name);
ret = dialog_modal(dlg);
```
关闭模态对话框用dialog\_quit
```c
static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {
widget_t* win = widget_get_window(WIDGET(evt->target));
int code = (char*)ctx - (char*)NULL;
dialog_quit(win, code);
return RET_OK;
}
```
关闭非模态对话框用window\_close。
```c
static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {
widget_t* win = widget_get_window(WIDGET(evt->target));
int code = (char*)ctx - (char*)NULL;
window_close(win);
return RET_OK;
}
```
> 更多用法请参考:
[dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)
> 完整C代码示例请参考:
* [非模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog.c)
* [模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog_modal.c)
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
```xml
<style name="default">
<normal border_color="#606060" />
</style>
```
> 更多用法请参考:
[theme default]
(https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L324)
|
||||
对话框。 对话框是一种特殊的窗口,大小和位置可以自由设置。
|
||||
|
||||
AWTK中的对话框可以是模态的,也可以是非模态的。
|
||||
|
||||
如果dialog有透明或半透效果则不支持窗口动画。
|
||||
|
||||
> 由于浏览器中无法实现主循环嵌套,因此无法实现模态对话框。
|
||||
如果希望自己写的AWTK应用程序可以在浏览器(包括各种小程序)中运行或演示,
|
||||
请避免使用模态对话框。
|
||||
|
||||
对话框通常由对话框标题和对话框客户区两部分组成:
|
||||
|
||||
![image](images/dialog_t_1.png)
|
||||
|
||||
|
||||
dialog\_t是[window\_base\_t](window_base_t.md)的子类控件,window\_base\_t的函数均适用于dialog\_t控件。
|
||||
|
||||
在xml中使用"dialog"标签创建对话框。如:
|
||||
|
||||
```xml
|
||||
<dialog anim_hint="center_scale(duration=300)" x="c" y="m" w="80%" h="160" text="Dialog">
|
||||
<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" />
|
||||
<dialog_client x="0" y="bottom" w="100%" h="-30">
|
||||
<label name="" x="center" y="middle:-20" w="200" h="30" text="Are you ready?"/>
|
||||
<button name="quit" x="10" y="bottom:10" w="40%" h="30" text="确定"/>
|
||||
<button name="quit" x="right:10" y="bottom:10" w="40%" h="30" text="取消"/>
|
||||
</dialog_client>
|
||||
</dialog>
|
||||
```
|
||||
|
||||
如果你不需要对话框的标题,可以这样写:
|
||||
|
||||
```xml
|
||||
<dialog anim_hint="center_scale(duration=300)" x="c" y="m" w="80%" h="160" text="Dialog">
|
||||
<label name="" x="center" y="middle:-20" w="200" h="30" text="Are you ready?"/>
|
||||
<button name="quit" x="10" y="bottom:10" w="40%" h="30" text="确定"/>
|
||||
<button name="quit" x="right:10" y="bottom:10" w="40%" h="30" text="取消"/>
|
||||
</dialog>
|
||||
```
|
||||
|
||||
打开非模态对话框时,其用法与普通窗口一样。打开非模态对话框时,还需要调用dialog\_modal。
|
||||
|
||||
```c
|
||||
widget_t* dlg = dialog_open(name);
|
||||
|
||||
ret = dialog_modal(dlg);
|
||||
```
|
||||
|
||||
关闭模态对话框用dialog\_quit
|
||||
|
||||
```c
|
||||
static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {
|
||||
widget_t* win = widget_get_window(WIDGET(evt->target));
|
||||
int code = (char*)ctx - (char*)NULL;
|
||||
|
||||
dialog_quit(win, code);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
```
|
||||
|
||||
关闭非模态对话框用window\_close。
|
||||
|
||||
```c
|
||||
static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {
|
||||
widget_t* win = widget_get_window(WIDGET(evt->target));
|
||||
int code = (char*)ctx - (char*)NULL;
|
||||
|
||||
window_close(win);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)
|
||||
|
||||
> 完整C代码示例请参考:
|
||||
|
||||
* [非模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog.c)
|
||||
|
||||
* [模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog_modal.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
|
||||
|
||||
```xml
|
||||
<style name="default">
|
||||
<normal border_color="#606060" />
|
||||
</style>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[theme default]
|
||||
(https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L324)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="dialog_t_methods">
|
||||
@ -11,26 +103,26 @@
|
||||
| 函数名称 | 说明 |
|
||||
| -------- | ------------ |
|
||||
| <a href="#dialog_t_dialog_cast">dialog\_cast</a> | 转换dialog对象(供脚本语言使用)。 |
|
||||
| <a href="#dialog_t_dialog_confirm">dialog\_confirm</a> | 显示『确认』对话框。
主题由dialog_confirm.xml文件决定。 |
|
||||
| <a href="#dialog_t_dialog_confirm">dialog\_confirm</a> | 显示『确认』对话框。 |
|
||||
| <a href="#dialog_t_dialog_create">dialog\_create</a> | 创建dialog对象。 |
|
||||
| <a href="#dialog_t_dialog_create_simple">dialog\_create\_simple</a> | 创建dialog对象,同时创建title/client。 |
|
||||
| <a href="#dialog_t_dialog_get_client">dialog\_get\_client</a> | 获取client控件。 |
|
||||
| <a href="#dialog_t_dialog_get_title">dialog\_get\_title</a> | 获取title控件。 |
|
||||
| <a href="#dialog_t_dialog_info">dialog\_info</a> | 显示『提示信息』对话框。
主题由dialog_info.xml文件决定。 |
|
||||
| <a href="#dialog_t_dialog_info">dialog\_info</a> | 显示『提示信息』对话框。 |
|
||||
| <a href="#dialog_t_dialog_is_modal">dialog\_is\_modal</a> | 检查对话框是否为模态对话框。 |
|
||||
| <a href="#dialog_t_dialog_is_quited">dialog\_is\_quited</a> | 检查对话框是否已经退出模态。 |
|
||||
| <a href="#dialog_t_dialog_modal">dialog\_modal</a> | 模态显示对话框。
dialog_modal返回后,dialog对象将在下一个idle函数中回收。
也就是在dialog_modal调用完成后仍然可以访问dialog中控件,直到本次事件结束。 |
|
||||
| <a href="#dialog_t_dialog_open">dialog\_open</a> | 从资源文件中加载并创建Dialog对象。
本函数在ui\_loader/ui\_builder_default里实现。 |
|
||||
| <a href="#dialog_t_dialog_quit">dialog\_quit</a> | 退出模态显示,关闭对话框。
> 比如,在对话框中关闭按钮的事件处理函数中,调用本函数关闭对话框。 |
|
||||
| <a href="#dialog_t_dialog_modal">dialog\_modal</a> | 模态显示对话框。 |
|
||||
| <a href="#dialog_t_dialog_open">dialog\_open</a> | 从资源文件中加载并创建Dialog对象。 |
|
||||
| <a href="#dialog_t_dialog_quit">dialog\_quit</a> | 退出模态显示,关闭对话框。 |
|
||||
| <a href="#dialog_t_dialog_set_title">dialog\_set\_title</a> | 设置对话框的标题文本。 |
|
||||
| <a href="#dialog_t_dialog_toast">dialog\_toast</a> | 显示『短暂提示信息』对话框。
主题由dialog_toast.xml文件决定。 |
|
||||
| <a href="#dialog_t_dialog_warn">dialog\_warn</a> | 显示『警告』对话框。
主题由dialog_warn.xml文件决定。 |
|
||||
| <a href="#dialog_t_dialog_toast">dialog\_toast</a> | 显示『短暂提示信息』对话框。 |
|
||||
| <a href="#dialog_t_dialog_warn">dialog\_warn</a> | 显示『警告』对话框。 |
|
||||
### 属性
|
||||
<p id="dialog_t_properties">
|
||||
|
||||
| 属性名称 | 类型 | 说明 |
|
||||
| -------- | ----- | ------------ |
|
||||
| <a href="#dialog_t_highlight">highlight</a> | const char* | 对话框高亮策略。
> 请参考 [对话框高亮策略](https://github.com/zlgopen/awtk/blob/master/docs/dialog_highlight.md) |
|
||||
| <a href="#dialog_t_highlight">highlight</a> | const char* | 对话框高亮策略。 |
|
||||
#### dialog\_cast 函数
|
||||
-----------------------
|
||||
|
||||
@ -55,7 +147,9 @@ widget_t* dialog_cast (widget_t* widget);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="dialog_t_dialog_confirm">显示『确认』对话框。
主题由dialog_confirm.xml文件决定。
|
||||
> <p id="dialog_t_dialog_confirm">显示『确认』对话框。
|
||||
|
||||
主题由dialog_confirm.xml文件决定。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -159,7 +253,9 @@ widget_t* dialog_get_title (widget_t* widget);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="dialog_t_dialog_info">显示『提示信息』对话框。
主题由dialog_info.xml文件决定。
|
||||
> <p id="dialog_t_dialog_info">显示『提示信息』对话框。
|
||||
|
||||
主题由dialog_info.xml文件决定。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -217,26 +313,30 @@ bool_t dialog_is_quited (widget_t* widget);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="dialog_t_dialog_modal">模态显示对话框。
dialog_modal返回后,dialog对象将在下一个idle函数中回收。
也就是在dialog_modal调用完成后仍然可以访问dialog中控件,直到本次事件结束。
|
||||
> <p id="dialog_t_dialog_modal">模态显示对话框。
|
||||
dialog_modal返回后,dialog对象将在下一个idle函数中回收。
|
||||
也就是在dialog_modal调用完成后仍然可以访问dialog中控件,直到本次事件结束。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
```
|
||||
ret_t dialog_modal (widget_t* widget);
|
||||
dialog_quit_code_t dialog_modal (widget_t* widget);
|
||||
```
|
||||
|
||||
* 参数说明:
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| -------- | ----- | --------- |
|
||||
| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 |
|
||||
| 返回值 | dialog\_quit\_code\_t | 返回退出吗。 |
|
||||
| widget | widget\_t* | dialog对象。 |
|
||||
#### dialog\_open 函数
|
||||
-----------------------
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="dialog_t_dialog_open">从资源文件中加载并创建Dialog对象。
本函数在ui\_loader/ui\_builder_default里实现。
|
||||
> <p id="dialog_t_dialog_open">从资源文件中加载并创建Dialog对象。
|
||||
|
||||
本函数在ui\_loader/ui\_builder_default里实现。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -255,7 +355,9 @@ widget_t* dialog_open (const char* name);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="dialog_t_dialog_quit">退出模态显示,关闭对话框。
> 比如,在对话框中关闭按钮的事件处理函数中,调用本函数关闭对话框。
|
||||
> <p id="dialog_t_dialog_quit">退出模态显示,关闭对话框。
|
||||
|
||||
> 比如,在对话框中关闭按钮的事件处理函数中,调用本函数关闭对话框。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -295,7 +397,9 @@ ret_t dialog_set_title (widget_t* widget, char* title);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="dialog_t_dialog_toast">显示『短暂提示信息』对话框。
主题由dialog_toast.xml文件决定。
|
||||
> <p id="dialog_t_dialog_toast">显示『短暂提示信息』对话框。
|
||||
|
||||
主题由dialog_toast.xml文件决定。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -315,7 +419,9 @@ ret_t dialog_toast (const char* text, uint32_t duration);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="dialog_t_dialog_warn">显示『警告』对话框。
主题由dialog_warn.xml文件决定。
|
||||
> <p id="dialog_t_dialog_warn">显示『警告』对话框。
|
||||
|
||||
主题由dialog_warn.xml文件决定。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -332,7 +438,9 @@ ret_t dialog_warn (const char* title, const char* text);
|
||||
| text | const char* | 文本内容。 |
|
||||
#### highlight 属性
|
||||
-----------------------
|
||||
> <p id="dialog_t_highlight">对话框高亮策略。
> 请参考 [对话框高亮策略](https://github.com/zlgopen/awtk/blob/master/docs/dialog_highlight.md)
|
||||
> <p id="dialog_t_highlight">对话框高亮策略。
|
||||
|
||||
> 请参考 [对话框高亮策略](https://github.com/zlgopen/awtk/blob/master/docs/dialog_highlight.md)
|
||||
|
||||
* 类型:const char*
|
||||
|
||||
|
@ -2,7 +2,28 @@
|
||||
### 概述
|
||||
![image](images/dialog_title_t_0.png)
|
||||
|
||||
对话框标题控件。
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
子控件的布局可用layout\_children属性指定。
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
dialog\_title\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于dialog\_title\_t控件。
在xml中使用"dialog\_title"标签创建dialog\_title。如:
```xml
<dialog anim_hint="center_scale(duration=300)" x="c" y="m" w="80%" h="160" text="Dialog">
<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" />
<dialog_client x="0" y="bottom" w="100%" h="-30">
<label name="" x="center" y="middle:-20" w="200" h="30" text="Are you ready?"/>
<button name="quit" x="10" y="bottom:10" w="40%" h="30" text="确定"/>
<button name="quit" x="right:10" y="bottom:10" w="40%" h="30" text="取消"/>
</dialog_client>
</dialog>
```
在c代码中,用dialog\_create\_simple创建对话框时,自动创建dialog标题对象。
|
||||
对话框标题控件。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
dialog\_title\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于dialog\_title\_t控件。
|
||||
|
||||
在xml中使用"dialog\_title"标签创建dialog\_title。如:
|
||||
|
||||
```xml
|
||||
<dialog anim_hint="center_scale(duration=300)" x="c" y="m" w="80%" h="160" text="Dialog">
|
||||
<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" />
|
||||
<dialog_client x="0" y="bottom" w="100%" h="-30">
|
||||
<label name="" x="center" y="middle:-20" w="200" h="30" text="Are you ready?"/>
|
||||
<button name="quit" x="10" y="bottom:10" w="40%" h="30" text="确定"/>
|
||||
<button name="quit" x="right:10" y="bottom:10" w="40%" h="30" text="取消"/>
|
||||
</dialog_client>
|
||||
</dialog>
|
||||
```
|
||||
|
||||
在c代码中,用dialog\_create\_simple创建对话框时,自动创建dialog标题对象。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="dialog_title_t_methods">
|
||||
|
@ -2,7 +2,39 @@
|
||||
### 概述
|
||||
![image](images/digit_clock_t_0.png)
|
||||
|
||||
数字时钟控件。
digit\_clock\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于digit\_clock\_t控件。
在xml中使用"digit\_clock"标签创建数字时钟控件。如:
```xml
<digit_clock format="YY/MM/DD h:mm:ss"/>
```
> 更多用法请参考:[digit\_clock.xml](
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/digit_clock.xml)
在c代码中使用函数digit\_clock\_create创建数字时钟控件。如:
```c
widget_t* tc = digit_clock_create(win, 10, 10, 240, 30);
digit_clock_set_format(tc, "YY/MM/DD h:mm:ss");
```
> 完整示例请参考:[digit\_clock demo](
https://github.com/zlgopen/awtk-c-demos/blob/master/demos/digit_clock.c)
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
```xml
<style name="default">
<normal text_color="black" />
</style>
```
> 更多用法请参考:[theme default](
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L138)
|
||||
数字时钟控件。
|
||||
|
||||
digit\_clock\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于digit\_clock\_t控件。
|
||||
|
||||
在xml中使用"digit\_clock"标签创建数字时钟控件。如:
|
||||
|
||||
```xml
|
||||
<digit_clock format="YY/MM/DD h:mm:ss"/>
|
||||
```
|
||||
|
||||
> 更多用法请参考:[digit\_clock.xml](
|
||||
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/digit_clock.xml)
|
||||
|
||||
在c代码中使用函数digit\_clock\_create创建数字时钟控件。如:
|
||||
|
||||
```c
|
||||
widget_t* tc = digit_clock_create(win, 10, 10, 240, 30);
|
||||
digit_clock_set_format(tc, "YY/MM/DD h:mm:ss");
|
||||
```
|
||||
|
||||
> 完整示例请参考:[digit\_clock demo](
|
||||
https://github.com/zlgopen/awtk-c-demos/blob/master/demos/digit_clock.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
|
||||
|
||||
```xml
|
||||
<style name="default">
|
||||
<normal text_color="black" />
|
||||
</style>
|
||||
```
|
||||
|
||||
> 更多用法请参考:[theme default](
|
||||
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L138)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="digit_clock_t_methods">
|
||||
@ -17,7 +49,7 @@
|
||||
|
||||
| 属性名称 | 类型 | 说明 |
|
||||
| -------- | ----- | ------------ |
|
||||
| <a href="#digit_clock_t_format">format</a> | char* | 显示格式。
* Y 代表年(完整显示)
* M 代表月(1-12)
* D 代表日(1-31)
* h 代表时(0-23)
* m 代表分(0-59)
* s 代表秒(0-59)
* w 代表星期(0-6)
* W 代表星期的英文缩写(支持翻译)
* YY 代表年(只显示末两位)
* MM 代表月(01-12)
* DD 代表日(01-31)
* hh 代表时(00-23)
* mm 代表分(00-59)
* ss 代表秒(00-59)
* MMM 代表月的英文缩写(支持翻译)
如 日期时间为:2018/11/12 9:10:20
* "Y/D/M"显示为"2018/11/12"
* "Y-D-M"显示为"2018-11-12"
* "Y-D-M h:m:s"显示为"2018-11-12 9:10:20"
* "Y-D-M hh:mm:ss"显示为"2018-11-12 09:10:20" |
|
||||
| <a href="#digit_clock_t_format">format</a> | char* | 显示格式。 |
|
||||
#### digit\_clock\_cast 函数
|
||||
-----------------------
|
||||
|
||||
@ -82,7 +114,29 @@ ret_t digit_clock_set_format (widget_t* widget, const char* format);
|
||||
| format | const char* | 格式。 |
|
||||
#### format 属性
|
||||
-----------------------
|
||||
> <p id="digit_clock_t_format">显示格式。
* Y 代表年(完整显示)
* M 代表月(1-12)
* D 代表日(1-31)
* h 代表时(0-23)
* m 代表分(0-59)
* s 代表秒(0-59)
* w 代表星期(0-6)
* W 代表星期的英文缩写(支持翻译)
* YY 代表年(只显示末两位)
* MM 代表月(01-12)
* DD 代表日(01-31)
* hh 代表时(00-23)
* mm 代表分(00-59)
* ss 代表秒(00-59)
* MMM 代表月的英文缩写(支持翻译)
如 日期时间为:2018/11/12 9:10:20
* "Y/D/M"显示为"2018/11/12"
* "Y-D-M"显示为"2018-11-12"
* "Y-D-M h:m:s"显示为"2018-11-12 9:10:20"
* "Y-D-M hh:mm:ss"显示为"2018-11-12 09:10:20"
|
||||
> <p id="digit_clock_t_format">显示格式。
|
||||
|
||||
* Y 代表年(完整显示)
|
||||
* M 代表月(1-12)
|
||||
* D 代表日(1-31)
|
||||
* h 代表时(0-23)
|
||||
* m 代表分(0-59)
|
||||
* s 代表秒(0-59)
|
||||
* w 代表星期(0-6)
|
||||
* W 代表星期的英文缩写(支持翻译)
|
||||
* YY 代表年(只显示末两位)
|
||||
* MM 代表月(01-12)
|
||||
* DD 代表日(01-31)
|
||||
* hh 代表时(00-23)
|
||||
* mm 代表分(00-59)
|
||||
* ss 代表秒(00-59)
|
||||
* MMM 代表月的英文缩写(支持翻译)
|
||||
|
||||
如 日期时间为:2018/11/12 9:10:20
|
||||
* "Y/D/M"显示为"2018/11/12"
|
||||
* "Y-D-M"显示为"2018-11-12"
|
||||
* "Y-D-M h:m:s"显示为"2018-11-12 9:10:20"
|
||||
* "Y-D-M hh:mm:ss"显示为"2018-11-12 09:10:20"
|
||||
|
||||
* 类型:char*
|
||||
|
||||
|
@ -2,7 +2,36 @@
|
||||
### 概述
|
||||
![image](images/draggable_t_0.png)
|
||||
|
||||
将draggable放入目标控件,即可让目标控件或当前窗口可以被拖动。
draggable\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于draggable\_t控件。
在xml中使用"draggable"标签创建draggable控件。如:
```xml
<button text="Drag Me" w="80" h="40" x="10" y="10">
<draggable />
</button>
```
拖动对话框标题时移动对话框:
```xml
<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" >
<draggable drag_window="true"/>
</dialog_title>
```
> 更多用法请参考:
[draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/draggable.xml)
在c代码中使用函数draggable\_create创建按钮控件。如:
```c
widget_t* draggable = draggable_create(target, 0, 0, 0, 0);
```
> draggable本身不可见,故无需style。
|
||||
将draggable放入目标控件,即可让目标控件或当前窗口可以被拖动。
|
||||
|
||||
draggable\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于draggable\_t控件。
|
||||
|
||||
在xml中使用"draggable"标签创建draggable控件。如:
|
||||
|
||||
```xml
|
||||
<button text="Drag Me" w="80" h="40" x="10" y="10">
|
||||
<draggable />
|
||||
</button>
|
||||
```
|
||||
|
||||
拖动对话框标题时移动对话框:
|
||||
|
||||
```xml
|
||||
<dialog_title x="0" y="0" w="100%" h="30" text="Hello AWTK" >
|
||||
<draggable drag_window="true"/>
|
||||
</dialog_title>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/draggable.xml)
|
||||
|
||||
在c代码中使用函数draggable\_create创建按钮控件。如:
|
||||
|
||||
```c
|
||||
widget_t* draggable = draggable_create(target, 0, 0, 0, 0);
|
||||
```
|
||||
|
||||
> draggable本身不可见,故无需style。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="draggable_t_methods">
|
||||
@ -12,7 +41,7 @@
|
||||
| <a href="#draggable_t_draggable_cast">draggable\_cast</a> | 转换为draggable对象(供脚本语言使用)。 |
|
||||
| <a href="#draggable_t_draggable_create">draggable\_create</a> | 创建draggable对象 |
|
||||
| <a href="#draggable_t_draggable_set_bottom">draggable\_set\_bottom</a> | 设置bottom。 |
|
||||
| <a href="#draggable_t_draggable_set_drag_window">draggable\_set\_drag\_window</a> | 设置drag_window。
拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。 |
|
||||
| <a href="#draggable_t_draggable_set_drag_window">draggable\_set\_drag\_window</a> | 设置drag_window。 |
|
||||
| <a href="#draggable_t_draggable_set_horizontal_only">draggable\_set\_horizontal\_only</a> | 设置horizontal_only。 |
|
||||
| <a href="#draggable_t_draggable_set_left">draggable\_set\_left</a> | 设置left。 |
|
||||
| <a href="#draggable_t_draggable_set_right">draggable\_set\_right</a> | 设置right。 |
|
||||
@ -97,7 +126,8 @@ ret_t draggable_set_bottom (widget_t* widget, int32_t bottom);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="draggable_t_draggable_set_drag_window">设置drag_window。
拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。
|
||||
> <p id="draggable_t_draggable_set_drag_window">设置drag_window。
|
||||
拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,9 @@
|
||||
### 概述
|
||||
![image](images/dragger_t_0.png)
|
||||
|
||||
dragger控件。
目前主要用于scrollbar里的滑块。
|
||||
dragger控件。
|
||||
|
||||
目前主要用于scrollbar里的滑块。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="dragger_t_methods">
|
||||
@ -73,14 +75,14 @@ widget_t* dragger_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
|
||||
* 函数原型:
|
||||
|
||||
```
|
||||
widget_t* dragger_set_range (widget_t* widget, xy_t x_min, xy_t y_min, xy_t x_max, xy_t y_max);
|
||||
ret_t dragger_set_range (widget_t* widget, xy_t x_min, xy_t y_min, xy_t x_max, xy_t y_max);
|
||||
```
|
||||
|
||||
* 参数说明:
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| -------- | ----- | --------- |
|
||||
| 返回值 | widget\_t* | 对象。 |
|
||||
| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 |
|
||||
| widget | widget\_t* | dragger控件。 |
|
||||
| x\_min | xy\_t | x坐标最小值。 |
|
||||
| y\_min | xy\_t | y坐标最小值。 |
|
||||
|
@ -2,7 +2,60 @@
|
||||
### 概述
|
||||
![image](images/edit_t_0.png)
|
||||
|
||||
单行编辑器控件。
在基于SDL的平台,单行编辑器控件使用平台原生的输入法,对于嵌入式平台使用内置的输入法。
在使用内置的输入法时,软键盘由输入类型决定,开发者可以自定义软键盘的界面。
edit\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于edit\_t控件。
edit\_t本身可以做为容器,放入按钮等控件。有几个特殊的子控件:
* 名为"clear"的按钮。点击时清除编辑器中的内容。
* 名为"inc"的按钮。点击时增加编辑器的值,用于实现类似于spinbox的功能。
* 名为"dec"的按钮。点击时减少编辑器的值,用于实现类似于spinbox的功能。
* 名为"visible"的复选框。勾选时显示密码,反之不显示密码。
在xml中使用"edit"标签创建编辑器控件。如:
```xml
<edit x="c" y="m" w="80" h="30"
tips="age" input_type="uint" min="0" max="150" step="1" auto_fix="true" style="number" />
```
> XXX:需要在min/max/step之前设置input\_type。
>更多用法请参考:
[edit.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/edit.xml)
在c代码中使用函数edit\_create创建编辑器控件。如:
```c
widget_t* edit = edit_create(win, 10, 10, 128, 30);
widget_set_text(edit, L"OK");
```
> 创建之后,可以用widget\_set\_text或widget\_set\_text\_utf8设置文本内容。
> 完整示例请参考:
[edit demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/edit.c)
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
```xml
<style name="default" border_color="#a0a0a0" text_color="black" text_align_h="left">
<normal bg_color="#f0f0f0" />
<focused bg_color="#f0f0f0" border_color="black"/>
<disable bg_color="gray" text_color="#d0d0d0" />
<error bg_color="#f0f0f0" text_color="red" />
<empty bg_color="#f0f0f0" text_color="#a0a0a0" />
</style>
```
> 更多用法请参考:
[theme
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L104)
|
||||
单行编辑器控件。
|
||||
|
||||
在基于SDL的平台,单行编辑器控件使用平台原生的输入法,对于嵌入式平台使用内置的输入法。
|
||||
|
||||
在使用内置的输入法时,软键盘由输入类型决定,开发者可以自定义软键盘的界面。
|
||||
|
||||
edit\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于edit\_t控件。
|
||||
|
||||
edit\_t本身可以做为容器,放入按钮等控件。有几个特殊的子控件:
|
||||
|
||||
* 名为"clear"的按钮。点击时清除编辑器中的内容。
|
||||
* 名为"inc"的按钮。点击时增加编辑器的值,用于实现类似于spinbox的功能。
|
||||
* 名为"dec"的按钮。点击时减少编辑器的值,用于实现类似于spinbox的功能。
|
||||
* 名为"visible"的复选框。勾选时显示密码,反之不显示密码。
|
||||
|
||||
在xml中使用"edit"标签创建编辑器控件。如:
|
||||
|
||||
```xml
|
||||
<edit x="c" y="m" w="80" h="30"
|
||||
tips="age" input_type="uint" min="0" max="150" step="1" auto_fix="true" style="number" />
|
||||
```
|
||||
|
||||
> XXX:需要在min/max/step之前设置input\_type。
|
||||
|
||||
>更多用法请参考:
|
||||
[edit.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/edit.xml)
|
||||
|
||||
在c代码中使用函数edit\_create创建编辑器控件。如:
|
||||
|
||||
```c
|
||||
widget_t* edit = edit_create(win, 10, 10, 128, 30);
|
||||
widget_set_text(edit, L"OK");
|
||||
```
|
||||
|
||||
> 创建之后,可以用widget\_set\_text或widget\_set\_text\_utf8设置文本内容。
|
||||
|
||||
> 完整示例请参考:
|
||||
[edit demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/edit.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0" text_color="black" text_align_h="left">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
<focused bg_color="#f0f0f0" border_color="black"/>
|
||||
<disable bg_color="gray" text_color="#d0d0d0" />
|
||||
<error bg_color="#f0f0f0" text_color="red" />
|
||||
<empty bg_color="#f0f0f0" text_color="#a0a0a0" />
|
||||
</style>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[theme
|
||||
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L104)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="edit_t_methods">
|
||||
@ -22,7 +75,7 @@
|
||||
| <a href="#edit_t_edit_set_input_type">edit\_set\_input\_type</a> | 设置编辑器的输入类型。 |
|
||||
| <a href="#edit_t_edit_set_int">edit\_set\_int</a> | 设置int类型的值。 |
|
||||
| <a href="#edit_t_edit_set_int_limit">edit\_set\_int\_limit</a> | 设置为整数输入及取值范围。 |
|
||||
| <a href="#edit_t_edit_set_is_valid_char">edit\_set\_is\_valid\_char</a> | 设置输入字符检查函数。
> 如果内置检查函数不能满足需求时,可以设置自定义的检查函数。 |
|
||||
| <a href="#edit_t_edit_set_is_valid_char">edit\_set\_is\_valid\_char</a> | 设置输入字符检查函数。 |
|
||||
| <a href="#edit_t_edit_set_open_im_when_focused">edit\_set\_open\_im\_when\_focused</a> | 设置编辑器是否在获得焦点时打开输入法。 |
|
||||
| <a href="#edit_t_edit_set_password_visible">edit\_set\_password\_visible</a> | 当编辑器输入类型为密码时,设置密码是否可见。 |
|
||||
| <a href="#edit_t_edit_set_readonly">edit\_set\_readonly</a> | 设置编辑器是否为只读。 |
|
||||
@ -39,12 +92,12 @@
|
||||
| <a href="#edit_t_left_margin">left\_margin</a> | uint8\_t | 左边距。 |
|
||||
| <a href="#edit_t_max">max</a> | double | 最大值或最大长度。 |
|
||||
| <a href="#edit_t_min">min</a> | double | 最小值或最小长度。 |
|
||||
| <a href="#edit_t_open_im_when_focused">open\_im\_when\_focused</a> | bool\_t | 获得焦点时打开输入法。
> 主要用于没有指针设备的情况,否则每次切换焦点时都打开输入法。 |
|
||||
| <a href="#edit_t_open_im_when_focused">open\_im\_when\_focused</a> | bool\_t | 获得焦点时打开输入法。 |
|
||||
| <a href="#edit_t_password_visible">password\_visible</a> | bool\_t | 密码是否可见。 |
|
||||
| <a href="#edit_t_readonly">readonly</a> | bool\_t | 编辑器是否为只读。 |
|
||||
| <a href="#edit_t_right_margin">right\_margin</a> | uint8\_t | 右边距。 |
|
||||
| <a href="#edit_t_select_none_when_focused">select\_none\_when\_focused</a> | bool\_t | 获得焦点时不选中文本。
> 主要用于没有指针设备的情况,否则软键盘无法取消选中文本。 |
|
||||
| <a href="#edit_t_step">step</a> | double | 步长。
作为数值型编辑器时,一次增加和减少时的数值。 |
|
||||
| <a href="#edit_t_select_none_when_focused">select\_none\_when\_focused</a> | bool\_t | 获得焦点时不选中文本。 |
|
||||
| <a href="#edit_t_step">step</a> | double | 步长。 |
|
||||
| <a href="#edit_t_tips">tips</a> | char* | 输入提示。 |
|
||||
| <a href="#edit_t_top_margin">top\_margin</a> | uint8\_t | 上边距。 |
|
||||
### 事件
|
||||
@ -323,7 +376,8 @@ ret_t edit_set_int_limit (widget_t* widget, int32_t min, int32_t max, int32_t st
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="edit_t_edit_set_is_valid_char">设置输入字符检查函数。
> 如果内置检查函数不能满足需求时,可以设置自定义的检查函数。
|
||||
> <p id="edit_t_edit_set_is_valid_char">设置输入字符检查函数。
|
||||
> 如果内置检查函数不能满足需求时,可以设置自定义的检查函数。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -531,7 +585,9 @@ ret_t edit_set_text_limit (widget_t* widget, uint32_t min, uint32_t max);
|
||||
| 可通过widget\_set\_prop修改 | 是 |
|
||||
#### open\_im\_when\_focused 属性
|
||||
-----------------------
|
||||
> <p id="edit_t_open_im_when_focused">获得焦点时打开输入法。
> 主要用于没有指针设备的情况,否则每次切换焦点时都打开输入法。
|
||||
> <p id="edit_t_open_im_when_focused">获得焦点时打开输入法。
|
||||
|
||||
> 主要用于没有指针设备的情况,否则每次切换焦点时都打开输入法。
|
||||
|
||||
* 类型:bool\_t
|
||||
|
||||
@ -592,7 +648,9 @@ ret_t edit_set_text_limit (widget_t* widget, uint32_t min, uint32_t max);
|
||||
| 可通过widget\_set\_prop修改 | 是 |
|
||||
#### select\_none\_when\_focused 属性
|
||||
-----------------------
|
||||
> <p id="edit_t_select_none_when_focused">获得焦点时不选中文本。
> 主要用于没有指针设备的情况,否则软键盘无法取消选中文本。
|
||||
> <p id="edit_t_select_none_when_focused">获得焦点时不选中文本。
|
||||
|
||||
> 主要用于没有指针设备的情况,否则软键盘无法取消选中文本。
|
||||
|
||||
* 类型:bool\_t
|
||||
|
||||
@ -608,7 +666,8 @@ ret_t edit_set_text_limit (widget_t* widget, uint32_t min, uint32_t max);
|
||||
| 可通过widget\_set\_prop修改 | 是 |
|
||||
#### step 属性
|
||||
-----------------------
|
||||
> <p id="edit_t_step">步长。
作为数值型编辑器时,一次增加和减少时的数值。
|
||||
> <p id="edit_t_step">步长。
|
||||
作为数值型编辑器时,一次增加和减少时的数值。
|
||||
|
||||
* 类型:double
|
||||
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
| 函数名称 | 说明 |
|
||||
| -------- | ------------ |
|
||||
| <a href="#emitter_t_emitter_cast">emitter\_cast</a> | 转换为emitter对象(供脚本语言使用)。
主要给脚本语言使用。 |
|
||||
| <a href="#emitter_t_emitter_cast">emitter\_cast</a> | 转换为emitter对象(供脚本语言使用)。 |
|
||||
| <a href="#emitter_t_emitter_create">emitter\_create</a> | 创建emitter对象。 |
|
||||
| <a href="#emitter_t_emitter_deinit">emitter\_deinit</a> | 析构。 |
|
||||
| <a href="#emitter_t_emitter_destroy">emitter\_destroy</a> | 销毁。 |
|
||||
| <a href="#emitter_t_emitter_disable">emitter\_disable</a> | 禁用。
禁用后emitter_dispatch无效,但可以注册和注销。 |
|
||||
| <a href="#emitter_t_emitter_dispatch">emitter\_dispatch</a> | 分发事件。如果当前分发的回调函数返回RET_REMOVE,该回调函数将被移出。
禁用状态下,本函数不做任何事情。
如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。 |
|
||||
| <a href="#emitter_t_emitter_dispatch_simple_event">emitter\_dispatch\_simple\_event</a> | 分发事件。
> 对emitter_dispatch的包装,分发一个简单的事件。
如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。 |
|
||||
| <a href="#emitter_t_emitter_disable">emitter\_disable</a> | 禁用。 |
|
||||
| <a href="#emitter_t_emitter_dispatch">emitter\_dispatch</a> | 分发事件。如果当前分发的回调函数返回RET_REMOVE,该回调函数将被移出。 |
|
||||
| <a href="#emitter_t_emitter_dispatch_simple_event">emitter\_dispatch\_simple\_event</a> | 分发事件。 |
|
||||
| <a href="#emitter_t_emitter_enable">emitter\_enable</a> | 启用。 |
|
||||
| <a href="#emitter_t_emitter_find">emitter\_find</a> | 通过ID查找emitter_item_t,主要用于辅助测试。 |
|
||||
| <a href="#emitter_t_emitter_init">emitter\_init</a> | 初始化emitter对象。 |
|
||||
@ -36,7 +36,9 @@
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="emitter_t_emitter_cast">转换为emitter对象(供脚本语言使用)。
主要给脚本语言使用。
|
||||
> <p id="emitter_t_emitter_cast">转换为emitter对象(供脚本语言使用)。
|
||||
|
||||
主要给脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -111,7 +113,9 @@ ret_t emitter_destroy (emitter_t* emitter);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="emitter_t_emitter_disable">禁用。
禁用后emitter_dispatch无效,但可以注册和注销。
|
||||
> <p id="emitter_t_emitter_disable">禁用。
|
||||
|
||||
禁用后emitter_dispatch无效,但可以注册和注销。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -130,7 +134,8 @@ ret_t emitter_disable (emitter_t* emitter);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="emitter_t_emitter_dispatch">分发事件。如果当前分发的回调函数返回RET_REMOVE,该回调函数将被移出。
禁用状态下,本函数不做任何事情。
如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。
|
||||
> <p id="emitter_t_emitter_dispatch">分发事件。如果当前分发的回调函数返回RET_REMOVE,该回调函数将被移出。
|
||||
禁用状态下,本函数不做任何事情。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -142,7 +147,7 @@ ret_t emitter_dispatch (emitter_t* emitter, event_t* e);
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| -------- | ----- | --------- |
|
||||
| 返回值 | ret\_t | |
|
||||
| 返回值 | ret\_t | 如果当前分发的回调函数返回RET\_STOP,dispatch中断分发,并返回RET\_STOP,否则返回RET\_OK。 |
|
||||
| emitter | emitter\_t* | emitter对象。 |
|
||||
| e | event\_t* | 事件对象。 |
|
||||
#### emitter\_dispatch\_simple\_event 函数
|
||||
@ -150,7 +155,9 @@ ret_t emitter_dispatch (emitter_t* emitter, event_t* e);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="emitter_t_emitter_dispatch_simple_event">分发事件。
> 对emitter_dispatch的包装,分发一个简单的事件。
如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。
|
||||
> <p id="emitter_t_emitter_dispatch_simple_event">分发事件。
|
||||
> 对emitter_dispatch的包装,分发一个简单的事件。
|
||||
如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,12 @@
|
||||
### 概述
|
||||
![image](images/event_source_t_0.png)
|
||||
|
||||
表示一个事件源。
事件源有下列两种方式:
* 对于有文件描述符的事件源(如socket),get_fd返回一个有效的文件描述符。
* 对于定时器,则get_wakeup_time返回下次唤醒的时间。
|
||||
表示一个事件源。
|
||||
|
||||
事件源有下列两种方式:
|
||||
|
||||
* 对于有文件描述符的事件源(如socket),get_fd返回一个有效的文件描述符。
|
||||
* 对于定时器,则get_wakeup_time返回下次唤醒的时间。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="event_source_t_methods">
|
||||
|
@ -7,9 +7,9 @@
|
||||
|
||||
| 函数名称 | 说明 |
|
||||
| -------- | ------------ |
|
||||
| <a href="#event_t_event_cast">event\_cast</a> | 转换为event对象。
> 供脚本语言使用 |
|
||||
| <a href="#event_t_event_create">event\_create</a> | 创建event对象。
主要给脚本语言使用。 |
|
||||
| <a href="#event_t_event_destroy">event\_destroy</a> | 销毁事件对象。
主要给脚本语言使用。 |
|
||||
| <a href="#event_t_event_cast">event\_cast</a> | 转换为event对象。 |
|
||||
| <a href="#event_t_event_create">event\_create</a> | 创建event对象。 |
|
||||
| <a href="#event_t_event_destroy">event\_destroy</a> | 销毁事件对象。 |
|
||||
| <a href="#event_t_event_init">event\_init</a> | 初始化事件。 |
|
||||
### 属性
|
||||
<p id="event_t_properties">
|
||||
@ -24,7 +24,9 @@
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="event_t_event_cast">转换为event对象。
> 供脚本语言使用
|
||||
> <p id="event_t_event_cast">转换为event对象。
|
||||
|
||||
> 供脚本语言使用
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -43,7 +45,9 @@ event_t* event_cast (event_t* event);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="event_t_event_create">创建event对象。
主要给脚本语言使用。
|
||||
> <p id="event_t_event_create">创建event对象。
|
||||
|
||||
主要给脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -62,7 +66,9 @@ event_t* event_create (uint32_t type);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="event_t_event_destroy">销毁事件对象。
主要给脚本语言使用。
|
||||
> <p id="event_t_event_destroy">销毁事件对象。
|
||||
|
||||
主要给脚本语言使用。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -47,10 +47,10 @@
|
||||
| EVT\_ANIM\_END | 控件动画完成事件(event\_t)。 |
|
||||
| EVT\_WINDOW\_LOAD | 窗口加载完成事件(event\_t)。 |
|
||||
| EVT\_WIDGET\_LOAD | 控件加载完成事件(event\_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\_WILL\_OPEN | 窗口即将打开事件(event\_t)。如果有窗口动画,在窗口动画开始前触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。 |
|
||||
| EVT\_WINDOW\_OPEN | 窗口打开事件(event\_t)。如果有窗口动画,在窗口动画完成时触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。 |
|
||||
| EVT\_WINDOW\_TO\_BACKGROUND | 窗口被切换到后台事件(event\_t)。打开新窗口时,当前窗口被切换到后台时,对当前窗口触发本事件。 |
|
||||
| EVT\_WINDOW\_TO\_FOREGROUND | 窗口被切换到前台事件(event\_t)。关闭当前窗口时,前一个窗口被切换到前台时,对前一个窗口触发本事件。 |
|
||||
| EVT\_WINDOW\_CLOSE | 窗口关闭事件。 |
|
||||
| EVT\_REQUEST\_CLOSE\_WINDOW | 请求关闭窗口的事件(event\_t)。 |
|
||||
| EVT\_TOP\_WINDOW\_CHANGED | 顶层窗口改变的事件(window\_event\_t)。 |
|
||||
@ -67,7 +67,7 @@
|
||||
| EVT\_ORIENTATION\_WILL\_CHANGED | 屏幕即将旋转(event\_t)。 |
|
||||
| EVT\_ORIENTATION\_CHANGED | 屏幕旋转(event\_t)。 |
|
||||
| EVT\_WIDGET\_CREATED | 控件创建事件(event\_t)。 |
|
||||
| EVT\_REQUEST\_QUIT\_APP | 请求退出应用程序事件。 点击原生窗口关闭按钮时,通过窗口管理器触发,注册该事件并返回RET\_STOP,可以阻止窗口关闭。 |
|
||||
| EVT\_REQUEST\_QUIT\_APP | 请求退出应用程序事件。点击原生窗口关闭按钮时,通过窗口管理器触发,注册该事件并返回RET\_STOP,可以阻止窗口关闭。 |
|
||||
| EVT\_THEME\_CHANGED | 主题变化(event\_t)。 |
|
||||
| EVT\_REQ\_START | event queue其它请求编号起始值。 |
|
||||
| EVT\_USER\_START | 用户定义事件起始值。 |
|
||||
|
@ -1,6 +1,8 @@
|
||||
## file\_receiver\_t
|
||||
### 概述
|
||||
文件接收方。
> 可用注册EVT_PROGRESS事件,以获取传输的进度状态。
|
||||
文件接收方。
|
||||
|
||||
> 可用注册EVT_PROGRESS事件,以获取传输的进度状态。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="file_receiver_t_methods">
|
||||
|
@ -1,6 +1,8 @@
|
||||
## file\_sender\_t
|
||||
### 概述
|
||||
文件发送方。
> 可用注册EVT_PROGRESS事件,以获取传输的进度状态。
|
||||
文件发送方。
|
||||
|
||||
> 可用注册EVT_PROGRESS事件,以获取传输的进度状态。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="file_sender_t_methods">
|
||||
|
@ -2,7 +2,12 @@
|
||||
### 概述
|
||||
![image](images/font_loader_bitmap_t_0.png)
|
||||
|
||||
bitmap字体加载器。
bitmap字体是用工具预先生成位图字体数据,优势是速度快,不占用内存,缺点是字体大小固定。
适合低端嵌入式平台。
tools/font_gen用于把矢量字体(如truetype)转换成位图字体。
|
||||
bitmap字体加载器。
|
||||
|
||||
bitmap字体是用工具预先生成位图字体数据,优势是速度快,不占用内存,缺点是字体大小固定。
|
||||
适合低端嵌入式平台。
|
||||
|
||||
tools/font_gen用于把矢量字体(如truetype)转换成位图字体。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="font_loader_bitmap_t_methods">
|
||||
|
@ -2,7 +2,10 @@
|
||||
### 概述
|
||||
![image](images/font_loader_ft_t_0.png)
|
||||
|
||||
freetype字体加载器。
freetype主要用于加载矢量字体(如truetype),它功能强大,效果优异,与stb字体加载器相比,缺点是代码量比较大。
如果flash空间够大,优先使用freetype,否则使用stb。
|
||||
freetype字体加载器。
|
||||
|
||||
freetype主要用于加载矢量字体(如truetype),它功能强大,效果优异,与stb字体加载器相比,缺点是代码量比较大。
|
||||
如果flash空间够大,优先使用freetype,否则使用stb。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="font_loader_ft_t_methods">
|
||||
|
@ -2,7 +2,9 @@
|
||||
### 概述
|
||||
![image](images/font_loader_stb_t_0.png)
|
||||
|
||||
stb字体加载器。
stb主要用于加载矢量字体(如truetype),它功能强大,体积小巧。
|
||||
stb字体加载器。
|
||||
|
||||
stb主要用于加载矢量字体(如truetype),它功能强大,体积小巧。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="font_loader_stb_t_methods">
|
||||
|
@ -1,6 +1,7 @@
|
||||
## font\_manager\_t
|
||||
### 概述
|
||||
字体管理器,负责字体的加载和缓存管理。
(如果使用nanovg,字体由nanovg内部管理)
|
||||
字体管理器,负责字体的加载和缓存管理。
|
||||
(如果使用nanovg,字体由nanovg内部管理)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="font_manager_t_methods">
|
||||
@ -15,7 +16,7 @@
|
||||
| <a href="#font_manager_t_font_manager_get_font">font\_manager\_get\_font</a> | 从缓存中查找字体,如果没找到,再加载字体,并缓存。 |
|
||||
| <a href="#font_manager_t_font_manager_init">font\_manager\_init</a> | 初始化字体管理器。 |
|
||||
| <a href="#font_manager_t_font_manager_set">font\_manager\_set</a> | 设置缺省的字体管理器。 |
|
||||
| <a href="#font_manager_t_font_manager_set_assets_manager">font\_manager\_set\_assets\_manager</a> | 设置资源管理器对象
之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个字体管理器:
* 一个用于designer本身加载字体。
* 一个用于被设计的窗口加载字体。
这两个字体管理器需要从不同的路径加载资源。 |
|
||||
| <a href="#font_manager_t_font_manager_set_assets_manager">font\_manager\_set\_assets\_manager</a> | 设置资源管理器对象 |
|
||||
| <a href="#font_manager_t_font_manager_unload_all">font\_manager\_unload\_all</a> | 卸载全部字体。 |
|
||||
| <a href="#font_manager_t_font_manager_unload_font">font\_manager\_unload\_font</a> | 卸载指定的字体。 |
|
||||
### 属性
|
||||
@ -184,7 +185,15 @@ ret_t font_manager_set (font_manager_t* fm);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="font_manager_t_font_manager_set_assets_manager">设置资源管理器对象
之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个字体管理器:
* 一个用于designer本身加载字体。
* 一个用于被设计的窗口加载字体。
这两个字体管理器需要从不同的路径加载资源。
|
||||
> <p id="font_manager_t_font_manager_set_assets_manager">设置资源管理器对象
|
||||
|
||||
之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个字体管理器:
|
||||
|
||||
* 一个用于designer本身加载字体。
|
||||
|
||||
* 一个用于被设计的窗口加载字体。
|
||||
|
||||
这两个字体管理器需要从不同的路径加载资源。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -1,6 +1,22 @@
|
||||
## fs\_file\_t
|
||||
### 概述
|
||||
文件接口。 示例: ```c int32_t ret = 0; const char* file_name = "test.txt"; int32_t len = file_get_size(file_name); uint8_t* buff = (uint8_t*)TKMEM_ALLOC(len + 1); return_value_if_fail(buff != NULL, NULL); fs_file_t* fp = fs_open_file(os_fs(), file_name, "rb"); if (fp != NULL) { ret = fs_file_read(fp, buff, len); fs_file_close(fp); } ```
|
||||
文件接口。
|
||||
|
||||
示例:
|
||||
|
||||
```c
|
||||
int32_t ret = 0;
|
||||
const char* file_name = "test.txt";
|
||||
int32_t len = file_get_size(file_name);
|
||||
uint8_t* buff = (uint8_t*)TKMEM_ALLOC(len + 1);
|
||||
return_value_if_fail(buff != NULL, NULL);
|
||||
|
||||
fs_file_t* fp = fs_open_file(os_fs(), file_name, "rb");
|
||||
if (fp != NULL) {
|
||||
ret = fs_file_read(fp, buff, len);
|
||||
fs_file_close(fp);
|
||||
}
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="fs_file_t_methods">
|
||||
|
@ -1,6 +1,18 @@
|
||||
## func\_call\_parser\_t
|
||||
### 概述
|
||||
从字符串中解析出函数调用需要的参数。
```
func_call => func_name '(' params ')'
params => param ',' params
param => name '=' value
func_name => ID
name = ID
value = int | float | ID
```
如:move(x=10, y=20)
如:rename(old_name=aa, new_name=bb)
|
||||
从字符串中解析出函数调用需要的参数。
|
||||
|
||||
```
|
||||
func_call => func_name '(' params ')'
|
||||
params => param ',' params
|
||||
param => name '=' value
|
||||
func_name => ID
|
||||
name = ID
|
||||
value = int | float | ID
|
||||
```
|
||||
|
||||
如:move(x=10, y=20)
|
||||
如:rename(old_name=aa, new_name=bb)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="func_call_parser_t_methods">
|
||||
@ -10,7 +22,7 @@
|
||||
| <a href="#func_call_parser_t_func_call_parser_deinit">func\_call\_parser\_deinit</a> | 重置parser。 |
|
||||
| <a href="#func_call_parser_t_func_call_parser_init">func\_call\_parser\_init</a> | 初始化parser对象。 |
|
||||
| <a href="#func_call_parser_t_func_call_parser_parse">func\_call\_parser\_parse</a> | 开始解析。 |
|
||||
| <a href="#func_call_parser_t_func_call_parser_parse">func\_call\_parser\_parse</a> | 解析参数,并将结果生成一个object对象。
> 调用者负责释放返回的object对象。 |
|
||||
| <a href="#func_call_parser_t_func_call_parser_parse">func\_call\_parser\_parse</a> | 解析参数,并将结果生成一个object对象。 |
|
||||
#### func\_call\_parser\_deinit 函数
|
||||
-----------------------
|
||||
|
||||
@ -75,7 +87,9 @@ ret_t func_call_parser_parse (func_call_parser_t* parser);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="func_call_parser_t_func_call_parser_parse">解析参数,并将结果生成一个object对象。
> 调用者负责释放返回的object对象。
|
||||
> <p id="func_call_parser_t_func_call_parser_parse">解析参数,并将结果生成一个object对象。
|
||||
|
||||
> 调用者负责释放返回的object对象。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
| 函数名称 | 说明 |
|
||||
| -------- | ------------ |
|
||||
| <a href="#g2d_t_g2d_blend_image">g2d\_blend\_image</a> | 把图片指定的区域渲染到framebuffer指定的区域,src的大小和dst的大小不一致则进行缩放。
1.硬件不支持缩放,则返回NOT_IMPL。
2.硬件不支持全局alpha,global_alpha!=0xff时返回NOT_IMPL。 |
|
||||
| <a href="#g2d_t_g2d_blend_image">g2d\_blend\_image</a> | 把图片指定的区域渲染到framebuffer指定的区域,src的大小和dst的大小不一致则进行缩放。 |
|
||||
| <a href="#g2d_t_g2d_copy_image">g2d\_copy\_image</a> | 把图片指定的区域拷贝到framebuffer中。 |
|
||||
| <a href="#g2d_t_g2d_copy_image">g2d\_copy\_image</a> | 把图片指定的区域进行旋转并拷贝到framebuffer相应的区域,本函数主要用于辅助实现横屏和竖屏的切换,一般支持90度旋转即可。 |
|
||||
| <a href="#g2d_t_g2d_fill_rect">g2d\_fill\_rect</a> | 用颜色填充指定的区域。 |
|
||||
@ -16,7 +16,9 @@
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="g2d_t_g2d_blend_image">把图片指定的区域渲染到framebuffer指定的区域,src的大小和dst的大小不一致则进行缩放。
1.硬件不支持缩放,则返回NOT_IMPL。
2.硬件不支持全局alpha,global_alpha!=0xff时返回NOT_IMPL。
|
||||
> <p id="g2d_t_g2d_blend_image">把图片指定的区域渲染到framebuffer指定的区域,src的大小和dst的大小不一致则进行缩放。
|
||||
1.硬件不支持缩放,则返回NOT_IMPL。
|
||||
2.硬件不支持全局alpha,global_alpha!=0xff时返回NOT_IMPL。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,49 @@
|
||||
### 概述
|
||||
![image](images/gif_image_t_0.png)
|
||||
|
||||
GIF图片控件。
> 注意:GIF图片的尺寸大于控件大小时会自动缩小图片,但一般的嵌入式系统的硬件加速都不支持图片缩放,
所以缩放图片会导致性能明显下降。如果性能不满意时,请确认一下GIF图片的尺寸是否小余控件大小。
gif\_image\_t是[image\_base\_t](image_base_t.md)的子类控件,image\_base\_t的函数均适用于gif\_image\_t控件。
在xml中使用"gif"标签创建GIF图片控件。如:
```xml
<gif image="bee"/>
```
>更多用法请参考:
[gif
image](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/gif_image.xml)
在c代码中使用函数gif\_image\_create创建GIF图片控件。如:
```c
widget_t* image = gif_image_create(win, 10, 10, 200, 200);
image_set_image(image, "bee");
```
> 创建之后:
>
> 需要用widget\_set\_image设置图片名称。
> 完整示例请参考:[gif image demo](
https://github.com/zlgopen/awtk-c-demos/blob/master/demos/gif_image.c)
可用通过style来设置控件的显示风格,如背景和边框等。如:
```xml
<gif>
<style name="border">
<normal border_color="#000000" bg_color="#e0e0e0" text_color="black"/>
</style>
</gif>
```
> 更多用法请参考:[theme default](
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml)
|
||||
GIF图片控件。
|
||||
|
||||
> 注意:GIF图片的尺寸大于控件大小时会自动缩小图片,但一般的嵌入式系统的硬件加速都不支持图片缩放,
|
||||
所以缩放图片会导致性能明显下降。如果性能不满意时,请确认一下GIF图片的尺寸是否小余控件大小。
|
||||
|
||||
gif\_image\_t是[image\_base\_t](image_base_t.md)的子类控件,image\_base\_t的函数均适用于gif\_image\_t控件。
|
||||
|
||||
在xml中使用"gif"标签创建GIF图片控件。如:
|
||||
|
||||
```xml
|
||||
<gif image="bee"/>
|
||||
```
|
||||
|
||||
>更多用法请参考:
|
||||
[gif
|
||||
image](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/gif_image.xml)
|
||||
|
||||
在c代码中使用函数gif\_image\_create创建GIF图片控件。如:
|
||||
|
||||
```c
|
||||
widget_t* image = gif_image_create(win, 10, 10, 200, 200);
|
||||
image_set_image(image, "bee");
|
||||
```
|
||||
|
||||
> 创建之后:
|
||||
>
|
||||
> 需要用widget\_set\_image设置图片名称。
|
||||
|
||||
> 完整示例请参考:[gif image demo](
|
||||
https://github.com/zlgopen/awtk-c-demos/blob/master/demos/gif_image.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景和边框等。如:
|
||||
|
||||
```xml
|
||||
<gif>
|
||||
<style name="border">
|
||||
<normal border_color="#000000" bg_color="#e0e0e0" text_color="black"/>
|
||||
</style>
|
||||
</gif>
|
||||
```
|
||||
|
||||
> 更多用法请参考:[theme default](
|
||||
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="gif_image_t_methods">
|
||||
|
@ -9,7 +9,7 @@ graphic_buffer。
|
||||
| -------- | ------------ |
|
||||
| <a href="#graphic_buffer_t_graphic_buffer_attach">graphic\_buffer\_attach</a> | 附件到指定的内存。 |
|
||||
| <a href="#graphic_buffer_t_graphic_buffer_create_for_bitmap">graphic\_buffer\_create\_for\_bitmap</a> | 为位图创建缓冲区。 |
|
||||
| <a href="#graphic_buffer_t_graphic_buffer_default_create_with_data">graphic\_buffer\_default\_create\_with\_data</a> | 创建缓冲区。
> 为了兼容raw图像。 |
|
||||
| <a href="#graphic_buffer_t_graphic_buffer_default_create_with_data">graphic\_buffer\_default\_create\_with\_data</a> | 创建缓冲区。 |
|
||||
| <a href="#graphic_buffer_t_graphic_buffer_destroy">graphic\_buffer\_destroy</a> | 销毁缓冲区。 |
|
||||
| <a href="#graphic_buffer_t_graphic_buffer_lock_for_read">graphic\_buffer\_lock\_for\_read</a> | 为读取数据而锁定缓冲区。 |
|
||||
| <a href="#graphic_buffer_t_graphic_buffer_lock_for_write">graphic\_buffer\_lock\_for\_write</a> | 为修改数据而锁定缓冲区。 |
|
||||
@ -58,7 +58,9 @@ ret_t graphic_buffer_create_for_bitmap (bitmap_t* bitmap);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="graphic_buffer_t_graphic_buffer_default_create_with_data">创建缓冲区。
> 为了兼容raw图像。
|
||||
> <p id="graphic_buffer_t_graphic_buffer_default_create_with_data">创建缓冲区。
|
||||
|
||||
> 为了兼容raw图像。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,39 @@
|
||||
### 概述
|
||||
![image](images/grid_item_t_0.png)
|
||||
|
||||
grid_item。一个简单的容器控件,一般作为grid的子控件。
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
子控件的布局可用layout\_children属性指定。
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
grid\_item\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于grid\_item\_t控件。
在xml中使用"grid\_item"标签创建grid\_item。如:
```xml
<grid x="0" y="0" w="100%" h="100%" children_layout="default(c=2,r=2,m=5,s=5)">
<grid_item>
<button x="c" y="m" w="80%" h="30" name="0" text="0"/>
</grid_item>
<grid_item>
<button x="c" y="m" w="80%" h="30" name="1" text="1"/>
</grid_item>
<grid_item>
<button x="c" y="m" w="80%" h="30" name="2" text="2"/>
</grid_item>
<grid_item>
<button x="c" y="m" w="80%" h="30" name="3" text="3"/>
</grid_item>
</grid>```
可用通过style来设置控件的显示风格,如背景颜色等。如:
```xml
<style name="default" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" />
</style>
```
|
||||
grid_item。一个简单的容器控件,一般作为grid的子控件。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
grid\_item\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于grid\_item\_t控件。
|
||||
|
||||
在xml中使用"grid\_item"标签创建grid\_item。如:
|
||||
|
||||
```xml
|
||||
<grid x="0" y="0" w="100%" h="100%" children_layout="default(c=2,r=2,m=5,s=5)">
|
||||
<grid_item>
|
||||
<button x="c" y="m" w="80%" h="30" name="0" text="0"/>
|
||||
</grid_item>
|
||||
<grid_item>
|
||||
<button x="c" y="m" w="80%" h="30" name="1" text="1"/>
|
||||
</grid_item>
|
||||
<grid_item>
|
||||
<button x="c" y="m" w="80%" h="30" name="2" text="2"/>
|
||||
</grid_item>
|
||||
<grid_item>
|
||||
<button x="c" y="m" w="80%" h="30" name="3" text="3"/>
|
||||
</grid_item>
|
||||
</grid>```
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
</style>
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="grid_item_t_methods">
|
||||
|
@ -2,7 +2,32 @@
|
||||
### 概述
|
||||
![image](images/grid_t_0.png)
|
||||
|
||||
grid控件。一个简单的容器控件,用于网格排列一组控件。
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
子控件的布局可用layout\_children属性指定。
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
grid\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于grid\_t控件。
在xml中使用"grid"标签创建grid。如:
```xml
<grid x="0" y="0" w="100%" h="100%" children_layout="default(c=2,r=2,m=5,s=5)">
<button name="open:basic" text="Basic"/>
<button name="open:button" text="Buttons"/>
<button name="open:edit" text="Edits"/>
<button name="open:keyboard" text="KeyBoard"/>
</grid>
```
可用通过style来设置控件的显示风格,如背景颜色等。如:
```xml
<style name="default" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" />
</style>
```
|
||||
grid控件。一个简单的容器控件,用于网格排列一组控件。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
grid\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于grid\_t控件。
|
||||
|
||||
在xml中使用"grid"标签创建grid。如:
|
||||
|
||||
```xml
|
||||
<grid x="0" y="0" w="100%" h="100%" children_layout="default(c=2,r=2,m=5,s=5)">
|
||||
<button name="open:basic" text="Basic"/>
|
||||
<button name="open:button" text="Buttons"/>
|
||||
<button name="open:edit" text="Edits"/>
|
||||
<button name="open:keyboard" text="KeyBoard"/>
|
||||
</grid>
|
||||
```
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
</style>
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="grid_t_methods">
|
||||
|
@ -2,7 +2,33 @@
|
||||
### 概述
|
||||
![image](images/group_box_t_0.png)
|
||||
|
||||
分组控件。
单选按钮在同一个父控件中是互斥的,所以通常将相关的单选按钮放在一个group\_box中。
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
子控件的布局可用layout\_children属性指定。
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
group\_box\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于group\_box\_t控件。
在xml中使用"group\_box"标签创建group\_box。如:
```xml
<group_box x="20" y="230" w="50%" h="90" children_layout="default(r=3,c=1,ym=2,s=10)" >
<radio_button name="r1" text="Book"/>
<radio_button name="r2" text="Food"/>
<radio_button name="r3" text="Pencil" value="true"/>
</group_box>
```
可用通过style来设置控件的显示风格,如背景颜色等。如:
```xml
<style name="default" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" />
</style>
```
|
||||
分组控件。
|
||||
|
||||
单选按钮在同一个父控件中是互斥的,所以通常将相关的单选按钮放在一个group\_box中。
|
||||
|
||||
它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。
|
||||
子控件的布局可用layout\_children属性指定。
|
||||
请参考[布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)。
|
||||
|
||||
group\_box\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于group\_box\_t控件。
|
||||
|
||||
在xml中使用"group\_box"标签创建group\_box。如:
|
||||
|
||||
```xml
|
||||
<group_box x="20" y="230" w="50%" h="90" children_layout="default(r=3,c=1,ym=2,s=10)" >
|
||||
<radio_button name="r1" text="Book"/>
|
||||
<radio_button name="r2" text="Food"/>
|
||||
<radio_button name="r3" text="Pencil" value="true"/>
|
||||
</group_box>
|
||||
```
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" border_color="#a0a0a0">
|
||||
<normal bg_color="#f0f0f0" />
|
||||
</style>
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="group_box_t_methods">
|
||||
|
@ -2,7 +2,31 @@
|
||||
### 概述
|
||||
![image](images/guage_pointer_t_0.png)
|
||||
|
||||
仪表指针控件。
仪表指针就是一张旋转的图片,图片可以是普通图片也可以是SVG图片。
在嵌入式平台上,对于旋转的图片,SVG图片的效率比位图高数倍,所以推荐使用SVG图片。
guage\_pointer\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于guage\_pointer\_t控件。
在xml中使用"guage\_pointer"标签创建仪表指针控件。如:
```xml
<guage_pointer x="c" y="50" w="24" h="140" value="-128" image="guage_pointer" />
```
> 更多用法请参考:
[guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml)
在c代码中使用函数guage\_pointer\_create创建仪表指针控件。如:
```c
widget_t* guage_pointer = guage_pointer_create(guage, 10, 10, 100, 30);
guage_pointer_set_image(guage_pointer, "guage_pointer");
```
> 创建之后,需要用guage\_pointer\_set\_image设置仪表指针图片。
|
||||
仪表指针控件。
|
||||
|
||||
仪表指针就是一张旋转的图片,图片可以是普通图片也可以是SVG图片。
|
||||
|
||||
在嵌入式平台上,对于旋转的图片,SVG图片的效率比位图高数倍,所以推荐使用SVG图片。
|
||||
|
||||
guage\_pointer\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于guage\_pointer\_t控件。
|
||||
|
||||
在xml中使用"guage\_pointer"标签创建仪表指针控件。如:
|
||||
|
||||
```xml
|
||||
<guage_pointer x="c" y="50" w="24" h="140" value="-128" image="guage_pointer" />
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml)
|
||||
|
||||
在c代码中使用函数guage\_pointer\_create创建仪表指针控件。如:
|
||||
|
||||
```c
|
||||
widget_t* guage_pointer = guage_pointer_create(guage, 10, 10, 100, 30);
|
||||
guage_pointer_set_image(guage_pointer, "guage_pointer");
|
||||
```
|
||||
|
||||
> 创建之后,需要用guage\_pointer\_set\_image设置仪表指针图片。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="guage_pointer_t_methods">
|
||||
@ -22,7 +46,7 @@
|
||||
| <a href="#guage_pointer_t_anchor_x">anchor\_x</a> | float\_t | 旋转锚点x坐标。 |
|
||||
| <a href="#guage_pointer_t_anchor_y">anchor\_y</a> | float\_t | 旋转锚点y坐标。 |
|
||||
| <a href="#guage_pointer_t_angle">angle</a> | int32\_t | 指针角度。12点钟方向为0度,顺时钟方向为正,单位为度。 |
|
||||
| <a href="#guage_pointer_t_image">image</a> | char* | 指针图片。
图片须垂直向上,图片的中心点为旋转方向。 |
|
||||
| <a href="#guage_pointer_t_image">image</a> | char* | 指针图片。 |
|
||||
#### guage\_pointer\_cast 函数
|
||||
-----------------------
|
||||
|
||||
@ -176,7 +200,9 @@ ret_t guage_pointer_set_image (widget_t* widget, const char* image);
|
||||
| 可通过widget\_set\_prop修改 | 是 |
|
||||
#### image 属性
|
||||
-----------------------
|
||||
> <p id="guage_pointer_t_image">指针图片。
图片须垂直向上,图片的中心点为旋转方向。
|
||||
> <p id="guage_pointer_t_image">指针图片。
|
||||
|
||||
图片须垂直向上,图片的中心点为旋转方向。
|
||||
|
||||
* 类型:char*
|
||||
|
||||
|
@ -2,7 +2,41 @@
|
||||
### 概述
|
||||
![image](images/guage_t_0.png)
|
||||
|
||||
表盘控件。
表盘控件就是一张图片。
guage\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于guage\_t控件。
在xml中使用"guage"标签创建表盘控件。如:
```xml
<guage x="c" y="10" w="240" h="240" image="guage_bg" >
```
> 更多用法请参考:
[guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml)
在c代码中使用函数guage\_create创建表盘控件。如:
```c
widget_t* guage = guage_create(win, 10, 10, 200, 200);
guage_set_image(guage, "guage_bg");
```
可用通过style来设置控件的显示风格,如背景和边框等。如:
```xml
<guage>
<style name="border">
<normal border_color="#000000" bg_color="#e0e0e0" text_color="black"/>
</style>
</guage>
```
> 更多用法请参考:
[theme
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml)
|
||||
表盘控件。
|
||||
|
||||
表盘控件就是一张图片。
|
||||
|
||||
guage\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于guage\_t控件。
|
||||
|
||||
在xml中使用"guage"标签创建表盘控件。如:
|
||||
|
||||
```xml
|
||||
<guage x="c" y="10" w="240" h="240" image="guage_bg" >
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml)
|
||||
|
||||
在c代码中使用函数guage\_create创建表盘控件。如:
|
||||
|
||||
```c
|
||||
widget_t* guage = guage_create(win, 10, 10, 200, 200);
|
||||
guage_set_image(guage, "guage_bg");
|
||||
```
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景和边框等。如:
|
||||
|
||||
```xml
|
||||
<guage>
|
||||
<style name="border">
|
||||
<normal border_color="#000000" bg_color="#e0e0e0" text_color="black"/>
|
||||
</style>
|
||||
</guage>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[theme
|
||||
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="guage_t_methods">
|
||||
@ -11,7 +45,7 @@
|
||||
| -------- | ------------ |
|
||||
| <a href="#guage_t_guage_cast">guage\_cast</a> | 转换为guage对象(供脚本语言使用)。 |
|
||||
| <a href="#guage_t_guage_create">guage\_create</a> | 创建guage对象 |
|
||||
| <a href="#guage_t_guage_set_draw_type">guage\_set\_draw\_type</a> | 设置图片的显示方式。
> 绘制方式的属性值和枚举值:
[image\_draw\_type\_name\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98) |
|
||||
| <a href="#guage_t_guage_set_draw_type">guage\_set\_draw\_type</a> | 设置图片的显示方式。 |
|
||||
| <a href="#guage_t_guage_set_image">guage\_set\_image</a> | 设置背景图片的名称。 |
|
||||
### 属性
|
||||
<p id="guage_t_properties">
|
||||
@ -67,7 +101,10 @@ widget_t* guage_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="guage_t_guage_set_draw_type">设置图片的显示方式。
> 绘制方式的属性值和枚举值:
[image\_draw\_type\_name\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98)
|
||||
> <p id="guage_t_guage_set_draw_type">设置图片的显示方式。
|
||||
|
||||
> 绘制方式的属性值和枚举值:
|
||||
[image\_draw\_type\_name\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98)
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,31 @@
|
||||
### 概述
|
||||
![image](images/hscroll_label_t_0.png)
|
||||
|
||||
可水平滚动的文本控件,方便实现长文本滚动。
hscroll\_label\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于hscroll\_label\_t控件。
在xml中使用"hscroll\_label"标签创建行号控件,一般配合mledit使用。如:
```xml
```
> 更多用法请参考:[mledit.xml](
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml)
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
```xml
<style name="default" text_color="black">
<normal />
<focused />
</style>
```
> 更多用法请参考:
[theme default](
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml)
|
||||
可水平滚动的文本控件,方便实现长文本滚动。
|
||||
|
||||
|
||||
hscroll\_label\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于hscroll\_label\_t控件。
|
||||
|
||||
在xml中使用"hscroll\_label"标签创建行号控件,一般配合mledit使用。如:
|
||||
|
||||
```xml
|
||||
```
|
||||
|
||||
> 更多用法请参考:[mledit.xml](
|
||||
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml)
|
||||
|
||||
可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:
|
||||
|
||||
```xml
|
||||
<style name="default" text_color="black">
|
||||
<normal />
|
||||
<focused />
|
||||
</style>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[theme default](
|
||||
https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="hscroll_label_t_methods">
|
||||
|
@ -16,7 +16,7 @@
|
||||
| 属性名称 | 类型 | 说明 |
|
||||
| -------- | ----- | ------------ |
|
||||
| <a href="#idle_info_t_ctx">ctx</a> | void* | idle回调函数上下文。 |
|
||||
| <a href="#idle_info_t_id">id</a> | uint32\_t | idle的ID
> 为TK\_INVALID\_ID时表示无效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回调函数。 |
|
||||
@ -52,7 +52,9 @@ idle_info_t* idle_info_cast (idle_info_t* idle);
|
||||
| 可脚本化 | 是 |
|
||||
#### id 属性
|
||||
-----------------------
|
||||
> <p id="idle_info_t_id">idle的ID
> 为TK\_INVALID\_ID时表示无效idle。
|
||||
> <p id="idle_info_t_id">idle的ID
|
||||
|
||||
> 为TK\_INVALID\_ID时表示无效idle。
|
||||
|
||||
* 类型:uint32\_t
|
||||
|
||||
|
@ -1,6 +1,26 @@
|
||||
## idle\_t
|
||||
### 概述
|
||||
idle可以看作是duration为0的定时器。
> 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。
|
||||
idle可以看作是duration为0的定时器。
|
||||
|
||||
> 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">
|
||||
|
@ -2,7 +2,37 @@
|
||||
### 概述
|
||||
![image](images/image_animation_t_0.png)
|
||||
|
||||
图片动画控件,指定一个图片前缀,依次显示指定序列的图片,从而形成动画效果。
图片序列可以用sequence指定,也可以用start\_index和end\_index指定一个范围。
image\_animation\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于image\_animation\_t控件。
在xml中使用"image\_animation"标签创建图片动画控件。如:
```xml
<image_animation image="ani" start_index="1" end_index="9" auto_play="true" interval="50"
delay="100"/>
```
> 更多用法请参考:
[image_animation.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_animation.xml)
在c代码中使用函数image\_animation\_create创建图片动画控件。如:
```c
image_animation = image_animation_create(win, 10, 10, 200, 200);
image_animation_set_image(image_animation, "ani");
image_animation_set_interval(image_animation, 50);
image_animation_set_range_sequence(image_animation, 1, 9);
image_animation_play(image_animation);
```
> 完整示例请参考:
[image_animation
demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_animation.c)
可用通过style来设置控件的显示风格,如背景颜色和边框等等,不过一般情况并不需要。
|
||||
图片动画控件,指定一个图片前缀,依次显示指定序列的图片,从而形成动画效果。
|
||||
|
||||
图片序列可以用sequence指定,也可以用start\_index和end\_index指定一个范围。
|
||||
|
||||
image\_animation\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于image\_animation\_t控件。
|
||||
|
||||
在xml中使用"image\_animation"标签创建图片动画控件。如:
|
||||
|
||||
```xml
|
||||
<image_animation image="ani" start_index="1" end_index="9" auto_play="true" interval="50"
|
||||
delay="100"/>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[image_animation.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_animation.xml)
|
||||
|
||||
在c代码中使用函数image\_animation\_create创建图片动画控件。如:
|
||||
|
||||
```c
|
||||
image_animation = image_animation_create(win, 10, 10, 200, 200);
|
||||
image_animation_set_image(image_animation, "ani");
|
||||
image_animation_set_interval(image_animation, 50);
|
||||
image_animation_set_range_sequence(image_animation, 1, 9);
|
||||
image_animation_play(image_animation);
|
||||
```
|
||||
|
||||
> 完整示例请参考:
|
||||
[image_animation
|
||||
demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_animation.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色和边框等等,不过一般情况并不需要。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="image_animation_t_methods">
|
||||
@ -16,12 +46,12 @@
|
||||
| <a href="#image_animation_t_image_animation_play">image\_animation\_play</a> | 播放。 |
|
||||
| <a href="#image_animation_t_image_animation_set_auto_play">image\_animation\_set\_auto\_play</a> | 设置是否自动播放。 |
|
||||
| <a href="#image_animation_t_image_animation_set_delay">image\_animation\_set\_delay</a> | 设置延迟播放时间(仅适用于自动播放)。 |
|
||||
| <a href="#image_animation_t_image_animation_set_format">image\_animation\_set\_format</a> | 设置生成图片名的格式。
XXX:生成图片名时,第一个参数是图片名前缀,第二个是序数,只能在此前提下设置格式。
```
const char* format = image_animation->format ? image_animation->format : "%s%d";
tk_snprintf(name, TK_NAME_LEN, format, image_animation->image, image_animation->index);
``` |
|
||||
| <a href="#image_animation_t_image_animation_set_format">image\_animation\_set\_format</a> | 设置生成图片名的格式。 |
|
||||
| <a href="#image_animation_t_image_animation_set_image">image\_animation\_set\_image</a> | 设置图片前缀。 |
|
||||
| <a href="#image_animation_t_image_animation_set_interval">image\_animation\_set\_interval</a> | 设置播放间隔时间。 |
|
||||
| <a href="#image_animation_t_image_animation_set_loop">image\_animation\_set\_loop</a> | 设置是否循环播放。 |
|
||||
| <a href="#image_animation_t_image_animation_set_range_sequence">image\_animation\_set\_range\_sequence</a> | 设置播放序列。比如image为"fire",start_index为0, end_index为99, 将依次播放"fire0", ...,
"fire99"。
若指定的图片不存在,则重复上一张图片。 |
|
||||
| <a href="#image_animation_t_image_animation_set_sequence">image\_animation\_set\_sequence</a> | 设置播放序列。比如image为"fire",sequence为"12223", 将依次播放"fire1", "fire2", "fire2", "fire2",
"fire3"。 |
|
||||
| <a href="#image_animation_t_image_animation_set_range_sequence">image\_animation\_set\_range\_sequence</a> | 设置播放序列。比如image为"fire",start_index为0, end_index为99, 将依次播放"fire0", ..., |
|
||||
| <a href="#image_animation_t_image_animation_set_sequence">image\_animation\_set\_sequence</a> | 设置播放序列。比如image为"fire",sequence为"12223", 将依次播放"fire1", "fire2", "fire2", "fire2", |
|
||||
| <a href="#image_animation_t_image_animation_set_unload_after_paint">image\_animation\_set\_unload\_after\_paint</a> | 设置绘制完成后unload图片,以释放内存空间。 |
|
||||
| <a href="#image_animation_t_image_animation_stop">image\_animation\_stop</a> | 停止(并重置index为-1)。 |
|
||||
### 属性
|
||||
@ -183,7 +213,14 @@ ret_t image_animation_set_delay (widget_t* widget, uint32_t delay);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="image_animation_t_image_animation_set_format">设置生成图片名的格式。
XXX:生成图片名时,第一个参数是图片名前缀,第二个是序数,只能在此前提下设置格式。
```
const char* format = image_animation->format ? image_animation->format : "%s%d";
tk_snprintf(name, TK_NAME_LEN, format, image_animation->image, image_animation->index);
```
|
||||
> <p id="image_animation_t_image_animation_set_format">设置生成图片名的格式。
|
||||
|
||||
XXX:生成图片名时,第一个参数是图片名前缀,第二个是序数,只能在此前提下设置格式。
|
||||
|
||||
```
|
||||
const char* format = image_animation->format ? image_animation->format : "%s%d";
|
||||
tk_snprintf(name, TK_NAME_LEN, format, image_animation->image, image_animation->index);
|
||||
```
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -263,7 +300,10 @@ ret_t image_animation_set_loop (widget_t* widget, bool_t loop);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="image_animation_t_image_animation_set_range_sequence">设置播放序列。比如image为"fire",start_index为0, end_index为99, 将依次播放"fire0", ...,
"fire99"。
若指定的图片不存在,则重复上一张图片。
|
||||
> <p id="image_animation_t_image_animation_set_range_sequence">设置播放序列。比如image为"fire",start_index为0, end_index为99, 将依次播放"fire0", ...,
|
||||
"fire99"。
|
||||
|
||||
若指定的图片不存在,则重复上一张图片。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -284,7 +324,8 @@ ret_t image_animation_set_range_sequence (widget_t* widget, uint32_t start_index
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="image_animation_t_image_animation_set_sequence">设置播放序列。比如image为"fire",sequence为"12223", 将依次播放"fire1", "fire2", "fire2", "fire2",
"fire3"。
|
||||
> <p id="image_animation_t_image_animation_set_sequence">设置播放序列。比如image为"fire",sequence为"12223", 将依次播放"fire1", "fire2", "fire2", "fire2",
|
||||
"fire3"。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,8 +2,22 @@
|
||||
### 概述
|
||||
![image](images/image_base_t_0.png)
|
||||
|
||||
图片控件基类。
本类把图片相关控件的公共行为进行抽象,放到一起方便重用。目前已知的具体实现如下图:
![image](images/image_base_t_1.png)
|
||||
> 本类是一个抽象类,不能进行实例化。请在应用程序中使用具体的类,如image\_t。
如果需要显示文件系统中的图片,只需将图片名称换成实际的文件名,并加上"file://"前缀即可。如:
```
<image draw_type="center" image="file://./demos/assets/default/raw/images/xx/flag_CN.png" />
<gif image="file://./demos/assets/default/raw/images/x2/bee.gif" />
<svg image="file://./demos/assets/default/raw/images/svg/china.bsvg" />
```
|
||||
图片控件基类。
|
||||
|
||||
本类把图片相关控件的公共行为进行抽象,放到一起方便重用。目前已知的具体实现如下图:
|
||||
|
||||
![image](images/image_base_t_1.png)
|
||||
|
||||
|
||||
> 本类是一个抽象类,不能进行实例化。请在应用程序中使用具体的类,如image\_t。
|
||||
|
||||
如果需要显示文件系统中的图片,只需将图片名称换成实际的文件名,并加上"file://"前缀即可。如:
|
||||
|
||||
```
|
||||
<image draw_type="center" image="file://./demos/assets/default/raw/images/xx/flag_CN.png" />
|
||||
<gif image="file://./demos/assets/default/raw/images/x2/bee.gif" />
|
||||
<svg image="file://./demos/assets/default/raw/images/svg/china.bsvg" />
|
||||
```
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="image_base_t_methods">
|
||||
@ -13,7 +27,7 @@
|
||||
| <a href="#image_base_t_image_base_cast">image\_base\_cast</a> | 转换为image_base对象(供脚本语言使用)。 |
|
||||
| <a href="#image_base_t_image_base_set_anchor">image\_base\_set\_anchor</a> | 设置控件的锚点(仅在WITH_VGCANVAS定义时生效)。 |
|
||||
| <a href="#image_base_t_image_base_set_clickable">image\_base\_set\_clickable</a> | 设置控件是否可以被点击。 |
|
||||
| <a href="#image_base_t_image_base_set_image">image\_base\_set\_image</a> | 设置控件的图片名称。
> 如果需要显示文件系统中的图片,只需将图片名称换成实际的文件名,并加上"file://"前缀即可。 |
|
||||
| <a href="#image_base_t_image_base_set_image">image\_base\_set\_image</a> | 设置控件的图片名称。 |
|
||||
| <a href="#image_base_t_image_base_set_rotation">image\_base\_set\_rotation</a> | 设置控件的旋转角度(仅在WITH_VGCANVAS定义时生效)。 |
|
||||
| <a href="#image_base_t_image_base_set_scale">image\_base\_set\_scale</a> | 设置控件的缩放比例(仅在WITH_VGCANVAS定义时生效)。 |
|
||||
| <a href="#image_base_t_image_base_set_selectable">image\_base\_set\_selectable</a> | 设置控件是否可以被选中。 |
|
||||
@ -97,7 +111,9 @@ ret_t image_base_set_clickable (widget_t* widget, bool_t clickable);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="image_base_t_image_base_set_image">设置控件的图片名称。
> 如果需要显示文件系统中的图片,只需将图片名称换成实际的文件名,并加上"file://"前缀即可。
|
||||
> <p id="image_base_t_image_base_set_image">设置控件的图片名称。
|
||||
|
||||
> 如果需要显示文件系统中的图片,只需将图片名称换成实际的文件名,并加上"file://"前缀即可。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -17,8 +17,8 @@
|
||||
| IMAGE\_DRAW\_REPEAT\_X | 水平方向平铺显示,垂直方向缩放。 |
|
||||
| IMAGE\_DRAW\_REPEAT\_Y | 垂直方向平铺显示,水平方向缩放。 |
|
||||
| IMAGE\_DRAW\_REPEAT\_Y\_INVERSE | 垂直方向平铺显示,水平方向缩放(从底部到顶部)。 |
|
||||
| IMAGE\_DRAW\_PATCH9 | 9宫格显示。 将图片分成等大小的9块,4个角按原大小显示在目标矩形的4个角,左右上下和中间5块分别缩放显示在对应的目标区域。 |
|
||||
| IMAGE\_DRAW\_PATCH3\_X | 水平方向3宫格显示,垂直方向居中显示。 将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。 |
|
||||
| IMAGE\_DRAW\_PATCH3\_Y | 垂直方向3宫格显示,水平方向居中显示。 将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。 |
|
||||
| IMAGE\_DRAW\_PATCH3\_X\_SCALE\_Y | 水平方向3宫格显示,垂直方向缩放显示。 将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。 |
|
||||
| IMAGE\_DRAW\_PATCH3\_Y\_SCALE\_X | 垂直方向3宫格显示,水平方向缩放显示。 将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。 |
|
||||
| IMAGE\_DRAW\_PATCH9 | 9宫格显示。将图片分成等大小的9块,4个角按原大小显示在目标矩形的4个角,左右上下和中间5块分别缩放显示在对应的目标区域。 |
|
||||
| IMAGE\_DRAW\_PATCH3\_X | 水平方向3宫格显示,垂直方向居中显示。将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。 |
|
||||
| IMAGE\_DRAW\_PATCH3\_Y | 垂直方向3宫格显示,水平方向居中显示。将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。 |
|
||||
| IMAGE\_DRAW\_PATCH3\_X\_SCALE\_Y | 水平方向3宫格显示,垂直方向缩放显示。将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。 |
|
||||
| IMAGE\_DRAW\_PATCH3\_Y\_SCALE\_X | 垂直方向3宫格显示,水平方向缩放显示。将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。 |
|
||||
|
@ -2,7 +2,9 @@
|
||||
### 概述
|
||||
![image](images/image_loader_stb_t_0.png)
|
||||
|
||||
stb图片加载器。
stb主要用于加载jpg/png/gif等格式的图片,它功能强大,体积小巧。
|
||||
stb图片加载器。
|
||||
|
||||
stb主要用于加载jpg/png/gif等格式的图片,它功能强大,体积小巧。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="image_loader_stb_t_methods">
|
||||
|
@ -11,10 +11,10 @@
|
||||
| <a href="#image_manager_t_image_manager_create">image\_manager\_create</a> | 创建图片管理器。 |
|
||||
| <a href="#image_manager_t_image_manager_deinit">image\_manager\_deinit</a> | 析构图片管理器。 |
|
||||
| <a href="#image_manager_t_image_manager_destroy">image\_manager\_destroy</a> | 析构并释放图片管理器。 |
|
||||
| <a href="#image_manager_t_image_manager_get_bitmap">image\_manager\_get\_bitmap</a> | 获取指定的图片。
先从缓存查找,如果没找到,再加载并缓存。 |
|
||||
| <a href="#image_manager_t_image_manager_get_bitmap">image\_manager\_get\_bitmap</a> | 获取指定的图片。 |
|
||||
| <a href="#image_manager_t_image_manager_init">image\_manager\_init</a> | 初始化图片管理器。 |
|
||||
| <a href="#image_manager_t_image_manager_set">image\_manager\_set</a> | 设置缺省的图片管理器。 |
|
||||
| <a href="#image_manager_t_image_manager_set_assets_manager">image\_manager\_set\_assets\_manager</a> | 设置资源管理器对象。
之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个图片管理器:
* 一个用于designer本身加载图片。
* 一个用于被设计的窗口加载图片。
这两个图片管理器需要从不同的路径加载资源。 |
|
||||
| <a href="#image_manager_t_image_manager_set_assets_manager">image\_manager\_set\_assets\_manager</a> | 设置资源管理器对象。 |
|
||||
| <a href="#image_manager_t_image_manager_unload_all">image\_manager\_unload\_all</a> | 从图片管理器中卸载全部图片。 |
|
||||
| <a href="#image_manager_t_image_manager_unload_bitmap">image\_manager\_unload\_bitmap</a> | 从图片管理器中卸载指定的图片。 |
|
||||
| <a href="#image_manager_t_image_manager_unload_unused">image\_manager\_unload\_unused</a> | 从图片管理器中卸载指定时间内没有使用的图片。 |
|
||||
@ -103,7 +103,8 @@ ret_t image_manager_destroy (image_manager_t* imm);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="image_manager_t_image_manager_get_bitmap">获取指定的图片。
先从缓存查找,如果没找到,再加载并缓存。
|
||||
> <p id="image_manager_t_image_manager_get_bitmap">获取指定的图片。
|
||||
先从缓存查找,如果没找到,再加载并缓存。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
@ -162,7 +163,15 @@ ret_t image_manager_set (image_manager_t* imm);
|
||||
|
||||
* 函数功能:
|
||||
|
||||
> <p id="image_manager_t_image_manager_set_assets_manager">设置资源管理器对象。
之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个图片管理器:
* 一个用于designer本身加载图片。
* 一个用于被设计的窗口加载图片。
这两个图片管理器需要从不同的路径加载资源。
|
||||
> <p id="image_manager_t_image_manager_set_assets_manager">设置资源管理器对象。
|
||||
|
||||
之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个图片管理器:
|
||||
|
||||
* 一个用于designer本身加载图片。
|
||||
|
||||
* 一个用于被设计的窗口加载图片。
|
||||
|
||||
这两个图片管理器需要从不同的路径加载资源。
|
||||
|
||||
* 函数原型:
|
||||
|
||||
|
@ -2,7 +2,63 @@
|
||||
### 概述
|
||||
![image](images/image_t_0.png)
|
||||
|
||||
图片控件。
用来显示一张静态图片,目前支持bmp/png/jpg等格式。
如果要显示gif文件,请用[gif\_image](gif_image_t.md)。
如果要显示svg文件,请用[svg\_image](svg_image_t.md)。
如果需要支持勾选效果,请设置**selectable**属性。
如果需要支持点击效果,请设置**clickable**属性。
image\_t是[image\_base\_t](image_base_t.md)的子类控件,image\_base\_t的函数均适用于image\_t控件。
在xml中使用"image"标签创建图片控件。如:
```xml
<image style="border" image="earth" draw_type="icon" />
```
> 更多用法请参考:
[image.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/images.xml)
在c代码中使用函数image\_create创建图片控件。如:
```c
widget_t* image = image_create(win, 10, 10, 128, 30);
image_set_image(image, "earth");
```
> 创建之后:
>
> 需要用widget\_set\_image设置图片名称。
>
> 可以用image\_set\_draw\_type设置图片的绘制方式。
> 绘制方式请参考[image\_draw\_type\_t](image_draw_type_t.md)
> 绘制方式的属性值和枚举值:
[image\_draw\_type\_name\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98)
> 完整示例请参考:
[image demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image.c)
可用通过style来设置控件的显示风格,如背景和边框等。如:
```xml
<image>
<style name="border">
<normal border_color="#000000" bg_color="#e0e0e0" text_color="black"/>
</style>
</image>
```
> 更多用法请参考:
[theme
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L313)
|
||||
图片控件。
|
||||
|
||||
用来显示一张静态图片,目前支持bmp/png/jpg等格式。
|
||||
|
||||
如果要显示gif文件,请用[gif\_image](gif_image_t.md)。
|
||||
|
||||
如果要显示svg文件,请用[svg\_image](svg_image_t.md)。
|
||||
|
||||
如果需要支持勾选效果,请设置**selectable**属性。
|
||||
|
||||
如果需要支持点击效果,请设置**clickable**属性。
|
||||
|
||||
image\_t是[image\_base\_t](image_base_t.md)的子类控件,image\_base\_t的函数均适用于image\_t控件。
|
||||
|
||||
在xml中使用"image"标签创建图片控件。如:
|
||||
|
||||
```xml
|
||||
<image style="border" image="earth" draw_type="icon" />
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[image.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/images.xml)
|
||||
|
||||
在c代码中使用函数image\_create创建图片控件。如:
|
||||
|
||||
```c
|
||||
widget_t* image = image_create(win, 10, 10, 128, 30);
|
||||
image_set_image(image, "earth");
|
||||
```
|
||||
|
||||
> 创建之后:
|
||||
>
|
||||
> 需要用widget\_set\_image设置图片名称。
|
||||
>
|
||||
> 可以用image\_set\_draw\_type设置图片的绘制方式。
|
||||
|
||||
> 绘制方式请参考[image\_draw\_type\_t](image_draw_type_t.md)
|
||||
|
||||
> 绘制方式的属性值和枚举值:
|
||||
[image\_draw\_type\_name\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98)
|
||||
|
||||
> 完整示例请参考:
|
||||
[image demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景和边框等。如:
|
||||
|
||||
```xml
|
||||
<image>
|
||||
<style name="border">
|
||||
<normal border_color="#000000" bg_color="#e0e0e0" text_color="black"/>
|
||||
</style>
|
||||
</image>
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[theme
|
||||
default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L313)
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="image_t_methods">
|
||||
|
@ -2,7 +2,39 @@
|
||||
### 概述
|
||||
![image](images/image_value_t_0.png)
|
||||
|
||||
图片值控件。
可以用图片来表示如电池电量、WIFI信号强度和其它各种数值的值。
其原理如下:
* 1.把value以format为格式转换成字符串。
* 2.把每个字符与image(图片文件名前缀)映射成一个图片名。
* 3.最后把这些图片显示出来。
image\_value\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于image\_value\_t控件。
在xml中使用"image\_value"标签创建图片值控件。如:
```xml
<image_value value="0" image="num_" />
```
> 更多用法请参考:
[image\_value](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_value.xml)
在c代码中使用函数image\_value\_create创建图片值控件。如:
```c
image_value = image_value_create(win, 10, 10, 200, 200);
image_value_set_image(image_value, "num_");
image_value_set_value(image_value, 100);
```
> 完整示例请参考:
[image_value demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_value.c)
可用通过style来设置控件的显示风格,如背景颜色和边框等等,不过一般情况并不需要。
|
||||
图片值控件。
|
||||
|
||||
可以用图片来表示如电池电量、WIFI信号强度和其它各种数值的值。
|
||||
|
||||
其原理如下:
|
||||
|
||||
* 1.把value以format为格式转换成字符串。
|
||||
* 2.把每个字符与image(图片文件名前缀)映射成一个图片名。
|
||||
* 3.最后把这些图片显示出来。
|
||||
|
||||
image\_value\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于image\_value\_t控件。
|
||||
|
||||
在xml中使用"image\_value"标签创建图片值控件。如:
|
||||
|
||||
```xml
|
||||
<image_value value="0" image="num_" />
|
||||
```
|
||||
|
||||
> 更多用法请参考:
|
||||
[image\_value](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_value.xml)
|
||||
|
||||
在c代码中使用函数image\_value\_create创建图片值控件。如:
|
||||
|
||||
```c
|
||||
image_value = image_value_create(win, 10, 10, 200, 200);
|
||||
image_value_set_image(image_value, "num_");
|
||||
image_value_set_value(image_value, 100);
|
||||
```
|
||||
|
||||
> 完整示例请参考:
|
||||
[image_value demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_value.c)
|
||||
|
||||
可用通过style来设置控件的显示风格,如背景颜色和边框等等,不过一般情况并不需要。
|
||||
----------------------------------
|
||||
### 函数
|
||||
<p id="image_value_t_methods">
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 7.2 KiB |
BIN
docs/manual/images/clip_view_t_0.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.6 KiB |