mirror of
https://github.com/zlgopen/awtk.git
synced 2025-05-07 19:05:54 +08:00
update docs
This commit is contained in:
parent
b662e23219
commit
9a6d416211
@ -202,7 +202,7 @@ scons
|
||||
./bin/demoui
|
||||
```
|
||||
|
||||
### Ubuntu (version >=16)
|
||||
### Ubuntu (version >=16)
|
||||
|
||||
If scons and the dependent software pack aren't installed, please run the following command in the terminal:
|
||||
|
||||
|
12
README_zh.md
12
README_zh.md
@ -122,7 +122,7 @@
|
||||
* 可以扩展自己的控件布局算法。
|
||||
* 可以扩展自己的对话框高亮策略。
|
||||
* 可以实现自己的 LCD 接口。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 所有扩展组件和内置组件具有相同的待遇。
|
||||
|
||||
### 7. 多种开发语言
|
||||
@ -152,9 +152,9 @@
|
||||
* 内存开销小。
|
||||
* 隔离更彻底。
|
||||
* 可移植到其它 GUI。
|
||||
* 代码小 (~5000 行)。
|
||||
* 代码小(~5000 行)。
|
||||
* 无需学习 AWTK 控件本身的 API。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
|
||||
> 详情请参考:https://github.com/zlgopen/awtk-mvvm
|
||||
|
||||
@ -194,7 +194,7 @@ git pull
|
||||
|
||||
### Mac
|
||||
|
||||
如果没有安装 nodejs, scons 和 sdl2,请在终端运行下面的命令 (假定已安装 brew):
|
||||
如果没有安装 nodejs, scons 和 sdl2,请在终端运行下面的命令 (假定已安装 brew):
|
||||
|
||||
```
|
||||
brew install scons sdl2 node
|
||||
@ -207,7 +207,7 @@ scons
|
||||
./bin/demoui
|
||||
```
|
||||
|
||||
### Ubuntu (版本 >=16)
|
||||
### Ubuntu (版本 >=16)
|
||||
|
||||
如果没有安装 scons 和依赖的软件包,请在终端运行下面的命令:
|
||||
|
||||
@ -226,7 +226,7 @@ scons
|
||||
|
||||
### Windows
|
||||
|
||||
> 请先安装 python(64 位系统要安装 64 位版本的 python),scons 和 Visual Studio C++(版本 >=2017)
|
||||
> 请先安装 python(64 位系统要安装 64 位版本的 python),scons 和 Visual Studio C++(版本 >=2017)
|
||||
|
||||
> 如果没有安装 pywin32,请 pip 安装:
|
||||
|
||||
|
@ -26,6 +26,6 @@ python scripts/update_res.py all
|
||||
|
||||
对于图片来说:
|
||||
|
||||
* .res 文件是将图片文件(如 png/jpg) 转换成可以编译成 C 语言的常量数组。
|
||||
* .res 文件是将图片文件(如 png/jpg)转换成可以编译成 C 语言的常量数组。
|
||||
|
||||
* .data 文件是将图片文件(如 png/jpg) 转换成位图数据,然后进一步转换成可以编译成 C 语言的常量数组。
|
||||
* .data 文件是将图片文件(如 png/jpg)转换成位图数据,然后进一步转换成可以编译成 C 语言的常量数组。
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
注意:
|
||||
|
||||
* 一般来说图标都应该提供 x1/x2/x3 的三种大小。实际操作时,由美术提供 x3 的图片,程序员用工具(如:bin/image_resize) 批量生成 x2 和 x1 的图标。
|
||||
* 一般来说图标都应该提供 x1/x2/x3 的三种大小。实际操作时,由美术提供 x3 的图片,程序员用工具(如:bin/image_resize)批量生成 x2 和 x1 的图标。
|
||||
|
||||
* 对于嵌入式系统,一般只需要 x1 的图片。如果开发环境使用高清的 PC 显示器,为了方便 PC 上看效果,建议也准备一套 x2 的图片。
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
2024/12/19
|
||||
* 增加 wchar32 以及相关函数。
|
||||
* 修复mledit在设置文本时没有检查max_chars和max_lines的问题(感谢泽武提供补丁)
|
||||
* 完善文档(感谢兆坤提供补丁)
|
||||
|
||||
2024/12/13
|
||||
* 增加EVT\_NATIVE\_WINDOW\_FOCUS\_GAINED(感谢兆坤提供补丁)
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
在弹出除对话框时,通常希望让背景窗口变暗或者变模糊,以突显当前的对话框的重要性。我们把让背景窗口变暗或者变模糊的方法称为对话框高亮策略。并把对话框高亮策略抽象成接口,开发者可以自己实现特殊效果的高亮策略,也可以使用缺省的高亮策略。
|
||||
|
||||
缺省的对话框高亮策略是让背景窗口变暗,可以是静态的(固定 alpha),也可以是动态的。动态的高亮策略在对话框打开的动画过程中,背景窗口逐渐变暗,这有更好的视觉效果,但也需要更多的计算开销,开发者可以根据实际情况选用静态还是动态效果。
|
||||
缺省的对话框高亮策略是让背景窗口变暗,可以是静态的(固定 alpha),也可以是动态的。动态的高亮策略在对话框打开的动画过程中,背景窗口逐渐变暗,这有更好的视觉效果,但也需要更多的计算开销,开发者可以根据实际情况选用静态还是动态效果。
|
||||
|
||||
## 二、使用方法
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
* 主要用于对函数的参数或函数的返回值进行检查(这是防御性编程的手段之一)。
|
||||
|
||||
> return\_value\_if\_fail 这个宏并非是 AWTK 原创,而是从 GTK+(或者说 glib) 里拿来的。
|
||||
> return\_value\_if\_fail 这个宏并非是 AWTK 原创,而是从 GTK+(或者说 glib)里拿来的。
|
||||
|
||||
**优点**
|
||||
|
||||
@ -67,7 +67,7 @@ widget_t* slider = widget_lookup(win, "slider", TRUE);
|
||||
double value = SLIDER(slider)->value;
|
||||
```
|
||||
|
||||
> 直接访问控件属性时,需要用对应的宏(如上面的 SLIDER) 进行类型转换。
|
||||
> 直接访问控件属性时,需要用对应的宏(如上面的 SLIDER) 进行类型转换。
|
||||
|
||||
#### 6.Ubuntu 14 上无法启动,有什么办法吗?
|
||||
|
||||
|
@ -1628,7 +1628,7 @@ return RET_OK;
|
||||
|
||||
## 8. 注册常量
|
||||
|
||||
fscript 本身只是一个胶水语言,它负责把各个原生扩展模块组合起来。扩展模块中往往有一些常量,有些常量是了方便记忆(比如 PI),有的常量是降低变化带来的影响(比如 TK\_NAME\_LEN) ,有的常量用于表示特定的意义(比如一些枚举)。为了保持这些常量在 fscript 和原生代码中的一致性,和函数一样,fscript 提供了一种注册机制,让原生模块可以注册常量,这些常量在 fscript 中就可以访问了。
|
||||
fscript 本身只是一个胶水语言,它负责把各个原生扩展模块组合起来。扩展模块中往往有一些常量,有些常量是了方便记忆(比如 PI),有的常量是降低变化带来的影响(比如 TK\_NAME\_LEN),有的常量用于表示特定的意义(比如一些枚举)。为了保持这些常量在 fscript 和原生代码中的一致性,和函数一样,fscript 提供了一种注册机制,让原生模块可以注册常量,这些常量在 fscript 中就可以访问了。
|
||||
|
||||
* 注册常量
|
||||
|
||||
|
13
docs/grid.md
13
docs/grid.md
@ -32,12 +32,13 @@
|
||||
* col(w=?,left_margin=?,right_margin=?,top_maorgin=?,bottom_margin=?)
|
||||
*
|
||||
* * w 为列的宽度(必须存在)。取值在 (0-1] 区间时,视为 grid 控件宽度的比例,否则为像素宽度。
|
||||
* * left_margin(可选,可缩写为 l) 该列左边的边距。
|
||||
* * right_margin(可选,可缩写为 r) 该列右边的边距。
|
||||
* * top_margin(可选,可缩写为 t) 该列顶部的边距。
|
||||
* * bottom_margin(可选,可缩写为 b) 该列底部的边距。
|
||||
* * margin(可选,可缩写为 m) 同时指定上面 4 个边距。
|
||||
* * fill_available(可选,可缩写为f) 填充剩余宽度(只有一列可以指定)。
|
||||
* (如果为负数,将计算结果加上控件的宽度)
|
||||
* * left_margin(可选,可缩写为 l)该列左边的边距。
|
||||
* * right_margin(可选,可缩写为 r)该列右边的边距。
|
||||
* * top_margin(可选,可缩写为 t)该列顶部的边距。
|
||||
* * bottom_margin(可选,可缩写为 b)该列底部的边距。
|
||||
* * margin(可选,可缩写为 m)同时指定上面 4 个边距。
|
||||
* * fill_available(可选,可缩写为f)填充剩余宽度(只有一列可以指定)。
|
||||
*
|
||||
*/
|
||||
char* columns_definition;
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
不过没有关系,毕竟在嵌入式平台,旋转文字的需求不多,如果确实需要,也是有解决方案的。本文介绍一种跨平台的绘制旋转的文字方法。
|
||||
|
||||
字体引擎(比如 stb/freetype) 会把矢量字体转换成一种特殊位图,这个位图只有透明通道 (alpha) 信息,在 AWTK 中用 glyph\_t 表示。[vgcanvas](https://github.com/zlgopen/awtk/blob/master/docs/manual/vgcanvas_t.md) 引擎都支持贴图功能,只要把 glyph\_t 转换成正常 bitmap\_t 对象,就可以利用 vgcanvas 各种变换效果了。
|
||||
字体引擎(比如 stb/freetype)会把矢量字体转换成一种特殊位图,这个位图只有透明通道 (alpha) 信息,在 AWTK 中用 glyph\_t 表示。[vgcanvas](https://github.com/zlgopen/awtk/blob/master/docs/manual/vgcanvas_t.md) 引擎都支持贴图功能,只要把 glyph\_t 转换成正常 bitmap\_t 对象,就可以利用 vgcanvas 各种变换效果了。
|
||||
|
||||
下面这个函数可以把字符串对应的 glyph 转换成位图对象(拿去用就好了):
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
(2)完成菜单的界面设计后,在源代码中注册对应控件的 EVT_CONTEXT_MENU 事件,例如此处为"open:menu_point"按钮注册该事件,在事件的回调函数中打开步骤(1)中设计好的菜单 UI 文件,代码如下:
|
||||
|
||||
```c
|
||||
/* awtk/demos/demo_ui_app.c */
|
||||
/* awtk/demos/demo_ui_old_app.c */
|
||||
static ret_t on_context_menu(void* ctx, event_t* e) {
|
||||
open_window("menu_point", NULL);
|
||||
|
||||
@ -38,6 +38,6 @@ static ret_t install_one(void* ctx, const void* iter) {
|
||||
}
|
||||
```
|
||||
|
||||
(3)运行 awtk/bin/demoui,打开"ContextMenu"页面,鼠标右键点击"Point"按钮,效果如下图所示。
|
||||
(3)运行 awtk/bin/demouiold,打开"ContextMenu"页面,鼠标右键点击"Point"按钮,效果如下图所示。
|
||||
|
||||

|
||||
|
@ -83,7 +83,7 @@
|
||||
* [scroll\_view](manual/scroll_view_t.md) 滚动视图控件。
|
||||
* [mledit](manual/mledit_t.md) 多行编辑器控件。
|
||||
* [line\_number](manual/line_number_t.md) 多行编辑器的行号控件。
|
||||
* [mutable\_image](manual/mutable_image_t.md) mutable 图片控件(用于辅助实现 camera/video)。
|
||||
* [mutable\_image](manual/mutable_image_t.md) mutable 图片控件(用于辅助实现 camera/video)。
|
||||
* [file\_browser\_view](manual/file_browser_view_t.md) 文件浏览控件。
|
||||
|
||||
### 常用常量
|
||||
|
@ -274,7 +274,7 @@ awtk-port
|
||||
| src/platforms/raw/fs\_os.c | 如果没有文件系统请加入,否则请自行实现 fs 接口
|
||||
| src/platforms/raw/mutex\_null.c | 如果没有 mutex 请加入,否则请自行实现 mutex 接口
|
||||
| src/platforms/raw/sys\_tick.c | 如果需要自己实现 sys tick 中断,可以加入
|
||||
| src/vgcanvas | 如果需要矢量图或图片旋转(不支持 lcd\_reg) 请加入 vgcanvas\_nanovg_soft.c,否则加入 vgcanvas\_null.c
|
||||
| src/vgcanvas | 如果需要矢量图或图片旋转(不支持 lcd\_reg)请加入 vgcanvas\_nanovg_soft.c,否则加入 vgcanvas\_null.c
|
||||
| src/widget\_animators | 除了使用 LCD\_REG 的平台外推荐全部加入
|
||||
| src/window\_animators | 加入全部文件,根据宏决定是否启用。
|
||||
| src/ubjson | 不用不加。
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
* **架构设计。** 软件架构对代码的质量有决定性的影响,但好的架构不是预先设计出来的,而是在应对各种需求和变化时,不断完善和优化出来的。常常见到,有人花十年时间打造一件绝世作品,也有人花几年时间让一套软件变成不可维护,这就是说明软件架构是在不断变化的,是变好还是变坏,则取决于开发者的意志。从一开始我们就把 [AWTK](https://github.com/zlgopen/awtk) 的架构优化放在首要地位,无论是增加新的功能还是修改 BUG,每一次改动都对 [AWTK](https://github.com/zlgopen/awtk) 的架构进行改进和优化。[AWTK](https://github.com/zlgopen/awtk) 的设计思想基本来自《系统程序员成长计划》,另外《设计模式》、《实时设计模式》、《软件框架设计的艺术》和《架构整洁之道》等书籍对 [AWTK](https://github.com/zlgopen/awtk) 架构的发展影响也很大。[AWTK](https://github.com/zlgopen/awtk) 的架构还有很大的改进空间,但我们相信通过不断的优化,[AWTK](https://github.com/zlgopen/awtk) 的架构会越来越完善。
|
||||
|
||||
* **单元测试。** 代码的可测试对于单元测试至关重要,如果在设计系统架构时,没有考虑可测试性,那么单元测试是很难写的(请参考 Bob 大叔的《架构整洁之道》)。所幸在设计 [AWTK](https://github.com/zlgopen/awtk) 之初,我们就非常注重它可测试性。针对接口编程和依赖注入 (DIP) 是提高代码可测试重要的方法,在 [AWTK](https://github.com/zlgopen/awtk) 中有大量的接口和依赖注入,这使得 [AWTK](https://github.com/zlgopen/awtk) 绝大部分组件都可以编写单元测试。有人说单元测试只能解决 25%-50%的问题。我赞同这个观点,单元测试不是全能的,但它确实非常有用,我们也在不断完善 [AWTK](https://github.com/zlgopen/awtk) 的测试用例,让单元测试起到更大的作用。
|
||||
* **单元测试。** 代码的可测试对于单元测试至关重要,如果在设计系统架构时,没有考虑可测试性,那么单元测试是很难写的(请参考 Bob 大叔的《架构整洁之道》)。所幸在设计 [AWTK](https://github.com/zlgopen/awtk) 之初,我们就非常注重它可测试性。针对接口编程和依赖注入 (DIP) 是提高代码可测试重要的方法,在 [AWTK](https://github.com/zlgopen/awtk) 中有大量的接口和依赖注入,这使得 [AWTK](https://github.com/zlgopen/awtk) 绝大部分组件都可以编写单元测试。有人说单元测试只能解决 25%-50%的问题。我赞同这个观点,单元测试不是全能的,但它确实非常有用,我们也在不断完善 [AWTK](https://github.com/zlgopen/awtk) 的测试用例,让单元测试起到更大的作用。
|
||||
|
||||
* **Code Review。** Code Review 也是提高代码质量极好的手段,每次增加新的功能或修改 BUG,我们都会去 Review 相关的代码。在 Review 时,经常发现一些丑陋的代码,有时甚至完全不相信这些代码是自己写出来的,这时会庆幸进行了 Code Review,否则这些丑陋的代码就不被发现。通过 Code Review 发现这些丑陋的代码,并及时对其重构,不但让提高了代码的质量,还能有效防止破窗效应的出现。
|
||||
|
||||
|
@ -106,7 +106,7 @@
|
||||
* 可以扩展自己的控件布局算法。
|
||||
* 可以扩展自己的对话框高亮策略。
|
||||
* 可以实现自己的 LCD 接口。
|
||||
* 可以扩展自己的矢量引擎(如使用 skia/cairo)。
|
||||
* 可以扩展自己的矢量引擎(如使用 skia/cairo)。
|
||||
* 所有扩展组件和内置组件具有相同的待遇。
|
||||
|
||||
### 7. 多种开发语言
|
||||
@ -143,7 +143,7 @@
|
||||
* edit 在焦点状态时,如果文本为空,仍然显示 tips。
|
||||
* button/check\_button 在收到回车和空格键时触发 click 事件。
|
||||
* 重构 pointer/key 事件处理流程,分成三个阶段:子控件处理前、子控件和子控件处理后。
|
||||
* 重构 image loader 支持自定义的 image loader(使用 imae\_loader\_register 注册自己的 loader)。
|
||||
* 重构 image loader 支持自定义的 image loader(使用 imae\_loader\_register 注册自己的 loader)。
|
||||
* 因为脚本绑定生成工具只接受一个 IDL 文件,所以增加 merge.js 工具用于将多个 IDL 文件合并成一个 IDL 文件。
|
||||
* 支持用 focusable 属性将控件设置可获得焦点,实现 tab stop 类似的效果。focusable 的控件,其 style 必须具有 focused 状态,否则无法显示。
|
||||
* 窗口在切换到前台和后台时分别触发事件 EVT\_WINDOW\_TO\_FOREGROUND 和 EVT\_WINDOW\_TO\_BACKGROUND
|
||||
|
@ -107,7 +107,7 @@
|
||||
* 可以扩展自己的控件布局算法。
|
||||
* 可以扩展自己的对话框高亮策略。
|
||||
* 可以实现自己的 LCD 接口。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 所有扩展组件和内置组件具有相同的待遇。
|
||||
|
||||
### 7. 多种开发语言
|
||||
|
@ -121,7 +121,7 @@
|
||||
* 可以扩展自己的控件布局算法。
|
||||
* 可以扩展自己的对话框高亮策略。
|
||||
* 可以实现自己的 LCD 接口。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 所有扩展组件和内置组件具有相同的待遇。
|
||||
|
||||
### 7. 多种开发语言
|
||||
@ -150,9 +150,9 @@
|
||||
* 内存开销小。
|
||||
* 隔离更彻底。
|
||||
* 可移植到其它 GUI。
|
||||
* 代码小 (~5000 行)。
|
||||
* 代码小(~5000 行)。
|
||||
* 无需学习 AWTK 控件本身的 API。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
|
||||
> 详情请参考:https://github.com/zlgopen/awtk-mvvm
|
||||
|
||||
|
@ -123,7 +123,7 @@
|
||||
* 可以扩展自己的控件布局算法。
|
||||
* 可以扩展自己的对话框高亮策略。
|
||||
* 可以实现自己的 LCD 接口。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 所有扩展组件和内置组件具有相同的待遇。
|
||||
|
||||
### 7. 多种开发语言
|
||||
@ -152,9 +152,9 @@
|
||||
* 内存开销小。
|
||||
* 隔离更彻底。
|
||||
* 可移植到其它 GUI。
|
||||
* 代码小 (~5000 行)。
|
||||
* 代码小(~5000 行)。
|
||||
* 无需学习 AWTK 控件本身的 API。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
|
||||
> 详情请参考:https://github.com/zlgopen/awtk-mvvm
|
||||
|
||||
|
@ -122,7 +122,7 @@
|
||||
* 可以扩展自己的控件布局算法。
|
||||
* 可以扩展自己的对话框高亮策略。
|
||||
* 可以实现自己的 LCD 接口。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 所有扩展组件和内置组件具有相同的待遇。
|
||||
|
||||
### 7. 多种开发语言
|
||||
@ -151,9 +151,9 @@
|
||||
* 内存开销小。
|
||||
* 隔离更彻底。
|
||||
* 可移植到其它 GUI。
|
||||
* 代码小 (~5000 行)。
|
||||
* 代码小(~5000 行)。
|
||||
* 无需学习 AWTK 控件本身的 API。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
|
||||
> 详情请参考:https://github.com/zlgopen/awtk-mvvm
|
||||
|
||||
|
@ -122,7 +122,7 @@
|
||||
* 可以扩展自己的控件布局算法。
|
||||
* 可以扩展自己的对话框高亮策略。
|
||||
* 可以实现自己的 LCD 接口。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 所有扩展组件和内置组件具有相同的待遇。
|
||||
|
||||
### 7. 多种开发语言
|
||||
@ -152,9 +152,9 @@
|
||||
* 内存开销小。
|
||||
* 隔离更彻底。
|
||||
* 可移植到其它 GUI。
|
||||
* 代码小 (~5000 行)。
|
||||
* 代码小(~5000 行)。
|
||||
* 无需学习 AWTK 控件本身的 API。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
|
||||
> 详情请参考:https://github.com/zlgopen/awtk-mvvm
|
||||
|
||||
|
@ -122,7 +122,7 @@
|
||||
* 可以扩展自己的控件布局算法。
|
||||
* 可以扩展自己的对话框高亮策略。
|
||||
* 可以实现自己的 LCD 接口。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
|
||||
* 所有扩展组件和内置组件具有相同的待遇。
|
||||
|
||||
### 7. 多种开发语言
|
||||
@ -152,9 +152,9 @@
|
||||
* 内存开销小。
|
||||
* 隔离更彻底。
|
||||
* 可移植到其它 GUI。
|
||||
* 代码小 (~5000 行)。
|
||||
* 代码小(~5000 行)。
|
||||
* 无需学习 AWTK 控件本身的 API。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
* 支持多种编程语言(目前支持 C/JS)。
|
||||
|
||||
> 详情请参考:https://github.com/zlgopen/awtk-mvvm
|
||||
|
||||
|
@ -77,4 +77,4 @@ ret_t application_init() {
|
||||
|
||||
> 其中 m < n < k
|
||||
|
||||
此时可以把 screen\_saver\_time 设置短一点(比如 5s),每次收到屏保事件则更新用户没有操作的时间,根据这个时间做适当的处理。
|
||||
此时可以把 screen\_saver\_time 设置短一点(比如 5s),每次收到屏保事件则更新用户没有操作的时间,根据这个时间做适当的处理。
|
||||
|
@ -6,7 +6,7 @@ system\_bar 是可选的,可以启用也可以不启用。如果要启用 syst
|
||||
|
||||
## 一、创建 system\_bar 窗口
|
||||
|
||||
system\_bar 和普通窗口类似,你可以用代码创建,也可以用 XML UI 描述文件创建,比如下面是 demoui 中的 system\_bar 的 XML UI 描述文件 (system\_bar.xml):
|
||||
system\_bar 和普通窗口类似,你可以用代码创建,也可以用 XML UI 描述文件创建,比如下面是 demouiold 中的 system\_bar 的 XML UI 描述文件 (system\_bar.xml):
|
||||
|
||||
```
|
||||
<system_bar h="30">
|
||||
@ -49,7 +49,7 @@ window_open("system_bar");
|
||||
|
||||
## 三、style
|
||||
|
||||
system\_bar 的 style 和其它窗口一样,可以在 styles 目录下放一个与窗口同名的 style 文件 (system\_bar.xml)。比如下面是 demoui 中的 system\_bar 的 style(system\_bar.xml):
|
||||
system\_bar 的 style 和其它窗口一样,可以在 styles 目录下放一个与窗口同名的 style 文件 (system\_bar.xml)。比如下面是 demouiold 中的 system\_bar 的 style(system\_bar.xml):
|
||||
|
||||
```
|
||||
<system_bar>
|
||||
|
@ -134,7 +134,7 @@ XML UI 文件写好后,可以用预览工具预览。如:
|
||||
assets_manager_add((const asset_info_t*)ui_window1);
|
||||
```
|
||||
|
||||
在需要打开该窗口时,调用 window\_open 函数(对话框用 dialog\_open):
|
||||
在需要打开该窗口时,调用 window\_open 函数(对话框用 dialog\_open):
|
||||
|
||||
```
|
||||
widget_t* win = window_open(name);
|
||||
|
@ -9,8 +9,8 @@ AWTK 目前支持的动画有:
|
||||
* move:通过改变控件的位置形成动画效果。
|
||||
* value:通过改变控件的值形成动画效果。
|
||||
* opacity:通过改变控件的透明度形成动画效果。
|
||||
* scale:通过改变控件的缩放比例形成动画效果(目前需要 vgcanvas)。
|
||||
* rotation:通过改变控件的旋转角度形成动画效果(目前需要 vgcanvas)。
|
||||
* scale:通过改变控件的缩放比例形成动画效果(目前需要 vgcanvas)。
|
||||
* rotation:通过改变控件的旋转角度形成动画效果(目前需要 vgcanvas)。
|
||||
* 其它任何数值型的属性。如 x/y/w/h 等等。
|
||||
|
||||
### 二、主要特色
|
||||
@ -179,14 +179,14 @@ animation 参数的格式,类似与函数调用。多个参数可以用『;』
|
||||
|
||||
#### 1. 公共参数
|
||||
|
||||
* name 动画名称(缺省为动画的类型如 move)。
|
||||
* name 动画名称(缺省为动画的类型如 move)。
|
||||
* delay 延迟启动时间(毫秒)。
|
||||
* duration 时长(毫秒)。
|
||||
* easing 插值算法(见后面描述)。
|
||||
* yoyo\_times 往返的次数 (x2),为 0 视为永久播放。
|
||||
* repeat\_times 重复的次数,为 0 视为永久播放。
|
||||
* auto\_start 创建后自动启动(缺省为 true)。
|
||||
* auto\_destroy 完成后自动销毁(缺省为 true)。
|
||||
* auto\_start 创建后自动启动(缺省为 true)。
|
||||
* auto\_destroy 完成后自动销毁(缺省为 true)。
|
||||
|
||||
> 以下参数的缺省值为控件当前对应的值。
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
# SHDLC: 点对点可靠传输协议的设计与实现
|
||||
|
||||
SHDLC:Simplified HDLC(简化版 HDLC)。
|
||||
SHDLC:Simplified HDLC(简化版 HDLC)。
|
||||
|
||||
> 本协议参考了 [HDLC](https://baike.baidu.com/item/HDLC) 协议和 [PPP](https://baike.baidu.com/item/PPP/6660214) 协议,并采用了类似的帧格式,保持了 HDLC 的简单,又吸取了 PPP 数据压缩的特性。
|
||||
|
||||
@ -58,7 +58,7 @@ x**0 + x**5 + x**12 + x**16
|
||||
|
||||
### 3.3 数据压缩
|
||||
|
||||
数据压缩是可选的。如数据包太短,压缩之后数据可能反而会变长。所以一般数据包的长度超出一定值(如 1024) 时才对数据进行压缩。所以在数据包头需要一个字段标识该数据包是否被压缩。
|
||||
数据压缩是可选的。如数据包太短,压缩之后数据可能反而会变长。所以一般数据包的长度超出一定值(如 1024)时才对数据进行压缩。所以在数据包头需要一个字段标识该数据包是否被压缩。
|
||||
|
||||
压缩算法采用 zlib 兼容的算法。
|
||||
|
||||
|
@ -66,14 +66,14 @@ typedef struct _grid_t {
|
||||
*
|
||||
* col(w=?,left_margin=?,right_margin=?,top_maorgin=?,bottom_margin=?)
|
||||
*
|
||||
* * w 为列的宽度(必须存在)。取值在(0-1]区间时,视为grid控件宽度的比例,否则为像素宽度。
|
||||
* (如果为负数,将计算结果加上控件的宽度)
|
||||
* * left_margin(可选,可缩写为l) 该列左边的边距。
|
||||
* * right_margin(可选,可缩写为r) 该列右边的边距。
|
||||
* * top_margin(可选,可缩写为t) 该列顶部的边距。
|
||||
* * bottom_margin(可选,可缩写为b) 该列底部的边距。
|
||||
* * margin(可选,可缩写为m) 同时指定上面4个边距。
|
||||
* * fill_available(可选,可缩写为f) 填充剩余宽度(只有一列可以指定)。
|
||||
* * w 为列的宽度(必须存在)。取值在 (0-1] 区间时,视为 grid 控件宽度的比例,否则为像素宽度。
|
||||
* (如果为负数,将计算结果加上控件的宽度)
|
||||
* * left_margin(可选,可缩写为 l)该列左边的边距。
|
||||
* * right_margin(可选,可缩写为 r)该列右边的边距。
|
||||
* * top_margin(可选,可缩写为 t)该列顶部的边距。
|
||||
* * bottom_margin(可选,可缩写为 b)该列底部的边距。
|
||||
* * margin(可选,可缩写为 m)同时指定上面 4 个边距。
|
||||
* * fill_available(可选,可缩写为f)填充剩余宽度(只有一列可以指定)。
|
||||
*
|
||||
*/
|
||||
char* columns_definition;
|
||||
|
@ -13,7 +13,7 @@ Usage: ./bin/fontgen ttf_filename str_filename out_filename font_size [mono|4bit
|
||||
```
|
||||
|
||||
* ttf\_filename tff 文件名。
|
||||
* str\_filename 字符集合 (需要哪些字符,就把那些字符放在本文件中,UTF-8 编码,参考 demos/assets/default/raw/fonts/text.txt)。
|
||||
* str\_filename 字符集合 (需要哪些字符,就把那些字符放在本文件中,UTF-8 编码,参考 demos/assets/default/raw/fonts/text.txt)。
|
||||
* output\_filename 输出文件名。如果文件扩展名为“.bin“,生成二进制格式,否则生成 C 语言常量数据。
|
||||
* font\_size 字体大小(像素)。
|
||||
* mono 是否生成单色字体,目前只有启用 freetype 时才有效。可选。
|
||||
|
Loading…
x
Reference in New Issue
Block a user