mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-29 18:48:09 +08:00
update docs
This commit is contained in:
parent
fc02053641
commit
5960ec3bac
@ -1,22 +1,22 @@
|
||||
<window anim_hint="htranslate">
|
||||
<row x="10" y="30" w="100%" h="150" children_layout="default(row=1,col=3)">
|
||||
<text_selector name="year" options="2000-2050" selected_index="9">
|
||||
<property name="on:value_changed">
|
||||
<row x="10" y="30" w="100%" h="150" children_layout="default(row=1,col=3)">
|
||||
<text_selector name="year" options="2000-2050" selected_index="9">
|
||||
<property name="on:value_changed">
|
||||
<![CDATA[
|
||||
a = get_days_of_month(widget_get(parent.year, value), widget_get(parent.month, value))
|
||||
widget_set(parent.day, "options", iformat( "1-%d", a) + "%02d")
|
||||
a = get_days_of_month(widget_get(parent.year, value), widget_get(parent.month, value))
|
||||
widget_set(parent.day, "options", iformat( "1-%d", a) + "%02d")
|
||||
]]>
|
||||
</property>
|
||||
</text_selector>
|
||||
<text_selector name="month" options="1-12-%02d" selected_index="8" loop_options="true">
|
||||
<property name="on:value_changed">
|
||||
<![CDATA[
|
||||
a = get_days_of_month(widget_get(parent.year, value), widget_get(parent.month, value))
|
||||
widget_set(parent.day, "options", iformat( "1-%d", a) + "%02d")
|
||||
]]>
|
||||
</property>
|
||||
</text_selector>
|
||||
<text_selector name="day" options="1-31-%02d" selected_index="9" />
|
||||
</row>
|
||||
<button x="center" y="middle" w="50%" h="30" text="close" on:click="back()" />
|
||||
</property>
|
||||
</text_selector>
|
||||
<text_selector name="month" options="1-12-%02d" selected_index="8" loop_options="true">
|
||||
<property name="on:value_changed">
|
||||
<![CDATA[
|
||||
a = get_days_of_month(widget_get(parent.year, value), widget_get(parent.month, value))
|
||||
widget_set(parent.day, "options", iformat( "1-%d", a) + "%02d")
|
||||
]]>
|
||||
</property>
|
||||
</text_selector>
|
||||
<text_selector name="day" options="1-31-%02d" selected_index="9" />
|
||||
</row>
|
||||
<button x="center" y="middle" w="50%" h="30" text="close" on:click="back()" />
|
||||
</window>
|
||||
|
220
docs/fscript.md
220
docs/fscript.md
@ -40,7 +40,7 @@ print("hello fscript")
|
||||
|
||||
如:
|
||||
```
|
||||
./bin/runFScript @tests/testdata/demo_while1.fs
|
||||
./bin/runFScript @tests/fscripts/demo_while1.fs
|
||||
```
|
||||
|
||||
## 3. 语法
|
||||
@ -51,6 +51,8 @@ print("hello fscript")
|
||||
* 整数类型 (int32)。支持十进制、二进制和十六进制。
|
||||
* 字符串类型 (string)。UTF-8 字符串,用英文双引号扩起来。
|
||||
* 布尔类型 (bool)。标准取值为:true 和 false,非 0 的数值视为 true。
|
||||
* 可以通过扩展实现混合数据类型的数组、固定类型的数组和 map。
|
||||
* 可以通过类型转换函数得到各种基本类型。如 int8/int16/int32/int64/uint8/uint16/uint32/uintg64/float/double。
|
||||
|
||||
### 注释
|
||||
|
||||
@ -657,7 +659,7 @@ exec("clear", "all")
|
||||
|
||||
#### join
|
||||
|
||||
> 将多个变量用指定的分隔符拼接起来(最多 7 个字符串),形成一个字符串。
|
||||
> 将多个变量用指定的分隔符拼接起来,形成一个字符串。
|
||||
|
||||
----------------------------
|
||||
|
||||
@ -729,7 +731,7 @@ tolower("ABC")
|
||||
|
||||
#### trim
|
||||
|
||||
> 将字符串转换成小写。
|
||||
> 去掉字符串两端的空白字符串。
|
||||
----------------------------
|
||||
|
||||
##### 原型
|
||||
@ -807,6 +809,7 @@ contains("ab cd", "ab")
|
||||
```
|
||||
sum(n1,n2...)
|
||||
+(n1,n2...)
|
||||
n1+n2
|
||||
```
|
||||
|
||||
#### 示例
|
||||
@ -815,18 +818,6 @@ sum(n1,n2...)
|
||||
print(sum(1, 2, 3))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(sum(1, 2, 3))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
6.000000
|
||||
```
|
||||
|
||||
#### sub
|
||||
|
||||
> 计算两个数之差。
|
||||
@ -837,26 +828,14 @@ print(sum(1, 2, 3))
|
||||
```
|
||||
sub(n1,n2)
|
||||
或
|
||||
-(n1,n2)
|
||||
n1-n2
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(sub(2, 1))
|
||||
print(-(2, 1))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(sub(2, 1))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
1.000000
|
||||
print(2 - 1)
|
||||
```
|
||||
|
||||
#### mul
|
||||
@ -869,26 +848,14 @@ print(-(2, 1))
|
||||
```
|
||||
mul(n1,n2)
|
||||
或
|
||||
*(n1,n2)
|
||||
n1*n2
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(mul(2, 1))
|
||||
print(*(2, 1))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(mul(2, 1))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
2.000000
|
||||
print(2 * 1)
|
||||
```
|
||||
|
||||
#### div
|
||||
@ -901,26 +868,14 @@ print(*(2, 1))
|
||||
```
|
||||
div(n1,n2)
|
||||
或
|
||||
/(n1,n2)
|
||||
n1/n2
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(div(2, 1))
|
||||
print(/(2, 1))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(div(2, 1))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
2.000000
|
||||
print(2/1)
|
||||
```
|
||||
|
||||
#### %
|
||||
@ -931,27 +886,15 @@ print(/(2, 1))
|
||||
##### 原型
|
||||
|
||||
```
|
||||
%(n1,n2)
|
||||
n1%n2
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(%(23, 7))
|
||||
print(23%7)
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(%(23, 7))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
2.000000
|
||||
```
|
||||
|
||||
#### and
|
||||
|
||||
> 逻辑与运算。
|
||||
@ -961,26 +904,14 @@ print(%(23, 7))
|
||||
|
||||
```
|
||||
and(n1,n2)
|
||||
&&(n1,n2)
|
||||
n1 && n2
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(&&(true, false))
|
||||
print(&&(true, true))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(and(true, true))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
true
|
||||
print(true && false)
|
||||
print(true && true)
|
||||
```
|
||||
|
||||
#### or
|
||||
@ -992,26 +923,13 @@ true
|
||||
|
||||
```
|
||||
or(n1,n2)
|
||||
||(n1,n2)
|
||||
n1 || n2
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(and(true, false))
|
||||
print(||(true, true))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(or(true, false))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
true
|
||||
print(a || b)
|
||||
```
|
||||
|
||||
#### not
|
||||
@ -1033,105 +951,6 @@ print(not(true))
|
||||
print(!(false))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(not(false))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
true
|
||||
```
|
||||
|
||||
#### &
|
||||
|
||||
> 位与运算。
|
||||
----------------------------
|
||||
|
||||
##### 原型
|
||||
|
||||
```
|
||||
&(n1,n2)
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(&(1, 1))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(&(1, 2))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
0
|
||||
```
|
||||
|
||||
#### |
|
||||
|
||||
> 位或运算。
|
||||
----------------------------
|
||||
|
||||
##### 原型
|
||||
|
||||
```
|
||||
|(1,2)
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(|(1, 2))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(|(1, 2))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
3
|
||||
```
|
||||
|
||||
#### ~
|
||||
|
||||
> 按位取反运算。
|
||||
----------------------------
|
||||
|
||||
##### 原型
|
||||
|
||||
```
|
||||
~(n1)
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(~(1))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(iformat("0x%x", ~(1)))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
0xfffffffe
|
||||
```
|
||||
|
||||
### 比较函数
|
||||
|
||||
> 支持字符串比较。
|
||||
@ -1455,5 +1274,6 @@ runFScript 的第二个参数可以指定运行次数,方便测量某个函数
|
||||
|
||||
### 7. 扩展函数
|
||||
|
||||
* [位操作扩展函数](fscript_bits.md)
|
||||
* [数学扩展函数](fscript_math.md)
|
||||
* [widget 扩展函数](fscript_widget.md)
|
||||
|
88
docs/fscript_bits.md
Normal file
88
docs/fscript_bits.md
Normal file
@ -0,0 +1,88 @@
|
||||
### 位操作扩展函数
|
||||
|
||||
#### &
|
||||
|
||||
> 位与运算。
|
||||
----------------------------
|
||||
|
||||
##### 原型
|
||||
|
||||
```
|
||||
&(n1,n2)
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(&(1, 1))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(&(1, 2))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
0
|
||||
```
|
||||
|
||||
#### |
|
||||
|
||||
> 位或运算。
|
||||
----------------------------
|
||||
|
||||
##### 原型
|
||||
|
||||
```
|
||||
|(1,2)
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(|(1, 2))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(|(1, 2))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
3
|
||||
```
|
||||
|
||||
#### ~
|
||||
|
||||
> 按位取反运算。
|
||||
----------------------------
|
||||
|
||||
##### 原型
|
||||
|
||||
```
|
||||
~(n1)
|
||||
```
|
||||
|
||||
#### 示例
|
||||
|
||||
```
|
||||
print(~(1))
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```
|
||||
./bin/runFScript 'print(iformat("0x%x", ~(1)))'
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```
|
||||
0xfffffffe
|
||||
```
|
@ -7,7 +7,7 @@
|
||||
|
||||
fscript 和其它主流脚本 (lua/js) 相比,最大的优势就是体积小巧,而且 AWTK 本身依赖于 fscript,所以使用 fscript 增加额外代码可以忽略不计数。
|
||||
|
||||
在 AWTK 的 UI 文件中直接嵌入 fscript, 有如下优势:
|
||||
fscript 并不是要取代 C 或 JS 来开发 AWTK 应用程序,而是一个有益的补充,加快应用程序的开发,在 AWTK 的 UI 文件中直接嵌入 fscript, 有如下优势:
|
||||
|
||||
* 1. 在特定情况下,可以极大简化程序的实现。
|
||||
|
||||
@ -31,6 +31,34 @@ fscript 和其它主流脚本 (lua/js) 相比,最大的优势就是体积小
|
||||
|
||||
> 理论上,模型是不能操作界面的,但在特殊情况下,确实有操作界面的需求。在保持视图和模型独立的前提下,fscript 让操作界面成为可能。
|
||||
|
||||
* 4. 方便生成自定义的组件。很多情况下,需要对现有的控件进行改进和组合,生成新的控件。
|
||||
|
||||
比如,我们需要用 text selector 生成一个日期选择控件,用三个 text selector 控件组合成日期选择控件,分别选择年月日。但是 text selector 之间是独立的,而年月和日则是有依赖关系,比如 1 月的天数是 31 天,2 月的天数与年份有关。当然我们可以用 C 代码来建立三者的关系,而用 fscript,不但实现要简单一些,而且由于 xml 和代码在一起,发布和重用也非常方便。
|
||||
|
||||
```xml
|
||||
<row x="10" y="30" w="100%" h="150" children_layout="default(row=1,col=3)">
|
||||
<text_selector name="year" options="2000-2050" selected_index="9">
|
||||
<property name="on:value_changed">
|
||||
<![CDATA[
|
||||
a = get_days_of_month(widget_get(parent.year, value), widget_get(parent.month, value))
|
||||
widget_set(parent.day, "options", iformat( "1-%d", a) + "%02d")
|
||||
]]>
|
||||
</property>
|
||||
</text_selector>
|
||||
<text_selector name="month" options="1-12-%02d" selected_index="8" loop_options="true">
|
||||
<property name="on:value_changed">
|
||||
<![CDATA[
|
||||
a = get_days_of_month(widget_get(parent.year, value), widget_get(parent.month, value))
|
||||
widget_set(parent.day, "options", iformat( "1-%d", a) + "%02d")
|
||||
]]>
|
||||
</property>
|
||||
</text_selector>
|
||||
<text_selector name="day" options="1-31-%02d" selected_index="9" />
|
||||
</row>
|
||||
```
|
||||
|
||||
* 5. 不需要重新编译代码。如果资源文件是在文件系统中,直接更新资源即可,而无需编译和下载固件。
|
||||
|
||||
## 2. 事件处理函数
|
||||
|
||||
添加事件处理函数,实际上是增加一些自定义的属性,属性名以 on: 开头,紧跟事件名称。如:
|
||||
|
@ -79,6 +79,8 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
}
|
||||
tk_mem_dump();
|
||||
app_conf_set_int("foobar", 1);
|
||||
app_conf_save();
|
||||
data_writer_factory_destroy(data_writer_factory());
|
||||
data_reader_factory_destroy(data_reader_factory());
|
||||
data_writer_factory_set(NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user