update docs

This commit is contained in:
lixianjing 2024-12-19 17:57:11 +08:00
parent b662e23219
commit 9a6d416211
28 changed files with 66 additions and 64 deletions

View File

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

View File

@ -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 安装:

View File

@ -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 语言的常量数组。

View File

@ -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 的图片。

View File

@ -3,6 +3,7 @@
2024/12/19
* 增加 wchar32 以及相关函数。
* 修复mledit在设置文本时没有检查max_chars和max_lines的问题(感谢泽武提供补丁)
* 完善文档(感谢兆坤提供补丁)
2024/12/13
* 增加EVT\_NATIVE\_WINDOW\_FOCUS\_GAINED(感谢兆坤提供补丁)

View File

@ -4,7 +4,7 @@
在弹出除对话框时,通常希望让背景窗口变暗或者变模糊,以突显当前的对话框的重要性。我们把让背景窗口变暗或者变模糊的方法称为对话框高亮策略。并把对话框高亮策略抽象成接口,开发者可以自己实现特殊效果的高亮策略,也可以使用缺省的高亮策略。
缺省的对话框高亮策略是让背景窗口变暗,可以是静态的(固定 alpha),也可以是动态的。动态的高亮策略在对话框打开的动画过程中,背景窗口逐渐变暗,这有更好的视觉效果,但也需要更多的计算开销,开发者可以根据实际情况选用静态还是动态效果。
缺省的对话框高亮策略是让背景窗口变暗,可以是静态的(固定 alpha,也可以是动态的。动态的高亮策略在对话框打开的动画过程中,背景窗口逐渐变暗,这有更好的视觉效果,但也需要更多的计算开销,开发者可以根据实际情况选用静态还是动态效果。
## 二、使用方法

View File

@ -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 上无法启动,有什么办法吗?

View File

@ -1628,7 +1628,7 @@ return RET_OK;
## 8. 注册常量
fscript 本身只是一个胶水语言,它负责把各个原生扩展模块组合起来。扩展模块中往往有一些常量,有些常量是了方便记忆(比如 PI),有的常量是降低变化带来的影响(比如 TK\_NAME\_LEN) ,有的常量用于表示特定的意义(比如一些枚举)。为了保持这些常量在 fscript 和原生代码中的一致性和函数一样fscript 提供了一种注册机制,让原生模块可以注册常量,这些常量在 fscript 中就可以访问了。
fscript 本身只是一个胶水语言,它负责把各个原生扩展模块组合起来。扩展模块中往往有一些常量,有些常量是了方便记忆(比如 PI),有的常量是降低变化带来的影响(比如 TK\_NAME\_LEN,有的常量用于表示特定的意义(比如一些枚举)。为了保持这些常量在 fscript 和原生代码中的一致性和函数一样fscript 提供了一种注册机制,让原生模块可以注册常量,这些常量在 fscript 中就可以访问了。
* 注册常量

View File

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

View File

@ -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 转换成位图对象(拿去用就好了):

View File

@ -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"按钮,效果如下图所示。
![右键弹出菜单](./images/popup_menu.png)

View File

@ -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) 文件浏览控件。
### 常用常量

View File

@ -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 | 不用不加。

View File

@ -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 发现这些丑陋的代码,并及时对其重构,不但让提高了代码的质量,还能有效防止破窗效应的出现。

View File

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

View File

@ -107,7 +107,7 @@
* 可以扩展自己的控件布局算法。
* 可以扩展自己的对话框高亮策略。
* 可以实现自己的 LCD 接口。
* 可以扩展自己的矢量引擎 (如使用 skia/cairo)
* 可以扩展自己的矢量引擎 (如使用 skia/cairo
* 所有扩展组件和内置组件具有相同的待遇。
### 7. 多种开发语言

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -77,4 +77,4 @@ ret_t application_init() {
> 其中 m < n < k
此时可以把 screen\_saver\_time 设置短一点(比如 5s),每次收到屏保事件则更新用户没有操作的时间,根据这个时间做适当的处理。
此时可以把 screen\_saver\_time 设置短一点(比如 5s,每次收到屏保事件则更新用户没有操作的时间,根据这个时间做适当的处理。

View File

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

View File

@ -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);

View File

@ -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
> 以下参数的缺省值为控件当前对应的值。

View File

@ -1,7 +1,7 @@
# SHDLC: 点对点可靠传输协议的设计与实现
SHDLCSimplified HDLC简化版 HDLC)
SHDLCSimplified 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 兼容的算法。

View File

@ -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_availablef
*
*/
char* columns_definition;

View File

@ -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 时才有效。可选。