From ac715579b399f09913a24a8e27b04036f89f4ea0 Mon Sep 17 00:00:00 2001 From: xianjimli Date: Fri, 13 Dec 2019 12:16:14 +0800 Subject: [PATCH] improve script binding --- src/base/bitmap.h | 1 + src/tkc/rect.h | 3 + src/tkc/value.h | 1 + tools/idl_gen/idl.json | 5773 ++++++++++++++++++++-------------------- tools/idl_gen/index.js | 11 +- 5 files changed, 2954 insertions(+), 2835 deletions(-) diff --git a/src/base/bitmap.h b/src/base/bitmap.h index a9fca8971..bf5768cc7 100644 --- a/src/base/bitmap.h +++ b/src/base/bitmap.h @@ -32,6 +32,7 @@ typedef ret_t (*bitmap_destroy_t)(bitmap_t* bitmap); /** * @class bitmap_t + * @order -9 * @annotation ["scriptable"] * 位图。 */ diff --git a/src/tkc/rect.h b/src/tkc/rect.h index be327f1c7..04f0aaa79 100644 --- a/src/tkc/rect.h +++ b/src/tkc/rect.h @@ -29,6 +29,7 @@ BEGIN_C_DECLS /** * @class point_t * @annotation ["scriptable"] + * @order -10 * 点。包括一个x坐标和一个y坐标。 */ typedef struct _point_t { @@ -48,6 +49,7 @@ typedef struct _point_t { /** * @class pointf_t + * @order -10 * @annotation ["scriptable"] * 点(浮点数)。包括一个x坐标和一个y坐标。 */ @@ -68,6 +70,7 @@ typedef struct _pointf_t { /** * @class rect_t + * @order -10 * @annotation ["scriptable"] * 矩形。包括一个x坐标、y坐标、宽度和高度。 */ diff --git a/src/tkc/value.h b/src/tkc/value.h index ad9bbad85..11ca002fa 100644 --- a/src/tkc/value.h +++ b/src/tkc/value.h @@ -151,6 +151,7 @@ typedef struct _sized_str_t { /** * @class value_t + * @order -10 * @annotation ["scriptable"] * 一个通用数据类型,用来存放整数、浮点数、字符串和其它对象。 * diff --git a/tools/idl_gen/idl.json b/tools/idl_gen/idl.json index 4bb0ac24d..f6b6358c5 100644 --- a/tools/idl_gen/idl.json +++ b/tools/idl_gen/idl.json @@ -5,130 +5,1037 @@ { "params": [ { - "type": "wh_t", - "name": "w", - "desc": "LCD宽度。" + "type": "value_t*", + "name": "v", + "desc": "value对象。" }, { - "type": "wh_t", - "name": "h", - "desc": "LCD高度。" - }, - { - "type": "app_type_t", - "name": "app_type", - "desc": "应用程序的类型。" - }, - { - "type": "const char*", - "name": "app_name", - "desc": "应用程序的名称(必须为常量字符串)。" - }, - { - "type": "const char*", - "name": "app_root", - "desc": "应用程序的根目录,用于定位资源文件(必须为常量字符串)。" + "type": "bool_t", + "name": "value", + "desc": "待设置的值。" } ], - "annotation": {}, - "desc": "初始化TK。", - "name": "tk_init", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [], - "annotation": {}, - "desc": "进入TK事件主循环。", - "name": "tk_run", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [], "annotation": { - "static": true, "scriptable": true }, - "desc": "退出TK事件主循环。", - "name": "tk_quit", - "alias": "global_quit", + "desc": "设置类型为bool的值。", + "name": "value_set_bool", "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [], - "annotation": { - "static": true, - "scriptable": true - }, - "desc": "获取全局指针的X坐标。", - "name": "tk_get_pointer_x", - "alias": "global_get_pointer_x", - "return": { - "type": "int32_t", - "desc": "返回全局指针的X坐标。" - } - }, - { - "params": [], - "annotation": { - "static": true, - "scriptable": true - }, - "desc": "获取全局指针的Y坐标。", - "name": "tk_get_pointer_y", - "alias": "global_get_pointer_y", - "return": { - "type": "int32_t", - "desc": "返回全局指针的X坐标。" - } - }, - { - "params": [], - "annotation": { - "static": true, - "scriptable": true - }, - "desc": "获取全局指针是否按下。", - "name": "tk_is_pointer_pressed", - "alias": "global_is_pointer_pressed", - "return": { - "type": "bool_t", - "desc": "返回全局指针是否按下。" + "type": "value_t*", + "desc": "value对象本身。" } }, { "params": [ { - "type": "int", - "name": "orientation", - "desc": "旋转方向。" + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为bool的值。", + "name": "value_bool", + "return": { + "type": "bool_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "int8_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为int8的值。", + "name": "value_set_int8", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为int8的值。", + "name": "value_int8", + "return": { + "type": "int8_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "uint8_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为uint8的值。", + "name": "value_set_uint8", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为uint8的值。", + "name": "value_uint8", + "return": { + "type": "int8_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "int16_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为int16的值。", + "name": "value_set_int16", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为int16的值。", + "name": "value_int16", + "return": { + "type": "int16_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "uint16_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为uint16的值。", + "name": "value_set_uint16", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为uint16的值。", + "name": "value_uint16", + "return": { + "type": "uint16_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "int32_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为int32的值。", + "name": "value_set_int32", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为int32的值。", + "name": "value_int32", + "return": { + "type": "int32_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "uint32_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为uint32的值。", + "name": "value_set_uint32", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" } ], "annotation": {}, - "desc": "设置屏幕的旋转方向(XXX:目前仅支持0度和90度)。", - "name": "tk_set_lcd_orientation", + "desc": "获取类型为uint32的值。", + "name": "value_uint32", + "return": { + "type": "uint32_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "int64_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为int64的值。", + "name": "value_set_int64", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为int64的值。", + "name": "value_int64", + "return": { + "type": "int64_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "uint64_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为uint64的值。", + "name": "value_set_uint64", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为uint64的值。", + "name": "value_uint64", + "return": { + "type": "uint64_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "pointer_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": {}, + "desc": "设置类型为pointer的值。", + "name": "value_set_pointer", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": {}, + "desc": "获取类型为pointer的值。", + "name": "value_pointer", + "return": { + "type": "void*", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "float_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为float\\_t的值。", + "name": "value_set_float", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": {}, + "desc": "获取类型为float\\_t的值。", + "name": "value_float", + "return": { + "type": "float_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "float", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": {}, + "desc": "设置类型为float的值。", + "name": "value_set_float32", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为float的值。", + "name": "value_float32", + "return": { + "type": "float", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "double", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为double的值。", + "name": "value_set_double", + "alias": "value_set_float64", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为double的值。", + "name": "value_double", + "alias": "value_float64", + "return": { + "type": "double", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "const char*", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": {}, + "desc": "设置类型为字符串的值。", + "name": "value_set_str", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "const char*", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为字符串的值(并拷贝字符串)。 > 供脚本语言使用。", + "name": "value_dup_str", + "alias": "value_set_str", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "const wchar_t*", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": {}, + "desc": "设置类型为宽字符串的值。", + "name": "value_set_wstr", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取类型为字符串的值。", + "name": "value_str", + "return": { + "type": "const char*", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": {}, + "desc": "获取类型为宽字符串的值。", + "name": "value_wstr", + "return": { + "type": "const wchar_t*", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "value", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "判断value是否为空值。", + "name": "value_is_null", + "return": { + "type": "bool_t", + "desc": "为空值返回TRUE,否则返回FALSE。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "value", + "desc": "value对象。" + }, + { + "type": "value_t*", + "name": "other", + "desc": "value对象。" + } + ], + "annotation": {}, + "desc": "判断两个value是否相同。", + "name": "value_equal", + "return": { + "type": "bool_t", + "desc": "为空值返回TRUE,否则返回FALSE。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": {}, + "desc": "转换为int的值。", + "name": "value_int", + "return": { + "type": "int", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "int32_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为int的值。", + "name": "value_set_int", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "object_t*", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为object的值。", + "name": "value_set_object", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "转换为object的值。", + "name": "value_object", + "return": { + "type": "object_t*", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "uint32_t", + "name": "value", + "desc": "待设置的值。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "设置类型为token的值。", + "name": "value_set_token", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": "获取token的值。", + "name": "value_token", + "return": { + "type": "uint32_t", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "char*", + "name": "str", + "desc": "待设置的值。" + }, + { + "type": "uint32_t", + "name": "size", + "desc": "长度。" + } + ], + "annotation": {}, + "desc": "设置类型为带长度的字符串的值。", + "name": "value_set_sized_str", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": {}, + "desc": "获取为sized_str的值。", + "name": "value_sized_str", + "return": { + "type": "sized_str_t*", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "void*", + "name": "value", + "desc": "待设置的值。" + }, + { + "type": "uint32_t", + "name": "size", + "desc": "长度。" + } + ], + "annotation": {}, + "desc": "设置类型为binary_data的值。", + "name": "value_set_binary_data", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": {}, + "desc": "获取为binary_data的值。", + "name": "value_binary_data", + "return": { + "type": "binary_data_t*", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + }, + { + "type": "void*", + "name": "value", + "desc": "待设置的值。" + }, + { + "type": "uint32_t", + "name": "size", + "desc": "长度。" + } + ], + "annotation": {}, + "desc": "设置类型为ubjson的值。", + "name": "value_set_ubjson", + "return": { + "type": "value_t*", + "desc": "value对象本身。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": {}, + "desc": "获取为ubjson的值。", + "name": "value_ubjson", + "return": { + "type": "binary_data_t*", + "desc": "值。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "dst", + "desc": "目的value对象。" + }, + { + "type": "value_t*", + "name": "src", + "desc": "源value对象。" + } + ], + "annotation": {}, + "desc": "拷贝value的值。", + "name": "value_copy", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" } + }, + { + "params": [ + { + "type": "value_t*", + "name": "dst", + "desc": "目的value对象。" + }, + { + "type": "value_t*", + "name": "src", + "desc": "源value对象。" + } + ], + "annotation": {}, + "desc": "深拷贝value的值。", + "name": "value_deep_copy", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [], + "annotation": { + "constructor": true, + "scriptable": true, + "gc": true + }, + "desc": "创建value对象。", + "name": "value_create", + "return": { + "type": "value_t*", + "desc": "对象。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "deconstructor": true, + "scriptable": true, + "gc": true + }, + "desc": "销毁value对象。", + "name": "value_destroy", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "v", + "desc": "value对象。" + } + ], + "annotation": { + "deconstructor": true, + "scriptable": true + }, + "desc": "重置value对象。", + "name": "value_reset", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "value_t*", + "name": "value", + "desc": "value对象。" + } + ], + "annotation": { + "cast": true, + "scriptable": true + }, + "desc": "转换为value对象。 > 供脚本语言使用", + "name": "value_cast", + "return": { + "type": "value_t*", + "desc": "对象。" + } } ], "events": [], "properties": [], - "header": "src/awtk_global.h", - "desc": "TK全局对象。", - "name": "global_t", + "header": "tkc/value.h", + "desc": "一个通用数据类型,用来存放整数、浮点数、字符串和其它对象。 在C/C++中,一般不需动态创建对象,直接声明并初始化即可。如: ```c value_t v; value_set_int(&v, 100); ```> 在脚本语言中,需要动态创建对象。", + "name": "value_t", + "order": -10, "annotation": { - "scriptable": true, - "fake": true + "scriptable": true }, "level": 1 }, @@ -136,105 +1043,226 @@ "type": "class", "methods": [ { - "params": [], - "annotation": {}, - "desc": "创建解析器。", - "name": "xml_parser_create", + "params": [ + { + "type": "xy_t", + "name": "x", + "desc": "x坐标。" + }, + { + "type": "xy_t", + "name": "y", + "desc": "y坐标。" + }, + { + "type": "wh_t", + "name": "w", + "desc": "宽度。" + }, + { + "type": "wh_t", + "name": "h", + "desc": "高度。" + } + ], + "annotation": { + "constructor": true, + "scriptable": true, + "gc": true + }, + "desc": "创建rect对象。 > 主要供脚本语言使用。", + "name": "rect_create", "return": { - "type": "XmlParser*", - "desc": "返回parser对象。" + "type": "rect_t*", + "desc": "rect对象。" } }, { "params": [ { - "type": "XmlParser*", - "name": "thiz", - "desc": "parser对象。" + "type": "rect_t*", + "name": "rect", + "desc": "rect对象。" }, { - "type": "XmlBuilder*", - "name": "builder", - "desc": "builder对象。" + "type": "xy_t", + "name": "x", + "desc": "x坐标。" + }, + { + "type": "xy_t", + "name": "y", + "desc": "y坐标。" + }, + { + "type": "wh_t", + "name": "w", + "desc": "宽度。" + }, + { + "type": "wh_t", + "name": "h", + "desc": "高度。" } ], - "annotation": {}, - "desc": "设置builder。", - "name": "xml_parser_set_builder", + "annotation": { + "scriptable": true + }, + "desc": "设置rect对象的xywh。 > 主要供脚本语言使用。", + "name": "rect_set", "return": { - "type": "void", - "desc": "返回无。" + "type": "rect_t*", + "desc": "rect对象。" } }, { "params": [ { - "type": "XmlParser*", - "name": "thiz", - "desc": "parser对象。" - }, - { - "type": "const char*", - "name": "xml", - "desc": "数据。" - }, - { - "type": "int", - "name": "length", - "desc": "数据长度。" + "type": "rect_t*", + "name": "rect", + "desc": "rect对象。" } ], - "annotation": {}, - "desc": "解析数据。", - "name": "xml_parser_parse", + "annotation": { + "cast": true, + "scriptable": true + }, + "desc": "转换为rect对象。 > 供脚本语言使用。", + "name": "rect_cast", "return": { - "type": "void", - "desc": "返回无。" + "type": "rect_t*", + "desc": "rect对象。" } }, { "params": [ { - "type": "XmlParser*", - "name": "thiz", - "desc": "parser对象。" - }, - { - "type": "const char*", - "name": "filename", - "desc": "文件名。" + "type": "rect_t*", + "name": "r", + "desc": "rect对象。" } ], - "annotation": {}, - "desc": "解析文件。", - "name": "xml_parser_parse_file", + "annotation": { + "deconstructor": true, + "scriptable": true, + "gc": true + }, + "desc": "销毁rect对象。 > 主要供脚本语言使用。", + "name": "rect_destroy", "return": { - "type": "void", - "desc": "返回无。" - } - }, - { - "params": [ - { - "type": "XmlParser*", - "name": "thiz", - "desc": "parser对象。" - } - ], - "annotation": {}, - "desc": "销毁parser对象。", - "name": "xml_parser_destroy", - "return": { - "type": "void", - "desc": "返回无。" + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" } } ], "events": [], - "properties": [], - "header": "xml/xml_parser.h", - "desc": "xml解析器", - "name": "XmlParser", + "properties": [ + { + "name": "x", + "desc": "x坐标。", + "type": "xy_t", + "annotation": { + "readable": true, + "scriptable": true + } + }, + { + "name": "y", + "desc": "y坐标。", + "type": "xy_t", + "annotation": { + "readable": true, + "scriptable": true + } + }, + { + "name": "w", + "desc": "宽度。", + "type": "wh_t", + "annotation": { + "readable": true, + "scriptable": true + } + }, + { + "name": "h", + "desc": "高度。", + "type": "wh_t", + "annotation": { + "readable": true, + "scriptable": true + } + } + ], + "header": "tkc/rect.h", + "desc": "矩形。包括一个x坐标、y坐标、宽度和高度。", + "name": "rect_t", + "order": -10, + "annotation": { + "scriptable": true + }, + "level": 1 + }, + { + "type": "class", + "methods": [], + "events": [], + "properties": [ + { + "name": "x", + "desc": "x坐标。", + "type": "float_t", + "annotation": { + "readable": true + } + }, + { + "name": "y", + "desc": "y坐标。", + "type": "float_t", + "annotation": { + "readable": true + } + } + ], + "header": "tkc/rect.h", + "desc": "点(浮点数)。包括一个x坐标和一个y坐标。", + "name": "pointf_t", + "order": -10, + "annotation": { + "scriptable": true + }, + "level": 1 + }, + { + "type": "class", + "methods": [], + "events": [], + "properties": [ + { + "name": "x", + "desc": "x坐标。", + "type": "xy_t", + "annotation": { + "readable": true + } + }, + { + "name": "y", + "desc": "y坐标。", + "type": "xy_t", + "annotation": { + "readable": true + } + } + ], + "header": "tkc/rect.h", + "desc": "点。包括一个x坐标和一个y坐标。", + "name": "point_t", + "annotation": { + "scriptable": true + }, + "order": -10, "level": 1 }, { @@ -457,7 +1485,7 @@ } ], "annotation": {}, - "desc": "初始化图片。\r 数据。3通道时为RGB888格式,4通道时为RGBA888格式(内部拷贝该数据,不会引用,调用者自行释放)。", + "desc": "初始化图片。 数据。3通道时为RGB888格式,4通道时为RGBA888格式(内部拷贝该数据,不会引用,调用者自行释放)。", "name": "bitmap_init_from_rgba", "return": { "type": "ret_t", @@ -589,87 +1617,7 @@ "header": "base/bitmap.h", "desc": "位图。", "name": "bitmap_t", - "annotation": { - "scriptable": true - }, - "level": 1 - }, - { - "type": "enum", - "desc": "图片绘制方法常量定义。", - "consts": [ - { - "desc": "缺省显示。将图片按原大小显示在目标矩形的左上角。", - "name": "IMAGE_DRAW_DEFAULT" - }, - { - "desc": "居中显示。将图片按原大小显示在目标矩形的中央。", - "name": "IMAGE_DRAW_CENTER" - }, - { - "desc": "图标显示。同居中显示,但会根据屏幕密度调整大小。", - "name": "IMAGE_DRAW_ICON" - }, - { - "desc": "缩放显示。将图片缩放至目标矩形的大小(不保证宽高成比例)。", - "name": "IMAGE_DRAW_SCALE" - }, - { - "desc": "自动缩放显示。将图片缩放至目标矩形的宽度或高度(选取最小的比例),并居中显示。", - "name": "IMAGE_DRAW_SCALE_AUTO" - }, - { - "desc": "如果图片比目标矩形大,自动缩小显示,否则居中显示。", - "name": "IMAGE_DRAW_SCALE_DOWN" - }, - { - "desc": "宽度缩放显示。 将图片缩放至目标矩形的宽度,高度按此比例进行缩放,超出不部分不显示。", - "name": "IMAGE_DRAW_SCALE_W" - }, - { - "desc": "高度缩放显示。将图片缩放至目标矩形的高度,宽度按此比例进行缩放,超出不部分不显示。", - "name": "IMAGE_DRAW_SCALE_H" - }, - { - "desc": "平铺显示。", - "name": "IMAGE_DRAW_REPEAT" - }, - { - "desc": "水平方向平铺显示,垂直方向缩放。", - "name": "IMAGE_DRAW_REPEAT_X" - }, - { - "desc": "垂直方向平铺显示,水平方向缩放。", - "name": "IMAGE_DRAW_REPEAT_Y" - }, - { - "desc": "垂直方向平铺显示,水平方向缩放(从底部到顶部)。", - "name": "IMAGE_DRAW_REPEAT_Y_INVERSE" - }, - { - "desc": "9宫格显示。\r 将图片分成等大小的9块,4个角按原大小显示在目标矩形的4个角,左右上下和中间5块分别缩放显示在对应的目标区域。", - "name": "IMAGE_DRAW_PATCH9" - }, - { - "desc": "水平方向3宫格显示,垂直方向居中显示。\r 将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。", - "name": "IMAGE_DRAW_PATCH3_X" - }, - { - "desc": "垂直方向3宫格显示,水平方向居中显示。\r 将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。", - "name": "IMAGE_DRAW_PATCH3_Y" - }, - { - "desc": "水平方向3宫格显示,垂直方向缩放显示。\r 将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。", - "name": "IMAGE_DRAW_PATCH3_X_SCALE_Y" - }, - { - "desc": "垂直方向3宫格显示,水平方向缩放显示。\r 将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。", - "name": "IMAGE_DRAW_PATCH3_Y_SCALE_X" - } - ], - "header": "base/bitmap.h", - "name": "image_draw_type_t", - "prefix": "IMAGE_DRAW_", + "order": -9, "annotation": { "scriptable": true }, @@ -681,1088 +1629,44 @@ { "params": [ { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "lcd_t*", - "name": "lcd", - "desc": "lcd对象。" - }, - { - "type": "font_manager_t*", - "name": "font_manager", - "desc": "字体管理器对象。" - } - ], - "annotation": {}, - "desc": "初始化,系统内部调用。", - "name": "canvas_init", - "return": { - "type": "canvas_t*", - "desc": "返回canvas对象本身。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取画布的宽度。", - "name": "canvas_get_width", - "return": { - "type": "wh_t", - "desc": "返回画布的宽度。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取画布的高度。", - "name": "canvas_get_height", - "return": { - "type": "wh_t", - "desc": "返回画布的高度。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "rect_t*", - "name": "r", - "desc": "rect对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取裁剪区。", - "name": "canvas_get_clip_rect", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const rect_t*", - "name": "r", - "desc": "rect对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置裁剪区。", - "name": "canvas_set_clip_rect", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const rect_t*", - "name": "r", - "desc": "rect对象。" - }, - { - "type": "bool_t", - "name": "translate", - "desc": "是否将裁剪区的位置加上canvas当前的偏移。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置裁剪区。", - "name": "canvas_set_clip_rect_ex", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "color_t", - "name": "color", - "desc": "颜色。" - } - ], - "annotation": {}, - "desc": "设置填充颜色。", - "name": "canvas_set_fill_color", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "color_t", - "name": "color", - "desc": "颜色。" - } - ], - "annotation": {}, - "desc": "设置文本颜色。", - "name": "canvas_set_text_color", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "color_t", - "name": "color", - "desc": "颜色。" - } - ], - "annotation": {}, - "desc": "设置线条颜色。", - "name": "canvas_set_stroke_color", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const char*", - "name": "color", - "desc": "颜色。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置填充颜色。\r\r > 供脚本语言使用。", - "name": "canvas_set_fill_color_str", - "alias": "canvas_set_fill_color", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const char*", - "name": "color", - "desc": "颜色。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置文本颜色。\r\r > 供脚本语言使用。", - "name": "canvas_set_text_color_str", - "alias": "canvas_set_text_color", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const char*", - "name": "color", - "desc": "颜色。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置线条颜色。\r\r > 供脚本语言使用。", - "name": "canvas_set_stroke_color_str", - "alias": "canvas_set_stroke_color", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "uint8_t", - "name": "alpha", - "desc": "alpha值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置全局alpha值。", - "name": "canvas_set_global_alpha", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "xy_t", - "name": "dx", - "desc": "x偏移。" - }, - { - "type": "xy_t", - "name": "dy", - "desc": "y偏移。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "平移原点坐标。", - "name": "canvas_translate", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "xy_t", - "name": "dx", - "desc": "x偏移。" - }, - { - "type": "xy_t", - "name": "dy", - "desc": "y偏移。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "反向平移原点坐标。", - "name": "canvas_untranslate", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "xy_t", - "name": "x", - "desc": "x坐标。" - }, - { - "type": "xy_t", - "name": "y", - "desc": "y坐标。" + "type": "wh_t", + "name": "w", + "desc": "LCD宽度。" }, { "type": "wh_t", "name": "h", - "desc": "高度。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "画垂直线。", - "name": "canvas_draw_vline", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" + "desc": "LCD高度。" }, { - "type": "xy_t", - "name": "x", - "desc": "x坐标。" - }, - { - "type": "xy_t", - "name": "y", - "desc": "y坐标。" - }, - { - "type": "wh_t", - "name": "w", - "desc": "宽度。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "画水平线。", - "name": "canvas_draw_hline", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const point_t*", - "name": "points", - "desc": "点数组。" - }, - { - "type": "uint32_t", - "name": "nr", - "desc": "点的个数。" - } - ], - "annotation": {}, - "desc": "画多个点。", - "name": "canvas_draw_points", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "xy_t", - "name": "x", - "desc": "x坐标。" - }, - { - "type": "xy_t", - "name": "y", - "desc": "y坐标。" - }, - { - "type": "wh_t", - "name": "w", - "desc": "宽度。" - }, - { - "type": "wh_t", - "name": "h", - "desc": "高度。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "填充矩形。", - "name": "canvas_fill_rect", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "xy_t", - "name": "x", - "desc": "x坐标。" - }, - { - "type": "xy_t", - "name": "y", - "desc": "y坐标。" - }, - { - "type": "wh_t", - "name": "w", - "desc": "宽度。" - }, - { - "type": "wh_t", - "name": "h", - "desc": "高度。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "绘制矩形。", - "name": "canvas_stroke_rect", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" + "type": "app_type_t", + "name": "app_type", + "desc": "应用程序的类型。" }, { "type": "const char*", - "name": "name", - "desc": "字体名称。" - }, - { - "type": "font_size_t", - "name": "size", - "desc": "字体大小。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置字体。", - "name": "canvas_set_font", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "align_h_t", - "name": "align_h", - "desc": "水平对齐方式。" - }, - { - "type": "align_v_t", - "name": "align_v", - "desc": "垂直对齐方式。" - } - ], - "annotation": {}, - "desc": "设置文本对齐方式。", - "name": "canvas_set_text_align", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const wchar_t*", - "name": "str", - "desc": "字符串。" - }, - { - "type": "uint32_t", - "name": "nr", - "desc": "字符数。" - } - ], - "annotation": {}, - "desc": "计算文本所占的宽度。", - "name": "canvas_measure_text", - "return": { - "type": "float_t", - "desc": "返回文本所占的宽度。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" + "name": "app_name", + "desc": "应用程序的名称(必须为常量字符串)。" }, { "type": "const char*", - "name": "str", - "desc": "字符串。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "计算文本所占的宽度。\r\r > 供脚本语言使用。", - "name": "canvas_measure_utf8", - "alias": "canvas_measure_text", - "return": { - "type": "float_t", - "desc": "返回文本所占的宽度。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const wchar_t*", - "name": "str", - "desc": "字符串。" - }, - { - "type": "uint32_t", - "name": "nr", - "desc": "字符数。" - }, - { - "type": "xy_t", - "name": "x", - "desc": "x坐标。" - }, - { - "type": "xy_t", - "name": "y", - "desc": "y坐标。" + "name": "app_root", + "desc": "应用程序的根目录,用于定位资源文件(必须为常量字符串)。" } ], "annotation": {}, - "desc": "绘制文本。", - "name": "canvas_draw_text", + "desc": "初始化TK。", + "name": "tk_init", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" } }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const char*", - "name": "str", - "desc": "字符串。" - }, - { - "type": "xy_t", - "name": "x", - "desc": "x坐标。" - }, - { - "type": "xy_t", - "name": "y", - "desc": "y坐标。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "绘制文本。\r\r > 供脚本语言使用。", - "name": "canvas_draw_utf8", - "alias": "canvas_draw_text", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const wchar_t*", - "name": "str", - "desc": "字符串。" - }, - { - "type": "uint32_t", - "name": "nr", - "desc": "字符数。" - }, - { - "type": "const rect_t*", - "name": "r", - "desc": "矩形区域。" - } - ], - "annotation": {}, - "desc": "绘制文本。", - "name": "canvas_draw_text_in_rect", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "const char*", - "name": "str", - "desc": "字符串。" - }, - { - "type": "const rect_t*", - "name": "r", - "desc": "矩形区域。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "绘制文本。\r\r > 供脚本语言使用。", - "name": "canvas_draw_utf8_in_rect", - "alias": "canvas_draw_text_in_rect", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "bitmap_t*", - "name": "img", - "desc": "图片对象。" - }, - { - "type": "xy_t", - "name": "cx", - "desc": "中心点x坐标。" - }, - { - "type": "xy_t", - "name": "cy", - "desc": "中心点y坐标。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "绘制图标。", - "name": "canvas_draw_icon", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "bitmap_t*", - "name": "img", - "desc": "图片对象。" - }, - { - "type": "rect_t*", - "name": "src", - "desc": "源区域。" - }, - { - "type": "rect_t*", - "name": "dst", - "desc": "目的区域。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "绘制图片。", - "name": "canvas_draw_image", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - }, - { - "type": "bitmap_t*", - "name": "img", - "desc": "图片对象。" - }, - { - "type": "image_draw_type_t", - "name": "draw_type", - "desc": "绘制类型。" - }, - { - "type": "rect_t*", - "name": "dst", - "desc": "目的区域。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "绘制图片。", - "name": "canvas_draw_image_ex", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取vgcanvas对象。", - "name": "canvas_get_vgcanvas", - "return": { - "type": "vgcanvas_t*", - "desc": "返回vgcanvas对象。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - } - ], - "annotation": { - "cast": true, - "scriptable": true - }, - "desc": "转换为canvas对象(供脚本语言使用)。", - "name": "canvas_cast", - "return": { - "type": "canvas_t*", - "desc": "canvas对象。" - } - }, - { - "params": [ - { - "type": "canvas_t*", - "name": "c", - "desc": "canvas对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "释放相关资源。", - "name": "canvas_reset", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - } - ], - "events": [], - "properties": [ - { - "name": "ox", - "desc": "x坐标偏移。", - "type": "xy_t", - "annotation": { - "readable": true, - "scriptable": true - } - }, - { - "name": "oy", - "desc": "y坐标偏移。", - "type": "xy_t", - "annotation": { - "readable": true, - "scriptable": true - } - }, - { - "name": "font_name", - "desc": "当前字体名称。", - "type": "char*", - "annotation": { - "readable": true, - "scriptable": true - } - }, - { - "name": "font_size", - "desc": "当前字体大小。", - "type": "uint16_t", - "annotation": { - "readable": true, - "scriptable": true - } - }, - { - "name": "global_alpha", - "desc": "当前全局alpha。", - "type": "uint8_t", - "annotation": { - "readable": true, - "scriptable": true - } - }, - { - "name": "clip_left", - "desc": "当前裁剪矩形的左边位置。", - "type": "xy_t", - "annotation": { - "readable": true - } - }, - { - "name": "clip_top", - "desc": "当前裁剪矩形的顶部位置。", - "type": "xy_t", - "annotation": { - "readable": true - } - }, - { - "name": "clip_right", - "desc": "当前裁剪矩形的右边位置。", - "type": "xy_t", - "annotation": { - "readable": true - } - }, - { - "name": "clip_bottom", - "desc": "当前裁剪矩形的底部位置。", - "type": "xy_t", - "annotation": { - "readable": true - } - }, - { - "name": "fps", - "desc": "当前的帧率。", - "type": "uint32_t", - "annotation": { - "readable": true - } - }, - { - "name": "show_fps", - "desc": "是否显示帧率。", - "type": "bool_t", - "annotation": { - "readable": true - } - }, - { - "name": "text_align_v", - "desc": "文本垂直对齐方式。", - "type": "align_v_t", - "annotation": { - "readable": true - } - }, - { - "name": "text_align_h", - "desc": "文本水平对齐方式。", - "type": "align_h_t", - "annotation": { - "readable": true - } - }, - { - "name": "lcd", - "desc": "lcd对象。", - "type": "lcd_t*", - "annotation": { - "readable": true - } - }, - { - "name": "font", - "desc": "字体对象。", - "type": "font_t*", - "annotation": { - "readable": true - } - }, - { - "name": "font_manager", - "desc": "字体管理器对象。", - "type": "font_manager_t*", - "annotation": { - "readable": true - } - }, - { - "name": "assets_manager", - "desc": "资源管理器对象。", - "type": "assets_manager_t*", - "annotation": { - "readable": true - } - } - ], - "header": "base/canvas.h", - "desc": "提供基本的绘图功能和状态管理。", - "name": "canvas_t", - "annotation": { - "scriptable": true - }, - "level": 1 - }, - { - "type": "class", - "methods": [ { "params": [], - "annotation": { - "constructor": true - }, - "desc": "获取缺省的子控件布局算法工厂对象。", - "name": "children_layouter_factory", - "return": { - "type": "children_layouter_factory_t*", - "desc": "返回子控件布局算法工厂对象。" - } - }, - { - "params": [ - { - "type": "children_layouter_factory_t*", - "name": "factory", - "desc": "子控件布局算法工厂对象。" - } - ], "annotation": {}, - "desc": "设置缺省的子控件布局算法工厂对象。", - "name": "children_layouter_factory_set", + "desc": "进入TK事件主循环。", + "name": "tk_run", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -1771,75 +1675,70 @@ { "params": [], "annotation": { - "constructor": true + "static": true, + "scriptable": true }, - "desc": "创建子控件布局算法工厂对象。", - "name": "children_layouter_factory_create", - "return": { - "type": "children_layouter_factory_t*", - "desc": "返回子控件布局算法工厂对象。" - } - }, - { - "params": [ - { - "type": "children_layouter_factory_t*", - "name": "factory", - "desc": "highlighter工厂对象。" - }, - { - "type": "const char*", - "name": "type", - "desc": "子控件布局算法类型。" - }, - { - "type": "children_layouter_create_t", - "name": "create", - "desc": "子控件布局算法创建函数。" - } - ], - "annotation": {}, - "desc": "注册子控件布局算法创建函数。", - "name": "children_layouter_factory_register", + "desc": "退出TK事件主循环。", + "name": "tk_quit", + "alias": "global_quit", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" } }, { - "params": [ - { - "type": "children_layouter_factory_t*", - "name": "factory", - "desc": "子控件布局算法工厂对象。" - }, - { - "type": "const char*", - "name": "type", - "desc": "类型。" - } - ], + "params": [], "annotation": { - "constructor": true + "static": true, + "scriptable": true }, - "desc": "创建指定类型的子控件布局算法对象。", - "name": "children_layouter_factory_create_layouter", + "desc": "获取全局指针的X坐标。", + "name": "tk_get_pointer_x", + "alias": "global_get_pointer_x", "return": { - "type": "children_layouter_t*", - "desc": "返回窗口动画对象。" + "type": "int32_t", + "desc": "返回全局指针的X坐标。" + } + }, + { + "params": [], + "annotation": { + "static": true, + "scriptable": true + }, + "desc": "获取全局指针的Y坐标。", + "name": "tk_get_pointer_y", + "alias": "global_get_pointer_y", + "return": { + "type": "int32_t", + "desc": "返回全局指针的X坐标。" + } + }, + { + "params": [], + "annotation": { + "static": true, + "scriptable": true + }, + "desc": "获取全局指针是否按下。", + "name": "tk_is_pointer_pressed", + "alias": "global_is_pointer_pressed", + "return": { + "type": "bool_t", + "desc": "返回全局指针是否按下。" } }, { "params": [ { - "type": "children_layouter_factory_t*", - "name": "factory", - "desc": "子控件布局算法工厂对象。" + "type": "int", + "name": "orientation", + "desc": "旋转方向。" } ], "annotation": {}, - "desc": "析构并释放子控件布局算法工厂对象。", - "name": "children_layouter_factory_destroy", + "desc": "设置屏幕的旋转方向(XXX:目前仅支持0度和90度)。", + "name": "tk_set_lcd_orientation", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -1848,9 +1747,13 @@ ], "events": [], "properties": [], - "header": "base/children_layouter_factory.h", - "desc": "子控件布局算法工厂。", - "name": "children_layouter_factory_t", + "header": "src/awtk_global.h", + "desc": "TK全局对象。", + "name": "global_t", + "annotation": { + "scriptable": true, + "fake": true + }, "level": 1 }, { @@ -2075,7 +1978,7 @@ "events": [], "properties": [], "header": "base/children_layouter.h", - "desc": "子控件排版布局器的接口。\r\r 按特定算法对子控件进行排版布局,子类需要实现vtable中的函数。", + "desc": "子控件排版布局器的接口。 按特定算法对子控件进行排版布局,子类需要实现vtable中的函数。", "name": "children_layouter_t", "level": 1 }, @@ -2392,7 +2295,7 @@ }, { "type": "enum", - "desc": "@type string\r 内置的对话框高亮策略。", + "desc": "@type string 内置的对话框高亮策略。", "consts": [ { "desc": "缺省的对话框高亮策略。", @@ -2416,7 +2319,7 @@ } ], "annotation": {}, - "desc": "创建对话框高亮策略对象。\r\r>供子类构造函数用。", + "desc": "创建对话框高亮策略对象。>供子类构造函数用。", "name": "dialog_highlighter_create", "return": { "type": "dialog_highlighter_t*", @@ -2543,13 +2446,13 @@ } ], "header": "base/dialog_highlighter.h", - "desc": "对话框高亮策略。\r\r> 高亮策略的基本思路是对背景进行处理,比如将背景变暗或变模糊。", + "desc": "对话框高亮策略。> 高亮策略的基本思路是对背景进行处理,比如将背景变暗或变模糊。", "name": "dialog_highlighter_t", "level": 1 }, { "type": "enum", - "desc": "对话框退出码。 \r \r > 一般用作dialog_quit函数的参数。", + "desc": "对话框退出码。 > 一般用作dialog_quit函数的参数。", "consts": [ { "desc": "对话框被强行关闭或不关心关闭原因。", @@ -2772,19 +2675,19 @@ "name": "EVT_WIDGET_LOAD" }, { - "desc": "窗口即将打开事件(event_t)。\r 如果有窗口动画,在窗口动画开始前触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。", + "desc": "窗口即将打开事件(event_t)。 如果有窗口动画,在窗口动画开始前触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。", "name": "EVT_WINDOW_WILL_OPEN" }, { - "desc": "窗口打开事件(event_t)。\r 如果有窗口动画,在窗口动画完成时触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。", + "desc": "窗口打开事件(event_t)。 如果有窗口动画,在窗口动画完成时触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。", "name": "EVT_WINDOW_OPEN" }, { - "desc": "窗口被切换到后台事件(event_t)。\r 打开新窗口时,当前窗口被切换到后台时,对当前窗口触发本事件。", + "desc": "窗口被切换到后台事件(event_t)。 打开新窗口时,当前窗口被切换到后台时,对当前窗口触发本事件。", "name": "EVT_WINDOW_TO_BACKGROUND" }, { - "desc": "窗口被切换到前台事件(event_t)。\r 关闭当前窗口时,前一个窗口被切换到前台时,对前一个窗口触发本事件。", + "desc": "窗口被切换到前台事件(event_t)。 关闭当前窗口时,前一个窗口被切换到前台时,对前一个窗口触发本事件。", "name": "EVT_WINDOW_TO_FOREGROUND" }, { @@ -2852,7 +2755,7 @@ "name": "EVT_WIDGET_CREATED" }, { - "desc": "请求退出应用程序事件。\r 点击原生窗口关闭按钮时,通过窗口管理器触发,注册该事件并返回RET_STOP,可以阻止窗口关闭。", + "desc": "请求退出应用程序事件。 点击原生窗口关闭按钮时,通过窗口管理器触发,注册该事件并返回RET_STOP,可以阻止窗口关闭。", "name": "EVT_REQUEST_QUIT_APP" }, { @@ -2982,7 +2885,7 @@ "events": [], "properties": [], "header": "widget_animators/widget_animator_scroll.h", - "desc": "滚动控件的动画。\r 本动画也可以用widget_animator_prop2实现,但滚动控件需要访问内部数据结构,出于可读性考虑保留独立实现。", + "desc": "滚动控件的动画。 本动画也可以用widget_animator_prop2实现,但滚动控件需要访问内部数据结构,出于可读性考虑保留独立实现。", "name": "widget_animator_scroll_t", "level": 1 }, @@ -3527,7 +3430,7 @@ } ], "annotation": {}, - "desc": "写入数组开始。\r > 即: [", + "desc": "写入数组开始。 > 即: [", "name": "ubjson_writer_write_array_begin", "return": { "type": "ret_t", @@ -3543,7 +3446,7 @@ } ], "annotation": {}, - "desc": "写入数组结束。\r > 即: ]", + "desc": "写入数组结束。 > 即: ]", "name": "ubjson_writer_write_array_end", "return": { "type": "ret_t", @@ -3559,7 +3462,7 @@ } ], "annotation": {}, - "desc": "写入对象开始。\r > 即: {", + "desc": "写入对象开始。 > 即: {", "name": "ubjson_writer_write_object_begin", "return": { "type": "ret_t", @@ -3575,7 +3478,7 @@ } ], "annotation": {}, - "desc": "写入对象结束。\r > 即:}", + "desc": "写入对象结束。 > 即:}", "name": "ubjson_writer_write_object_end", "return": { "type": "ret_t", @@ -3622,7 +3525,7 @@ } ], "annotation": {}, - "desc": "写key和对象的开始。\r\r > 即:\"key\": {", + "desc": "写key和对象的开始。 > 即:\"key\": {", "name": "ubjson_writer_write_kv_object_begin", "return": { "type": "ret_t", @@ -3648,7 +3551,7 @@ } ], "annotation": {}, - "desc": "写key和对象。\r\r > 即:\"key\": { object }", + "desc": "写key和对象。 > 即:\"key\": { object }", "name": "ubjson_writer_write_kv_object", "return": { "type": "ret_t", @@ -3674,7 +3577,7 @@ } ], "annotation": {}, - "desc": "写入key和int的值。\r\r > 即:\"key\": value", + "desc": "写入key和int的值。 > 即:\"key\": value", "name": "ubjson_writer_write_kv_int", "return": { "type": "ret_t", @@ -3700,7 +3603,7 @@ } ], "annotation": {}, - "desc": "写入key和int64_t的值。\r\r > 即:\"key\": value", + "desc": "写入key和int64_t的值。 > 即:\"key\": value", "name": "ubjson_writer_write_kv_int64", "return": { "type": "ret_t", @@ -3726,7 +3629,7 @@ } ], "annotation": {}, - "desc": "写入key和float的值。\r\r > 即:\"key\": value", + "desc": "写入key和float的值。 > 即:\"key\": value", "name": "ubjson_writer_write_kv_float", "return": { "type": "ret_t", @@ -3752,7 +3655,7 @@ } ], "annotation": {}, - "desc": "写入key和double的值。\r\r > 即:\"key\": value", + "desc": "写入key和double的值。 > 即:\"key\": value", "name": "ubjson_writer_write_kv_double", "return": { "type": "ret_t", @@ -3778,7 +3681,7 @@ } ], "annotation": {}, - "desc": "写入key和bool的值。\r\r > 即:\"key\": value", + "desc": "写入key和bool的值。 > 即:\"key\": value", "name": "ubjson_writer_write_kv_bool", "return": { "type": "ret_t", @@ -3804,7 +3707,7 @@ } ], "annotation": {}, - "desc": "写入key和str的值。\r\r > 即:\"key\": value", + "desc": "写入key和str的值。 > 即:\"key\": value", "name": "ubjson_writer_write_kv_str", "return": { "type": "ret_t", @@ -3835,7 +3738,7 @@ } ], "annotation": {}, - "desc": "写入key和str的值。\r\r > 即:\"key\": value", + "desc": "写入key和str的值。 > 即:\"key\": value", "name": "ubjson_writer_write_kv_str_len", "return": { "type": "ret_t", @@ -3861,7 +3764,7 @@ } ], "annotation": {}, - "desc": "写入key和value_t的值。\r\r > 即:\"key\": value", + "desc": "写入key和value_t的值。 > 即:\"key\": value", "name": "ubjson_writer_write_kv_value", "return": { "type": "ret_t", @@ -4475,7 +4378,7 @@ } ], "header": "tkc/wstr.h", - "desc": "可变长度的宽字符字符串。\r\r 示例:\r\r ```c\r wstr_t s;\r wstr_init(&s, 0);\r\r wstr_append(&s, L\"abc\");\r wstr_append(&s, L\"123\");\r\r wstr_reset(&s);\r ```\r > 先调wstr\\_init进行初始化,最后调用wstr\\_reset释放内存。", + "desc": "可变长度的宽字符字符串。 示例: ```c wstr_t s; wstr_init(&s, 0); wstr_append(&s, L\"abc\"); wstr_append(&s, L\"123\"); wstr_reset(&s); ``` > 先调wstr\\_init进行初始化,最后调用wstr\\_reset释放内存。", "name": "wstr_t", "level": 1 }, @@ -4607,7 +4510,7 @@ } ], "annotation": {}, - "desc": "设置资源管理器对象\r\r 之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个字体管理器:\r\r * 一个用于designer本身加载字体。\r\r * 一个用于被设计的窗口加载字体。\r\r这两个字体管理器需要从不同的路径加载资源。", + "desc": "设置资源管理器对象 之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个字体管理器: * 一个用于designer本身加载字体。 * 一个用于被设计的窗口加载字体。这两个字体管理器需要从不同的路径加载资源。", "name": "font_manager_set_assets_manager", "return": { "type": "ret_t", @@ -4765,7 +4668,7 @@ } ], "header": "base/font_manager.h", - "desc": "字体管理器,负责字体的加载和缓存管理。\r (如果使用nanovg,字体由nanovg内部管理)", + "desc": "字体管理器,负责字体的加载和缓存管理。 (如果使用nanovg,字体由nanovg内部管理)", "name": "font_manager_t", "annotation": { "scriptable": true @@ -5205,7 +5108,7 @@ } ], "annotation": {}, - "desc": "创建缓冲区。\r\r > 为了兼容raw图像。", + "desc": "创建缓冲区。 > 为了兼容raw图像。", "name": "graphic_buffer_default_create_with_data", "return": { "type": "graphic_buffer_t*", @@ -5426,7 +5329,7 @@ "events": [], "properties": [], "header": "base/idle.h", - "desc": "idle可以看作是duration为0的定时器。\r\r > idle可以用来实现一些异步处理。\r\r 示例:\r\r ```c\r static ret_t something_on_idle(const idle_info_t* info) {\r widget_t* widget = WIDGET(info->ctx);\r edit_t* edit = EDIT(widget);\r ...\r return RET_REMOVE;\r }\r\r ...\r\r idle_add(something_on_idle, edit);\r\r ```\r\r > 在非GUI线程请用idle\\_queue。", + "desc": "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。", "name": "idle_t", "annotation": { "scriptable": true, @@ -5437,1040 +5340,106 @@ { "type": "class", "methods": [ - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "bool_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为bool的值。", - "name": "value_set_bool", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为bool的值。", - "name": "value_bool", - "return": { - "type": "bool_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "int8_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为int8的值。", - "name": "value_set_int8", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为int8的值。", - "name": "value_int8", - "return": { - "type": "int8_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "uint8_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为uint8的值。", - "name": "value_set_uint8", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为uint8的值。", - "name": "value_uint8", - "return": { - "type": "int8_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "int16_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为int16的值。", - "name": "value_set_int16", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为int16的值。", - "name": "value_int16", - "return": { - "type": "int16_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "uint16_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为uint16的值。", - "name": "value_set_uint16", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为uint16的值。", - "name": "value_uint16", - "return": { - "type": "uint16_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "int32_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为int32的值。", - "name": "value_set_int32", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为int32的值。", - "name": "value_int32", - "return": { - "type": "int32_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "uint32_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为uint32的值。", - "name": "value_set_uint32", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "获取类型为uint32的值。", - "name": "value_uint32", - "return": { - "type": "uint32_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "int64_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为int64的值。", - "name": "value_set_int64", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为int64的值。", - "name": "value_int64", - "return": { - "type": "int64_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "uint64_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为uint64的值。", - "name": "value_set_uint64", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为uint64的值。", - "name": "value_uint64", - "return": { - "type": "uint64_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "pointer_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": {}, - "desc": "设置类型为pointer的值。", - "name": "value_set_pointer", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "获取类型为pointer的值。", - "name": "value_pointer", - "return": { - "type": "void*", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "float_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为float\\_t的值。", - "name": "value_set_float", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "获取类型为float\\_t的值。", - "name": "value_float", - "return": { - "type": "float_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "float", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": {}, - "desc": "设置类型为float的值。", - "name": "value_set_float32", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为float的值。", - "name": "value_float32", - "return": { - "type": "float", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "double", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为double的值。", - "name": "value_set_double", - "alias": "value_set_float64", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为double的值。", - "name": "value_double", - "alias": "value_float64", - "return": { - "type": "double", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "const char*", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": {}, - "desc": "设置类型为字符串的值。", - "name": "value_set_str", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "const char*", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为字符串的值(并拷贝字符串)。\r\r > 供脚本语言使用。", - "name": "value_dup_str", - "alias": "value_set_str", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "const wchar_t*", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": {}, - "desc": "设置类型为宽字符串的值。", - "name": "value_set_wstr", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取类型为字符串的值。", - "name": "value_str", - "return": { - "type": "const char*", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "获取类型为宽字符串的值。", - "name": "value_wstr", - "return": { - "type": "const wchar_t*", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "value", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "判断value是否为空值。", - "name": "value_is_null", - "return": { - "type": "bool_t", - "desc": "为空值返回TRUE,否则返回FALSE。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "value", - "desc": "value对象。" - }, - { - "type": "value_t*", - "name": "other", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "判断两个value是否相同。", - "name": "value_equal", - "return": { - "type": "bool_t", - "desc": "为空值返回TRUE,否则返回FALSE。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "转换为int的值。", - "name": "value_int", - "return": { - "type": "int", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "int32_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为int的值。", - "name": "value_set_int", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "object_t*", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为object的值。", - "name": "value_set_object", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "转换为object的值。", - "name": "value_object", - "return": { - "type": "object_t*", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "uint32_t", - "name": "value", - "desc": "待设置的值。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "设置类型为token的值。", - "name": "value_set_token", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": "获取token的值。", - "name": "value_token", - "return": { - "type": "uint32_t", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "char*", - "name": "str", - "desc": "待设置的值。" - }, - { - "type": "uint32_t", - "name": "size", - "desc": "长度。" - } - ], - "annotation": {}, - "desc": "设置类型为带长度的字符串的值。", - "name": "value_set_sized_str", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "获取为sized_str的值。", - "name": "value_sized_str", - "return": { - "type": "sized_str_t*", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "void*", - "name": "value", - "desc": "待设置的值。" - }, - { - "type": "uint32_t", - "name": "size", - "desc": "长度。" - } - ], - "annotation": {}, - "desc": "设置类型为binary_data的值。", - "name": "value_set_binary_data", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "获取为binary_data的值。", - "name": "value_binary_data", - "return": { - "type": "binary_data_t*", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - }, - { - "type": "void*", - "name": "value", - "desc": "待设置的值。" - }, - { - "type": "uint32_t", - "name": "size", - "desc": "长度。" - } - ], - "annotation": {}, - "desc": "设置类型为ubjson的值。", - "name": "value_set_ubjson", - "return": { - "type": "value_t*", - "desc": "value对象本身。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "v", - "desc": "value对象。" - } - ], - "annotation": {}, - "desc": "获取为ubjson的值。", - "name": "value_ubjson", - "return": { - "type": "binary_data_t*", - "desc": "值。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "dst", - "desc": "目的value对象。" - }, - { - "type": "value_t*", - "name": "src", - "desc": "源value对象。" - } - ], - "annotation": {}, - "desc": "拷贝value的值。", - "name": "value_copy", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "value_t*", - "name": "dst", - "desc": "目的value对象。" - }, - { - "type": "value_t*", - "name": "src", - "desc": "源value对象。" - } - ], - "annotation": {}, - "desc": "深拷贝value的值。", - "name": "value_deep_copy", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, { "params": [], - "annotation": { - "constructor": true, - "scriptable": true, - "gc": true - }, - "desc": "创建value对象。", - "name": "value_create", + "annotation": {}, + "desc": "创建解析器。", + "name": "xml_parser_create", "return": { - "type": "value_t*", - "desc": "对象。" + "type": "XmlParser*", + "desc": "返回parser对象。" } }, { "params": [ { - "type": "value_t*", - "name": "v", - "desc": "value对象。" + "type": "XmlParser*", + "name": "thiz", + "desc": "parser对象。" + }, + { + "type": "XmlBuilder*", + "name": "builder", + "desc": "builder对象。" } ], - "annotation": { - "deconstructor": true, - "scriptable": true, - "gc": true - }, - "desc": "销毁value对象。", - "name": "value_destroy", + "annotation": {}, + "desc": "设置builder。", + "name": "xml_parser_set_builder", "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" + "type": "void", + "desc": "返回无。" } }, { "params": [ { - "type": "value_t*", - "name": "v", - "desc": "value对象。" + "type": "XmlParser*", + "name": "thiz", + "desc": "parser对象。" + }, + { + "type": "const char*", + "name": "xml", + "desc": "数据。" + }, + { + "type": "int", + "name": "length", + "desc": "数据长度。" } ], - "annotation": { - "deconstructor": true, - "scriptable": true - }, - "desc": "重置value对象。", - "name": "value_reset", + "annotation": {}, + "desc": "解析数据。", + "name": "xml_parser_parse", "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" + "type": "void", + "desc": "返回无。" } }, { "params": [ { - "type": "value_t*", - "name": "value", - "desc": "value对象。" + "type": "XmlParser*", + "name": "thiz", + "desc": "parser对象。" + }, + { + "type": "const char*", + "name": "filename", + "desc": "文件名。" } ], - "annotation": { - "cast": true, - "scriptable": true - }, - "desc": "转换为value对象。\r\r > 供脚本语言使用", - "name": "value_cast", + "annotation": {}, + "desc": "解析文件。", + "name": "xml_parser_parse_file", "return": { - "type": "value_t*", - "desc": "对象。" + "type": "void", + "desc": "返回无。" + } + }, + { + "params": [ + { + "type": "XmlParser*", + "name": "thiz", + "desc": "parser对象。" + } + ], + "annotation": {}, + "desc": "销毁parser对象。", + "name": "xml_parser_destroy", + "return": { + "type": "void", + "desc": "返回无。" } } ], "events": [], "properties": [], - "header": "tkc/value.h", - "desc": "一个通用数据类型,用来存放整数、浮点数、字符串和其它对象。\r\r 在C/C++中,一般不需动态创建对象,直接声明并初始化即可。如:\r\r ```c\r value_t v;\r value_set_int(&v, 100);\r ```\r\r> 在脚本语言中,需要动态创建对象。", - "name": "value_t", - "annotation": { - "scriptable": true - }, + "header": "xml/xml_parser.h", + "desc": "xml解析器", + "name": "XmlParser", "level": 1 }, { @@ -6653,7 +5622,7 @@ "annotation": { "scriptable": true }, - "desc": "获取指定的图片。\r 先从缓存查找,如果没找到,再加载并缓存。", + "desc": "获取指定的图片。 先从缓存查找,如果没找到,再加载并缓存。", "name": "image_manager_get_bitmap", "return": { "type": "ret_t", @@ -6753,7 +5722,7 @@ } ], "annotation": {}, - "desc": "设置资源管理器对象。\r\r 之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个图片管理器:\r\r * 一个用于designer本身加载图片。\r\r * 一个用于被设计的窗口加载图片。\r\r这两个图片管理器需要从不同的路径加载资源。", + "desc": "设置资源管理器对象。 之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个图片管理器: * 一个用于designer本身加载图片。 * 一个用于被设计的窗口加载图片。这两个图片管理器需要从不同的路径加载资源。", "name": "image_manager_set_assets_manager", "return": { "type": "ret_t", @@ -6974,7 +5943,7 @@ } ], "header": "base/input_engine.h", - "desc": "输入法引擎接口。\r\r 常见的实现方式有以下几种:\r\r * 空实现。用于不需要输入法的嵌入式平台。\r\r * 拼音输入法实现。用于需要输入法的嵌入式平台。\r\r ```graphviz\r [default_style]\r\r input_engine_pinyin_t -> input_engine_t[arrowhead=empty style=dashed]\r input_engine_null_t -> input_engine_t[arrowhead=empty style=dashed]\r\r ```", + "desc": "输入法引擎接口。 常见的实现方式有以下几种: * 空实现。用于不需要输入法的嵌入式平台。 * 拼音输入法实现。用于需要输入法的嵌入式平台。 ```graphviz [default_style] input_engine_pinyin_t -> input_engine_t[arrowhead=empty style=dashed] input_engine_null_t -> input_engine_t[arrowhead=empty style=dashed] ```", "name": "input_engine_t", "level": 1 }, @@ -7609,7 +6578,7 @@ } ], "header": "base/input_method.h", - "desc": "输入法接口。\r\r 常见的实现方式有以下几种:\r\r * 空实现。用于不需要输入法的嵌入式平台。\r\r * 缺省实现。用于需要输入法的嵌入式平台。\r\r * 基于SDL实现的平台原生输入法。用于桌面系统和手机系统。\r\r ```graphviz\r [default_style]\r\r input_method_default_t -> input_method_t [arrowhead=empty style=dashed]\r input_method_sdl_t -> input_method_t [arrowhead=empty style=dashed]\r input_method_null_t -> input_method_t [arrowhead=empty style=dashed]\r\r ```\r\r > 输入类型请参考:[input\\_type](input_type_t.md)", + "desc": "输入法接口。 常见的实现方式有以下几种: * 空实现。用于不需要输入法的嵌入式平台。 * 缺省实现。用于需要输入法的嵌入式平台。 * 基于SDL实现的平台原生输入法。用于桌面系统和手机系统。 ```graphviz [default_style] input_method_default_t -> input_method_t [arrowhead=empty style=dashed] input_method_sdl_t -> input_method_t [arrowhead=empty style=dashed] input_method_null_t -> input_method_t [arrowhead=empty style=dashed] ``` > 输入类型请参考:[input\\_type](input_type_t.md)", "name": "input_method_t", "annotation": { "scriptable": true @@ -9629,7 +8598,7 @@ "events": [], "properties": [], "header": "base/self_layouter.h", - "desc": "控件自身排版布局器的接口。\r\r 按特定算法对控件进行排版布局,子类需要实现vtable中的函数。", + "desc": "控件自身排版布局器的接口。 按特定算法对控件进行排版布局,子类需要实现vtable中的函数。", "name": "self_layouter_t", "level": 1 }, @@ -9932,7 +8901,7 @@ "events": [], "properties": [], "header": "base/style_factory.h", - "desc": "style工厂接口,主要用于创建style。\r\r> 在特殊情况下,可以实现自己的style工厂,比如支持CSS和可实时修改的style。", + "desc": "style工厂接口,主要用于创建style。> 在特殊情况下,可以实现自己的style工厂,比如支持CSS和可实时修改的style。", "name": "style_factory_t", "level": 1 }, @@ -10353,7 +9322,7 @@ "events": [], "properties": [], "header": "base/style.h", - "desc": "控件风格。\r\r widget从style对象中,获取诸如字体、颜色和图片相关的参数,根据这些参数来绘制界面。\r\r ```c\r style_t* style = widget->astyle;\r int32_t margin = style_get_int(style, STYLE_ID_MARGIN, 2);\r int32_t icon_at = style_get_int(style, STYLE_ID_ICON_AT, ICON_AT_AUTO);\r uint16_t font_size = style_get_int(style, STYLE_ID_FONT_SIZE, TK_DEFAULT_FONT_SIZE);\r ```\r\r 属性名称的请参考[style\\_id](style_id_t.md)", + "desc": "控件风格。 widget从style对象中,获取诸如字体、颜色和图片相关的参数,根据这些参数来绘制界面。 ```c style_t* style = widget->astyle; int32_t margin = style_get_int(style, STYLE_ID_MARGIN, 2); int32_t icon_at = style_get_int(style, STYLE_ID_ICON_AT, ICON_AT_AUTO); uint16_t font_size = style_get_int(style, STYLE_ID_FONT_SIZE, TK_DEFAULT_FONT_SIZE); ``` 属性名称的请参考[style\\_id](style_id_t.md)", "name": "style_t", "annotation": { "scriptable": true @@ -10411,7 +9380,7 @@ } ], "annotation": {}, - "desc": "@deconstructor\r 销毁联想字对象。", + "desc": "@deconstructor 销毁联想字对象。", "name": "suggest_words_destroy", "return": { "type": "ret_t", @@ -11613,7 +10582,7 @@ "events": [], "properties": [], "header": "base/theme.h", - "desc": "主题。\r\r 负责管理缺省的主题数据,方便实现style\\_const。", + "desc": "主题。 负责管理缺省的主题数据,方便实现style\\_const。", "name": "theme_t", "annotation": { "scriptable": true @@ -11673,7 +10642,7 @@ "annotation": { "static": true }, - "desc": "用于非GUI线程增加一个timer,本函数向主循环的事件队列中发送一个增加timer的请求。\r timer回调函数,回调函数返回RET_REPEAT,则下次继续执行,否则自动移出。", + "desc": "用于非GUI线程增加一个timer,本函数向主循环的事件队列中发送一个增加timer的请求。 timer回调函数,回调函数返回RET_REPEAT,则下次继续执行,否则自动移出。", "name": "timer_queue", "return": { "type": "ret_t", @@ -11796,7 +10765,7 @@ "events": [], "properties": [], "header": "base/timer.h", - "desc": "定时器系统。\r\r > 本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。\r\r 示例:\r\r ```c\r static ret_t my_on_timer(const timer_info_t* info) {\r widget_t* widget = WIDGET(info->ctx);\r ...\r return RET_REPEAT;\r }\r\r ...\r\r timer_add(my_on_timer, widget, 1000);\r ```\r > 在非GUI线程请用timer\\_queue。", + "desc": "定时器系统。 > 本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。 示例: ```c static ret_t my_on_timer(const timer_info_t* info) { widget_t* widget = WIDGET(info->ctx); ... return RET_REPEAT; } ... timer_add(my_on_timer, widget, 1000); ``` > 在非GUI线程请用timer\\_queue。", "name": "timer_t", "annotation": { "scriptable": true, @@ -12193,7 +11162,7 @@ "events": [], "properties": [], "header": "base/ui_builder.h", - "desc": "界面构造器接口。\r\r 负责把ui\\_loader解析的数据进一步处理,至于具体做什么,由具体实现决定。常见的实现有:\r\r * 构建widget对象树。\r\r * 生成二进制的UI描述数据。\r\r * 生成XML格式的UI描述数据。\r\r ```graphviz\r [default_style]\r\r ui_builder_defualt_t -> ui_builder_t[arrowhead = \"empty\"]\r ui_xml_writer_t -> ui_builder_t[arrowhead = \"empty\"]\r ui_binary_writer_t -> ui_builder_t[arrowhead = \"empty\"]\r ```", + "desc": "界面构造器接口。 负责把ui\\_loader解析的数据进一步处理,至于具体做什么,由具体实现决定。常见的实现有: * 构建widget对象树。 * 生成二进制的UI描述数据。 * 生成XML格式的UI描述数据。 ```graphviz [default_style] ui_builder_defualt_t -> ui_builder_t[arrowhead = \"empty\"] ui_xml_writer_t -> ui_builder_t[arrowhead = \"empty\"] ui_binary_writer_t -> ui_builder_t[arrowhead = \"empty\"] ```", "name": "ui_builder_t", "level": 1 }, @@ -12239,7 +11208,7 @@ "annotation": { "static": true }, - "desc": "初始化。\r 设置实际的处理函数。", + "desc": "初始化。 设置实际的处理函数。", "name": "ui_feedback_init", "return": { "type": "ret_t", @@ -12300,7 +11269,7 @@ } ], "annotation": {}, - "desc": "从指定的资源加载widget对象,通常用于加载非窗口的widget。\r\r>需要自己将widget加入窗口后,再调用widget\\_layout。", + "desc": "从指定的资源加载widget对象,通常用于加载非窗口的widget。>需要自己将widget加入窗口后,再调用widget\\_layout。", "name": "ui_loader_load_widget", "return": { "type": "widget_t*", @@ -12311,7 +11280,7 @@ "events": [], "properties": [], "header": "base/ui_loader.h", - "desc": "UI加载器。\r\r 负责从资源加载界面描述数据,然后分发给ui\\_builder,由ui\\_builder进一步处理。\r\r 常见的实现有两种:\r\r * XML格式的加载器。\r\r * 二进制格式的加载器。\r\r ```graphviz\r [default_style]\r\r ui_loader_defualt_t -> ui_loader_t[arrowhead = \"empty\"]\r ui_loader_xml_t -> ui_loader_t[arrowhead = \"empty\"]\r\r ```", + "desc": "UI加载器。 负责从资源加载界面描述数据,然后分发给ui\\_builder,由ui\\_builder进一步处理。 常见的实现有两种: * XML格式的加载器。 * 二进制格式的加载器。 ```graphviz [default_style] ui_loader_defualt_t -> ui_loader_t[arrowhead = \"empty\"] ui_loader_xml_t -> ui_loader_t[arrowhead = \"empty\"] ```", "name": "ui_loader_t", "level": 1 }, @@ -12931,7 +11900,7 @@ "annotation": { "scriptable": true }, - "desc": "闭合路径。\r\r >闭合路径是指把起点和终点连接起来,形成一个封闭的多边形。", + "desc": "闭合路径。 >闭合路径是指把起点和终点连接起来,形成一个封闭的多边形。", "name": "vgcanvas_close_path", "return": { "type": "ret_t", @@ -13208,7 +12177,7 @@ "annotation": { "scriptable": true }, - "desc": "用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。\r 多边形的顶点必须在图片范围内,可以通过矩阵变化画到不同的位置。", + "desc": "用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。 多边形的顶点必须在图片范围内,可以通过矩阵变化画到不同的位置。", "name": "vgcanvas_paint", "return": { "type": "ret_t", @@ -13487,7 +12456,7 @@ "annotation": { "scriptable": true }, - "desc": "绘制图标。\r\r 绘制图标时会根据屏幕密度进行自动缩放,而绘制普通图片时不会。", + "desc": "绘制图标。 绘制图标时会根据屏幕密度进行自动缩放,而绘制普通图片时不会。", "name": "vgcanvas_draw_icon", "return": { "type": "ret_t", @@ -13917,7 +12886,7 @@ "annotation": { "scriptable": true }, - "desc": "保存当前的状态。如颜色和矩阵等信息。\r\r > save/restore必须配套使用,否则可能导致状态混乱。", + "desc": "保存当前的状态。如颜色和矩阵等信息。 > save/restore必须配套使用,否则可能导致状态混乱。", "name": "vgcanvas_save", "return": { "type": "ret_t", @@ -13935,7 +12904,7 @@ "annotation": { "scriptable": true }, - "desc": "恢复上次save的状态。\r\r> save/restore必须配套使用,否则可能导致状态混乱。", + "desc": "恢复上次save的状态。> save/restore必须配套使用,否则可能导致状态混乱。", "name": "vgcanvas_restore", "return": { "type": "ret_t", @@ -14074,7 +13043,7 @@ }, { "name": "miter_limit", - "desc": "miter\\_limit。\r @see http://www.w3school.com.cn/tags/canvas_miterlimit.asp", + "desc": "miter\\_limit。 @see http://www.w3school.com.cn/tags/canvas_miterlimit.asp", "type": "float_t", "annotation": { "readable": true, @@ -14083,7 +13052,7 @@ }, { "name": "line_cap", - "desc": "line\\_cap。\r @see http://www.w3school.com.cn/tags/canvas_linecap.asp", + "desc": "line\\_cap。 @see http://www.w3school.com.cn/tags/canvas_linecap.asp", "type": "const char*", "annotation": { "readable": true, @@ -14092,7 +13061,7 @@ }, { "name": "line_join", - "desc": "line\\_join。\r @see http://www.w3school.com.cn/tags/canvas_linejoin.asp", + "desc": "line\\_join。 @see http://www.w3school.com.cn/tags/canvas_linejoin.asp", "type": "const char*", "annotation": { "readable": true, @@ -14119,7 +13088,7 @@ }, { "name": "text_align", - "desc": "文本对齐方式。\r\r @see http://www.w3school.com.cn/tags/canvas_textalign.asp", + "desc": "文本对齐方式。 @see http://www.w3school.com.cn/tags/canvas_textalign.asp", "type": "const char*", "annotation": { "readable": true, @@ -14128,7 +13097,7 @@ }, { "name": "text_baseline", - "desc": "文本基线。\r\r @see http://www.w3school.com.cn/tags/canvas_textbaseline.asp", + "desc": "文本基线。 @see http://www.w3school.com.cn/tags/canvas_textbaseline.asp", "type": "const char*", "annotation": { "readable": true, @@ -14169,7 +13138,7 @@ } ], "header": "base/vgcanvas.h", - "desc": "矢量图画布抽象基类。\r\r 具体实现时可以使用agg,nanovg, cairo和skia等方式。\r\r cairo和skia体积太大,不适合嵌入式平台,但在PC平台也是一种选择。\r\r 目前我们只提供了基于nanovg的实现,支持软件渲染和硬件渲染。\r\r 我们对nanovg进行了一些改进:\r\r * 可以用agg/agge实现软件渲染(暂时不支持文本绘制)。\r\r * 可以用bgfx使用DirectX(Windows平台)和Metal(iOS)平台硬件加速。\r\r ```graphviz\r [default_style]\r\r vgcanvas_cairo_t -> vgcanvas_t[arrowhead = \"empty\"]\r vgcanvas_nanovg_t -> vgcanvas_t[arrowhead = \"empty\"]\r opengl -> vgcanvas_nanovg_t[arrowhead = \"none\"]\r bgfx -> vgcanvas_nanovg_t[arrowhead = \"none\"]\r agg -> vgcanvas_nanovg_t[arrowhead = \"none\"]\r agge -> vgcanvas_nanovg_t[arrowhead = \"none\"]\r vgcanvas_skia_t -> vgcanvas_t[arrowhead = \"empty\"]\r vgcanvas_agge_t -> vgcanvas_t[arrowhead = \"empty\"]\r ```\r\r 示例:\r\r ```c\r vgcanvas_t* vg = canvas_get_vgcanvas(c);\r vgcanvas_save(vg);\r vgcanvas_translate(vg, 0, 100);\r\r vgcanvas_set_line_width(vg, 1);\r vgcanvas_set_fill_color(vg, color_init(0xff, 0, 0, 0xff));\r vgcanvas_rect(vg, 5, 5, 100, 100);\r vgcanvas_fill(vg);\r vgcanvas_restore(vg);\r ```\r\r >请参考:https://www.w3schools.com/tags/ref_canvas.asp", + "desc": "矢量图画布抽象基类。 具体实现时可以使用agg,nanovg, cairo和skia等方式。 cairo和skia体积太大,不适合嵌入式平台,但在PC平台也是一种选择。 目前我们只提供了基于nanovg的实现,支持软件渲染和硬件渲染。 我们对nanovg进行了一些改进: * 可以用agg/agge实现软件渲染(暂时不支持文本绘制)。 * 可以用bgfx使用DirectX(Windows平台)和Metal(iOS)平台硬件加速。 ```graphviz [default_style] vgcanvas_cairo_t -> vgcanvas_t[arrowhead = \"empty\"] vgcanvas_nanovg_t -> vgcanvas_t[arrowhead = \"empty\"] opengl -> vgcanvas_nanovg_t[arrowhead = \"none\"] bgfx -> vgcanvas_nanovg_t[arrowhead = \"none\"] agg -> vgcanvas_nanovg_t[arrowhead = \"none\"] agge -> vgcanvas_nanovg_t[arrowhead = \"none\"] vgcanvas_skia_t -> vgcanvas_t[arrowhead = \"empty\"] vgcanvas_agge_t -> vgcanvas_t[arrowhead = \"empty\"] ``` 示例: ```c vgcanvas_t* vg = canvas_get_vgcanvas(c); vgcanvas_save(vg); vgcanvas_translate(vg, 0, 100); vgcanvas_set_line_width(vg, 1); vgcanvas_set_fill_color(vg, color_init(0xff, 0, 0, 0xff)); vgcanvas_rect(vg, 5, 5, 100, 100); vgcanvas_fill(vg); vgcanvas_restore(vg); ``` >请参考:https://www.w3schools.com/tags/ref_canvas.asp", "name": "vgcanvas_t", "annotation": { "scriptable": true @@ -14373,7 +13342,7 @@ } ], "annotation": {}, - "desc": "播放满足条件的动画。\r 1.widget为NULL时,播放所有名称为name的动画。\r 2.name为NULL时,播放所有widget相关的动画。\r 3.widget和name均为NULL,播放所有动画。", + "desc": "播放满足条件的动画。 1.widget为NULL时,播放所有名称为name的动画。 2.name为NULL时,播放所有widget相关的动画。 3.widget和name均为NULL,播放所有动画。", "name": "widget_animator_manager_start", "return": { "type": "ret_t", @@ -14399,7 +13368,7 @@ } ], "annotation": {}, - "desc": "停止满足条件的动画。\r 1.widget为NULL时,停止所有名称为name的动画。\r 2.name为NULL时,停止所有widget相关的动画。\r 3.widget和name均为NULL,停止所有动画。", + "desc": "停止满足条件的动画。 1.widget为NULL时,停止所有名称为name的动画。 2.name为NULL时,停止所有widget相关的动画。 3.widget和name均为NULL,停止所有动画。", "name": "widget_animator_manager_stop", "return": { "type": "ret_t", @@ -14425,7 +13394,7 @@ } ], "annotation": {}, - "desc": "暂停满足条件的动画。\r 1.widget为NULL时,暂停所有名称为name的动画。\r 2.name为NULL时,暂停所有widget相关的动画。\r 3.widget和name均为NULL,暂停所有动画。", + "desc": "暂停满足条件的动画。 1.widget为NULL时,暂停所有名称为name的动画。 2.name为NULL时,暂停所有widget相关的动画。 3.widget和name均为NULL,暂停所有动画。", "name": "widget_animator_manager_pause", "return": { "type": "ret_t", @@ -14508,7 +13477,7 @@ } ], "annotation": {}, - "desc": "设置时间倍率。\r 设置动画的时间倍率,<0: 时间倒退,<1: 时间变慢,>1 时间变快。", + "desc": "设置时间倍率。 设置动画的时间倍率,<0: 时间倒退,<1: 时间变慢,>1 时间变快。", "name": "widget_animator_manager_set_time_scale", "return": { "type": "ret_t", @@ -14720,7 +13689,7 @@ "annotation": { "scriptable": "custom" }, - "desc": "注册指定事件的处理函数。\r 事件类型。目前支持:EVT_ANIM_START,EVT_ANIM_STOP,EVT_ANIM_PAUSE,EVT_ANIM_ONCE和EVT_ANIM_END。", + "desc": "注册指定事件的处理函数。 事件类型。目前支持:EVT_ANIM_START,EVT_ANIM_STOP,EVT_ANIM_PAUSE,EVT_ANIM_ONCE和EVT_ANIM_END。", "name": "widget_animator_on", "return": { "type": "uint32_t", @@ -15687,6 +14656,10 @@ "desc": "颜色块控件。", "name": "WIDGET_TYPE_COLOR_TILE" }, + { + "desc": "裁剪控件。", + "name": "WIDGET_TYPE_CLIP_VIEW" + }, { "desc": "富文本控件。", "name": "WIDGET_TYPE_RICH_TEXT" @@ -15781,7 +14754,7 @@ }, { "type": "enum", - "desc": "控件状态常量定义。\r\r 这里指定常用的状态值,扩展控件可以在自己的头文件中定义私有的状态。", + "desc": "控件状态常量定义。 这里指定常用的状态值,扩展控件可以在自己的头文件中定义私有的状态。", "consts": [ { "desc": "无效状态。", @@ -16111,7 +15084,7 @@ "annotation": { "scriptable": true }, - "desc": "设置控件的值。\r 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。", + "desc": "设置控件的值。 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。", "name": "widget_set_value", "return": { "type": "ret_t", @@ -16139,7 +15112,7 @@ "annotation": { "scriptable": true }, - "desc": "设置控件的值(以动画形式变化到指定的值)。\r 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。", + "desc": "设置控件的值(以动画形式变化到指定的值)。 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。", "name": "widget_animate_value_to", "return": { "type": "ret_t", @@ -16162,7 +15135,7 @@ "annotation": { "scriptable": true }, - "desc": "增加控件的值。\r 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。", + "desc": "增加控件的值。 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。", "name": "widget_add_value", "return": { "type": "ret_t", @@ -16183,7 +15156,7 @@ } ], "annotation": {}, - "desc": "设置控件的文本。\r 只是对widget\\_set\\_prop的包装,文本的意义由子类控件决定。", + "desc": "设置控件的文本。 只是对widget\\_set\\_prop的包装,文本的意义由子类控件决定。", "name": "widget_set_text", "return": { "type": "ret_t", @@ -16229,7 +15202,7 @@ "annotation": { "scriptable": true }, - "desc": "设置控件的文本。\r 只是对widget\\_set\\_prop的包装,文本的意义由子类控件决定。", + "desc": "设置控件的文本。 只是对widget\\_set\\_prop的包装,文本的意义由子类控件决定。", "name": "widget_set_text_utf8", "alias": "set_text", "return": { @@ -16289,7 +15262,7 @@ "annotation": { "scriptable": true }, - "desc": "获取控件的文本。\r 只是对widget\\_get\\_prop的包装,文本的意义由子类控件决定。", + "desc": "获取控件的文本。 只是对widget\\_get\\_prop的包装,文本的意义由子类控件决定。", "name": "widget_get_text", "return": { "type": "wchar_t*", @@ -16398,7 +15371,7 @@ "annotation": { "scriptable": true }, - "desc": "设置theme的名称,用于动态切换主题。名称与当前主题名称相同,则重新加载全部资源。\r\r > 目前只支持带有文件系统的平台。", + "desc": "设置theme的名称,用于动态切换主题。名称与当前主题名称相同,则重新加载全部资源。 > 目前只支持带有文件系统的平台。", "name": "widget_set_theme", "return": { "type": "ret_t", @@ -16444,7 +15417,7 @@ "annotation": { "scriptable": true }, - "desc": "设置控件的动画参数(仅用于在UI文件使用)。\r 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)", + "desc": "设置控件的动画参数(仅用于在UI文件使用)。 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)", "name": "widget_set_animation", "return": { "type": "ret_t", @@ -16467,7 +15440,7 @@ "annotation": { "scriptable": true }, - "desc": "创建动画。\r 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\r * 除非指定auto_start=false,动画创建后自动启动。\r * 除非指定auto_destroy=false,动画播放完成后自动销毁。", + "desc": "创建动画。 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md) * 除非指定auto_start=false,动画创建后自动启动。 * 除非指定auto_destroy=false,动画播放完成后自动销毁。", "name": "widget_create_animator", "return": { "type": "ret_t", @@ -16490,7 +15463,7 @@ "annotation": { "scriptable": true }, - "desc": "播放动画。\r 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\r * 1.widget为NULL时,播放所有名称为name的动画。\r * 2.name为NULL时,播放所有widget相关的动画。\r * 3.widget和name均为NULL,播放所有动画。", + "desc": "播放动画。 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md) * 1.widget为NULL时,播放所有名称为name的动画。 * 2.name为NULL时,播放所有widget相关的动画。 * 3.widget和name均为NULL,播放所有动画。", "name": "widget_start_animator", "return": { "type": "ret_t", @@ -16518,7 +15491,7 @@ "annotation": { "scriptable": true }, - "desc": "设置动画的时间倍率,<0: 时间倒退,<1: 时间变慢,>1 时间变快。\r 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\r * 1.widget为NULL时,设置所有名称为name的动画的时间倍率。\r * 2.name为NULL时,设置所有widget相关的动画的时间倍率。\r * 3.widget和name均为NULL,设置所有动画的时间倍率。", + "desc": "设置动画的时间倍率,<0: 时间倒退,<1: 时间变慢,>1 时间变快。 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md) * 1.widget为NULL时,设置所有名称为name的动画的时间倍率。 * 2.name为NULL时,设置所有widget相关的动画的时间倍率。 * 3.widget和name均为NULL,设置所有动画的时间倍率。", "name": "widget_set_animator_time_scale", "return": { "type": "ret_t", @@ -16541,7 +15514,7 @@ "annotation": { "scriptable": true }, - "desc": "暂停动画。\r 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\r * 1.widget为NULL时,暂停所有名称为name的动画。\r * 2.name为NULL时,暂停所有widget相关的动画。\r * 3.widget和name均为NULL,暂停所有动画。", + "desc": "暂停动画。 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md) * 1.widget为NULL时,暂停所有名称为name的动画。 * 2.name为NULL时,暂停所有widget相关的动画。 * 3.widget和name均为NULL,暂停所有动画。", "name": "widget_pause_animator", "return": { "type": "ret_t", @@ -16585,7 +15558,7 @@ "annotation": { "scriptable": true }, - "desc": "停止动画(控件的相应属性回归原位)。\r 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\r * 1.widget为NULL时,停止所有名称为name的动画。\r * 2.name为NULL时,停止所有widget相关的动画。\r * 3.widget和name均为NULL,停止所有动画。", + "desc": "停止动画(控件的相应属性回归原位)。 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md) * 1.widget为NULL时,停止所有名称为name的动画。 * 2.name为NULL时,停止所有widget相关的动画。 * 3.widget和name均为NULL,停止所有动画。", "name": "widget_stop_animator", "return": { "type": "ret_t", @@ -16608,7 +15581,7 @@ "annotation": { "scriptable": true }, - "desc": "销毁动画。\r 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\r * 1.widget为NULL时,销毁所有名称为name的动画。\r * 2.name为NULL时,销毁所有widget相关的动画。\r * 3.widget和name均为NULL,销毁所有动画。", + "desc": "销毁动画。 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md) * 1.widget为NULL时,销毁所有名称为name的动画。 * 2.name为NULL时,销毁所有widget相关的动画。 * 3.widget和name均为NULL,销毁所有动画。", "name": "widget_destroy_animator", "return": { "type": "ret_t", @@ -16677,7 +15650,7 @@ "annotation": { "scriptable": true }, - "desc": "设置控件的floating标志。\r> floating的控件不受父控件的子控件布局参数的影响。", + "desc": "设置控件的floating标志。> floating的控件不受父控件的子控件布局参数的影响。", "name": "widget_set_floating", "return": { "type": "ret_t", @@ -16746,7 +15719,7 @@ "annotation": { "scriptable": true }, - "desc": "设置控件的不透明度。\r\r>在嵌入式平台,半透明效果会使性能大幅下降,请谨慎使用。", + "desc": "设置控件的不透明度。>在嵌入式平台,半透明效果会使性能大幅下降,请谨慎使用。", "name": "widget_set_opacity", "return": { "type": "ret_t", @@ -17047,7 +16020,7 @@ "annotation": { "scriptable": "custom" }, - "desc": "注册指定事件的处理函数。\r 使用示例:\r\r ```c\r widget_t* ok = button_create(win, 10, 10, 80, 30);\r widget_on(ok, EVT_CLICK, on_click, NULL);\r\r ```", + "desc": "注册指定事件的处理函数。 使用示例: ```c widget_t* ok = button_create(win, 10, 10, 80, 30); widget_on(ok, EVT_CLICK, on_click, NULL); ```", "name": "widget_on", "return": { "type": "int32_t", @@ -17083,7 +16056,7 @@ } ], "annotation": {}, - "desc": "注册指定tag的事件处理函数。\r\r > 注册时指定一个tag,可用widget\\_off\\_by\\_tag注销相同tag的事件处理函数。", + "desc": "注册指定tag的事件处理函数。 > 注册时指定一个tag,可用widget\\_off\\_by\\_tag注销相同tag的事件处理函数。", "name": "widget_on_with_tag", "return": { "type": "int32_t", @@ -17142,7 +16115,7 @@ } ], "annotation": {}, - "desc": "为指定名称的子控件注册指定事件的处理函数。\r 递归查找指定名称的子控件,然后为其注册指定事件的处理函数。", + "desc": "为指定名称的子控件注册指定事件的处理函数。 递归查找指定名称的子控件,然后为其注册指定事件的处理函数。", "name": "widget_child_on", "return": { "type": "int32_t", @@ -17666,7 +16639,7 @@ } ], "annotation": {}, - "desc": "让指定子控件抓住事件。\r 控件抓住之后,事件直接分发给该控件。", + "desc": "让指定子控件抓住事件。 控件抓住之后,事件直接分发给该控件。", "name": "widget_grab", "return": { "type": "ret_t", @@ -17841,7 +16814,7 @@ } ], "annotation": {}, - "desc": "创建定时器。\r 该定时器在控件销毁时自动销毁,**timer\\_info\\_t**的ctx为widget。\r 如果定时器的生命周期与控件无关,请直接调用**timer_add**,以避免不必要的内存开销。\r\r 使用示例:\r\r ```c\r static ret_t digit_clock_on_timer(const timer_info_t* info) {\r widget_t* widget = WIDGET(info->ctx);\r\r return RET_REPEAT;\r }\r ...\r widget_add_timer(widget, digit_clock_on_timer, 1000);\r\r ```", + "desc": "创建定时器。 该定时器在控件销毁时自动销毁,**timer\\_info\\_t**的ctx为widget。 如果定时器的生命周期与控件无关,请直接调用**timer_add**,以避免不必要的内存开销。 使用示例: ```c static ret_t digit_clock_on_timer(const timer_info_t* info) { widget_t* widget = WIDGET(info->ctx); return RET_REPEAT; } ... widget_add_timer(widget, digit_clock_on_timer, 1000); ```", "name": "widget_add_timer", "return": { "type": "uint32_t", @@ -17862,7 +16835,7 @@ } ], "annotation": {}, - "desc": "创建idle。\r 该idle在控件销毁时自动销毁,**idle\\_info\\_t**的ctx为widget。\r 如果idle的生命周期与控件无关,请直接调用**idle_add**,以避免不必要的内存开销。", + "desc": "创建idle。 该idle在控件销毁时自动销毁,**idle\\_info\\_t**的ctx为widget。 如果idle的生命周期与控件无关,请直接调用**idle_add**,以避免不必要的内存开销。", "name": "widget_add_idle", "return": { "type": "uint32_t", @@ -17888,7 +16861,7 @@ } ], "annotation": {}, - "desc": "加载图片。\r 返回的bitmap对象只在当前调用有效,请不保存对bitmap对象的引用。\r\r\r 使用示例:\r\r ```c\r bitmap_t bitmap;\r widget_load_image(widget, \"myimage\", &bitmap);\r\r ```", + "desc": "加载图片。 返回的bitmap对象只在当前调用有效,请不保存对bitmap对象的引用。 使用示例: ```c bitmap_t bitmap; widget_load_image(widget, \"myimage\", &bitmap); ```", "name": "widget_load_image", "return": { "type": "ret_t", @@ -17909,7 +16882,7 @@ } ], "annotation": {}, - "desc": "卸载图片。\r\r> 一般不需要调用,只有确认在图片不再需要时才调用本函数卸载。", + "desc": "卸载图片。> 一般不需要调用,只有确认在图片不再需要时才调用本函数卸载。", "name": "widget_unload_image", "return": { "type": "ret_t", @@ -17935,7 +16908,7 @@ } ], "annotation": {}, - "desc": "加载资源。\r\r 使用示例:\r\r ```c\r const asset_info_t* asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, \"mysvg\");\r ...\r widget_unload_asset(widget, asset);\r ```", + "desc": "加载资源。 使用示例: ```c const asset_info_t* asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, \"mysvg\"); ... widget_unload_asset(widget, asset); ```", "name": "widget_load_asset", "return": { "type": "const asset_info_t*", @@ -17956,7 +16929,7 @@ } ], "annotation": {}, - "desc": "卸载资源。\r\r 使用示例:\r\r ```c\r const asset_info_t* asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, \"mysvg\");\r ...\r widget_unload_asset(widget, asset);\r ```", + "desc": "卸载资源。 使用示例: ```c const asset_info_t* asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, \"mysvg\"); ... widget_unload_asset(widget, asset); ```", "name": "widget_unload_asset", "return": { "type": "ret_t", @@ -17993,7 +16966,7 @@ "annotation": { "scriptable": true }, - "desc": "从父控件中移除控件,并调用unref函数销毁控件。\r \r > 一般无需直接调用,关闭窗口时,自动销毁相关控件。", + "desc": "从父控件中移除控件,并调用unref函数销毁控件。 > 一般无需直接调用,关闭窗口时,自动销毁相关控件。", "name": "widget_destroy", "return": { "type": "ret_t", @@ -18534,7 +17507,7 @@ }, { "name": "with_focus_state", - "desc": "是否支持焦点状态。\r > 如果希望style支持焦点状态,但有不希望焦点停留,可用本属性。", + "desc": "是否支持焦点状态。 > 如果希望style支持焦点状态,但有不希望焦点停留,可用本属性。", "type": "bool_t", "annotation": { "set_prop": true, @@ -18758,7 +17731,7 @@ } ], "header": "base/widget.h", - "desc": "**widget_t** 是所有控件、窗口和窗口管理器的基类。\r **widget_t**也是一个容器,可放其它**widget_t**到它的内部,形成一个树形结构。\r\r ```graphviz\r [default_style]\r\r widget_t -> widget_t[arrowhead = \"diamond\"]\r window_t -> widget_t[arrowhead = \"empty\"]\r window_manager_t -> widget_t[arrowhead = \"empty\"]\r button_t -> widget_t[arrowhead = \"empty\"]\r label_t -> widget_t[arrowhead = \"empty\"]\r xxx_widget_t -> widget_t[arrowhead = \"empty\"]\r ```\r\r 通常**widget_t**通过一个矩形区域向用户呈现一些信息,接受用户的输入,并据此做出适当的反应。\r 它负责控件的生命周期、通用状态、事件分发和Style的管理。\r 本类提供的接口(函数和属性)除非特别说明,一般都适用于子类控件。\r\r 为了便于解释,这里特别说明一下几个术语:\r\r * **父控件与子控件**:父控件与子控件指的两个控件的组合关系(这是在运行时决定的)。\r 比如:在窗口中放一个按钮,此时,我们称按钮是窗口的子控件,窗口是按钮的父控件。\r\r ```graphviz\r [default_style]\r\r 子控件 -> 父控件[arrowhead = \"ediamond\"]\r ```\r\r * **子类控件与父类控件**:子类控件与父类控件指的两类控件的继承关系(这是在设计时决定的)。\r 比如:我们称**button_t**是**widget_t**的子类控件,**widget_t**是**button_t**的父类控件。\r\r ```graphviz\r [default_style]\r\r 子类控件 -> 父类控件[arrowhead = \"empty\"]\r\r ```\r\r widget相关的函数都只能在GUI线程中执行,如果需在非GUI线程中想调用widget相关函数,\r 请用idle\\_queue或timer\\_queue进行串行化。\r 请参考[demo thread](https://github.com/zlgopen/awtk/blob/master/demos/demo_thread_app.c)\r\r **widget\\_t**是抽象类,不要直接创建**widget\\_t**的实例。控件支持两种创建方式:\r\r * 通过XML创建。如:\r\r ```xml\r \r ```\r\r 拖动对话框标题时移动对话框:\r\r ```xml\r \r \r \r ```\r\r > 更多用法请参考:\r [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/draggable.xml)\r\r 在c代码中使用函数draggable\\_create创建按钮控件。如:\r\r ```c\r widget_t* draggable = draggable_create(target, 0, 0, 0, 0);\r ```\r\r > draggable本身不可见,故无需style。", + "desc": "将draggable放入目标控件,即可让目标控件或当前窗口可以被拖动。 draggable\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于draggable\\_t控件。 在xml中使用\"draggable\"标签创建draggable控件。如: ```xml ``` 拖动对话框标题时移动对话框: ```xml ``` > 更多用法请参考: [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。", "name": "draggable_t", "parent": "widget_t", "annotation": { @@ -37754,11 +37716,10 @@ } ], "annotation": { - "constructor": true, - "scriptable": true + "constructor": true }, - "desc": "创建canvas_widget对象", - "name": "canvas_widget_create", + "desc": "创建color_component对象", + "name": "color_component_create", "return": { "type": "widget_t*", "desc": "对象。" @@ -37769,26 +37730,95 @@ { "type": "widget_t*", "name": "widget", - "desc": "canvas_widget对象。" + "desc": "控件对象。" + }, + { + "type": "color_t", + "name": "c", + "desc": "颜色。" + } + ], + "annotation": {}, + "desc": "设置颜色。", + "name": "color_component_set_color", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "color_component对象。" + } + ], + "annotation": {}, + "desc": "获取h分量。", + "name": "color_component_get_h", + "return": { + "type": "float", + "desc": "返回h分量。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "color_component对象。" + } + ], + "annotation": {}, + "desc": "获取s分量。", + "name": "color_component_get_s", + "return": { + "type": "float", + "desc": "返回s分量。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "color_component对象。" + } + ], + "annotation": {}, + "desc": "获取v分量。", + "name": "color_component_get_v", + "return": { + "type": "float", + "desc": "返回v分量。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "color_component对象。" } ], "annotation": { "cast": true, "scriptable": true }, - "desc": "转换为canvas_widget对象(供脚本语言使用)。", - "name": "canvas_widget_cast", + "desc": "转换为color_component对象(供脚本语言使用)。", + "name": "color_component_cast", "return": { "type": "widget_t*", - "desc": "canvas_widget对象。" + "desc": "color_component对象。" } } ], "events": [], "properties": [], - "header": "canvas_widget/canvas_widget.h", - "desc": "画布控件。\r\r 画布控件让开发者可以自己在控件上绘制需要的内容。\r\r canvas\\_widget\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于canvas\\_widget\\_t控件。\r\r 在xml中使用\"canvas\"标签创建画布控件。如:\r\r ```xml\r \r ```\r\r > 更多用法请参考:\r [canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/vgcanvas.xml)\r\r 在c代码中使用函数canvas\\_widget\\_create创建画布控件。如:\r\r ```c\r widget_t* canvas = canvas_widget_create(win, 0, 0, win->w, win->h);\r ```\r\r > 创建之后,需要用widget\\_on注册EVT\\_PAINT事件,并在EVT\\_PAINT事件处理函数中绘制。\r\r ```c\r widget_on(canvas, EVT_PAINT, on_paint_event, canvas);\r ```\r\r 绘制时,可以通过canvas接口去绘制,也可以通过vgcanvas接口去绘制。\r 先从evt获取canvas对象,再通过canvas\\_get\\_vgcanvas从canvas中获取vgcanvas对象。\r\r ```c\r\r static ret_t on_paint_event(void* ctx, event_t* evt) {\r widget_t* canvas_widget = WIDGET(ctx);\r canvas_t* c = paint_event_cast(evt)->c;\r vgcanvas_t* vg = canvas_get_vgcanvas(c);\r color_t bg = color_init(0xe0, 0xe0, 0xe0, 0xff);\r color_t tc = color_init(0, 0, 0, 0xff);\r rect_t r = rect_init(canvas_widget->x, canvas_widget->y, canvas_widget->w, canvas_widget->h);\r\r vgcanvas_save(vg);\r vgcanvas_clip_rect(vg, r.x, r.y, r.w, r.h);\r vgcanvas_translate(vg, r.x, r.y);\r\r ...\r\r vgcanvas_restore(vg);\r\r return RET_OK;\r }\r ```\r\r > 完整示例请参考:\r [canvas demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/canvas.c)\r\r 参考:\r\r * [canvas接口描述](canvas_t.md)\r * [vgcanvas接口描述](vgcanvas_t.md)", - "name": "canvas_widget_t", + "header": "color_picker/color_component.h", + "desc": "颜色选择器的颜色分量。\r 控件的名称有严格规定:\r COLOR_PICKER_CHILD_SV: 水平为Value/Brightness(递增),垂直为Saturation(递减)。\r COLOR_PICKER_CHILD_H: 水平为同色,垂直为Hue(递减)。", + "name": "color_component_t", "parent": "widget_t", "annotation": { "scriptable": true, @@ -38636,7 +38666,7 @@ "events": [], "properties": [], "header": "base/widget_factory.h", - "desc": "控件工厂对象。\r\r 提供通过类型创建控件的能力。\r 用户注册自定义控件,可以获得内置控件同等待遇。", + "desc": "控件工厂对象。 提供通过类型创建控件的能力。 用户注册自定义控件,可以获得内置控件同等待遇。", "name": "widget_factory_t", "parent": "emitter", "level": 2 @@ -39568,7 +39598,7 @@ "constructor": true, "scriptable": true }, - "desc": "创建style\\_mutable对象。\r\r > 除了测试程序外不需要直接调用,widget会通过style\\_factory\\_create创建。", + "desc": "创建style\\_mutable对象。 > 除了测试程序外不需要直接调用,widget会通过style\\_factory\\_create创建。", "name": "style_mutable_create", "return": { "type": "style_t*", @@ -39623,7 +39653,7 @@ } ], "header": "base/style_mutable.h", - "desc": "可变的style(可实时修改并生效,主要用于在designer中被编辑的控件,或者一些特殊控件)。\r\r style\\_mutable也对style\\_const进行了包装,当用户没修改某个值时,便从style\\_const中获取。", + "desc": "可变的style(可实时修改并生效,主要用于在designer中被编辑的控件,或者一些特殊控件)。 style\\_mutable也对style\\_const进行了包装,当用户没修改某个值时,便从style\\_const中获取。", "name": "style_mutable_t", "parent": "style_t", "annotation": { @@ -41183,7 +41213,7 @@ }, { "name": "ctrl", - "desc": "right alt键是否按下。\r ctrl键是否按下。", + "desc": "right alt键是否按下。 ctrl键是否按下。", "type": "bool_t", "annotation": { "readable": true, @@ -41237,7 +41267,7 @@ }, { "name": "cmd", - "desc": "left shift键是否按下。\r cmd/win键是否按下。", + "desc": "left shift键是否按下。 cmd/win键是否按下。", "type": "bool_t", "annotation": { "readable": true, @@ -42156,7 +42186,7 @@ "properties": [ { "name": "format", - "desc": "显示格式。\r\r * Y 代表年(完整显示)\r * M 代表月(1-12)\r * D 代表日(1-31)\r * h 代表时(0-23)\r * m 代表分(0-59)\r * s 代表秒(0-59)\r * w 代表星期(0-6)\r * W 代表星期的英文缩写(支持翻译)\r * YY 代表年(只显示末两位)\r * MM 代表月(01-12)\r * DD 代表日(01-31)\r * hh 代表时(00-23)\r * mm 代表分(00-59)\r * ss 代表秒(00-59)\r * MMM 代表月的英文缩写(支持翻译)\r\r 如 日期时间为:2018/11/12 9:10:20\r * \"Y/D/M\"显示为\"2018/11/12\"\r * \"Y-D-M\"显示为\"2018-11-12\"\r * \"Y-D-M h:m:s\"显示为\"2018-11-12 9:10:20\"\r * \"Y-D-M hh:mm:ss\"显示为\"2018-11-12 09:10:20\"", + "desc": "显示格式。 * 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\"", "type": "char*", "annotation": { "set_prop": true, @@ -42169,7 +42199,7 @@ } ], "header": "widgets/digit_clock.h", - "desc": "数字时钟控件。\r\r digit\\_clock\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于digit\\_clock\\_t控件。\r\r 在xml中使用\"digit\\_clock\"标签创建数字时钟控件。如:\r\r ```xml\r \r ```\r\r > 更多用法请参考:[digit\\_clock.xml](\r https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/digit_clock.xml)\r\r 在c代码中使用函数digit\\_clock\\_create创建数字时钟控件。如:\r\r ```c\r widget_t* tc = digit_clock_create(win, 10, 10, 240, 30);\r digit_clock_set_format(tc, \"YY/MM/DD h:mm:ss\");\r ```\r\r > 完整示例请参考:[digit\\_clock demo](\r https://github.com/zlgopen/awtk-c-demos/blob/master/demos/digit_clock.c)\r\r 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\r ```xml\r \r ```\r\r > 更多用法请参考:[theme default](\r https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L138)", + "desc": "数字时钟控件。 digit\\_clock\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于digit\\_clock\\_t控件。 在xml中使用\"digit\\_clock\"标签创建数字时钟控件。如: ```xml ``` > 更多用法请参考:[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 ``` > 更多用法请参考:[theme default]( https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L138)", "name": "digit_clock_t", "parent": "widget_t", "annotation": { @@ -42341,6 +42371,81 @@ }, "level": 2 }, + { + "type": "class", + "methods": [ + { + "params": [ + { + "type": "widget_t*", + "name": "parent", + "desc": "父控件" + }, + { + "type": "xy_t", + "name": "x", + "desc": "x坐标" + }, + { + "type": "xy_t", + "name": "y", + "desc": "y坐标" + }, + { + "type": "wh_t", + "name": "w", + "desc": "宽度" + }, + { + "type": "wh_t", + "name": "h", + "desc": "高度" + } + ], + "annotation": { + "constructor": true, + "scriptable": true + }, + "desc": "创建clip_view对象", + "name": "clip_view_create", + "return": { + "type": "widget_t*", + "desc": "对象。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "clip_view对象。" + } + ], + "annotation": { + "cast": true, + "scriptable": true + }, + "desc": "转换为clip_view对象(供脚本语言使用)。", + "name": "clip_view_cast", + "return": { + "type": "widget_t*", + "desc": "clip_view对象。" + } + } + ], + "events": [], + "properties": [], + "header": "widgets/clip_view.h", + "desc": "一个裁剪子控件的容器控件。 它本身不提供布局功能,仅提供具有语义的标签,让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