From 7f5d35330fe077d04caaa521be647d6da222bb6f Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 08:49:27 +0800 Subject: [PATCH 01/66] fix cloned edit display bug --- src/widgets/edit.c | 9 ++++++++- tests/edit_test.cc | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/widgets/edit.c b/src/widgets/edit.c index e3640f2aec..260cac2dbd 100644 --- a/src/widgets/edit.c +++ b/src/widgets/edit.c @@ -65,7 +65,14 @@ static ret_t edit_update_caret(const timer_info_t* timer) { } ret_t edit_on_paint_self(widget_t* widget, canvas_t* c) { - return text_edit_paint(EDIT(widget)->model, c); + edit_t* edit = EDIT(widget); + return_value_if_fail(edit != NULL, RET_BAD_PARAMS); + + if (edit->input_type != INPUT_PASSWORD) { + text_edit_set_mask(edit->model, FALSE); + } + + return text_edit_paint(edit->model, c); } static ret_t edit_do_input_char(widget_t* widget, wchar_t c) { diff --git a/tests/edit_test.cc b/tests/edit_test.cc index 25ab45144c..021bc33b76 100644 --- a/tests/edit_test.cc +++ b/tests/edit_test.cc @@ -441,3 +441,13 @@ TEST(Edit, events) { widget_destroy(b); } + +TEST(Edit, clone) { + widget_t* w1 = edit_create(NULL, 10, 20, 30, 40); + widget_t* w2 = widget_clone(w1, NULL); + + ASSERT_EQ(widget_equal(w1, w2), TRUE); + + widget_destroy(w1); + widget_destroy(w2); +} From cd8bb109cf4bb5b4964977a7c243626ff2e28439 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 08:49:32 +0800 Subject: [PATCH 02/66] format code --- docs/changes.md | 3 +++ src/platforms/tos/cond_var.c | 10 ++++++---- src/platforms/tos/mutex.c | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/changes.md b/docs/changes.md index bc92fbc4af..3b1dc1caaa 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -1,5 +1,8 @@ # 最新动态 +* 2019/10/23 + * 修改clone出来的edit的显示问题。 + * 2019/10/19 * 完善主题切换功能。 * 增加文档[资源目录变更通知](assets_dir_changed.md) diff --git a/src/platforms/tos/cond_var.c b/src/platforms/tos/cond_var.c index 6dd4cc6e0d..772a11c3fb 100644 --- a/src/platforms/tos/cond_var.c +++ b/src/platforms/tos/cond_var.c @@ -30,11 +30,11 @@ struct _tk_cond_var_t { tk_cond_var_t* tk_cond_var_create(void) { tk_cond_var_t* cond_var = TKMEM_ZALLOC(tk_cond_var_t); return_value_if_fail(cond_var != NULL, NULL); - - if(tos_event_create(&(cond_var->event), 0) != K_ERR_NONE) { + + if (tos_event_create(&(cond_var->event), 0) != K_ERR_NONE) { TKMEM_FREE(cond_var); } - + return cond_var; } @@ -43,7 +43,9 @@ ret_t tk_cond_var_wait(tk_cond_var_t* cond_var, uint32_t timeout_ms) { k_event_flag_t flag_expect = 1; k_opt_t opt = TOS_OPT_EVENT_PEND_ANY | TOS_OPT_EVENT_PEND_CLR; return_value_if_fail(cond_var != NULL, RET_BAD_PARAMS); - return_value_if_fail(tos_event_pend(&(cond_var->event), flag_expect, &flag_match, timeout_ms, opt) == K_ERR_NONE, RET_FAIL); + return_value_if_fail( + tos_event_pend(&(cond_var->event), flag_expect, &flag_match, timeout_ms, opt) == K_ERR_NONE, + RET_FAIL); return RET_OK; } diff --git a/src/platforms/tos/mutex.c b/src/platforms/tos/mutex.c index 057316552a..4e0764428c 100644 --- a/src/platforms/tos/mutex.c +++ b/src/platforms/tos/mutex.c @@ -31,7 +31,7 @@ tk_mutex_t* tk_mutex_create() { tk_mutex_t* mutex = TKMEM_ZALLOC(tk_mutex_t); return_value_if_fail(mutex != NULL, NULL); - if(tos_mutex_create(&(mutex->mutex)) != K_ERR_NONE) { + if (tos_mutex_create(&(mutex->mutex)) != K_ERR_NONE) { TKMEM_FREE(mutex); } From 9d9267142e85fc0f0966c1abac6a1a45469e60a9 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 11:19:56 +0800 Subject: [PATCH 03/66] improve set theme --- src/base/widget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base/widget.c b/src/base/widget.c index f9443cce55..8ab3d3cee6 100644 --- a/src/base/widget.c +++ b/src/base/widget.c @@ -397,11 +397,11 @@ ret_t widget_set_theme(widget_t* widget, const char* name) { return_value_if_fail(am != NULL && name != NULL, RET_BAD_PARAMS); - vgcanvas_reset(vgcanvas); font_manager_unload_all(fm); image_manager_unload_all(imm); locale_info_reload(locale_info); assets_manager_set_theme(am, name); + widget_reset_canvas(widget); info = assets_manager_ref(am, ASSET_TYPE_STYLE, "default"); theme_init(theme(), info->data); From 11dbe7487af1d12b9388576f3fc06337a3416105 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 11:20:08 +0800 Subject: [PATCH 04/66] fix combo_box clone --- src/widgets/combo_box.c | 14 ++++++++++++-- tests/combo_box_test.cc | 17 +++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/widgets/combo_box.c b/src/widgets/combo_box.c index 77964f669a..a9878acb82 100644 --- a/src/widgets/combo_box.c +++ b/src/widgets/combo_box.c @@ -29,6 +29,8 @@ #include "tkc/tokenizer.h" #include "widgets/combo_box_item.h" +static ret_t combo_box_on_button_click(void* ctx, event_t* e); + const char* s_combo_box_properties[] = {WIDGET_PROP_MIN, WIDGET_PROP_MAX, WIDGET_PROP_STEP, @@ -41,8 +43,11 @@ const char* s_combo_box_properties[] = {WIDGET_PROP_MIN, WIDGET_PROP_TOP_MARGIN, WIDGET_PROP_BOTTOM_MARGIN, WIDGET_PROP_TIPS, + WIDGET_PROP_OPTIONS, + WIDGET_PROP_ITEM_HEIGHT, WIDGET_PROP_OPEN_WINDOW, WIDGET_PROP_SELECTED_INDEX, + WIDGET_PROP_LOCALIZE_OPTIONS, NULL}; static widget_t* combo_box_create_self(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); @@ -194,6 +199,12 @@ static ret_t combo_box_on_event(widget_t* widget, event_t* e) { return edit_on_event(widget, e); } +static ret_t combo_box_on_add_child(widget_t* widget, widget_t* child) { + widget_on(child, EVT_CLICK, combo_box_on_button_click, widget); + + return RET_FAIL; +} + TK_DECL_VTABLE(combo_box) = {.size = sizeof(combo_box_t), .inputable = TRUE, .type = WIDGET_TYPE_COMBO_BOX, @@ -204,6 +215,7 @@ TK_DECL_VTABLE(combo_box) = {.size = sizeof(combo_box_t), .on_paint_self = edit_on_paint_self, .set_prop = combo_box_set_prop, .get_prop = combo_box_get_prop, + .on_add_child = combo_box_on_add_child, .on_layout_children = combo_box_on_layout_children, .on_destroy = combo_box_on_destroy, .on_event = combo_box_on_event}; @@ -350,8 +362,6 @@ widget_t* combo_box_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h) { widget_set_name(popup, "popup"); widget_use_style(popup, "combobox_down"); - widget_on(popup, EVT_CLICK, combo_box_on_button_click, widget); - return widget; } diff --git a/tests/combo_box_test.cc b/tests/combo_box_test.cc index d2e99ce732..61401cb15c 100644 --- a/tests/combo_box_test.cc +++ b/tests/combo_box_test.cc @@ -177,3 +177,20 @@ TEST(ComboBox, move_resize) { widget_destroy(w); } + +TEST(ComboBox, clone) { + widget_t* w2 = NULL; + widget_t* w1 = combo_box_create(NULL, 0, 0, 100, 100); + const char* str = "1:red;2:green;3:blue"; + + ASSERT_EQ(combo_box_set_options(w1, str), RET_OK); + ASSERT_EQ(combo_box_set_selected_index(w1, 0), RET_OK); + + ASSERT_STREQ(COMBO_BOX(w1)->options, str); + + w2 = widget_clone(w1, NULL); + ASSERT_EQ(widget_equal(w1, w2), TRUE); + + widget_destroy(w1); + widget_destroy(w2); +} From d10243eeb18b24563e1ef11169f8ba557ee164b6 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 14:23:28 +0800 Subject: [PATCH 05/66] refactor emitter and add emitter_on_with_tag/emitter_off_by_tag --- src/tkc/emitter.c | 100 +++++++++++++++++++++++++++++++--------------- src/tkc/emitter.h | 26 ++++++++++++ 2 files changed, 93 insertions(+), 33 deletions(-) diff --git a/src/tkc/emitter.c b/src/tkc/emitter.c index 206c98db54..cd4d65ae1b 100644 --- a/src/tkc/emitter.c +++ b/src/tkc/emitter.c @@ -146,15 +146,17 @@ ret_t emitter_dispatch(emitter_t* emitter, event_t* e) { return RET_OK; } -uint32_t emitter_on(emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx) { +uint32_t emitter_on_with_tag(emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx, + uint32_t tag) { emitter_item_t* iter = NULL; return_value_if_fail(emitter != NULL && handler != NULL, TK_INVALID_ID); iter = TKMEM_ZALLOC(emitter_item_t); return_value_if_fail(iter != NULL, TK_INVALID_ID); - iter->type = etype; + iter->tag = tag; iter->ctx = ctx; + iter->type = etype; iter->handler = handler; iter->id = emitter->next_id++; iter->next = emitter->items; @@ -163,6 +165,10 @@ uint32_t emitter_on(emitter_t* emitter, uint32_t etype, event_func_t handler, vo return iter->id; } +uint32_t emitter_on(emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx) { + return emitter_on_with_tag(emitter, etype, handler, ctx, 0); +} + emitter_item_t* emitter_find(emitter_t* emitter, uint32_t id) { return_value_if_fail(emitter != NULL, NULL); @@ -197,7 +203,7 @@ uint32_t emitter_size(emitter_t* emitter) { return size; } -ret_t emitter_off(emitter_t* emitter, uint32_t id) { +static ret_t emitter_off_ex(emitter_t* emitter, tk_compare_t cmp, void* ctx) { return_value_if_fail(emitter != NULL, RET_BAD_PARAMS); if (emitter->items) { @@ -205,7 +211,7 @@ ret_t emitter_off(emitter_t* emitter, uint32_t id) { emitter_item_t* prev = emitter->items; while (iter != NULL) { - if (iter->id == id) { + if (cmp(iter, ctx) == 0) { return emitter_remove(emitter, prev, iter); } @@ -217,51 +223,79 @@ ret_t emitter_off(emitter_t* emitter, uint32_t id) { return RET_FAIL; } -ret_t emitter_off_by_func(emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx) { - return_value_if_fail(emitter != NULL && handler != NULL, RET_BAD_PARAMS); +static int emitter_item_compare_by_tag(const void* a, const void* b) { + const emitter_item_t* item = (const emitter_item_t*)a; + uint32_t tag = *(const uint32_t*)b; - if (emitter->items) { - emitter_item_t* iter = emitter->items; - emitter_item_t* prev = emitter->items; + return item->tag - tag; +} - while (iter != NULL) { - if (iter->type == etype && iter->ctx == ctx && iter->handler == handler) { - return emitter_remove(emitter, prev, iter); - } +static int emitter_item_compare_by_ctx(const void* a, const void* b) { + const emitter_item_t* item = (const emitter_item_t*)a; - prev = iter; - iter = iter->next; - } + return item->ctx == b ? 0 : 1; +} + +static int emitter_item_compare_by_id(const void* a, const void* b) { + const emitter_item_t* item = (const emitter_item_t*)a; + uint32_t id = *(const uint32_t*)b; + + return item->id - id; +} + +static int emitter_item_compare_by_func(const void* a, const void* b) { + const emitter_item_t* item = (const emitter_item_t*)a; + const emitter_item_t* p = (const emitter_item_t*)a; + + if (item->type == p->type && item->ctx == p->ctx && item->handler == p->handler) { + return 0; } - return RET_FAIL; + return -1; } -ret_t emitter_off_by_ctx(emitter_t* emitter, void* ctx) { - return_value_if_fail(emitter != NULL, RET_BAD_PARAMS); +ret_t emitter_off(emitter_t* emitter, uint32_t id) { + return emitter_off_ex(emitter, emitter_item_compare_by_id, &id); +} - if (emitter->items) { - emitter_item_t* iter = emitter->items; - emitter_item_t* prev = emitter->items; +ret_t emitter_off_by_func(emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx) { + emitter_item_t item; - while (iter != NULL) { - emitter_item_t* next = iter->next; + memset(&item, 0x00, sizeof(item)); - if (iter->ctx == ctx) { - emitter_remove(emitter, prev, iter); + item.ctx = ctx; + item.type = etype; + item.handler = handler; - if (prev == iter) { - prev = next; - } - } else { - prev = iter; + return emitter_off_ex(emitter, emitter_item_compare_by_func, &item); +} + +ret_t emitter_off_by_tag(emitter_t* emitter, uint32_t tag) { + ret_t ret = emitter_off_ex(emitter, emitter_item_compare_by_tag, &tag); + + if (ret == RET_OK) { + while (TRUE) { + if (emitter_off_ex(emitter, emitter_item_compare_by_tag, &tag) != RET_OK) { + break; } + } + } - iter = next; + return ret; +} + +ret_t emitter_off_by_ctx(emitter_t* emitter, void* ctx) { + ret_t ret = emitter_off_ex(emitter, emitter_item_compare_by_ctx, ctx); + + if (ret == RET_OK) { + while (TRUE) { + if (emitter_off_ex(emitter, emitter_item_compare_by_ctx, ctx) != RET_OK) { + break; + } } } - return RET_OK; + return ret; } ret_t emitter_enable(emitter_t* emitter) { diff --git a/src/tkc/emitter.h b/src/tkc/emitter.h index 705d70727e..0f4221a3d0 100644 --- a/src/tkc/emitter.h +++ b/src/tkc/emitter.h @@ -35,6 +35,7 @@ struct _emitter_item_t { uint32_t type; event_func_t handler; + uint32_t tag; tk_destroy_t on_destroy; void* on_destroy_ctx; emitter_item_t* next; @@ -137,6 +138,21 @@ ret_t emitter_dispatch_simple_event(emitter_t* emitter, uint32_t type); */ uint32_t emitter_on(emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx); +/** + * @method emitter_on_with_tag + * 注册指定事件的处理函数。 + * @annotation ["scriptable:custom"] + * @param {emitter_t*} emitter emitter对象。 + * @param {uint32_t} type 事件类型。 + * @param {event_func_t} on_event 事件处理函数。 + * @param {void*} ctx 事件处理函数上下文。 + * @param {uint32_t} tag tag。 + * + * @return {uint32_t} 返回id,用于emitter_off。 + */ +uint32_t emitter_on_with_tag(emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx, + uint32_t tag); + /** * @method emitter_off * 注销指定事件的处理函数。 @@ -170,6 +186,16 @@ ret_t emitter_off_by_func(emitter_t* emitter, uint32_t etype, event_func_t handl */ ret_t emitter_off_by_ctx(emitter_t* emitter, void* ctx); +/** + * @method emitter_off_by_tag + * 注销指定事件的处理函数。 + * @param {emitter_t*} emitter emitter对象。 + * @param {uint32_t} tag tag。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t emitter_off_by_tag(emitter_t* emitter, uint32_t tag); + /** * @method emitter_set_on_destroy * 设置一个回调函数,在emitter被销毁时调用(方便脚本语言去释放回调函数)。 From 075e39551f7b91c27388b6eb446113dd4e39dc0f Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 14:23:47 +0800 Subject: [PATCH 06/66] add widget_on_with_tag/wuidget_off_by_tag --- docs/changes.md | 1 + src/base/widget.c | 16 ++++++++++++++-- src/base/widget.h | 31 +++++++++++++++++++++++++++++-- tests/combo_box_test.cc | 2 +- tests/emitter_test.cc | 27 +++++++++++++++++++++++++++ tests/widget_test.cc | 27 +++++++++++++++++++++++++++ 6 files changed, 99 insertions(+), 5 deletions(-) diff --git a/docs/changes.md b/docs/changes.md index 3b1dc1caaa..d8942abd1b 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -2,6 +2,7 @@ * 2019/10/23 * 修改clone出来的edit的显示问题。 + * 增加widget\_on\_with\_tag和widget\_off\_by\_tag,方便一次注销多个同类事件。 * 2019/10/19 * 完善主题切换功能。 diff --git a/src/base/widget.c b/src/base/widget.c index 8ab3d3cee6..ab5b190284 100644 --- a/src/base/widget.c +++ b/src/base/widget.c @@ -932,13 +932,18 @@ ret_t widget_dispatch(widget_t* widget, event_t* e) { return ret; } -int32_t widget_on(widget_t* widget, uint32_t type, event_func_t on_event, void* ctx) { +int32_t widget_on_with_tag(widget_t* widget, uint32_t type, event_func_t on_event, void* ctx, + uint32_t tag) { return_value_if_fail(widget != NULL && on_event != NULL, RET_BAD_PARAMS); if (widget->emitter == NULL) { widget->emitter = emitter_create(); } - return emitter_on(widget->emitter, type, on_event, ctx); + return emitter_on_with_tag(widget->emitter, type, on_event, ctx, tag); +} + +int32_t widget_on(widget_t* widget, uint32_t type, event_func_t on_event, void* ctx) { + return widget_on_with_tag(widget, type, on_event, ctx, 0); } int32_t widget_child_on(widget_t* widget, const char* name, uint32_t type, event_func_t on_event, @@ -953,6 +958,13 @@ ret_t widget_off(widget_t* widget, int32_t id) { return emitter_off(widget->emitter, id); } +ret_t widget_off_by_tag(widget_t* widget, int32_t tag) { + return_value_if_fail(widget != NULL, RET_BAD_PARAMS); + return_value_if_fail(widget->emitter != NULL, RET_BAD_PARAMS); + + return emitter_off_by_tag(widget->emitter, tag); +} + ret_t widget_off_by_func(widget_t* widget, uint32_t type, event_func_t on_event, void* ctx) { return_value_if_fail(widget != NULL && on_event != NULL, RET_BAD_PARAMS); return_value_if_fail(widget->emitter != NULL, RET_BAD_PARAMS); diff --git a/src/base/widget.h b/src/base/widget.h index 58ebef854f..2a0d0398db 100644 --- a/src/base/widget.h +++ b/src/base/widget.h @@ -1143,6 +1143,24 @@ ret_t widget_set_sensitive(widget_t* widget, bool_t sensitive); */ int32_t widget_on(widget_t* widget, uint32_t type, event_func_t on_event, void* ctx); +/** + * @method widget_on_with_tag + * 注册指定tag的事件处理函数。 + * + * > 注册时指定一个tag,可用widget\_off\_by\_tag注销相同tag的事件处理函数。 + * + * @annotation ["scriptable:custom"] + * @param {widget_t*} widget 控件对象。 + * @param {uint32_t} type 事件类型。 + * @param {event_func_t} on_event 事件处理函数。 + * @param {void*} ctx 事件处理函数上下文。 + * @param {uint32_t} tag tag。 + * + * @return {int32_t} 返回id,用于widget_off。 + */ +int32_t widget_on_with_tag(widget_t* widget, uint32_t type, event_func_t on_event, void* ctx, + uint32_t tag); + /** * @method widget_off * 注销指定事件的处理函数。 @@ -1171,8 +1189,7 @@ int32_t widget_child_on(widget_t* widget, const char* name, uint32_t type, event /** * @method widget_off_by_func - * 注销指定事件的处理函数。 - * 仅用于辅助实现脚本绑定。 + * 注销指定函数的事件处理函数。 * @param {widget_t*} widget 控件对象。 * @param {uint32_t} type 事件类型。 * @param {event_func_t} on_event 事件处理函数。 @@ -1182,6 +1199,16 @@ int32_t widget_child_on(widget_t* widget, const char* name, uint32_t type, event */ ret_t widget_off_by_func(widget_t* widget, uint32_t type, event_func_t on_event, void* ctx); +/** + * @method widget_off_by_tag + * 注销指定tag的事件处理函数。 + * @param {widget_t*} widget 控件对象。 + * @param {uint32_t} tag tag。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t widget_off_by_tag(widget_t* widget, uint32_t tag); + /** * @method widget_invalidate * 请求重绘指定的区域,如果widget->dirty已经为TRUE,直接返回。 diff --git a/tests/combo_box_test.cc b/tests/combo_box_test.cc index 61401cb15c..4a962812fb 100644 --- a/tests/combo_box_test.cc +++ b/tests/combo_box_test.cc @@ -190,7 +190,7 @@ TEST(ComboBox, clone) { w2 = widget_clone(w1, NULL); ASSERT_EQ(widget_equal(w1, w2), TRUE); - + widget_destroy(w1); widget_destroy(w2); } diff --git a/tests/emitter_test.cc b/tests/emitter_test.cc index 55d23c93c6..80c779c3f2 100644 --- a/tests/emitter_test.cc +++ b/tests/emitter_test.cc @@ -199,3 +199,30 @@ TEST(Emitter, remove_item) { emitter_destroy(emitter); } + +TEST(Emitter, off_by_tag) { + uint32_t type = 12; + emitter_t* emitter = emitter_create(); + + emitter_on_with_tag(emitter, type, on_remove, NULL, 1); + emitter_on_with_tag(emitter, type, on_remove, NULL, 1); + + emitter_on_with_tag(emitter, type, on_remove, NULL, 2); + emitter_on_with_tag(emitter, type, on_remove, NULL, 3); + + emitter_on_with_tag(emitter, type, on_remove, NULL, 1); + emitter_on_with_tag(emitter, type, on_remove, NULL, 1); + + ASSERT_EQ(emitter_size(emitter), 6); + + ASSERT_EQ(emitter_off_by_tag(emitter, 1), RET_OK); + ASSERT_EQ(emitter_size(emitter), 2); + + ASSERT_EQ(emitter_off_by_tag(emitter, 3), RET_OK); + ASSERT_EQ(emitter_size(emitter), 1); + + ASSERT_EQ(emitter_off_by_tag(emitter, 2), RET_OK); + ASSERT_EQ(emitter_size(emitter), 0); + + emitter_destroy(emitter); +} diff --git a/tests/widget_test.cc b/tests/widget_test.cc index d668b6663d..4c27337e47 100644 --- a/tests/widget_test.cc +++ b/tests/widget_test.cc @@ -1103,3 +1103,30 @@ TEST(Widget, feedback1) { widget_destroy(w); } + +TEST(Widget, off) { + widget_t* w = button_create(NULL, 0, 0, 0, 0); + + ASSERT_EQ(widget_on(w, EVT_MOVE, widget_log_events, NULL) > 0, TRUE); + ASSERT_EQ(emitter_size(w->emitter), 1); + ASSERT_EQ(widget_off_by_func(w, EVT_MOVE, widget_log_events, NULL), RET_OK); + + widget_destroy(w); +} + +TEST(Widget, off_by_tag) { + widget_t* w = button_create(NULL, 0, 0, 0, 0); + + ASSERT_EQ(widget_on_with_tag(w, EVT_MOVE, widget_log_events, NULL, 1) > 0, TRUE); + ASSERT_EQ(widget_on_with_tag(w, EVT_MOVE, widget_log_events, NULL, 1) > 0, TRUE); + ASSERT_EQ(widget_on_with_tag(w, EVT_MOVE, widget_log_events, NULL, 1) > 0, TRUE); + ASSERT_EQ(widget_on_with_tag(w, EVT_MOVE, widget_log_events, NULL, 2) > 0, TRUE); + ASSERT_EQ(widget_on_with_tag(w, EVT_MOVE, widget_log_events, NULL, 2) > 0, TRUE); + + ASSERT_EQ(emitter_size(w->emitter), 5); + + ASSERT_EQ(widget_off_by_tag(w, 1), RET_OK); + ASSERT_EQ(emitter_size(w->emitter), 2); + + widget_destroy(w); +} From cb482140aa0ac6651c8e37146277120067768e03 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 15:24:31 +0800 Subject: [PATCH 07/66] fix WHEEL event when list view in list view --- src/ext_widgets/scroll_view/list_view.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ext_widgets/scroll_view/list_view.c b/src/ext_widgets/scroll_view/list_view.c index d6faeab22e..193f40fb19 100644 --- a/src/ext_widgets/scroll_view/list_view.c +++ b/src/ext_widgets/scroll_view/list_view.c @@ -80,7 +80,8 @@ static ret_t list_view_on_event(widget_t* widget, event_t* e) { scroll_bar_add_delta(list_view->scroll_bar, delta); log_debug("wheel: %d\n", delta); } - break; + + return RET_STOP; } default: break; From d3f9f260026a42a239f9358d51d3977226184379 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 15:27:01 +0800 Subject: [PATCH 08/66] improve text selector --- docs/changes.md | 2 + src/ext_widgets/text_selector/text_selector.c | 68 +++++++++++++++---- tests/emitter_test.cc | 4 +- 3 files changed, 58 insertions(+), 16 deletions(-) diff --git a/docs/changes.md b/docs/changes.md index d8942abd1b..518cedc75b 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -3,6 +3,8 @@ * 2019/10/23 * 修改clone出来的edit的显示问题。 * 增加widget\_on\_with\_tag和widget\_off\_by\_tag,方便一次注销多个同类事件。 + * 完善list view对wheel事件的处理。 + * 完善text selector处理up/down按键和wheel事件。 * 2019/10/19 * 完善主题切换功能。 diff --git a/src/ext_widgets/text_selector/text_selector.c b/src/ext_widgets/text_selector/text_selector.c index a02f332c59..e82b2ca488 100644 --- a/src/ext_widgets/text_selector/text_selector.c +++ b/src/ext_widgets/text_selector/text_selector.c @@ -342,7 +342,20 @@ static ret_t text_selector_on_scroll_done(void* ctx, event_t* e) { static ret_t text_selector_scroll_to(widget_t* widget, int32_t yoffset_end) { int32_t yoffset = 0; text_selector_t* text_selector = TEXT_SELECTOR(widget); - return_value_if_fail(text_selector != NULL, RET_FAIL); + int32_t options_nr = text_selector_count_options(widget); + int32_t item_height = widget->h / text_selector->visible_nr; + int32_t empty_item_height = (text_selector->visible_nr / 2) * item_height; + int32_t min_yoffset = -empty_item_height; + int32_t max_yoffset = (options_nr * item_height + empty_item_height) - widget->h; + + if (yoffset_end < min_yoffset) { + yoffset_end = min_yoffset; + } + + if (yoffset_end > (max_yoffset)) { + yoffset_end = max_yoffset; + } + yoffset_end = tk_roundi((float)yoffset_end / (float)item_height) * item_height; yoffset = text_selector->yoffset; if (yoffset == yoffset_end) { @@ -363,11 +376,7 @@ static ret_t text_selector_on_pointer_up(text_selector_t* text_selector, pointer int32_t yoffset_end = 0; widget_t* widget = WIDGET(text_selector); velocity_t* v = &(text_selector->velocity); - int32_t options_nr = text_selector_count_options(widget); int32_t item_height = widget->h / text_selector->visible_nr; - int32_t empty_item_height = (text_selector->visible_nr / 2) * item_height; - int32_t min_yoffset = -empty_item_height; - int32_t max_yoffset = (options_nr * item_height + empty_item_height) - widget->h; velocity_update(v, e->e.time, e->x, e->y); yoffset_end = text_selector->yoffset - v->yv; @@ -386,20 +395,25 @@ static ret_t text_selector_on_pointer_up(text_selector_t* text_selector, pointer } } - if (yoffset_end < min_yoffset) { - yoffset_end = min_yoffset; - } - - if (yoffset_end > (max_yoffset)) { - yoffset_end = max_yoffset; - } - - yoffset_end = tk_roundi((float)yoffset_end / (float)item_height) * item_height; text_selector_scroll_to(widget, yoffset_end); return RET_OK; } +static ret_t text_selector_up(widget_t* widget) { + text_selector_t* text_selector = TEXT_SELECTOR(widget); + int32_t yoffset = text_selector->yoffset - (widget->h / text_selector->visible_nr); + + return text_selector_scroll_to(widget, yoffset); +} + +static ret_t text_selector_down(widget_t* widget) { + text_selector_t* text_selector = TEXT_SELECTOR(widget); + int32_t yoffset = text_selector->yoffset + (widget->h / text_selector->visible_nr); + + return text_selector_scroll_to(widget, yoffset); +} + static ret_t text_selector_on_event(widget_t* widget, event_t* e) { uint16_t type = e->type; text_selector_t* text_selector = TEXT_SELECTOR(widget); @@ -416,6 +430,20 @@ static ret_t text_selector_on_event(widget_t* widget, event_t* e) { widget_ungrab(widget->parent, widget); break; } + case EVT_POINTER_DOWN_ABORT: { + text_selector->pressed = FALSE; + text_selector->yoffset = text_selector->yoffset_save; + break; + } + case EVT_KEY_DOWN: { + key_event_t* evt = (key_event_t*)e; + if (evt->key == TK_KEY_UP) { + text_selector_up(widget); + } else if (evt->key == TK_KEY_DOWN) { + text_selector_down(widget); + } + break; + } case EVT_POINTER_MOVE: { pointer_event_t* evt = (pointer_event_t*)e; if (evt->pressed && text_selector->pressed) { @@ -424,6 +452,18 @@ static ret_t text_selector_on_event(widget_t* widget, event_t* e) { } break; } + case EVT_WHEEL: { + wheel_event_t* evt = (wheel_event_t*)e; + int32_t dir = evt->dy > 0 ? 1 : -1; + + if (evt->dy > 0) { + text_selector_down(widget); + } else if (evt->dy < 0) { + text_selector_up(widget); + } + + return RET_STOP; + } case EVT_RESIZE: case EVT_MOVE_RESIZE: { text_selector_sync_yoffset_with_selected_index(text_selector); diff --git a/tests/emitter_test.cc b/tests/emitter_test.cc index 80c779c3f2..2fece9e9c7 100644 --- a/tests/emitter_test.cc +++ b/tests/emitter_test.cc @@ -217,10 +217,10 @@ TEST(Emitter, off_by_tag) { ASSERT_EQ(emitter_off_by_tag(emitter, 1), RET_OK); ASSERT_EQ(emitter_size(emitter), 2); - + ASSERT_EQ(emitter_off_by_tag(emitter, 3), RET_OK); ASSERT_EQ(emitter_size(emitter), 1); - + ASSERT_EQ(emitter_off_by_tag(emitter, 2), RET_OK); ASSERT_EQ(emitter_size(emitter), 0); From c22277349bd390e13a760448174170655fd308d6 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 15:35:04 +0800 Subject: [PATCH 09/66] improve text selector --- src/ext_widgets/text_selector/text_selector.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ext_widgets/text_selector/text_selector.c b/src/ext_widgets/text_selector/text_selector.c index e82b2ca488..5e9cfb35b8 100644 --- a/src/ext_widgets/text_selector/text_selector.c +++ b/src/ext_widgets/text_selector/text_selector.c @@ -454,7 +454,6 @@ static ret_t text_selector_on_event(widget_t* widget, event_t* e) { } case EVT_WHEEL: { wheel_event_t* evt = (wheel_event_t*)e; - int32_t dir = evt->dy > 0 ? 1 : -1; if (evt->dy > 0) { text_selector_down(widget); From 3f29eeef674514c709364bd46462ad62afb4c897 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 15:42:40 +0800 Subject: [PATCH 10/66] fix svg crash when image file is invalid --- docs/changes.md | 1 + src/ext_widgets/svg_image/svg_image.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/changes.md b/docs/changes.md index 518cedc75b..cf3c029563 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -5,6 +5,7 @@ * 增加widget\_on\_with\_tag和widget\_off\_by\_tag,方便一次注销多个同类事件。 * 完善list view对wheel事件的处理。 * 完善text selector处理up/down按键和wheel事件。 + * 修改SVG无效图片崩溃的BUG。 * 2019/10/19 * 完善主题切换功能。 diff --git a/src/ext_widgets/svg_image/svg_image.c b/src/ext_widgets/svg_image/svg_image.c index 9b1eb1d782..2dd9e89809 100644 --- a/src/ext_widgets/svg_image/svg_image.c +++ b/src/ext_widgets/svg_image/svg_image.c @@ -66,7 +66,8 @@ static ret_t svg_image_on_paint_self(widget_t* widget, canvas_t* c) { const asset_info_t* asset = svg_image->bsvg_asset; color_t bg = style_get_color(style, STYLE_ID_BG_COLOR, black); color_t fg = style_get_color(style, STYLE_ID_FG_COLOR, black); - + return_value_if_fail(asset != NULL && asset->data != NULL, RET_FAIL); + return_value_if_fail(bsvg_init(&bsvg, (const uint32_t*)asset->data, asset->size) != NULL, RET_BAD_PARAMS); From 28d3c9cf02144fd3e2c04803e66d3e991b5d2c1d Mon Sep 17 00:00:00 2001 From: lixianjing Date: Wed, 23 Oct 2019 18:08:58 +0800 Subject: [PATCH 11/66] add assets_manager_set_custom_build_asset_dir --- docs/changes.md | 3 +- src/base/assets_manager.c | 149 ++++++++++++++++++-------- src/base/assets_manager.h | 20 +++- src/ext_widgets/svg_image/svg_image.c | 2 +- 4 files changed, 128 insertions(+), 46 deletions(-) diff --git a/docs/changes.md b/docs/changes.md index cf3c029563..aae47f2643 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -6,7 +6,8 @@ * 完善list view对wheel事件的处理。 * 完善text selector处理up/down按键和wheel事件。 * 修改SVG无效图片崩溃的BUG。 - + * 增加函数assets\_manager\_set\_custom\_build\_asset\_dir,有时我们需要优先加载用户自定义的资源,加载失败才加载系统缺省的,可用设置一个函数去实现这类功能。 + * 2019/10/19 * 完善主题切换功能。 * 增加文档[资源目录变更通知](assets_dir_changed.md) diff --git a/src/base/assets_manager.c b/src/base/assets_manager.c index cf4ae9ce7c..bc58fe2e3c 100644 --- a/src/base/assets_manager.c +++ b/src/base/assets_manager.c @@ -27,6 +27,7 @@ #include "base/system_info.h" #include "base/assets_manager.h" +#define RAW_DIR "raw" #define ASSETS_DIR "assets" #define THEME_DEFAULT "default" @@ -131,48 +132,100 @@ static asset_info_t* load_asset(uint16_t type, uint16_t subtype, const char* pat } #endif /*WITH_SDL*/ -static ret_t build_path(assets_manager_t* am, char* path, uint32_t size, bool_t ratio_sensitive, - const char* subpath, const char* name, const char* extname) { +static ret_t build_asset_dir_one_theme(char* path, uint32_t size, const char* res_root, + const char* theme, const char* ratio, const char* subpath) { + if (ratio != NULL) { + return_value_if_fail(path_build(path, size, res_root, ASSETS_DIR, theme, RAW_DIR, subpath, + ratio, NULL) == RET_OK, + RET_FAIL); + } else { + return_value_if_fail( + path_build(path, size, res_root, ASSETS_DIR, theme, RAW_DIR, subpath, NULL) == RET_OK, + RET_FAIL); + } + + return RET_OK; +} + +static ret_t build_asset_filename_one_theme(char* path, uint32_t size, const char* res_root, + const char* theme, const char* ratio, + const char* subpath, const char* name, + const char* extname) { + char sep[2] = {TK_PATH_SEP, 0}; + + return_value_if_fail( + build_asset_dir_one_theme(path, size, res_root, theme, ratio, subpath) == RET_OK, RET_FAIL); + return_value_if_fail(tk_str_append(path, size, sep) == RET_OK, RET_FAIL); + return_value_if_fail(tk_str_append(path, size, name) == RET_OK, RET_FAIL); + return_value_if_fail(tk_str_append(path, size, extname) == RET_OK, RET_FAIL); + + return RET_OK; +} + +static ret_t build_asset_filename_custom(assets_manager_t* am, char* path, uint32_t size, + const char* theme, const char* ratio, const char* subpath, + const char* name, const char* extname) { + if (am->custom_build_asset_dir != NULL) { + char sep[2] = {TK_PATH_SEP, 0}; + return_value_if_fail(am->custom_build_asset_dir(path, size, theme, ratio, subpath) == RET_OK, + RET_FAIL); + return_value_if_fail(tk_str_append(path, size, sep) == RET_OK, RET_FAIL); + return_value_if_fail(tk_str_append(path, size, name) == RET_OK, RET_FAIL); + return_value_if_fail(tk_str_append(path, size, extname) == RET_OK, RET_FAIL); + } + + return RET_FAIL; +} + +static ret_t build_asset_filename_default(char* path, uint32_t size, const char* res_root, + const char* theme, const char* ratio, const char* subpath, + const char* name, const char* extname) { + return_value_if_fail(build_asset_filename_one_theme(path, size, res_root, theme, ratio, subpath, + name, extname) == RET_OK, + RET_FAIL); + + if (!file_exist(path) && !tk_str_eq(theme, THEME_DEFAULT)) { + return_value_if_fail(build_asset_filename_one_theme(path, size, res_root, THEME_DEFAULT, ratio, + subpath, name, extname) == RET_OK, + RET_FAIL); + } + + return file_exist(path) ? RET_OK : RET_FAIL; +} + +static const char* device_pixel_ratio_to_str(float_t dpr) { + const char* ratio = "x1"; + if (dpr >= 3) { + ratio = "x3"; + } else if (dpr >= 2) { + ratio = "x2"; + } + + return ratio; +} + +ret_t assets_manager_build_asset_filename(assets_manager_t* am, char* path, uint32_t size, + bool_t ratio_sensitive, const char* subpath, + const char* name, const char* extname) { const char* res_root = assets_manager_get_res_root(am); const char* theme = am->theme ? am->theme : THEME_DEFAULT; system_info_t* sysinfo = assets_manager_get_system_info(am); - - float_t dpr = sysinfo->device_pixel_ratio; + const char* ratio = device_pixel_ratio_to_str(sysinfo->device_pixel_ratio); if (ratio_sensitive) { - const char* ratio = "x1"; - if (dpr >= 3) { - ratio = "x3"; - } else if (dpr >= 2) { - ratio = "x2"; - } - - return_value_if_fail( - path_build(path, size, res_root, ASSETS_DIR, theme, subpath, ratio, name, NULL) == RET_OK, - RET_FAIL); - tk_str_append(path, size, extname); - if (!file_exist(path)) { - return_value_if_fail(path_build(path, size, res_root, ASSETS_DIR, THEME_DEFAULT, subpath, - ratio, name, NULL) == RET_OK, - RET_FAIL); - tk_str_append(path, size, extname); + if (build_asset_filename_custom(am, path, size, theme, ratio, subpath, name, extname) == + RET_OK) { + return RET_OK; } - return RET_OK; + return build_asset_filename_default(path, size, res_root, theme, ratio, subpath, name, extname); } else { - return_value_if_fail( - path_build(path, size, res_root, ASSETS_DIR, theme, subpath, name, NULL) == RET_OK, - RET_FAIL); - tk_str_append(path, size, extname); - - if (!file_exist(path)) { - return_value_if_fail(path_build(path, size, res_root, ASSETS_DIR, THEME_DEFAULT, subpath, - name, NULL) == RET_OK, - RET_FAIL); - tk_str_append(path, size, extname); + if (build_asset_filename_custom(am, path, size, theme, NULL, subpath, name, extname) == + RET_OK) { + return RET_OK; } - return RET_OK; + return build_asset_filename_default(path, size, res_root, theme, NULL, subpath, name, extname); } } @@ -180,7 +233,7 @@ static asset_info_t* try_load_image(assets_manager_t* am, const char* name, asset_image_type_t subtype, bool_t ratio) { char path[MAX_PATH + 1]; const char* extname = NULL; - const char* subpath = ratio ? "raw/images" : "raw/images/xx"; + const char* subpath = ratio ? "images" : "images/xx"; switch (subtype) { case ASSET_TYPE_IMAGE_JPG: { @@ -201,13 +254,14 @@ static asset_info_t* try_load_image(assets_manager_t* am, const char* name, } case ASSET_TYPE_IMAGE_BSVG: { extname = ".bsvg"; - subpath = "raw/images/svg"; + subpath = "images/svg"; break; } default: { return NULL; } } - return_value_if_fail(build_path(am, path, MAX_PATH, ratio, subpath, name, extname) == RET_OK, + return_value_if_fail(assets_manager_build_asset_filename(am, path, MAX_PATH, ratio, subpath, name, + extname) == RET_OK, NULL); return load_asset(ASSET_TYPE_IMAGE, subtype, path, name); @@ -219,37 +273,38 @@ static asset_info_t* try_load_assets(assets_manager_t* am, const char* name, con const char* subpath = NULL; switch (type) { case ASSET_TYPE_FONT: { - subpath = "raw/fonts"; + subpath = "fonts"; break; } case ASSET_TYPE_SCRIPT: { - subpath = "raw/scripts"; + subpath = "scripts"; break; } case ASSET_TYPE_STYLE: { - subpath = "raw/styles"; + subpath = "styles"; break; } case ASSET_TYPE_STRINGS: { - subpath = "raw/strings"; + subpath = "strings"; break; } case ASSET_TYPE_UI: { - subpath = "raw/ui"; + subpath = "ui"; break; } case ASSET_TYPE_XML: { - subpath = "raw/xml"; + subpath = "xml"; break; } case ASSET_TYPE_DATA: { - subpath = "raw/data"; + subpath = "data"; break; } default: { return NULL; } } - return_value_if_fail(build_path(am, path, MAX_PATH, FALSE, subpath, name, extname) == RET_OK, + return_value_if_fail(assets_manager_build_asset_filename(am, path, MAX_PATH, FALSE, subpath, name, + extname) == RET_OK, NULL); return load_asset(type, subtype, path, name); @@ -638,6 +693,14 @@ ret_t assets_manager_deinit(assets_manager_t* am) { return RET_OK; } +ret_t assets_manager_set_custom_build_asset_dir( + assets_manager_t* am, assets_manager_build_asset_dir_t custom_build_asset_dir) { + return_value_if_fail(am != NULL, RET_BAD_PARAMS); + am->custom_build_asset_dir = custom_build_asset_dir; + + return RET_OK; +} + ret_t assets_manager_destroy(assets_manager_t* am) { return_value_if_fail(am != NULL, RET_BAD_PARAMS); assets_manager_deinit(am); diff --git a/src/base/assets_manager.h b/src/base/assets_manager.h index fa86d400cb..9bc87751fe 100644 --- a/src/base/assets_manager.h +++ b/src/base/assets_manager.h @@ -28,6 +28,9 @@ BEGIN_C_DECLS +typedef ret_t (*assets_manager_build_asset_dir_t)(char* path, uint32_t size, const char* theme, + const char* ratio, const char* subpath); + /** * @class assets_manager_t * @annotation ["scriptable"] @@ -66,10 +69,11 @@ struct _assets_manager_t { darray_t assets; /*private*/ - char* res_root; char* theme; + char* res_root; locale_info_t* locale_info; system_info_t* system_info; + assets_manager_build_asset_dir_t custom_build_asset_dir; }; /** @@ -219,6 +223,20 @@ asset_info_t* assets_manager_load(assets_manager_t* am, asset_type_t type, const */ ret_t assets_manager_preload(assets_manager_t* am, asset_type_t type, const char* name); +/** + * @method assets_manager_set_custom_build_asset_dir + * 设置一个函数,该函数用于生成资源路径。 + * + * > 有时我们需要优先加载用户自定义的资源,加载失败才加载系统缺省的,可用设置一个函数去实现这类功能。 + * + * @param {assets_manager_t*} am asset manager对象。 + * @param {assets_manager_build_asset_dir_t} custom_build_asset_dir + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t assets_manager_set_custom_build_asset_dir( + assets_manager_t* am, assets_manager_build_asset_dir_t custom_build_asset_dir); + /** * @method assets_manager_clear_cache * 清除指定类型的缓存。 diff --git a/src/ext_widgets/svg_image/svg_image.c b/src/ext_widgets/svg_image/svg_image.c index 2dd9e89809..ab78b6cbc9 100644 --- a/src/ext_widgets/svg_image/svg_image.c +++ b/src/ext_widgets/svg_image/svg_image.c @@ -67,7 +67,7 @@ static ret_t svg_image_on_paint_self(widget_t* widget, canvas_t* c) { color_t bg = style_get_color(style, STYLE_ID_BG_COLOR, black); color_t fg = style_get_color(style, STYLE_ID_FG_COLOR, black); return_value_if_fail(asset != NULL && asset->data != NULL, RET_FAIL); - + return_value_if_fail(bsvg_init(&bsvg, (const uint32_t*)asset->data, asset->size) != NULL, RET_BAD_PARAMS); From 260cf967eae93f5cc475e1e7fd1cf0721b792603 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Thu, 24 Oct 2019 09:42:46 +0800 Subject: [PATCH 12/66] improve reset canvas --- demos/assets.c | 1142 +++++++++++----------- demos/assets/default/inc/ui/dialog2.data | 39 +- demos/assets/default/raw/ui/dialog2.bin | Bin 780 -> 924 bytes demos/assets/default/raw/ui/dialog2.xml | 3 +- src/native_window/native_window_sdl.c | 5 +- 5 files changed, 599 insertions(+), 590 deletions(-) diff --git a/demos/assets.c b/demos/assets.c index 15d4295a59..5c20fed5c0 100644 --- a/demos/assets.c +++ b/demos/assets.c @@ -1,409 +1,409 @@ #include "awtk.h" #include "base/assets_manager.h" #ifndef WITH_FS_RES -#include "assets/default/inc/strings/zh_CN.data" #include "assets/default/inc/strings/en_US.data" -#include "assets/default/inc/styles/slide_menu.data" -#include "assets/default/inc/styles/digit_clock.data" -#include "assets/default/inc/styles/dialog_toast.data" -#include "assets/default/inc/styles/edit.data" -#include "assets/default/inc/styles/keyboard.data" -#include "assets/default/inc/styles/color.data" -#include "assets/default/inc/styles/tab_bottom.data" +#include "assets/default/inc/strings/zh_CN.data" +#include "assets/default/inc/styles/big_font.data" +#include "assets/default/inc/styles/button.data" #include "assets/default/inc/styles/calibration.data" -#include "assets/default/inc/styles/tab_list.data" +#include "assets/default/inc/styles/color.data" #include "assets/default/inc/styles/default.data" -#include "assets/default/inc/styles/big_font.data" -#include "assets/default/inc/styles/tab_top_compact.data" +#include "assets/default/inc/styles/dialog.data" +#include "assets/default/inc/styles/dialog_confirm.data" #include "assets/default/inc/styles/dialog_info.data" +#include "assets/default/inc/styles/dialog_toast.data" +#include "assets/default/inc/styles/dialog_warn.data" +#include "assets/default/inc/styles/digit_clock.data" +#include "assets/default/inc/styles/edit.data" #include "assets/default/inc/styles/guage.data" -#include "assets/default/inc/styles/dialog_confirm.data" -#include "assets/default/inc/styles/dialog.data" -#include "assets/default/inc/styles/tab_top.data" -#include "assets/default/inc/styles/button.data" +#include "assets/default/inc/styles/keyboard.data" +#include "assets/default/inc/styles/slide_menu.data" #include "assets/default/inc/styles/system_bar.data" +#include "assets/default/inc/styles/tab_bottom.data" #include "assets/default/inc/styles/tab_bottom_compact.data" -#include "assets/default/inc/styles/dialog_warn.data" -#include "assets/default/inc/ui/menu_up_right.data" -#include "assets/default/inc/ui/kb_ascii.data" -#include "assets/default/inc/ui/vgcanvas.data" -#include "assets/default/inc/ui/rich_text1.data" -#include "assets/default/inc/ui/menu_point.data" -#include "assets/default/inc/ui/slide_menu.data" -#include "assets/default/inc/ui/radial_gradient.data" -#include "assets/default/inc/ui/menu_left_bottom.data" +#include "assets/default/inc/styles/tab_list.data" +#include "assets/default/inc/styles/tab_top.data" +#include "assets/default/inc/styles/tab_top_compact.data" +#include "assets/default/inc/ui/animation.data" +#include "assets/default/inc/ui/animator.data" +#include "assets/default/inc/ui/auto_play.data" #include "assets/default/inc/ui/auto_play_landscape.data" +#include "assets/default/inc/ui/auto_play_portrait.data" +#include "assets/default/inc/ui/back_to_home.data" +#include "assets/default/inc/ui/basic.data" +#include "assets/default/inc/ui/big_font.data" +#include "assets/default/inc/ui/button.data" +#include "assets/default/inc/ui/calibration_win.data" +#include "assets/default/inc/ui/color.data" +#include "assets/default/inc/ui/color_picker.data" +#include "assets/default/inc/ui/color_picker_full.data" +#include "assets/default/inc/ui/color_picker_hsv.data" +#include "assets/default/inc/ui/color_picker_rgb.data" #include "assets/default/inc/ui/color_picker_simple.data" -#include "assets/default/inc/ui/progress_circle.data" #include "assets/default/inc/ui/combo_box.data" -#include "assets/default/inc/ui/kb_phone.data" -#include "assets/default/inc/ui/tab_scrollable.data" -#include "assets/default/inc/ui/main.data" +#include "assets/default/inc/ui/dialog1.data" +#include "assets/default/inc/ui/dialog2.data" +#include "assets/default/inc/ui/dialogs.data" #include "assets/default/inc/ui/digit_clock.data" -#include "assets/default/inc/ui/scroll_bar.data" -#include "assets/default/inc/ui/lua.data" -#include "assets/default/inc/ui/linear_gradient.data" -#include "assets/default/inc/ui/preload.data" -#include "assets/default/inc/ui/images.data" -#include "assets/default/inc/ui/soft_keyboard.data" +#include "assets/default/inc/ui/dragger.data" #include "assets/default/inc/ui/edit.data" -#include "assets/default/inc/ui/menu_up_left.data" -#include "assets/default/inc/ui/locale.data" +#include "assets/default/inc/ui/fade.data" +#include "assets/default/inc/ui/gif_image.data" +#include "assets/default/inc/ui/guage.data" +#include "assets/default/inc/ui/hscroll_label.data" +#include "assets/default/inc/ui/htranslate.data" +#include "assets/default/inc/ui/images.data" +#include "assets/default/inc/ui/image_animation.data" +#include "assets/default/inc/ui/image_list.data" +#include "assets/default/inc/ui/image_value.data" +#include "assets/default/inc/ui/kb_ascii.data" +#include "assets/default/inc/ui/kb_default.data" +#include "assets/default/inc/ui/kb_float.data" +#include "assets/default/inc/ui/kb_hex.data" #include "assets/default/inc/ui/kb_int.data" -#include "assets/default/inc/ui/tab_control.data" -#include "assets/default/inc/ui/slide_view_v2.data" -#include "assets/default/inc/ui/animation.data" +#include "assets/default/inc/ui/kb_phone.data" +#include "assets/default/inc/ui/kb_ufloat.data" +#include "assets/default/inc/ui/kb_uint.data" #include "assets/default/inc/ui/keyboard.data" -#include "assets/default/inc/ui/kb_hex.data" -#include "assets/default/inc/ui/popdown.data" -#include "assets/default/inc/ui/color.data" -#include "assets/default/inc/ui/color_picker.data" -#include "assets/default/inc/ui/switch.data" -#include "assets/default/inc/ui/back_to_home.data" -#include "assets/default/inc/ui/menu_right_middle.data" -#include "assets/default/inc/ui/dragger.data" -#include "assets/default/inc/ui/dialog2.data" -#include "assets/default/inc/ui/color_picker_hsv.data" -#include "assets/default/inc/ui/menu_down_right.data" -#include "assets/default/inc/ui/tab_bottom.data" -#include "assets/default/inc/ui/list_view_m.data" -#include "assets/default/inc/ui/slide_view_h_loop.data" -#include "assets/default/inc/ui/calibration_win.data" -#include "assets/default/inc/ui/memtest.data" -#include "assets/default/inc/ui/slide_view_h2.data" -#include "assets/default/inc/ui/slide_view_v_loop.data" +#include "assets/default/inc/ui/label.data" #include "assets/default/inc/ui/language.data" -#include "assets/default/inc/ui/kb_float.data" -#include "assets/default/inc/ui/htranslate.data" +#include "assets/default/inc/ui/linear_gradient.data" +#include "assets/default/inc/ui/list_view.data" +#include "assets/default/inc/ui/list_view_d.data" +#include "assets/default/inc/ui/list_view_h.data" +#include "assets/default/inc/ui/list_view_m.data" #include "assets/default/inc/ui/list_view_vh.data" -#include "assets/default/inc/ui/rich_text.data" -#include "assets/default/inc/ui/scroll_view.data" -#include "assets/default/inc/ui/overlay.data" -#include "assets/default/inc/ui/mledit.data" -#include "assets/default/inc/ui/menu_down_left.data" -#include "assets/default/inc/ui/svg_image.data" -#include "assets/default/inc/ui/tab_list.data" -#include "assets/default/inc/ui/animator.data" -#include "assets/default/inc/ui/slide_down.data" -#include "assets/default/inc/ui/scroll_view_h.data" -#include "assets/default/inc/ui/menu_up_center.data" -#include "assets/default/inc/ui/slide_right.data" -#include "assets/default/inc/ui/scroll_bar_h.data" -#include "assets/default/inc/ui/spinbox.data" -#include "assets/default/inc/ui/label.data" -#include "assets/default/inc/ui/gif_image.data" +#include "assets/default/inc/ui/locale.data" +#include "assets/default/inc/ui/lua.data" +#include "assets/default/inc/ui/main.data" +#include "assets/default/inc/ui/memtest.data" +#include "assets/default/inc/ui/menu.data" #include "assets/default/inc/ui/menu_down_center.data" -#include "assets/default/inc/ui/test_view.data" -#include "assets/default/inc/ui/auto_play_portrait.data" -#include "assets/default/inc/ui/text_selector.data" -#include "assets/default/inc/ui/big_font.data" -#include "assets/default/inc/ui/tab_top_compact.data" -#include "assets/default/inc/ui/slide_view_h.data" -#include "assets/default/inc/ui/dialogs.data" -#include "assets/default/inc/ui/selectm.data" -#include "assets/default/inc/ui/list_view.data" -#include "assets/default/inc/ui/stroke_gradient.data" +#include "assets/default/inc/ui/menu_down_left.data" +#include "assets/default/inc/ui/menu_down_right.data" +#include "assets/default/inc/ui/menu_left_bottom.data" #include "assets/default/inc/ui/menu_left_middle.data" -#include "assets/default/inc/ui/slide_view_h1.data" -#include "assets/default/inc/ui/basic.data" -#include "assets/default/inc/ui/auto_play.data" -#include "assets/default/inc/ui/guage.data" -#include "assets/default/inc/ui/color_picker_full.data" -#include "assets/default/inc/ui/dialog1.data" -#include "assets/default/inc/ui/fade.data" +#include "assets/default/inc/ui/menu_left_top.data" +#include "assets/default/inc/ui/menu_point.data" +#include "assets/default/inc/ui/menu_right_bottom.data" +#include "assets/default/inc/ui/menu_right_middle.data" #include "assets/default/inc/ui/menu_right_top.data" -#include "assets/default/inc/ui/image_list.data" -#include "assets/default/inc/ui/slide_view_v1.data" +#include "assets/default/inc/ui/menu_up_center.data" +#include "assets/default/inc/ui/menu_up_left.data" +#include "assets/default/inc/ui/menu_up_right.data" +#include "assets/default/inc/ui/mledit.data" +#include "assets/default/inc/ui/overlay.data" +#include "assets/default/inc/ui/popdown.data" +#include "assets/default/inc/ui/popup.data" +#include "assets/default/inc/ui/preload.data" +#include "assets/default/inc/ui/progress_circle.data" +#include "assets/default/inc/ui/radial_gradient.data" +#include "assets/default/inc/ui/rich_text.data" +#include "assets/default/inc/ui/rich_text1.data" +#include "assets/default/inc/ui/rich_text2.data" +#include "assets/default/inc/ui/scroll_bar.data" +#include "assets/default/inc/ui/scroll_bar_h.data" +#include "assets/default/inc/ui/scroll_view.data" +#include "assets/default/inc/ui/scroll_view_h.data" +#include "assets/default/inc/ui/scroll_view_v.data" #include "assets/default/inc/ui/select1.data" -#include "assets/default/inc/ui/hscroll_label.data" +#include "assets/default/inc/ui/selectm.data" +#include "assets/default/inc/ui/slide_down.data" #include "assets/default/inc/ui/slide_left.data" -#include "assets/default/inc/ui/image_animation.data" -#include "assets/default/inc/ui/image_value.data" +#include "assets/default/inc/ui/slide_menu.data" +#include "assets/default/inc/ui/slide_right.data" +#include "assets/default/inc/ui/slide_up.data" #include "assets/default/inc/ui/slide_view.data" -#include "assets/default/inc/ui/time_clock.data" -#include "assets/default/inc/ui/tab_top.data" +#include "assets/default/inc/ui/slide_view_h.data" +#include "assets/default/inc/ui/slide_view_h1.data" +#include "assets/default/inc/ui/slide_view_h2.data" +#include "assets/default/inc/ui/slide_view_h_loop.data" #include "assets/default/inc/ui/slide_view_v.data" -#include "assets/default/inc/ui/button.data" -#include "assets/default/inc/ui/menu.data" +#include "assets/default/inc/ui/slide_view_v1.data" +#include "assets/default/inc/ui/slide_view_v2.data" +#include "assets/default/inc/ui/slide_view_v_loop.data" +#include "assets/default/inc/ui/soft_keyboard.data" +#include "assets/default/inc/ui/spinbox.data" +#include "assets/default/inc/ui/stroke_gradient.data" +#include "assets/default/inc/ui/svg_image.data" +#include "assets/default/inc/ui/switch.data" #include "assets/default/inc/ui/system_bar.data" -#include "assets/default/inc/ui/menu_right_bottom.data" -#include "assets/default/inc/ui/list_view_d.data" -#include "assets/default/inc/ui/vtranslate.data" -#include "assets/default/inc/ui/menu_left_top.data" -#include "assets/default/inc/ui/kb_ufloat.data" -#include "assets/default/inc/ui/kb_default.data" -#include "assets/default/inc/ui/slide_up.data" -#include "assets/default/inc/ui/rich_text2.data" -#include "assets/default/inc/ui/list_view_h.data" -#include "assets/default/inc/ui/color_picker_rgb.data" +#include "assets/default/inc/ui/tab_bottom.data" #include "assets/default/inc/ui/tab_bottom_compact.data" -#include "assets/default/inc/ui/popup.data" -#include "assets/default/inc/ui/kb_uint.data" -#include "assets/default/inc/ui/scroll_view_v.data" +#include "assets/default/inc/ui/tab_control.data" +#include "assets/default/inc/ui/tab_list.data" +#include "assets/default/inc/ui/tab_scrollable.data" +#include "assets/default/inc/ui/tab_top.data" +#include "assets/default/inc/ui/tab_top_compact.data" +#include "assets/default/inc/ui/test_view.data" +#include "assets/default/inc/ui/text_selector.data" +#include "assets/default/inc/ui/time_clock.data" +#include "assets/default/inc/ui/vgcanvas.data" +#include "assets/default/inc/ui/vtranslate.data" #include "assets/default/inc/xml/test.data" +#include "assets/default/inc/data/a_b_c_any.data" #include "assets/default/inc/data/com_zlg_app_json.data" #include "assets/default/inc/data/test_dat.data" #include "assets/default/inc/data/test_json.data" -#include "assets/default/inc/data/a_b_c_any.data" #ifdef WITH_STB_IMAGE +#include "assets/default/inc/images/1.res" +#include "assets/default/inc/images/2.res" +#include "assets/default/inc/images/3.res" +#include "assets/default/inc/images/active_dot.res" +#include "assets/default/inc/images/ani1.res" +#include "assets/default/inc/images/ani2.res" +#include "assets/default/inc/images/ani3.res" +#include "assets/default/inc/images/ani4.res" +#include "assets/default/inc/images/ani5.res" #include "assets/default/inc/images/ani6.res" -#include "assets/default/inc/images/checked.res" -#include "assets/default/inc/images/num_7.res" -#include "assets/default/inc/images/close_p.res" -#include "assets/default/inc/images/num_6.res" -#include "assets/default/inc/images/shift.res" #include "assets/default/inc/images/ani7.res" +#include "assets/default/inc/images/ani8.res" +#include "assets/default/inc/images/ani9.res" #include "assets/default/inc/images/ania.res" +#include "assets/default/inc/images/anib.res" #include "assets/default/inc/images/anic.res" -#include "assets/default/inc/images/earth.res" -#include "assets/default/inc/images/ani5.res" -#include "assets/default/inc/images/bee.res" -#include "assets/default/inc/images/contact.res" -#include "assets/default/inc/images/battery_4.res" -#include "assets/default/inc/images/num_4.res" -#include "assets/default/inc/images/slider_fg.res" -#include "assets/default/inc/images/contact_active.res" -#include "assets/default/inc/images/close_d.res" -#include "assets/default/inc/images/dialog_title.res" -#include "assets/default/inc/images/battery_5.res" -#include "assets/default/inc/images/num_5.res" -#include "assets/default/inc/images/ani4.res" -#include "assets/default/inc/images/anib.res" -#include "assets/default/inc/images/me_active.res" -#include "assets/default/inc/images/arrow_up_n.res" -#include "assets/default/inc/images/left_on.res" -#include "assets/default/inc/images/num_1.res" -#include "assets/default/inc/images/battery_1.res" +#include "assets/default/inc/images/arrow_down_n.res" +#include "assets/default/inc/images/arrow_down_o.res" +#include "assets/default/inc/images/arrow_down_p.res" +#include "assets/default/inc/images/arrow_left_n.res" +#include "assets/default/inc/images/arrow_left_o.res" +#include "assets/default/inc/images/arrow_left_p.res" +#include "assets/default/inc/images/arrow_right_n.res" +#include "assets/default/inc/images/arrow_right_o.res" #include "assets/default/inc/images/arrow_right_p.res" -#include "assets/default/inc/images/slider_v_fg.res" -#include "assets/default/inc/images/empty.res" -#include "assets/default/inc/images/rgba.res" -#include "assets/default/inc/images/num_0.res" -#include "assets/default/inc/images/battery_0.res" -#include "assets/default/inc/images/edit_clear_p.res" +#include "assets/default/inc/images/arrow_up_n.res" #include "assets/default/inc/images/arrow_up_o.res" -#include "assets/default/inc/images/visible.res" -#include "assets/default/inc/images/ani1.res" -#include "assets/default/inc/images/arrow_left_o.res" -#include "assets/default/inc/images/ani3.res" -#include "assets/default/inc/images/clock_second.res" +#include "assets/default/inc/images/arrow_up_p.res" +#include "assets/default/inc/images/backspace.res" +#include "assets/default/inc/images/battery_0.res" +#include "assets/default/inc/images/battery_1.res" #include "assets/default/inc/images/battery_2.res" -#include "assets/default/inc/images/num_2.res" -#include "assets/default/inc/images/en.res" -#include "assets/default/inc/images/slider_drag_o.res" -#include "assets/default/inc/images/guage_bg.res" #include "assets/default/inc/images/battery_3.res" -#include "assets/default/inc/images/num_3.res" -#include "assets/default/inc/images/ani2.res" -#include "assets/default/inc/images/arrow_left_n.res" -#include "assets/default/inc/images/middle_on.res" +#include "assets/default/inc/images/battery_4.res" +#include "assets/default/inc/images/battery_5.res" +#include "assets/default/inc/images/bee.res" #include "assets/default/inc/images/bricks.res" -#include "assets/default/inc/images/msg.res" -#include "assets/default/inc/images/play_o.res" -#include "assets/default/inc/images/play_n.res" -#include "assets/default/inc/images/msg_active.res" -#include "assets/default/inc/images/radio_checked.res" -#include "assets/default/inc/images/active_dot.res" -#include "assets/default/inc/images/zh.res" -#include "assets/default/inc/images/question.res" -#include "assets/default/inc/images/discovery_active.res" -#include "assets/default/inc/images/dot.res" -#include "assets/default/inc/images/shifton.res" #include "assets/default/inc/images/check.res" +#include "assets/default/inc/images/checked.res" +#include "assets/default/inc/images/clock.res" +#include "assets/default/inc/images/clock_bg.res" +#include "assets/default/inc/images/clock_hour.res" +#include "assets/default/inc/images/clock_minute.res" +#include "assets/default/inc/images/clock_second.res" +#include "assets/default/inc/images/close_d.res" +#include "assets/default/inc/images/close_n.res" +#include "assets/default/inc/images/close_o.res" +#include "assets/default/inc/images/close_p.res" +#include "assets/default/inc/images/contact.res" +#include "assets/default/inc/images/contact_active.res" +#include "assets/default/inc/images/cross.res" #include "assets/default/inc/images/cursor.res" -#include "assets/default/inc/images/me.res" +#include "assets/default/inc/images/dialog_title.res" +#include "assets/default/inc/images/discovery.res" +#include "assets/default/inc/images/discovery_active.res" +#include "assets/default/inc/images/dot.res" +#include "assets/default/inc/images/earth.res" +#include "assets/default/inc/images/edit_clear_n.res" +#include "assets/default/inc/images/edit_clear_o.res" +#include "assets/default/inc/images/edit_clear_p.res" +#include "assets/default/inc/images/empty.res" +#include "assets/default/inc/images/en.res" +#include "assets/default/inc/images/find.res" +#include "assets/default/inc/images/green_btn_n.res" +#include "assets/default/inc/images/green_btn_o.res" +#include "assets/default/inc/images/green_btn_p.res" +#include "assets/default/inc/images/guage_bg.res" +#include "assets/default/inc/images/guage_pointer.res" #include "assets/default/inc/images/info.res" -#include "assets/default/inc/images/red_btn_p.res" +#include "assets/default/inc/images/invisible.res" +#include "assets/default/inc/images/left_off.res" +#include "assets/default/inc/images/left_on.res" +#include "assets/default/inc/images/logo.res" +#include "assets/default/inc/images/me.res" +#include "assets/default/inc/images/message.res" +#include "assets/default/inc/images/me_active.res" #include "assets/default/inc/images/middle_off.res" -#include "assets/default/inc/images/arrow_down_n.res" -#include "assets/default/inc/images/green_btn_o.res" -#include "assets/default/inc/images/green_btn_n.res" +#include "assets/default/inc/images/middle_on.res" +#include "assets/default/inc/images/msg.res" +#include "assets/default/inc/images/msg_active.res" #include "assets/default/inc/images/muted.res" -#include "assets/default/inc/images/arrow_down_o.res" -#include "assets/default/inc/images/rgb.res" +#include "assets/default/inc/images/num_0.res" +#include "assets/default/inc/images/num_1.res" +#include "assets/default/inc/images/num_2.res" +#include "assets/default/inc/images/num_3.res" +#include "assets/default/inc/images/num_4.res" +#include "assets/default/inc/images/num_5.res" +#include "assets/default/inc/images/num_6.res" +#include "assets/default/inc/images/num_7.res" +#include "assets/default/inc/images/num_8.res" +#include "assets/default/inc/images/num_9.res" #include "assets/default/inc/images/num_dot.res" -#include "assets/default/inc/images/unmuted.res" -#include "assets/default/inc/images/right_off.res" -#include "assets/default/inc/images/message.res" -#include "assets/default/inc/images/3.res" +#include "assets/default/inc/images/play_n.res" +#include "assets/default/inc/images/play_o.res" #include "assets/default/inc/images/play_p.res" -#include "assets/default/inc/images/2.res" -#include "assets/default/inc/images/slider_bg.res" -#include "assets/default/inc/images/right_on.res" -#include "assets/default/inc/images/guage_pointer.res" -#include "assets/default/inc/images/left_off.res" -#include "assets/default/inc/images/1.res" #include "assets/default/inc/images/progress_circle.res" +#include "assets/default/inc/images/question.res" +#include "assets/default/inc/images/radio_checked.res" +#include "assets/default/inc/images/radio_unchecked.res" +#include "assets/default/inc/images/red_btn_n.res" #include "assets/default/inc/images/red_btn_o.res" +#include "assets/default/inc/images/red_btn_p.res" +#include "assets/default/inc/images/rgb.res" +#include "assets/default/inc/images/rgba.res" +#include "assets/default/inc/images/right_off.res" +#include "assets/default/inc/images/right_on.res" +#include "assets/default/inc/images/shift.res" +#include "assets/default/inc/images/shifton.res" +#include "assets/default/inc/images/slider_bg.res" #include "assets/default/inc/images/slider_drag.res" -#include "assets/default/inc/images/unchecked.res" -#include "assets/default/inc/images/red_btn_n.res" -#include "assets/default/inc/images/arrow_down_p.res" +#include "assets/default/inc/images/slider_drag_o.res" +#include "assets/default/inc/images/slider_drag_p.res" +#include "assets/default/inc/images/slider_fg.res" #include "assets/default/inc/images/slider_v_bg.res" -#include "assets/default/inc/images/warn.res" -#include "assets/default/inc/images/green_btn_p.res" +#include "assets/default/inc/images/slider_v_fg.res" #include "assets/default/inc/images/switch.res" -#include "assets/default/inc/images/radio_unchecked.res" -#include "assets/default/inc/images/close_n.res" -#include "assets/default/inc/images/close_o.res" -#include "assets/default/inc/images/clock_bg.res" -#include "assets/default/inc/images/clock_minute.res" -#include "assets/default/inc/images/cross.res" -#include "assets/default/inc/images/clock.res" -#include "assets/default/inc/images/find.res" -#include "assets/default/inc/images/ani9.res" -#include "assets/default/inc/images/arrow_up_p.res" -#include "assets/default/inc/images/edit_clear_o.res" -#include "assets/default/inc/images/num_8.res" -#include "assets/default/inc/images/arrow_right_n.res" -#include "assets/default/inc/images/discovery.res" -#include "assets/default/inc/images/arrow_right_o.res" -#include "assets/default/inc/images/num_9.res" -#include "assets/default/inc/images/edit_clear_n.res" -#include "assets/default/inc/images/ani8.res" -#include "assets/default/inc/images/logo.res" -#include "assets/default/inc/images/invisible.res" -#include "assets/default/inc/images/slider_drag_p.res" -#include "assets/default/inc/images/backspace.res" -#include "assets/default/inc/images/arrow_left_p.res" -#include "assets/default/inc/images/clock_hour.res" +#include "assets/default/inc/images/unchecked.res" +#include "assets/default/inc/images/unmuted.res" +#include "assets/default/inc/images/visible.res" +#include "assets/default/inc/images/warn.res" +#include "assets/default/inc/images/zh.res" #else -#include "assets/default/inc/images/arrow_right_o.data" -#include "assets/default/inc/images/num_4.data" -#include "assets/default/inc/images/close_o.data" -#include "assets/default/inc/images/battery_1.data" -#include "assets/default/inc/images/slider_bg.data" +#include "assets/default/inc/images/1.data" +#include "assets/default/inc/images/2.data" +#include "assets/default/inc/images/3.data" +#include "assets/default/inc/images/active_dot.data" +#include "assets/default/inc/images/ani1.data" +#include "assets/default/inc/images/ani2.data" #include "assets/default/inc/images/ani3.data" -#include "assets/default/inc/images/progress_circle.data" -#include "assets/default/inc/images/muted.data" -#include "assets/default/inc/images/num_8.data" -#include "assets/default/inc/images/earth.data" -#include "assets/default/inc/images/shift.data" +#include "assets/default/inc/images/ani4.data" +#include "assets/default/inc/images/ani5.data" +#include "assets/default/inc/images/ani6.data" +#include "assets/default/inc/images/ani7.data" +#include "assets/default/inc/images/ani8.data" +#include "assets/default/inc/images/ani9.data" +#include "assets/default/inc/images/ania.data" +#include "assets/default/inc/images/anib.data" +#include "assets/default/inc/images/anic.data" +#include "assets/default/inc/images/arrow_down_n.data" +#include "assets/default/inc/images/arrow_down_o.data" +#include "assets/default/inc/images/arrow_down_p.data" +#include "assets/default/inc/images/arrow_left_n.data" +#include "assets/default/inc/images/arrow_left_o.data" +#include "assets/default/inc/images/arrow_left_p.data" +#include "assets/default/inc/images/arrow_right_n.data" +#include "assets/default/inc/images/arrow_right_o.data" +#include "assets/default/inc/images/arrow_right_p.data" +#include "assets/default/inc/images/arrow_up_n.data" +#include "assets/default/inc/images/arrow_up_o.data" #include "assets/default/inc/images/arrow_up_p.data" -#include "assets/default/inc/images/discovery_active.data" -#include "assets/default/inc/images/en.data" -#include "assets/default/inc/images/right_on.data" -#include "assets/default/inc/images/discovery.data" -#include "assets/default/inc/images/rgb.data" -#include "assets/default/inc/images/num_9.data" -#include "assets/default/inc/images/dot.data" -#include "assets/default/inc/images/ani2.data" +#include "assets/default/inc/images/backspace.data" #include "assets/default/inc/images/battery_0.data" -#include "assets/default/inc/images/find.data" -#include "assets/default/inc/images/slider_fg.data" -#include "assets/default/inc/images/close_n.data" -#include "assets/default/inc/images/left_on.data" -#include "assets/default/inc/images/1.data" -#include "assets/default/inc/images/question.data" -#include "assets/default/inc/images/invisible.data" -#include "assets/default/inc/images/guage_bg.data" -#include "assets/default/inc/images/num_5.data" -#include "assets/default/inc/images/num_dot.data" -#include "assets/default/inc/images/arrow_right_n.data" +#include "assets/default/inc/images/battery_1.data" +#include "assets/default/inc/images/battery_2.data" +#include "assets/default/inc/images/battery_3.data" +#include "assets/default/inc/images/battery_4.data" +#include "assets/default/inc/images/battery_5.data" #include "assets/default/inc/images/bee.data" -#include "assets/default/inc/images/visible.data" +#include "assets/default/inc/images/bricks.data" +#include "assets/default/inc/images/check.data" +#include "assets/default/inc/images/checked.data" +#include "assets/default/inc/images/clock.data" #include "assets/default/inc/images/clock_bg.data" -#include "assets/default/inc/images/me_active.data" -#include "assets/default/inc/images/cursor.data" +#include "assets/default/inc/images/clock_hour.data" #include "assets/default/inc/images/clock_minute.data" -#include "assets/default/inc/images/switch.data" -#include "assets/default/inc/images/checked.data" -#include "assets/default/inc/images/middle_off.data" +#include "assets/default/inc/images/clock_second.data" +#include "assets/default/inc/images/close_d.data" +#include "assets/default/inc/images/close_n.data" +#include "assets/default/inc/images/close_o.data" #include "assets/default/inc/images/close_p.data" -#include "assets/default/inc/images/zh.data" -#include "assets/default/inc/images/arrow_right_p.data" -#include "assets/default/inc/images/ani9.data" -#include "assets/default/inc/images/anib.data" -#include "assets/default/inc/images/num_2.data" -#include "assets/default/inc/images/arrow_up_o.data" -#include "assets/default/inc/images/clock.data" -#include "assets/default/inc/images/empty.data" -#include "assets/default/inc/images/ani5.data" -#include "assets/default/inc/images/ani4.data" -#include "assets/default/inc/images/left_off.data" -#include "assets/default/inc/images/radio_unchecked.data" -#include "assets/default/inc/images/rgba.data" -#include "assets/default/inc/images/shifton.data" -#include "assets/default/inc/images/arrow_up_n.data" -#include "assets/default/inc/images/num_3.data" -#include "assets/default/inc/images/msg_active.data" -#include "assets/default/inc/images/anic.data" -#include "assets/default/inc/images/ani8.data" -#include "assets/default/inc/images/active_dot.data" -#include "assets/default/inc/images/guage_pointer.data" -#include "assets/default/inc/images/close_d.data" -#include "assets/default/inc/images/right_off.data" -#include "assets/default/inc/images/unmuted.data" -#include "assets/default/inc/images/cross.data" -#include "assets/default/inc/images/backspace.data" -#include "assets/default/inc/images/arrow_left_p.data" -#include "assets/default/inc/images/edit_clear_n.data" -#include "assets/default/inc/images/clock_second.data" #include "assets/default/inc/images/contact.data" -#include "assets/default/inc/images/bricks.data" +#include "assets/default/inc/images/contact_active.data" +#include "assets/default/inc/images/cross.data" +#include "assets/default/inc/images/cursor.data" #include "assets/default/inc/images/dialog_title.data" -#include "assets/default/inc/images/ani7.data" -#include "assets/default/inc/images/play_p.data" -#include "assets/default/inc/images/battery_5.data" +#include "assets/default/inc/images/discovery.data" +#include "assets/default/inc/images/discovery_active.data" +#include "assets/default/inc/images/dot.data" +#include "assets/default/inc/images/earth.data" +#include "assets/default/inc/images/edit_clear_n.data" +#include "assets/default/inc/images/edit_clear_o.data" +#include "assets/default/inc/images/edit_clear_p.data" +#include "assets/default/inc/images/empty.data" +#include "assets/default/inc/images/en.data" +#include "assets/default/inc/images/find.data" +#include "assets/default/inc/images/green_btn_n.data" +#include "assets/default/inc/images/green_btn_o.data" #include "assets/default/inc/images/green_btn_p.data" -#include "assets/default/inc/images/red_btn_p.data" +#include "assets/default/inc/images/guage_bg.data" +#include "assets/default/inc/images/guage_pointer.data" +#include "assets/default/inc/images/info.data" +#include "assets/default/inc/images/invisible.data" +#include "assets/default/inc/images/left_off.data" +#include "assets/default/inc/images/left_on.data" +#include "assets/default/inc/images/logo.data" #include "assets/default/inc/images/me.data" +#include "assets/default/inc/images/message.data" +#include "assets/default/inc/images/me_active.data" +#include "assets/default/inc/images/middle_off.data" +#include "assets/default/inc/images/middle_on.data" +#include "assets/default/inc/images/msg.data" +#include "assets/default/inc/images/msg_active.data" +#include "assets/default/inc/images/muted.data" #include "assets/default/inc/images/num_0.data" -#include "assets/default/inc/images/arrow_down_p.data" #include "assets/default/inc/images/num_1.data" -#include "assets/default/inc/images/warn.data" -#include "assets/default/inc/images/contact_active.data" -#include "assets/default/inc/images/slider_drag_o.data" -#include "assets/default/inc/images/battery_4.data" -#include "assets/default/inc/images/ani6.data" -#include "assets/default/inc/images/message.data" -#include "assets/default/inc/images/edit_clear_o.data" -#include "assets/default/inc/images/ania.data" -#include "assets/default/inc/images/ani1.data" -#include "assets/default/inc/images/battery_3.data" -#include "assets/default/inc/images/logo.data" -#include "assets/default/inc/images/arrow_left_o.data" -#include "assets/default/inc/images/2.data" +#include "assets/default/inc/images/num_2.data" +#include "assets/default/inc/images/num_3.data" +#include "assets/default/inc/images/num_4.data" +#include "assets/default/inc/images/num_5.data" #include "assets/default/inc/images/num_6.data" -#include "assets/default/inc/images/check.data" -#include "assets/default/inc/images/middle_on.data" -#include "assets/default/inc/images/arrow_down_o.data" +#include "assets/default/inc/images/num_7.data" +#include "assets/default/inc/images/num_8.data" +#include "assets/default/inc/images/num_9.data" +#include "assets/default/inc/images/num_dot.data" +#include "assets/default/inc/images/play_n.data" +#include "assets/default/inc/images/play_o.data" +#include "assets/default/inc/images/play_p.data" +#include "assets/default/inc/images/progress_circle.data" +#include "assets/default/inc/images/question.data" #include "assets/default/inc/images/radio_checked.data" +#include "assets/default/inc/images/radio_unchecked.data" +#include "assets/default/inc/images/red_btn_n.data" #include "assets/default/inc/images/red_btn_o.data" -#include "assets/default/inc/images/green_btn_o.data" -#include "assets/default/inc/images/slider_v_bg.data" -#include "assets/default/inc/images/clock_hour.data" -#include "assets/default/inc/images/play_o.data" -#include "assets/default/inc/images/play_n.data" +#include "assets/default/inc/images/red_btn_p.data" +#include "assets/default/inc/images/rgb.data" +#include "assets/default/inc/images/rgba.data" +#include "assets/default/inc/images/right_off.data" +#include "assets/default/inc/images/right_on.data" +#include "assets/default/inc/images/shift.data" +#include "assets/default/inc/images/shifton.data" +#include "assets/default/inc/images/slider_bg.data" #include "assets/default/inc/images/slider_drag.data" -#include "assets/default/inc/images/unchecked.data" -#include "assets/default/inc/images/green_btn_n.data" -#include "assets/default/inc/images/red_btn_n.data" +#include "assets/default/inc/images/slider_drag_o.data" #include "assets/default/inc/images/slider_drag_p.data" +#include "assets/default/inc/images/slider_fg.data" +#include "assets/default/inc/images/slider_v_bg.data" #include "assets/default/inc/images/slider_v_fg.data" -#include "assets/default/inc/images/arrow_down_n.data" -#include "assets/default/inc/images/info.data" -#include "assets/default/inc/images/msg.data" -#include "assets/default/inc/images/num_7.data" -#include "assets/default/inc/images/3.data" -#include "assets/default/inc/images/arrow_left_n.data" -#include "assets/default/inc/images/edit_clear_p.data" -#include "assets/default/inc/images/battery_2.data" -#endif /*WITH_STB_IMAGE*/ +#include "assets/default/inc/images/switch.data" +#include "assets/default/inc/images/unchecked.data" +#include "assets/default/inc/images/unmuted.data" +#include "assets/default/inc/images/visible.data" +#include "assets/default/inc/images/warn.data" +#include "assets/default/inc/images/zh.data" +#endif/*WITH_STB_IMAGE*/ #ifdef WITH_VGCANVAS -#include "assets/default/inc/images/pointer_4.bsvg" #include "assets/default/inc/images/ball.bsvg" #include "assets/default/inc/images/china.bsvg" -#include "assets/default/inc/images/pointer_1.bsvg" -#include "assets/default/inc/images/pointer.bsvg" #include "assets/default/inc/images/girl.bsvg" -#endif /*WITH_VGCANVAS*/ +#include "assets/default/inc/images/pointer.bsvg" +#include "assets/default/inc/images/pointer_1.bsvg" +#include "assets/default/inc/images/pointer_4.bsvg" +#endif/*WITH_VGCANVAS*/ #if defined(WITH_TRUETYPE_FONT) #include "assets/default/inc/fonts/default.res" -#else /*WITH_TRUETYPE_FONT*/ +#else/*WITH_TRUETYPE_FONT*/ #include "assets/default/inc/fonts/default.data" -#endif /*WITH_TRUETYPE_FONT*/ -#endif /*WITH_FS_RES*/ +#endif/*WITH_TRUETYPE_FONT*/ +#endif/*WITH_FS_RES*/ ret_t assets_init(void) { assets_manager_t* am = assets_manager(); @@ -412,280 +412,280 @@ ret_t assets_init(void) { assets_manager_preload(am, ASSET_TYPE_FONT, "default"); assets_manager_preload(am, ASSET_TYPE_STYLE, "default"); #else - assets_manager_add(am, ui_menu_up_right); - assets_manager_add(am, ui_kb_ascii); - assets_manager_add(am, ui_vgcanvas); - assets_manager_add(am, ui_rich_text1); - assets_manager_add(am, ui_menu_point); - assets_manager_add(am, ui_slide_menu); - assets_manager_add(am, ui_radial_gradient); - assets_manager_add(am, ui_menu_left_bottom); - assets_manager_add(am, ui_auto_play_landscape); - assets_manager_add(am, ui_color_picker_simple); - assets_manager_add(am, ui_progress_circle); - assets_manager_add(am, ui_combo_box); - assets_manager_add(am, ui_kb_phone); - assets_manager_add(am, ui_tab_scrollable); - assets_manager_add(am, ui_main); - assets_manager_add(am, ui_digit_clock); - assets_manager_add(am, ui_scroll_bar); - assets_manager_add(am, ui_lua); - assets_manager_add(am, ui_linear_gradient); - assets_manager_add(am, ui_preload); - assets_manager_add(am, ui_images); - assets_manager_add(am, ui_soft_keyboard); - assets_manager_add(am, ui_edit); - assets_manager_add(am, ui_menu_up_left); - assets_manager_add(am, ui_locale); - assets_manager_add(am, ui_kb_int); - assets_manager_add(am, ui_tab_control); - assets_manager_add(am, ui_slide_view_v2); - assets_manager_add(am, ui_animation); - assets_manager_add(am, ui_keyboard); - assets_manager_add(am, ui_kb_hex); - assets_manager_add(am, ui_popdown); - assets_manager_add(am, ui_color); - assets_manager_add(am, ui_color_picker); - assets_manager_add(am, ui_switch); - assets_manager_add(am, ui_back_to_home); - assets_manager_add(am, ui_menu_right_middle); - assets_manager_add(am, ui_dragger); - assets_manager_add(am, ui_dialog2); - assets_manager_add(am, ui_color_picker_hsv); - assets_manager_add(am, ui_menu_down_right); - assets_manager_add(am, ui_tab_bottom); - assets_manager_add(am, ui_list_view_m); - assets_manager_add(am, ui_slide_view_h_loop); - assets_manager_add(am, ui_calibration_win); - assets_manager_add(am, ui_memtest); - assets_manager_add(am, ui_slide_view_h2); - assets_manager_add(am, ui_slide_view_v_loop); - assets_manager_add(am, ui_language); - assets_manager_add(am, ui_kb_float); - assets_manager_add(am, ui_htranslate); - assets_manager_add(am, ui_list_view_vh); - assets_manager_add(am, ui_rich_text); - assets_manager_add(am, ui_scroll_view); - assets_manager_add(am, ui_overlay); - assets_manager_add(am, ui_mledit); - assets_manager_add(am, ui_menu_down_left); - assets_manager_add(am, ui_svg_image); - assets_manager_add(am, ui_tab_list); - assets_manager_add(am, ui_animator); - assets_manager_add(am, ui_slide_down); - assets_manager_add(am, ui_scroll_view_h); - assets_manager_add(am, ui_menu_up_center); - assets_manager_add(am, ui_slide_right); - assets_manager_add(am, ui_scroll_bar_h); - assets_manager_add(am, ui_spinbox); - assets_manager_add(am, ui_label); - assets_manager_add(am, ui_gif_image); - assets_manager_add(am, ui_menu_down_center); - assets_manager_add(am, ui_test_view); - assets_manager_add(am, ui_auto_play_portrait); - assets_manager_add(am, ui_text_selector); - assets_manager_add(am, ui_big_font); - assets_manager_add(am, ui_tab_top_compact); - assets_manager_add(am, ui_slide_view_h); - assets_manager_add(am, ui_dialogs); - assets_manager_add(am, ui_selectm); - assets_manager_add(am, ui_list_view); - assets_manager_add(am, ui_stroke_gradient); - assets_manager_add(am, ui_menu_left_middle); - assets_manager_add(am, ui_slide_view_h1); - assets_manager_add(am, ui_basic); - assets_manager_add(am, ui_auto_play); - assets_manager_add(am, ui_guage); - assets_manager_add(am, ui_color_picker_full); - assets_manager_add(am, ui_dialog1); - assets_manager_add(am, ui_fade); - assets_manager_add(am, ui_menu_right_top); - assets_manager_add(am, ui_image_list); - assets_manager_add(am, ui_slide_view_v1); - assets_manager_add(am, ui_select1); - assets_manager_add(am, ui_hscroll_label); - assets_manager_add(am, ui_slide_left); - assets_manager_add(am, ui_image_animation); - assets_manager_add(am, ui_image_value); - assets_manager_add(am, ui_slide_view); - assets_manager_add(am, ui_time_clock); - assets_manager_add(am, ui_tab_top); - assets_manager_add(am, ui_slide_view_v); - assets_manager_add(am, ui_button); - assets_manager_add(am, ui_menu); - assets_manager_add(am, ui_system_bar); - assets_manager_add(am, ui_menu_right_bottom); - assets_manager_add(am, ui_list_view_d); - assets_manager_add(am, ui_vtranslate); - assets_manager_add(am, ui_menu_left_top); - assets_manager_add(am, ui_kb_ufloat); - assets_manager_add(am, ui_kb_default); - assets_manager_add(am, ui_slide_up); - assets_manager_add(am, ui_rich_text2); - assets_manager_add(am, ui_list_view_h); - assets_manager_add(am, ui_color_picker_rgb); - assets_manager_add(am, ui_tab_bottom_compact); - assets_manager_add(am, ui_popup); - assets_manager_add(am, ui_kb_uint); - assets_manager_add(am, ui_scroll_view_v); - assets_manager_add(am, strings_zh_CN); - assets_manager_add(am, strings_en_US); - assets_manager_add(am, image_arrow_right_o); - assets_manager_add(am, image_num_4); - assets_manager_add(am, image_close_o); - assets_manager_add(am, image_battery_1); - assets_manager_add(am, image_slider_bg); - assets_manager_add(am, image_ani3); - assets_manager_add(am, image_progress_circle); - assets_manager_add(am, image_muted); - assets_manager_add(am, image_num_8); - assets_manager_add(am, image_earth); - assets_manager_add(am, image_shift); - assets_manager_add(am, image_arrow_up_p); - assets_manager_add(am, image_discovery_active); - assets_manager_add(am, image_en); - assets_manager_add(am, image_right_on); - assets_manager_add(am, image_discovery); - assets_manager_add(am, image_rgb); - assets_manager_add(am, image_num_9); - assets_manager_add(am, image_dot); - assets_manager_add(am, image_ani2); - assets_manager_add(am, image_battery_0); - assets_manager_add(am, image_find); - assets_manager_add(am, image_slider_fg); - assets_manager_add(am, image_close_n); - assets_manager_add(am, image_left_on); + assets_manager_add(am, data_a_b_c_any); + assets_manager_add(am, data_com_zlg_app_json); + assets_manager_add(am, data_test_dat); + assets_manager_add(am, data_test_json); + assets_manager_add(am, font_default); assets_manager_add(am, image_1); - assets_manager_add(am, image_question); - assets_manager_add(am, image_invisible); - assets_manager_add(am, image_guage_bg); - assets_manager_add(am, image_num_5); - assets_manager_add(am, image_num_dot); - assets_manager_add(am, image_arrow_right_n); - assets_manager_add(am, image_bee); - assets_manager_add(am, image_visible); - assets_manager_add(am, image_clock_bg); - assets_manager_add(am, image_me_active); - assets_manager_add(am, image_cursor); - assets_manager_add(am, image_clock_minute); - assets_manager_add(am, image_switch); - assets_manager_add(am, image_checked); - assets_manager_add(am, image_middle_off); - assets_manager_add(am, image_close_p); - assets_manager_add(am, image_zh); - assets_manager_add(am, image_arrow_right_p); + assets_manager_add(am, image_2); + assets_manager_add(am, image_3); + assets_manager_add(am, image_active_dot); + assets_manager_add(am, image_ani1); + assets_manager_add(am, image_ani2); + assets_manager_add(am, image_ani3); + assets_manager_add(am, image_ani4); + assets_manager_add(am, image_ani5); + assets_manager_add(am, image_ani6); + assets_manager_add(am, image_ani7); + assets_manager_add(am, image_ani8); assets_manager_add(am, image_ani9); + assets_manager_add(am, image_ania); assets_manager_add(am, image_anib); - assets_manager_add(am, image_num_2); - assets_manager_add(am, image_arrow_up_o); - assets_manager_add(am, image_clock); - assets_manager_add(am, image_empty); - assets_manager_add(am, image_ani5); - assets_manager_add(am, image_ani4); - assets_manager_add(am, image_left_off); - assets_manager_add(am, image_radio_unchecked); - assets_manager_add(am, image_rgba); - assets_manager_add(am, image_shifton); - assets_manager_add(am, image_arrow_up_n); - assets_manager_add(am, image_num_3); - assets_manager_add(am, image_msg_active); assets_manager_add(am, image_anic); - assets_manager_add(am, image_ani8); - assets_manager_add(am, image_active_dot); - assets_manager_add(am, image_guage_pointer); - assets_manager_add(am, image_close_d); - assets_manager_add(am, image_right_off); - assets_manager_add(am, image_unmuted); - assets_manager_add(am, image_cross); - assets_manager_add(am, image_backspace); + assets_manager_add(am, image_arrow_down_n); + assets_manager_add(am, image_arrow_down_o); + assets_manager_add(am, image_arrow_down_p); + assets_manager_add(am, image_arrow_left_n); + assets_manager_add(am, image_arrow_left_o); assets_manager_add(am, image_arrow_left_p); - assets_manager_add(am, image_edit_clear_n); + assets_manager_add(am, image_arrow_right_n); + assets_manager_add(am, image_arrow_right_o); + assets_manager_add(am, image_arrow_right_p); + assets_manager_add(am, image_arrow_up_n); + assets_manager_add(am, image_arrow_up_o); + assets_manager_add(am, image_arrow_up_p); + assets_manager_add(am, image_backspace); + assets_manager_add(am, image_battery_0); + assets_manager_add(am, image_battery_1); + assets_manager_add(am, image_battery_2); + assets_manager_add(am, image_battery_3); + assets_manager_add(am, image_battery_4); + assets_manager_add(am, image_battery_5); + assets_manager_add(am, image_bee); + assets_manager_add(am, image_bricks); + assets_manager_add(am, image_check); + assets_manager_add(am, image_checked); + assets_manager_add(am, image_clock); + assets_manager_add(am, image_clock_bg); + assets_manager_add(am, image_clock_hour); + assets_manager_add(am, image_clock_minute); assets_manager_add(am, image_clock_second); + assets_manager_add(am, image_close_d); + assets_manager_add(am, image_close_n); + assets_manager_add(am, image_close_o); + assets_manager_add(am, image_close_p); assets_manager_add(am, image_contact); - assets_manager_add(am, image_bricks); + assets_manager_add(am, image_contact_active); + assets_manager_add(am, image_cross); + assets_manager_add(am, image_cursor); assets_manager_add(am, image_dialog_title); - assets_manager_add(am, image_ani7); - assets_manager_add(am, image_play_p); - assets_manager_add(am, image_battery_5); + assets_manager_add(am, image_discovery); + assets_manager_add(am, image_discovery_active); + assets_manager_add(am, image_dot); + assets_manager_add(am, image_earth); + assets_manager_add(am, image_edit_clear_n); + assets_manager_add(am, image_edit_clear_o); + assets_manager_add(am, image_edit_clear_p); + assets_manager_add(am, image_empty); + assets_manager_add(am, image_en); + assets_manager_add(am, image_find); + assets_manager_add(am, image_green_btn_n); + assets_manager_add(am, image_green_btn_o); assets_manager_add(am, image_green_btn_p); - assets_manager_add(am, image_red_btn_p); + assets_manager_add(am, image_guage_bg); + assets_manager_add(am, image_guage_pointer); + assets_manager_add(am, image_info); + assets_manager_add(am, image_invisible); + assets_manager_add(am, image_left_off); + assets_manager_add(am, image_left_on); + assets_manager_add(am, image_logo); assets_manager_add(am, image_me); + assets_manager_add(am, image_message); + assets_manager_add(am, image_me_active); + assets_manager_add(am, image_middle_off); + assets_manager_add(am, image_middle_on); + assets_manager_add(am, image_msg); + assets_manager_add(am, image_msg_active); + assets_manager_add(am, image_muted); assets_manager_add(am, image_num_0); - assets_manager_add(am, image_arrow_down_p); assets_manager_add(am, image_num_1); - assets_manager_add(am, image_warn); - assets_manager_add(am, image_contact_active); - assets_manager_add(am, image_slider_drag_o); - assets_manager_add(am, image_battery_4); - assets_manager_add(am, image_ani6); - assets_manager_add(am, image_message); - assets_manager_add(am, image_edit_clear_o); - assets_manager_add(am, image_ania); - assets_manager_add(am, image_ani1); - assets_manager_add(am, image_battery_3); - assets_manager_add(am, image_logo); - assets_manager_add(am, image_arrow_left_o); - assets_manager_add(am, image_2); + assets_manager_add(am, image_num_2); + assets_manager_add(am, image_num_3); + assets_manager_add(am, image_num_4); + assets_manager_add(am, image_num_5); assets_manager_add(am, image_num_6); - assets_manager_add(am, image_check); - assets_manager_add(am, image_middle_on); - assets_manager_add(am, image_arrow_down_o); + assets_manager_add(am, image_num_7); + assets_manager_add(am, image_num_8); + assets_manager_add(am, image_num_9); + assets_manager_add(am, image_num_dot); + assets_manager_add(am, image_play_n); + assets_manager_add(am, image_play_o); + assets_manager_add(am, image_play_p); + assets_manager_add(am, image_progress_circle); + assets_manager_add(am, image_question); assets_manager_add(am, image_radio_checked); + assets_manager_add(am, image_radio_unchecked); + assets_manager_add(am, image_red_btn_n); assets_manager_add(am, image_red_btn_o); - assets_manager_add(am, image_green_btn_o); - assets_manager_add(am, image_slider_v_bg); - assets_manager_add(am, image_clock_hour); - assets_manager_add(am, image_play_o); - assets_manager_add(am, image_play_n); + assets_manager_add(am, image_red_btn_p); + assets_manager_add(am, image_rgb); + assets_manager_add(am, image_rgba); + assets_manager_add(am, image_right_off); + assets_manager_add(am, image_right_on); + assets_manager_add(am, image_shift); + assets_manager_add(am, image_shifton); + assets_manager_add(am, image_slider_bg); assets_manager_add(am, image_slider_drag); - assets_manager_add(am, image_unchecked); - assets_manager_add(am, image_green_btn_n); - assets_manager_add(am, image_red_btn_n); + assets_manager_add(am, image_slider_drag_o); assets_manager_add(am, image_slider_drag_p); + assets_manager_add(am, image_slider_fg); + assets_manager_add(am, image_slider_v_bg); assets_manager_add(am, image_slider_v_fg); - assets_manager_add(am, image_arrow_down_n); - assets_manager_add(am, image_info); - assets_manager_add(am, image_msg); - assets_manager_add(am, image_num_7); - assets_manager_add(am, image_3); - assets_manager_add(am, image_arrow_left_n); - assets_manager_add(am, image_edit_clear_p); - assets_manager_add(am, image_battery_2); - assets_manager_add(am, xml_test); - assets_manager_add(am, style_slide_menu); - assets_manager_add(am, style_digit_clock); - assets_manager_add(am, style_dialog_toast); - assets_manager_add(am, style_edit); - assets_manager_add(am, style_keyboard); - assets_manager_add(am, style_color); - assets_manager_add(am, style_tab_bottom); + assets_manager_add(am, image_switch); + assets_manager_add(am, image_unchecked); + assets_manager_add(am, image_unmuted); + assets_manager_add(am, image_visible); + assets_manager_add(am, image_warn); + assets_manager_add(am, image_zh); + assets_manager_add(am, strings_en_US); + assets_manager_add(am, strings_zh_CN); + assets_manager_add(am, style_big_font); + assets_manager_add(am, style_button); assets_manager_add(am, style_calibration); - assets_manager_add(am, style_tab_list); + assets_manager_add(am, style_color); assets_manager_add(am, style_default); - assets_manager_add(am, style_big_font); - assets_manager_add(am, style_tab_top_compact); + assets_manager_add(am, style_dialog); + assets_manager_add(am, style_dialog_confirm); assets_manager_add(am, style_dialog_info); + assets_manager_add(am, style_dialog_toast); + assets_manager_add(am, style_dialog_warn); + assets_manager_add(am, style_digit_clock); + assets_manager_add(am, style_edit); assets_manager_add(am, style_guage); - assets_manager_add(am, style_dialog_confirm); - assets_manager_add(am, style_dialog); - assets_manager_add(am, style_tab_top); - assets_manager_add(am, style_button); + assets_manager_add(am, style_keyboard); + assets_manager_add(am, style_slide_menu); assets_manager_add(am, style_system_bar); + assets_manager_add(am, style_tab_bottom); assets_manager_add(am, style_tab_bottom_compact); - assets_manager_add(am, style_dialog_warn); - assets_manager_add(am, font_default); - assets_manager_add(am, data_com_zlg_app_json); - assets_manager_add(am, data_test_dat); - assets_manager_add(am, data_test_json); - assets_manager_add(am, data_a_b_c_any); + assets_manager_add(am, style_tab_list); + assets_manager_add(am, style_tab_top); + assets_manager_add(am, style_tab_top_compact); + assets_manager_add(am, ui_animation); + assets_manager_add(am, ui_animator); + assets_manager_add(am, ui_auto_play); + assets_manager_add(am, ui_auto_play_landscape); + assets_manager_add(am, ui_auto_play_portrait); + assets_manager_add(am, ui_back_to_home); + assets_manager_add(am, ui_basic); + assets_manager_add(am, ui_big_font); + assets_manager_add(am, ui_button); + assets_manager_add(am, ui_calibration_win); + assets_manager_add(am, ui_color); + assets_manager_add(am, ui_color_picker); + assets_manager_add(am, ui_color_picker_full); + assets_manager_add(am, ui_color_picker_hsv); + assets_manager_add(am, ui_color_picker_rgb); + assets_manager_add(am, ui_color_picker_simple); + assets_manager_add(am, ui_combo_box); + assets_manager_add(am, ui_dialog1); + assets_manager_add(am, ui_dialog2); + assets_manager_add(am, ui_dialogs); + assets_manager_add(am, ui_digit_clock); + assets_manager_add(am, ui_dragger); + assets_manager_add(am, ui_edit); + assets_manager_add(am, ui_fade); + assets_manager_add(am, ui_gif_image); + assets_manager_add(am, ui_guage); + assets_manager_add(am, ui_hscroll_label); + assets_manager_add(am, ui_htranslate); + assets_manager_add(am, ui_images); + assets_manager_add(am, ui_image_animation); + assets_manager_add(am, ui_image_list); + assets_manager_add(am, ui_image_value); + assets_manager_add(am, ui_kb_ascii); + assets_manager_add(am, ui_kb_default); + assets_manager_add(am, ui_kb_float); + assets_manager_add(am, ui_kb_hex); + assets_manager_add(am, ui_kb_int); + assets_manager_add(am, ui_kb_phone); + assets_manager_add(am, ui_kb_ufloat); + assets_manager_add(am, ui_kb_uint); + assets_manager_add(am, ui_keyboard); + assets_manager_add(am, ui_label); + assets_manager_add(am, ui_language); + assets_manager_add(am, ui_linear_gradient); + assets_manager_add(am, ui_list_view); + assets_manager_add(am, ui_list_view_d); + assets_manager_add(am, ui_list_view_h); + assets_manager_add(am, ui_list_view_m); + assets_manager_add(am, ui_list_view_vh); + assets_manager_add(am, ui_locale); + assets_manager_add(am, ui_lua); + assets_manager_add(am, ui_main); + assets_manager_add(am, ui_memtest); + assets_manager_add(am, ui_menu); + assets_manager_add(am, ui_menu_down_center); + assets_manager_add(am, ui_menu_down_left); + assets_manager_add(am, ui_menu_down_right); + assets_manager_add(am, ui_menu_left_bottom); + assets_manager_add(am, ui_menu_left_middle); + assets_manager_add(am, ui_menu_left_top); + assets_manager_add(am, ui_menu_point); + assets_manager_add(am, ui_menu_right_bottom); + assets_manager_add(am, ui_menu_right_middle); + assets_manager_add(am, ui_menu_right_top); + assets_manager_add(am, ui_menu_up_center); + assets_manager_add(am, ui_menu_up_left); + assets_manager_add(am, ui_menu_up_right); + assets_manager_add(am, ui_mledit); + assets_manager_add(am, ui_overlay); + assets_manager_add(am, ui_popdown); + assets_manager_add(am, ui_popup); + assets_manager_add(am, ui_preload); + assets_manager_add(am, ui_progress_circle); + assets_manager_add(am, ui_radial_gradient); + assets_manager_add(am, ui_rich_text); + assets_manager_add(am, ui_rich_text1); + assets_manager_add(am, ui_rich_text2); + assets_manager_add(am, ui_scroll_bar); + assets_manager_add(am, ui_scroll_bar_h); + assets_manager_add(am, ui_scroll_view); + assets_manager_add(am, ui_scroll_view_h); + assets_manager_add(am, ui_scroll_view_v); + assets_manager_add(am, ui_select1); + assets_manager_add(am, ui_selectm); + assets_manager_add(am, ui_slide_down); + assets_manager_add(am, ui_slide_left); + assets_manager_add(am, ui_slide_menu); + assets_manager_add(am, ui_slide_right); + assets_manager_add(am, ui_slide_up); + assets_manager_add(am, ui_slide_view); + assets_manager_add(am, ui_slide_view_h); + assets_manager_add(am, ui_slide_view_h1); + assets_manager_add(am, ui_slide_view_h2); + assets_manager_add(am, ui_slide_view_h_loop); + assets_manager_add(am, ui_slide_view_v); + assets_manager_add(am, ui_slide_view_v1); + assets_manager_add(am, ui_slide_view_v2); + assets_manager_add(am, ui_slide_view_v_loop); + assets_manager_add(am, ui_soft_keyboard); + assets_manager_add(am, ui_spinbox); + assets_manager_add(am, ui_stroke_gradient); + assets_manager_add(am, ui_svg_image); + assets_manager_add(am, ui_switch); + assets_manager_add(am, ui_system_bar); + assets_manager_add(am, ui_tab_bottom); + assets_manager_add(am, ui_tab_bottom_compact); + assets_manager_add(am, ui_tab_control); + assets_manager_add(am, ui_tab_list); + assets_manager_add(am, ui_tab_scrollable); + assets_manager_add(am, ui_tab_top); + assets_manager_add(am, ui_tab_top_compact); + assets_manager_add(am, ui_test_view); + assets_manager_add(am, ui_text_selector); + assets_manager_add(am, ui_time_clock); + assets_manager_add(am, ui_vgcanvas); + assets_manager_add(am, ui_vtranslate); + assets_manager_add(am, xml_test); #ifdef WITH_VGCANVAS - assets_manager_add(am, image_pointer_4); assets_manager_add(am, image_ball); assets_manager_add(am, image_china); - assets_manager_add(am, image_pointer_1); - assets_manager_add(am, image_pointer); assets_manager_add(am, image_girl); -#endif /*WITH_VGCANVAS*/ + assets_manager_add(am, image_pointer); + assets_manager_add(am, image_pointer_1); + assets_manager_add(am, image_pointer_4); +#endif/*WITH_VGCANVAS*/ #endif tk_init_assets(); diff --git a/demos/assets/default/inc/ui/dialog2.data b/demos/assets/default/inc/ui/dialog2.data index 0f2ca4b0c1..ae60c6b346 100644 --- a/demos/assets/default/inc/ui/dialog2.data +++ b/demos/assets/default/inc/ui/dialog2.data @@ -1,11 +1,11 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_dialog2[]) = { -0x04,0x00,0x01,0x01,0x0c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x32,0x00, +0x04,0x00,0x01,0x01,0x9c,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x32,0x00, 0x64,0x61,0x74,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x12,0x12,0x22,0x11,0x64,0x69,0x61,0x6c,0x6f,0x67,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0x73,0x65,0x6c,0x66, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x73,0x65,0x6c,0x66, 0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x63,0x2c, -0x79,0x3d,0x6d,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x31,0x36,0x30,0x29,0x00,0x74,0x68,0x65, +0x79,0x3d,0x6d,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x32,0x32,0x30,0x29,0x00,0x74,0x68,0x65, 0x6d,0x65,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x75,0x73,0x74, 0x6f,0x6d,0x00,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74, 0x28,0x61,0x6c,0x70,0x68,0x61,0x3d,0x34,0x30,0x29,0x00,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x5f,0x74, @@ -27,17 +27,24 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_dialog2[]) = { 0x6d,0x69,0x64,0x64,0x6c,0x65,0x3a,0x2d,0x32,0x30,0x2c,0x77,0x3d,0x32,0x30,0x30,0x2c,0x68,0x3d,0x33, 0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x41,0x57,0x54,0x4b,0x20,0x69,0x73,0x20,0x63,0x6f,0x6f,0x6c, 0x21,0x00,0x00,0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79, -0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x31,0x30,0x2c,0x79,0x3d,0x62, -0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x30,0x2c,0x77,0x3d,0x34,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29, -0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x67,0x72,0x65,0x65,0x6e,0x5f,0x62,0x74,0x6e,0x00,0x6e,0x61,0x6d, -0x65,0x00,0x71,0x75,0x69,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0xe7,0xa1,0xae,0xe5,0xae,0x9a,0x00,0x00, -0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x28,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74, -0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x2c, -0x79,0x3d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x30,0x2c,0x77,0x3d,0x34,0x30,0x25,0x2c,0x68,0x3d, -0x33,0x30,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x65,0x64,0x5f,0x62,0x74,0x6e,0x00,0x6e,0x61, -0x6d,0x65,0x00,0x71,0x75,0x69,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0xe5,0x8f,0x96,0xe6,0xb6,0x88,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*828*/ +0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79, +0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x63,0x65,0x6e,0x74,0x65,0x72, +0x2c,0x79,0x3d,0x6d,0x69,0x64,0x64,0x6c,0x65,0x3a,0x32,0x30,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68, +0x3d,0x33,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6c,0x6f,0x61,0x64,0x5f,0x74,0x68,0x65, +0x6d,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x54,0x65,0x73,0x74,0x20,0x43,0x68,0x61,0x6e,0x67,0x65,0x20, +0x54,0x68,0x65,0x6d,0x65,0x00,0x00,0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x65,0x6c,0x66, +0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x31,0x30, +0x2c,0x79,0x3d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x30,0x2c,0x77,0x3d,0x34,0x30,0x25,0x2c,0x68, +0x3d,0x33,0x30,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x67,0x72,0x65,0x65,0x6e,0x5f,0x62,0x74,0x6e, +0x00,0x6e,0x61,0x6d,0x65,0x00,0x71,0x75,0x69,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0xe7,0xa1,0xae,0xe5, +0xae,0x9a,0x00,0x00,0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61, +0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x72,0x69,0x67,0x68,0x74, +0x3a,0x31,0x30,0x2c,0x79,0x3d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x30,0x2c,0x77,0x3d,0x34,0x30, +0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x65,0x64,0x5f,0x62,0x74, +0x6e,0x00,0x6e,0x61,0x6d,0x65,0x00,0x71,0x75,0x69,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0xe5,0x8f,0x96, +0xe6,0xb6,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*972*/ diff --git a/demos/assets/default/raw/ui/dialog2.bin b/demos/assets/default/raw/ui/dialog2.bin index b68475397386034f34ef1aa62c2a0b470b405132..220f3830443ea7b2d920489653a7e4b785ff40f4 100644 GIT binary patch delta 95 zcmeBSo5McAfbq^mLvA|NK&RZ+!a!9g!`9e9 wlOZoLHaL!1~OHWk@0SRyZ$SBPS02{O%-v9sr delta 22 ecmbQk-orM*fN{Y@Lvj&Tf diff --git a/demos/assets/default/raw/ui/dialog2.xml b/demos/assets/default/raw/ui/dialog2.xml index f6a01d32b7..d251784030 100644 --- a/demos/assets/default/raw/ui/dialog2.xml +++ b/demos/assets/default/raw/ui/dialog2.xml @@ -1,8 +1,9 @@ + x="c" y="m" w="80%" h="220"> \n ```\n\n 如果你不需要对话框的标题,可以这样写:\n\n ```xml\n \n \n ```\n\n 打开非模态对话框时,其用法与普通窗口一样。打开非模态对话框时,还需要调用dialog\\_modal。\n\n ```c\n widget_t* dlg = dialog_open(name);\n\n ret = dialog_modal(dlg);\n ```\n\n 关闭模态对话框用dialog\\_quit\n\n ```c\n static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {\n widget_t* win = widget_get_window(WIDGET(evt->target));\n int code = (char*)ctx - (char*)NULL;\n\n dialog_quit(win, code);\n\n return RET_OK;\n }\n ```\n\n 关闭非模态对话框用window\\_close。\n\n ```c\n static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {\n widget_t* win = widget_get_window(WIDGET(evt->target));\n int code = (char*)ctx - (char*)NULL;\n\n window_close(win);\n\n return RET_OK;\n }\n ```\n\n > 更多用法请参考:\n [dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\n\n > 完整C代码示例请参考:\n\n * [非模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog.c)\n\n * [模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog_modal.c)\n\n可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\n\n ```xml\n \n ```\n\n > 更多用法请参考:\n [theme default]\n (https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324)\n\n\n", + "desc": "\r\n 对话框。 对话框是一种特殊的窗口,大小和位置可以自由设置。\r\n\r\n AWTK中的对话框可以是模态的,也可以是非模态的。\r\n\r\n 如果dialog有透明或半透效果则不支持窗口动画。\r\n\r\n> 由于浏览器中无法实现主循环嵌套,因此无法实现模态对话框。\r\n 如果希望自己写的AWTK应用程序可以在浏览器(包括各种小程序)中运行或演示,\r\n 请避免使用模态对话框。\r\n\r\n 对话框通常由对话框标题和对话框客户区两部分组成:\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n dialog_title_t -> dialog_t[arrowhead = \"ediamond\"]\r\n dialog_client_t -> dialog_t[arrowhead = \"ediamond\"]\r\n ```\r\n\r\n dialog\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于dialog\\_t控件。\r\n\r\n 在xml中使用\"dialog\"标签创建对话框。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n ```\r\n\r\n 如果你不需要对话框的标题,可以这样写:\r\n\r\n ```xml\r\n \r\n \r\n ```\r\n\r\n 打开非模态对话框时,其用法与普通窗口一样。打开非模态对话框时,还需要调用dialog\\_modal。\r\n\r\n ```c\r\n widget_t* dlg = dialog_open(name);\r\n\r\n ret = dialog_modal(dlg);\r\n ```\r\n\r\n 关闭模态对话框用dialog\\_quit\r\n\r\n ```c\r\n static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {\r\n widget_t* win = widget_get_window(WIDGET(evt->target));\r\n int code = (char*)ctx - (char*)NULL;\r\n\r\n dialog_quit(win, code);\r\n\r\n return RET_OK;\r\n }\r\n ```\r\n\r\n 关闭非模态对话框用window\\_close。\r\n\r\n ```c\r\n static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {\r\n widget_t* win = widget_get_window(WIDGET(evt->target));\r\n int code = (char*)ctx - (char*)NULL;\r\n\r\n window_close(win);\r\n\r\n return RET_OK;\r\n }\r\n ```\r\n\r\n > 更多用法请参考:\r\n [dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n > 完整C代码示例请参考:\r\n\r\n * [非模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog.c)\r\n\r\n * [模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog_modal.c)\r\n\r\n可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default]\r\n (https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324)\r\n\r\n", "name": "dialog_t", "parent": "widget_t", "annotation": { @@ -27231,7 +27525,7 @@ "cast": true, "scriptable": true }, - "desc": " 把event对象转wheel_event_t对象,主要给脚本语言使用。\n\n\n", + "desc": " 把event对象转wheel_event_t对象,主要给脚本语言使用。\r\n\r\n", "name": "wheel_event_cast", "return": { "type": "wheel_event_t*", @@ -27262,7 +27556,7 @@ } ], "annotation": {}, - "desc": " 初始化事件。\n\n\n", + "desc": " 初始化事件。\r\n\r\n", "name": "wheel_event_init", "return": { "type": "event_t*", @@ -27274,7 +27568,7 @@ "properties": [ { "name": "dy", - "desc": " 滚轮的y值。\n\n", + "desc": " 滚轮的y值。\r\n", "type": "int32_t", "annotation": { "readable": true, @@ -27283,7 +27577,7 @@ }, { "name": "alt", - "desc": " alt键是否按下。\n\n", + "desc": " alt键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27292,7 +27586,7 @@ }, { "name": "ctrl", - "desc": " ctrl键是否按下。\n\n", + "desc": " ctrl键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27301,7 +27595,7 @@ }, { "name": "shift", - "desc": " shift键是否按下。\n\n", + "desc": " shift键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27310,7 +27604,7 @@ } ], "header": "base/events.h", - "desc": " 滚轮事件。\n\n", + "desc": " 滚轮事件。\r\n", "name": "wheel_event_t", "annotation": { "scriptable": true @@ -27333,7 +27627,7 @@ "cast": true, "scriptable": true }, - "desc": " 把event对象转orientation_event_t对象,主要给脚本语言使用。\n\n\n", + "desc": " 把event对象转orientation_event_t对象,主要给脚本语言使用。\r\n\r\n", "name": "orientation_event_cast", "return": { "type": "orientation_event_t*", @@ -27364,7 +27658,7 @@ } ], "annotation": {}, - "desc": " 初始化事件。\n\n\n", + "desc": " 初始化事件。\r\n\r\n", "name": "orientation_event_init", "return": { "type": "event_t*", @@ -27376,7 +27670,7 @@ "properties": [ { "name": "orientation", - "desc": " 屏幕方向。\n\n", + "desc": " 屏幕方向。\r\n", "type": "int32_t", "annotation": { "readable": true, @@ -27385,7 +27679,7 @@ } ], "header": "base/events.h", - "desc": " 滚轮事件。\n\n", + "desc": " 滚轮事件。\r\n", "name": "orientation_event_t", "annotation": { "scriptable": true @@ -27401,7 +27695,7 @@ "annotation": { "constructor": true }, - "desc": " 获取缺省的控件工厂对象。\n\n", + "desc": " 获取缺省的控件工厂对象。\r\n", "name": "widget_factory", "alias": "widget_factory_instance", "return": { @@ -27418,7 +27712,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的控件工厂对象。\n\n\n", + "desc": " 设置缺省的控件工厂对象。\r\n\r\n", "name": "widget_factory_set", "return": { "type": "ret_t", @@ -27430,7 +27724,7 @@ "annotation": { "constructor": true }, - "desc": " 创建控件工厂对象。\n\n\n", + "desc": " 创建控件工厂对象。\r\n\r\n", "name": "widget_factory_create", "return": { "type": "widget_factory_t*", @@ -27456,7 +27750,7 @@ } ], "annotation": {}, - "desc": " 注册控件创建函数。\n\n\n", + "desc": " 注册控件创建函数。\r\n\r\n", "name": "widget_factory_register", "return": { "type": "ret_t", @@ -27499,7 +27793,7 @@ "annotation": { "constructor": true }, - "desc": " 创建指定类型的控件。\n\n\n", + "desc": " 创建指定类型的控件。\r\n\r\n", "name": "widget_factory_create_widget", "return": { "type": "widget_t*", @@ -27515,7 +27809,7 @@ } ], "annotation": {}, - "desc": " 析构并释放控件工厂对象。\n\n\n", + "desc": " 析构并释放控件工厂对象。\r\n\r\n", "name": "widget_factory_destroy", "return": { "type": "ret_t", @@ -27526,7 +27820,7 @@ "events": [], "properties": [], "header": "base/widget_factory.h", - "desc": " 控件工厂对象。\n\n 提供通过类型创建控件的能力。\n 用户注册自定义控件,可以获得内置控件同等待遇。\n\n\n", + "desc": " 控件工厂对象。\r\n\r\n 提供通过类型创建控件的能力。\r\n 用户注册自定义控件,可以获得内置控件同等待遇。\r\n\r\n", "name": "widget_factory_t", "parent": "emitter", "level": 2 @@ -27546,7 +27840,7 @@ "cast": true, "scriptable": true }, - "desc": " 把event对象转pointer_event_t对象,主要给脚本语言使用。\n\n\n", + "desc": " 把event对象转pointer_event_t对象,主要给脚本语言使用。\r\n\r\n", "name": "pointer_event_cast", "return": { "type": "pointer_event_t*", @@ -27582,7 +27876,7 @@ } ], "annotation": {}, - "desc": " 初始化事件。\n\n\n", + "desc": " 初始化事件。\r\n\r\n", "name": "pointer_event_init", "return": { "type": "event_t*", @@ -27594,7 +27888,7 @@ "properties": [ { "name": "x", - "desc": " x坐标。\n\n", + "desc": " x坐标。\r\n", "type": "xy_t", "annotation": { "readable": true, @@ -27603,7 +27897,7 @@ }, { "name": "y", - "desc": " y坐标。\n\n", + "desc": " y坐标。\r\n", "type": "xy_t", "annotation": { "readable": true, @@ -27612,7 +27906,7 @@ }, { "name": "button", - "desc": " button。\n\n", + "desc": " button。\r\n", "type": "uint8_t", "annotation": { "readable": true, @@ -27621,7 +27915,7 @@ }, { "name": "pressed", - "desc": " 指针是否按下。\n\n", + "desc": " 指针是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27630,7 +27924,7 @@ }, { "name": "alt", - "desc": " alt键是否按下。\n\n", + "desc": " alt键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27639,7 +27933,7 @@ }, { "name": "ctrl", - "desc": " ctrl键是否按下。\n\n", + "desc": " ctrl键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27648,7 +27942,7 @@ }, { "name": "cmd", - "desc": " cmd键是否按下。\n\n", + "desc": " cmd键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27657,7 +27951,7 @@ }, { "name": "menu", - "desc": " menu键是否按下。\n\n", + "desc": " menu键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27666,7 +27960,7 @@ }, { "name": "shift", - "desc": " shift键是否按下。\n\n", + "desc": " shift键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -27675,7 +27969,7 @@ } ], "header": "base/events.h", - "desc": " 指针事件。\n\n", + "desc": " 指针事件。\r\n", "name": "pointer_event_t", "annotation": { "scriptable": true @@ -27691,7 +27985,7 @@ "annotation": { "constructor": true }, - "desc": "\n 创建只读的style对象。\n\n\n", + "desc": "\r\n 创建只读的style对象。\r\n\r\n", "name": "style_const_create", "return": { "type": "style_t*", @@ -27702,7 +27996,7 @@ "events": [], "properties": [], "header": "base/style_const.h", - "desc": "\n 只读的style,从theme\\_t中获取数据。\n\n tools/theme_gen用于把XML的主题数据转换成常量数据。\n\n\n", + "desc": "\r\n 只读的style,从theme\\_t中获取数据。\r\n\r\n tools/theme_gen用于把XML的主题数据转换成常量数据。\r\n\r\n", "name": "style_const_t", "parent": "style_t", "level": 2 @@ -27714,7 +28008,7 @@ "properties": [ { "name": "text", - "desc": " 提交的文本。\n\n", + "desc": " 提交的文本。\r\n", "type": "char*", "annotation": { "readable": true @@ -27722,7 +28016,7 @@ }, { "name": "replace;", - "desc": " 是否替换原来的文本。\n\n", + "desc": " 是否替换原来的文本。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -27730,7 +28024,7 @@ } ], "header": "base/input_method.h", - "desc": " 输入法提交输入的文本事件。\n\n", + "desc": " 输入法提交输入的文本事件。\r\n", "name": "im_commit_event_t", "parent": "event_t", "level": 2 @@ -27749,7 +28043,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取style的名称。\n\n\n", + "desc": " 获取style的名称。\r\n\r\n", "name": "style_mutable_get_name", "return": { "type": "const char*", @@ -27772,7 +28066,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置style的名称。\n\n\n", + "desc": " 设置style的名称。\r\n\r\n", "name": "style_mutable_set_name", "return": { "type": "ret_t", @@ -27805,7 +28099,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定名称整数格式的值。\n\n\n", + "desc": " 设置指定名称整数格式的值。\r\n\r\n", "name": "style_mutable_set_int", "return": { "type": "ret_t", @@ -27836,7 +28130,7 @@ } ], "annotation": {}, - "desc": " 设置指定名称的颜色值。\n\n\n", + "desc": " 设置指定名称的颜色值。\r\n\r\n", "name": "style_mutable_set_color", "return": { "type": "ret_t", @@ -27867,7 +28161,7 @@ } ], "annotation": {}, - "desc": " 设置指定名称字符串的值。\n\n\n", + "desc": " 设置指定名称字符串的值。\r\n\r\n", "name": "style_mutable_set_str", "return": { "type": "ret_t", @@ -27893,7 +28187,7 @@ } ], "annotation": {}, - "desc": " 遍历。对每项调用回调函数on\\_style\\_item。\n\n\n", + "desc": " 遍历。对每项调用回调函数on\\_style\\_item。\r\n\r\n", "name": "style_mutable_foreach", "return": { "type": "ret_t", @@ -27924,7 +28218,7 @@ } ], "annotation": {}, - "desc": " 获取指定名称的值。\n\n\n", + "desc": " 获取指定名称的值。\r\n\r\n", "name": "style_mutable_get_value", "return": { "type": "ret_t", @@ -27955,7 +28249,7 @@ } ], "annotation": {}, - "desc": " 设置指定名称的值。\n\n\n", + "desc": " 设置指定名称的值。\r\n\r\n", "name": "style_mutable_set_value", "return": { "type": "ret_t", @@ -27976,7 +28270,7 @@ } ], "annotation": {}, - "desc": " 将other对象的数据拷贝到s对象。\n\n\n", + "desc": " 将other对象的数据拷贝到s对象。\r\n\r\n", "name": "style_mutable_copy", "return": { "type": "ret_t", @@ -27995,7 +28289,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为style_mutable对象。\n\n\n", + "desc": " 转换为style_mutable对象。\r\n\r\n", "name": "style_mutable_cast", "return": { "type": "style_t*", @@ -28019,7 +28313,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建style\\_mutable对象。\n\n > 除了测试程序外不需要直接调用,widget会通过style\\_factory\\_create创建。\n\n\n\n", + "desc": " 创建style\\_mutable对象。\r\n\r\n > 除了测试程序外不需要直接调用,widget会通过style\\_factory\\_create创建。\r\n\r\n\r\n", "name": "style_mutable_create", "return": { "type": "style_t*", @@ -28029,7 +28323,7 @@ { "params": [], "annotation": {}, - "desc": " 将自己注册到style\\_factory。\n\n\n", + "desc": " 将自己注册到style\\_factory。\r\n\r\n", "name": "style_mutable_register", "return": { "type": "ret_t", @@ -28041,7 +28335,7 @@ "properties": [ { "name": "name", - "desc": " 名称。\n\n", + "desc": " 名称。\r\n", "type": "char*", "annotation": { "readable": true, @@ -28050,7 +28344,7 @@ }, { "name": "widget", - "desc": " 与之关联的控件。\n\n", + "desc": " 与之关联的控件。\r\n", "type": "widget_t*", "annotation": { "private": true @@ -28058,7 +28352,7 @@ }, { "name": "default_style", - "desc": " 缺省的style,在mutable中找不到时,再到default_style中找。\n\n", + "desc": " 缺省的style,在mutable中找不到时,再到default_style中找。\r\n", "type": "style_t*", "annotation": { "private": true @@ -28066,7 +28360,7 @@ }, { "name": "styles", - "desc": " 控件在不同状态下的style。\n\n", + "desc": " 控件在不同状态下的style。\r\n", "type": "widget_state_style_t*", "annotation": { "private": true @@ -28074,7 +28368,7 @@ } ], "header": "base/style_mutable.h", - "desc": "\n 可变的style(可实时修改并生效,主要用于在designer中被编辑的控件,或者一些特殊控件)。\n\n style\\_mutable也对style\\_const进行了包装,当用户没修改某个值时,便从style\\_const中获取。\n\n\n", + "desc": "\r\n 可变的style(可实时修改并生效,主要用于在designer中被编辑的控件,或者一些特殊控件)。\r\n\r\n style\\_mutable也对style\\_const进行了包装,当用户没修改某个值时,便从style\\_const中获取。\r\n\r\n", "name": "style_mutable_t", "parent": "style_t", "annotation": { @@ -28685,7 +28979,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建window对象\n\n\n", + "desc": " 创建window对象\r\n\r\n", "name": "window_create", "return": { "type": "widget_t*", @@ -28709,7 +29003,7 @@ "deconstructor": true, "scriptable": true }, - "desc": " 设置为全屏窗口。\n\n>这里全屏是指与LCD相同大小,而非让SDL窗口全屏。\n\n\n\n", + "desc": " 设置为全屏窗口。\r\n\r\n>这里全屏是指与LCD相同大小,而非让SDL窗口全屏。\r\n\r\n\r\n", "name": "window_set_fullscreen", "return": { "type": "ret_t", @@ -28728,7 +29022,7 @@ "constructor": true, "scriptable": true }, - "desc": " 从资源文件中加载并创建window_base对象。本函数在ui_loader/ui_builder_default里实现。\n\n\n\n", + "desc": " 从资源文件中加载并创建window_base对象。本函数在ui_loader/ui_builder_default里实现。\r\n\r\n\r\n", "name": "window_open", "return": { "type": "widget_t*", @@ -28752,7 +29046,7 @@ "constructor": true, "scriptable": true }, - "desc": " 从资源文件中加载并创建window对象。本函数在ui_loader/ui_builder_default里实现。\n\n\n", + "desc": " 从资源文件中加载并创建window对象。本函数在ui_loader/ui_builder_default里实现。\r\n\r\n", "name": "window_open_and_close", "return": { "type": "widget_t*", @@ -28771,7 +29065,7 @@ "deconstructor": true, "scriptable": true }, - "desc": " 关闭窗口。\n\n\n", + "desc": " 关闭窗口。\r\n\r\n", "name": "window_close", "return": { "type": "ret_t", @@ -28790,7 +29084,7 @@ "deconstructor": true, "scriptable": true }, - "desc": " 立即无条件关闭窗口(无动画)。\n\n\n", + "desc": " 立即无条件关闭窗口(无动画)。\r\n\r\n", "name": "window_close_force", "return": { "type": "ret_t", @@ -28809,7 +29103,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为window对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为window对象(供脚本语言使用)。\r\n\r\n", "name": "window_cast", "return": { "type": "widget_t*", @@ -28819,7 +29113,7 @@ { "params": [], "annotation": {}, - "desc": " 注册内置的对话框高亮策略。\n\n\n", + "desc": " 注册内置的对话框高亮策略。\r\n\r\n", "name": "dialog_highlighter_register_builtins", "return": { "type": "ret_t", @@ -28831,7 +29125,7 @@ "properties": [ { "name": "fullscreen", - "desc": " 是否全屏。\n\n>这里全屏是指与LCD相同大小,而非让SDL窗口全屏。\n\n", + "desc": " 是否全屏。\r\n\r\n>这里全屏是指与LCD相同大小,而非让SDL窗口全屏。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -28844,7 +29138,7 @@ } ], "header": "base/window.h", - "desc": " 窗口。\n\n 缺省的应用程序窗口,占用除system\\_bar\\_t之外的整个区域,请不要修改它的位置和大小(除非你清楚后果)。\n\n window\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于window\\_t控件。\n\n 在xml中使用\"window\"标签创建窗口。无需指定坐标和大小,可以指定主题和动画名称。如:\n\n ```xml\n \n ...\n \n ```\n\n >\n 更多用法请参考:[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\n\n 在c代码中使用函数window\\_create创建窗口。如:\n\n ```c\n widget_t* window = window_create(NULL, 0, 0, 0, 0);\n ```\n\n > 无需指定父控件、坐标和大小,使用0即可。\n\n > 完整示例请参考:[window\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/)\n\n 可用通过style来设置窗口的风格,如背景颜色或图片等。如:\n\n ```xml\n \n ```\n\n > 更多用法请参考:[theme\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0)\n\n", + "desc": " 窗口。\r\n\r\n 缺省的应用程序窗口,占用除system\\_bar\\_t之外的整个区域,请不要修改它的位置和大小(除非你清楚后果)。\r\n\r\n window\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于window\\_t控件。\r\n\r\n 在xml中使用\"window\"标签创建窗口。无需指定坐标和大小,可以指定主题和动画名称。如:\r\n\r\n ```xml\r\n \r\n ...\r\n \r\n ```\r\n\r\n >\r\n 更多用法请参考:[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n 在c代码中使用函数window\\_create创建窗口。如:\r\n\r\n ```c\r\n widget_t* window = window_create(NULL, 0, 0, 0, 0);\r\n ```\r\n\r\n > 无需指定父控件、坐标和大小,使用0即可。\r\n\r\n > 完整示例请参考:[window\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/)\r\n\r\n 可用通过style来设置窗口的风格,如背景颜色或图片等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0)\r\n", "name": "window_t", "parent": "widget_t", "annotation": { @@ -28862,7 +29156,7 @@ "properties": [ { "name": "text", - "desc": " 软键盘上的action按钮显示的文本。\n\n", + "desc": " 软键盘上的action按钮显示的文本。\r\n", "type": "char*", "annotation": { "readable": true @@ -28870,7 +29164,7 @@ }, { "name": "enable", - "desc": " 软键盘上的action按钮启用。\n\n", + "desc": " 软键盘上的action按钮启用。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -28878,7 +29172,7 @@ } ], "header": "base/input_method.h", - "desc": " 设置软键盘上的action按钮的信息事件。\n\n", + "desc": " 设置软键盘上的action按钮的信息事件。\r\n", "name": "im_action_button_info_event_t", "parent": "event_t", "level": 2 @@ -29231,7 +29525,7 @@ "properties": [ { "name": "candidates", - "desc": " 可选的文本,多个文本以\\0分隔。如:里\\0李\\0力\\0离\\0\n\n", + "desc": " 可选的文本,多个文本以\\0分隔。如:里\\0李\\0力\\0离\\0\r\n", "type": "char*", "annotation": { "readable": true @@ -29239,7 +29533,7 @@ }, { "name": "candidates_nr", - "desc": " 可选的文本的个数。\n\n", + "desc": " 可选的文本的个数。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -29247,7 +29541,7 @@ } ], "header": "base/input_method.h", - "desc": " 输入法请求显示候选字的事件。\n\n", + "desc": " 输入法请求显示候选字的事件。\r\n", "name": "im_candidates_event_t", "parent": "event_t", "level": 2 @@ -29287,8 +29581,8 @@ "constructor": true, "scriptable": true }, - "desc": " 创建guage_pointer对象\n\n\n", - "name": "guage_pointer_create", + "desc": " 创建draggable对象\r\n\r\n", + "name": "draggable_create", "return": { "type": "widget_t*", "desc": "对象。" @@ -29299,18 +29593,18 @@ { "type": "widget_t*", "name": "widget", - "desc": "guage_pointer对象。" + "desc": "draggable对象。" } ], "annotation": { "cast": true, "scriptable": true }, - "desc": " 转换为guage_pointer对象(供脚本语言使用)。\n\n\n", - "name": "guage_pointer_cast", + "desc": " 转换为draggable对象(供脚本语言使用)。\r\n\r\n", + "name": "draggable_cast", "return": { "type": "widget_t*", - "desc": "guage_pointer对象。" + "desc": "draggable对象。" } }, { @@ -29318,19 +29612,19 @@ { "type": "widget_t*", "name": "widget", - "desc": "控件对象。" + "desc": "widget对象。" }, { - "type": "int32_t", - "name": "angle", - "desc": "指针角度。" + "type": "uint32_t", + "name": "top", + "desc": "拖动范围的顶部限制。缺省为父控件的顶部。" } ], "annotation": { "scriptable": true }, - "desc": " 设置指针角度。12点钟方向为0度,顺时钟方向为正,单位为度。\n\n\n", - "name": "guage_pointer_set_angle", + "desc": " 设置top。\r\n\r\n", + "name": "draggable_set_top", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -29341,19 +29635,19 @@ { "type": "widget_t*", "name": "widget", - "desc": "控件对象。" + "desc": "widget对象。" }, { - "type": "const char*", - "name": "image", - "desc": "指针的图片。" + "type": "uint32_t", + "name": "bottom", + "desc": "拖动范围的底部限制。缺省为父控件的底部。" } ], "annotation": { "scriptable": true }, - "desc": " 设置指针的图片。\n\n\n", - "name": "guage_pointer_set_image", + "desc": " 设置bottom。\r\n\r\n", + "name": "draggable_set_bottom", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -29364,24 +29658,111 @@ { "type": "widget_t*", "name": "widget", - "desc": "控件对象。" + "desc": "widget对象。" }, { - "type": "const char*", - "name": "anchor_x", - "desc": "指针的锚点坐标x。(后面加上px为像素点,不加px为相对百分比坐标)" + "type": "uint32_t", + "name": "left", + "desc": "拖动范围的左边限制。缺省为父控件的左边。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置left。\r\n\r\n", + "name": "draggable_set_left", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "widget对象。" }, { - "type": "const char*", - "name": "anchor_y", - "desc": "指针的锚点坐标y。(后面加上px为像素点,不加px为相对百分比坐标)" + "type": "uint32_t", + "name": "right", + "desc": "拖动范围的右边限制。缺省为父控件的右边边。" } ], "annotation": { "scriptable": true }, - "desc": " 设置指针的旋转锚点。\n\n\n", - "name": "guage_pointer_set_anchor", + "desc": " 设置right。\r\n\r\n", + "name": "draggable_set_right", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "widget对象。" + }, + { + "type": "uint32_t", + "name": "vertical_only", + "desc": "只允许垂直拖动。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置vertical_only。\r\n\r\n", + "name": "draggable_set_vertical_only", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "widget对象。" + }, + { + "type": "uint32_t", + "name": "horizontal_only", + "desc": "只允许水平拖动。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置horizontal_only。\r\n\r\n", + "name": "draggable_set_horizontal_only", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "widget对象。" + }, + { + "type": "uint32_t", + "name": "", + "desc": "w" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置drag_window。\r\n 拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。\r\n\r\n", + "name": "draggable_set_drag_window", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -29391,8 +29772,8 @@ "events": [], "properties": [ { - "name": "angle", - "desc": " 指针角度。12点钟方向为0度,顺时钟方向为正,单位为度。\n\n", + "name": "top", + "desc": " 拖动范围的顶部限制。缺省为父控件的顶部。\r\n", "type": "int32_t", "annotation": { "set_prop": true, @@ -29404,9 +29785,9 @@ } }, { - "name": "image", - "desc": " 指针图片。\n\n 图片须垂直向上,图片的中心点为旋转方向。\n\n\n", - "type": "char*", + "name": "bottom", + "desc": " 拖动范围的底部限制。缺省为父控件的底部。\r\n", + "type": "int32_t", "annotation": { "set_prop": true, "get_prop": true, @@ -29417,9 +29798,9 @@ } }, { - "name": "anchor_x", - "desc": " 旋转锚点x坐标。\n\n", - "type": "float_t", + "name": "left", + "desc": " 拖动范围的左边限制。缺省为父控件的左边。\r\n", + "type": "int32_t", "annotation": { "set_prop": true, "get_prop": true, @@ -29430,9 +29811,48 @@ } }, { - "name": "anchor_y", - "desc": " 旋转锚点y坐标。\n\n", - "type": "float_t", + "name": "right", + "desc": " 拖动范围的右边限制。缺省为父控件的右边边。\r\n", + "type": "int32_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + }, + { + "name": "vertical_only", + "desc": " 只允许垂直拖动。\r\n", + "type": "bool_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + }, + { + "name": "horizontal_only", + "desc": " 只允许水平拖动。\r\n", + "type": "bool_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + }, + { + "name": "drag_window", + "desc": " 拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。\r\n", + "type": "bool_t", "annotation": { "set_prop": true, "get_prop": true, @@ -29443,9 +29863,9 @@ } } ], - "header": "guage/guage_pointer.h", - "desc": " 仪表指针控件。\n\n 仪表指针就是一张旋转的图片,图片可以是普通图片也可以是SVG图片。\n\n 在嵌入式平台上,对于旋转的图片,SVG图片的效率比位图高数倍,所以推荐使用SVG图片。\n\n guage\\_pointer\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于guage\\_pointer\\_t控件。\n\n 在xml中使用\"guage\\_pointer\"标签创建仪表指针控件。如:\n\n ```xml\n \n ```\n\n > 更多用法请参考:\n [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml)\n\n 在c代码中使用函数guage\\_pointer\\_create创建仪表指针控件。如:\n\n ```c\n widget_t* guage_pointer = guage_pointer_create(guage, 10, 10, 100, 30);\n guage_pointer_set_image(guage_pointer, \"guage_pointer\");\n ```\n\n > 创建之后,需要用guage\\_pointer\\_set\\_image设置仪表指针图片。\n\n\n\n", - "name": "guage_pointer_t", + "header": "features/draggable.h", + "desc": " \r\n 将draggable放入目标控件,即可让目标控件或当前窗口可以被拖动。\r\n \r\n draggable\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于draggable\\_t控件。\r\n\r\n 在xml中使用\"draggable\"标签创建draggable控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n 拖动对话框标题时移动对话框:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/draggable.xml)\r\n\r\n 在c代码中使用函数draggable\\_create创建按钮控件。如:\r\n\r\n ```c\r\n widget_t* draggable = draggable_create(target, 0, 0, 0, 0);\r\n ```\r\n\r\n > draggable本身不可见,故无需style。\r\n\r\n", + "name": "draggable_t", "parent": "widget_t", "annotation": { "scriptable": true, @@ -29476,7 +29896,7 @@ } ], "annotation": {}, - "desc": "\n 创建fd事件源。\n\n\n\n\n", + "desc": "\r\n 创建fd事件源。\r\n\r\n\r\n\r\n", "name": "event_source_fd_create", "return": { "type": "event_source_t*", @@ -29487,7 +29907,7 @@ "events": [], "properties": [], "header": "tkc/event_source_fd.h", - "desc": "\n fd事件源。\n\n\n", + "desc": "\r\n fd事件源。\r\n\r\n", "name": "event_source_fd_t", "parent": "object", "level": 2 @@ -29504,7 +29924,7 @@ } ], "annotation": {}, - "desc": "\n 创建idle事件源。\n\n\n\n\n", + "desc": "\r\n 创建idle事件源。\r\n\r\n\r\n\r\n", "name": "event_source_idle_create", "return": { "type": "event_source_t*", @@ -29520,7 +29940,7 @@ } ], "annotation": {}, - "desc": "\n 创建事件源管理器。\n\n\n\n\n", + "desc": "\r\n 创建事件源管理器。\r\n\r\n\r\n\r\n", "name": "event_source_manager_default_create", "return": { "type": "ret_t", @@ -29531,7 +29951,7 @@ "events": [], "properties": [], "header": "tkc/event_source_idle.h", - "desc": "\n idle事件源。\n\n\n", + "desc": "\r\n idle事件源。\r\n\r\n", "name": "event_source_idle_t", "parent": "object", "level": 2 @@ -29571,8 +29991,8 @@ "constructor": true, "scriptable": true }, - "desc": " 创建guage对象\r\n\r\n", - "name": "guage_create", + "desc": " 创建guage_pointer对象\r\n\r\n", + "name": "guage_pointer_create", "return": { "type": "widget_t*", "desc": "对象。" @@ -29583,18 +30003,18 @@ { "type": "widget_t*", "name": "widget", - "desc": "guage对象。" + "desc": "guage_pointer对象。" } ], "annotation": { "cast": true, "scriptable": true }, - "desc": " 转换为guage对象(供脚本语言使用)。\r\n\r\n", - "name": "guage_cast", + "desc": " 转换为guage_pointer对象(供脚本语言使用)。\r\n\r\n", + "name": "guage_pointer_cast", "return": { "type": "widget_t*", - "desc": "guage对象。" + "desc": "guage_pointer对象。" } }, { @@ -29602,19 +30022,19 @@ { "type": "widget_t*", "name": "widget", - "desc": "image对象。" + "desc": "控件对象。" }, { - "type": "char*", - "name": "name", - "desc": "图片名称,该图片必须存在于资源管理器。" + "type": "int32_t", + "name": "angle", + "desc": "指针角度。" } ], "annotation": { "scriptable": true }, - "desc": " 设置背景图片的名称。\r\n\r\n", - "name": "guage_set_image", + "desc": " 设置指针角度。12点钟方向为0度,顺时钟方向为正,单位为度。\r\n\r\n", + "name": "guage_pointer_set_angle", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -29625,19 +30045,47 @@ { "type": "widget_t*", "name": "widget", - "desc": "image对象。" + "desc": "控件对象。" }, { - "type": "image_draw_type_t", - "name": "draw_type", - "desc": "显示方式。" + "type": "const char*", + "name": "image", + "desc": "指针的图片。" } ], "annotation": { "scriptable": true }, - "desc": " 设置图片的显示方式。\r\n\r\n > 绘制方式的属性值和枚举值:\r\n [image\\_draw\\_type\\_name\\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98)\r\n\r\n\r\n", - "name": "guage_set_draw_type", + "desc": " 设置指针的图片。\r\n\r\n", + "name": "guage_pointer_set_image", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "控件对象。" + }, + { + "type": "const char*", + "name": "anchor_x", + "desc": "指针的锚点坐标x。(后面加上px为像素点,不加px为相对百分比坐标)" + }, + { + "type": "const char*", + "name": "anchor_y", + "desc": "指针的锚点坐标y。(后面加上px为像素点,不加px为相对百分比坐标)" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置指针的旋转锚点。\r\n\r\n", + "name": "guage_pointer_set_anchor", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -29646,9 +30094,22 @@ ], "events": [], "properties": [ + { + "name": "angle", + "desc": " 指针角度。12点钟方向为0度,顺时钟方向为正,单位为度。\r\n", + "type": "int32_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + }, { "name": "image", - "desc": " 背景图片。\r\n", + "desc": " 指针图片。\r\n\r\n 图片须垂直向上,图片的中心点为旋转方向。\r\n\r\n", "type": "char*", "annotation": { "set_prop": true, @@ -29660,9 +30121,22 @@ } }, { - "name": "draw_type", - "desc": " 图片的绘制方式。\r\n", - "type": "image_draw_type_t", + "name": "anchor_x", + "desc": " 旋转锚点x坐标。\r\n", + "type": "float_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + }, + { + "name": "anchor_y", + "desc": " 旋转锚点y坐标。\r\n", + "type": "float_t", "annotation": { "set_prop": true, "get_prop": true, @@ -29673,9 +30147,9 @@ } } ], - "header": "guage/guage.h", - "desc": " 表盘控件。\r\n\r\n 表盘控件就是一张图片。\r\n\r\n guage\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于guage\\_t控件。\r\n\r\n 在xml中使用\"guage\"标签创建表盘控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml)\r\n\r\n 在c代码中使用函数guage\\_create创建表盘控件。如:\r\n\r\n ```c\r\n widget_t* guage = guage_create(win, 10, 10, 200, 200);\r\n guage_set_image(guage, \"guage_bg\");\r\n ```\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", - "name": "guage_t", + "header": "guage/guage_pointer.h", + "desc": " 仪表指针控件。\r\n\r\n 仪表指针就是一张旋转的图片,图片可以是普通图片也可以是SVG图片。\r\n\r\n 在嵌入式平台上,对于旋转的图片,SVG图片的效率比位图高数倍,所以推荐使用SVG图片。\r\n\r\n guage\\_pointer\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于guage\\_pointer\\_t控件。\r\n\r\n 在xml中使用\"guage\\_pointer\"标签创建仪表指针控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml)\r\n\r\n 在c代码中使用函数guage\\_pointer\\_create创建仪表指针控件。如:\r\n\r\n ```c\r\n widget_t* guage_pointer = guage_pointer_create(guage, 10, 10, 100, 30);\r\n guage_pointer_set_image(guage_pointer, \"guage_pointer\");\r\n ```\r\n\r\n > 创建之后,需要用guage\\_pointer\\_set\\_image设置仪表指针图片。\r\n\r\n\r\n", + "name": "guage_pointer_t", "parent": "widget_t", "annotation": { "scriptable": true, @@ -29696,7 +30170,7 @@ } ], "annotation": {}, - "desc": "\n 创建timer事件源。\n\n\n\n\n", + "desc": "\r\n 创建timer事件源。\r\n\r\n\r\n\r\n", "name": "event_source_timer_create", "return": { "type": "event_source_t*", @@ -29707,7 +30181,7 @@ "events": [], "properties": [], "header": "tkc/event_source_timer.h", - "desc": "\n timer事件源。\n\n\n", + "desc": "\r\n timer事件源。\r\n\r\n", "name": "event_source_timer_t", "parent": "object", "level": 2 @@ -29724,7 +30198,7 @@ } ], "annotation": {}, - "desc": "\n 获取文件描述符。\n\n\n\n\n", + "desc": "\r\n 获取文件描述符。\r\n\r\n\r\n\r\n", "name": "event_source_get_fd", "return": { "type": "int32_t", @@ -29740,7 +30214,7 @@ } ], "annotation": {}, - "desc": "\n 分发事件。\n\n\n\n\n", + "desc": "\r\n 分发事件。\r\n\r\n\r\n\r\n", "name": "event_source_dispatch", "return": { "type": "ret_t", @@ -29756,7 +30230,7 @@ } ], "annotation": {}, - "desc": "\n 对于没有文件描述符的事件源,需要自己检查是否准备就绪。\n\n\n\n\n", + "desc": "\r\n 对于没有文件描述符的事件源,需要自己检查是否准备就绪。\r\n\r\n\r\n\r\n", "name": "event_source_check", "return": { "type": "ret_t", @@ -29772,7 +30246,7 @@ } ], "annotation": {}, - "desc": "\n 获取唤醒时间(ms)。\n\n\n\n\n", + "desc": "\r\n 获取唤醒时间(ms)。\r\n\r\n\r\n\r\n", "name": "event_source_get_wakeup_time", "return": { "type": "uint32_t", @@ -29783,11 +30257,159 @@ "events": [], "properties": [], "header": "tkc/event_source.h", - "desc": "\n 表示一个事件源。\n\n 事件源有下列两种方式:\n\n * 对于有文件描述符的事件源(如socket),get_fd返回一个有效的文件描述符。\n * 对于定时器,则get_wakeup_time返回下次唤醒的时间。\n\n\n", + "desc": "\r\n 表示一个事件源。\r\n\r\n 事件源有下列两种方式:\r\n\r\n * 对于有文件描述符的事件源(如socket),get_fd返回一个有效的文件描述符。\r\n * 对于定时器,则get_wakeup_time返回下次唤醒的时间。\r\n\r\n", "name": "event_source_t", "parent": "object", "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": " 创建guage对象\r\n\r\n", + "name": "guage_create", + "return": { + "type": "widget_t*", + "desc": "对象。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "guage对象。" + } + ], + "annotation": { + "cast": true, + "scriptable": true + }, + "desc": " 转换为guage对象(供脚本语言使用)。\r\n\r\n", + "name": "guage_cast", + "return": { + "type": "widget_t*", + "desc": "guage对象。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "image对象。" + }, + { + "type": "char*", + "name": "name", + "desc": "图片名称,该图片必须存在于资源管理器。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置背景图片的名称。\r\n\r\n", + "name": "guage_set_image", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "image对象。" + }, + { + "type": "image_draw_type_t", + "name": "draw_type", + "desc": "显示方式。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置图片的显示方式。\r\n\r\n > 绘制方式的属性值和枚举值:\r\n [image\\_draw\\_type\\_name\\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98)\r\n\r\n\r\n", + "name": "guage_set_draw_type", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + } + ], + "events": [], + "properties": [ + { + "name": "image", + "desc": " 背景图片。\r\n", + "type": "char*", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + }, + { + "name": "draw_type", + "desc": " 图片的绘制方式。\r\n", + "type": "image_draw_type_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + } + ], + "header": "guage/guage.h", + "desc": " 表盘控件。\r\n\r\n 表盘控件就是一张图片。\r\n\r\n guage\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于guage\\_t控件。\r\n\r\n 在xml中使用\"guage\"标签创建表盘控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml)\r\n\r\n 在c代码中使用函数guage\\_create创建表盘控件。如:\r\n\r\n ```c\r\n widget_t* guage = guage_create(win, 10, 10, 200, 200);\r\n guage_set_image(guage, \"guage_bg\");\r\n ```\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", + "name": "guage_t", + "parent": "widget_t", + "annotation": { + "scriptable": true, + "design": true, + "widget": true + }, + "level": 2 + }, { "type": "class", "methods": [ @@ -30260,6 +30882,59 @@ }, "level": 2 }, + { + "type": "class", + "methods": [ + { + "params": [ + { + "type": "event_t*", + "name": "event", + "desc": "event对象。" + } + ], + "annotation": { + "cast": true, + "scriptable": true + }, + "desc": " 把event对象转prop_change_event_t对象,主要给脚本语言使用。\r\n\r\n", + "name": "prop_change_event_cast", + "return": { + "type": "prop_change_event_t*", + "desc": "对象。" + } + } + ], + "events": [], + "properties": [ + { + "name": "name", + "desc": " 属性的名称。\r\n", + "type": "const char*", + "annotation": { + "readable": true, + "scriptable": true + } + }, + { + "name": "value", + "desc": " 属性的值。\r\n", + "type": "const value_t*", + "annotation": { + "readable": true, + "scriptable": true + } + } + ], + "header": "tkc/event.h", + "desc": " 对象属性变化事件。\r\n", + "name": "prop_change_event_t", + "annotation": { + "scriptable": true + }, + "parent": "event_t", + "level": 2 + }, { "type": "class", "methods": [ @@ -30444,59 +31119,6 @@ }, "level": 2 }, - { - "type": "class", - "methods": [ - { - "params": [ - { - "type": "event_t*", - "name": "event", - "desc": "event对象。" - } - ], - "annotation": { - "cast": true, - "scriptable": true - }, - "desc": " 把event对象转prop_change_event_t对象,主要给脚本语言使用。\n\n\n", - "name": "prop_change_event_cast", - "return": { - "type": "prop_change_event_t*", - "desc": "对象。" - } - } - ], - "events": [], - "properties": [ - { - "name": "name", - "desc": " 属性的名称。\n\n", - "type": "const char*", - "annotation": { - "readable": true, - "scriptable": true - } - }, - { - "name": "value", - "desc": " 属性的值。\n\n", - "type": "const value_t*", - "annotation": { - "readable": true, - "scriptable": true - } - } - ], - "header": "tkc/event.h", - "desc": " 对象属性变化事件。\n\n", - "name": "prop_change_event_t", - "annotation": { - "scriptable": true - }, - "parent": "event_t", - "level": 2 - }, { "type": "class", "methods": [ @@ -30698,7 +31320,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建line_number对象\n\n\n", + "desc": " 创建line_number对象\r\n\r\n", "name": "line_number_create", "return": { "type": "widget_t*", @@ -30721,7 +31343,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置顶部边距。\n\n\n", + "desc": " 设置顶部边距。\r\n\r\n", "name": "line_number_set_top_margin", "return": { "type": "ret_t", @@ -30744,7 +31366,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置顶部边距。\n\n\n", + "desc": " 设置顶部边距。\r\n\r\n", "name": "line_number_set_bottom_margin", "return": { "type": "ret_t", @@ -30767,7 +31389,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置行高。\n\n\n", + "desc": " 设置行高。\r\n\r\n", "name": "line_number_set_line_height", "return": { "type": "ret_t", @@ -30790,7 +31412,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置y偏移。\n\n\n", + "desc": " 设置y偏移。\r\n\r\n", "name": "line_number_set_yoffset", "return": { "type": "ret_t", @@ -30809,7 +31431,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为line_number对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为line_number对象(供脚本语言使用)。\r\n\r\n", "name": "line_number_cast", "return": { "type": "widget_t*", @@ -30820,7 +31442,7 @@ "events": [], "properties": [], "header": "mledit/line_number.h", - "desc": "\n 行号。多行编辑器的行号。\n\n line\\_number\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于line\\_number\\_t控件。\n\n 在xml中使用\"lin\\e_number\"标签创建行号控件,一般配合mledit使用。如:\n\n ```xml\n \n \n \n \n ```\n\n > 更多用法请参考:[mledit.xml](\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\n\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\n\n ```xml\n \n \n \n ```\n\n > 更多用法请参考:\n [theme default](\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L556)\n\n\n", + "desc": "\r\n 行号。多行编辑器的行号。\r\n\r\n line\\_number\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于line\\_number\\_t控件。\r\n\r\n 在xml中使用\"lin\\e_number\"标签创建行号控件,一般配合mledit使用。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L556)\r\n\r\n", "name": "line_number_t", "parent": "widget_t", "annotation": { @@ -30865,7 +31487,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建mledit对象\n\n\n", + "desc": " 创建mledit对象\r\n\r\n", "name": "mledit_create", "return": { "type": "widget_t*", @@ -30888,7 +31510,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置编辑器是否为只读。\n\n\n", + "desc": " 设置编辑器是否为只读。\r\n\r\n", "name": "mledit_set_readonly", "return": { "type": "ret_t", @@ -30911,7 +31533,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置为焦点。\n\n\n", + "desc": " 设置为焦点。\r\n\r\n", "name": "mledit_set_focus", "return": { "type": "ret_t", @@ -30934,7 +31556,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置编辑器是否自动折行。\n\n\n", + "desc": " 设置编辑器是否自动折行。\r\n\r\n", "name": "mledit_set_wrap_word", "return": { "type": "ret_t", @@ -30957,7 +31579,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置编辑器的最大行数。\n\n\n", + "desc": " 设置编辑器的最大行数。\r\n\r\n", "name": "mledit_set_max_lines", "return": { "type": "ret_t", @@ -30980,7 +31602,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置编辑器的输入提示。\n\n\n", + "desc": " 设置编辑器的输入提示。\r\n\r\n", "name": "mledit_set_input_tips", "return": { "type": "ret_t", @@ -30999,7 +31621,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为mledit对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为mledit对象(供脚本语言使用)。\r\n\r\n", "name": "mledit_cast", "return": { "type": "widget_t*", @@ -31010,19 +31632,19 @@ "events": [ { "name": "EVT_VALUE_CHANGING", - "desc": " 文本正在改变事件(编辑中)。\n\n", + "desc": " 文本正在改变事件(编辑中)。\r\n", "type": "event_t" }, { "name": "EVT_VALUE_CHANGED", - "desc": " 文本改变事件。\n\n", + "desc": " 文本改变事件。\r\n", "type": "event_t" } ], "properties": [ { "name": "readonly", - "desc": " 编辑器是否为只读。\n\n", + "desc": " 编辑器是否为只读。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -31035,7 +31657,7 @@ }, { "name": "top_margin", - "desc": " 上边距。\n\n", + "desc": " 上边距。\r\n", "type": "uint8_t", "annotation": { "set_prop": true, @@ -31045,7 +31667,7 @@ }, { "name": "bottom_margin", - "desc": " 下边距。\n\n", + "desc": " 下边距。\r\n", "type": "uint8_t", "annotation": { "set_prop": true, @@ -31055,7 +31677,7 @@ }, { "name": "left_margin", - "desc": " 左边距。\n\n", + "desc": " 左边距。\r\n", "type": "uint8_t", "annotation": { "set_prop": true, @@ -31065,7 +31687,7 @@ }, { "name": "right_margin", - "desc": " 右边距。\n\n", + "desc": " 右边距。\r\n", "type": "uint8_t", "annotation": { "set_prop": true, @@ -31075,7 +31697,7 @@ }, { "name": "tips", - "desc": " 输入提示。\n\n", + "desc": " 输入提示。\r\n", "type": "char*", "annotation": { "set_prop": true, @@ -31088,7 +31710,7 @@ }, { "name": "wrap_word", - "desc": " 是否自动折行。\n\n", + "desc": " 是否自动折行。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -31101,7 +31723,7 @@ }, { "name": "max_lines", - "desc": " 最大行数。\n\n", + "desc": " 最大行数。\r\n", "type": "uint32_t", "annotation": { "set_prop": true, @@ -31114,7 +31736,7 @@ } ], "header": "mledit/mledit.h", - "desc": " 多行编辑器控件。\n\n mledit\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于mledit\\_t控件。\n\n 在xml中使用\"mledit\"标签创建多行编辑器控件。如:\n\n ```xml\n \n ```\n\n > 更多用法请参考:[mledit.xml](\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\n\n 在c代码中使用函数mledit\\_create创建多行编辑器控件。如:\n\n ```c\n widget_t* tc = mledit_create(win, 10, 10, 240, 240);\n ```\n\n > 完整示例请参考:[mledit demo](\n https://github.com/zlgopen/awtk-c-demos/blob/master/demos/mledit.c)\n\n time\\_clock一般不需要设置style。\n\n\n", + "desc": " 多行编辑器控件。\r\n\r\n mledit\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于mledit\\_t控件。\r\n\r\n 在xml中使用\"mledit\"标签创建多行编辑器控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\r\n\r\n 在c代码中使用函数mledit\\_create创建多行编辑器控件。如:\r\n\r\n ```c\r\n widget_t* tc = mledit_create(win, 10, 10, 240, 240);\r\n ```\r\n\r\n > 完整示例请参考:[mledit demo](\r\n https://github.com/zlgopen/awtk-c-demos/blob/master/demos/mledit.c)\r\n\r\n time\\_clock一般不需要设置style。\r\n\r\n", "name": "mledit_t", "parent": "widget_t", "annotation": { @@ -31498,7 +32120,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建rich_text对象\n\n\n", + "desc": " 创建rich_text对象\r\n\r\n", "name": "rich_text_create", "return": { "type": "widget_t*", @@ -31521,7 +32143,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置文本。\n\n\n", + "desc": " 设置文本。\r\n\r\n", "name": "rich_text_set_text", "return": { "type": "ret_t", @@ -31540,7 +32162,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为rich_text对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为rich_text对象(供脚本语言使用)。\r\n\r\n", "name": "rich_text_cast", "return": { "type": "widget_t*", @@ -31552,7 +32174,7 @@ "properties": [ { "name": "line_gap", - "desc": " 行间距。\n\n", + "desc": " 行间距。\r\n", "type": "int32_t", "annotation": { "set_prop": true, @@ -31565,7 +32187,7 @@ } ], "header": "rich_text/rich_text.h", - "desc": " 图文混排控件,实现简单的图文混排。\n\n rich\\_text\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于rich\\_text\\_t控件。\n\n 在xml中使用\"rich\\_text\"标签创建图文混排控件。如:\n\n ```xml\n hello awtk!\" />\n ```\n >\n\n > 更多用法请参考:\n [rich_text.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/rich_text.xml)\n\n 在c代码中使用函数rich\\_text\\_create创建图文混排控件。如:\n\n ```c\n widget_t* rich_text = rich_text_create(win, 0, 0, 0, 0);\n widget_set_text_utf8(rich_text,\n \"hello awtk!ProTip! The \"\n \"feed shows you events from people you follow and repositories you watch. \"\n \"nhello world. 确定取消中文字符测试。确定。取消。中文字符测试。\");\n\n widget_set_self_layout_params(rich_text, \"center\", \"middle\", \"100%\", \"100%\");\n ```\n\n > 完整示例请参考:\n [rich_text demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/rich_text.c)\n\n 可用通过style来设置控件的显示风格,如背景颜色等等。而字体的大小和颜色则由文本内部的属性决定。\n\n 目前支持image和font两个tag:\n\n * image 支持的属性有:\n * name 图片的名称。\n * w 图片的宽度。\n * h 图片的高度。\n\n * font 支持的属性有:\n * color 颜色。\n * size 大小。\n * align_v 垂直方向对齐的方式(top|middle|bottom)。\n * bold 粗体(暂不支持)\n * italic 斜体(暂不支持)\n * underline 下划线(暂不支持)\n\n\n", + "desc": " 图文混排控件,实现简单的图文混排。\r\n\r\n rich\\_text\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于rich\\_text\\_t控件。\r\n\r\n 在xml中使用\"rich\\_text\"标签创建图文混排控件。如:\r\n\r\n ```xml\r\n hello awtk!\" />\r\n ```\r\n >\r\n\r\n > 更多用法请参考:\r\n [rich_text.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/rich_text.xml)\r\n\r\n 在c代码中使用函数rich\\_text\\_create创建图文混排控件。如:\r\n\r\n ```c\r\n widget_t* rich_text = rich_text_create(win, 0, 0, 0, 0);\r\n widget_set_text_utf8(rich_text,\r\n \"hello awtk!ProTip! The \"\r\n \"feed shows you events from people you follow and repositories you watch. \"\r\n \"nhello world. 确定取消中文字符测试。确定。取消。中文字符测试。\");\r\n\r\n widget_set_self_layout_params(rich_text, \"center\", \"middle\", \"100%\", \"100%\");\r\n ```\r\n\r\n > 完整示例请参考:\r\n [rich_text demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/rich_text.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色等等。而字体的大小和颜色则由文本内部的属性决定。\r\n\r\n 目前支持image和font两个tag:\r\n\r\n * image 支持的属性有:\r\n * name 图片的名称。\r\n * w 图片的宽度。\r\n * h 图片的高度。\r\n\r\n * font 支持的属性有:\r\n * color 颜色。\r\n * size 大小。\r\n * align_v 垂直方向对齐的方式(top|middle|bottom)。\r\n * bold 粗体(暂不支持)\r\n * italic 斜体(暂不支持)\r\n * underline 下划线(暂不支持)\r\n\r\n", "name": "rich_text_t", "parent": "widget_t", "annotation": { @@ -31610,7 +32232,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建hscroll_label对象\n\n\n", + "desc": " 创建hscroll_label对象\r\n\r\n", "name": "hscroll_label_create", "return": { "type": "widget_t*", @@ -31633,7 +32255,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置lull。\n\n\n", + "desc": " 设置lull。\r\n\r\n", "name": "hscroll_label_set_lull", "return": { "type": "ret_t", @@ -31656,7 +32278,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置duration。\n\n\n", + "desc": " 设置duration。\r\n\r\n", "name": "hscroll_label_set_duration", "return": { "type": "ret_t", @@ -31679,7 +32301,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置only_focus。\n\n\n", + "desc": " 设置only_focus。\r\n\r\n", "name": "hscroll_label_set_only_focus", "return": { "type": "ret_t", @@ -31702,7 +32324,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置loop。\n\n\n", + "desc": " 设置loop。\r\n\r\n", "name": "hscroll_label_set_loop", "return": { "type": "ret_t", @@ -31725,7 +32347,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置yoyo。\n\n\n", + "desc": " 设置yoyo。\r\n\r\n", "name": "hscroll_label_set_yoyo", "return": { "type": "ret_t", @@ -31748,7 +32370,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置ellipses。\n\n\n", + "desc": " 设置ellipses。\r\n\r\n", "name": "hscroll_label_set_ellipses", "return": { "type": "ret_t", @@ -31771,7 +32393,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置x偏移(一般无需用户调用)。。\n\n\n", + "desc": " 设置x偏移(一般无需用户调用)。。\r\n\r\n", "name": "hscroll_label_set_xoffset", "return": { "type": "ret_t", @@ -31789,7 +32411,7 @@ "annotation": { "scriptable": true }, - "desc": " 启动(一般无需用户调用)。\n\n\n", + "desc": " 启动(一般无需用户调用)。\r\n\r\n", "name": "hscroll_label_start", "return": { "type": "ret_t", @@ -31807,7 +32429,7 @@ "annotation": { "scriptable": true }, - "desc": " 停止(一般无需用户调用)。\n\n\n", + "desc": " 停止(一般无需用户调用)。\r\n\r\n", "name": "hscroll_label_stop", "return": { "type": "ret_t", @@ -31826,7 +32448,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为hscroll_label对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为hscroll_label对象(供脚本语言使用)。\r\n\r\n", "name": "hscroll_label_cast", "return": { "type": "widget_t*", @@ -31838,7 +32460,7 @@ "properties": [ { "name": "only_focus", - "desc": " 只有处于focus时才滚动(缺省否)。\n\n", + "desc": " 只有处于focus时才滚动(缺省否)。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -31851,7 +32473,7 @@ }, { "name": "loop", - "desc": " loop是否循环滚动(缺省FALSE)。\n\n", + "desc": " loop是否循环滚动(缺省FALSE)。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -31864,7 +32486,7 @@ }, { "name": "yoyo", - "desc": " 是否往返滚动(缺省FALSE)。\n\n", + "desc": " 是否往返滚动(缺省FALSE)。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -31877,7 +32499,7 @@ }, { "name": "ellipses", - "desc": " 文本显示不下时,在行尾显示省略号(缺省FALSE)。\n\n", + "desc": " 文本显示不下时,在行尾显示省略号(缺省FALSE)。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -31890,7 +32512,7 @@ }, { "name": "lull", - "desc": " 滚动之间的间歇时间(ms),缺省3000ms。\n\n", + "desc": " 滚动之间的间歇时间(ms),缺省3000ms。\r\n", "type": "int32_t", "annotation": { "set_prop": true, @@ -31903,7 +32525,7 @@ }, { "name": "duration", - "desc": " 完整的滚动一次需要的时间(ms),缺省5000ms。\n\n", + "desc": " 完整的滚动一次需要的时间(ms),缺省5000ms。\r\n", "type": "int32_t", "annotation": { "set_prop": true, @@ -31914,7 +32536,7 @@ }, { "name": "xoffset", - "desc": " 偏移量。\n\n", + "desc": " 偏移量。\r\n", "type": "int32_t", "annotation": { "set_prop": true, @@ -31925,7 +32547,7 @@ }, { "name": "text_w", - "desc": " 文本的宽度。\n\n", + "desc": " 文本的宽度。\r\n", "type": "int32_t", "annotation": { "set_prop": true, @@ -31936,7 +32558,7 @@ } ], "header": "scroll_label/hscroll_label.h", - "desc": "\n 可水平滚动的文本控件,方便实现长文本滚动。\n\n\n hscroll\\_label\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于hscroll\\_label\\_t控件。\n\n 在xml中使用\"hscroll\\_label\"标签创建行号控件,一般配合mledit使用。如:\n\n ```xml\n ```\n\n > 更多用法请参考:[mledit.xml](\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\n\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\n\n ```xml\n \n ```\n\n > 更多用法请参考:\n [theme default](\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\n\n\n", + "desc": "\r\n 可水平滚动的文本控件,方便实现长文本滚动。\r\n\r\n\r\n hscroll\\_label\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于hscroll\\_label\\_t控件。\r\n\r\n 在xml中使用\"hscroll\\_label\"标签创建行号控件,一般配合mledit使用。如:\r\n\r\n ```xml\r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", "name": "hscroll_label_t", "parent": "widget_t", "annotation": { @@ -31946,30 +32568,6 @@ }, "level": 2 }, - { - "type": "class", - "methods": [ - { - "params": [], - "annotation": { - "constructor": true - }, - "desc": "\n 创建子控件布局对象。\n\n\n\n", - "name": "children_layouter_list_view_create", - "return": { - "type": "children_layouter_t*", - "desc": "返回创建子控件布局对象。" - } - } - ], - "events": [], - "properties": [], - "header": "scroll_view/children_layouter_list_view.h", - "desc": "\n listview的子控件布局算法实现。\n\n> 用法请参考:[listview子控件布局算法](\nhttps://github.com/zlgopen/awtk/blob/master/docs/children_layouter_list_view.md)\n\n\n", - "name": "children_layouter_list_view_t", - "parent": "children_layouter_t", - "level": 2 - }, { "type": "class", "methods": [ @@ -31986,7 +32584,7 @@ "scriptable": true, "gc": true }, - "desc": " 引用计数减1。引用计数为0时,销毁对象。\n\n\n\n", + "desc": " 引用计数减1。引用计数为0时,销毁对象。\r\n\r\n\r\n", "name": "object_unref", "return": { "type": "ret_t", @@ -32006,7 +32604,7 @@ "scriptable": true, "gc": true }, - "desc": " 引用计数加1。\n\n\n\n", + "desc": " 引用计数加1。\r\n\r\n\r\n", "name": "object_ref", "return": { "type": "object_t*", @@ -32022,7 +32620,7 @@ } ], "annotation": {}, - "desc": " 创建对象。\n\n > 仅供子类调用。\n\n\n\n", + "desc": " 创建对象。\r\n\r\n > 仅供子类调用。\r\n\r\n\r\n", "name": "object_create", "return": { "type": "ret_t", @@ -32040,7 +32638,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取对象的类型名称。\n\n\n\n", + "desc": " 获取对象的类型名称。\r\n\r\n\r\n", "name": "object_get_type", "return": { "type": "const char*", @@ -32058,7 +32656,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取对象的描述信息。\n\n\n\n", + "desc": " 获取对象的描述信息。\r\n\r\n\r\n", "name": "object_get_desc", "return": { "type": "const char*", @@ -32076,7 +32674,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取对象占用内存的大小。\n\n\n\n", + "desc": " 获取对象占用内存的大小。\r\n\r\n\r\n", "name": "object_get_size", "return": { "type": "uint32_t", @@ -32094,7 +32692,7 @@ "annotation": { "scriptable": true }, - "desc": " 判断对象是否是集合。\n\n\n\n", + "desc": " 判断对象是否是集合。\r\n\r\n\r\n", "name": "object_is_collection", "return": { "type": "bool_t", @@ -32117,7 +32715,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置对象的名称。\n\n\n\n", + "desc": " 设置对象的名称。\r\n\r\n\r\n", "name": "object_set_name", "return": { "type": "ret_t", @@ -32140,7 +32738,7 @@ "annotation": { "scriptable": true }, - "desc": " 比较两个对象。\n\n\n\n", + "desc": " 比较两个对象。\r\n\r\n\r\n", "name": "object_compare", "return": { "type": "int", @@ -32168,7 +32766,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的值。\n\n\n\n", + "desc": " 获取指定属性的值。\r\n\r\n\r\n", "name": "object_get_prop", "return": { "type": "ret_t", @@ -32191,7 +32789,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的字符串类型的值。\n\n\n\n", + "desc": " 获取指定属性的字符串类型的值。\r\n\r\n\r\n", "name": "object_get_prop_str", "return": { "type": "const char*", @@ -32214,7 +32812,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的指针类型的值。\n\n\n\n", + "desc": " 获取指定属性的指针类型的值。\r\n\r\n\r\n", "name": "object_get_prop_pointer", "return": { "type": "void*", @@ -32237,7 +32835,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的object类型的值。\n\n\n\n", + "desc": " 获取指定属性的object类型的值。\r\n\r\n\r\n", "name": "object_get_prop_object", "return": { "type": "object_t*", @@ -32265,7 +32863,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的整数类型的值。\n\n\n\n", + "desc": " 获取指定属性的整数类型的值。\r\n\r\n\r\n", "name": "object_get_prop_int", "return": { "type": "int32_t", @@ -32293,7 +32891,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的bool类型的值。\n\n\n\n", + "desc": " 获取指定属性的bool类型的值。\r\n\r\n\r\n", "name": "object_get_prop_bool", "return": { "type": "bool_t", @@ -32321,7 +32919,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的浮点数类型的值。\n\n\n\n", + "desc": " 获取指定属性的浮点数类型的值。\r\n\r\n\r\n", "name": "object_get_prop_float", "return": { "type": "float_t", @@ -32344,7 +32942,7 @@ "annotation": { "scriptable": true }, - "desc": " 删除指定属性。\n\n\n\n", + "desc": " 删除指定属性。\r\n\r\n\r\n", "name": "object_remove_prop", "return": { "type": "ret_t", @@ -32372,7 +32970,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定属性的值。\n\n\n\n", + "desc": " 设置指定属性的值。\r\n\r\n\r\n", "name": "object_set_prop", "return": { "type": "ret_t", @@ -32400,7 +32998,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定属性的字符串类型的值。\n\n\n\n", + "desc": " 设置指定属性的字符串类型的值。\r\n\r\n\r\n", "name": "object_set_prop_str", "return": { "type": "ret_t", @@ -32428,7 +33026,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定属性的指针类型的值。\n\n\n\n", + "desc": " 设置指定属性的指针类型的值。\r\n\r\n\r\n", "name": "object_set_prop_pointer", "return": { "type": "ret_t", @@ -32456,7 +33054,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定属性的object类型的值。\n\n\n\n", + "desc": " 设置指定属性的object类型的值。\r\n\r\n\r\n", "name": "object_set_prop_object", "return": { "type": "ret_t", @@ -32484,7 +33082,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定属性的整数类型的值。\n\n\n\n", + "desc": " 设置指定属性的整数类型的值。\r\n\r\n\r\n", "name": "object_set_prop_int", "return": { "type": "ret_t", @@ -32512,7 +33110,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定属性的bool类型的值。\n\n\n\n", + "desc": " 设置指定属性的bool类型的值。\r\n\r\n\r\n", "name": "object_set_prop_bool", "return": { "type": "ret_t", @@ -32540,7 +33138,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定属性的浮点数类型的值。\n\n\n\n", + "desc": " 设置指定属性的浮点数类型的值。\r\n\r\n\r\n", "name": "object_set_prop_float", "return": { "type": "ret_t", @@ -32568,7 +33166,7 @@ "annotation": { "scriptable": true }, - "desc": " 拷贝指定的属性。\n\n\n\n", + "desc": " 拷贝指定的属性。\r\n\r\n\r\n", "name": "object_copy_prop", "return": { "type": "ret_t", @@ -32596,7 +33194,7 @@ "annotation": { "scriptable": "custom" }, - "desc": " 遍历所有属性。\n\n\n\n", + "desc": " 遍历所有属性。\r\n\r\n\r\n", "name": "object_foreach_prop", "return": { "type": "ret_t", @@ -32619,7 +33217,7 @@ "annotation": { "scriptable": true }, - "desc": " 检查是否存在指定的属性。\n\n\n\n", + "desc": " 检查是否存在指定的属性。\r\n\r\n\r\n", "name": "object_has_prop", "return": { "type": "bool_t", @@ -32647,7 +33245,7 @@ "annotation": { "scriptable": true }, - "desc": " 计算一个表达式,表达式中引用的变量从prop中获取。\n\n\n\n", + "desc": " 计算一个表达式,表达式中引用的变量从prop中获取。\r\n\r\n\r\n", "name": "object_eval", "return": { "type": "ret_t", @@ -32675,7 +33273,7 @@ "annotation": { "scriptable": true }, - "desc": " 检查是否可以执行指定的命令。\n\n\n\n", + "desc": " 检查是否可以执行指定的命令。\r\n\r\n\r\n", "name": "object_can_exec", "return": { "type": "bool_t", @@ -32703,7 +33301,7 @@ "annotation": { "scriptable": true }, - "desc": " 执行指定的命令。\n\n\n", + "desc": " 执行指定的命令。\r\n\r\n", "name": "object_exec", "return": { "type": "ret_t", @@ -32721,7 +33319,7 @@ "annotation": { "scriptable": true }, - "desc": " 触发EVT_PROPS_CHANGED事件。\n\n\n\n", + "desc": " 触发EVT_PROPS_CHANGED事件。\r\n\r\n\r\n", "name": "object_notify_changed", "return": { "type": "ret_t", @@ -32747,7 +33345,7 @@ } ], "annotation": {}, - "desc": " 获取指定path属性的值。\n\n\n\n", + "desc": " 获取指定path属性的值。\r\n\r\n\r\n", "name": "object_get_prop_by_path", "return": { "type": "ret_t", @@ -32770,7 +33368,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的字符串类型的值。\n\n\n\n", + "desc": " 获取指定属性的字符串类型的值。\r\n\r\n\r\n", "name": "object_get_prop_str_by_path", "return": { "type": "const char*", @@ -32793,7 +33391,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的指针类型的值。\n\n\n\n", + "desc": " 获取指定属性的指针类型的值。\r\n\r\n\r\n", "name": "object_get_prop_pointer_by_path", "return": { "type": "void*", @@ -32816,7 +33414,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的object类型的值。\n\n\n\n", + "desc": " 获取指定属性的object类型的值。\r\n\r\n\r\n", "name": "object_get_prop_object_by_path", "return": { "type": "object_t*", @@ -32844,7 +33442,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的整数类型的值。\n\n\n\n", + "desc": " 获取指定属性的整数类型的值。\r\n\r\n\r\n", "name": "object_get_prop_int_by_path", "return": { "type": "int32_t", @@ -32872,7 +33470,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的bool类型的值。\n\n\n\n", + "desc": " 获取指定属性的bool类型的值。\r\n\r\n\r\n", "name": "object_get_prop_bool_by_path", "return": { "type": "bool_t", @@ -32900,7 +33498,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定属性的浮点数类型的值。\n\n\n\n", + "desc": " 获取指定属性的浮点数类型的值。\r\n\r\n\r\n", "name": "object_get_prop_float_by_path", "return": { "type": "float_t", @@ -32912,7 +33510,7 @@ "properties": [ { "name": "ref_count", - "desc": " 引用计数。\n\n", + "desc": " 引用计数。\r\n", "type": "int32_t", "annotation": { "readable": true, @@ -32921,7 +33519,7 @@ }, { "name": "name", - "desc": " 对象的名称。\n\n", + "desc": " 对象的名称。\r\n", "type": "char*", "annotation": { "readable": true, @@ -32930,7 +33528,7 @@ } ], "header": "tkc/object.h", - "desc": "\n 对象接口。\n\n\n", + "desc": "\r\n 对象接口。\r\n\r\n", "name": "object_t", "parent": "emitter_t", "annotation": { @@ -32938,6 +33536,30 @@ }, "level": 2 }, + { + "type": "class", + "methods": [ + { + "params": [], + "annotation": { + "constructor": true + }, + "desc": "\r\n 创建子控件布局对象。\r\n\r\n\r\n", + "name": "children_layouter_list_view_create", + "return": { + "type": "children_layouter_t*", + "desc": "返回创建子控件布局对象。" + } + } + ], + "events": [], + "properties": [], + "header": "scroll_view/children_layouter_list_view.h", + "desc": "\r\n listview的子控件布局算法实现。\r\n\r\n> 用法请参考:[listview子控件布局算法](\r\nhttps://github.com/zlgopen/awtk/blob/master/docs/children_layouter_list_view.md)\r\n\r\n", + "name": "children_layouter_list_view_t", + "parent": "children_layouter_t", + "level": 2 + }, { "type": "class", "methods": [ @@ -34230,7 +34852,7 @@ "cast": true, "scriptable": true }, - "desc": " 把event对象转key_event_t对象,主要给脚本语言使用。\n\n\n", + "desc": " 把event对象转key_event_t对象,主要给脚本语言使用。\r\n\r\n", "name": "key_event_cast", "return": { "type": "key_event_t*", @@ -34261,7 +34883,7 @@ } ], "annotation": {}, - "desc": " 初始化事件。\n\n\n", + "desc": " 初始化事件。\r\n\r\n", "name": "key_event_init", "return": { "type": "event_t*", @@ -34273,7 +34895,7 @@ "properties": [ { "name": "key", - "desc": " 键值。\n\n", + "desc": " 键值。\r\n", "type": "uint32_t", "annotation": { "readable": true, @@ -34282,7 +34904,7 @@ }, { "name": "alt", - "desc": " alt键是否按下。\n\n", + "desc": " alt键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34291,7 +34913,7 @@ }, { "name": "lalt", - "desc": " left alt键是否按下。\n\n", + "desc": " left alt键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34300,7 +34922,7 @@ }, { "name": "ralt", - "desc": " right alt键是否按下。\n\n", + "desc": " right alt键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34309,7 +34931,7 @@ }, { "name": "ctrl", - "desc": " right alt键是否按下。\n ctrl键是否按下。\n\n", + "desc": " right alt键是否按下。\r\n ctrl键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34318,7 +34940,7 @@ }, { "name": "lctrl", - "desc": " left ctrl键是否按下。\n\n", + "desc": " left ctrl键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34327,7 +34949,7 @@ }, { "name": "rctrl", - "desc": " right ctrl键是否按下。\n\n", + "desc": " right ctrl键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34336,7 +34958,7 @@ }, { "name": "shift", - "desc": " shift键是否按下。\n\n", + "desc": " shift键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34345,7 +34967,7 @@ }, { "name": "lshift", - "desc": " left shift键是否按下。\n\n", + "desc": " left shift键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34354,7 +34976,7 @@ }, { "name": "rshift", - "desc": " right shift键是否按下。\n\n", + "desc": " right shift键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34363,7 +34985,7 @@ }, { "name": "cmd", - "desc": " left shift键是否按下。\n cmd/win键是否按下。\n\n", + "desc": " left shift键是否按下。\r\n cmd/win键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34372,7 +34994,7 @@ }, { "name": "menu", - "desc": " menu键是否按下。\n\n", + "desc": " menu键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34381,7 +35003,7 @@ }, { "name": "capslock", - "desc": " capslock键是否按下。\n\n", + "desc": " capslock键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -34390,7 +35012,7 @@ } ], "header": "base/events.h", - "desc": " 按键事件。\n\n", + "desc": " 按键事件。\r\n", "name": "key_event_t", "annotation": { "scriptable": true @@ -34433,7 +35055,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建slide_indicator对象\n\n\n", + "desc": " 创建slide_indicator对象\r\n\r\n", "name": "slide_indicator_create", "return": { "type": "widget_t*", @@ -34472,7 +35094,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建slide_indicator对象(线性显示)\n\n\n", + "desc": " 创建slide_indicator对象(线性显示)\r\n\r\n", "name": "slide_indicator_create_linear", "return": { "type": "widget_t*", @@ -34511,7 +35133,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建slide_indicator对象(圆弧显示)\n\n\n", + "desc": " 创建slide_indicator对象(圆弧显示)\r\n\r\n", "name": "slide_indicator_create_arc", "return": { "type": "widget_t*", @@ -34530,7 +35152,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为slide_indicator对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为slide_indicator对象(供脚本语言使用)。\r\n\r\n", "name": "slide_indicator_cast", "return": { "type": "widget_t*", @@ -34553,7 +35175,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置当前页的序号。\n\n\n", + "desc": " 设置当前页的序号。\r\n\r\n", "name": "slide_indicator_set_value", "return": { "type": "ret_t", @@ -34576,7 +35198,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指示器的数量。\n\n\n", + "desc": " 设置指示器的数量。\r\n\r\n", "name": "slide_indicator_set_max", "return": { "type": "ret_t", @@ -34599,7 +35221,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指示器的默认绘制类型。\n\n\n", + "desc": " 设置指示器的默认绘制类型。\r\n\r\n", "name": "slide_indicator_set_default_paint", "return": { "type": "ret_t", @@ -34622,7 +35244,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指示器是否自动隐藏。\n\n\n", + "desc": " 设置指示器是否自动隐藏。\r\n\r\n", "name": "slide_indicator_set_auto_hide", "return": { "type": "ret_t", @@ -34645,7 +35267,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指示器的边距(默认为10像素)。\n\n\n", + "desc": " 设置指示器的边距(默认为10像素)。\r\n\r\n", "name": "slide_indicator_set_margin", "return": { "type": "ret_t", @@ -34668,7 +35290,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指示器的间距(指示器有弧度时为角度值,否则为直线间距)。\n\n\n", + "desc": " 设置指示器的间距(指示器有弧度时为角度值,否则为直线间距)。\r\n\r\n", "name": "slide_indicator_set_spacing", "return": { "type": "ret_t", @@ -34691,7 +35313,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指示器的大小(默认为8)。\n\n\n", + "desc": " 设置指示器的大小(默认为8)。\r\n\r\n", "name": "slide_indicator_set_size", "return": { "type": "ret_t", @@ -34719,7 +35341,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置旋转锚点。\n\n\n", + "desc": " 设置旋转锚点。\r\n\r\n", "name": "slide_indicator_set_anchor", "return": { "type": "ret_t", @@ -34742,7 +35364,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指示器指示的目标。\n\n\n", + "desc": " 设置指示器指示的目标。\r\n\r\n", "name": "slide_indicator_set_indicated_target", "return": { "type": "ret_t", @@ -34754,7 +35376,7 @@ "properties": [ { "name": "value", - "desc": " 值(缺省为0)。\n\n", + "desc": " 值(缺省为0)。\r\n", "type": "uint32_t", "annotation": { "set_prop": true, @@ -34767,7 +35389,7 @@ }, { "name": "max", - "desc": " 最大值(缺省为100)。\n\n", + "desc": " 最大值(缺省为100)。\r\n", "type": "uint32_t", "annotation": { "set_prop": true, @@ -34780,7 +35402,7 @@ }, { "name": "default_paint", - "desc": " 指示器的类型。\n\n", + "desc": " 指示器的类型。\r\n", "type": "indicator_default_paint_t", "annotation": { "set_prop": true, @@ -34793,7 +35415,7 @@ }, { "name": "auto_hide", - "desc": " 自动隐藏。0表示禁止,非0表示无操作后延迟多久隐藏。\n\n", + "desc": " 自动隐藏。0表示禁止,非0表示无操作后延迟多久隐藏。\r\n", "type": "uint16_t", "annotation": { "set_prop": true, @@ -34806,7 +35428,7 @@ }, { "name": "margin", - "desc": " 指示器与边缘的边距。\n\n", + "desc": " 指示器与边缘的边距。\r\n", "type": "int32_t", "annotation": { "set_prop": true, @@ -34819,7 +35441,7 @@ }, { "name": "spacing", - "desc": " 指示器的中心之间的间距(圆弧显示时,间距的单位为弧度,否则为像素)。\n\n", + "desc": " 指示器的中心之间的间距(圆弧显示时,间距的单位为弧度,否则为像素)。\r\n", "type": "float_t", "annotation": { "set_prop": true, @@ -34832,7 +35454,7 @@ }, { "name": "size", - "desc": " 指示器的大小。\n\n", + "desc": " 指示器的大小。\r\n", "type": "uint32_t", "annotation": { "set_prop": true, @@ -34845,7 +35467,7 @@ }, { "name": "anchor_x", - "desc": " 锚点x坐标。\n\n", + "desc": " 锚点x坐标。\r\n", "type": "float_t", "annotation": { "set_prop": true, @@ -34858,7 +35480,7 @@ }, { "name": "anchor_y", - "desc": " 锚点y坐标。\n\n", + "desc": " 锚点y坐标。\r\n", "type": "float_t", "annotation": { "set_prop": true, @@ -34871,7 +35493,7 @@ }, { "name": "indicated_target", - "desc": " 指示器指示的目标。\n\n", + "desc": " 指示器指示的目标。\r\n", "type": "char*", "annotation": { "set_prop": true, @@ -34884,7 +35506,7 @@ } ], "header": "slide_view/slide_indicator.h", - "desc": " slide_view的指示器控件。\n\n> 支持直线、弧线排布,默认有4种绘制样式,若设置了icon/active_icon,则优先使用icon/active_icon\n\n slide\\_indicator\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于slide\\_indicator\\_t控件。\n\n 在xml中使用\"slide\\_indicator\"或\"slide\\_indicator\\_arc\"标签创建指示器控件。如:\n\n ```xml\n \n ...\n \n \n ```\n\n > 更多用法请参考:[slide\\_view.xml](\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml)\n\n 在c代码中使用函数slide\\_indicator\\_create创建指示器控件。如:\n\n ```c\n widget_t* slide_indicator = slide_indicator_create(parent, 0, 0, 0, 0);\n ```\n\n ```xml\n \n ```\n\n > 更多用法请参考:[theme default](\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L350)\n\n\n", + "desc": " slide_view的指示器控件。\r\n\r\n> 支持直线、弧线排布,默认有4种绘制样式,若设置了icon/active_icon,则优先使用icon/active_icon\r\n\r\n slide\\_indicator\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于slide\\_indicator\\_t控件。\r\n\r\n 在xml中使用\"slide\\_indicator\"或\"slide\\_indicator\\_arc\"标签创建指示器控件。如:\r\n\r\n ```xml\r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[slide\\_view.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml)\r\n\r\n 在c代码中使用函数slide\\_indicator\\_create创建指示器控件。如:\r\n\r\n ```c\r\n widget_t* slide_indicator = slide_indicator_create(parent, 0, 0, 0, 0);\r\n ```\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L350)\r\n\r\n", "name": "slide_indicator_t", "parent": "widget_t", "annotation": { @@ -36317,33 +36939,6 @@ }, "level": 2 }, - { - "type": "class", - "methods": [ - { - "params": [], - "annotation": { - "constructor": true - }, - "desc": "\n 获取bitmap字体加载器对象。\n\n\n", - "name": "font_loader_bitmap", - "return": { - "type": "font_loader_t*", - "desc": "返回字体加载器对象。" - } - } - ], - "events": [], - "properties": [], - "header": "font_loader/font_loader_bitmap.h", - "desc": " bitmap字体加载器。\n\n bitmap字体是用工具预先生成位图字体数据,优势是速度快,不占用内存,缺点是字体大小固定。\n 适合低端嵌入式平台。\n\n tools/font_gen用于把矢量字体(如truetype)转换成位图字体。\n\n\n\n", - "name": "font_loader_bitmap_t", - "parent": "font_loader_t", - "annotation": { - "fake": true - }, - "level": 2 - }, { "type": "class", "methods": [], @@ -36351,7 +36946,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "int8_t", "annotation": { "readable": true @@ -36359,7 +36954,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "int8_t", "annotation": { "readable": true @@ -36367,7 +36962,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "int8_t", "annotation": { "readable": true @@ -36375,7 +36970,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "int8_t", "annotation": { "readable": true @@ -36383,7 +36978,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36391,7 +36986,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 有符号8位整数类型属性描述。\n\n", + "desc": " 有符号8位整数类型属性描述。\r\n", "name": "value_desc_int8_t", "parent": "value_desc_t", "level": 2 @@ -36403,7 +36998,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "uint8_t", "annotation": { "readable": true @@ -36411,7 +37006,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "uint8_t", "annotation": { "readable": true @@ -36419,7 +37014,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "uint8_t", "annotation": { "readable": true @@ -36427,7 +37022,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "uint8_t", "annotation": { "readable": true @@ -36435,7 +37030,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36443,7 +37038,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 无符号8位整数类型属性描述。\n\n", + "desc": " 无符号8位整数类型属性描述。\r\n", "name": "value_desc_uint8_t", "parent": "value_desc_t", "level": 2 @@ -36455,7 +37050,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "int16_t", "annotation": { "readable": true @@ -36463,7 +37058,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "int16_t", "annotation": { "readable": true @@ -36471,7 +37066,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "int16_t", "annotation": { "readable": true @@ -36479,7 +37074,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "int16_t", "annotation": { "readable": true @@ -36487,7 +37082,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36495,7 +37090,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 有符号16位整数类型属性描述。\n\n", + "desc": " 有符号16位整数类型属性描述。\r\n", "name": "value_desc_int16_t", "parent": "value_desc_t", "level": 2 @@ -36507,7 +37102,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "uint16_t", "annotation": { "readable": true @@ -36515,7 +37110,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "uint16_t", "annotation": { "readable": true @@ -36523,7 +37118,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "uint16_t", "annotation": { "readable": true @@ -36531,7 +37126,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "uint16_t", "annotation": { "readable": true @@ -36539,7 +37134,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36547,7 +37142,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 无符号16位整数类型属性描述。\n\n", + "desc": " 无符号16位整数类型属性描述。\r\n", "name": "value_desc_uint16_t", "parent": "value_desc_t", "level": 2 @@ -36559,7 +37154,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "int32_t", "annotation": { "readable": true @@ -36567,7 +37162,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "int32_t", "annotation": { "readable": true @@ -36575,7 +37170,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "int32_t", "annotation": { "readable": true @@ -36583,7 +37178,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "int32_t", "annotation": { "readable": true @@ -36591,7 +37186,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36599,7 +37194,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 有符号32位整数类型属性描述。\n\n", + "desc": " 有符号32位整数类型属性描述。\r\n", "name": "value_desc_int32_t", "parent": "value_desc_t", "level": 2 @@ -36611,7 +37206,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -36619,7 +37214,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -36627,7 +37222,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -36635,7 +37230,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -36643,7 +37238,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36651,7 +37246,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 无符号32位整数类型属性描述。\n\n", + "desc": " 无符号32位整数类型属性描述。\r\n", "name": "value_desc_uint32_t", "parent": "value_desc_t", "level": 2 @@ -36663,7 +37258,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "int64_t", "annotation": { "readable": true @@ -36671,7 +37266,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "int64_t", "annotation": { "readable": true @@ -36679,7 +37274,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "int64_t", "annotation": { "readable": true @@ -36687,7 +37282,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "int64_t", "annotation": { "readable": true @@ -36695,7 +37290,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36703,7 +37298,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 有符号64位整数类型属性描述。\n\n", + "desc": " 有符号64位整数类型属性描述。\r\n", "name": "value_desc_int64_t", "parent": "value_desc_t", "level": 2 @@ -36715,7 +37310,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "uint64_t", "annotation": { "readable": true @@ -36723,7 +37318,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "uint64_t", "annotation": { "readable": true @@ -36731,7 +37326,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "uint64_t", "annotation": { "readable": true @@ -36739,7 +37334,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "uint64_t", "annotation": { "readable": true @@ -36747,7 +37342,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36755,7 +37350,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 无符号64位整数类型属性描述。\n\n", + "desc": " 无符号64位整数类型属性描述。\r\n", "name": "value_desc_uint64_t", "parent": "value_desc_t", "level": 2 @@ -36767,7 +37362,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "float", "annotation": { "readable": true @@ -36775,7 +37370,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "float", "annotation": { "readable": true @@ -36783,7 +37378,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "float", "annotation": { "readable": true @@ -36791,7 +37386,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "float_t", "annotation": { "readable": true @@ -36799,7 +37394,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36807,7 +37402,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 单精度浮点数类型属性描述。\n\n", + "desc": " 单精度浮点数类型属性描述。\r\n", "name": "value_desc_float_t", "parent": "value_desc_t", "level": 2 @@ -36819,7 +37414,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "double", "annotation": { "readable": true @@ -36827,7 +37422,7 @@ }, { "name": "min", - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "type": "double", "annotation": { "readable": true @@ -36835,7 +37430,7 @@ }, { "name": "max", - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "type": "double", "annotation": { "readable": true @@ -36843,7 +37438,7 @@ }, { "name": "step", - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "type": "double_t", "annotation": { "readable": true @@ -36851,7 +37446,7 @@ }, { "name": "unit", - "desc": " 单位。\n\n", + "desc": " 单位。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36859,7 +37454,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 单精度浮点数类型属性描述。\n\n", + "desc": " 单精度浮点数类型属性描述。\r\n", "name": "value_desc_double_t", "parent": "value_desc_t", "level": 2 @@ -36871,7 +37466,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -36879,7 +37474,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 布尔类型属性描述。\n\n", + "desc": " 布尔类型属性描述。\r\n", "name": "value_desc_bool_t", "parent": "value_desc_t", "level": 2 @@ -36891,7 +37486,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "const char*", "annotation": { "readable": true @@ -36899,7 +37494,7 @@ }, { "name": "min", - "desc": " 最小长度。\n\n", + "desc": " 最小长度。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -36907,7 +37502,7 @@ }, { "name": "max", - "desc": " 最大长度。\n\n", + "desc": " 最大长度。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -36915,7 +37510,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 字符串类型属性描述。\n\n", + "desc": " 字符串类型属性描述。\r\n", "name": "value_desc_string_t", "parent": "value_desc_t", "level": 2 @@ -36927,7 +37522,7 @@ "properties": [ { "name": "min", - "desc": " 最小长度。\n\n", + "desc": " 最小长度。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -36935,7 +37530,7 @@ }, { "name": "max", - "desc": " 最大长度。\n\n", + "desc": " 最大长度。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -36943,7 +37538,7 @@ } ], "header": "tkc/value_desc.h", - "desc": " 二进制类型属性描述。\n\n", + "desc": " 二进制类型属性描述。\r\n", "name": "value_desc_binary_t", "parent": "value_desc_t", "level": 2 @@ -36955,7 +37550,7 @@ "properties": [ { "name": "defvalue", - "desc": " 缺省值。\n\n", + "desc": " 缺省值。\r\n", "type": "int32_t", "annotation": { "readable": true @@ -36963,7 +37558,7 @@ }, { "name": "enums", - "desc": " 枚举值(每一项用英文冒号分隔值和名称)。\n\n", + "desc": " 枚举值(每一项用英文冒号分隔值和名称)。\r\n", "type": "const char**", "annotation": { "readable": true @@ -36971,11 +37566,38 @@ } ], "header": "tkc/value_desc.h", - "desc": " 整数枚举类型属性描述。\n\n", + "desc": " 整数枚举类型属性描述。\r\n", "name": "value_desc_int_enums_t", "parent": "value_desc_t", "level": 2 }, + { + "type": "class", + "methods": [ + { + "params": [], + "annotation": { + "constructor": true + }, + "desc": "\r\n 获取bitmap字体加载器对象。\r\n\r\n", + "name": "font_loader_bitmap", + "return": { + "type": "font_loader_t*", + "desc": "返回字体加载器对象。" + } + } + ], + "events": [], + "properties": [], + "header": "font_loader/font_loader_bitmap.h", + "desc": " bitmap字体加载器。\r\n\r\n bitmap字体是用工具预先生成位图字体数据,优势是速度快,不占用内存,缺点是字体大小固定。\r\n 适合低端嵌入式平台。\r\n\r\n tools/font_gen用于把矢量字体(如truetype)转换成位图字体。\r\n\r\n\r\n", + "name": "font_loader_bitmap_t", + "parent": "font_loader_t", + "annotation": { + "fake": true + }, + "level": 2 + }, { "type": "class", "methods": [ @@ -36991,7 +37613,7 @@ "cast": true, "scriptable": true }, - "desc": " 把event对象转paint_event_t对象。主要给脚本语言使用。\n\n\n", + "desc": " 把event对象转paint_event_t对象。主要给脚本语言使用。\r\n\r\n", "name": "paint_event_cast", "return": { "type": "paint_event_t*", @@ -37022,7 +37644,7 @@ } ], "annotation": {}, - "desc": " 初始化事件。\n\n\n", + "desc": " 初始化事件。\r\n\r\n", "name": "paint_event_init", "return": { "type": "event_t*", @@ -37034,7 +37656,7 @@ "properties": [ { "name": "c", - "desc": " canvas。\n\n", + "desc": " canvas。\r\n", "type": "canvas_t*", "annotation": { "readable": true, @@ -37043,7 +37665,7 @@ } ], "header": "base/events.h", - "desc": " 绘制事件。\n\n", + "desc": " 绘制事件。\r\n", "name": "paint_event_t", "annotation": { "scriptable": true @@ -37059,7 +37681,7 @@ "annotation": { "constructor": true }, - "desc": "\n 获取stb字体加载器对象。\n\n\n", + "desc": "\r\n 获取stb字体加载器对象。\r\n\r\n", "name": "font_loader_stb", "return": { "type": "font_loader_t*", @@ -37070,7 +37692,7 @@ "events": [], "properties": [], "header": "font_loader/font_loader_stb.h", - "desc": " stb字体加载器。\n\n stb主要用于加载矢量字体(如truetype),它功能强大,体积小巧。\n\n\n\n", + "desc": " stb字体加载器。\r\n\r\n stb主要用于加载矢量字体(如truetype),它功能强大,体积小巧。\r\n\r\n\r\n", "name": "font_loader_stb_t", "parent": "font_loader_t", "annotation": { @@ -37086,7 +37708,7 @@ "annotation": { "constructor": true }, - "desc": "\n 获取stb图片加载器对象。\n\n\n", + "desc": "\r\n 获取stb图片加载器对象。\r\n\r\n", "name": "image_loader_stb", "return": { "type": "image_loader_t*", @@ -37097,7 +37719,7 @@ "events": [], "properties": [], "header": "image_loader/image_loader_stb.h", - "desc": " stb图片加载器。\n\n stb主要用于加载jpg/png/gif等格式的图片,它功能强大,体积小巧。\n\n\n\n", + "desc": " stb图片加载器。\r\n\r\n stb主要用于加载jpg/png/gif等格式的图片,它功能强大,体积小巧。\r\n\r\n\r\n", "name": "image_loader_stb_t", "parent": "image_loader_t", "annotation": { @@ -37105,6 +37727,163 @@ }, "level": 2 }, + { + "type": "class", + "methods": [ + { + "params": [ + { + "type": "ui_binary_writer_t*", + "name": "writer", + "desc": "writer对象。" + }, + { + "type": "wbuffer_t*", + "name": "wbuffer", + "desc": "保存结果的buffer。" + } + ], + "annotation": { + "constructor": true + }, + "desc": "\r\n 初始化ui\\_binary\\_writer对象。\r\n\r\n\r\n", + "name": "ui_binary_writer_init", + "return": { + "type": "ui_builder_t*", + "desc": "返回ui\\_builder对象。" + } + } + ], + "events": [], + "properties": [], + "header": "ui_loader/ui_binary_writer.h", + "desc": "\r\n 生成二进制格式的UI描述数据。\r\n\r\n", + "name": "ui_binary_writer_t", + "parent": "ui_builder_t", + "level": 2 + }, + { + "type": "class", + "methods": [ + { + "params": [ + { + "type": "const char*", + "name": "name", + "desc": "窗口的缺省名称。" + } + ], + "annotation": { + "constructor": true + }, + "desc": "\r\n 获取缺省的ui\\_builder对象。\r\n\r\n\r\n", + "name": "ui_builder_default", + "return": { + "type": "ui_builder_t*", + "desc": "返回ui\\_builder对象。" + } + } + ], + "events": [], + "properties": [], + "header": "ui_loader/ui_builder_default.h", + "desc": "\r\n\r\n 构建widget树。\r\n\r\n", + "name": "ui_builder_default_t", + "parent": "ui_builder_t", + "annotation": { + "fake": true + }, + "level": 2 + }, + { + "type": "class", + "methods": [ + { + "params": [], + "annotation": { + "constructor": true + }, + "desc": "\r\n 获取二进制格式格式的UI资源加载器对象。\r\n\r\n\r\n", + "name": "default_ui_loader", + "return": { + "type": "ui_loader_t*", + "desc": "返回UI加载器对象。" + } + } + ], + "events": [], + "properties": [], + "header": "ui_loader/ui_loader_default.h", + "desc": "\r\n 二进制格式的UI资源加载器。\r\n\r\n\r\n", + "name": "ui_loader_default_t", + "parent": "ui_loader_t", + "annotation": { + "fake": true + }, + "level": 2 + }, + { + "type": "class", + "methods": [ + { + "params": [], + "annotation": { + "constructor": true + }, + "desc": "\r\n 获取XML格式的UI资源加载器对象。\r\n\r\n\r\n", + "name": "xml_ui_loader", + "return": { + "type": "ui_loader_t*", + "desc": "返回UI加载器对象。" + } + } + ], + "events": [], + "properties": [], + "header": "ui_loader/ui_loader_xml.h", + "desc": "\r\n XML格式的UI资源加载器。\r\n\r\n\r\n", + "name": "ui_loader_xml_t", + "parent": "ui_loader_t", + "annotation": { + "fake": true + }, + "level": 2 + }, + { + "type": "class", + "methods": [ + { + "params": [ + { + "type": "ui_xml_writer_t*", + "name": "writer", + "desc": "writer对象。" + }, + { + "type": "str_t*", + "name": "str", + "desc": "保存结果的str。" + } + ], + "annotation": { + "constructor": true + }, + "desc": "\r\n 初始化ui\\_xml\\_writer对象。\r\n\r\n\r\n", + "name": "ui_xml_writer_init", + "return": { + "type": "ui_builder_t*", + "desc": "返回ui\\_builder对象。" + } + } + ], + "events": [], + "properties": [], + "header": "ui_loader/ui_xml_writer.h", + "desc": "\r\n 生成XML格式的UI描述数据。\r\n\r\n", + "name": "ui_xml_writer_t", + "parent": "ui_builder_t", + "level": 2 + }, { "type": "class", "methods": [ @@ -37113,7 +37892,7 @@ "annotation": { "constructor": true }, - "desc": "\n 创建空输入法引擎对象。\n\n\n\n", + "desc": "\r\n 创建空输入法引擎对象。\r\n\r\n\r\n", "name": "input_engine_create", "return": { "type": "input_engine_t*", @@ -37124,7 +37903,7 @@ "events": [], "properties": [], "header": "input_engines/input_engine_null.h", - "desc": "\n 空输入法引擎实现。\n\n 缺省输入法可以选择启用软键盘,但不启用具体的输入法引擎,此时可以选择空输入法引擎实现。\n\n\n\n", + "desc": "\r\n 空输入法引擎实现。\r\n\r\n 缺省输入法可以选择启用软键盘,但不启用具体的输入法引擎,此时可以选择空输入法引擎实现。\r\n\r\n\r\n", "name": "input_engine_null_t", "parent": "input_engine_t", "annotation": { @@ -37132,163 +37911,6 @@ }, "level": 2 }, - { - "type": "class", - "methods": [ - { - "params": [ - { - "type": "ui_binary_writer_t*", - "name": "writer", - "desc": "writer对象。" - }, - { - "type": "wbuffer_t*", - "name": "wbuffer", - "desc": "保存结果的buffer。" - } - ], - "annotation": { - "constructor": true - }, - "desc": "\n 初始化ui\\_binary\\_writer对象。\n\n\n\n", - "name": "ui_binary_writer_init", - "return": { - "type": "ui_builder_t*", - "desc": "返回ui\\_builder对象。" - } - } - ], - "events": [], - "properties": [], - "header": "ui_loader/ui_binary_writer.h", - "desc": "\n 生成二进制格式的UI描述数据。\n\n\n", - "name": "ui_binary_writer_t", - "parent": "ui_builder_t", - "level": 2 - }, - { - "type": "class", - "methods": [ - { - "params": [ - { - "type": "const char*", - "name": "name", - "desc": "窗口的缺省名称。" - } - ], - "annotation": { - "constructor": true - }, - "desc": "\n 获取缺省的ui\\_builder对象。\n\n\n\n", - "name": "ui_builder_default", - "return": { - "type": "ui_builder_t*", - "desc": "返回ui\\_builder对象。" - } - } - ], - "events": [], - "properties": [], - "header": "ui_loader/ui_builder_default.h", - "desc": "\n\n 构建widget树。\n\n\n", - "name": "ui_builder_default_t", - "parent": "ui_builder_t", - "annotation": { - "fake": true - }, - "level": 2 - }, - { - "type": "class", - "methods": [ - { - "params": [], - "annotation": { - "constructor": true - }, - "desc": "\n 获取二进制格式格式的UI资源加载器对象。\n\n\n\n", - "name": "default_ui_loader", - "return": { - "type": "ui_loader_t*", - "desc": "返回UI加载器对象。" - } - } - ], - "events": [], - "properties": [], - "header": "ui_loader/ui_loader_default.h", - "desc": "\n 二进制格式的UI资源加载器。\n\n\n\n", - "name": "ui_loader_default_t", - "parent": "ui_loader_t", - "annotation": { - "fake": true - }, - "level": 2 - }, - { - "type": "class", - "methods": [ - { - "params": [], - "annotation": { - "constructor": true - }, - "desc": "\n 获取XML格式的UI资源加载器对象。\n\n\n\n", - "name": "xml_ui_loader", - "return": { - "type": "ui_loader_t*", - "desc": "返回UI加载器对象。" - } - } - ], - "events": [], - "properties": [], - "header": "ui_loader/ui_loader_xml.h", - "desc": "\n XML格式的UI资源加载器。\n\n\n\n", - "name": "ui_loader_xml_t", - "parent": "ui_loader_t", - "annotation": { - "fake": true - }, - "level": 2 - }, - { - "type": "class", - "methods": [ - { - "params": [ - { - "type": "ui_xml_writer_t*", - "name": "writer", - "desc": "writer对象。" - }, - { - "type": "str_t*", - "name": "str", - "desc": "保存结果的str。" - } - ], - "annotation": { - "constructor": true - }, - "desc": "\n 初始化ui\\_xml\\_writer对象。\n\n\n\n", - "name": "ui_xml_writer_init", - "return": { - "type": "ui_builder_t*", - "desc": "返回ui\\_builder对象。" - } - } - ], - "events": [], - "properties": [], - "header": "ui_loader/ui_xml_writer.h", - "desc": "\n 生成XML格式的UI描述数据。\n\n\n", - "name": "ui_xml_writer_t", - "parent": "ui_builder_t", - "level": 2 - }, { "type": "class", "methods": [ @@ -37297,7 +37919,7 @@ "annotation": { "constructor": true }, - "desc": "\n 创建拼音输入法引擎对象。\n\n\n\n", + "desc": "\r\n 创建拼音输入法引擎对象。\r\n\r\n\r\n", "name": "input_engine_create", "return": { "type": "input_engine_t*", @@ -37308,7 +37930,7 @@ "events": [], "properties": [], "header": "input_engines/input_engine_pinyin.h", - "desc": "\n 拼音输入法引擎实现。\n\n 基于谷歌拼音输入法实现。\n\n\n\n", + "desc": "\r\n 拼音输入法引擎实现。\r\n\r\n 基于谷歌拼音输入法实现。\r\n\r\n\r\n", "name": "input_engine_pinyin_t", "parent": "input_engine_t", "annotation": { @@ -37324,7 +37946,7 @@ "annotation": { "constructor": true }, - "desc": "\n 创建缺省输入法对象。\n\n\n\n", + "desc": "\r\n 创建缺省输入法对象。\r\n\r\n\r\n", "name": "input_method_default_create", "return": { "type": "input_method_t*", @@ -37335,7 +37957,7 @@ "events": [], "properties": [], "header": "input_methods/input_method_default.h", - "desc": "\n 缺省输入法实现。输入法会启用软键盘,但是开发者可以自定义输入法引擎。\n\n 目前可以选择不启用输入法引擎或启用拼音输入法引擎。\n\n 开发者也可以开发手写输入法或语音输入法,如果实现时遇到问题可以和我们交流。\n\n\n\n", + "desc": "\r\n 缺省输入法实现。输入法会启用软键盘,但是开发者可以自定义输入法引擎。\r\n\r\n 目前可以选择不启用输入法引擎或启用拼音输入法引擎。\r\n\r\n 开发者也可以开发手写输入法或语音输入法,如果实现时遇到问题可以和我们交流。\r\n\r\n\r\n", "name": "input_method_default_t", "parent": "input_method_t", "annotation": { @@ -37343,33 +37965,6 @@ }, "level": 2 }, - { - "type": "class", - "methods": [ - { - "params": [], - "annotation": { - "constructor": true - }, - "desc": "\n 创建空输入法对象。\n\n\n\n", - "name": "input_method_null_create", - "return": { - "type": "input_method_t*", - "desc": "返回输入法对象。" - } - } - ], - "events": [], - "properties": [], - "header": "input_methods/input_method_null.h", - "desc": "\n 空输入法实现。\n\n 在不需要输入法的嵌入式平台使用空的输入法。\n\n\n\n", - "name": "input_method_null_t", - "parent": "input_method_t", - "annotation": { - "fake": true - }, - "level": 2 - }, { "type": "class", "methods": [ @@ -39012,7 +39607,7 @@ } ], "annotation": {}, - "desc": "\n 写入数据。\n\n\n\n\n", + "desc": "\r\n 写入数据。\r\n\r\n\r\n\r\n", "name": "tk_ostream_write", "return": { "type": "int32_t", @@ -39033,7 +39628,7 @@ } ], "annotation": {}, - "desc": "\n 设置偏移量。\n\n\n\n\n", + "desc": "\r\n 设置偏移量。\r\n\r\n\r\n\r\n", "name": "tk_ostream_seek", "return": { "type": "ret_t", @@ -39064,7 +39659,7 @@ } ], "annotation": {}, - "desc": "\n 写入指定长度的数据。\n\n\n\n\n", + "desc": "\r\n 写入指定长度的数据。\r\n\r\n\r\n\r\n", "name": "tk_ostream_write_len", "return": { "type": "int32_t", @@ -39085,7 +39680,7 @@ } ], "annotation": {}, - "desc": "\n 写入一个字节的数据。\n\n\n\n\n", + "desc": "\r\n 写入一个字节的数据。\r\n\r\n\r\n\r\n", "name": "tk_ostream_write_byte", "return": { "type": "ret_t", @@ -39101,7 +39696,7 @@ } ], "annotation": {}, - "desc": "\n 刷新数据。\n\n\n\n\n", + "desc": "\r\n 刷新数据。\r\n\r\n\r\n\r\n", "name": "tk_ostream_flush", "return": { "type": "ret_t", @@ -39112,7 +39707,7 @@ "events": [], "properties": [], "header": "tkc/ostream.h", - "desc": "\n input stream interface\n\n\n", + "desc": "\r\n input stream interface\r\n\r\n", "name": "tk_ostream_t", "parent": "object_t", "level": 3 @@ -39120,75 +39715,32 @@ { "type": "class", "methods": [ - { - "params": [], - "annotation": { - "constructor": true - }, - "desc": " 获取system_info对象。\n\n", - "name": "system_info", - "alias": "system_info_instance", - "return": { - "type": "system_info_t*", - "desc": "返回system_info对象。" - } - }, { "params": [ { - "type": "app_type_t", - "name": "app_type", - "desc": "应用程序的类型。" + "type": "native_window_t*", + "name": "win", + "desc": "win对象。" }, { - "type": "const char*", - "name": "app_name", - "desc": "应用程序的名称。" + "type": "xy_t", + "name": "x", + "desc": "x坐标。" }, { - "type": "const char*", - "name": "app_root", - "desc": "应用程序的根目录,用于定位资源文件。" - } - ], - "annotation": { - "static": true - }, - "desc": " 初始化system_info对象。\n\n\n", - "name": "system_info_init", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [], - "annotation": { - "static": true - }, - "desc": " 释放system_info对象。\n\n\n", - "name": "system_info_deinit", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "system_info_t* info", - "name": "info", - "desc": "system_info对象。" + "type": "xy_t", + "name": "y", + "desc": "y坐标。" }, { - "type": "float_t", - "name": "font_scale", - "desc": "字体缩放比例。" + "type": "bool_t", + "name": "force", + "desc": "无论是否shared都move。" } ], "annotation": {}, - "desc": " 设置字体缩放比例。\n\n\n\n", - "name": "system_info_set_font_scale", + "desc": " 移动窗口。\r\n\r\n\r\n", + "name": "native_window_move", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -39197,61 +39749,29 @@ { "params": [ { - "type": "system_info_t* info", - "name": "info", - "desc": "system_info对象。" + "type": "native_window_t*", + "name": "win", + "desc": "win对象。" }, { - "type": "const char*", - "name": "default_font", - "desc": "缺省字体。" - } - ], - "annotation": {}, - "desc": " 设置缺省字体。\n\n\n\n", - "name": "system_info_set_default_font", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "system_info_t* info", - "name": "info", - "desc": "system_info对象。" + "type": "wh_t", + "name": "w", + "desc": "宽。" }, { - "type": "uint32_t", - "name": "lcd_w", - "desc": "设置LCD宽度。" - } - ], - "annotation": {}, - "desc": " 设置LCD宽度。\n\n\n\n", - "name": "system_info_set_lcd_w", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "system_info_t* info", - "name": "info", - "desc": "system_info对象。" + "type": "wh_t", + "name": "h", + "desc": "高。" }, { - "type": "uint32_t", - "name": "lcd_h", - "desc": "设置LCD高度。" + "type": "bool_t", + "name": "force", + "desc": "无论是否shared都resize。" } ], "annotation": {}, - "desc": " 设置LCD高度。\n\n\n\n", - "name": "system_info_set_lcd_h", + "desc": " 调整窗口大小。\r\n\r\n\r\n", + "name": "native_window_resize", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -39260,347 +39780,63 @@ { "params": [ { - "type": "system_info_t* info", - "name": "info", - "desc": "system_info对象。" - }, - { - "type": "lcd_type_t", - "name": "lcd_type", - "desc": "设置LCD类型。" + "type": "native_window_t*", + "name": "win", + "desc": "win对象。" } ], "annotation": {}, - "desc": " 设置LCD类型。\n\n\n\n", - "name": "system_info_set_lcd_type", + "desc": " 获取canvas。\r\n\r\n\r\n", + "name": "native_window_get_canvas", "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" + "type": "canvas_t", + "desc": "返回canvas对象。" } }, { "params": [ { - "type": "system_info_t* info", - "name": "info", - "desc": "system_info对象。" - }, - { - "type": "lcd_orientation_t", - "name": "lcd_orientation", - "desc": "设置LCD的旋转角度。" + "type": "const char*", + "name": "params", + "desc": "参数。" } ], "annotation": {}, - "desc": " 设置LCD的旋转角度。\n\n\n\n", - "name": "system_info_set_lcd_orientation", + "desc": " 创建win对象。\r\n\r\n", + "name": "native_window_create", "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" + "type": "native_window_t*", + "desc": "返回win对象。" } }, { "params": [ { - "type": "system_info_t* info", - "name": "info", - "desc": "system_info对象。" + "type": "native_window_t*", + "name": "win", + "desc": "win对象。" }, { - "type": "float_t", - "name": "device_pixel_ratio", - "desc": "设置LCD密度。" + "type": "rect_t*", + "name": "r", + "desc": "重绘区域。" } ], "annotation": {}, - "desc": " 设置LCD密度。\n\n\n\n", - "name": "system_info_set_device_pixel_ratio", + "desc": " 请求重绘指定区域。\r\n\r\n", + "name": "native_window_invalidate", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" } - }, - { - "params": [ - { - "type": "const char*", - "name": "name", - "desc": "字体名称。" - } - ], - "annotation": {}, - "desc": " 修正字体名称,如果为NULL,返回缺省字体。\n\n\n\n", - "name": "system_info_fix_font_name", - "return": { - "type": "const char*", - "desc": "返回有效的字体名称。" - } - } - ], - "events": [], - "properties": [ - { - "name": "lcd_w", - "desc": " 显示屏的宽度。\n\n", - "type": "uint32_t", - "annotation": { - "readable": true - } - }, - { - "name": "lcd_h", - "desc": " 显示屏的高度。\n\n", - "type": "uint32_t", - "annotation": { - "readable": true - } - }, - { - "name": "lcd_type", - "desc": " 显示屏的类型。\n\n", - "type": "lcd_type_t", - "annotation": { - "readable": true - } - }, - { - "name": "device_pixel_ratio", - "desc": " 显示屏的密度。\n\n", - "type": "float_t", - "annotation": { - "readable": true - } - }, - { - "name": "font_scale", - "desc": " 字体缩放比例,用于实现字体整体放大。\n\n", - "type": "float_t", - "annotation": { - "readable": true - } - }, - { - "name": "default_font", - "desc": " 缺省字体。\n\n", - "type": "const char*", - "annotation": { - "readable": true - } - }, - { - "name": "lcd_orientation", - "desc": " 显示屏的旋转角度。\n\n", - "type": "lcd_orientation_t", - "annotation": { - "readable": true - } - }, - { - "name": "device_orientation", - "desc": " 显示屏的方向名称,可选值:\"portrait\"表示竖屏,\"landscape\"表示横屏。\n\n > 只能通过object\\_get\\_prop函数访问。\n\n", - "type": "const char*", - "annotation": { - "readable": true, - "fake": true - } - }, - { - "name": "country", - "desc": " locale中的国家。\n\n > 只能通过object\\_get\\_prop函数访问。\n\n", - "type": "const char*", - "annotation": { - "readable": true, - "fake": true - } - }, - { - "name": "language", - "desc": " locale中的语言。\n\n > 只能通过object\\_get\\_prop函数访问。\n\n", - "type": "const char*", - "annotation": { - "readable": true, - "fake": true - } - }, - { - "name": "app_type", - "desc": " 应用程序的类型。\n\n", - "type": "app_type_t", - "annotation": { - "readable": true - } - }, - { - "name": "app_name", - "desc": " 应用程序的名称。\n\n", - "type": "const char*", - "annotation": { - "readable": true - } - }, - { - "name": "app_root", - "desc": " 应用程序的根目录,用于定位资源文件。\n\n", - "type": "const char*", - "annotation": { - "readable": true - } - } - ], - "header": "base/system_info.h", - "desc": " 当前系统的信息。\n\n", - "name": "system_info_t", - "parent": "object_t", - "level": 3 - }, - { - "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": " 创建svg_image对象\r\n\r\n", - "name": "svg_image_create", - "return": { - "type": "widget_t*", - "desc": "对象。" - } - }, - { - "params": [ - { - "type": "widget_t*", - "name": "widget", - "desc": "svg_image对象。" - } - ], - "annotation": { - "cast": true, - "scriptable": true - }, - "desc": " 转换为svg_image对象(供脚本语言使用)。\r\n\r\n", - "name": "svg_image_cast", - "return": { - "type": "widget_t*", - "desc": "svg_image对象。" - } - } - ], - "events": [], - "properties": [], - "header": "svg_image/svg_image.h", - "desc": " SVG图片控件。\r\n\r\n svg\\_image\\_t是[image\\_base\\_t](image_base_t.md)的子类控件,image\\_base\\_t的函数均适用于svg\\_image\\_t控件。\r\n\r\n 在xml中使用\"svg\"标签创建SVG图片控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n >更多用法请参考:[svg image](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/svg_image.xml)\r\n\r\n 在c代码中使用函数svg\\_image\\_create创建SVG图片控件。如:\r\n\r\n ```c\r\n widget_t* image = svg_image_create(win, 10, 10, 200, 200);\r\n image_set_image(image, \"girl\");\r\n ```\r\n\r\n > 创建之后: 需要用widget\\_set\\_image设置图片名称。\r\n\r\n > 完整示例请参考:[svg image demo](\r\n https://github.com/zlgopen/awtk-c-demos/blob/master/demos/svg_image.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", - "name": "svg_image_t", - "parent": "image_base_t", - "annotation": { - "scriptable": true, - "design": true, - "widget": true - }, - "level": 3 - }, - { - "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": " 创建gif_image对象\r\n\r\n", - "name": "gif_image_create", - "return": { - "type": "widget_t*", - "desc": "对象。" - } - }, - { - "params": [ - { - "type": "widget_t*", - "name": "widget", - "desc": "gif_image对象。" - } - ], - "annotation": { - "cast": true, - "scriptable": true - }, - "desc": " 转换为gif_image对象(供脚本语言使用)。\r\n\r\n", - "name": "gif_image_cast", - "return": { - "type": "widget_t*", - "desc": "gif_image对象。" - } } ], "events": [], "properties": [], - "header": "gif_image/gif_image.h", - "desc": " GIF图片控件。\r\n\r\n > 注意:GIF图片的尺寸大于控件大小时会自动缩小图片,但一般的嵌入式系统的硬件加速都不支持图片缩放,\r\n 所以缩放图片会导致性能明显下降。如果性能不满意时,请确认一下GIF图片的尺寸是否小余控件大小。\r\n\r\n gif\\_image\\_t是[image\\_base\\_t](image_base_t.md)的子类控件,image\\_base\\_t的函数均适用于gif\\_image\\_t控件。\r\n\r\n 在xml中使用\"gif\"标签创建GIF图片控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n >更多用法请参考:\r\n [gif image](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/gif_image.xml)\r\n\r\n 在c代码中使用函数gif\\_image\\_create创建GIF图片控件。如:\r\n\r\n ```c\r\n widget_t* image = gif_image_create(win, 10, 10, 200, 200);\r\n image_set_image(image, \"bee\");\r\n ```\r\n\r\n > 创建之后:\r\n >\r\n > 需要用widget\\_set\\_image设置图片名称。\r\n\r\n > 完整示例请参考:[gif image demo](\r\n https://github.com/zlgopen/awtk-c-demos/blob/master/demos/gif_image.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", - "name": "gif_image_t", - "parent": "image_base_t", - "annotation": { - "scriptable": true, - "design": true, - "widget": true - }, + "header": "base/native_window.h", + "desc": " 原生窗口。\r\n\r\n", + "name": "native_window_t", + "parent": "object_t", "level": 3 }, { @@ -39638,8 +39874,8 @@ "constructor": true, "scriptable": true }, - "desc": " 创建image对象\r\n\r\n", - "name": "image_create", + "desc": " 创建svg_image对象\r\n\r\n", + "name": "svg_image_create", "return": { "type": "widget_t*", "desc": "对象。" @@ -39650,22 +39886,74 @@ { "type": "widget_t*", "name": "widget", - "desc": "image对象。" + "desc": "svg_image对象。" + } + ], + "annotation": { + "cast": true, + "scriptable": true + }, + "desc": " 转换为svg_image对象(供脚本语言使用)。\r\n\r\n", + "name": "svg_image_cast", + "return": { + "type": "widget_t*", + "desc": "svg_image对象。" + } + } + ], + "events": [], + "properties": [], + "header": "svg_image/svg_image.h", + "desc": " SVG图片控件。\r\n\r\n svg\\_image\\_t是[image\\_base\\_t](image_base_t.md)的子类控件,image\\_base\\_t的函数均适用于svg\\_image\\_t控件。\r\n\r\n 在xml中使用\"svg\"标签创建SVG图片控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n >更多用法请参考:[svg image](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/svg_image.xml)\r\n\r\n 在c代码中使用函数svg\\_image\\_create创建SVG图片控件。如:\r\n\r\n ```c\r\n widget_t* image = svg_image_create(win, 10, 10, 200, 200);\r\n image_set_image(image, \"girl\");\r\n ```\r\n\r\n > 创建之后: 需要用widget\\_set\\_image设置图片名称。\r\n\r\n > 完整示例请参考:[svg image demo](\r\n https://github.com/zlgopen/awtk-c-demos/blob/master/demos/svg_image.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", + "name": "svg_image_t", + "parent": "image_base_t", + "annotation": { + "scriptable": true, + "design": true, + "widget": true + }, + "level": 3 + }, + { + "type": "class", + "methods": [ + { + "params": [ + { + "type": "widget_t*", + "name": "parent", + "desc": "父控件" }, { - "type": "image_draw_type_t", - "name": "draw_type", - "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": " 设置图片的绘制方式。\r\n\r\n", - "name": "image_set_draw_type", + "desc": " 创建gif_image对象\r\n\r\n", + "name": "gif_image_create", "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" + "type": "widget_t*", + "desc": "对象。" } }, { @@ -39673,40 +39961,26 @@ { "type": "widget_t*", "name": "widget", - "desc": "image对象。" + "desc": "gif_image对象。" } ], "annotation": { "cast": true, "scriptable": true }, - "desc": " 转换为image对象(供脚本语言使用)。\r\n\r\n", - "name": "image_cast", + "desc": " 转换为gif_image对象(供脚本语言使用)。\r\n\r\n", + "name": "gif_image_cast", "return": { "type": "widget_t*", - "desc": "image对象。" + "desc": "gif_image对象。" } } ], "events": [], - "properties": [ - { - "name": "draw_type", - "desc": " 图片的绘制方式(仅在没有旋转和缩放时生效)。\r\n", - "type": "image_draw_type_t", - "annotation": { - "set_prop": true, - "get_prop": true, - "readable": true, - "persitent": true, - "design": true, - "scriptable": true - } - } - ], - "header": "widgets/image.h", - "desc": " 图片控件。\r\n\r\n 用来显示一张静态图片,目前支持bmp/png/jpg等格式。\r\n\r\n 如果要显示gif文件,请用[gif\\_image](gif_image_t.md)。\r\n\r\n 如果要显示svg文件,请用[svg\\_image](svg_image_t.md)。\r\n\r\n 如果需要支持勾选效果,请设置**selectable**属性。\r\n\r\n 如果需要支持点击效果,请设置**clickable**属性。\r\n\r\n image\\_t是[image\\_base\\_t](image_base_t.md)的子类控件,image\\_base\\_t的函数均适用于image\\_t控件。\r\n\r\n 在xml中使用\"image\"标签创建图片控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [image.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/images.xml)\r\n\r\n 在c代码中使用函数image\\_create创建图片控件。如:\r\n\r\n ```c\r\n widget_t* image = image_create(win, 10, 10, 128, 30);\r\n image_set_image(image, \"earth\");\r\n ```\r\n\r\n > 创建之后:\r\n >\r\n > 需要用widget\\_set\\_image设置图片名称。\r\n >\r\n > 可以用image\\_set\\_draw\\_type设置图片的绘制方式。\r\n\r\n > 绘制方式请参考[image\\_draw\\_type\\_t](image_draw_type_t.md)\r\n\r\n > 绘制方式的属性值和枚举值:\r\n [image\\_draw\\_type\\_name\\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98)\r\n\r\n > 完整示例请参考:\r\n [image demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L313)\r\n\r\n", - "name": "image_t", + "properties": [], + "header": "gif_image/gif_image.h", + "desc": " GIF图片控件。\r\n\r\n > 注意:GIF图片的尺寸大于控件大小时会自动缩小图片,但一般的嵌入式系统的硬件加速都不支持图片缩放,\r\n 所以缩放图片会导致性能明显下降。如果性能不满意时,请确认一下GIF图片的尺寸是否小余控件大小。\r\n\r\n gif\\_image\\_t是[image\\_base\\_t](image_base_t.md)的子类控件,image\\_base\\_t的函数均适用于gif\\_image\\_t控件。\r\n\r\n 在xml中使用\"gif\"标签创建GIF图片控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n >更多用法请参考:\r\n [gif image](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/gif_image.xml)\r\n\r\n 在c代码中使用函数gif\\_image\\_create创建GIF图片控件。如:\r\n\r\n ```c\r\n widget_t* image = gif_image_create(win, 10, 10, 200, 200);\r\n image_set_image(image, \"bee\");\r\n ```\r\n\r\n > 创建之后:\r\n >\r\n > 需要用widget\\_set\\_image设置图片名称。\r\n\r\n > 完整示例请参考:[gif image demo](\r\n https://github.com/zlgopen/awtk-c-demos/blob/master/demos/gif_image.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", + "name": "gif_image_t", "parent": "image_base_t", "annotation": { "scriptable": true, @@ -39721,125 +39995,137 @@ { "params": [ { - "type": "native_window_t*", - "name": "win", - "desc": "win对象。" + "type": "widget_t*", + "name": "parent", + "desc": "父控件" }, { "type": "xy_t", "name": "x", - "desc": "x坐标。" + "desc": "x坐标" }, { "type": "xy_t", "name": "y", - "desc": "y坐标。" - }, - { - "type": "bool_t", - "name": "force", - "desc": "无论是否shared都move。" - } - ], - "annotation": {}, - "desc": " 移动窗口。\n\n\n\n", - "name": "native_window_move", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "native_window_t*", - "name": "win", - "desc": "win对象。" + "desc": "y坐标" }, { "type": "wh_t", "name": "w", - "desc": "宽。" + "desc": "宽度" }, { "type": "wh_t", "name": "h", - "desc": "高。" - }, - { - "type": "bool_t", - "name": "force", - "desc": "无论是否shared都resize。" + "desc": "高度" } ], - "annotation": {}, - "desc": " 调整窗口大小。\n\n\n\n", - "name": "native_window_resize", + "annotation": { + "constructor": true, + "scriptable": true + }, + "desc": " 创建image对象\r\n\r\n", + "name": "image_create", "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" + "type": "widget_t*", + "desc": "对象。" } }, { "params": [ { - "type": "native_window_t*", - "name": "win", - "desc": "win对象。" + "type": "widget_t*", + "name": "widget", + "desc": "image对象。" + }, + { + "type": "image_draw_type_t", + "name": "draw_type", + "desc": "绘制方式(仅在没有旋转和缩放时生效)。" } ], - "annotation": {}, - "desc": " 获取canvas。\n\n\n\n", - "name": "native_window_get_canvas", + "annotation": { + "scriptable": true + }, + "desc": " 设置图片的绘制方式。\r\n\r\n", + "name": "image_set_draw_type", "return": { - "type": "canvas_t", - "desc": "返回canvas对象。" + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" } }, { "params": [ { - "type": "const char*", - "name": "params", - "desc": "参数。" + "type": "widget_t*", + "name": "widget", + "desc": "image对象。" } ], - "annotation": {}, - "desc": " 创建win对象。\n\n\n", - "name": "native_window_create", + "annotation": { + "cast": true, + "scriptable": true + }, + "desc": " 转换为image对象(供脚本语言使用)。\r\n\r\n", + "name": "image_cast", "return": { - "type": "native_window_t*", - "desc": "返回win对象。" + "type": "widget_t*", + "desc": "image对象。" } - }, + } + ], + "events": [], + "properties": [ { - "params": [ - { - "type": "native_window_t*", - "name": "win", - "desc": "win对象。" - }, - { - "type": "rect_t*", - "name": "r", - "desc": "重绘区域。" - } - ], - "annotation": {}, - "desc": " 请求重绘指定区域。\n\n\n", - "name": "native_window_invalidate", + "name": "draw_type", + "desc": " 图片的绘制方式(仅在没有旋转和缩放时生效)。\r\n", + "type": "image_draw_type_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + } + ], + "header": "widgets/image.h", + "desc": " 图片控件。\r\n\r\n 用来显示一张静态图片,目前支持bmp/png/jpg等格式。\r\n\r\n 如果要显示gif文件,请用[gif\\_image](gif_image_t.md)。\r\n\r\n 如果要显示svg文件,请用[svg\\_image](svg_image_t.md)。\r\n\r\n 如果需要支持勾选效果,请设置**selectable**属性。\r\n\r\n 如果需要支持点击效果,请设置**clickable**属性。\r\n\r\n image\\_t是[image\\_base\\_t](image_base_t.md)的子类控件,image\\_base\\_t的函数均适用于image\\_t控件。\r\n\r\n 在xml中使用\"image\"标签创建图片控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [image.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/images.xml)\r\n\r\n 在c代码中使用函数image\\_create创建图片控件。如:\r\n\r\n ```c\r\n widget_t* image = image_create(win, 10, 10, 128, 30);\r\n image_set_image(image, \"earth\");\r\n ```\r\n\r\n > 创建之后:\r\n >\r\n > 需要用widget\\_set\\_image设置图片名称。\r\n >\r\n > 可以用image\\_set\\_draw\\_type设置图片的绘制方式。\r\n\r\n > 绘制方式请参考[image\\_draw\\_type\\_t](image_draw_type_t.md)\r\n\r\n > 绘制方式的属性值和枚举值:\r\n [image\\_draw\\_type\\_name\\_value](https://github.com/zlgopen/awtk/blob/master/src/base/enums.c#L98)\r\n\r\n > 完整示例请参考:\r\n [image demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L313)\r\n\r\n", + "name": "image_t", + "parent": "image_base_t", + "annotation": { + "scriptable": true, + "design": true, + "widget": true + }, + "level": 3 + }, + { + "type": "class", + "methods": [ + { + "params": [], + "annotation": { + "constructor": true + }, + "desc": " 创建窗口管理器。\r\n\r\n", + "name": "window_manager_create", "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" + "type": "window_manager_t*", + "desc": "返回窗口管理器对象。" } } ], "events": [], "properties": [], - "header": "base/native_window.h", - "desc": " 原生窗口。\n\n\n", - "name": "native_window_t", - "parent": "object_t", + "header": "window_manager/window_manager_simple.h", + "desc": " 缺省窗口管理器。\r\n", + "name": "window_manager_simple_t", + "parent": "window_manager_t", + "annotation": { + "scriptable": true + }, "level": 3 }, { @@ -40008,7 +40294,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为timer_info对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为timer_info对象(供脚本语言使用)。\r\n\r\n", "name": "timer_info_cast", "return": { "type": "timer_info_t*", @@ -40020,7 +40306,7 @@ "properties": [ { "name": "on_timer", - "desc": " 定时器回调函数。\n\n", + "desc": " 定时器回调函数。\r\n", "type": "timer_func_t", "annotation": { "readable": true @@ -40028,7 +40314,7 @@ }, { "name": "ctx", - "desc": " 定时器回调函数的上下文\n\n\n", + "desc": " 定时器回调函数的上下文\r\n\r\n", "type": "void*", "annotation": { "readable": true, @@ -40037,7 +40323,7 @@ }, { "name": "id", - "desc": " 定时器的ID\n\n > 为TK\\_INVALID\\_ID时表示无效定时器。\n\n", + "desc": " 定时器的ID\r\n\r\n > 为TK\\_INVALID\\_ID时表示无效定时器。\r\n", "type": "uint32_t", "annotation": { "readable": true, @@ -40046,7 +40332,7 @@ }, { "name": "now", - "desc": " 当前时间(相对时间,单位为毫秒)。\n\n\n", + "desc": " 当前时间(相对时间,单位为毫秒)。\r\n\r\n", "type": "uint64_t", "annotation": { "readable": true, @@ -40055,7 +40341,7 @@ }, { "name": "start", - "desc": " 起始时间(相对时间,单位为毫秒)。\n\n\n", + "desc": " 起始时间(相对时间,单位为毫秒)。\r\n\r\n", "type": "uint64_t", "annotation": { "readable": true @@ -40063,7 +40349,7 @@ }, { "name": "duration", - "desc": " 时间间隔(单位为毫秒)。\n\n\n", + "desc": " 时间间隔(单位为毫秒)。\r\n\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -40071,7 +40357,7 @@ }, { "name": "on_destroy", - "desc": " 定时器销毁时的回调函数。\n\n", + "desc": " 定时器销毁时的回调函数。\r\n", "type": "tk_destroy_t", "annotation": { "readable": true @@ -40079,7 +40365,7 @@ }, { "name": "on_destroy_ctx", - "desc": " 定时器销毁时的回调函数上下文。\n\n", + "desc": " 定时器销毁时的回调函数上下文。\r\n", "type": "void*", "annotation": { "readable": true @@ -40087,7 +40373,7 @@ }, { "name": "user_changed_time", - "desc": " 用户是否修改了系统时间。\n\n", + "desc": " 用户是否修改了系统时间。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -40096,7 +40382,7 @@ } ], "header": "tkc/timer_info.h", - "desc": " 单个定时器的信息。\n\n\n", + "desc": " 单个定时器的信息。\r\n\r\n", "name": "timer_info_t", "parent": "object_t", "annotation": { @@ -40119,7 +40405,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为idle_info对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为idle_info对象(供脚本语言使用)。\r\n\r\n", "name": "idle_info_cast", "return": { "type": "idle_info_t*", @@ -40131,7 +40417,7 @@ "properties": [ { "name": "on_idle", - "desc": " idle回调函数。\n\n", + "desc": " idle回调函数。\r\n", "type": "idle_func_t", "annotation": { "readable": true @@ -40139,7 +40425,7 @@ }, { "name": "ctx", - "desc": " idle回调函数上下文。\n\n", + "desc": " idle回调函数上下文。\r\n", "type": "void*", "annotation": { "readable": true, @@ -40148,7 +40434,7 @@ }, { "name": "id", - "desc": " idle的ID\n\n > 为TK\\_INVALID\\_ID时表示无效idle。\n\n", + "desc": " idle的ID\r\n\r\n > 为TK\\_INVALID\\_ID时表示无效idle。\r\n", "type": "uint32_t", "annotation": { "readable": true, @@ -40157,7 +40443,7 @@ }, { "name": "on_destroy_ctx", - "desc": " idle销毁时的回调函数的上下文。\n\n", + "desc": " idle销毁时的回调函数的上下文。\r\n", "type": "tk_destroy_t", "annotation": { "readable": true @@ -40165,7 +40451,7 @@ }, { "name": "on_destroy", - "desc": " idle销毁时的回调函数。\n\n", + "desc": " idle销毁时的回调函数。\r\n", "type": "tk_destroy_t", "annotation": { "readable": true @@ -40173,7 +40459,7 @@ } ], "header": "tkc/idle_info.h", - "desc": "\n 单个idle的信息。\n\n", + "desc": "\r\n 单个idle的信息。\r\n", "name": "idle_info_t", "parent": "object_t", "annotation": { @@ -40193,7 +40479,7 @@ } ], "annotation": {}, - "desc": "\n 获取输入流对象。\n\n\n\n\n", + "desc": "\r\n 获取输入流对象。\r\n\r\n\r\n\r\n", "name": "tk_iostream_get_istream", "return": { "type": "tk_istream_t*", @@ -40209,7 +40495,7 @@ } ], "annotation": {}, - "desc": "\n 获取输出流对象。\n\n\n\n\n", + "desc": "\r\n 获取输出流对象。\r\n\r\n\r\n\r\n", "name": "tk_iostream_get_ostream", "return": { "type": "tk_ostream_t*", @@ -40220,7 +40506,7 @@ "events": [], "properties": [], "header": "tkc/iostream.h", - "desc": "\n input/output stream interface\n\n\n", + "desc": "\r\n input/output stream interface\r\n\r\n", "name": "tk_iostream_t", "parent": "object_t", "level": 3 @@ -40247,7 +40533,7 @@ } ], "annotation": {}, - "desc": "\n 读取数据。\n\n\n\n\n", + "desc": "\r\n 读取数据。\r\n\r\n\r\n\r\n", "name": "tk_istream_read", "return": { "type": "int32_t", @@ -40268,7 +40554,7 @@ } ], "annotation": {}, - "desc": "\n 设置偏移量。\n\n\n\n\n", + "desc": "\r\n 设置偏移量。\r\n\r\n\r\n\r\n", "name": "tk_istream_seek", "return": { "type": "ret_t", @@ -40289,7 +40575,7 @@ } ], "annotation": {}, - "desc": "\n 等待数据。\n\n\n\n\n", + "desc": "\r\n 等待数据。\r\n\r\n\r\n\r\n", "name": "tk_istream_wait_for_data", "return": { "type": "ret_t", @@ -40305,7 +40591,7 @@ } ], "annotation": {}, - "desc": "\n 刷新数据。\n\n\n\n\n", + "desc": "\r\n 刷新数据。\r\n\r\n\r\n\r\n", "name": "tk_istream_flush", "return": { "type": "ret_t", @@ -40336,7 +40622,7 @@ } ], "annotation": {}, - "desc": "\n 读取指定长度的数据。\n\n\n\n\n", + "desc": "\r\n 读取指定长度的数据。\r\n\r\n\r\n\r\n", "name": "tk_istream_read_len", "return": { "type": "int32_t", @@ -40367,7 +40653,7 @@ } ], "annotation": {}, - "desc": "\n 读取一行数据。\n\n\n\n\n", + "desc": "\r\n 读取一行数据。\r\n\r\n\r\n\r\n", "name": "tk_istream_read_line", "return": { "type": "int32_t", @@ -40378,65 +40664,11 @@ "events": [], "properties": [], "header": "tkc/istream.h", - "desc": "\n input stream interface\n\n\n", + "desc": "\r\n input stream interface\r\n\r\n", "name": "tk_istream_t", "parent": "object_t", "level": 3 }, - { - "type": "class", - "methods": [ - { - "params": [], - "annotation": { - "constructor": true - }, - "desc": " 创建窗口管理器。\r\n\r\n", - "name": "window_manager_create", - "return": { - "type": "window_manager_t*", - "desc": "返回窗口管理器对象。" - } - } - ], - "events": [], - "properties": [], - "header": "window_manager/window_manager_simple.h", - "desc": " 缺省窗口管理器。\r\n", - "name": "window_manager_simple_t", - "parent": "window_manager_t", - "annotation": { - "scriptable": true - }, - "level": 3 - }, - { - "type": "class", - "methods": [ - { - "params": [], - "annotation": { - "constructor": true - }, - "desc": " 创建窗口管理器。\r\n\r\n", - "name": "window_manager_create", - "return": { - "type": "window_manager_t*", - "desc": "返回窗口管理器对象。" - } - } - ], - "events": [], - "properties": [], - "header": "window_manager/window_manager_default.h", - "desc": " 缺省窗口管理器。\r\n", - "name": "window_manager_default_t", - "parent": "window_manager_t", - "annotation": { - "scriptable": true - }, - "level": 3 - }, { "type": "class", "methods": [ @@ -40472,7 +40704,7 @@ "constructor": true, "scriptable": true }, - "desc": " 创建combo_box_ex对象\n\n\n", + "desc": " 创建combo_box_ex对象\r\n\r\n", "name": "combo_box_ex_create", "return": { "type": "widget_t*", @@ -40483,7 +40715,7 @@ "events": [], "properties": [], "header": "combo_box_ex/combo_box_ex.h", - "desc": " 可滚动的combo_box控件。\n\n\n", + "desc": " 可滚动的combo_box控件。\r\n\r\n", "name": "combo_box_ex_t", "parent": "combo_box_t", "annotation": { @@ -40493,6 +40725,369 @@ }, "level": 3 }, + { + "type": "class", + "methods": [ + { + "params": [], + "annotation": { + "constructor": true + }, + "desc": " 获取system_info对象。\r\n", + "name": "system_info", + "alias": "system_info_instance", + "return": { + "type": "system_info_t*", + "desc": "返回system_info对象。" + } + }, + { + "params": [ + { + "type": "app_type_t", + "name": "app_type", + "desc": "应用程序的类型。" + }, + { + "type": "const char*", + "name": "app_name", + "desc": "应用程序的名称。" + }, + { + "type": "const char*", + "name": "app_root", + "desc": "应用程序的根目录,用于定位资源文件。" + } + ], + "annotation": { + "static": true + }, + "desc": " 初始化system_info对象。\r\n\r\n", + "name": "system_info_init", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [], + "annotation": { + "static": true + }, + "desc": " 释放system_info对象。\r\n\r\n", + "name": "system_info_deinit", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "system_info_t* info", + "name": "info", + "desc": "system_info对象。" + }, + { + "type": "float_t", + "name": "font_scale", + "desc": "字体缩放比例。" + } + ], + "annotation": {}, + "desc": " 设置字体缩放比例。\r\n\r\n\r\n", + "name": "system_info_set_font_scale", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "system_info_t* info", + "name": "info", + "desc": "system_info对象。" + }, + { + "type": "const char*", + "name": "default_font", + "desc": "缺省字体。" + } + ], + "annotation": {}, + "desc": " 设置缺省字体。\r\n\r\n\r\n", + "name": "system_info_set_default_font", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "system_info_t* info", + "name": "info", + "desc": "system_info对象。" + }, + { + "type": "uint32_t", + "name": "lcd_w", + "desc": "设置LCD宽度。" + } + ], + "annotation": {}, + "desc": " 设置LCD宽度。\r\n\r\n\r\n", + "name": "system_info_set_lcd_w", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "system_info_t* info", + "name": "info", + "desc": "system_info对象。" + }, + { + "type": "uint32_t", + "name": "lcd_h", + "desc": "设置LCD高度。" + } + ], + "annotation": {}, + "desc": " 设置LCD高度。\r\n\r\n\r\n", + "name": "system_info_set_lcd_h", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "system_info_t* info", + "name": "info", + "desc": "system_info对象。" + }, + { + "type": "lcd_type_t", + "name": "lcd_type", + "desc": "设置LCD类型。" + } + ], + "annotation": {}, + "desc": " 设置LCD类型。\r\n\r\n\r\n", + "name": "system_info_set_lcd_type", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "system_info_t* info", + "name": "info", + "desc": "system_info对象。" + }, + { + "type": "lcd_orientation_t", + "name": "lcd_orientation", + "desc": "设置LCD的旋转角度。" + } + ], + "annotation": {}, + "desc": " 设置LCD的旋转角度。\r\n\r\n\r\n", + "name": "system_info_set_lcd_orientation", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "system_info_t* info", + "name": "info", + "desc": "system_info对象。" + }, + { + "type": "float_t", + "name": "device_pixel_ratio", + "desc": "设置LCD密度。" + } + ], + "annotation": {}, + "desc": " 设置LCD密度。\r\n\r\n\r\n", + "name": "system_info_set_device_pixel_ratio", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "const char*", + "name": "name", + "desc": "字体名称。" + } + ], + "annotation": {}, + "desc": " 修正字体名称,如果为NULL,返回缺省字体。\r\n\r\n\r\n", + "name": "system_info_fix_font_name", + "return": { + "type": "const char*", + "desc": "返回有效的字体名称。" + } + } + ], + "events": [], + "properties": [ + { + "name": "lcd_w", + "desc": " 显示屏的宽度。\r\n", + "type": "uint32_t", + "annotation": { + "readable": true + } + }, + { + "name": "lcd_h", + "desc": " 显示屏的高度。\r\n", + "type": "uint32_t", + "annotation": { + "readable": true + } + }, + { + "name": "lcd_type", + "desc": " 显示屏的类型。\r\n", + "type": "lcd_type_t", + "annotation": { + "readable": true + } + }, + { + "name": "device_pixel_ratio", + "desc": " 显示屏的密度。\r\n", + "type": "float_t", + "annotation": { + "readable": true + } + }, + { + "name": "font_scale", + "desc": " 字体缩放比例,用于实现字体整体放大。\r\n", + "type": "float_t", + "annotation": { + "readable": true + } + }, + { + "name": "default_font", + "desc": " 缺省字体。\r\n", + "type": "const char*", + "annotation": { + "readable": true + } + }, + { + "name": "lcd_orientation", + "desc": " 显示屏的旋转角度。\r\n", + "type": "lcd_orientation_t", + "annotation": { + "readable": true + } + }, + { + "name": "device_orientation", + "desc": " 显示屏的方向名称,可选值:\"portrait\"表示竖屏,\"landscape\"表示横屏。\r\n\r\n > 只能通过object\\_get\\_prop函数访问。\r\n", + "type": "const char*", + "annotation": { + "readable": true, + "fake": true + } + }, + { + "name": "country", + "desc": " locale中的国家。\r\n\r\n > 只能通过object\\_get\\_prop函数访问。\r\n", + "type": "const char*", + "annotation": { + "readable": true, + "fake": true + } + }, + { + "name": "language", + "desc": " locale中的语言。\r\n\r\n > 只能通过object\\_get\\_prop函数访问。\r\n", + "type": "const char*", + "annotation": { + "readable": true, + "fake": true + } + }, + { + "name": "app_type", + "desc": " 应用程序的类型。\r\n", + "type": "app_type_t", + "annotation": { + "readable": true + } + }, + { + "name": "app_name", + "desc": " 应用程序的名称。\r\n", + "type": "const char*", + "annotation": { + "readable": true + } + }, + { + "name": "app_root", + "desc": " 应用程序的根目录,用于定位资源文件。\r\n", + "type": "const char*", + "annotation": { + "readable": true + } + } + ], + "header": "base/system_info.h", + "desc": " 当前系统的信息。\r\n", + "name": "system_info_t", + "parent": "object_t", + "level": 3 + }, + { + "type": "class", + "methods": [ + { + "params": [], + "annotation": { + "constructor": true + }, + "desc": " 创建窗口管理器。\r\n\r\n", + "name": "window_manager_create", + "return": { + "type": "window_manager_t*", + "desc": "返回窗口管理器对象。" + } + } + ], + "events": [], + "properties": [], + "header": "window_manager/window_manager_default.h", + "desc": " 缺省窗口管理器。\r\n", + "name": "window_manager_default_t", + "parent": "window_manager_t", + "annotation": { + "scriptable": true + }, + "level": 3 + }, { "type": "class", "methods": [ @@ -40503,7 +41098,7 @@ "scriptable": true, "gc": true }, - "desc": "\n 创建对象。\n\n\n\n\n", + "desc": "\r\n 创建对象。\r\n\r\n\r\n\r\n", "name": "object_array_create", "return": { "type": "object_t*", @@ -40521,7 +41116,7 @@ "annotation": { "constructor": true }, - "desc": "\n 克隆对象。\n\n\n\n\n", + "desc": "\r\n 克隆对象。\r\n\r\n\r\n\r\n", "name": "object_array_create", "return": { "type": "object_t*", @@ -40541,7 +41136,7 @@ "scriptable": true, "gc": true }, - "desc": "\n for script gc\n\n\n\n\n", + "desc": "\r\n for script gc\r\n\r\n\r\n\r\n", "name": "object_array_unref", "return": { "type": "ret_t", @@ -40559,7 +41154,7 @@ "annotation": { "scriptable": true }, - "desc": "\n 清除全部属性。\n\n\n\n\n", + "desc": "\r\n 清除全部属性。\r\n\r\n\r\n\r\n", "name": "object_array_clear_props", "return": { "type": "ret_t", @@ -40571,7 +41166,7 @@ "properties": [ { "name": "props_size", - "desc": " 属性个数。\n\n\n", + "desc": " 属性个数。\r\n\r\n", "type": "uint32_t", "annotation": { "readable": true, @@ -40580,7 +41175,7 @@ }, { "name": "props_capacity", - "desc": " 属性数组的容量。\n\n\n", + "desc": " 属性数组的容量。\r\n\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -40588,7 +41183,7 @@ }, { "name": "props", - "desc": " 属性数组。\n\n\n", + "desc": " 属性数组。\r\n\r\n", "type": "value_t", "annotation": { "readable": true @@ -40596,7 +41191,7 @@ } ], "header": "tkc/object_array.h", - "desc": "\n 简单的动态数组,内部存放value对象。\n\n 访问时属性名称为:\n\n * \"size\"/\"length\" 用于获取数组的长度。\n * index 用于访问属性,-1可以用来追加新元素。\n\n\n", + "desc": "\r\n 简单的动态数组,内部存放value对象。\r\n\r\n 访问时属性名称为:\r\n\r\n * \"size\"/\"length\" 用于获取数组的长度。\r\n * index 用于访问属性,-1可以用来追加新元素。\r\n\r\n", "name": "object_array_t", "parent": "object_t", "annotation": { @@ -40614,7 +41209,7 @@ "scriptable": true, "gc": true }, - "desc": "\n 创建对象。\n\n\n\n\n", + "desc": "\r\n 创建对象。\r\n\r\n\r\n\r\n", "name": "object_default_create", "return": { "type": "object_t*", @@ -40632,7 +41227,7 @@ "annotation": { "constructor": true }, - "desc": "\n 克隆对象。\n\n\n\n\n", + "desc": "\r\n 克隆对象。\r\n\r\n\r\n\r\n", "name": "object_default_create", "return": { "type": "object_t*", @@ -40652,7 +41247,7 @@ "scriptable": true, "gc": true }, - "desc": "\n for script gc\n\n\n\n\n", + "desc": "\r\n for script gc\r\n\r\n\r\n\r\n", "name": "object_default_unref", "return": { "type": "ret_t", @@ -40670,7 +41265,7 @@ "annotation": { "scriptable": true }, - "desc": "\n 清除全部属性。\n\n\n\n\n", + "desc": "\r\n 清除全部属性。\r\n\r\n\r\n\r\n", "name": "object_default_clear_props", "return": { "type": "ret_t", @@ -40696,7 +41291,7 @@ } ], "annotation": {}, - "desc": "\n 查找满足条件的属性,并返回它的值。\n\n\n\n\n", + "desc": "\r\n 查找满足条件的属性,并返回它的值。\r\n\r\n\r\n\r\n", "name": "object_default_find_prop", "return": { "type": "value_t*", @@ -40708,7 +41303,7 @@ "properties": [ { "name": "props_size", - "desc": " 属性个数。\n\n\n", + "desc": " 属性个数。\r\n\r\n", "type": "uint32_t", "annotation": { "readable": true, @@ -40717,7 +41312,7 @@ }, { "name": "props_capacity", - "desc": " 属性数组的容量。\n\n\n", + "desc": " 属性数组的容量。\r\n\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -40725,7 +41320,7 @@ }, { "name": "props", - "desc": " 属性数组。\n\n\n", + "desc": " 属性数组。\r\n\r\n", "type": "named_value_t", "annotation": { "readable": true @@ -40733,7 +41328,7 @@ } ], "header": "tkc/object_default.h", - "desc": "\n 对象接口的缺省实现。\n\n 内部使用有序数组保存所有属性,可以快速查找指定名称的属性。\n\n\n", + "desc": "\r\n 对象接口的缺省实现。\r\n\r\n 内部使用有序数组保存所有属性,可以快速查找指定名称的属性。\r\n\r\n", "name": "object_default_t", "parent": "object_t", "annotation": { @@ -40908,7 +41503,7 @@ } ], "annotation": {}, - "desc": "\n 创建iostream对象。\n\n\n\n\n", + "desc": "\r\n 创建iostream对象。\r\n\r\n\r\n\r\n", "name": "tk_iostream_mem_create", "return": { "type": "tk_iostream_t*", @@ -40919,7 +41514,7 @@ "events": [], "properties": [], "header": "mem/iostream_mem.h", - "desc": "\n iostream base on mem\n\n\n", + "desc": "\r\n iostream base on mem\r\n\r\n", "name": "tk_iostream_mem_t", "parent": "tk_iostream_t", "level": 4 @@ -40936,7 +41531,7 @@ } ], "annotation": {}, - "desc": "\n 创建ostream对象。\n\n> 只能由iostream_shdlc调用。\n\n\n\n\n", + "desc": "\r\n 创建ostream对象。\r\n\r\n> 只能由iostream_shdlc调用。\r\n\r\n\r\n\r\n", "name": "tk_ostream_shdlc_create", "return": { "type": "tk_ostream_t*", @@ -40948,22 +41543,22 @@ "properties": [ { "name": "timeout", - "desc": " 读写超时时间(ms)\n\n", + "desc": " 读写超时时间(ms)\r\n", "type": "uint32_t" }, { "name": "retry_times", - "desc": " 失败重传次数。\n\n", + "desc": " 失败重传次数。\r\n", "type": "uint32_t" }, { "name": "compress_threshold", - "desc": " 激活压缩的阈值。\n\n", + "desc": " 激活压缩的阈值。\r\n", "type": "uint32_t" } ], "header": "shdlc/ostream_shdlc.h", - "desc": "\n reliable ostream base on simple HDLC\n\n\n", + "desc": "\r\n reliable ostream base on simple HDLC\r\n\r\n", "name": "tk_ostream_shdlc_t", "parent": "tk_ostream_t", "level": 4 @@ -40980,7 +41575,7 @@ } ], "annotation": {}, - "desc": "\n 创建iostream对象。\n\n 本函数自动增加real_iostream的引用计数。\n\n\n\n\n", + "desc": "\r\n 创建iostream对象。\r\n\r\n 本函数自动增加real_iostream的引用计数。\r\n\r\n\r\n\r\n", "name": "tk_iostream_shdlc_create", "return": { "type": "tk_iostream_t*", @@ -40991,7 +41586,7 @@ "events": [], "properties": [], "header": "shdlc/iostream_shdlc.h", - "desc": "\n 基于简化版的HDLC协议实现可靠的iostream。\n\n 一般用于串口通信。\n\n\n", + "desc": "\r\n 基于简化版的HDLC协议实现可靠的iostream。\r\n\r\n 一般用于串口通信。\r\n\r\n", "name": "tk_iostream_shdlc_t", "parent": "tk_iostream_t", "level": 4 @@ -41008,7 +41603,7 @@ } ], "annotation": {}, - "desc": "\n 创建ostream对象。\n\n\n\n\n", + "desc": "\r\n 创建ostream对象。\r\n\r\n\r\n\r\n", "name": "tk_ostream_serial_create", "return": { "type": "tk_ostream_t*", @@ -41019,7 +41614,7 @@ "events": [], "properties": [], "header": "serial/ostream_serial.h", - "desc": "\n input stream base on fd\n\n\n", + "desc": "\r\n input stream base on fd\r\n\r\n", "name": "tk_ostream_serial_t", "parent": "tk_ostream_t", "level": 4 @@ -41036,7 +41631,7 @@ } ], "annotation": {}, - "desc": "\n 创建istream对象。\n\n\n\n\n", + "desc": "\r\n 创建istream对象。\r\n\r\n\r\n\r\n", "name": "tk_istream_serial_create", "return": { "type": "tk_istream_t*", @@ -41047,7 +41642,7 @@ "events": [], "properties": [], "header": "serial/istream_serial.h", - "desc": "\n input stream base on fd\n\n\n", + "desc": "\r\n input stream base on fd\r\n\r\n", "name": "tk_istream_serial_t", "parent": "tk_istream_t", "level": 4 @@ -41064,7 +41659,7 @@ } ], "annotation": {}, - "desc": "\n 创建iostream对象。\n\n\n\n\n", + "desc": "\r\n 创建iostream对象。\r\n\r\n\r\n\r\n", "name": "tk_iostream_serial_create", "return": { "type": "tk_iostream_t*", @@ -41075,7 +41670,7 @@ "events": [], "properties": [], "header": "serial/iostream_serial.h", - "desc": "\n input stream base on serial port\n\n\n", + "desc": "\r\n input stream base on serial port\r\n\r\n", "name": "tk_iostream_serial_t", "parent": "tk_iostream_t", "level": 4 @@ -41092,7 +41687,7 @@ } ], "annotation": {}, - "desc": "\n 创建ostream对象。\n\n> 只能由iostream_noisy调用。\n\n\n\n\n", + "desc": "\r\n 创建ostream对象。\r\n\r\n> 只能由iostream_noisy调用。\r\n\r\n\r\n\r\n", "name": "tk_ostream_noisy_create", "return": { "type": "tk_ostream_t*", @@ -41104,22 +41699,22 @@ "properties": [ { "name": "error_level", - "desc": " error level.\n\n\n", + "desc": " error level.\r\n\r\n", "type": "uint32_t" }, { "name": "error_count", - "desc": " 注入的错误数。\n\n", + "desc": " 注入的错误数。\r\n", "type": "uint32_t" }, { "name": "write_count", - "desc": " 写入的次数。\n\n", + "desc": " 写入的次数。\r\n", "type": "uint32_t" } ], "header": "noisy/ostream_noisy.h", - "desc": "\n 在输出流中注入错误,方便进行可靠性测试。\n\n\n", + "desc": "\r\n 在输出流中注入错误,方便进行可靠性测试。\r\n\r\n", "name": "tk_ostream_noisy_t", "parent": "tk_ostream_t", "level": 4 @@ -41136,7 +41731,7 @@ } ], "annotation": {}, - "desc": "\n 创建iostream对象。\n\n 本函数自动增加real_iostream的引用计数。\n\n\n\n\n", + "desc": "\r\n 创建iostream对象。\r\n\r\n 本函数自动增加real_iostream的引用计数。\r\n\r\n\r\n\r\n", "name": "tk_iostream_noisy_create", "return": { "type": "tk_iostream_t*", @@ -41147,7 +41742,7 @@ "events": [], "properties": [], "header": "noisy/iostream_noisy.h", - "desc": "\n 在输出流中注入错误,方便进行可靠性测试。\n\n\n", + "desc": "\r\n 在输出流中注入错误,方便进行可靠性测试。\r\n\r\n", "name": "tk_iostream_noisy_t", "parent": "tk_iostream_t", "level": 4 @@ -41179,7 +41774,7 @@ } ], "annotation": {}, - "desc": "\n 创建ostream对象。\n\n\n\n\n", + "desc": "\r\n 创建ostream对象。\r\n\r\n\r\n\r\n", "name": "tk_ostream_mem_create", "return": { "type": "tk_ostream_t*", @@ -41190,7 +41785,7 @@ "events": [], "properties": [], "header": "mem/ostream_mem.h", - "desc": "\n output stream base on memory\n\n\n", + "desc": "\r\n output stream base on memory\r\n\r\n", "name": "tk_ostream_mem_t", "parent": "tk_ostream_t", "level": 4 @@ -41222,7 +41817,7 @@ } ], "annotation": {}, - "desc": "\n 创建istream对象。\n\n\n\n\n", + "desc": "\r\n 创建istream对象。\r\n\r\n\r\n\r\n", "name": "tk_istream_mem_create", "return": { "type": "tk_istream_t*", @@ -41233,7 +41828,7 @@ "events": [], "properties": [], "header": "mem/istream_mem.h", - "desc": "\n input stream base on memory\n\n\n", + "desc": "\r\n input stream base on memory\r\n\r\n", "name": "tk_istream_mem_t", "parent": "tk_istream_t", "level": 4 @@ -41250,7 +41845,7 @@ } ], "annotation": {}, - "desc": "\n 创建istream对象。\n\n> 只能由iostream_shdlc调用。\n\n\n\n\n", + "desc": "\r\n 创建istream对象。\r\n\r\n> 只能由iostream_shdlc调用。\r\n\r\n\r\n\r\n", "name": "tk_istream_shdlc_create", "return": { "type": "tk_istream_t*", @@ -41262,17 +41857,17 @@ "properties": [ { "name": "timeout", - "desc": " 读写超时时间(ms)\n\n", + "desc": " 读写超时时间(ms)\r\n", "type": "uint32_t" }, { "name": "retry_times", - "desc": " 失败重传次数。\n\n", + "desc": " 失败重传次数。\r\n", "type": "uint32_t" } ], "header": "shdlc/istream_shdlc.h", - "desc": "\n reliable istream base on simple HDLC\n\n\n", + "desc": "\r\n reliable istream base on simple HDLC\r\n\r\n", "name": "tk_istream_shdlc_t", "parent": "tk_istream_t", "level": 4 @@ -41289,7 +41884,7 @@ } ], "annotation": {}, - "desc": "\n 创建ostream对象。\n\n\n\n\n", + "desc": "\r\n 创建ostream对象。\r\n\r\n\r\n\r\n", "name": "tk_ostream_udp_create", "return": { "type": "tk_ostream_t*", @@ -41315,7 +41910,7 @@ } ], "annotation": {}, - "desc": "\n 设置目标。\n\n\n\n\n", + "desc": "\r\n 设置目标。\r\n\r\n\r\n\r\n", "name": "tk_ostream_udp_set_target_with_host", "return": { "type": "ret_t", @@ -41336,7 +41931,7 @@ } ], "annotation": {}, - "desc": "\n 设置目标。\n\n\n\n\n", + "desc": "\r\n 设置目标。\r\n\r\n\r\n\r\n", "name": "tk_ostream_udp_set_target_with_addr", "return": { "type": "ret_t", @@ -41347,7 +41942,7 @@ "events": [], "properties": [], "header": "inet/ostream_udp.h", - "desc": "\n input stream base on socket\n\n\n", + "desc": "\r\n input stream base on socket\r\n\r\n", "name": "tk_ostream_udp_t", "parent": "tk_ostream_t", "level": 4 @@ -41364,7 +41959,7 @@ } ], "annotation": {}, - "desc": "\n 创建ostream对象。\n\n\n\n\n", + "desc": "\r\n 创建ostream对象。\r\n\r\n\r\n\r\n", "name": "tk_ostream_tcp_create", "return": { "type": "tk_ostream_t*", @@ -41375,7 +41970,7 @@ "events": [], "properties": [], "header": "inet/ostream_tcp.h", - "desc": "\n input stream base on socket\n\n\n", + "desc": "\r\n input stream base on socket\r\n\r\n", "name": "tk_ostream_tcp_t", "parent": "tk_ostream_t", "level": 4 @@ -41392,7 +41987,7 @@ } ], "annotation": {}, - "desc": "\n 创建istream对象。\n\n\n\n\n", + "desc": "\r\n 创建istream对象。\r\n\r\n\r\n\r\n", "name": "tk_istream_udp_create", "return": { "type": "tk_istream_t*", @@ -41418,7 +42013,7 @@ } ], "annotation": {}, - "desc": "\n 设置目标。\n\n\n\n\n", + "desc": "\r\n 设置目标。\r\n\r\n\r\n\r\n", "name": "tk_istream_udp_set_target_with_host", "return": { "type": "ret_t", @@ -41439,7 +42034,7 @@ } ], "annotation": {}, - "desc": "\n 设置目标。\n\n\n\n\n", + "desc": "\r\n 设置目标。\r\n\r\n\r\n\r\n", "name": "tk_istream_udp_set_target_with_addr", "return": { "type": "ret_t", @@ -41450,7 +42045,7 @@ "events": [], "properties": [], "header": "inet/istream_udp.h", - "desc": "\n input stream base on socket\n\n\n", + "desc": "\r\n input stream base on socket\r\n\r\n", "name": "tk_istream_udp_t", "parent": "tk_istream_t", "level": 4 @@ -41467,7 +42062,7 @@ } ], "annotation": {}, - "desc": "\n 创建istream对象。\n\n\n\n\n", + "desc": "\r\n 创建istream对象。\r\n\r\n\r\n\r\n", "name": "tk_istream_tcp_create", "return": { "type": "tk_istream_t*", @@ -41478,7 +42073,7 @@ "events": [], "properties": [], "header": "inet/istream_tcp.h", - "desc": "\n input stream base on socket\n\n\n", + "desc": "\r\n input stream base on socket\r\n\r\n", "name": "tk_istream_tcp_t", "parent": "tk_istream_t", "level": 4 @@ -41500,7 +42095,7 @@ } ], "annotation": {}, - "desc": "\n 创建iostream对象(客户端)。\n\n\n\n\n", + "desc": "\r\n 创建iostream对象(客户端)。\r\n\r\n\r\n\r\n", "name": "tk_iostream_udp_create_client", "return": { "type": "tk_iostream_t*", @@ -41516,7 +42111,7 @@ } ], "annotation": {}, - "desc": "\n 创建iostream对象(客户端)。\n\n\n\n\n", + "desc": "\r\n 创建iostream对象(客户端)。\r\n\r\n\r\n\r\n", "name": "tk_iostream_udp_create", "return": { "type": "tk_iostream_t*", @@ -41527,7 +42122,7 @@ "events": [], "properties": [], "header": "inet/iostream_udp.h", - "desc": "\n input stream base on socket\n\n\n", + "desc": "\r\n input stream base on socket\r\n\r\n", "name": "tk_iostream_udp_t", "parent": "tk_iostream_t", "level": 4 @@ -41544,7 +42139,7 @@ } ], "annotation": {}, - "desc": "\n 创建iostream对象。\n\n\n\n\n", + "desc": "\r\n 创建iostream对象。\r\n\r\n\r\n\r\n", "name": "tk_iostream_tcp_create", "return": { "type": "tk_iostream_t*", @@ -41555,7 +42150,7 @@ "events": [], "properties": [], "header": "inet/iostream_tcp.h", - "desc": "\n input stream base on socket\n\n\n", + "desc": "\r\n input stream base on socket\r\n\r\n", "name": "tk_iostream_tcp_t", "parent": "tk_iostream_t", "level": 4 @@ -41572,7 +42167,7 @@ } ], "annotation": {}, - "desc": "\n 创建ostream对象。\n\n\n\n\n", + "desc": "\r\n 创建ostream对象。\r\n\r\n\r\n\r\n", "name": "tk_ostream_file_create", "return": { "type": "tk_ostream_t*", @@ -41583,7 +42178,7 @@ "events": [], "properties": [], "header": "file/ostream_file.h", - "desc": "\n input stream base on file\n\n\n", + "desc": "\r\n input stream base on file\r\n\r\n", "name": "tk_ostream_file_t", "parent": "tk_ostream_t", "level": 4 @@ -41600,7 +42195,7 @@ } ], "annotation": {}, - "desc": "\n 创建istream对象。\n\n\n\n\n", + "desc": "\r\n 创建istream对象。\r\n\r\n\r\n\r\n", "name": "tk_istream_file_create", "return": { "type": "tk_istream_t*", @@ -41611,44 +42206,11 @@ "events": [], "properties": [], "header": "file/istream_file.h", - "desc": "\n input stream base on file\n\n\n", + "desc": "\r\n input stream base on file\r\n\r\n", "name": "tk_istream_file_t", "parent": "tk_istream_t", "level": 4 }, - { - "type": "class", - "methods": [ - { - "params": [ - { - "type": "tk_istream_t*", - "name": "real_istream", - "desc": "实际的istream。" - }, - { - "type": "uint32_t", - "name": "buffer_size", - "desc": "缓冲区的大小。" - } - ], - "annotation": {}, - "desc": "\n 创建istream对象。\n\n 本函数自动增加real_ostream的引用计数。\n\n\n\n\n", - "name": "tk_istream_buffered_create", - "return": { - "type": "tk_istream_t*", - "desc": "返回istream对象。" - } - } - ], - "events": [], - "properties": [], - "header": "buffered/istream_buffered.h", - "desc": "\n buffered input stream。\n\n 如果调用者每次只读取少量数据,可以使用本类对底层istream进行装饰,以提高读取效率。\n\n\n", - "name": "tk_istream_buffered_t", - "parent": "tk_istream_t", - "level": 4 - }, { "type": "class", "methods": [ @@ -41661,7 +42223,7 @@ } ], "annotation": {}, - "desc": "\n 创建ostream对象。\n\n 本函数自动增加real_ostream的引用计数。\n\n\n\n\n", + "desc": "\r\n 创建ostream对象。\r\n\r\n 本函数自动增加real_ostream的引用计数。\r\n\r\n\r\n\r\n", "name": "tk_ostream_buffered_create", "return": { "type": "tk_ostream_t*", @@ -41677,7 +42239,7 @@ } ], "annotation": {}, - "desc": "\n 获取当前缓存数据的长度。\n\n\n\n\n", + "desc": "\r\n 获取当前缓存数据的长度。\r\n\r\n\r\n\r\n", "name": "tk_ostream_buffered_get_size", "return": { "type": "uint32_t", @@ -41688,9 +42250,42 @@ "events": [], "properties": [], "header": "buffered/ostream_buffered.h", - "desc": "\n 先将数据写入一个缓存区,调用flush时才真正写入底层的ostream。\n\n\n", + "desc": "\r\n 先将数据写入一个缓存区,调用flush时才真正写入底层的ostream。\r\n\r\n", "name": "tk_ostream_buffered_t", "parent": "tk_ostream_t", "level": 4 + }, + { + "type": "class", + "methods": [ + { + "params": [ + { + "type": "tk_istream_t*", + "name": "real_istream", + "desc": "实际的istream。" + }, + { + "type": "uint32_t", + "name": "buffer_size", + "desc": "缓冲区的大小。" + } + ], + "annotation": {}, + "desc": "\r\n 创建istream对象。\r\n\r\n 本函数自动增加real_ostream的引用计数。\r\n\r\n\r\n\r\n", + "name": "tk_istream_buffered_create", + "return": { + "type": "tk_istream_t*", + "desc": "返回istream对象。" + } + } + ], + "events": [], + "properties": [], + "header": "buffered/istream_buffered.h", + "desc": "\r\n buffered input stream。\r\n\r\n 如果调用者每次只读取少量数据,可以使用本类对底层istream进行装饰,以提高读取效率。\r\n\r\n", + "name": "tk_istream_buffered_t", + "parent": "tk_istream_t", + "level": 4 } ] \ No newline at end of file From b1d31f0d029a42eb7017eb872120518dd067458a Mon Sep 17 00:00:00 2001 From: lixianjing Date: Fri, 25 Oct 2019 17:45:07 +0800 Subject: [PATCH 36/66] update docs --- src/ext_widgets/image_animation/image_animation.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ext_widgets/image_animation/image_animation.h b/src/ext_widgets/image_animation/image_animation.h index 0e84bb95a7..6d0924b718 100644 --- a/src/ext_widgets/image_animation/image_animation.h +++ b/src/ext_widgets/image_animation/image_animation.h @@ -246,7 +246,7 @@ ret_t image_animation_play(widget_t* widget); /** * @method image_animation_stop - * 停止(并重置index为0)。 + * 停止(并重置index为-1)。 * @annotation ["scriptable"] * @param {widget_t*} widget image_animation对象。 * From e72a9d46668952c685d50e538e36dca579b01904 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Fri, 25 Oct 2019 17:53:38 +0800 Subject: [PATCH 37/66] update docs --- docs/manual/arg_desc_flags_t.md | 1 - docs/manual/asset_data_type_t.md | 1 - docs/manual/asset_font_type_t.md | 1 - docs/manual/asset_image_type_t.md | 1 - docs/manual/asset_info_t.md | 7 - docs/manual/asset_script_type_t.md | 1 - docs/manual/asset_type_t.md | 1 - docs/manual/asset_ui_type_t.md | 1 - docs/manual/assets_manager_t.md | 47 ++- docs/manual/bitmap_flag_t.md | 1 - docs/manual/bitmap_format_t.md | 1 - docs/manual/bitmap_t.md | 17 - docs/manual/children_layouter_default_t.md | 3 - docs/manual/children_layouter_factory_t.md | 7 - docs/manual/children_layouter_list_view_t.md | 2 - docs/manual/children_layouter_t.md | 11 - docs/manual/clip_board_data_type_t.md | 1 - docs/manual/clip_board_t.md | 9 - docs/manual/color_parser_t.md | 2 - docs/manual/color_t.md | 12 - docs/manual/combo_box_ex_t.md | 2 - docs/manual/compressor_t.md | 4 - docs/manual/darray_t.md | 22 - docs/manual/date_time_t.md | 12 - docs/manual/dialog_highlighter_default_t.md | 4 - docs/manual/dialog_highlighter_factory_t.md | 7 - docs/manual/dialog_highlighter_t.md | 10 - docs/manual/dialog_highlighter_type_t.md | 1 - docs/manual/dialog_t.md | 17 - docs/manual/draggable_t.md | 384 ++++++++++++++++++ docs/manual/easing_type_t.md | 1 - docs/manual/emitter_t.md | 67 ++- docs/manual/event_base_type_t.md | 1 - docs/manual/event_source_fd_t.md | 2 - docs/manual/event_source_idle_t.md | 3 - docs/manual/event_source_manager_t.md | 8 - docs/manual/event_source_t.md | 5 - docs/manual/event_source_timer_t.md | 2 - docs/manual/event_t.md | 8 - docs/manual/event_type_t.md | 2 +- docs/manual/font_loader_bitmap_t.md | 2 - docs/manual/font_loader_stb_t.md | 2 - docs/manual/font_loader_t.md | 2 - docs/manual/font_manager_t.md | 12 - docs/manual/font_t.md | 5 - docs/manual/fs_dir_t.md | 4 - docs/manual/fs_file_t.md | 7 - docs/manual/fs_t.md | 1 - docs/manual/func_call_parser_t.md | 5 - docs/manual/func_desc_t.md | 6 - docs/manual/global_t.md | 8 - docs/manual/glyph_format_t.md | 1 - docs/manual/glyph_t.md | 12 - docs/manual/guage_pointer_t.md | 10 - docs/manual/hscroll_label_t.md | 20 - docs/manual/hscrollable_t.md | 1 - docs/manual/idle_info_t.md | 7 - docs/manual/idle_t.md | 6 - docs/manual/im_action_button_info_event_t.md | 3 - docs/manual/im_candidates_event_t.md | 3 - docs/manual/im_commit_event_t.md | 3 - docs/manual/image_animation_t.md | 4 +- docs/manual/image_draw_type_t.md | 1 - docs/manual/image_loader_stb_t.md | 2 - docs/manual/image_loader_t.md | 5 - docs/manual/image_manager_t.md | 13 - docs/manual/images/app_bar_t_0.png | Bin 3992 -> 1543 bytes docs/manual/images/button_group_t_0.png | Bin 4718 -> 1732 bytes docs/manual/images/button_t_0.png | Bin 3801 -> 1508 bytes docs/manual/images/calibration_win_t_0.png | Bin 4975 -> 1781 bytes docs/manual/images/candidates_t_0.png | Bin 4713 -> 1695 bytes docs/manual/images/canvas_widget_t_0.png | Bin 4944 -> 1769 bytes docs/manual/images/check_button_t_0.png | Bin 4720 -> 1743 bytes .../images/children_layouter_default_t_0.png | Bin 7418 -> 2290 bytes .../children_layouter_list_view_t_0.png | Bin 7422 -> 2332 bytes docs/manual/images/color_component_t_0.png | Bin 5116 -> 1751 bytes docs/manual/images/color_picker_t_0.png | Bin 4686 -> 1732 bytes docs/manual/images/color_tile_t_0.png | Bin 4311 -> 1651 bytes docs/manual/images/column_t_0.png | Bin 3742 -> 1508 bytes docs/manual/images/combo_box_ex_t_0.png | Bin 4641 -> 1724 bytes docs/manual/images/combo_box_item_t_0.png | Bin 4882 -> 1740 bytes docs/manual/images/combo_box_t_0.png | Bin 4181 -> 1609 bytes docs/manual/images/dialog_client_t_0.png | Bin 4806 -> 1750 bytes docs/manual/images/dialog_t_0.png | Bin 3882 -> 1533 bytes docs/manual/images/dialog_t_1.png | Bin 8142 -> 4060 bytes docs/manual/images/dialog_title_t_0.png | Bin 4704 -> 1728 bytes docs/manual/images/digit_clock_t_0.png | Bin 4527 -> 1694 bytes docs/manual/images/draggable_t_0.png | Bin 0 -> 1657 bytes docs/manual/images/dragger_t_0.png | Bin 4056 -> 1559 bytes docs/manual/images/edit_t_0.png | Bin 3492 -> 1488 bytes docs/manual/images/event_source_fd_t_0.png | Bin 4882 -> 1746 bytes docs/manual/images/event_source_idle_t_0.png | Bin 5127 -> 1798 bytes docs/manual/images/event_source_t_0.png | Bin 4577 -> 1679 bytes docs/manual/images/event_source_timer_t_0.png | Bin 5202 -> 1833 bytes docs/manual/images/font_loader_bitmap_t_0.png | Bin 5718 -> 1986 bytes docs/manual/images/font_loader_ft_t_0.png | Bin 4955 -> 1833 bytes docs/manual/images/font_loader_stb_t_0.png | Bin 5239 -> 1874 bytes docs/manual/images/gif_image_t_0.png | Bin 4663 -> 1744 bytes docs/manual/images/grid_item_t_0.png | Bin 4290 -> 1636 bytes docs/manual/images/grid_t_0.png | Bin 3596 -> 1501 bytes docs/manual/images/group_box_t_0.png | Bin 4339 -> 1642 bytes docs/manual/images/guage_pointer_t_0.png | Bin 4811 -> 1750 bytes docs/manual/images/guage_t_0.png | Bin 3838 -> 1494 bytes docs/manual/images/hscroll_label_t_0.png | Bin 4789 -> 1747 bytes docs/manual/images/idle_info_t_0.png | Bin 4050 -> 1610 bytes .../im_action_button_info_event_t_0.png | Bin 5931 -> 2012 bytes .../manual/images/im_candidates_event_t_0.png | Bin 5064 -> 1850 bytes docs/manual/images/im_commit_event_t_0.png | Bin 4425 -> 1708 bytes docs/manual/images/image_animation_t_0.png | Bin 4949 -> 1795 bytes docs/manual/images/image_base_t_0.png | Bin 4476 -> 1707 bytes docs/manual/images/image_base_t_1.png | Bin 9292 -> 5206 bytes docs/manual/images/image_loader_stb_t_0.png | Bin 6006 -> 1937 bytes docs/manual/images/image_t_0.png | Bin 4212 -> 1689 bytes docs/manual/images/image_value_t_0.png | Bin 4611 -> 1717 bytes docs/manual/images/input_engine_null_t_0.png | Bin 5503 -> 1888 bytes .../manual/images/input_engine_pinyin_t_0.png | Bin 5857 -> 1955 bytes docs/manual/images/input_engine_t_0.png | Bin 9049 -> 4034 bytes .../images/input_method_default_t_0.png | Bin 6134 -> 2001 bytes docs/manual/images/input_method_null_t_0.png | Bin 5698 -> 1901 bytes docs/manual/images/input_method_sdl_t_0.png | Bin 5772 -> 1927 bytes docs/manual/images/input_method_t_0.png | Bin 12939 -> 5612 bytes docs/manual/images/key_event_t_0.png | Bin 3767 -> 1578 bytes docs/manual/images/keyboard_t_0.png | Bin 4295 -> 1627 bytes docs/manual/images/label_t_0.png | Bin 3664 -> 1485 bytes docs/manual/images/lcd_mono_t_0.png | Bin 3329 -> 1508 bytes docs/manual/images/lcd_profile_t_0.png | Bin 4107 -> 1630 bytes docs/manual/images/line_number_t_0.png | Bin 4603 -> 1692 bytes docs/manual/images/list_item_t_0.png | Bin 4074 -> 1618 bytes docs/manual/images/list_view_h_t_0.png | Bin 4501 -> 1688 bytes docs/manual/images/list_view_t_0.png | Bin 4156 -> 1627 bytes docs/manual/images/mledit_t_0.png | Bin 3779 -> 1520 bytes docs/manual/images/mutable_image_t_0.png | Bin 5113 -> 1865 bytes docs/manual/images/native_window_t_0.png | Bin 4753 -> 1745 bytes docs/manual/images/object_array_t_0.png | Bin 4814 -> 1742 bytes docs/manual/images/object_default_t_0.png | Bin 4958 -> 1768 bytes docs/manual/images/object_t_0.png | Bin 3724 -> 1551 bytes docs/manual/images/orientation_event_t_0.png | Bin 4774 -> 1743 bytes docs/manual/images/overlay_t_0.png | Bin 4033 -> 1562 bytes docs/manual/images/pages_t_0.png | Bin 3901 -> 1501 bytes docs/manual/images/paint_event_t_0.png | Bin 4291 -> 1627 bytes docs/manual/images/pointer_event_t_0.png | Bin 4401 -> 1680 bytes docs/manual/images/popup_t_0.png | Bin 3705 -> 1477 bytes docs/manual/images/progress_bar_t_0.png | Bin 4957 -> 1729 bytes docs/manual/images/progress_circle_t_0.png | Bin 5327 -> 1772 bytes docs/manual/images/prop_change_event_t_0.png | Bin 5145 -> 1793 bytes docs/manual/images/rich_text_t_0.png | Bin 4100 -> 1632 bytes docs/manual/images/row_t_0.png | Bin 3445 -> 1462 bytes docs/manual/images/scroll_bar_t_0.png | Bin 4511 -> 1666 bytes docs/manual/images/scroll_view_t_0.png | Bin 4555 -> 1698 bytes .../images/self_layouter_default_t_0.png | Bin 6325 -> 2089 bytes docs/manual/images/self_layouter_menu_t_0.png | Bin 5807 -> 2027 bytes docs/manual/images/slide_indicator_t_0.png | Bin 5040 -> 1810 bytes docs/manual/images/slide_menu_t_0.png | Bin 4464 -> 1686 bytes docs/manual/images/slide_view_t_0.png | Bin 4512 -> 1688 bytes docs/manual/images/slider_t_0.png | Bin 3795 -> 1533 bytes docs/manual/images/spin_box_t_0.png | Bin 3772 -> 1565 bytes docs/manual/images/style_const_t_0.png | Bin 4474 -> 1696 bytes docs/manual/images/style_mutable_t_0.png | Bin 4626 -> 1780 bytes docs/manual/images/svg_image_t_0.png | Bin 4608 -> 1749 bytes docs/manual/images/switch_t_0.png | Bin 3891 -> 1525 bytes docs/manual/images/system_bar_t_0.png | Bin 4823 -> 1812 bytes docs/manual/images/system_info_t_0.png | Bin 4661 -> 1702 bytes docs/manual/images/tab_button_group_t_0.png | Bin 5194 -> 1821 bytes docs/manual/images/tab_button_t_0.png | Bin 4470 -> 1661 bytes docs/manual/images/tab_control_t_0.png | Bin 4535 -> 1690 bytes docs/manual/images/tab_control_t_1.png | Bin 12337 -> 5255 bytes docs/manual/images/text_selector_t_0.png | Bin 4795 -> 1746 bytes docs/manual/images/time_clock_t_0.png | Bin 4582 -> 1680 bytes docs/manual/images/timer_info_t_0.png | Bin 4371 -> 1654 bytes docs/manual/images/tk_iostream_mem_t_0.png | Bin 5413 -> 1890 bytes docs/manual/images/tk_iostream_noisy_t_0.png | Bin 5781 -> 1986 bytes docs/manual/images/tk_iostream_serial_t_0.png | Bin 5694 -> 2001 bytes docs/manual/images/tk_iostream_shdlc_t_0.png | Bin 5838 -> 1979 bytes docs/manual/images/tk_iostream_t_0.png | Bin 4625 -> 1705 bytes docs/manual/images/tk_iostream_tcp_t_0.png | Bin 5628 -> 1908 bytes docs/manual/images/tk_iostream_udp_t_0.png | Bin 5704 -> 1912 bytes .../manual/images/tk_istream_buffered_t_0.png | Bin 5592 -> 1986 bytes docs/manual/images/tk_istream_file_t_0.png | Bin 5167 -> 1868 bytes docs/manual/images/tk_istream_mem_t_0.png | Bin 4816 -> 1844 bytes docs/manual/images/tk_istream_serial_t_0.png | Bin 5441 -> 1930 bytes docs/manual/images/tk_istream_shdlc_t_0.png | Bin 5458 -> 1942 bytes docs/manual/images/tk_istream_t_0.png | Bin 4406 -> 1681 bytes docs/manual/images/tk_istream_tcp_t_0.png | Bin 5034 -> 1860 bytes docs/manual/images/tk_istream_udp_t_0.png | Bin 5040 -> 1870 bytes .../manual/images/tk_ostream_buffered_t_0.png | Bin 5734 -> 1980 bytes docs/manual/images/tk_ostream_file_t_0.png | Bin 5206 -> 1867 bytes docs/manual/images/tk_ostream_mem_t_0.png | Bin 4857 -> 1840 bytes docs/manual/images/tk_ostream_noisy_t_0.png | Bin 5556 -> 1938 bytes docs/manual/images/tk_ostream_serial_t_0.png | Bin 5479 -> 1926 bytes docs/manual/images/tk_ostream_shdlc_t_0.png | Bin 5544 -> 1933 bytes docs/manual/images/tk_ostream_t_0.png | Bin 4432 -> 1681 bytes docs/manual/images/tk_ostream_tcp_t_0.png | Bin 5148 -> 1858 bytes docs/manual/images/tk_ostream_udp_t_0.png | Bin 5121 -> 1868 bytes docs/manual/images/ui_binary_writer_t_0.png | Bin 5409 -> 1884 bytes docs/manual/images/ui_builder_default_t_0.png | Bin 5578 -> 1899 bytes docs/manual/images/ui_builder_t_0.png | Bin 11493 -> 6576 bytes docs/manual/images/ui_loader_default_t_0.png | Bin 5522 -> 1856 bytes docs/manual/images/ui_loader_t_0.png | Bin 8713 -> 4477 bytes docs/manual/images/ui_loader_xml_t_0.png | Bin 4868 -> 1799 bytes docs/manual/images/ui_xml_writer_t_0.png | Bin 4808 -> 1781 bytes docs/manual/images/value_desc_binary_t_0.png | Bin 5843 -> 1935 bytes docs/manual/images/value_desc_bool_t_0.png | Bin 5530 -> 1830 bytes docs/manual/images/value_desc_double_t_0.png | Bin 5696 -> 1896 bytes docs/manual/images/value_desc_float_t_0.png | Bin 5452 -> 1886 bytes docs/manual/images/value_desc_int16_t_0.png | Bin 5561 -> 1894 bytes docs/manual/images/value_desc_int32_t_0.png | Bin 5637 -> 1906 bytes docs/manual/images/value_desc_int64_t_0.png | Bin 5622 -> 1910 bytes docs/manual/images/value_desc_int8_t_0.png | Bin 5521 -> 1835 bytes .../images/value_desc_int_enums_t_0.png | Bin 5948 -> 1964 bytes docs/manual/images/value_desc_string_t_0.png | Bin 5715 -> 1911 bytes docs/manual/images/value_desc_uint16_t_0.png | Bin 5726 -> 1905 bytes docs/manual/images/value_desc_uint32_t_0.png | Bin 5803 -> 1914 bytes docs/manual/images/value_desc_uint64_t_0.png | Bin 5778 -> 1922 bytes docs/manual/images/value_desc_uint8_t_0.png | Bin 5624 -> 1870 bytes docs/manual/images/vgcanvas_t_0.png | Bin 23265 -> 14025 bytes docs/manual/images/view_t_0.png | Bin 3544 -> 1499 bytes docs/manual/images/wheel_event_t_0.png | Bin 4208 -> 1636 bytes docs/manual/images/widget_factory_t_0.png | Bin 4776 -> 1766 bytes docs/manual/images/widget_t_0.png | Bin 15856 -> 11095 bytes docs/manual/images/widget_t_1.png | Bin 3151 -> 1322 bytes docs/manual/images/widget_t_2.png | Bin 4727 -> 1483 bytes docs/manual/images/window_base_t_0.png | Bin 4657 -> 1710 bytes docs/manual/images/window_base_t_1.png | Bin 15609 -> 9793 bytes docs/manual/images/window_event_t_0.png | Bin 4204 -> 1669 bytes .../images/window_manager_default_t_0.png | Bin 6693 -> 2124 bytes .../images/window_manager_simple_t_0.png | Bin 6293 -> 2112 bytes docs/manual/images/window_manager_t_0.png | Bin 4925 -> 1779 bytes docs/manual/images/window_t_0.png | Bin 3796 -> 1535 bytes docs/manual/indicator_default_paint_t.md | 1 - docs/manual/input_engine_null_t.md | 2 - docs/manual/input_engine_pinyin_t.md | 2 - docs/manual/input_engine_t.md | 5 - docs/manual/input_method_default_t.md | 2 - docs/manual/input_method_null_t.md | 2 - docs/manual/input_method_sdl_t.md | 3 - docs/manual/input_method_t.md | 19 - docs/manual/input_type_t.md | 1 - docs/manual/key_code_t.md | 1 - docs/manual/key_event_t.md | 16 - docs/manual/line_number_t.md | 7 - docs/manual/locale_info_t.md | 41 +- docs/manual/mledit_t.md | 16 - docs/manual/named_value_t.md | 11 - docs/manual/native_window_t.md | 6 - docs/manual/object_array_t.md | 8 - docs/manual/object_default_t.md | 9 - docs/manual/object_t.md | 41 -- docs/manual/orientation_event_t.md | 4 - docs/manual/overlay_t.md | 3 - docs/manual/paint_event_t.md | 4 - docs/manual/point_t.md | 3 - docs/manual/pointer_event_t.md | 12 - docs/manual/preload_res_t.md | 1 - docs/manual/prop_change_event_t.md | 4 - docs/manual/prop_desc_flags_t.md | 1 - docs/manual/rbuffer_t.md | 16 - docs/manual/rect_t.md | 9 - docs/manual/rgba_t.md | 5 - docs/manual/rich_text_t.md | 5 - docs/manual/ring_buffer_t.md | 24 -- docs/manual/self_layouter_default_t.md | 2 - docs/manual/self_layouter_factory_t.md | 7 - docs/manual/self_layouter_menu_t.md | 2 - docs/manual/self_layouter_t.md | 10 - docs/manual/shortcut_t.md | 18 - docs/manual/slide_indicator_t.md | 24 -- docs/manual/slist_t.md | 16 - docs/manual/str_t.md | 36 -- docs/manual/style_const_t.md | 2 - docs/manual/style_factory_t.md | 4 - docs/manual/style_id_t.md | 1 - docs/manual/style_mutable_t.md | 14 - docs/manual/style_t.md | 9 - docs/manual/suggest_words_t.md | 4 - docs/manual/system_info_t.md | 25 -- docs/manual/text_edit_state_t.md | 1 - docs/manual/text_edit_t.md | 27 -- docs/manual/theme_t.md | 8 - docs/manual/time_now_t.md | 3 - docs/manual/timer_info_t.md | 11 - docs/manual/timer_t.md | 9 - docs/manual/tk_cond_var_t.md | 5 - docs/manual/tk_iostream_mem_t.md | 2 - docs/manual/tk_iostream_noisy_t.md | 2 - docs/manual/tk_iostream_serial_t.md | 2 - docs/manual/tk_iostream_shdlc_t.md | 2 - docs/manual/tk_iostream_t.md | 3 - docs/manual/tk_iostream_tcp_t.md | 2 - docs/manual/tk_iostream_udp_t.md | 3 - docs/manual/tk_istream_buffered_t.md | 2 - docs/manual/tk_istream_file_t.md | 2 - docs/manual/tk_istream_mem_t.md | 2 - docs/manual/tk_istream_serial_t.md | 2 - docs/manual/tk_istream_shdlc_t.md | 4 - docs/manual/tk_istream_t.md | 7 - docs/manual/tk_istream_tcp_t.md | 2 - docs/manual/tk_istream_udp_t.md | 4 - docs/manual/tk_mem_t.md | 5 - docs/manual/tk_mutex_t.md | 5 - docs/manual/tk_ostream_buffered_t.md | 3 - docs/manual/tk_ostream_file_t.md | 2 - docs/manual/tk_ostream_mem_t.md | 2 - docs/manual/tk_ostream_noisy_t.md | 5 - docs/manual/tk_ostream_serial_t.md | 2 - docs/manual/tk_ostream_shdlc_t.md | 5 - docs/manual/tk_ostream_t.md | 6 - docs/manual/tk_ostream_tcp_t.md | 2 - docs/manual/tk_ostream_udp_t.md | 4 - docs/manual/tk_thread_t.md | 83 +++- docs/manual/tokenizer_t.md | 14 - docs/manual/ui_binary_writer_t.md | 2 - docs/manual/ui_builder_default_t.md | 2 - docs/manual/ui_builder_t.md | 7 - docs/manual/ui_feedback_t.md | 3 - docs/manual/ui_loader_default_t.md | 2 - docs/manual/ui_loader_t.md | 3 - docs/manual/ui_loader_xml_t.md | 2 - docs/manual/ui_xml_writer_t.md | 2 - docs/manual/value_desc_binary_t.md | 3 - docs/manual/value_desc_bool_t.md | 2 - docs/manual/value_desc_double_t.md | 6 - docs/manual/value_desc_float_t.md | 6 - docs/manual/value_desc_int16_t.md | 6 - docs/manual/value_desc_int32_t.md | 6 - docs/manual/value_desc_int64_t.md | 6 - docs/manual/value_desc_int8_t.md | 6 - docs/manual/value_desc_int_enums_t.md | 3 - docs/manual/value_desc_string_enums_t.md | 3 - docs/manual/value_desc_string_t.md | 4 - docs/manual/value_desc_t.md | 7 - docs/manual/value_desc_type_t.md | 1 - docs/manual/value_desc_uint16_t.md | 6 - docs/manual/value_desc_uint32_t.md | 6 - docs/manual/value_desc_uint64_t.md | 6 - docs/manual/value_desc_uint8_t.md | 6 - docs/manual/value_format_type_t.md | 1 - docs/manual/value_t.md | 52 --- docs/manual/value_type_t.md | 1 - docs/manual/vgcanvas_t.md | 72 ---- docs/manual/wbuffer_t.md | 16 - docs/manual/wheel_event_t.md | 7 - docs/manual/widget_animator_prop2_t.md | 3 - docs/manual/widget_animator_prop_t.md | 3 - docs/manual/widget_animator_scroll_t.md | 3 - docs/manual/widget_animator_t.md | 15 - docs/manual/widget_factory_t.md | 7 - docs/manual/widget_prop_t.md | 1 - docs/manual/widget_state_t.md | 1 - docs/manual/widget_t.md | 208 ++++------ docs/manual/widget_type_t.md | 1 - docs/manual/window_animator_factory_t.md | 9 - docs/manual/window_animator_t.md | 6 - docs/manual/window_animator_type_t.md | 1 - docs/manual/window_closable_t.md | 1 - docs/manual/window_event_t.md | 5 - docs/manual/window_stage_t.md | 1 - docs/manual/window_t.md | 10 - docs/manual/wstr_t.md | 26 -- tools/idl_gen/idl.json | 2 +- 359 files changed, 646 insertions(+), 1447 deletions(-) create mode 100644 docs/manual/draggable_t.md create mode 100644 docs/manual/images/draggable_t_0.png diff --git a/docs/manual/arg_desc_flags_t.md b/docs/manual/arg_desc_flags_t.md index 089404e220..9010745908 100644 --- a/docs/manual/arg_desc_flags_t.md +++ b/docs/manual/arg_desc_flags_t.md @@ -1,7 +1,6 @@ ## arg\_desc\_flags\_t ### 概述 参数描述范围常量定义。 - ### 常量

diff --git a/docs/manual/asset_data_type_t.md b/docs/manual/asset_data_type_t.md index 54eb4e494d..a0271d471f 100644 --- a/docs/manual/asset_data_type_t.md +++ b/docs/manual/asset_data_type_t.md @@ -1,7 +1,6 @@ ## asset\_data\_type\_t ### 概述 数据资源类型定义。 - ### 常量

diff --git a/docs/manual/asset_font_type_t.md b/docs/manual/asset_font_type_t.md index b4df54e83c..d72e176e5c 100644 --- a/docs/manual/asset_font_type_t.md +++ b/docs/manual/asset_font_type_t.md @@ -1,7 +1,6 @@ ## asset\_font\_type\_t ### 概述 字体资源类型定义。 - ### 常量

diff --git a/docs/manual/asset_image_type_t.md b/docs/manual/asset_image_type_t.md index 51d2d8074d..86046a7bc5 100644 --- a/docs/manual/asset_image_type_t.md +++ b/docs/manual/asset_image_type_t.md @@ -1,7 +1,6 @@ ## asset\_image\_type\_t ### 概述 图片资源类型定义。 - ### 常量

diff --git a/docs/manual/asset_info_t.md b/docs/manual/asset_info_t.md index d61273aa96..f1469adc5c 100644 --- a/docs/manual/asset_info_t.md +++ b/docs/manual/asset_info_t.md @@ -2,7 +2,6 @@ ### 概述 单个资源的描述信息。 - ---------------------------------- ### 属性

@@ -20,7 +19,6 @@ >

资源是否在ROM中。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

名称。 - * 类型:char* | 特性 | 是否支持 | @@ -47,7 +44,6 @@ is\_in\_rom == FALSE时才有效。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -60,7 +56,6 @@ >

大小。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -73,7 +68,6 @@ >

子类型。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -86,7 +80,6 @@ >

类型。 - * 类型:uint16\_t | 特性 | 是否支持 | diff --git a/docs/manual/asset_script_type_t.md b/docs/manual/asset_script_type_t.md index 23df77cd96..fc5981b3c9 100644 --- a/docs/manual/asset_script_type_t.md +++ b/docs/manual/asset_script_type_t.md @@ -1,7 +1,6 @@ ## asset\_script\_type\_t ### 概述 脚本资源类型定义。 - ### 常量

diff --git a/docs/manual/asset_type_t.md b/docs/manual/asset_type_t.md index ab501ecb7a..a2311f4912 100644 --- a/docs/manual/asset_type_t.md +++ b/docs/manual/asset_type_t.md @@ -1,7 +1,6 @@ ## asset\_type\_t ### 概述 资源类型常量定义。 - ### 常量

diff --git a/docs/manual/asset_ui_type_t.md b/docs/manual/asset_ui_type_t.md index c9ebca3fa1..adf25c2f90 100644 --- a/docs/manual/asset_ui_type_t.md +++ b/docs/manual/asset_ui_type_t.md @@ -1,7 +1,6 @@ ## asset\_ui\_type\_t ### 概述 UI资源类型定义。 - ### 常量

diff --git a/docs/manual/assets_manager_t.md b/docs/manual/assets_manager_t.md index e3a2cb844b..c2aba9b5fa 100644 --- a/docs/manual/assets_manager_t.md +++ b/docs/manual/assets_manager_t.md @@ -31,7 +31,6 @@ ``` - ---------------------------------- ### 函数

@@ -51,6 +50,7 @@ | assets\_manager\_preload | 从文件系统中加载指定的资源,并缓存到内存中。在定义了宏WITH\_FS\_RES时才生效。 | | assets\_manager\_ref | 在资源管理器的缓存中查找指定的资源并引用它,如果缓存中不存在,尝试加载该资源。 | | assets\_manager\_set | 设置缺省资源管理器。 | +| assets\_manager\_set\_custom\_build\_asset\_dir | 设置一个函数,该函数用于生成资源路径。 | | assets\_manager\_set\_locale\_info | 设置locale_info对象。 | | assets\_manager\_set\_res\_root | 设置资源所在的目录(其下目录结构请参考demos)。 | | assets\_manager\_set\_system\_info | 设置system_info对象。 | @@ -65,7 +65,6 @@ - * 函数原型: ``` @@ -86,7 +85,6 @@ assets_manager_t* assets_manager (); - * 函数原型: ``` @@ -109,7 +107,6 @@ ret_t assets_manager_add (assets_manager_t* am, asset_info_t info); - * 函数原型: ``` @@ -131,7 +128,6 @@ ret_t assets_manager_clear_all (assets_manager_t* am); - * 函数原型: ``` @@ -154,7 +150,6 @@ ret_t assets_manager_clear_cache (assets_manager_t* am, asset_type_t type); - * 函数原型: ``` @@ -176,7 +171,6 @@ assets_manager_t* assets_manager_create (uint32_t init_nr); - * 函数原型: ``` @@ -198,7 +192,6 @@ ret_t assets_manager_deinit (assets_manager_t* am); - * 函数原型: ``` @@ -220,7 +213,6 @@ ret_t assets_manager_destroy (assets_manager_t* am); - * 函数原型: ``` @@ -244,7 +236,6 @@ asset_info_t* assets_manager_find_in_cache (assets_manager_t* am, asset_type_t t - * 函数原型: ``` @@ -267,7 +258,6 @@ assets_manager_t* assets_manager_init (assets_manager_t* am, uint32_t init_nr); - * 函数原型: ``` @@ -291,7 +281,6 @@ asset_info_t* assets_manager_load (assets_manager_t* am, asset_type_t type, char - * 函数原型: ``` @@ -315,7 +304,6 @@ ret_t assets_manager_preload (assets_manager_t* am, asset_type_t type, char* nam - * 函数原型: ``` @@ -339,7 +327,6 @@ asset_info_t* assets_manager_ref (assets_manager_t* am, asset_type_t type, char* - * 函数原型: ``` @@ -352,6 +339,33 @@ ret_t assets_manager_set (assets_manager_t* am); | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | am | assets\_manager\_t* | asset manager对象。 | +#### assets\_manager\_set\_custom\_build\_asset\_dir 函数 +----------------------- + +* 函数功能: + +>

设置一个函数,该函数用于生成资源路径。 + + > + 有时我们需要优先加载用户自定义的资源,加载失败才加载系统缺省的,可用设置一个函数去实现这类功能。 + + + + +* 函数原型: + +``` +ret_t assets_manager_set_custom_build_asset_dir (assets_manager_t* am, assets_manager_build_asset_dir_t custom_build_asset_dir, void* ctx); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| am | assets\_manager\_t* | asset manager对象。 | +| custom\_build\_asset\_dir | assets\_manager\_build\_asset\_dir\_t | 回调函数。 | +| ctx | void* | 回调函数的上下文。 | #### assets\_manager\_set\_locale\_info 函数 ----------------------- @@ -361,7 +375,6 @@ ret_t assets_manager_set (assets_manager_t* am); - * 函数原型: ``` @@ -384,7 +397,6 @@ ret_t assets_manager_set_locale_info (assets_manager_t* am, locale_info_t* local - * 函数原型: ``` @@ -407,7 +419,6 @@ ret_t assets_manager_set_res_root (assets_manager_t* am, const char* res_root); - * 函数原型: ``` @@ -431,7 +442,6 @@ ret_t assets_manager_set_system_info (assets_manager_t* am, system_info_t* syste - * 函数原型: ``` @@ -454,7 +464,6 @@ ret_t assets_manager_set_theme (assets_manager_t* am, const char* theme); - * 函数原型: ``` diff --git a/docs/manual/bitmap_flag_t.md b/docs/manual/bitmap_flag_t.md index 6eb345b294..10e3ed09f8 100644 --- a/docs/manual/bitmap_flag_t.md +++ b/docs/manual/bitmap_flag_t.md @@ -1,7 +1,6 @@ ## bitmap\_flag\_t ### 概述 位图标志常量定义。 - ### 常量

diff --git a/docs/manual/bitmap_format_t.md b/docs/manual/bitmap_format_t.md index d82d4b10dc..1e29eb80b9 100644 --- a/docs/manual/bitmap_format_t.md +++ b/docs/manual/bitmap_format_t.md @@ -1,7 +1,6 @@ ## bitmap\_format\_t ### 概述 位图格式常量定义。 - ### 常量

diff --git a/docs/manual/bitmap_t.md b/docs/manual/bitmap_t.md index cf692b82d6..a5f8d7190d 100644 --- a/docs/manual/bitmap_t.md +++ b/docs/manual/bitmap_t.md @@ -2,7 +2,6 @@ ### 概述 位图。 - ---------------------------------- ### 函数

@@ -38,7 +37,6 @@ >

创建图片对象(一般供脚本语言中使用)。 - * 函数原型: ``` @@ -59,7 +57,6 @@ bitmap_t* bitmap_create (); - * 函数原型: ``` @@ -83,7 +80,6 @@ bitmap_t* bitmap_create_ex (uint32_t w, uint32_t h, uint32_t line_length, bitmap >

销毁图片。 - * 函数原型: ``` @@ -105,7 +101,6 @@ ret_t bitmap_destroy (bitmap_t* bitmap); - * 函数原型: ``` @@ -127,7 +122,6 @@ uint32_t bitmap_get_bpp (bitmap_t* bitmap); - * 函数原型: ``` @@ -149,7 +143,6 @@ ret_t bitmap_get_line_length (bitmap_t* bitmap); - * 函数原型: ``` @@ -174,7 +167,6 @@ ret_t bitmap_get_pixel (bitmap_t* bitmap, uint32_t x, uint32_t y, rgba_t* rgba); - * 函数原型: ``` @@ -201,7 +193,6 @@ ret_t bitmap_init (bitmap_t* bitmap, uint32_t w, uint32_t h, bitmap_format_t for - * 函数原型: ``` @@ -228,7 +219,6 @@ ret_t bitmap_init_from_rgba (bitmap_t* bitmap, uint32_t w, uint32_t h, bitmap_fo - * 函数原型: ``` @@ -247,7 +237,6 @@ ret_t bitmap_set_line_length (bitmap_t* bitmap, uint32_t line_length); >

图片数据。 - * 类型:uint8\_t* | 特性 | 是否支持 | @@ -259,7 +248,6 @@ ret_t bitmap_set_line_length (bitmap_t* bitmap, uint32_t line_length); >

标志。请参考{bitmap_flag_t}。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -272,7 +260,6 @@ ret_t bitmap_set_line_length (bitmap_t* bitmap, uint32_t line_length); >

格式。请参考{bitmap_format_t}。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -285,7 +272,6 @@ ret_t bitmap_set_line_length (bitmap_t* bitmap, uint32_t line_length); >

高度。 - * 类型:wh\_t | 特性 | 是否支持 | @@ -298,7 +284,6 @@ ret_t bitmap_set_line_length (bitmap_t* bitmap, uint32_t line_length); >

每一行实际占用的内存(也称为stride或pitch),一般情况下为w*bpp。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -311,7 +296,6 @@ ret_t bitmap_set_line_length (bitmap_t* bitmap, uint32_t line_length); >

名称。 - * 类型:const char* | 特性 | 是否支持 | @@ -324,7 +308,6 @@ ret_t bitmap_set_line_length (bitmap_t* bitmap, uint32_t line_length); >

宽度。 - * 类型:wh\_t | 特性 | 是否支持 | diff --git a/docs/manual/children_layouter_default_t.md b/docs/manual/children_layouter_default_t.md index a4459c7d13..96a6fd4f52 100644 --- a/docs/manual/children_layouter_default_t.md +++ b/docs/manual/children_layouter_default_t.md @@ -9,7 +9,6 @@ https://github.com/zlgopen/awtk/blob/master/docs/children_layouter_default.md) - ---------------------------------- ### 函数

@@ -29,7 +28,6 @@ https://github.com/zlgopen/awtk/blob/master/docs/children_layouter_default.md) - * 函数原型: ``` @@ -50,7 +48,6 @@ children_layouter_t* children_layouter_default_create (); - * 函数原型: ``` diff --git a/docs/manual/children_layouter_factory_t.md b/docs/manual/children_layouter_factory_t.md index 60b1ed555d..6f2ff257cf 100644 --- a/docs/manual/children_layouter_factory_t.md +++ b/docs/manual/children_layouter_factory_t.md @@ -3,7 +3,6 @@ 子控件布局算法工厂。 - ---------------------------------- ### 函数

@@ -24,7 +23,6 @@ >

获取缺省的子控件布局算法工厂对象。 - * 函数原型: ``` @@ -45,7 +43,6 @@ children_layouter_factory_t* children_layouter_factory (); - * 函数原型: ``` @@ -66,7 +63,6 @@ children_layouter_factory_t* children_layouter_factory_create (); - * 函数原型: ``` @@ -89,7 +85,6 @@ children_layouter_t* children_layouter_factory_create_layouter (children_layoute - * 函数原型: ``` @@ -111,7 +106,6 @@ ret_t children_layouter_factory_destroy (children_layouter_factory_t* factory); - * 函数原型: ``` @@ -135,7 +129,6 @@ ret_t children_layouter_factory_register (children_layouter_factory_t* factory, - * 函数原型: ``` diff --git a/docs/manual/children_layouter_list_view_t.md b/docs/manual/children_layouter_list_view_t.md index 641b7912eb..e15ebda845 100644 --- a/docs/manual/children_layouter_list_view_t.md +++ b/docs/manual/children_layouter_list_view_t.md @@ -9,7 +9,6 @@ https://github.com/zlgopen/awtk/blob/master/docs/children_layouter_list_view.md) - ---------------------------------- ### 函数

@@ -28,7 +27,6 @@ https://github.com/zlgopen/awtk/blob/master/docs/children_layouter_list_view.md) - * 函数原型: ``` diff --git a/docs/manual/children_layouter_t.md b/docs/manual/children_layouter_t.md index 5d78210493..8b8b2c3fc1 100644 --- a/docs/manual/children_layouter_t.md +++ b/docs/manual/children_layouter_t.md @@ -5,7 +5,6 @@ 按特定算法对子控件进行排版布局,子类需要实现vtable中的函数。 - ---------------------------------- ### 函数

@@ -31,7 +30,6 @@ - * 函数原型: ``` @@ -54,7 +52,6 @@ children_layouter_t* children_layouter_create (const char* params); - * 函数原型: ``` @@ -77,7 +74,6 @@ ret_t children_layouter_destroy (children_layouter_t* layouter); - * 函数原型: ``` @@ -102,7 +98,6 @@ ret_t children_layouter_get_param (children_layouter_t* layouter, const char* na - * 函数原型: ``` @@ -127,7 +122,6 @@ ret_t children_layouter_get_param_float (children_layouter_t* layouter, const ch - * 函数原型: ``` @@ -152,7 +146,6 @@ ret_t children_layouter_get_param_int (children_layouter_t* layouter, const char - * 函数原型: ``` @@ -175,7 +168,6 @@ bool_t children_layouter_is_valid (children_layouter_t* layouter); - * 函数原型: ``` @@ -199,7 +191,6 @@ ret_t children_layouter_layout (children_layouter_t* layouter, widget_t* widget) - * 函数原型: ``` @@ -224,7 +215,6 @@ ret_t children_layouter_set_param (children_layouter_t* layouter, const char* na - * 函数原型: ``` @@ -248,7 +238,6 @@ ret_t children_layouter_set_param_str (children_layouter_t* layouter, const char - * 函数原型: ``` diff --git a/docs/manual/clip_board_data_type_t.md b/docs/manual/clip_board_data_type_t.md index 0ceba9fcc7..0499fc3888 100644 --- a/docs/manual/clip_board_data_type_t.md +++ b/docs/manual/clip_board_data_type_t.md @@ -1,7 +1,6 @@ ## clip\_board\_data\_type\_t ### 概述 剪切板数据类型定义。 - ### 常量

diff --git a/docs/manual/clip_board_t.md b/docs/manual/clip_board_t.md index 20049efe2a..69088361e3 100644 --- a/docs/manual/clip_board_t.md +++ b/docs/manual/clip_board_t.md @@ -2,7 +2,6 @@ ### 概述 剪切板接口。 - ---------------------------------- ### 函数

@@ -26,7 +25,6 @@ - * 函数原型: ``` @@ -47,7 +45,6 @@ ret_t clip_board (); - * 函数原型: ``` @@ -69,7 +66,6 @@ ret_t clip_board_clear (clip_board_t* cl); - * 函数原型: ``` @@ -91,7 +87,6 @@ ret_t clip_board_destroy (clip_board_t* cl); - * 函数原型: ``` @@ -116,7 +111,6 @@ ret_t clip_board_get_data (clip_board_t* cl, clip_board_data_type_t* type, void* - * 函数原型: ``` @@ -137,7 +131,6 @@ const char* clip_board_get_text (); - * 函数原型: ``` @@ -159,7 +152,6 @@ ret_t clip_board_set (clip_board_t* cl); - * 函数原型: ``` @@ -184,7 +176,6 @@ ret_t clip_board_set_data (clip_board_t* cl, clip_board_data_type_t type, const - * 函数原型: ``` diff --git a/docs/manual/color_parser_t.md b/docs/manual/color_parser_t.md index bf0e67240d..d062165d93 100644 --- a/docs/manual/color_parser_t.md +++ b/docs/manual/color_parser_t.md @@ -13,7 +13,6 @@ ``` - ---------------------------------- ### 函数

@@ -38,7 +37,6 @@ - * 函数原型: ``` diff --git a/docs/manual/color_t.md b/docs/manual/color_t.md index 3dd560d643..46a2a5c9b1 100644 --- a/docs/manual/color_t.md +++ b/docs/manual/color_t.md @@ -3,7 +3,6 @@ 颜色。 - ---------------------------------- ### 函数

@@ -40,7 +39,6 @@ - * 函数原型: ``` @@ -67,7 +65,6 @@ uint8_t color_a (color_t* c); - * 函数原型: ``` @@ -91,7 +88,6 @@ uint8_t color_b (color_t* c); - * 函数原型: ``` @@ -116,7 +112,6 @@ color_t* color_cast (color_t* color); - * 函数原型: ``` @@ -144,7 +139,6 @@ color_t* color_create (uint8_t r, uint8_t b, uint8_t g, uint8_t a); - * 函数原型: ``` @@ -169,7 +163,6 @@ ret_t color_destroy (color_t* c); - * 函数原型: ``` @@ -197,7 +190,6 @@ color_t* color_from_str (color_t* c, const char* str); - * 函数原型: ``` @@ -219,7 +211,6 @@ uint8_t color_g (color_t* c); - * 函数原型: ``` @@ -249,7 +240,6 @@ color_t color_init (uint8_t r, uint8_t g, uint8_t b, uint8_t a); - * 函数原型: ``` @@ -267,7 +257,6 @@ uint8_t color_r (color_t* c); >

颜色的数值。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -280,7 +269,6 @@ uint8_t color_r (color_t* c); >

颜色的RGBA值。 - * 类型:rgba\_t | 特性 | 是否支持 | diff --git a/docs/manual/combo_box_ex_t.md b/docs/manual/combo_box_ex_t.md index 37b2602ce1..ec5d07c349 100644 --- a/docs/manual/combo_box_ex_t.md +++ b/docs/manual/combo_box_ex_t.md @@ -5,7 +5,6 @@ 可滚动的combo_box控件。 - ---------------------------------- ### 函数

@@ -22,7 +21,6 @@ - * 函数原型: ``` diff --git a/docs/manual/compressor_t.md b/docs/manual/compressor_t.md index 7adc94bd42..f1f580bc7e 100644 --- a/docs/manual/compressor_t.md +++ b/docs/manual/compressor_t.md @@ -4,7 +4,6 @@ compressor interface - ---------------------------------- ### 函数

@@ -26,7 +25,6 @@ - * 函数原型: ``` @@ -54,7 +52,6 @@ ret_t compressor_compress (compressor_t* compressor, const void* data, uint32_t - * 函数原型: ``` @@ -79,7 +76,6 @@ ret_t compressor_destroy (compressor_t* compressor); - * 函数原型: ``` diff --git a/docs/manual/darray_t.md b/docs/manual/darray_t.md index 55deb6a623..884e9a7ad9 100644 --- a/docs/manual/darray_t.md +++ b/docs/manual/darray_t.md @@ -20,7 +20,6 @@ ``` - ---------------------------------- ### 函数

@@ -62,7 +61,6 @@ - * 函数原型: ``` @@ -84,7 +82,6 @@ ret_t darray_clear (darray_t* darray); - * 函数原型: ``` @@ -108,7 +105,6 @@ int32_t darray_count (darray_t* darray, void* ctx); - * 函数原型: ``` @@ -132,7 +128,6 @@ darray_t* darray_create (uint32_t capacity, tk_destroy_t destroy, tk_compare_t c - * 函数原型: ``` @@ -154,7 +149,6 @@ ret_t darray_deinit (darray_t* darray); - * 函数原型: ``` @@ -176,7 +170,6 @@ ret_t darray_destroy (darray_t* darray); - * 函数原型: ``` @@ -199,7 +192,6 @@ void* darray_find (darray_t* darray, void* ctx); - * 函数原型: ``` @@ -222,7 +214,6 @@ int darray_find_index (darray_t* darray, void* ctx); - * 函数原型: ``` @@ -246,7 +237,6 @@ ret_t darray_foreach (darray_t* darray, tk_visit_t visit, void* ctx); - * 函数原型: ``` @@ -269,7 +259,6 @@ void* darray_head (darray_t* darray); - * 函数原型: ``` @@ -294,7 +283,6 @@ darray_t* darray_init (darray_t* darray, uint32_t* capacity, tk_destroy_t destro - * 函数原型: ``` @@ -316,7 +304,6 @@ void* darray_pop (darray_t* darray); - * 函数原型: ``` @@ -339,7 +326,6 @@ ret_t darray_push (darray_t* darray, void* data); - * 函数原型: ``` @@ -362,7 +348,6 @@ ret_t darray_remove (darray_t* darray, void* ctx); - * 函数原型: ``` @@ -385,7 +370,6 @@ ret_t darray_remove_all (darray_t* darray, void* ctx); - * 函数原型: ``` @@ -408,7 +392,6 @@ ret_t darray_remove_index (darray_t* darray, uint32_t index); - * 函数原型: ``` @@ -426,7 +409,6 @@ void* darray_tail (darray_t* darray); >

数组的容量大小。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -438,7 +420,6 @@ void* darray_tail (darray_t* darray); >

元素比较函数。 - * 类型:tk\_compare\_t | 特性 | 是否支持 | @@ -450,7 +431,6 @@ void* darray_tail (darray_t* darray); >

元素销毁函数。 - * 类型:tk\_destroy\_t | 特性 | 是否支持 | @@ -462,7 +442,6 @@ void* darray_tail (darray_t* darray); >

数组中的元素。 - * 类型:void** | 特性 | 是否支持 | @@ -474,7 +453,6 @@ void* darray_tail (darray_t* darray); >

数组中元素的个数。 - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/date_time_t.md b/docs/manual/date_time_t.md index 61fef1f946..1d83482be5 100644 --- a/docs/manual/date_time_t.md +++ b/docs/manual/date_time_t.md @@ -5,7 +5,6 @@ > 在嵌入式平台中,在系统初始时,需要调用date\_time\_set\_impl设置实际获取系统时间的函数。 - ---------------------------------- ### 函数

@@ -37,7 +36,6 @@ - * 函数原型: ``` @@ -59,7 +57,6 @@ date_time_t* date_time_create (); - * 函数原型: ``` @@ -81,7 +78,6 @@ ret_t date_time_destroy (date_time_t* dt); - * 函数原型: ``` @@ -106,7 +102,6 @@ date_time_t* date_time_init (date_time_t* dt); - * 函数原型: ``` @@ -124,7 +119,6 @@ ret_t date_time_set_impl (date_time_get_now_t date_time_get_now); >

日(1-31)。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -137,7 +131,6 @@ ret_t date_time_set_impl (date_time_get_now_t date_time_get_now); >

时(0 - 23)。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -150,7 +143,6 @@ ret_t date_time_set_impl (date_time_get_now_t date_time_get_now); >

分(0 - 59)。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -163,7 +155,6 @@ ret_t date_time_set_impl (date_time_get_now_t date_time_get_now); >

月(1-12)。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -176,7 +167,6 @@ ret_t date_time_set_impl (date_time_get_now_t date_time_get_now); >

秒(0 - 59)。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -189,7 +179,6 @@ ret_t date_time_set_impl (date_time_get_now_t date_time_get_now); >

星期几(0-6, Sunday = 0)。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -202,7 +191,6 @@ ret_t date_time_set_impl (date_time_get_now_t date_time_get_now); >

年。 - * 类型:int32\_t | 特性 | 是否支持 | diff --git a/docs/manual/dialog_highlighter_default_t.md b/docs/manual/dialog_highlighter_default_t.md index 9641461d9f..a2d2e6139f 100644 --- a/docs/manual/dialog_highlighter_default_t.md +++ b/docs/manual/dialog_highlighter_default_t.md @@ -6,7 +6,6 @@ >对于性能不高的平台,建议将start\_alpha和end\_alpha设为相同。 - ---------------------------------- ### 函数

@@ -30,7 +29,6 @@ - * 函数原型: ``` @@ -48,7 +46,6 @@ dialog_highlighter_t* dialog_highlighter_default_create (object_t* args); >

结束alpha,打开对话框的动画结束(直到对话框被关闭)时的alpha值。 - * 类型:uint8\_t #### start\_alpha 属性 @@ -56,6 +53,5 @@ dialog_highlighter_t* dialog_highlighter_default_create (object_t* args); >

起始alpha,打开对话框的动画开始时的alpha值。 - * 类型:uint8\_t diff --git a/docs/manual/dialog_highlighter_factory_t.md b/docs/manual/dialog_highlighter_factory_t.md index 84eca63772..578b705c3b 100644 --- a/docs/manual/dialog_highlighter_factory_t.md +++ b/docs/manual/dialog_highlighter_factory_t.md @@ -3,7 +3,6 @@ 对话框高亮策略工厂。 - ---------------------------------- ### 函数

@@ -24,7 +23,6 @@ >

获取缺省的对话框高亮策略工厂对象。 - * 函数原型: ``` @@ -45,7 +43,6 @@ dialog_highlighter_factory_t* dialog_highlighter_factory (); - * 函数原型: ``` @@ -66,7 +63,6 @@ dialog_highlighter_factory_t* dialog_highlighter_factory_create (); - * 函数原型: ``` @@ -90,7 +86,6 @@ dialog_highlighter_t* dialog_highlighter_factory_create_highlighter (dialog_high - * 函数原型: ``` @@ -112,7 +107,6 @@ ret_t dialog_highlighter_factory_destroy (dialog_highlighter_factory_t* factory) - * 函数原型: ``` @@ -136,7 +130,6 @@ ret_t dialog_highlighter_factory_register (dialog_highlighter_factory_t* factory - * 函数原型: ``` diff --git a/docs/manual/dialog_highlighter_t.md b/docs/manual/dialog_highlighter_t.md index 89f2760c8b..3820d9706a 100644 --- a/docs/manual/dialog_highlighter_t.md +++ b/docs/manual/dialog_highlighter_t.md @@ -5,7 +5,6 @@ > 高亮策略的基本思路是对背景进行处理,比如将背景变暗或变模糊。 - ---------------------------------- ### 函数

@@ -37,7 +36,6 @@ - * 函数原型: ``` @@ -59,7 +57,6 @@ dialog_highlighter_t* dialog_highlighter_create (const dialog_highlighter_vtable - * 函数原型: ``` @@ -81,7 +78,6 @@ ret_t dialog_highlighter_destroy (dialog_highlighter_t* h); - * 函数原型: ``` @@ -104,7 +100,6 @@ ret_t dialog_highlighter_draw (dialog_highlighter_t* h, float_t percent); - * 函数原型: ``` @@ -126,7 +121,6 @@ bool_t dialog_highlighter_is_dynamic (dialog_highlighter_t* h); - * 函数原型: ``` @@ -149,7 +143,6 @@ ret_t dialog_highlighter_prepare (dialog_highlighter_t* h, canvas_t* c); - * 函数原型: ``` @@ -169,7 +162,6 @@ ret_t dialog_highlighter_set_bg (dialog_highlighter_t* h, bitmap_t* img, framebu >

画布。 - * 类型:canvas\_t* #### dialog 属性 @@ -177,7 +169,6 @@ ret_t dialog_highlighter_set_bg (dialog_highlighter_t* h, bitmap_t* img, framebu >

对应的对话框。 - * 类型:widget\_t* #### img 属性 @@ -185,6 +176,5 @@ ret_t dialog_highlighter_set_bg (dialog_highlighter_t* h, bitmap_t* img, framebu >

底层窗口的截图。 - * 类型:bitmap\_t diff --git a/docs/manual/dialog_highlighter_type_t.md b/docs/manual/dialog_highlighter_type_t.md index b0db0d621c..58a0e37475 100644 --- a/docs/manual/dialog_highlighter_type_t.md +++ b/docs/manual/dialog_highlighter_type_t.md @@ -2,7 +2,6 @@ ### 概述 @type string 内置的对话框高亮策略。 - ### 常量

diff --git a/docs/manual/dialog_t.md b/docs/manual/dialog_t.md index 7ae3ecf490..dcc4f59c93 100644 --- a/docs/manual/dialog_t.md +++ b/docs/manual/dialog_t.md @@ -99,7 +99,6 @@ (https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324) - ---------------------------------- ### 函数

@@ -136,7 +135,6 @@ - * 函数原型: ``` @@ -161,7 +159,6 @@ widget_t* dialog_cast (widget_t* widget); - * 函数原型: ``` @@ -184,7 +181,6 @@ ret_t dialog_confirm (const char* title, const char* text); - * 函数原型: ``` @@ -210,7 +206,6 @@ widget_t* dialog_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); - * 函数原型: ``` @@ -236,7 +231,6 @@ widget_t* dialog_create_simple (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h - * 函数原型: ``` @@ -258,7 +252,6 @@ widget_t* dialog_get_client (widget_t* widget); - * 函数原型: ``` @@ -283,7 +276,6 @@ widget_t* dialog_get_title (widget_t* widget); - * 函数原型: ``` @@ -307,7 +299,6 @@ ret_t dialog_info (const char* title, const char* text); - * 函数原型: ``` @@ -330,7 +321,6 @@ bool_t dialog_is_modal (widget_t* widget); - * 函数原型: ``` @@ -354,7 +344,6 @@ bool_t dialog_is_quited (widget_t* widget); - * 函数原型: ``` @@ -378,7 +367,6 @@ ret_t dialog_modal (widget_t* widget); - * 函数原型: ``` @@ -403,7 +391,6 @@ widget_t* dialog_open (const char* name); - * 函数原型: ``` @@ -426,7 +413,6 @@ ret_t dialog_quit (widget_t* widget, uint32_t code); - * 函数原型: ``` @@ -452,7 +438,6 @@ ret_t dialog_set_title (widget_t* widget, char* title); - * 函数原型: ``` @@ -478,7 +463,6 @@ ret_t dialog_toast (const char* text, uint32_t duration); - * 函数原型: ``` @@ -497,7 +481,6 @@ ret_t dialog_warn (const char* title, const char* text); >

对话框高亮策略。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/draggable_t.md b/docs/manual/draggable_t.md new file mode 100644 index 0000000000..2057f6f534 --- /dev/null +++ b/docs/manual/draggable_t.md @@ -0,0 +1,384 @@ +## draggable\_t +### 概述 +![image](images/draggable_t_0.png) + + + 将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/raw/ui/draggable.xml) + + 在c代码中使用函数draggable\_create创建按钮控件。如: + + ```c + widget_t* draggable = draggable_create(target, 0, 0, 0, 0); + ``` + + > draggable本身不可见,故无需style。 + + +---------------------------------- +### 函数 +

+ +| 函数名称 | 说明 | +| -------- | ------------ | +| draggable\_cast | 转换为draggable对象(供脚本语言使用)。 | +| draggable\_create | 创建draggable对象 | +| draggable\_set\_bottom | 设置bottom。 | +| draggable\_set\_drag\_window | 设置drag_window。 | +| draggable\_set\_horizontal\_only | 设置horizontal_only。 | +| draggable\_set\_left | 设置left。 | +| draggable\_set\_right | 设置right。 | +| draggable\_set\_top | 设置top。 | +| draggable\_set\_vertical\_only | 设置vertical_only。 | +### 属性 +

+ +| 属性名称 | 类型 | 说明 | +| -------- | ----- | ------------ | +| bottom | int32\_t | 拖动范围的底部限制。缺省为父控件的底部。 | +| drag\_window | bool\_t | 拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。 | +| horizontal\_only | bool\_t | 只允许水平拖动。 | +| left | int32\_t | 拖动范围的左边限制。缺省为父控件的左边。 | +| right | int32\_t | 拖动范围的右边限制。缺省为父控件的右边边。 | +| top | int32\_t | 拖动范围的顶部限制。缺省为父控件的顶部。 | +| vertical\_only | bool\_t | 只允许垂直拖动。 | +#### draggable\_cast 函数 +----------------------- + +* 函数功能: + +>

转换为draggable对象(供脚本语言使用)。 + + + +* 函数原型: + +``` +widget_t* draggable_cast (widget_t* widget); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | widget\_t* | draggable对象。 | +| widget | widget\_t* | draggable对象。 | +#### draggable\_create 函数 +----------------------- + +* 函数功能: + +>

创建draggable对象 + + + +* 函数原型: + +``` +widget_t* draggable_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | widget\_t* | 对象。 | +| parent | widget\_t* | 父控件 | +| x | xy\_t | x坐标 | +| y | xy\_t | y坐标 | +| w | wh\_t | 宽度 | +| h | wh\_t | 高度 | +#### draggable\_set\_bottom 函数 +----------------------- + +* 函数功能: + +>

设置bottom。 + + + +* 函数原型: + +``` +ret_t draggable_set_bottom (widget_t* widget, uint32_t bottom); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | widget对象。 | +| bottom | uint32\_t | 拖动范围的底部限制。缺省为父控件的底部。 | +#### draggable\_set\_drag\_window 函数 +----------------------- + +* 函数功能: + +>

设置drag_window。 + 拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。 + + + +* 函数原型: + +``` +ret_t draggable_set_drag_window (widget_t* widget, uint32_t ); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | widget对象。 | +| | uint32\_t | w | +#### draggable\_set\_horizontal\_only 函数 +----------------------- + +* 函数功能: + +>

设置horizontal_only。 + + + +* 函数原型: + +``` +ret_t draggable_set_horizontal_only (widget_t* widget, uint32_t horizontal_only); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | widget对象。 | +| horizontal\_only | uint32\_t | 只允许水平拖动。 | +#### draggable\_set\_left 函数 +----------------------- + +* 函数功能: + +>

设置left。 + + + +* 函数原型: + +``` +ret_t draggable_set_left (widget_t* widget, uint32_t left); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | widget对象。 | +| left | uint32\_t | 拖动范围的左边限制。缺省为父控件的左边。 | +#### draggable\_set\_right 函数 +----------------------- + +* 函数功能: + +>

设置right。 + + + +* 函数原型: + +``` +ret_t draggable_set_right (widget_t* widget, uint32_t right); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | widget对象。 | +| right | uint32\_t | 拖动范围的右边限制。缺省为父控件的右边边。 | +#### draggable\_set\_top 函数 +----------------------- + +* 函数功能: + +>

设置top。 + + + +* 函数原型: + +``` +ret_t draggable_set_top (widget_t* widget, uint32_t top); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | widget对象。 | +| top | uint32\_t | 拖动范围的顶部限制。缺省为父控件的顶部。 | +#### draggable\_set\_vertical\_only 函数 +----------------------- + +* 函数功能: + +>

设置vertical_only。 + + + +* 函数原型: + +``` +ret_t draggable_set_vertical_only (widget_t* widget, uint32_t vertical_only); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | widget对象。 | +| vertical\_only | uint32\_t | 只允许垂直拖动。 | +#### bottom 属性 +----------------------- +>

拖动范围的底部限制。缺省为父控件的底部。 + + +* 类型:int32\_t + +| 特性 | 是否支持 | +| -------- | ----- | +| 可直接读取 | 是 | +| 可直接修改 | 否 | +| 可持久化 | 是 | +| 可脚本化 | 是 | +| 可在IDE中设置 | 是 | +| 可在XML中设置 | 是 | +| 可通过widget\_get\_prop读取 | 是 | +| 可通过widget\_set\_prop修改 | 是 | +#### drag\_window 属性 +----------------------- +>

拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。 + + +* 类型:bool\_t + +| 特性 | 是否支持 | +| -------- | ----- | +| 可直接读取 | 是 | +| 可直接修改 | 否 | +| 可持久化 | 是 | +| 可脚本化 | 是 | +| 可在IDE中设置 | 是 | +| 可在XML中设置 | 是 | +| 可通过widget\_get\_prop读取 | 是 | +| 可通过widget\_set\_prop修改 | 是 | +#### horizontal\_only 属性 +----------------------- +>

只允许水平拖动。 + + +* 类型:bool\_t + +| 特性 | 是否支持 | +| -------- | ----- | +| 可直接读取 | 是 | +| 可直接修改 | 否 | +| 可持久化 | 是 | +| 可脚本化 | 是 | +| 可在IDE中设置 | 是 | +| 可在XML中设置 | 是 | +| 可通过widget\_get\_prop读取 | 是 | +| 可通过widget\_set\_prop修改 | 是 | +#### left 属性 +----------------------- +>

拖动范围的左边限制。缺省为父控件的左边。 + + +* 类型:int32\_t + +| 特性 | 是否支持 | +| -------- | ----- | +| 可直接读取 | 是 | +| 可直接修改 | 否 | +| 可持久化 | 是 | +| 可脚本化 | 是 | +| 可在IDE中设置 | 是 | +| 可在XML中设置 | 是 | +| 可通过widget\_get\_prop读取 | 是 | +| 可通过widget\_set\_prop修改 | 是 | +#### right 属性 +----------------------- +>

拖动范围的右边限制。缺省为父控件的右边边。 + + +* 类型:int32\_t + +| 特性 | 是否支持 | +| -------- | ----- | +| 可直接读取 | 是 | +| 可直接修改 | 否 | +| 可持久化 | 是 | +| 可脚本化 | 是 | +| 可在IDE中设置 | 是 | +| 可在XML中设置 | 是 | +| 可通过widget\_get\_prop读取 | 是 | +| 可通过widget\_set\_prop修改 | 是 | +#### top 属性 +----------------------- +>

拖动范围的顶部限制。缺省为父控件的顶部。 + + +* 类型:int32\_t + +| 特性 | 是否支持 | +| -------- | ----- | +| 可直接读取 | 是 | +| 可直接修改 | 否 | +| 可持久化 | 是 | +| 可脚本化 | 是 | +| 可在IDE中设置 | 是 | +| 可在XML中设置 | 是 | +| 可通过widget\_get\_prop读取 | 是 | +| 可通过widget\_set\_prop修改 | 是 | +#### vertical\_only 属性 +----------------------- +>

只允许垂直拖动。 + + +* 类型:bool\_t + +| 特性 | 是否支持 | +| -------- | ----- | +| 可直接读取 | 是 | +| 可直接修改 | 否 | +| 可持久化 | 是 | +| 可脚本化 | 是 | +| 可在IDE中设置 | 是 | +| 可在XML中设置 | 是 | +| 可通过widget\_get\_prop读取 | 是 | +| 可通过widget\_set\_prop修改 | 是 | diff --git a/docs/manual/easing_type_t.md b/docs/manual/easing_type_t.md index 94b5c5f84d..04f5206adc 100644 --- a/docs/manual/easing_type_t.md +++ b/docs/manual/easing_type_t.md @@ -1,7 +1,6 @@ ## easing\_type\_t ### 概述 缓动作动画常量定义。 - ### 常量

diff --git a/docs/manual/emitter_t.md b/docs/manual/emitter_t.md index 13f92aa36c..db144ddbc1 100644 --- a/docs/manual/emitter_t.md +++ b/docs/manual/emitter_t.md @@ -3,7 +3,6 @@ 事件分发器, 用于实现观察者模式。 - ---------------------------------- ### 函数

@@ -23,7 +22,9 @@ | emitter\_off | 注销指定事件的处理函数。 | | emitter\_off\_by\_ctx | 注销指定事件的处理函数。 | | emitter\_off\_by\_func | 注销指定事件的处理函数。 | +| emitter\_off\_by\_tag | 注销指定事件的处理函数。 | | emitter\_on | 注册指定事件的处理函数。 | +| emitter\_on\_with\_tag | 注册指定事件的处理函数。 | | emitter\_set\_on\_destroy | 设置一个回调函数,在emitter被销毁时调用(方便脚本语言去释放回调函数)。 | | emitter\_size | 获取注册的回调函数个数,主要用于辅助测试。 | ### 属性 @@ -43,7 +44,6 @@ - * 函数原型: ``` @@ -65,7 +65,6 @@ emitter_t* emitter_cast (emitter_t* emitter); - * 函数原型: ``` @@ -87,7 +86,6 @@ emitter_t* emitter_create (); - * 函数原型: ``` @@ -110,7 +108,6 @@ ret_t emitter_deinit (emitter_t* emitter); - * 函数原型: ``` @@ -135,7 +132,6 @@ ret_t emitter_destroy (emitter_t* emitter); - * 函数原型: ``` @@ -158,7 +154,6 @@ ret_t emitter_disable (emitter_t* emitter); 如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。 - * 函数原型: ``` @@ -182,7 +177,6 @@ ret_t emitter_dispatch (emitter_t* emitter, event_t* e); 如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。 - * 函数原型: ``` @@ -205,7 +199,6 @@ ret_t emitter_dispatch_simple_event (emitter_t* emitter, uint32_t type); - * 函数原型: ``` @@ -227,7 +220,6 @@ ret_t emitter_enable (emitter_t* emitter); - * 函数原型: ``` @@ -250,7 +242,6 @@ ret_t emitter_find (emitter_t* emitter, uint32_t id); - * 函数原型: ``` @@ -272,7 +263,6 @@ emitter_t* emitter_init (emitter_t* emitter); - * 函数原型: ``` @@ -295,7 +285,6 @@ ret_t emitter_off (emitter_t* emitter, uint32_t id); - * 函数原型: ``` @@ -318,7 +307,6 @@ ret_t emitter_off_by_ctx (emitter_t* emitter, void* ctx); - * 函数原型: ``` @@ -334,6 +322,28 @@ ret_t emitter_off_by_func (emitter_t* emitter, uint32_t type, event_func_t on_ev | type | uint32\_t | 事件类型。 | | on\_event | event\_func\_t | 事件处理函数。 | | ctx | void* | 事件处理函数上下文。 | +#### emitter\_off\_by\_tag 函数 +----------------------- + +* 函数功能: + +>

注销指定事件的处理函数。 + + + +* 函数原型: + +``` +ret_t emitter_off_by_tag (emitter_t* emitter, uint32_t tag); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| emitter | emitter\_t* | emitter对象。 | +| tag | uint32\_t | tag。 | #### emitter\_on 函数 ----------------------- @@ -343,7 +353,6 @@ ret_t emitter_off_by_func (emitter_t* emitter, uint32_t type, event_func_t on_ev - * 函数原型: ``` @@ -359,6 +368,31 @@ uint32_t emitter_on (emitter_t* emitter, uint32_t type, event_func_t on_event, v | type | uint32\_t | 事件类型。 | | on\_event | event\_func\_t | 事件处理函数。 | | ctx | void* | 事件处理函数上下文。 | +#### emitter\_on\_with\_tag 函数 +----------------------- + +* 函数功能: + +>

注册指定事件的处理函数。 + + + +* 函数原型: + +``` +uint32_t emitter_on_with_tag (emitter_t* emitter, uint32_t type, event_func_t on_event, void* ctx, uint32_t tag); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | uint32\_t | 返回id,用于emitter\_off。 | +| emitter | emitter\_t* | emitter对象。 | +| type | uint32\_t | 事件类型。 | +| on\_event | event\_func\_t | 事件处理函数。 | +| ctx | void* | 事件处理函数上下文。 | +| tag | uint32\_t | tag。 | #### emitter\_set\_on\_destroy 函数 ----------------------- @@ -368,7 +402,6 @@ uint32_t emitter_on (emitter_t* emitter, uint32_t type, event_func_t on_event, v - * 函数原型: ``` @@ -393,7 +426,6 @@ ret_t emitter_set_on_destroy (emitter_t* emitter, uint32_t id, tk_destroy_t on_d - * 函数原型: ``` @@ -411,7 +443,6 @@ uint32_t emitter_size (emitter_t* emitter); >

禁用标志。禁用时dispatch无效。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/event_base_type_t.md b/docs/manual/event_base_type_t.md index 4e548a91a8..f3e73ad9e4 100644 --- a/docs/manual/event_base_type_t.md +++ b/docs/manual/event_base_type_t.md @@ -1,7 +1,6 @@ ## event\_base\_type\_t ### 概述 类型常量定义。 - ### 常量

diff --git a/docs/manual/event_source_fd_t.md b/docs/manual/event_source_fd_t.md index 385a4a415e..3dbff34b13 100644 --- a/docs/manual/event_source_fd_t.md +++ b/docs/manual/event_source_fd_t.md @@ -6,7 +6,6 @@ fd事件源。 - ---------------------------------- ### 函数

@@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/event_source_idle_t.md b/docs/manual/event_source_idle_t.md index 715fff0948..6ef93c5c88 100644 --- a/docs/manual/event_source_idle_t.md +++ b/docs/manual/event_source_idle_t.md @@ -6,7 +6,6 @@ idle事件源。 - ---------------------------------- ### 函数

@@ -27,7 +26,6 @@ - * 函数原型: ``` @@ -52,7 +50,6 @@ event_source_t* event_source_idle_create (idle_manager_t* idle_manager); - * 函数原型: ``` diff --git a/docs/manual/event_source_manager_t.md b/docs/manual/event_source_manager_t.md index 8c7e9bc41c..7bf6b29664 100644 --- a/docs/manual/event_source_manager_t.md +++ b/docs/manual/event_source_manager_t.md @@ -4,7 +4,6 @@ 事件源管理器。 - ---------------------------------- ### 函数

@@ -30,7 +29,6 @@ - * 函数原型: ``` @@ -56,7 +54,6 @@ ret_t event_source_manager_add (event_source_manager_t* manager, event_source_t* - * 函数原型: ``` @@ -81,7 +78,6 @@ ret_t event_source_manager_deinit (event_source_manager_t* manager); - * 函数原型: ``` @@ -106,7 +102,6 @@ ret_t event_source_manager_destroy (event_source_manager_t* manager); - * 函数原型: ``` @@ -131,7 +126,6 @@ ret_t event_source_manager_dispatch (event_source_manager_t* manager); - * 函数原型: ``` @@ -156,7 +150,6 @@ uint32_t event_source_manager_get_wakeup_time (event_source_manager_t* manager); - * 函数原型: ``` @@ -181,7 +174,6 @@ ret_t event_source_manager_init (event_source_manager_t* manager); - * 函数原型: ``` diff --git a/docs/manual/event_source_t.md b/docs/manual/event_source_t.md index dde2ac8f29..bb13a75933 100644 --- a/docs/manual/event_source_t.md +++ b/docs/manual/event_source_t.md @@ -11,7 +11,6 @@ * 对于定时器,则get_wakeup_time返回下次唤醒的时间。 - ---------------------------------- ### 函数

@@ -34,7 +33,6 @@ - * 函数原型: ``` @@ -59,7 +57,6 @@ ret_t event_source_check (event_source_t* source); - * 函数原型: ``` @@ -84,7 +81,6 @@ ret_t event_source_dispatch (event_source_t* source); - * 函数原型: ``` @@ -109,7 +105,6 @@ int32_t event_source_get_fd (event_source_t* source); - * 函数原型: ``` diff --git a/docs/manual/event_source_timer_t.md b/docs/manual/event_source_timer_t.md index 7c429d86e2..2161cb2587 100644 --- a/docs/manual/event_source_timer_t.md +++ b/docs/manual/event_source_timer_t.md @@ -6,7 +6,6 @@ timer事件源。 - ---------------------------------- ### 函数

@@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/event_t.md b/docs/manual/event_t.md index 41e760f16b..92a26da785 100644 --- a/docs/manual/event_t.md +++ b/docs/manual/event_t.md @@ -2,7 +2,6 @@ ### 概述 事件基类。 - ---------------------------------- ### 函数

@@ -32,7 +31,6 @@ - * 函数原型: ``` @@ -56,7 +54,6 @@ event_t* event_cast (event_t* event); - * 函数原型: ``` @@ -81,7 +78,6 @@ event_t* event_create (uint32_t type, void* target); - * 函数原型: ``` @@ -103,7 +99,6 @@ ret_t event_destroy (event_t* event); - * 函数原型: ``` @@ -122,7 +117,6 @@ event_t event_init (uint32_t type, void* target); >

事件发生的目标对象。 - * 类型:void* | 特性 | 是否支持 | @@ -135,7 +129,6 @@ event_t event_init (uint32_t type, void* target); >

事件发生的时间。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -148,7 +141,6 @@ event_t event_init (uint32_t type, void* target); >

类型。 - * 类型:int32\_t | 特性 | 是否支持 | diff --git a/docs/manual/event_type_t.md b/docs/manual/event_type_t.md index 8c3bb89a52..f3a180bc59 100644 --- a/docs/manual/event_type_t.md +++ b/docs/manual/event_type_t.md @@ -1,7 +1,6 @@ ## event\_type\_t ### 概述 类型常量定义。 - ### 常量

@@ -14,6 +13,7 @@ | EVT\_POINTER\_UP | 指针抬起事件名(pointer\_event\_t)。 | | EVT\_POINTER\_UP\_BEFORE\_CHILDREN | 指针抬起事件名,在子控件处理之前触发(pointer\_event\_t)。 | | EVT\_WHEEL | 滚轮事件名(pointer\_event\_t)。 | +| EVT\_WHEEL\_BEFORE\_CHILDREN | 鼠标滚轮事件名,在子控件处理之前触发(key\_event\_t)。 | | EVT\_POINTER\_DOWN\_ABORT | 取消前一个指针按下事件名(pointer\_event\_t)。 | | EVT\_CONTEXT\_MENU | 右键/长按弹出上下文菜单的事件名(pointer\_event\_t)。 | | EVT\_POINTER\_ENTER | 指针进入事件名(pointer\_event\_t)。 | diff --git a/docs/manual/font_loader_bitmap_t.md b/docs/manual/font_loader_bitmap_t.md index 285ae54a8a..ad37fbde05 100644 --- a/docs/manual/font_loader_bitmap_t.md +++ b/docs/manual/font_loader_bitmap_t.md @@ -11,7 +11,6 @@ - ---------------------------------- ### 函数

@@ -29,7 +28,6 @@ - * 函数原型: ``` diff --git a/docs/manual/font_loader_stb_t.md b/docs/manual/font_loader_stb_t.md index 16b21de566..5cda063809 100644 --- a/docs/manual/font_loader_stb_t.md +++ b/docs/manual/font_loader_stb_t.md @@ -8,7 +8,6 @@ - ---------------------------------- ### 函数

@@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/font_loader_t.md b/docs/manual/font_loader_t.md index 69d8d81812..35572dc480 100644 --- a/docs/manual/font_loader_t.md +++ b/docs/manual/font_loader_t.md @@ -2,7 +2,6 @@ ### 概述 字体加载接口。 - ---------------------------------- ### 函数

@@ -20,7 +19,6 @@ - * 函数原型: ``` diff --git a/docs/manual/font_manager_t.md b/docs/manual/font_manager_t.md index f6774a8199..e076affe1f 100644 --- a/docs/manual/font_manager_t.md +++ b/docs/manual/font_manager_t.md @@ -3,7 +3,6 @@ 字体管理器,负责字体的加载和缓存管理。 (如果使用nanovg,字体由nanovg内部管理) - ---------------------------------- ### 函数

@@ -34,7 +33,6 @@ >

获取缺省的字体管理器。 - * 函数原型: ``` @@ -55,7 +53,6 @@ font_manager_t* font_manager (); - * 函数原型: ``` @@ -79,7 +76,6 @@ ret_t font_manager_add_font (font_manager_t* fm, char* name, font_t* font); - * 函数原型: ``` @@ -101,7 +97,6 @@ font_manager_t* font_manager_create (font_loader_t* loader); - * 函数原型: ``` @@ -123,7 +118,6 @@ ret_t font_manager_deinit (font_manager_t* fm); - * 函数原型: ``` @@ -145,7 +139,6 @@ ret_t font_manager_destroy (font_manager_t* fm); - * 函数原型: ``` @@ -169,7 +162,6 @@ font_t* font_manager_get_font (font_manager_t* fm, char* name, font_size_t size) - * 函数原型: ``` @@ -192,7 +184,6 @@ font_manager_t* font_manager_init (font_manager_t* fm, font_loader_t* loader); - * 函数原型: ``` @@ -222,7 +213,6 @@ ret_t font_manager_set (font_manager_t* fm); - * 函数原型: ``` @@ -245,7 +235,6 @@ ret_t font_manager_set_assets_manager (font_manager_t* imm, assets_manager_t* as - * 函数原型: ``` @@ -267,7 +256,6 @@ ret_t font_manager_unload_all (font_manager_t* fm); - * 函数原型: ``` diff --git a/docs/manual/font_t.md b/docs/manual/font_t.md index 8ab80b35b5..42eb171157 100644 --- a/docs/manual/font_t.md +++ b/docs/manual/font_t.md @@ -3,7 +3,6 @@ 代表一种字体。 - ---------------------------------- ### 函数

@@ -23,7 +22,6 @@ - * 函数原型: ``` @@ -45,7 +43,6 @@ ret_t font_destroy (font_t* font); - * 函数原型: ``` @@ -69,7 +66,6 @@ int32_t font_get_baseline (font_t* font, font_size_t font_size); - * 函数原型: ``` @@ -95,7 +91,6 @@ ret_t font_get_glyph (font_t* font, wchar_t chr, font_size_t font_size, glyph_t* - * 函数原型: ``` diff --git a/docs/manual/fs_dir_t.md b/docs/manual/fs_dir_t.md index 5f3c520766..05ebbcce19 100644 --- a/docs/manual/fs_dir_t.md +++ b/docs/manual/fs_dir_t.md @@ -4,7 +4,6 @@ 文件夹接口。 - ---------------------------------- ### 函数

@@ -26,7 +25,6 @@ - * 函数原型: ``` @@ -51,7 +49,6 @@ ret_t fs_dir_close (fs_dir_t* dir); - * 函数原型: ``` @@ -77,7 +74,6 @@ ret_t fs_dir_read (fs_dir_t* dir, fs_item_t* item); - * 函数原型: ``` diff --git a/docs/manual/fs_file_t.md b/docs/manual/fs_file_t.md index 097f75e72c..58c37e2ce4 100644 --- a/docs/manual/fs_file_t.md +++ b/docs/manual/fs_file_t.md @@ -4,7 +4,6 @@ 文件接口。 - ---------------------------------- ### 函数

@@ -29,7 +28,6 @@ - * 函数原型: ``` @@ -54,7 +52,6 @@ ret_t fs_file_close (fs_file_t* file); - * 函数原型: ``` @@ -79,7 +76,6 @@ bool_t fs_file_eof (fs_file_t* file); - * 函数原型: ``` @@ -106,7 +102,6 @@ int32_t fs_file_read (fs_file_t* file, void* buffer, uint32_t size); - * 函数原型: ``` @@ -132,7 +127,6 @@ ret_t fs_file_seek (fs_file_t* file, uint32_t offset); - * 函数原型: ``` @@ -157,7 +151,6 @@ ret_t fs_file_truncate (fs_file_t* file); - * 函数原型: ``` diff --git a/docs/manual/fs_t.md b/docs/manual/fs_t.md index 37da77d42c..1d90d7539d 100644 --- a/docs/manual/fs_t.md +++ b/docs/manual/fs_t.md @@ -4,5 +4,4 @@ 文件系统接口。 - ---------------------------------- diff --git a/docs/manual/func_call_parser_t.md b/docs/manual/func_call_parser_t.md index b05f0a15c9..c5a44d1f83 100644 --- a/docs/manual/func_call_parser_t.md +++ b/docs/manual/func_call_parser_t.md @@ -11,7 +11,6 @@ 如:move(x=10, y=20) 如:rename(old_name=aa, new_name=bb) - ---------------------------------- ### 函数

@@ -31,7 +30,6 @@ - * 函数原型: ``` @@ -53,7 +51,6 @@ ret_t func_call_parser_deinit (func_call_parser_t* parser); - * 函数原型: ``` @@ -77,7 +74,6 @@ func_call_parser_t* func_call_parser_init (func_call_parser_t* parser, const cha - * 函数原型: ``` @@ -101,7 +97,6 @@ ret_t func_call_parser_parse (func_call_parser_t* parser); - * 函数原型: ``` diff --git a/docs/manual/func_desc_t.md b/docs/manual/func_desc_t.md index aa6e5f0264..9980831912 100644 --- a/docs/manual/func_desc_t.md +++ b/docs/manual/func_desc_t.md @@ -2,7 +2,6 @@ ### 概述 函数描述。 - ---------------------------------- ### 属性

@@ -19,7 +18,6 @@ >

函数参数描述。 - * 类型:arg\_desc\_t** | 特性 | 是否支持 | @@ -31,7 +29,6 @@ >

描述。 - * 类型:const char* | 特性 | 是否支持 | @@ -43,7 +40,6 @@ >

函数指针。 - * 类型:func\_exec\_t | 特性 | 是否支持 | @@ -55,7 +51,6 @@ >

名称。 - * 类型:const char* | 特性 | 是否支持 | @@ -67,7 +62,6 @@ >

函数返回值描述。 - * 类型:value\_desc\_t* | 特性 | 是否支持 | diff --git a/docs/manual/global_t.md b/docs/manual/global_t.md index f0b576caa1..22b45c9c37 100644 --- a/docs/manual/global_t.md +++ b/docs/manual/global_t.md @@ -2,7 +2,6 @@ ### 概述 TK全局对象。 - ---------------------------------- ### 函数

@@ -25,7 +24,6 @@ - * 函数原型: ``` @@ -46,7 +44,6 @@ int32_t tk_get_pointer_x (); - * 函数原型: ``` @@ -67,7 +64,6 @@ int32_t tk_get_pointer_y (); - * 函数原型: ``` @@ -93,7 +89,6 @@ ret_t tk_init (wh_t w, wh_t h, app_type_t app_type, const char* app_name, const - * 函数原型: ``` @@ -114,7 +109,6 @@ bool_t tk_is_pointer_pressed (); - * 函数原型: ``` @@ -135,7 +129,6 @@ ret_t tk_quit (); - * 函数原型: ``` @@ -156,7 +149,6 @@ ret_t tk_run (); - * 函数原型: ``` diff --git a/docs/manual/glyph_format_t.md b/docs/manual/glyph_format_t.md index 2b83297e6f..1580f8f4e0 100644 --- a/docs/manual/glyph_format_t.md +++ b/docs/manual/glyph_format_t.md @@ -1,7 +1,6 @@ ## glyph\_format\_t ### 概述 字模格式常量定义。 - ### 常量

diff --git a/docs/manual/glyph_t.md b/docs/manual/glyph_t.md index 90329b1ec1..49e9d1d482 100644 --- a/docs/manual/glyph_t.md +++ b/docs/manual/glyph_t.md @@ -3,7 +3,6 @@ 代表一个字符的字模。 - ---------------------------------- ### 函数

@@ -35,7 +34,6 @@ - * 函数原型: ``` @@ -56,7 +54,6 @@ glyph_t* glyph_clone (); - * 函数原型: ``` @@ -77,7 +74,6 @@ glyph_t* glyph_create (); - * 函数原型: ``` @@ -95,7 +91,6 @@ ret_t glyph_destroy (glyph_t* glyph); >

占位宽度。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -107,7 +102,6 @@ ret_t glyph_destroy (glyph_t* glyph); >

数据。 - * 类型:const uint8\_t* | 特性 | 是否支持 | @@ -119,7 +113,6 @@ ret_t glyph_destroy (glyph_t* glyph); >

格式。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -131,7 +124,6 @@ ret_t glyph_destroy (glyph_t* glyph); >

高度。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -143,7 +135,6 @@ ret_t glyph_destroy (glyph_t* glyph); >

pitch。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -155,7 +146,6 @@ ret_t glyph_destroy (glyph_t* glyph); >

宽度。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -167,7 +157,6 @@ ret_t glyph_destroy (glyph_t* glyph); >

x坐标。 - * 类型:int16\_t | 特性 | 是否支持 | @@ -179,7 +168,6 @@ ret_t glyph_destroy (glyph_t* glyph); >

y坐标。 - * 类型:int16\_t | 特性 | 是否支持 | diff --git a/docs/manual/guage_pointer_t.md b/docs/manual/guage_pointer_t.md index c5432242a9..6dd01b55ba 100644 --- a/docs/manual/guage_pointer_t.md +++ b/docs/manual/guage_pointer_t.md @@ -30,7 +30,6 @@ - ---------------------------------- ### 函数

@@ -60,7 +59,6 @@ - * 函数原型: ``` @@ -82,7 +80,6 @@ widget_t* guage_pointer_cast (widget_t* widget); - * 函数原型: ``` @@ -108,7 +105,6 @@ widget_t* guage_pointer_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h - * 函数原型: ``` @@ -132,7 +128,6 @@ ret_t guage_pointer_set_anchor (widget_t* widget, const char* anchor_x, const ch - * 函数原型: ``` @@ -155,7 +150,6 @@ ret_t guage_pointer_set_angle (widget_t* widget, int32_t angle); - * 函数原型: ``` @@ -174,7 +168,6 @@ ret_t guage_pointer_set_image (widget_t* widget, const char* image); >

旋转锚点x坐标。 - * 类型:float\_t | 特性 | 是否支持 | @@ -192,7 +185,6 @@ ret_t guage_pointer_set_image (widget_t* widget, const char* image); >

旋转锚点y坐标。 - * 类型:float\_t | 特性 | 是否支持 | @@ -210,7 +202,6 @@ ret_t guage_pointer_set_image (widget_t* widget, const char* image); >

指针角度。12点钟方向为0度,顺时钟方向为正,单位为度。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -231,7 +222,6 @@ ret_t guage_pointer_set_image (widget_t* widget, const char* image); - * 类型:char* | 特性 | 是否支持 | diff --git a/docs/manual/hscroll_label_t.md b/docs/manual/hscroll_label_t.md index 1e90471c8c..f6692bda4c 100644 --- a/docs/manual/hscroll_label_t.md +++ b/docs/manual/hscroll_label_t.md @@ -30,7 +30,6 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) - ---------------------------------- ### 函数

@@ -70,7 +69,6 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) - * 函数原型: ``` @@ -92,7 +90,6 @@ widget_t* hscroll_label_cast (widget_t* widget); - * 函数原型: ``` @@ -118,7 +115,6 @@ widget_t* hscroll_label_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h - * 函数原型: ``` @@ -141,7 +137,6 @@ ret_t hscroll_label_set_duration (widget_t* widget, int32_t duration); - * 函数原型: ``` @@ -164,7 +159,6 @@ ret_t hscroll_label_set_ellipses (widget_t* widget, bool_t ellipses); - * 函数原型: ``` @@ -187,7 +181,6 @@ ret_t hscroll_label_set_loop (widget_t* widget, bool_t loop); - * 函数原型: ``` @@ -210,7 +203,6 @@ ret_t hscroll_label_set_lull (widget_t* widget, int32_t lull); - * 函数原型: ``` @@ -233,7 +225,6 @@ ret_t hscroll_label_set_only_focus (widget_t* widget, bool_t only_focus); - * 函数原型: ``` @@ -256,7 +247,6 @@ ret_t hscroll_label_set_xoffset (widget_t* widget, int32_t xoffset); - * 函数原型: ``` @@ -279,7 +269,6 @@ ret_t hscroll_label_set_yoyo (widget_t* widget, bool_t yoyo); - * 函数原型: ``` @@ -301,7 +290,6 @@ ret_t hscroll_label_start (widget_t* widget); - * 函数原型: ``` @@ -319,7 +307,6 @@ ret_t hscroll_label_stop (widget_t* widget); >

完整的滚动一次需要的时间(ms),缺省5000ms。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -335,7 +322,6 @@ ret_t hscroll_label_stop (widget_t* widget); >

文本显示不下时,在行尾显示省略号(缺省FALSE)。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -353,7 +339,6 @@ ret_t hscroll_label_stop (widget_t* widget); >

loop是否循环滚动(缺省FALSE)。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -371,7 +356,6 @@ ret_t hscroll_label_stop (widget_t* widget); >

滚动之间的间歇时间(ms),缺省3000ms。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -389,7 +373,6 @@ ret_t hscroll_label_stop (widget_t* widget); >

只有处于focus时才滚动(缺省否)。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -407,7 +390,6 @@ ret_t hscroll_label_stop (widget_t* widget); >

文本的宽度。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -423,7 +405,6 @@ ret_t hscroll_label_stop (widget_t* widget); >

偏移量。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -439,7 +420,6 @@ ret_t hscroll_label_stop (widget_t* widget); >

是否往返滚动(缺省FALSE)。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/hscrollable_t.md b/docs/manual/hscrollable_t.md index a0185bff02..ad53aae8f8 100644 --- a/docs/manual/hscrollable_t.md +++ b/docs/manual/hscrollable_t.md @@ -2,5 +2,4 @@ ### 概述 帮助实现控件左右滚动的效果。 - ---------------------------------- diff --git a/docs/manual/idle_info_t.md b/docs/manual/idle_info_t.md index b3967e9edc..6fc7e83f56 100644 --- a/docs/manual/idle_info_t.md +++ b/docs/manual/idle_info_t.md @@ -5,7 +5,6 @@ 单个idle的信息。 - ---------------------------------- ### 函数

@@ -32,7 +31,6 @@ - * 函数原型: ``` @@ -50,7 +48,6 @@ idle_info_t* idle_info_cast (idle_info_t* idle); >

idle回调函数上下文。 - * 类型:void* | 特性 | 是否支持 | @@ -65,7 +62,6 @@ idle_info_t* idle_info_cast (idle_info_t* idle); > 为TK\_INVALID\_ID时表示无效idle。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -78,7 +74,6 @@ idle_info_t* idle_info_cast (idle_info_t* idle); >

idle销毁时的回调函数。 - * 类型:tk\_destroy\_t | 特性 | 是否支持 | @@ -90,7 +85,6 @@ idle_info_t* idle_info_cast (idle_info_t* idle); >

idle销毁时的回调函数的上下文。 - * 类型:tk\_destroy\_t | 特性 | 是否支持 | @@ -102,7 +96,6 @@ idle_info_t* idle_info_cast (idle_info_t* idle); >

idle回调函数。 - * 类型:idle\_func\_t | 特性 | 是否支持 | diff --git a/docs/manual/idle_t.md b/docs/manual/idle_t.md index 077a2714fa..4636dc73d8 100644 --- a/docs/manual/idle_t.md +++ b/docs/manual/idle_t.md @@ -24,7 +24,6 @@ > 在非GUI线程请用idle\_queue。 - ---------------------------------- ### 函数

@@ -45,7 +44,6 @@ - * 函数原型: ``` @@ -68,7 +66,6 @@ uint32_t idle_add (idle_func_t on_idle, void* ctx); - * 函数原型: ``` @@ -89,7 +86,6 @@ uint32_t idle_count (); - * 函数原型: ``` @@ -112,7 +108,6 @@ ret_t idle_queue (idle_func_t on_idle, void* ctx); - * 函数原型: ``` @@ -134,7 +129,6 @@ ret_t idle_remove (uint32_t idle_id); - * 函数原型: ``` diff --git a/docs/manual/im_action_button_info_event_t.md b/docs/manual/im_action_button_info_event_t.md index 9a0441d33a..b9d2e8eddd 100644 --- a/docs/manual/im_action_button_info_event_t.md +++ b/docs/manual/im_action_button_info_event_t.md @@ -4,7 +4,6 @@ 设置软键盘上的action按钮的信息事件。 - ---------------------------------- ### 属性

@@ -18,7 +17,6 @@ >

软键盘上的action按钮启用。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -30,7 +28,6 @@ >

软键盘上的action按钮显示的文本。 - * 类型:char* | 特性 | 是否支持 | diff --git a/docs/manual/im_candidates_event_t.md b/docs/manual/im_candidates_event_t.md index 57b889e450..87ebb1c719 100644 --- a/docs/manual/im_candidates_event_t.md +++ b/docs/manual/im_candidates_event_t.md @@ -4,7 +4,6 @@ 输入法请求显示候选字的事件。 - ---------------------------------- ### 属性

@@ -18,7 +17,6 @@ >

可选的文本,多个文本以\0分隔。如:里\0李\0力\0离\0 - * 类型:char* | 特性 | 是否支持 | @@ -30,7 +28,6 @@ >

可选的文本的个数。 - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/im_commit_event_t.md b/docs/manual/im_commit_event_t.md index fcebd6bde3..712349fda2 100644 --- a/docs/manual/im_commit_event_t.md +++ b/docs/manual/im_commit_event_t.md @@ -4,7 +4,6 @@ 输入法提交输入的文本事件。 - ---------------------------------- ### 属性

@@ -18,7 +17,6 @@ >

是否替换原来的文本。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -30,7 +28,6 @@ >

提交的文本。 - * 类型:char* | 特性 | 是否支持 | diff --git a/docs/manual/image_animation_t.md b/docs/manual/image_animation_t.md index 22f5b78d2d..6216bf2573 100644 --- a/docs/manual/image_animation_t.md +++ b/docs/manual/image_animation_t.md @@ -54,7 +54,7 @@ | image\_animation\_set\_range\_sequence | 设置播放序列。比如image为"fire",start_index为0, end_index为99, 将依次播放"fire0", ..., | | image\_animation\_set\_sequence | 设置播放序列。比如image为"fire",sequence为"12223", 将依次播放"fire1", "fire2", "fire2", "fire2", | | image\_animation\_set\_unload\_after\_paint | 设置绘制完成后unload图片,以释放内存空间。 | -| image\_animation\_stop | 停止(并重置index为0)。 | +| image\_animation\_stop | 停止(并重置index为-1)。 | ### 属性

@@ -375,7 +375,7 @@ ret_t image_animation_set_unload_after_paint (widget_t* widget, bool_t unload_af * 函数功能: ->

停止(并重置index为0)。 +>

停止(并重置index为-1)。 diff --git a/docs/manual/image_draw_type_t.md b/docs/manual/image_draw_type_t.md index eeab9b35a6..9327d8f2e9 100644 --- a/docs/manual/image_draw_type_t.md +++ b/docs/manual/image_draw_type_t.md @@ -1,7 +1,6 @@ ## image\_draw\_type\_t ### 概述 图片绘制方法常量定义。 - ### 常量

diff --git a/docs/manual/image_loader_stb_t.md b/docs/manual/image_loader_stb_t.md index 0601834209..d6464335a3 100644 --- a/docs/manual/image_loader_stb_t.md +++ b/docs/manual/image_loader_stb_t.md @@ -8,7 +8,6 @@ - ---------------------------------- ### 函数

@@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/image_loader_t.md b/docs/manual/image_loader_t.md index 323fc20d00..4760afa9cb 100644 --- a/docs/manual/image_loader_t.md +++ b/docs/manual/image_loader_t.md @@ -2,7 +2,6 @@ ### 概述 图片加载接口。 - ---------------------------------- ### 函数

@@ -22,7 +21,6 @@ - * 函数原型: ``` @@ -47,7 +45,6 @@ ret_t image_loader_load (image_loader_t* loader, const asset_info_t* asset, bitm - * 函数原型: ``` @@ -71,7 +68,6 @@ ret_t image_loader_load_image (const asset_info_t* asset, bitmap_t* bitmap); - * 函数原型: ``` @@ -94,7 +90,6 @@ ret_t image_loader_register (image_loader_t* loader); - * 函数原型: ``` diff --git a/docs/manual/image_manager_t.md b/docs/manual/image_manager_t.md index 2ad00cab6a..ee2a99c6c0 100644 --- a/docs/manual/image_manager_t.md +++ b/docs/manual/image_manager_t.md @@ -2,7 +2,6 @@ ### 概述 图片管理器。负责加载,解码和缓存图片。 - ---------------------------------- ### 函数

@@ -34,7 +33,6 @@ >

获取缺省的图片管理器。 - * 函数原型: ``` @@ -55,7 +53,6 @@ image_manager_t* image_manager (); - * 函数原型: ``` @@ -76,7 +73,6 @@ image_manager_t* image_manager_create (); - * 函数原型: ``` @@ -98,7 +94,6 @@ ret_t image_manager_deinit (image_manager_t* imm); - * 函数原型: ``` @@ -122,7 +117,6 @@ ret_t image_manager_destroy (image_manager_t* imm); - * 函数原型: ``` @@ -146,7 +140,6 @@ ret_t image_manager_get_bitmap (image_manager_t* imm, char* name, bitmap_t* imag - * 函数原型: ``` @@ -168,7 +161,6 @@ image_manager_t* image_manager_init (image_manager_t* imm); - * 函数原型: ``` @@ -199,7 +191,6 @@ ret_t image_manager_set (image_manager_t* imm); - * 函数原型: ``` @@ -223,7 +214,6 @@ ret_t image_manager_set_assets_manager (image_manager_t* imm, assets_manager_t* - * 函数原型: ``` @@ -245,7 +235,6 @@ ret_t image_manager_unload_all (image_manager_t* imm); - * 函数原型: ``` @@ -268,7 +257,6 @@ ret_t image_manager_unload_bitmap (image_manager_t* imm, bitmap_t* image); - * 函数原型: ``` @@ -291,7 +279,6 @@ ret_t image_manager_unload_unused (image_manager_t* imm, uint32_t time_delta_s); - * 函数原型: ``` diff --git a/docs/manual/images/app_bar_t_0.png b/docs/manual/images/app_bar_t_0.png index 43b9aaa7327b0d9a466285a5bf6ab975d4341611..de7a5c5cd04faab74eb0b4b15178a2edb42aec0a 100644 GIT binary patch literal 1543 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 literal 4718 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 diff --git a/docs/manual/images/button_t_0.png b/docs/manual/images/button_t_0.png index ebbf2200d6542d64236aa4fa5ce5417280f19ab6..b5e1761e722503e8408be990fa43682499d14ab1 100644 GIT binary patch literal 1508 zcmah}dovRvT6sA-T zK+LrvnC;2XtzdG$$^Ki=LF_ZD!+H13)jLMC{scJ7NVT|3)*Cg9mfHI#zVP}NOGXCZ zRHjW0C7k*@b#`#HcZjxryKXx4=sJollb_d>Cbr@ik@bzj#ixszGRH<)vj~Kd$d9Hk zAo!MdtqOKI4$ppe5EKZRA_Gp%LeOdjGB@!dkhMf%uNk7u+iRtOWN*KwT6XZ__(h7X z=rqyi(E4AieuDV|!%|{p^bFfyIyKGqWBX|}TCQaL2yGFCgP&`Igg6&4-l_EGQamWu z)#n9$7;ze%ZVp(|tK;hMtg(6H9TvJms=JI6& znhwF;G-oi<<_wKSv(Xk*S68#ov-D|uMw6Y)P(?Tk9rcDskMBGGS6vj zW(HGQRyHn|2N)R}BMN%>0|P!o^>n2sXe_rFi9~kE<*oOG;r4cRcM^F{cF+-_e2Y;>(qMLbw6>n5qRa=pcDi=TR>myj?VXD(50DPZ_Lc|jYComJnQBZ7E_G^l*hiMLV z4hDlkGhgfjeeD=u=|TAg1?TAWckF{X{I22QLOPwEa_6N>xk=mO$5=&unJlhnE+QhL z()`vQBO}$~m%-(hOX(ezie&ow`t`ixGyvYv(sIDx-(Ly*qG`@hbOK+v(h(=w*l

zyIK+EXS`8J(DdD(*Ytu+CO2?6W(+_A9^9SL-QVxkFQ6+wfT96cH#Zzr5caykQ00DV zZ*c0CtNz_v_@4lwapB->oV~q$mg`+@SEJx&E;q~F1WMB&q;-T)gBwiX6Z4Kv4h{oA zic8Wei^~mPZ991qL8=ku2aK6Qt%rXjDOkbH9W~pw)vo<}^4|n}U;t=uz+30g4fx|H zFvcJ6x<4+KPc2_JOQRR#m89~`kg3e05&ZT>ZCztNX=y2?4(VR6_(Q`Uct4E zN|=fao{oN-L(Q?ZZx^i{d8fhk;`71_(E}WV$S<;MppYrX|4@W)uhnCZ*e2lr`4v*% z%IL(H80V-X;*F(-XOtNYNx-?AZ$LeQE-I1~M@p*Ih0)T>BgeQ2fi24weIcR=Rq$)# zQy8POWWM?eIBA!}3X-vMMh_@AIv_rNGthV8nKgdfg9pba_WtBWBxdvPF~ug)G#Uv2 ve3-eL%(RGV5X4b$p~5b8Lt)>L`Q*x3t2@TGc`#eW+lF|c@xa4h&s_T(T~(H+ literal 3801 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 GjQk&H##0Rd diff --git a/docs/manual/images/calibration_win_t_0.png b/docs/manual/images/calibration_win_t_0.png index aeaba33d3f711cb5f311a0f9a0b24b9d8e114c6e..a89f9e3c6488b1dc937742f489f4de0ee8d68a70 100644 GIT binary patch literal 1781 zcmb7Fc~sI_6ecUP%t=aV(=2V&6w6%79W~GhbICM`#AVcSMFoG>xaHb{<)}5OXl|Jc zu23qFT3Ke|v{{-M?zseHVL(XYP-kZTm^0_poOkZK=f3;ickdtH`|br-XGf(qTh@R; zASL8M_z{_B%B)C1Ubb(6W)8}nyg$kj4qE!UO4=%OWd}7#xZTmyg*lU zf$&>kX!A4sCO2j1Rl>45MCR^L9KP<01{AThDr)WEXRV8n9XG&=yfA~bvnkuFR%Et1 zOhb$;@~w>}PQrkv0aKD>WnemB%9=6HH9y(=Ko^`h)GesbUgRgFV4&iZA0_j>&w!UJO^Lx z8c0w6q@g{pIA2Eg3zXp1sfR4D&MlfE$esREHe<|fF7%EXiGb~lFmu?ev>aZifwtEz zh%OygK!N&x%AlL+G`>|pDJsjsyr>|}`*P~QrT7O47X+b_4`Zn@3~$TGQQMhl?S76R3;^~KHe=zd zW945t>|G>4hj{2sc>gNpoRx>q`*)gF~HzrML} z^{T4m^T%?*uhz!K9Fe5Cwe?izm|sH|7_(OxIB1r<~ z_;E^uPltTXx9qrC^WY$w128bxi%BHvSmY@b3YDyP0OGfr%e=Nn$Q`5_xHrDMm%57g zhK6@~7?RSsLO6PFIkBvJ_lefgH;H0?AO?$Vb}6A_2xfULO$s{w{C;+1hK(0$^6THBT86USl(hp(Z~uD ztlA^sZI9~ozWyJe>%ZFwaq=qDUE`gy@l$!b!}}|>L@v>K)|)ij-YVIUTgB_n*@>*k zWz>du|8{gSE&NbPB|9rPGvKz8qU(NarJtCfgYryACx=VrA7N zY#Q*aCWpZgI`L>&{6Gu4xUPq3Qd{LZK-Zcqyfbq{F9g#P0 z(A&Rd|LEz;NngXfAaz@VD@7tLKXZVam!I!VCj?LH$%WMR&6*Wwt(Tf8l(cpge47)0 b>G;xeB2R^7iTac$n`0m(!Wmv~@0;=`@-RpH literal 4975 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 HY{UNt8xL4P diff --git a/docs/manual/images/candidates_t_0.png b/docs/manual/images/candidates_t_0.png index e689b0a43f7cbda267f9794ce23daa61374e9268..c92193b3ec1ddbbea6bb79e8554b31b7fe93a1e6 100644 GIT binary patch literal 1695 zcma)7c~H|w6lQ7#Q5a;9OHQMxh=7O~l>kK$1%ZG-AQCPG!h{eEU^rr+q7_594=Hyl zrU>B+I~lneW?u`{wPw?-A{6uS)JeykA5_ zMAGt_`3=Bk0yB4?D6kgxvPu9Wdh7aCa}nWRgWOn{3IL9l=BAEeIg1<{e;HTh_EjMQ zv$sfzbN~#Jt;bGRk*PYP;vgHP8;Idh^(HASM?T5QLG9E@m$&gD6Sl1M1Id@=DZjME z%bLxPwrXhD%uHDOMy@B_GqHP?%E(NeVe6;as?_@$tZm7tt}Kf81wp|s!@dZ*7A6Us##MCVP~V$y&>#3V~Ixts24%u=qW8Ylf}B} z9ur+ap->PBZwwTt9!mt7i(UjhP);^Y_}i`YH(;gA4oJUN#QuGHXOlIi!&SXzyuCr! zcMQA21-8LMN1Rv1ZhM2w!l!wvQO=DfMW$4nE#6W9b~1Ir5RDM(x$&5ISK*v~&#A1< z-8Dyg2VDxa3@+PR9}{cjhlg6HkqO5Yq2j1=@Jp1uVJ0%CX2%w z(_-G2di!#nX%!|U3%eyNMYwF*k&R*n62oVp=(L}PmA(!dorJ~13#zr?!Xmu|anthW zNW3Xjfv(%Z^Qee1s*huN4CtlC1*ZcM*s(f#qRogqkj34UCGb49tV`9Yx$=VBQx}SR zXY4^7>g~$o66ly|oqM(O#SoB|OZp_X^?TEm!FDCc$;quowqUKwN-G)DHbv_%%=LOW?oqsYoe;2>KM#;^|Ib>97rG8c{*S39#$?VS~ z0*oO9QVrZD2ce+=CObQO2vZ9%oR`=)zDOkC^D9H8QgPfqm3rJFYox}az$n)A zO8x?Hu1cXfQcx8iAAet7o6F@ce*Qc>)`)i==qY~CaSM$`yA(1iZqeFh@76kk)-a5Dc2Va)Tj9k>sbz7) zd2@r*93)J;K|#rjK;T@;O>m=!Xl_i$5{csY-7j_8y1HCQ{hWH$J~1&dU!E{l)(43^ zk@(3`F3ME3fP=~B-$S9gU@#auGIAHqo|<~*_VUh=_(PFc=KbjDxsG)4fU}k@&RG-ik(}ad#ag_4U{J z4UqyCSl{@w!rbKQWV^s}dym%0>S|?X<|?!kR79a@@PS;l;L19`io!`pc2*F&&=6KD3OL{=TL`@W8xn>Dm7FFNPe55Vp z=wS=Rn1a?`%2t?;6zj~E0V)!k(x)45ZJXgGvq^~Z#HSceRegLm5|t(J*=~8L!qgy> zm$4(>5%dsy-T^OX__!349Ni`jPpptFM@?uh#rU7}YS#|-%goU!c!JCDC!bDq{ji&& z3|{zXgh9BQ#KF~0(9(N+G^Gy9gd~rv$kb~4<=gY;V&rL1j@_~OM~S!8#w{K$J*fzS0v$)h N@`|l_*=5h@KLIsZPw4;v literal 4713 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 PjzIc4#)!9C_Y?mM1TVyB diff --git a/docs/manual/images/canvas_widget_t_0.png b/docs/manual/images/canvas_widget_t_0.png index b9959a8979b1000764d7958d0e62cce9c4a1f693..9653295ffb9c2405ae1f31654628ca1576755ff6 100644 GIT binary patch literal 1769 zcmcIlX;cze6sFCxG;J)k+(vUNH8d4<)EpOFGId-g#55}nGX+CjLGsj;YouvPrlLn@ z+DtG?)JSZK#B#x=asy?=0u{`Z#T6W!e$4!Ae$0E{yZ4>@&OP^@cklaN{!f8Es@wN% z2LJ%7e!gBI3f-bu)!UR5QVN}7DwNV0e;+Tv+WM?*zgwy>5d6H{!!oL7*sg`|BXk*a z*~G#4C%Y`~^m{xCR=3oo((WANMJ(xCf;qovYsF#1!G+*Nx`*?L9jD#h)x$I+ zk&(Stv9TajplO9)^5Kpwx27&rMo-0P64`9xVQ`6Y{suI0RRgW`hDCwpNhfX^n*iDEQ9rVGII9f6g2xOhI-sY<6XsOtV_)O2B{h{?FHVh`a z$U$&udgy(=`E};v-FME5%XDsSMS5y}D_CcqIqZG4YeA*XoO>l4K!?M?YteO2q zFFV}~is0g%vRfaIPwt7g^#9&p`bO_^lJaHiJgQe} zZq)*;snJXu32dTxS8637x{SUJ=T}dhoN%PnxMk-MI@ur)Ncb{WEp743cz%{v6WBRiK6VxgX{%5|jF`xK2dCkzT@D+^NY ztHS=!^IN#Yp@D(&QEEC9-A>SRN~T}ebA};xa|y>4KCcL_7+B2_EcqlU?(Y^ke*Ac% zqplL6;s}=*uFFVUT|_!(e5tLFWtNRA0#hgy%?#Lb9@Rq;wk221Afkh_Muo4*Woh#t z{irB@;PZ;+O-RV(>ryjHTU$K8ubM?^=ghLErypQfq*nbsBbQn&b~7GXSy@3_Sfdo# z>XHbgyAz(8YX9|YULt^Cmc>&Plh<8i?U)(y)H}<7gWl{tZP{xyaByrKlaTtkBV(?v zv9WQO&#XxxKrwd9?IwjnUT-BukpM=v+>BcLJW7Q->W;j5QxHYVYU2&BC-rfL)gql> zs5z%jhw)k!clW`rUTXNcAW<zG ztHBP*_!kbn41+?w6EY{ohiZ|E`upP#IW0Wmf7f)gNt##Nej42iq-4{54$t7m1iSwo26GvGl(&o zdm-Wk>m#JYT#Jo-tDc1h?W>v#BG zp{-mpMPaM4W|I%snd7#6{!~2Vvy0mwQ8AIHuXi3}ftYMEBH}T@GkD4*Z`KzlK^+&m7j7hl*>eHp{C6Yk|)d6;c%E3Hkt9MS)Ei4 z2nbtgFuCV5+}!~7V%Lpml6Q1}_pNj?Py3W=t^M9f?UX6BI*^W?>^HQvrCu2KNVVN~ r^!-#y6|4SAdb8)dJp=#hPKjIbZvau;i|EaYzYE|84)h{=oVxrMlhKc$ literal 4944 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 diff --git a/docs/manual/images/check_button_t_0.png b/docs/manual/images/check_button_t_0.png index bbe606a5421a6f2744db6c17b5c005062176c720..528710cff0c7059be671b837bc1518e20b3a985d 100644 GIT binary patch literal 1743 zcmbtV4Kx#K7*?I)<`gNdP|GP%GEyuFw=v_8#x3rcp)hOB|5hrNtdyGhsTSGNs<|~A z=4WE8o35W&m}Z%fzfm(PS(u-@ZufLL_niB4&OP7xzW1E(Ip=-9_j$kPeXqd1V5?Rd ztklrZSmo~K;-j`~^`>d9P@nbU>2bALam)keqOtg8<<}Hst1n3IE(edC&QtUp#;y(A zP~VS66>h=btBl_2(@r+0E)T@_d+B1N83PbO^0dRVa^RL5%!P;f!E3++PidpiFJ68F zS$ECQ{8DEEAj_K8;@KMN6)U4JfV52Zn4;-9uj693<3wiZgReA<7cYV|%&xXUR^Pp7 z1ktujg#fHRP09VL@$#FBu`v>8`9@BVAkvS6{2}mCjyU3e;>^bfJp!Ur{Km#M`P7N2 z*Du5GZ}JZa&<kJYjm()DjNF3WI^Fi!mz=X)UT4a5-Y zJ*o$9Pu9jEyw|Pylxr7#*Fx2^tz#Cnw$Icx`*7JZfd43~2mK6b0?R6FkFHFrj1(xt zW?x{by-W{c6aH;`OrCe|DI$KGp)|xT>#)nmBx{#CRh=!AJG-j`WPUxthAIEJW@q2L zcuhwNsnB$P)Vd-Or)g4%$=HMuD$^?xoSe7jFSw`r9^B-W#|$}>kufEr+4%Tks1jT4 zsFbj5Ag1G|WWILUeFkf$P`k3iY9DHFW%bT3guIBcWS$adEJMU?0B`^+}bedf%T?lc=(d z-+?OgXZt&Vy<36+XHTh=xazo(bedzL)G=}Pg+U z&Q8hOOl-Uqva)xmnloWRwdYDkTJLl>P=M@ih4g_36+#u8T`QyGs{^Z}`!CR(h`mxp zg~RFhPbzpkXEjFZy!UHxuv{*$_LC|I-L=HUNJ|u73yCPz^{3c^!R)??2^8jzU0l6v zWJK+A1*Z_9#fGt1EW(EYs6GDO%Wi)oa`a47wka+oBzeaL7^yQ`EIwL&ZiY+S7jrB$u%M#^ z-AeCjz2mg(Naq1kXA00M>6J{zw6L^9a|8rMF4Q|z2k4j=8zy{a2{`a`P!La@1&p#; zn0OW&9$r7*TZ08h_2$Lmh0YNU(@MqdoOwghF79d@K7GVg7FbJ>+qN z$Kxr~q*Roau4T|&6DDP3VM_}MH|X@y0ghzXN^5=FQ;QxcVF?bn0AaY0Fs#){;GNoC#eO!TmSkiI&WO5ab(Xu+eK zBYE!*dZw~HRg8vdX^@04h}@=n6?t?ncFBL}rGKSA*6FdjO*0XiRt$+8!4exF9QCB7 z=+@kvE|Ewy#9FG{4F-d`yV7QM**vo<_+tiq{c3YMwddLG#SU;?^@P%JhkChiAi)=Y E2j+@jE&u=k literal 4720 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 TuX+KFkg#Bi>I#)|rh)$jjZO!H diff --git a/docs/manual/images/children_layouter_default_t_0.png b/docs/manual/images/children_layouter_default_t_0.png index 0d9135939e00607db38edcf911806aa1de6c1140..4ca146250297a71bca0e5533a73eb2dd6323283e 100644 GIT binary patch literal 2290 zcmcJRX;9Ni8pi+bfE!QL0pkej$RWrT7Z?MGgJ_V!a3}&XL5RpPgcul&+?T`QAV&m( zVK^fg2oOkAB61`_U<3>zngAhO5f2auV2Fu8I5x9>*r~0Z4?9&`UDe(7)?4rMc0Jv{ z>RV@B9JX!VyBPq0ZH_;{+yGz$M7b{pZB)+hX=}Tb%f`!a2Nw%+f( z0Z_M#+;HU9$G=_LHLm)Eaw-g*C6LSON7yll3O;7E9H>3AXY0GQRYh1{c44DFL%=|H z6ZKuEO}`3CkwhA+?YF6H&N%t}c+}H@fq`k$4M!kbPa(a%Yrh0H+yE)78nkV>;g}2t zh#&}XXr~Y0q|E|;h5bQR_rE8Y7=RL+;DGfr@$H?YgWI*q>$&f*G`z<=&OlY4z0Nw} zV-wY5un^d7eJHKWZ3tIg_7+!AVS5hB<{0i!s!aDWudeY8)3i4wK3Sqsz=hwIP(crC@9cklBG zhwkSME$v;-8OlsLgmrd0cC(?jCN2)%v|mzBQ6o`iqdE%faq_0%7eC8KFbppeOZEt< zUy+G{y7T0QD?-UE)t)MFEDqVvmqeFhz~oEXBN;RknH z8f&vq)z8Rt1z{b7Vv7g2&X-s8^Yw~HvF(SA3+E*h$T}Vu1u^1P zxH@w<0Uw?d5xmR^lrEVq;n(*Z$m{bNh^H^}cJu3o&g>24fp;U{_VWl(+_+7zHXC~Y zk$_Y*F83F;*eEcJLQ=ix=!{e3tq;3f(?g7S=z+EL`25#c7H8S0Zr-L7+oC0jD((i6 z=qddy7bi_$udfA7XIos3N3{~luopgTZ`)GEOn<^jD#zM+2%_pUKAtojGwy$FGuc`2 zzdQfsM&<~~zaf#xs%90+pir32K(}!7&3~LWRXyDC_UfpfdY~zbL?ZcHYH_by*EXwD z7C(+BT?q|^w}|rmItl&W+jkj5Al;Xa{Og9MAe7R8{J^%bg3@IyLM(vCwsfw ze^JBILAc)vz^oXByf$`i1xfdAK7_?$7e3F6n&2n5?DY9)y7iP*#9YxxbA&4=c1b&Q zj8)aF%iJ-p%8<+D@22=vGp+6K#lpI4<87*&+V9Uje0ee%%!-yx--%Vooo}|6rlw|` z)es88f9)CW5b=l*5K#)$`ma$}C z12`PcoBzBn3pK1Si4^&H zu2|_^=i36KpTqQBin8E&ruzo>!_KMqgbXU}nGrA$o_hfQ{Pe>+vyc6~gcTkUK@8t` z8jbcsa6$S7t$)4qD#^HpiruIl5Onve77D7uGBtMX%*-D^cp-zKcq;R~I1zS5 zy6QGXL}U~5!kpCY%bCOO_MO8P10|JlMbd9Ua)wBp5WtgW84wiOtx(EOV)`-tQhQH%ia3q*UuM4Rk=Fv5*JG>1~F5hQ9D;&AUy@jdD$dWhF+ zLhYAj4+s=CnrjKcUFfYjQ!YAM@5l!i75b1p`JKL3OPftVjKqSKO;yMrGkRRUrbYJk z(lD~;(p5n`Q?RW>3FzBgXG@7AUxz$vG88C`y$$UxxI+rxM-@wJ*y!p?*J00ZCMi>{ zcg9LsIi?isE4;kJb@*t)MYk9wJg4DaPQAfK7?vaYf`29ger$}XI%<>ti5_=xHDGpf z8i8M15dVHUPG@Nqq&JM;_qa=;gV929hVc?>T%U0wc+`{9QnLzPHER__#>o(Yq9}qO z-s+9iI`1FsPgVr`j_O(He4g7-e43dAr*j4S1_jPaQB@EOn{KLFsE+raQ_-mL8v^~s zmy^3lw0tXR;93K(Z!op2clac=o`AtTJw3TJ5RePy>r1&S>==LLv V0W}*hDL*lQqrD4^e)3Y{KLK2KZRr32 literal 7418 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 diff --git a/docs/manual/images/children_layouter_list_view_t_0.png b/docs/manual/images/children_layouter_list_view_t_0.png index ab4ee7b16394e3f4fb592021dd91093b5eb4d4fa..4f7cda2eac35dd72ee454a58cfde90eada11ea26 100644 GIT binary patch literal 2332 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 C<{R+< diff --git a/docs/manual/images/color_component_t_0.png b/docs/manual/images/color_component_t_0.png index f061e2aa7643544989574da5994fd5dc1f7cb7f2..e2f8bb6ef0e4d5b5c3056b2aec9a05a3aec98d7b 100644 GIT binary patch literal 1751 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 bIAWUbq_e3~&1T^5JUk6mU6pdB=VAW?z?RhO diff --git a/docs/manual/images/color_picker_t_0.png b/docs/manual/images/color_picker_t_0.png index e402017bac9d00a784c67ad490dc78c85e2b5346..62ad7b447b939d28cf2c4482080b2dbad2786964 100644 GIT binary patch literal 1732 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 QI3OZHqn;>NDwzfT2cc-o2LJ#7 diff --git a/docs/manual/images/color_tile_t_0.png b/docs/manual/images/color_tile_t_0.png index 0cce0d93696ce05beafab47cc97b5d7e6dca848a..590b2bf05d492c309023bc7c3a1509d038d73611 100644 GIT binary patch literal 1651 zcmb7F2{0RI6xQ7?9duDjY7C7F8vv ztE+V+M8y%3y6@7WA}VS{Ln1=cB*>^uXS%zc*>-1k{`vnm^WK|p-h1DC@Bh`?({;D9 zuCjuH!fv-8pgwY&C%=We6yP#~BYfob9O zd)K5%8@g#1l+`Xkm1zk)v+;fi2-wvS)(zQGdcF-Tl70O$X4u}$yBwCVs2$H!*SMSvTxlyArv?ReWgvt;*RCV4Y2Z;Q0BK^N*Bc<05|e7btjwoe1V zNmISDU5Sl}i3uJl0@v5q+lfh|goTALB9WNA0-Rdh5;(a$__r|*Dk=x=|+f8qw&XC@ZqO10FH;YP4Qk#omT z-zfB+1berBvk)~2%w1Eu7;XfK4U+)2%a7rGI(>I&Z(U-I^#wz=D%dB@D z6SuHbXu;tOpq?`_qorl}NFek0SY+;9{u;%b**DYySrTs*&p$Mn6l2`>f-8$HVw<3J z<+iK^Aa6A7y$0g@mnV$D5jJs)(0lc^z1dpa&yVI`6AM5YiV*<;Luk0q0~b7%h840F z7sJ^<0nV2_ul1`jnaxNtCKeVppc^XLKbqtZ|DL?HIdMFB^RD!4!K1V0d94mb_`S!E zaQj5uk*Kh+ZWB{eflMk)-9GoE^mTz{iAWUZ9~9K+nz4T>!_XxXk9QFs%270AcrJDl z)FdLV*Ywm>UGyv+(H7XKq_&>}uJH*rhCK=-Pq$r@M&fX+%8AN0oOr;~%S%+`dq^Ge zRgLeUgM))LsY@O)Fff>6vjd;mStuF7g0a}i{NXpY*^2-5OyN*jk&Knwmb{)6=ueYPf{(sxgq4-m)GPx} zyUZ<6z4Cvmv^-eET>z)P(vldq2$Rl`Ix4ObHrBK;#-e1#s27Hnb7-ZGBTlG4k5thE z+$4;3hOJg~NRvg*WWMRRxCGdrAc$f~rA~xrE;^C~S)RY2b&rSasN$R@rRjbtRYew; zvJ67EVpiLkFL<}?`}ZNwsC7(;awV~<9sP5ZNfkZmjVD1#aM^7=@*)@4)^zD#1%E&{*I z%;)x?&PG4;bXn$t^WmMkw{M;^&mm3IjEMR9ws!U1-KVyy4`01JOP`4+a&y e+5ha+EhPu4BO8e+&6NKl3T~%7p`??+zx)Yt`$KgA literal 4311 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 literal 3742 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 IIvyka0}-P+9{>OV literal 4882 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 H>!AMts(xpU diff --git a/docs/manual/images/combo_box_t_0.png b/docs/manual/images/combo_box_t_0.png index d3cf03550a029459151954953edb43cd5460e429..97ec923e96a34285bf53755305424d28349b6cf5 100644 GIT binary patch literal 1609 zcma)-c~BBq9LH&z%p=oWuRPZ@kJOq~(^ARuNGXN9m%J(ia#$tSOcRi@G+on1G%G_Z zZ6r-4Q^7DaQ*k{Aj}R4=)kMXs1<&MgX?AvJcV=g6-u&M0_vZcn_`cuoecsDF1NK%` z)>8%m0IDD#&j7i@}CGPy%tA{<6_N?LsB1q<@NOM83h-O!k&JezL2ZL3mo=z#Tc%pSF$+P3Qp z->xP8+Gzw#e)h--l}^;Su`pEQ!68S5Qn{**h+b3H!b0Wr^t3xT^Ee!VSX~&deG;z# z6!`=+^Eg#uRCh?0(teNz7F>PpoT<@J#!kn{8`(+!7g9nPwR_2aCva7FNY!Q_#klY4 z?22j4q$5>4T8uMaSCGu*}ql@7S z9Mgf`*-gX>FH(MqX@}XzE{67S7lc=OL^K8Qhw1c} zGJs+$TCb7p_B%;h+;D9bdRc3+_I*QzJ4@%RrqHK-+nq+B0GlwQ3aqYpaG{g?Gs)H$ z;^19uo?ldQhDpgmj64mZ55=B-%XKb}L7vtOMl-+E{iN&5zgqC$p|)iI-k8F%*Vjt=Ced4 zR5sne0Oox8x9bH31y}f8S`m#`s|5SoGpLM%qRDm@TU%Q}&qI4!{7g=Ybd$Y8DDiaN z(eJ?SEA>uToeQR8*1@dDZm49C|Gr`(n;kqx$Ar=&A>KI#eKpY?`DHN!-M?rEr(AKH zLB?(=L1a$eiWnF;Gc$8ocb8ry6q{jT;TLG=mJ+^G%_x6G4DFg>J+5zP82Y_y(!QgMQ43N+S)YizmKo|$ygHAV8HwY9Z#;?gKhES5HDYiqBp&U4a3 zv@It0=9ZPi;qVWOS2<&NndF+P!ggC58;81ANA|D^4@EW2cIH{kgP|Un^(D4ofOIs0 zug)rzFRVZsML-PYvba4J9`Ll&nnsG)@n@*>Ze& zd6|a&EXohnv6zG|Pc!v#Te1iexJb`sX^~3}JnJvXKrlrj5e*U8YU(RV(JJIuVoqLJze)=|`Qh`;m`vv3 zH-u@qMu-KNIMiU${TjcOVxFmXY!IipfoRP|z+hgRK<8#9?wP_e+7&^-gyT2k`=M|@0AU}U zzf*4AmXbwjL>l74`_@gLofAr|2(QqexviJd*YCFnA>LO+&negQN?5U@GcI7ZF-1L< zNa@lpghBa-!uz7LWRX*l_`zY6p~-p}zotehdF0(ik@v_Dy2T)OqR+g|AFY?#X1|oj zjN0ILq|w%Noe=tK^2|JCVARWjkbB7cC1{w=FpO0v!jtU~>>q;D#!0bBxqoA~V_W=euL-C> zO-08M<#p*Em=u_VC)7{q+)^*azn=d4t)y%L3bWIcYJ`4K^1lH9@&bESyPr$_0}oU& Ap#T5? literal 4181 zcmchb^;;C-yT+H0SfyDc6qYVoq(ypZ5Tr$FXGjTodJafO#{h0~Z(o`k^(}O`E5Q(aaf(|f-0b2$U0kEG?WFrO! z9CsaMIH+jg(IyB)PNu3Lr{|5cYijpXUy(eGP{o-gIOt^l2e+Csxxxn)#R6OoC{YBZ z0truG6Qvrib}Y-VA-Qop5fQTrzjpqJ0zO<@)^|TjDALY-aB2SPw9bpsD_tUP*30Xx zZz?tQVqjorzU*oQL-bJrk60MPDpyS%Nf1wf55@iXgPuHyO+Ut@50U`(+?yqCyg4=2 z`=ctAJS00;ZO%-7gEbamm#fZ>m6d@ilM>_RZ zkmG+J#Z%G4Rh9BY%7QGDq<+RJfh<#1cPLf<&m%5l9P8Wb3zw}i?pon5nx0W)Bj0^gpckfBjlw_r(r)F1iLW@0AM2nZ@Py$mZqv^)iSon)ER^TP;CQ z$8e^?acKe(7{VatM0;o#A1=oL`NSYbTH!E7sqYaxMm1Fts`5iM_jBdEFYn{%uSpl} zo8{%@Kk7InP2_z2{iS#!N{jNW)w+pFEm{dgPQ)CisikjDbmx+O8CSx~Z2QMHTFGR_ z)=X>O4X=ft&YRTxLX@H(5qoTnY5Tz$1Fu~t8v`4QTGf9VVsYt3?D5+pAgJlzZ(C0` zN0%-((g_no<~}PU0xsCc3SW__#dG1T^(3GkBK#=^QYAJ_(Ps;Ri0*Q)eKS6W-ucGB zz<#R~^NE%sm!+1Fr!I@Krc6og+bCpx>;Z*6Yo@5B$*<@l8Yvp=gqmKc{Jno)|Ln5)2hI7`tGYpLik zTZOfqsd8ogj6EzYZfN0sRRpbUcN=|!s`cC*@z>4OY)6wYEFZ1)CiwfE?lfDpqPeRj zIh;am3Usm~F4u(vVWu^!*pHXeey2}P{|@6NJ$aqA%_@s7KqXHR%;x5Cv9l7f)_QD@ zmmo(ux?))gqv%DzDZeDP-EKVN^3qN@uJeIr_~e092uVwOjHzy8}tIKK^MJm5hd0q;)K*?U?U4ZGHJ&O$t4H*btI#_DW^xB`d zA3NVE8ypMM`Joc4b!sku^yXwGMrP~k_HvtF-)l!y!P90T@UGqsxzl6Y_XTHA>g>_M z0i$}Km}MK$B1I=_QD}1?tH~3r`o-0LqX$L1Zi(+d`&6qe7 z8WU5H&`i7Z_cZ6X=>eDAeU8LFx-=+nN=0JQqBteme}`Ky_pgBZ8rML6Lg_9{IUFQj_dC<9+x@22Y5WaXg5g_w34E%cNejZa+5gih?4*)* znh`3Knmak>fKur`H?4R_3rLywj<@5(9YlUnwn9;ldWttRHcRwg!r|bNO;5ZwACsi_ zK}8)U=7SU3Nyid%rw8<1!QV{ivo;r_zd3+s-7zmk@;88{o${r>(bVMQxC;Cr43NTj zO&l6%pJGBozT=;x~;}UL9PGZyHC@!IhvbkH<-57iiA<&Vkkap4HdrP&-kSK z{M7rPnea~-JQwsVhGIjRT>98*Z?@Y0DmRp19^AvwV>O6(SX6zwD=E9)myG9s-beLP zGShJo30rwv6n6~EvFePr??)-e8v5>FJI505NxvSpar4C&_uQc!QdN*XTMiDMdw{TF zOzK7k`Csi;+RKZk+tIMWR*v260f*N5bkAh zlowyZ^a~Ae(%scU$J-&Pg928J>ub7rCTw=VL}ULBD>H>mQiXXdCUAS+OQ_U3ia%?( z+HmhxE+1xH}jOO!vzWWZdRlY_d!4DG9i!XG*C4a@|Jn4)RmYHQ@LlsnI z@6#G^U-kiHjpr+Xr)<~}S{@+tI2=&0s>WBc{ha7JVO5~GC zS4MUJIqm{ebAg!r4{%m{lU~j&5MpHRuBi$Pet{ilDncao>vV-wm+y*$<2YZo04QKF zQDmx>tp=G}s_Hb4W|Co~7k-nG%yxJ;(bVyY;g5_i_*BmllcB`6KNooA#;f z?%D7Lt#-!|0!EMjiC&}!Y})oq2;$fQVN+e|N#M1(JlRxzCK$lY4w7s8K}lFlc#IX} ztWBh7nDnE})*ZHGd0ko~Nf`umSgPlqJ46Y*uh5^_)!~4rn@^TlG&!sJy<6!Z`HxeM z73kmR(J#OUI3}1*$Tlc<2RWJ}H=3i7>AcXOmGgpbO>KQ3weZ}Vw*zpl zQa5M1Ucd8P4Fs@%T);z6fN7&Ch^vZ{5CL?y{VCad8_&;=fvY|ia54+gsZi~PFDf&r zhSxl)Zv%)mHa@1!>9bj}1mh2;N`z8zypWylLTyhJcfP+m1sI0J!<5gcya{l#8|lPwlz&cvh;|OJ$ja5&03j}(&(~;TVekP zjPO~5{0Fu2RW9eJ%IsLBFy8BZbT`!jH@^g6IS+@k^%ETy?Hb4k67gm4Jz$QpXD~K+^BZF$Ttu zkta_nmMV^|>7l^%(Lj@Bht$DCz|$_+s7FZ$CsDJC4p{BW7@6CukeEsmH{%!K)7Lj= z3z_~GM-iMm>0C2xVtA>~JwC)pU#e)#0K8DNf-P~g;SSu%i=%khDt{?;Hj4t@?}+{| zhszI6JmpXH*}Yt0?OyXf${SP44VPPmlesUMOgmt<0DSWd!q7_0@A<~tg`MXgb$6-A zeQy|WCA-(q zoo&89UylU@ts+DN(GwU27BcqDa8^MYAk;#`kH`DJdDWO@w~|pt2n2*n*5sjCawF4njcVmTr;Z~wZQiPPuTuQcBDNZ&l{Dj?Z;pQ~CKHFTCyrh1kr@Y(qb1xY`P)?sR4ibz-S z82I(c&`_}*PxII0&~!sa)w*H!E-DV718J;%e|%ZxxogChXacb+u0k` z>2yM@&F=+7uUN(ecD=*cBVH+Hafy(h`D3^kN`AwPOz@0&alqtp5na3uFzw0Se9;>UAG9>GSmBTS#^8h ztC({l3U$wg9!h<|DFQEm9XTsiVA`M+hAlec_|Qc94jL@}|1Mg-rD^3K>S@Hoj#<8D zqq&p7c(3|dgw0pET{3~&busETo44}JN%73@MMi_#ptinliRz%`pPT*9VIYCgxH1!5 uayt#@aaWwM`~JV*@4MsVXum~ar-F=( z%of;5=vk?yNOzIEtn?ImPW4KS>_rEAsLa|wtCU`uBfY@FpvPTf3TLnpB5T`i94^mVwDk&p@1mT>@z+!Y7s^nNOc=sldzqtgQ%LM2az{~i7Ujo_XLZ+Z-;2^z6 zZ#CV-A%k28H%Ey;Cgo2d3QX}j&3K3oxsUHmuq0YlB6tcR?&(uBRAO&*{6Yeva|7|1 zzqcBr{u&2GRXVFrVGH}f{E^r4;gIpCkgfMZ6B^brvp2zAWCuIED!kpjG<3GA8y*R- ztlZ@Zy7zv**oTUQ+P8MVM&tt^#-04$h91O_+J~mriX25s0k|}_rb`G4Zf)VHJ=B^w zRIw*>4>&wI(|qG`Kq9A%b_*^Dcv5W$7%jdOyd~JVyYWYT`MzQ168)MmElzKVwJqLx z=;g~KwD?mSPV0yYEteG-L5-sqL!Z3re%Bm(N!J=vkEC2%7S3$;c0|y9det>FZ1Gt} zr^L_WK4crz+9oTpmzHSWO;N9qTy%TTLX&5>M-n z5?@O*%=DGnv*tu=EzzI;Iu4Hfm^)051NmK^IYu=S2&P;(TyFgWuQw#FRSG=@BNe?Y zGJc z-g8ZpI@)f@soP~qG2GL*^5&rfnMS)>VjWLxBnblrR~#nT)n1e!(d;mpOrC(ZM9=wX zDkYPfn}a-v@JEfbC~2*+%fjka@#klbC00e8S!wUg-TJK(oAfj_H95seX(uKHhoGaX z31{r6MsKDfs+dzNX!@029iV=9D)k9qYi0xS`)uvqyJ%*tEL>XO<6 z9nTuyRtsQVo1ZdO1tO=U^(4pe_gQ#mxg|<$`Wp}QZ zj#6gL`nv{qpn!^D9F4*jcY9(4Hh9iqEbH$;r68l zd<t~0QeEHgQ*VXH0 ztv$5MoOlh|z9ku-zRa3r;1Mtu&gdC0iKqQmZw5t-?!S^JN1hboOk7;q%xqFjznju> z&Hd3Hf>|kGpf6^pPsJWjd`t$Xstdqbd#t@rcL(`k@DS!AOBT? zFJs0dO#%I$a;7=Wg|qUa(Pzo8x~IopUJ9jt*v)B(KNsJ SDK11hsAOPvj!>eFU&7yt>v<^v literal 4806 zcmeI0*Wa$Negn$A|Nhn&YL_|cXucu`W9P5Ft7(xc@ zYg~Tz0SDp$b6pq_W`u2%h=?v)UrPfXOiXYHt2dtJxN;2nTuR5ab7ThlK?qIb@^RH! zqo&hNxhn-5P85_DlrT^Bievr~42KO?L)P;cLg;@-em;#*t6o|R7-_{VHXNy*Id1*B zxER?EJ9Iqz&~f%bb!ikhnNbNVVCaK!$EeF{bLz?-*ex)Dq)A}TT(D*xbqK1qhkpbo z%@}iWb~HIspky2<29H#^JYIu0d09%$r)Z#(CeX&L6rvBMh)8?8;S#d($45(1nL?^Y`Kp=?WcgI%2MRL#)>K zJD@nMTc74fzoclIue{DBPnZD7hE=Y`7AT$~_TVdyH-5Kt~kOdr@l1Cc>k*WA;% zDQYh+%)N>f2EmM%J0i~L9HD{S)z)=raz-Ju3_fF2McB*Zpmm}gq&NIT?w5X{MA!+`-&*VTlPo>-N>rmr3z#)_AJi6YjGb7Y$=jsRe=~6I9 z_)D*;3Joduk+)o$&uPLn=3EBPPySR|)!M>q?nww)peZO>Wm7Qrt*!-V&q=gr5f!`Q zgEO+Fvx6=7E&1;n_-Ht8tF9AGOiK3k(2S{$(u8oUvj16S`oupE4g2bzDjgD#a*Kb> zV}4HF(iVD9rTFX@3iILNXQt^YOW{D=2>Uz}E*?KoW|%zqCO0}LB?zsCA0i&B7x%p;?c zE)mMCqWOYJWFyBZ@(r7U|5(M{(h8TJ=WRXeK2wdJ7HvBnXWLY_eHK5$>zy@*GWgRR zm|7d2?KrxwjD5-tERZMl>U*1%PD}AWcK6%r!F}_C5Q2*FP z&4VtNt>wx0wm4d4GMmpiV&w_YP(Aw4KR<`3+QXh%`^`6cX7Jg0^D4(^XcVa!dEU~@-ui{kJd4*b zdn5B&>^&sMwgNd*3fb+F4dx8T*Wh zIJ7k`);YGftuD;YJfssWbQmMe1*}+^%qWcSvh4^zVHoAxKyYWKK~<_wk9O)>X05~5 zHW0ReU8gH8%DwGSGZljw{MA4{2#*X~=7>7%N7nvs`sEVRN|0Z#{XmSx|L}A< zmfF5G;pgqw4T1MxUN^vv7R^q2GCM2K8s)h7T2+|65eTH9I3moKgP-5SFvQjbcT4g0 zO0mHkJ?;ttMx7vN-~$MAGAite@Xtt!ThfVUQNyogo>V=|d*bZxd_zKQ@J9ZE=GO2( zMH>N!+uuTic(OlMfPYV69F)?p8~c6{Ipf`c#0VjHe67Ib?Y!vi-2&3W_q--D9xL7P zHUu4yI)0Fea3=Z$QvM}7)q+%>h=}8he2Q;3P(8v#rQ)+| zd6@Uf-1?rcxW9_?7Al-CA(}>B;e2AsvF)j#i{Ca>CG;zZpXyYL_OP=8&- zeEerr?Vzqk_i`ro*`F0m($aABz>dr9QPT6~f#bckO4q*RyPqcZv3BpDl%4#+=?V@a z$L`%Wre-tM9|93u05Ft)i)HUK zEx=E@;z_S60T?nyrW~(B0Dj`h)f$8Y?m_G5ocqTC?x8g*c_0KxTJZ2hDggYn4dJ^h z$p}bRrqgz^0sIsM$`Hs)1|+8j5}i^3j8lry&ot5oNXzR%ub3{NoW1L|0UBU3SsBUI z93DV1t zH6ynCy**40WB7Q!xom1`ss)E)Qa${7e;=q6&X3_@cUjA2bt!XuU@@+lLVyXgWyHQ&ED*?tsj#j+8C~ zHA6ah*SX5>J;sC2Roft=*9N1 z$sTGoqcX#szYI3E&>GNGRM&Cpm5Iq9Rc8EK9qMd82K#wUqA4la6*FJY>oMv6Gmv7l|BSGs6;UkZ&qnuwl92@FXz)7SU*{7Cl?B2 zZQvQL@T0T+Nz>AO6q`}LtnsYc(~Xyp!G|=|OL04?0(o*ig{!mp(jhwbr-V7nf0JAj z{y#{rq-ymX_}nP~`KDiTX_k!GfM@HRte3+7AXk-*Ze9SfUKR4^C%&H}su4aB?k|c$ zQ(UvIbF`H4nleMF37NPzjsT>`KyPz#x>a|2JX33jPvS2eyDUuw$#8Rl;uf8<0e2JaTH zvg$N>O%HWI=f-Pnr22X-!(%u7j|b#xkd)+g4j<51;wjyl8p@#W$?IWd23g)p^uDqMj;GM=f{2#DQX^4tE8QPV`ClOyPl-BWwVE$ zD!Az@g2~UxJ6)_lS7NzbXQ5wGT#KAhF#g8PROP7$>y9E- zca+#$I%{2R6AJObESM(9tLVF|{#ug%8Zbnbzh4Y}ae2BW_PR%91BeGB9-S0la~Y&b ztN*&kQb&a6kVKfv!Sh_odo8|P+L&w4fN{bWi1yc^CgcX$cm6iOz!LlmlXPzF3auo% zwuY~*0sPue2Kv$`$!uQniIdsn;_O=e%aHU?{hkEsH17Ba$u26K^WCi^mzQ0w9x=9i zruR?DNRxnS@r`^Vy)f*T!Uyn^xyDN9)YF~Cf{wFaO12Gd$VigtUPlmVrnO^;cDcG$ z#M^t!S|Kbnwz86^Y%*S%9fNz)??7_5$x7bEN^gbh6fuKzT*(}s3hXIXrEK5By_7`B z`*kbchUSj}6@jq!Hpn%@RV-FM$Yi?O+H?=%w8vf-d`+Xtxr?OlBy%tEBMA5+kk}4-n9-U1mv7tf}gWmQ%T5j%cz4 zb6yRYs=)O*G5*J3hUMk?i6u}w7%?w2q%p${8gq}9yVq{0VB;Jhqp}-{ ziCsXf2Id`rbMO1kmz#31+l}NilHnXdDA+}zN|+FIR3Orza=cXcgJjksClzU~z#h!` zGZD6XWASt1^gjsGDO?t08o1B%LS?51T27f<#6aG_W)cV1Ne&3+uks7@WiP}`+TBrD zwc33%*2V`JI`Nrc8ZA<*YXMuM=y)IBDCh;!VV@#NhUdp8k8GN+NKL*i|4U4mS>%J) z+in%%hG|&+QP}OQPG&eu$QCdfKw8C)m_p~Ofea%H5y13nszc7B;Cv=1JrsDW^lOvH z35VEqcgw%ynOOV&E0rZS>TS+U7psITu8ev?W`;GjqC64U@)b|Yj!!S$EJ>%?8`xiH z-xB}De@UFNp~UGY?A8Ell%i$A5{KGw!JNSYYiIP_S6tCozg?uXUloF7%eYo`<$<1@ zAoUC3*+e5R{)WO`GY-3w66S0x0-`b!==ny&Krih_HAfrb1%5`@Gkj zw$em0?`v>=;CzV&kBFweD2gEhI`|Fhe`Ek)_hwi1bA;Ss8<+u_cthZEZwObtFQ*;P au3FLPeUWN({u=OOib!AEL<<9Rj` z%+B$OFhi3b24SU|5s4!d$vE4jlE<*qp56V}?uR}1-21y9?!6y=_x>)`7wxX0wpR@R z01c!E=&!&eg_o*+tB4mr7n&;I+ej~W5ZL%)<#)IY08nW{g06w&l7-S^UY*$8zmy4u z+8oO(7qhb}vl(Yxxe$D&N2pi!#dRgQ(WCW@;L#O7*ZcaGQ!kAj9qd&hl@VdJA)_*_CI_!dx#10hW7oCo3&i;Btz5g$ zsdp#l1^A_T7NX73NN)X3UHA6W<-*-$>M8a46u+rxtdiA}#LS}CLgOz4f1Mdc!ASZ} zmWQD*$88UZM1tGd!8$uT(=SgIU2wMI1@=kseWExUv)-tujPk$$%fi=_ldgCIK@REC zo{|Y#bfHD1rO+_&1CM8V=SkdWC=DLbK+QerMr*9gF_wSo>==9>&8~&yaPEHIuecJ&=15>oLL^5T0Hg$C1+tP42lnsi} z+37|%2vC;{q*wS}O=vMQFfeH4@2K$gNF|Y?6BGNV-$*tY$v%Dz0@nux=&^|jiY6^K zu6_SK#A1?58x~JN*xDLXC={*iuJq9dlQ*|&Xqk1DW*6%6EXe0)MonpIKOd%V5w1e zMv%7eB$n}OJSOyPYBc9LH}sk{Ep~Xu(7C2jN~@ZXx9;b@CI0T|(4r=Ze~I5O2)od| z1KE{Cc8%B=*iLXg54)=6#Bz-6W)Tye?$#N!osHY;*TcJq%O#@4HjG_2U3`~*$ zFU^VF6^`hUg-U5%D69o{Tt`K&Oc)xTtE?Jc$NRi@sYO%oDicpn!-8)de#76xjMIDb zpf={N^W0Ag*~!Rb5`4bBlasl=J{3Hk7RVt~bGaxS+c~Q&GvAhs d`e*$a8^C>+0zG?BuUhfX0ptlZSbsbs^AE5Zq`UwC literal 3882 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 diff --git a/docs/manual/images/dialog_t_1.png b/docs/manual/images/dialog_t_1.png index de40f3cf96ee61a594cf2a8b2fcb712af852e5ac..f5406e2949ca332d938f8db53304b80c04800782 100644 GIT binary patch literal 4060 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

!c4Y2+v-h@G|*`u@A=;dsf#P+g=` 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 literal 4704 zcmd^@RajJA+kgRSq)VD19YS7F7@8rZb0`IAh6Ygy=^E)6q(nq&Xc$1cI~0*_5CM^a zp}YC_dwr+>$#?u6%yQ-%T80^pNFObC3t z{VjI_F1T-Ds){)1pRAiWI5f=a$_j?>aCgj!kaW)&gM9uxRHstTqv6T7!zXdpkKm$v zNcs%y0LIgx)(9&IdqMro5UPj5q1IEt&m|Vn3xVNjP(_F7sr^*2x!c3uW#2%4oo??A z|JZFuH!oyBDlL72Z?w<++hzipVrbQA@MRFt!pJQyBWnDoc#0aJunj6Im>*gbrP$Pl z)AbcTg!%I=*`ip(bO!X~N%C&Xo}9qT#;P(2yGAz5XSu*nG4z6e1&Cqichn!BI?=%4 z@EgnD-Kkja^*Was&zf`*OC7g`dM{i&@VH`*-M0^(CtF6?={ns5uz9!zX#yeyDM};C z`DS2uA->&2Myvxd6N5qC1~&zzpD*KEsEhIQqT$_1geTqH6{|Kq?U*f zd?`AB69nwRR^Po+QQYe-d+nOTnUJD1 zVYBhuo2x(^o6@>J(muPBhrq8cZ4APudIJe;fz4fv(%#!SKeME12hCc%-I%339S0x! z-duY5UF|fGbKf_o#<3s8A=1ImhA6(Mlx8R%`IhiAhL>MVnuS-B}^UX<$o+1aTLxSxmz$ zv(eh&`cSDtIHB{%7g^Ig%vk=`YF}(jLxccd^5ywj;=S$9l5bU3iu_KtaNl6<_kOj- zMCVITjdRU%JhnjynAR3EKe3N1D6|N=fP0O|o;^HWqNCLt{w!&bDr{yf<}|MSn7WSr z6{GRaLW4=*<*|N?&z^Ck!)mEYJaY*NE#JATd83EI#@=#A2RhS86|th z?s~cF1uWZJJJg1= z^mCxN-IEr@dLT`nY-%bs4Oq7itF*UJmaKmo;r$2D?4V1qcD9^(G9NcLx1vE$tgqdK z9U4}k5rUWIvNcs!1m6d(JVC#xQMsx}EnaL&rZK(y+vuI;8A^d% zEkRPSNhvP}p0Ua9cix+9^Y_vIX+QjFj*!MTlAJ|_h?4zy9eD57YNMezWG-3B{JMq0 zX7!^-Bl5bVN;r1BtwNCHfG6>+lCZ>>wCmYw+v9$gSEEgDH-xB-iuFRLD=qh01_-Vi z5M$zLDI%8bA>vks{X)n%u#@FRe>@9zjCjHZNG;4}Q8vYczELLDkE5aYh&(&ab$3z) zjPjnvGB`FVysP|TEZRTIipv|AN#g+2y;wLD$&eu9UXYqc&Z|i&U&0TzClfOWBlOaX|O%+Pb zFuQ_h1q%G#8R~At4Fuy7jK@+srx%v!`9K89oHF7~1b?mW$ za+yM;Y|bCCyEh=md$N+zMzpX(ml6NQB}ENNADw1nZM6)v?B0qu8CZ5va??}{^#6Bu zXuq%R2q@&ucnA8EszQ>t#Q81Nn6bAr(_Ah+Vj7un2rmAZIBg$*Pi_~)CE%sNb2 zWqV$ExscSGKg8BU2-G(;a~~Z zuQqFNpZ~56SwiWSAi**edXi;GQHpD*oNG%T?sMaAx`eft=ReeeWEH2Tg3aUqfNiW9 zJ07g|%_r8{o%e#<0)$8dkA@+)Hcj=R0Ky2L-f#lajIAU zOD%Fp+i|!p@daX;icG?S3Y!{9$wA@E7lr}mlW$9x7g{59K*Y1p(NjRg5rEv!l51Z{ zvg5#=x#R2!N?jTWr43kttRfBM8s%KySGh-nKT|GHUcE#l0W(wS=Ub&!o|f36j4U-J z(Nyw1`~$kHi8%Z_>>`_{%R)S8Niv5cC~b5-$5@C(o442(@r~T4qRJk};n9E10MNST zou(5ZFb{Gl4ZQ;}pj2!_ihT&MqW{So5Ue6M^DdQRKb3jk-?|DgPEV7Wc-`Qj^MEgAZg1ocvT0!MClq>7gChhq1Q} zlg3QechbrLVx0g1NlOSI#gh!{Y!AF54!824$rgP;-Q>dt!~tv0Nl&Z-NKstWVoL(> z{!bnuN%6TkQTJ7pcgK4yUMGf$TYXSz40kc})Bm4ZXdDhl8WZ^g# zhXDTL(3TzUhVHEzWyTeG(X{;i|BhM3GSKbJOstR)7Z+FjX|^BhDO!>louJ;f)5sF?bD$wkn9dM{VIN1DVUBh{@m^$^L ze%QZip&Al&bE$vyci3s}D|{^GKz6`z;VWFzwDsL%z^yOlN#~Y>?{+47o;?-Xo+bU~ z^YC!GWsv&G*3<;r=shVtrfK6#{@ab8@MP|5?&A|ANXfB3j;UQd&k|rOvs}12xI+xL z#HKH1E6e8>2@>v8Ni`n!N8`V1Mivd~~Qoij_^2Fh1G2nq< zKE=)_Si(bD|I>5Vwu`@+F*iKe*Ml3hx-z-bsubREEh5)AM6VIJDerCzZPQ=zYjFh@BHJ5M%ohvlZ@2n?K zesd3dUm`qo4lsW*1ovL~LdeL$+CW(ZIZG+MpmDLw4B9E~>TIua7D74tqzTw~VV@-5 z7AgkSj$DSCOOq^Gw+s9_V?zq>CLIEHQUq883;_Sh6_Q_<-S1?|q~t}7J!p?eN9iF9 zMZ7+gF7hXXw-JkOA@?CParPlQ0z4 zhq*cPml;c2sJcNZ@pn zPIY+;$k8b&Zq)=s83I9eFM6NSX{CMJIYsDuD8U(PwIF+49YqkRb45-6z_a3fUH@UM zIr+}VtCVw_yW5+XZir+^%@kcQa`VjFCW@qRBnhYQg{1_Pgb_* zSWi`)YwjrDA|0bEa%A0OY4O~it^+9*vYw$<-BBs!yld z<@jUtRqJKm?1`v&7Y_vsrZbmPtr|%~Nac&0bB~Aue>QgA{%m(ChB138RnWxd8~X>M zKZ*$VBrau89FDSF;HBqB{=Z!8Vw0~rZVIWK1~O^jWL|Ss*5RwXl6|*!ty3_5-7khR z%)&HSRQ?NojQt*FHsO^F+c4BA333auJ9JPTvYx+e`xMd1PJeglS;*KAz2A0l&p zpcvzyHBJ_fltM88Oq<*qNpXxvit;u;u44wFv?^}3qNj<$26-$7Wz_#&Gxcf9p3_7j z^(!&$iZl%unMf#V2L$3?Pu7(K-(eTtE~S5>@1C~ZM)ZLgZoz-DN3Y~lTogLV@fB4x zAOavbDc&tW+nX_@i!LW8>R1_~#(NF$_%a_f^92f!JK7zoaSjmsSXBuv8`>F+Q*qnX V>7mOY4g6(8;?B8JTekZ zTb){?)B^Q~Vu?^nTA`34kg?hthY((g$5MaopY0zz@8@}+ndh1LKJz~F%=2D5=jW}v z(P*QFhK8=sX^-=2-=MY{Z7ucv&iKVewbP37_4d$M`+DlSnr^BC7koTU1*Y7Q^1%rG zaAT%oE#eU`1{8w4n-c{+`8ZIrF03#nf+Ls;`(k>?Q+U-$Yr9!}%vQSB`4~9DTvK1u z9MY4INJ5)~2rpT(LDuLon!Re}WIGb(l!%!Jl#j7-=<hK#@ zvv7vT2e5dQ>5ui6pUEiFF7vB~-%G=Y?b0&Zv>%aN6zv({(PR45nbDeATX&xZfA73V zre=kifS!Ml(y|Uh7i(&O}NtLuf@qt5}h)vzIa3XC`>o zTbd_2ZPp|%DszNY&wY-vx(&rdT1O>-iE;L6w+GXHC@kqr<{$>17 zvPSRXD#|N6@!9^lly1!(4WSw58cew+k0k9RE+H^q5&cRMYm}PpVz+cI36dL5cgkw) zCCpAWpyITn^oPkW_V*nDUD@(|q^LHA8Z+mWAN?;8u&~5L_VJA67-p&20=VKm?ph01 z{B*B}eH$fCIM(D}+su=WWv$(u9=B$>`mi zw1{v6>!@bS5~xe^r*ac;>M(0{JSXGJ=f0reVDQkP2ztn~g&Cn#A!2f77S>i}@`+x| z6l)iNogp%-bBYbEQsyPqC=_b6uW%=Jxm!JU{rv@a)%+_q>$z9a4tfGo{Zft;gI!*I z`-ksQ!%fKO=)P|`3;fE`2=PQ_w@AOnIYnMqY;m z-ltCwP)MYMYnxm_!9Y6kDzcOha0OJ{O(1=3b>*ul4mV1Q>>86x)I}}2(iR3YmKT48 z4-ri|1nS1^z8#RZ1?oc}5L{%HY|!QTC*!$sa))9=-%m--oav<1;{r-tZS~e#o$;QN zTDETg9}Ln7gU+rllt0n6XguQO%$6qb!GUHj+FxJB0|W*xvU58h|RS^;Rm zG<-azcc5)X*6Dqns;IYo;3~VPYLsBa5kH?vT#G(dXbadEY!**Di#Dq~MbX%vc13O# zFpk5CMvhfXf`#>t!4=XVyo^1TiMw;BQMo@1{(;0yeE4_H{ZxF&YZd zhjfY5J@?-Cez~9D5ATO_&hM;q)>?b7XYc(yd&lbOsFB}gxC;V-$kksc8vsufaOIKS z0`82nEK9(Hz{fyM5mY(IvMA}v zC~#t87l-6-(p2JUds}XJW9r~}=e_?oJXl2nmzuRyXT`P-mG?c=m^Wo0O<48Q2~j+3zzlcbjiCz5cshm2aor7wJp%+<#XqPL75Rh+~0;CEsU$Mr;#yI^{^_(w-q` zuE7Pl6#%^1FLxs%Dtm{VfJmagTQB7>Ia)(o?=qp38*>f*c{Z$-@7}$WuhU0}@~)Ij zW(-_PSzvs(C$!CKT{wwu-HWlsVH|a77QX0$A)&ZJbsW~$l}66Gofsl}0Qz}nrp}E& z)4~sl{wU_ClOKC|I^#jOFkWVq3b^-%oXv5IISz`Sva7;9cfPyN@%`v#kZ{Q|nXI%R z(JrR(oGsR7Jl`ltgj2i*TgJ>Z_*dD|{$W0ofo%@jGR)t)gmO-a#+-DcUZoXzqx|OLS7>Z7JX1;`;uhJEfL=X6n;nB7a zaa4Xg(?w+_Rh5=+cO*`Fz+qW6zrbD%{(FA$GC{{B*yV)hX_m5%P)|ey%20FW1 zLwS^`u>^LWkc0)PThc>ZHgQF3p~oqGdgu8J>#zaiDodHEmavvI9(_gQuV$Qd7O-TX zDJsKgA=8?|(!d;DzQG}xv)7|j{!7#g+&Vct7>9wBYzfzFj>ctaNde17{PBWnB8#Be zQ}65Z^`BWHwuSlys`)Cs8|#nZU^&ZM_nCOE{+^`XeaM$pv)6p#KBAcEwcK6*xg;8Bsa_^#gRVig9rqz#SwBF9={U% zIO)hnDR(DTS2j6{jIJ;4AwQh5FO8QS8%TaaiXH$NujEPx;>PajION>ycTfzLiaXsYviE3MiGtVSEw9YkCa6ix>||b9;FwHARZt*g#CWwe{B*S!RY_7+uoKKijPft zfi8;pa2utbEY)SB_`_wqY|y#SU+W}iQ?Ub~59I}WoU%Rl`<>O)9#>zOlk3RuAS*D> zMi4i^riDG^l1B#~S(m90K0v8t!B(}yZI0GDUd9955-+^jhXQr24SXo2y`u-EwZ^4G z04EfMp&)f0UZA~@-ve-hfQ!vIl1}zi(X1;U{pZmEWUz-B@?JYpDMn}u&o+{^o86OV zebvEE9!OB=EUhLH=F#1KxvnXJeJvp}G7B!{61?z)(7H_)9OU>poW)5M zO)>_`)`LEY++-we8!hp3x$avr6b%~P?pidc!Q}ve&ZHC59O+4CVWZmb1SxEY{2=YB!Fx?-mQeA; zQGniX;a>S7Rng}X_eiOU{6ae=Uqdx$dJAR0;0=7dY|-R=%}T%Ln;IDD-i8-HKs|Ig z^nYOU^Lc6_=C8^nlJu@NkL1zYlW`M6OIg*zKS7W3gO5kl45x(;TL8qsobp;hlb(S~ zvE1;YdE`v6cGMLlN3TfZVOvak8wzx@-GS0I;Jc=y@PS@BB00pHseWV5+43U<0U!la zj+Zq7^i`CJ%z;?u9Gg9v0Q&JUx9R{6uX}+@6avtvqaud_+zm}G1X}@4LTn6pHhJ_E zo4Q;x;AEvNUab;tgHcHd4F;fSj&XVu59)G==eYU<44Gi6kyctD2Ce$v15SDLe@0?f zcilMzBcu;6Ji=FhjCpEz;}7 zhpe%!QFN9(-)Frw4W!wx)j%!G2RKck-d`ObZs$Z*gclVFb>2JM#f=to@da~DlZ26lvIF5)b;@x^vI1RqLTR4vvYxkAs z{!3iho8kZQXg*inZ91F(HnlIe|KCCi^(po}Fe&Pn;`j>Q<4MAt;AA@})Kc@?g5cnen)58D|2Tq3Y^I9_VlV+iFpsZ1+1{L;PJ zd)$jF(zFK@60Y1tNMFMq`_%NCQ}XfdoH-yu-HIx-L^aL!saN9&zUSq&j*_$z-%$u2 zFE`Qs6nxmrx?3?#Twj+*a_i*b*b}GvE^E4ahv&XqY4;w9Dl&iD87xh>XDd3;kUDRX+TWX>xw5!xK5-+lQZ^}=oi>s{y7LW zO~rZTz5#(Zyu+C@nicfWpLy(0H%2;Ux&H*;T%DnJgA?7vGzEmc2mAo7&hTn`vMMu$ zQ#1Si^Xw!*_jRV9EJjlFg%c3jP1V@H3$-ZQA2ZbLUC#}Bf^i(m;L^^{I+G3g`(kIh z7GWiDUsZnk131(v0R{1JpQpKzw*zQ0-Kg9c88xXBRPVi-)1kNbeIc~rwaNHQGz~0pJa;fw5)%6 zYX`^$gXZACNs}a^nSSb@a1Ke3oY&HOIE&2m$xOYEBM~sLoZXr3vnp4pYoApgID;YX zIl)&alke832ox`N8}^8|DTk!inP}E8BZS_=2K<1oX`51(*lw?oUnC^RDoci42Y;6y z(|OkM-TA zT}ydwj_QB?MdY?)7t;q><*y@^77c~Lo2vQh(IQk?-K{AhYEC)^WnGmzW_9zA#m5$7 z+oKm*0v03mG9#S9Fixh=Qb>I=i@??N8rz=xG!N_gdsDel+vQd*&C8*ul916BepK}$)Ak8(o}aFDT{iIFoBw!7MD3X7iK}xnAI6 zZSRqmy)0!Ll0Jenl7B|fizot9(c!P>3sQ3~NzXPWu%u7KV%%YbT76wsn~A|NJ1b;^ z%!uLrTb331y{!Tmx5eg~&gKXldyLaezfR+wyDl%U#A+}<_tVVIi;wmX-;3+JEfHNr~iV@ne-BR+xdp>yBrdmyu(N;%9rFm6i;x9OKB zJ2R87zql8VFLlMI{=Q^8CdL18UTAJQD7ww7L8cgTzMAQ7EXaCh#`m%$?>JIy9b0b{ zv^!8cYH_PW1A^+N!yj)?>M~1tch36Q#O^h;c&3LpJ1$mFe)*M#eCcP_P@LuV|{Ze2B;hqbAm5aS) z(BQWtNf6qKq&6d3l@V zp0w~t?4USTfCzJ|=Ne75F=k3JLg&d^9;J=H;J4Ll}x^dKjfrd5?oKO8#VP+#Z0#p(XW|9LXP#MLa1>s(dji@DGyjeW*GJV5cqC w|2xfiz$lR<0f?yyJq&9cg5e*Ah#L^UE|&A5vq>j#0s~T4(NV5ceDm(V0E?B#Jpcdz diff --git a/docs/manual/images/draggable_t_0.png b/docs/manual/images/draggable_t_0.png new file mode 100644 index 0000000000000000000000000000000000000000..12ca048ec61c623b2c22433414874be41355258a GIT binary patch literal 1657 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 QZx@M zXCEo+jLSP*I4_)Z8cY+8uP)Z9_pN7;lwGF=V>rvEjS@~gH|;R<)pCcM2Ly$z*D}z; zY&>3%jm&Wp2O-gx5>;E9Epuuf<`(EN^a_oVWTEcsUolHIS#)4P<;dCsGS&89;GC!p z(Sv@kW{)h)SI%qV;?gw^$V9mC+TR;H4>f*q zGF{z%9qH8|VZ<)Xmu{{$nzq(mL*GiFmvw@5WhQOGKdbxO z_vFiF5dN!P%H=sDNThOf^hINaG5PdqQIxq`o)6x)h%UicqbM^IMbv3^)6cDsvUf%Z zqik<$0{d;VYW85q!*Awuqmd#amg z~{WHPyxA3v|kL)Pm-mnZt4LZMLNGuxLV1QBm&QPo5OfpE@ybw4=ego00f!m#vP zmzgl0WgpwgI$A08ZqZL{DDLU;(MhOf5v%D{bK)Wbm(LIN<6nGSf!xqDte{Q3>#IwO zR=>khJ`Z7sr{6SY5Xz-xgM%a{lUYzNDa4*ThCw2%F?0g2*I=8qpvMpNO< zDiy025I6bM-d#z%E8|nqQAS_>1+w2pSA%)p7}ovHG7Ln$wV5)*mB`=jhz!xE!@#^< zkfbK78N1|r-Ivmyv}3-K@-Q9oam#LBQJ47buc=iv13u>R?R@*#LBqklH@QWH1yUFQ z4?FVmY}EW<58fL%{R@@oB6wrR58kV@?-T5S(aq8;w_-p&%E7WUz?-Dx-O~?!(T*!c z@Oh`w+2XwJT*H%ox#MWnE>|DXw*3wZI_X<5P10jw*&#TCv{_phr6pTY3ak#I#+FQv z6CcC(-F`-`b-5n1K6Bfyu^`1wD80nfK;g+Nw5=G6+JyD3vABiQZLaDZ!ZJHmHZ+-> zLzCr9p9=vo#~Hes7@@gB1R95<1ajFMY5tzNElB;aBu9VyBHE(JF~!vS`>%@nW0 z-4-K#drIap7CVRQuKMc|{5rHt-Fg8y_Hjn~5_6AWLbvG%EVVN?AX5;&=8^0Uz%Gn) zwcbm;FSge6th;0f`wyKFT|8LQ_1^o)lGj&xpZS)Ew{6)d)Dz~8uynRb?TIuOcvLLp lV|6&Ffv7t2ml0JP(~l2#_@ulF)hsEH`yLNxmecWs-vDCzCXxUE literal 4882 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 MHGOEUif!co0JZ!YTmS$7 diff --git a/docs/manual/images/event_source_idle_t_0.png b/docs/manual/images/event_source_idle_t_0.png index 209952869e001792d7ea52f0014c06c8c383319e..e5c11c83d0818587c92673a0bff2c5c0df69486b 100644 GIT binary patch literal 1798 zcmb7FX*3&H6i!M>>4Ir%+Nmw*Mwv!+OR24v8mgT^NzzQ0q?9C8l88hU2{pE96tzZm z(PK#Lv>`dv(pFm9APp*mj-Y~R2o++|Ge7#v%;|aOy?f5R@B7|)?|%2bBp+|LOk!R>yK1=Vsr2<@vs${h6!r564%H)0$Hmdjr)gH*EK~8e*cpRo&$F zOlX13SN-p`8oK7-2quBjUsII>SGIl+@eMEmX5sx zZ59Y#E!7Sx&bCJO-*-#zLH$Hm)7<0@?z!FlyP&9Vyk};n3wh$ZC51$B0$t!QK#lLdk+9w+lYq~5uEj<{# z)mI^j6(FQTyyKMON$9{EW^`wBaR(klq#tHuY0s)`bdZsh*nNV-tzprzFRN0Dl75tV z0S$j|O`7!rqFF~Pr#3#|pTkwKg9fTP@bk?2vICHC2q&R~uirfm=px4jJizphE-lH{ zS3I{ftqzH#SyzO`M?}Uv2O?_N-BKTePHzWV4*TBA#^$u6y4(bCkRTnkXYI?b@eWLh z%w5n!U0Hf)^(-VjTwoug3@tgs^vjO>4a9UV5d=rf^7%u&7#xyIsU&bPZfU#DW{>tx zM1-QzuBud+?=Z?q^UgvMMp`$(V6bWqai)JovCwONuQ6cyGk9+LJ@kv)!k_g{P;y4v z#XLF5@Bt1d`{X_%$fp8S+Y6(Y=3ZoFXR9FVTJ&?IQVdx>m4iQS01Y2YDS#4Rzdhue zP1gb;uM9PkE+cu=TJMs}X!Luma7-d87tbVHI0w+IA;G!*pJfv1hZh-W`Kq8bHFXm# zFi_7wp$dd_p)N08)YjJSlM+_3Q0j66qA~JK;RzDBY@@FZ_f})n{L8w!x~Zl4kI*_I z2LXe_Yi7i}+7G&yr0MIVK1qUABo zG()>B!t; zcZXfGbG(!^H3FD&JE%6W?^>-=Ng3}pu`vxjI2x<{%_{hxLRmvQDimR*>tKC-y|gV^ zU#?idowC~-ghI9P`B6=U4SFfzQ|}IPt`E1cq#ju)(QE>pzMc~`e+@$iDw^H-d_J1^ zilR~nw;gc$w4eto=1K=U?AAW)ziQb??!qve)Z2*@?hyg$j_2KYju(%%3gl8P1$t~W zv*7|Nek6p6$}x+;r({QeXI~T?X9evzpbJ;Xs3k!$0a>Jh%{ZfI+q@6kdVBpDX7sLs zTCs2aOzxc~D#e|8cnZr?M_ns3!=xp?nRO*km?Rj2RJ$~~B##*njQK_NmfiLVvbzOct z`j>%l9!d^C8j8c57ld<)EBYdUglecAZ4!u_At*-kgGWCagS`sYEM z79@Ie1|RIy6nlb&5XrRhgQdHhtTOCrNz%T=BO>58_uzlCJ+ntd zZn{u_2mHLx+Ktmfob1_WW5XfI#)f>=r%cQJI-l6RxU~G*)|gs7C%JLp)yD?#IOXlaa{4vyALp89PXGV_ literal 5127 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�TQEx)&Jt? zhq%*MftEi9t)&hV=%TQ+wqc0+)8uu4n4aoyeF4kL=GeM+wO2FwUY@M0Z@k67ZS-yM zJKczpK|W6q_2c#|u?)WCedRdUXKuW;_R95Jjg{5{(^o2E-yD1-fyfaYx-Z z34w9mSM&LD2%`k26CworWj|d~zglDc^D%qCmh@_RX4+ z;!LHve_DuWYxnDVU-4$0ZvbegLb2LY|;$Xj*jL?ElG!Q1*39f?e)QQ&CQ3N zlR!0mgiMPhX7|}?h5`!Sa114DRQbGtAzm982gTEFr#`mnD+#6G~vFI6iruVLK={Z9UB}xGSiBcgk%{g2ku4>2W1D>jlA2kTjEg# zM$2uC7%Lqz<3|LAjP14=BIk4sYXh<0IgFxYJ*$zJ&p=HEsQY0o1baR@tRKgrVb%y< zdnTQtz{hlVhpFy8g$N)@EC&WB+bE!BpFcz{cqE?KT&>SMUlh}nRod*TorJU^fcSMh z=w75=-X^CyoLnp}{gpEH@92pv24Gn=1rCGQ>Q%G=Q08F{|Q%MqVn zdvpGoOhdwV*|Ba?^J5>a3r93&ZPf-mS14X=_@S>0)uN)*pB$y#JQU==tSUFHwSJss zxuNuo`8_Dv|J4^oDM%Ja-`mW$@xdqZh0460LrNDM1ZLlpb&V;5PdGfwD*Tzd;LHEW zmIZM)fpTDhaUA-0?!;Uy$S=7j_-1e}Kc(zf_)JZ-mJ8#FtU<*!Wl!GFvS9ym=L8YX zk{*2}^0%bBmc%=y1Ty@}?L?GI5fIS0X>nE*dt~3D3k8vy0z{gL4cI*g2-Z18%B}x@ b=bC!CYdTfh#t8@f*#oI7>p-d$Uxxn=42ioa diff --git a/docs/manual/images/event_source_t_0.png b/docs/manual/images/event_source_t_0.png index 817831e261dcbb7c3302e02882c60dcba76af5dd..ab8e81e9353c77fd1713ef31397140c6e31a271e 100644 GIT binary patch literal 1679 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 HKJxznvuBwI diff --git a/docs/manual/images/event_source_timer_t_0.png b/docs/manual/images/event_source_timer_t_0.png index 5ac7cf1c95e387da0fdd7c574d597cb6a7fdaab4..592e47475d8e5f29986d083702c49fff2b0a1d6d 100644 GIT binary patch literal 1833 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 G6aECw)ON)H literal 4955 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 diff --git a/docs/manual/images/font_loader_stb_t_0.png b/docs/manual/images/font_loader_stb_t_0.png index f96dd67d317ecc937d11af453a76b3179a847554..3db7b93399ca8091d6eb8ca7d47047d0db2cefd6 100644 GIT binary patch literal 1874 zcmcJQc~sI_6vwgAG__oETvD;frc#(O$|cuQTg;->;|gX8u8eJ@Nd7Rh%rtEg$_zD) zEXx)6F^OWSr9~rYh9;?lX0AYHV1m>z)6ASX^G~Ng=DhRXJ@=h=?|J8Y@A=%!U8pS! zb(iQuAdrQATYdMaEl<5^I`h@%5_tA2wV8jwe~T~V^B=3Yq3kjQqOI-cyK!IAb#b3Z zoC(_e@e~OPWp`|@?(x>cT53JoQ==D+I51c{hG$Os+@}0iX1>BQ92RZVvKh`~unaX% zrxqJK3|=A>4n{;G-G1txtfxKsM7{uHw6337zqb2X{<2Jrq2@`AwxiQUpgp86tr`Mr zns-)5Z>fSUSpvmw5dWFk>OHU;SZ+Zd$QyNlC8@h^^88&KK1mToU-;<4cFJ*gSSu z=8qdYdrifRMdO!tR3sFthQ;<{sNhH-?CJ<{y#;kt<4M7Tq=K8|#b<2q;xBqm6lX8T zb7~Rz1-ImuwB~n8BGZG9J(g@i{XW~a5_%mrwCnK&uo0=+?3GA>PP~0X(;6!WwkD3< z7$Bt6eQK$=>5wi?i@R%szJCa^tH!iaIUb6$it%UNRIL_w_BuV3ajr8GsfPyN_t!-> zh_>|x&f!sWH@CZoV1nxTyB)HKZ8{E6k`Q z33s@yz&T;^McK~dv+uE?p`i>f@+T(R7^aiub7Fw4z88vxZ1MC6U#^f%fd1Z^5ra+Eg909K$^k6W$20M2DhrxYCX`L3cMEna>Qf@J@eZ zq;AFgM@J@GG8f};PF9P=${8tm|Ng5ZSREr%?Ky>vSLm4%TiP)y1rN67ygIFCmUMa4 zuxT)LgkL0VZ_hzDBop}Zj_62BOG~->M^rl>lZeBqQYFY_MydcZUp_pHE!h48SX0xn z2YVI)wzNTqrJb3N{ShJ9eAEdYpn9fhx7GZO~5 zj$syqA46La9P($bwacLg{SBlmA7^j)WW*!$dlZT~bR*Cp8aLb&6e1TjYb#YsHo87( z4Wq9$*T%A3Cq~Dg2eR2S^5`AsCHydppUeCrU^J~(VkE|jGfkq;QQ zxD(&oI;`b>3>mG`bjC^GZfDreSTvzXo07i5HG-)1SZJ#%c();v zh3Jg3&O3Y)9|+PB_FX{fQFFknikUp5!oDn>Oe{S3>J9PvC=zaO?iYq;n^|Na&oEV# zF=qwQdOGM4kd;HnQyLdGV*+gEoKUxrW@)PQ>aJCBF-}z=YL^VfE^@5X_pkGQxkf|? zPvK=R7wgiPUUYPb(2mka7EA}uDed^D%SY(7ZvH_*{lfG2oWuN-=Nj>uJEJ=ntdpik z(W;3PaoBquc;e75AzfAhHK5e#?;YRUf7~=+n0VniJ7V!2vIILw*C=`X=JS)M3 q%$QAj2vZ>}_XEyE+`qcDgPeI07h;p}g03Et5Wh_*-%9WOX}<$tP=u`j literal 5239 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 diff --git a/docs/manual/images/gif_image_t_0.png b/docs/manual/images/gif_image_t_0.png index 1777db38f5d871575f61592aadb408ecb59bb62f..b84ce669fb1aae495d1541153df91fca437814c5 100644 GIT binary patch literal 1744 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 diff --git a/docs/manual/images/grid_item_t_0.png b/docs/manual/images/grid_item_t_0.png index 3a5ca0cec876c55a433e0c8c5fa6905a5b9279b8..879ad6d8004c1be8b60d40cd7d8b293f7f4c3a41 100644 GIT binary patch literal 1636 zcmb_dX)qfI6t-hXX(`>5QN)Q&%f>w2pPR z*d7rY#GRokNHkR&aV07!C5a6ZM8l@L`(yv??C#9Yn|I86GjHDezIpRf&bq=i)OV>X zDJf|nPCJ}ac%niJx2P)YL%fBu!l_<%hC3*2ewC8e$}B}f58+^U9$O&f(n7yY*i9F& z;N|&_y6t-sHB-}0wYx`J%v$n^S}RumW}5(d*=FLhW&Os_W%e0XZ|!Wn0i`8pwa%-1 z<$EoFhq4)xn+VZkHxV=kYIN4LXRXmKD@X)={yZhq6tT@*^bY39Qj$2@KGNQPrBivB z1_i{fEtW&#R^QJ&`gQ7ksXb}Xnp&3pv8&{X7$}Fl zeH~Bkk1i<%_%pCtstXGNR>pGX4FiKFYBXBE7N1eGRL>CI%oTs2UM1@Ey0ccWljlNg zxd01%(lhHyBc^CtbX4BZW%;_$BE97}YG!(}T>{}XoEZyYL?z7_u$_jjmL;e4_CpqP zC5HILjaR!$8$1o&4DM+~B<~f~PM;`mNZ9PYM;722rVAK z`!`D__kptmbep5pR!`DB>YE%6S`PjbKz|^}8_(3H*MyxT8W^!4?n(+pj3tn@nD zL+uF%>q8oJxEF|$PP_s5`ukH+ln{El!ONHvCZTmcMFF#j{5207uPblSrgt zZgX@P22($`kDw@EaO+YBcCN~!Y!fultQg|Gx3|5#Ow&)1R-nm5ED`;*w$@`lG*XOMn=wXT&O zVrGZEtzP8rQNmVT!Sd$;lyt?jcV%Hb42Nsv=Mj>y=i=qEtE^%e71P`r&F#rD6MiUn zmd^G+RS(kH%SYfObC1Kq!$&0ZoY*Qfb+o>=_6jUv<5e&!z_=*;SbA7Y%t(G8iY2iL zAFFn)40LvO-q~k)rjs&HCmKm*lKCPJFOFh0Veey$f~G^sL7ag~H&Ci^Ge(%dB=x0+ z4=*mh#w%c$$|IzWdyY#!wkw0=8zpRhR%(iVlpv|fx8o@>e z2cIC@;u;q)#ZdhI5T^-~BBX*E2)UvOo+}8swqt|9)#VSfgO9xG4;CPyH>Q&Fw4Gs= zxqD0uyORNj_;(&)zx)5f>*EQcS_&o5`eIA}V3^X$T;;!L>VJ460LRY;vpoX_`{ z-H>f`LnpFtJ3S06Pz(qK>DU zw-nU-CGigxMS2Qth@p4p@>$Qmd>k0fFpGt2G)>;esqmX@gEcacw{;Ho#v@0!QIN8Y z2oQ!%Sg2moCvXM^4`eOXxzL1caEKr5k${S%H4ut+6c`7f~HC za`)e`%fLIU79UojY#0dAW|(=0Q7FvPr#^AtmbwqYM+!J_wFUm&Pnv%rW8FwI?W9>| Tgxxj8+fYI{x;j*yx^(w9od-w_ literal 4290 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 M)%Db{Dh`qV2RsxbI{*Lx diff --git a/docs/manual/images/grid_t_0.png b/docs/manual/images/grid_t_0.png index b6a12b485d58986c7c876a0a8da9a5516094cd3f..07cc9f93b7b427ae794ad948cd34cf7efe8dd333 100644 GIT binary patch literal 1501 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 diff --git a/docs/manual/images/group_box_t_0.png b/docs/manual/images/group_box_t_0.png index 6cab70e24d5aae88968c9c770a717a140dd0812b..3ab5b695d2e2ad97791304ae92913f9f654393a4 100644 GIT binary patch literal 1642 zcmb_ddo<2=xNww7@jV50q=J~GB@gZ{Y@*rv#;lpAH6?SXZ15~G?45v$T+YZZN z*JiR~$6jd0ot3G-)TIP%OM#BY+6+H*5rHTa3ZbY-!Omb;VR12s0_#uB(nR$i0e?&h zr^SxSJDPRo8Gx58?10-i%*7+R!}sJ)PyK6IZb_`cAmj-}-57#b&fN)Wdq5|9O{8YD zj>SEZ#yM_O-Iqh|+1BM7t~iH8VbdqKCYyVy2um~v&FFe=6_x@;A|~IjyW(kq5FBiy zx4TV$le>xFFA1*~`E_@~>!Bgqf$?U2rgR&dHB4v}SBKgiwp88v&X&taakAW7BST4`Gz!Dh?K@7J5P6leMl2lT!x-c28 zcEA@!s-=43f`kvfsU*`i%o7h4e1L9yC6|{qgc^Cn<*56cd2j`FKQc2e_p{Tg-PGnb zNxVXoae^UA$l>!H>B@8HmUk4GFPE(uN*-eO^qhZVq3WcCeQL%+O|*YyZf-u? zop0KVUVw1@e^SxILHUeK4G07>SZD=90ew0jx7JAuCLS3Wud=JvPtV}z<~XDzk)W99 zd~-~gSLzPhO(Kz+v7*|fR$`X6UFoH+EE8`wwL<;qlnG{Qt;#7yTp30-niavy`}+H1 zP9FRfMA_Ky>q02EPZ2jN>4J=BMS9KbRxC~S&TT#bBy6rs@9jVCL#Ob2i)^;G zKeqT3+gr!A&=BK3S3H-G5UnMw%-5EuVINLKL_3HTu*P&sIeWH}Ju7Z%jTt%)rd!Gz z_53ZgL(A=+pEdWtl+;P*A0SXDM?(JkD$swLuZk-;5$=`4=kp;%@CV@nw?fs(2mW2Q z`bgVN=Ulo*`20&RF`|PAi;D8tYE3|@Z@XS4%nd#}_iWzwi{<-S-}}Hh#^4-k#en^k z#rcj%mCKo|(}yTk_B>9q?&i7xv??+c zB)cwJ++pMzFw4j3lM7-1Mf{SjTbS0e}18C#*i22KRs|IILUIj*)i+QPlb6?^=H+5kr YwJcFJZmOzQ@;s!#9zO21t`}4P1Rd*8Q2+n{ literal 4339 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 diff --git a/docs/manual/images/guage_pointer_t_0.png b/docs/manual/images/guage_pointer_t_0.png index 9396510d1efcc03f00b72471d9651271c9f1de4b..a0c6049b2aad05f59ea077218f84bd7edac9ddb6 100644 GIT binary patch literal 1750 zcmcJQYf#c@6vo|htu!xKYB#fsnk7@KS(b$6ZOJZ}ws~2@OPZGml}t$#b)&7^QZsiU zLWXtS&1o`ADNym6CQ>4#!GFOEDkUf&83q!fOS@n8WBXy}{hjyBoM+C=GxMG^Z}CYu z%+h>=xrvF1Wyq1BaARf|gR;`hcx$4kxW;65_82V4Wa;zywY8?gShyJyo!)(BI%p$?IHZU?Ht9HSP;NOlvVCLNx^m^NklBm=ad6!G9A*`a{YJJ|J1}s^(hUDuN=swMwp<2bZ=EUe z%_5UN>T%30DO~1p+cr2%268<=N80FirE%-cF9qd0O1?D((yso^ZDN(jiW@_H_YKUT zY=dKU1NAT}FTmD2Y2PBot;VAu`62}Y)0WMUpBlXM{i5Bt<5WY5nCLsy|KU`%!oab3 z&Tqxx#eKAP{b1HFpg5tP>;OLIn)!A4$5U0kIj9(Gz<;_A zMK>rYAH}?tO`9*Gxp>z@ouZ<1Y|}ayyu2?aiCK$6T+ZcD-;yA$rtD_kCZcxwM|r@d zIqQQ{7M-<`$3AGJK9gQUx?OpNCw8o7kRZGk?#-DDk%7=k+4Ju1U=-mnK|z9Ct#w)X ze9Me2-?2gUB0h#1-wkDnHayxR7``3+W$@=2Ej{Q9euayxq2DIR<#Nre1O~y*rOLv- zuYQfzVxh%PIDMmSI3(2<*O1OY8lTbv3QuT_<=WfZ2b7h&AHB@Vdw0jVKJdDgP$asC zXfGJCcW?+Sdt(MfWdURShmmwTJz3gMq2+03geq~nQ8MpF;1854=Vv83k{(O_`*D10 zzRq**$fLuYd5$xST!lPB>b z>6js(G&JJMk;*gUcy?g`>Gk z?_Lp6+1dQId|kLYN%>l)CG^o^80o^95vGzu_U_kfXGV}+<2(Y9sGR0M+!qQMO_gI* zqr%C_`;>!Ot{A3PB?i30^fs7a0RS*sH+cF4))2Rvt86apny5QcGguF=QES!EJk8zp z9ze0h(cW$8|0AMVmXtxKD`q7ujU0Gvqwd8TK0PCmjJw=XAv>5kRz&g1J}-3)dD(T{ zdd*%5zO3m}=6nW=l$V&;rQiytm_^{37yz9&sb73jfbJA!=lZN=Lgo~!p$^7|6oF-bcKbPg$ zjuWsl2I_I`$piKIQu66EG%U=^Lp0~@BHs@z=4ZUJfV7U(T2H1XQ*oa*19luR%TZj$ zT@rh#OG=>ym1!p+aiBlI$IjsG9rFnp#|6MSROF=*?=)(*BPN2@M|5TnF9^%Ri7w}M z>915zIYd>t`Ry*b1(Cxd$}_rKDpAw-7aD(V0HY0VYRmfGoHiCG25=bn(fp3Q3qL|qX@#hl{5<^%Zn+O5IR$+74)5+g`)sL*LW4H_-V`uz2)H>plNVAD(2dO zbV0ZYCw%%IjfACqidb)D?-H_NC$b|33w>L;6MDwKw&BaBw q**=a^W!Q6ws%mNj@?WF)$tmiv?EOw#r*z{-WfBq$52_1@zw#G1*_=ZF literal 4811 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 HWZ3@z>+S~# diff --git a/docs/manual/images/guage_t_0.png b/docs/manual/images/guage_t_0.png index b28551e7d309318d33cdf1c7481bd36e637d0b08..1af7cdd848a0f417323b2d3a983fd32b11f6d015 100644 GIT binary patch literal 1494 zcma(R4K&jU{68n0icr*pU)6pAd&2HH$vkZ$Y8t3eeDCFwp|8~My-pbm9 zcB3gYIx}>sVZD}+gqLr&8j%rh+)!AEKHl&9z266j$N8@}{>m5tfb{`r zRFIA*=#XnHXC8U|@ z;-&2D^`zk74@X`UfL2yk)lE%y!FUuG>o_ub%f%wLwDYtGk~dEZ3rj*wc>I}!j{^S6 z_i1sbV@EZD5c;sggF_=(K9YoEsS*XkQ1f%mYbVSGCrVEwEJ3E(VtrJl*dsV2w7Fxm zEJ`~-mvqOzC6q~*PGbVdX;ks(J`3NpQzd<2oqVIj->kp^Z>J)3{bZ}M>vVZyyMw!? zU$wtOS!dH2MIGr<)(#2<-7y`feTb5w_!GJJML4o}qAU7+N=+g<3p2os}0wZ9%o;L{K|6R;@ z0qQd8KaduxHnNw6$aNz=^vpCr?zYPt`qrv0bTWEXWGs$1)@)-m;dvs-m5*HVT zy*#|u)z$TB+?nv&x;na9l}sj6$B1M0L+Q;Fi;C`Y-JnPzAuO59|JV9@qz!9txSisD zLqh?z$~ihZdiLEr`?koS@$qr&<+3#|u~^4^q?gwY0)b$jBO4nW^gj5_H-S0}8f0U9 zt9#!rVBBnTn1q(+f|y^)Luf=A+URZt}J^u()*&;@^U*n31?GNcW>Yvd%V1Nf{Kzrs>#G~$g+Uv3qx1n-P?-iWmEBhP6xZNtMi=N4R@gS3HxW(_gULbZ=ov#cl3Z^MevvTOXb@|L9cnrK6rG*R9GRW+GVnN6YO!!G@)4CMxms>90^Sc)) zz{R(|u_m6C#^_?Op*;=Hj;@|+orX;LMc^3Os5)Ug)5wCrGx_LA$X8{g3I(s?E8bM{ z^z+mqyQ>oT{RU4(l=JiA5WwSe%9k98mfOmsC`%gSE>(g4<@x0n zzf4a;peEK>-Gj2QUz?cO>GFRL&6{lJ8-?UlE)P7r(R@rdVCz+_g3@PvDU)R_pAvtI fhYbDgp{+pD{V79_MV0QlM-2q{;!u@`!ZZH>^c|SF literal 3838 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 diff --git a/docs/manual/images/hscroll_label_t_0.png b/docs/manual/images/hscroll_label_t_0.png index d4c410a33e823d01a1df561b6c3c4abdb3e0cfb7..44e270359dfeff6d3610df3ea3db96ec531e33ba 100644 GIT binary patch literal 1747 zcmb7F4K&kh7?&=MA|(|02&0Y~CnEaLja{u3(wF69)=k;Qe9UKBZVHuy=4-@=e568! z4P%L})ev{s*oTE8U(-UvnES7DZs*=}JLh)Kd*1hX&-*;j`+Lswd!OgM`{dRvApte2&n=+|=PL5={<_!V8I;gID?)}$TRo@-M^Akw?JN&1#9 zF=E1S)s$7Gwy%V`{c-aF<&#TFiT23}0ke@kCUCcWC>I=OQ{F1BXM&LZ%e#~_!Rp2e zhEu0enc)E*>p3qlBbk)W0rc~nU+zqxv_w#g^;+&aPj+S-pkLpynt8*5lm~1a&};7u z8PP+=776@XeH){Rp+XIKi`{9ogI6A3LHKLMJ1)>-?MoXOY?PJbRdA)Rk^e*Jm#YS%z zI2?YQMBH(6{$=$0!tJaAhlFZ6y<&n>IWf|abDY$p$Z^MW-p);M&LNSUI{awpij1(l zETxX6p1T&rF<9rIYk$?#2FLGWr0CC$_dY6tV-%Xbo|c#IIuQBs5CFhP*6qHfZn`NR z)$Lm&KUmS1sAWF;zD;ZH@&TCJb0LSxydB?yYROnI;%lsJaW!?x>ltiG058u#TBw1- zY6^uNr!!gwrduskbk#+YuJ4MFJYf$9L*bt=a5kzhwXpH{Kk#mPe6D z3FQ?Ppm+;39aR0d&mXt(dT|ngS;GTF}{dQpxmX+0p_9{Q8w_ zSsM0v5|L@50mKqD|FIy}ple}fR9%9kUqN88*u}*;Y)3{7!!w3*fheF8JZKTqY#udG zT{118ooyL(H8V4-zdVQO=&e~jSn&$D8OWPC*%oh7B}iDWk9qij0E&QGTU%2ab#~t^ zV34+{=BwqNy+Jc1J3En`M}>^&&yz&QtcjN@VE=FA{z#$x^Ev#ONBGjr!WWvNJ~_t7 zme7TI9)SZ5L}L}j>+xn{{M)8gWVKH_1BRBK0jTCK0sfa zwGXvi0tIRp<_lMd6=GXU<)}hop3OUmqFkg5;7L9q!Z|2+kHp8 z)6+VPZWnrvrcu5686CW{{mg^H`QP0%fZ93Dd}fSewQ=S(bfCmogRJ_gd3X?8tR*hq z17p>`L+7w7-UQ#$fAlKq*!`X$Qw8%0v7bjCoyAR-w?~t+OEaN&tRd($hdgm5-g79; zwRadf{_Mit^J(l5v}sCiw}Q4tvTXMy!BbfzFoLCs+iRzRX@(#SqiG(Tx`7z%L~SgE~7_9QKL* E6Ba^$jsO4v literal 4789 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 QI~10t8dSAL*(UOT0I8=BEdT%j diff --git a/docs/manual/images/idle_info_t_0.png b/docs/manual/images/idle_info_t_0.png index b03f6fb3af4604d0b7f66ec33605910a16f812cf..e418e572dd0136d14e533ef736d86b9c0a41e5e1 100644 GIT binary patch literal 1610 zcmb_ddo(X518Q-Hzsv&8c zGHBO$)L>Yz$#^AUm>7?Yw~SZ9nEmbR?0>ucvFCg4_xnBfo^!vS`}y4ay(wof4p1eS z5(EN)I-az51>?OdSw;!JaU-?H?|h32^nqM3G7P~fO2oEG3|@Q4GKB96&A9T>Sx1^o21 z`I}Hn{wVi$^mI>Ax}9#imQ~C|6LoiRh2YnwZR~~C_V(cL@B<&x70<=Qcy#2VRE`F| zx$8h<4-|(BIa=gzZ|!%a4f#j5$?g`{onaQXsb8S(u##(DZe#zIJj# z&It|D79(JGT&;DLmWGBat6LIPSRwO_P-Zug8J0>Rwlo#8g&SF(_lz8AD5+Mtk53*~ zaKNRZ3#Aw!>>aR>CiE@%M%SP#cA*c44n|+qj;KUX`i-qt0~D&-%XL<~VjwJ&)V10) zJ9Rh~N37XL9q`ra5ON}K6^Oe$=s2{LQy}OWi0E9c$E3P@6q6{QwHtYNP&V}hTlYS2 zp$`ag*I1zE)Akd4yhW{ozU+9|s4b|M0|3)`CK zR?Vk=KDg~Z8z5R3xwthR`Y&ewpw4T);@lHbK`tusns&_0z0Azz;d%uv>-d+G&+Xyo zk#tOuaovwk4o3`5fSQ3K^|OMoU0s@CuV#N+XAv(1B|KF#?^HYJslM(7kk39Oj!aC@r1EQBoGtR_?eol6;y z?U9yDCX*feG3O{fEp3nGV}EX%k#pBmhQ>D|&6ieYvaJ)=o?sYyq*-&^`1pAD^fD~R zGyaC5p)*bkMe$Zp(atDcF$PPT;k~^>fk3fNj*PG-vA6!ZO80Dx^nH1vltM>da*dsP zPr49zQ8z~hn}h7+@ou)$tty6B!Yi1`$#MznD@A$PjVXXUh%q}`vrI4xtpM2}R1>hu z%F56-6HEhZZo2mcd2MO(8qPyFSREI=wnW1CSc3DLlJ!$G`=E{-(<DdiDjuktPy}U^$M9E3*QInjt2Xqt|k2e#q7!#f)PS zudy1@#bcF}=oW?1Ym^i75YEw)Z-1&=e<}K_1$+U#@*%Ol;|}uc6HYCod<-?wCQQ0- zO!(>uF#mMehl)OkSsPW-#tscQrZB69(Pxz%E?ZI=QzV0$hiPQIF)Sj(@HuaE!hzMzQQ#IV$ZCvS zeAhSrtcl!jOt#5K)|QByqUq{WLkP(cZ)#0H%zXwsk9e>O7)ZwE^mk8_nCFeO1IG4y z^&5sAGL9o0m-=0$5RwX!^-26GZ$gyVk_Vs#Ztl@F5<#lSdnL(_dDhjdI+6+hu;^-V z64`DhKOMi9EX_~D#mqZsvgXR2Z)I}LwtfdT%P(N+PtoBChB~?CawI_E!H8wlM7sWD xU9z&^u%1(f2h$yhqlqiv^WMYv|G6TY3fEnr7N_$$C&14E;)urB7a#Xa`VF-TD&GJA literal 4050 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 AZ~y=R literal 5931 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 MMJC%aBoNw)m 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 BTK@n5 diff --git a/docs/manual/images/im_commit_event_t_0.png b/docs/manual/images/im_commit_event_t_0.png index 305dc233e9e69ead5adf8d846b0e7762097d8b7c..ac7fb6c811e62d84e993231af0dd5fcf74627275 100644 GIT binary patch literal 1708 zcmb7Fc~la19H+A8bUN&C^GHi`q+&j^cq1^cX-XO%LjhrmsELRtf(H&=Z?At^Z}0bhzwdkB@9*>beeZAPc{e8&B~2v& z0HEUH4E2!H9{Da&+$TRZ!FNaGWM2@>2@2TSUXRJo^5l#_7pT2w+#}&A0j8Ct-MJuw z*o4t5-X6WFS^!ouIczejPy(wu-A?Wqs7Qtij!C@XSwCD*wsL;wq0PiSzj^+W{qaG) z!Tx~e@ZL781^LnTB9 zl>A0+Z06wHE5kWN8B2&Z7O{+#dckTa_jyFGYPTHIM(==3M%r#TfX(`CeDl%PxV%`e z8Gh7Ldu`1VZ9B%DXj5_|TTb;GLxK#y)|=LS&;G})pRn0zBWK#w)Rd%iv|wQ1$91u= z_zjKLpkq*wK%PrTqZnTXFD)&3;k9-27`H3dG0v< zUIqLFtEb4+Kj;2ApaMqlr-`{a>F23z91drRRSaYkC%Rf%Qj?^M9Xd8~0a{vG7!+zO z;aD0FmMx(m>yg~LslHMcqxzz-E&WTp(^*BrM7vbl7#$t$TkBUlGU7{0T*XT%q6DxU z;?|tF+Dl2^iW!O=qR}F2e~pfb@hhWWvC;6$FaTZS);Bg<7Gtre&54n5oQi|5DMhWRaC&;Wc&bnLf{)K75{FKwr+jmEe-LVRd3m{;yO1TamRUs7~?-sc{9xu#MJHB1T_CHenqc!mV1pe!#8YQKrELJ^oJ3}6XPb6(f z=ro$VKzS~XjERZzQPNe>+KnUQD*{I9!-bYk=j3*Yi20B|J4>4tG3gFx#-tRav9U3s zry+c&4}2nFKdjy-wBQ9BQ-Q1c?#@sNDr^_@VP|W#ey1Q7?kJ??t;kfzceo5$fJ1$2 zXeaqjUEyc;0oW;j`~jH=Ou?`j=fgawU?klclnXNlQ7&bUZ91<#s^Rh)&_oXRx(>CH z7L;i{Oy|onwpF><*a-9;y$JF&bx7Jjm;MtxS6ud0iP$1y5@UL5M$E(&ugJs#Nr#3c z)Mr_1Agg@OL50+fdqNBays94+v1+k4!#2#vu%b+ipU`^2T}6S-slC=ghLtZaj%Fp) zIR{sARidsM0?93R@fI0TYy^5e5*rI2Tz`$IXW*KVrg`Qt_5p%H!p-7kRgZdi1fQcH zLoT=2YxSlm%r2kTA7hu0Inp7{&30Wj^Ilpp%Ja$pEtg~9VMk?Db0Z*V%Bl7H7%CiL zgXcg_o>)KZ%~dDjz=p7Y8>e{%pXFzX7NrJKX>P literal 4425 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 diff --git a/docs/manual/images/image_animation_t_0.png b/docs/manual/images/image_animation_t_0.png index 8acb1f5134b292cef5309deba986f2c4c1e364eb..514ab84dc22daae89d4efae77e06acd536e0f4ae 100644 GIT binary patch literal 1795 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

ZcwgB%%2*M6aW2xOc((Vbi~q8mHAx(3BR&Mz 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 BYZ3qe diff --git a/docs/manual/images/image_base_t_1.png b/docs/manual/images/image_base_t_1.png index f6430582a7aff9a3f3dbdf575d32b1bed3e8e673..986c7882467fabfafb0397c672277e4054429c97 100644 GIT binary patch literal 5206 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 Th?BuVA)cy|7OecSMfm>!OaB3W literal 9292 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 diff --git a/docs/manual/images/image_loader_stb_t_0.png b/docs/manual/images/image_loader_stb_t_0.png index eebbf81250e6eee91d762c6d9ed515ee7682e5d5..fc6e8a0e3fa6642fe47fc4dd73c91ea2454cd956 100644 GIT binary patch literal 1937 zcmb7_3s4f+9>z&mBfDx_8dPiLdiUyTS1UjSq;SWLla8(SXsSyObs^m2CrZ2dCwn~NU;0NdR>Tu%Fa z^F%H}#q0_B6zn|#q56VF*$K@vAa8aV*Li(7TT+_M@@G34_ahMh5&Cid=s@( z(TEbjF}Tj{k1fBL6Bk;2Sd^xV8WOn%1_l(C9$2=fl;Kp1Qn<`w1F2k;dNq=^i2Xc3 zM4|)Z9IO46!Y?H!CnwTh=MJ00IqwN|^4<33w|cwG{8GUMT0a7f54-*M^gCz&KhinG zw4gAtT1OxJ1SlQ?_Yoh81-jp)=_HoZE7R zTQG6_GfLsZqB)6{{v;rZAqqAEqksBIz0ynDU25)Z=SGYgoTi#DgmS*@$tSw4HFuebi=X6Pf2 z*@}ji0w=Qo(;-JHeT{6mxh-jI?LcNdkQ(#dqrf+cS4({H+d-o0aUehQ^OVs#OaS_6 z`HIR~ncO$!Yh4z*58e`^ODMkTeJx4bEN03^wONw>X>L-0s?GPo>YI)bw z9{Hl7h39=d(^4wR)m;PnQ!KyW7!EA$9U_21aR2)bVMea>v@7qj|JsvKSNiYO)YMcl z=^pW7PEGZtKHPPD0M;MOyxrxq)D+`j2agwW`Ns?{(HA%hkqNm5Z@v4-PvbNlb z!{f`ayI+q>mTz2F&Qep<8^gKIBWYer)(n3Q(dZsd2iaI+_hEqkKj3h<@)5ZKt{j;Mi{o;+ zd~BW7uf)#IZtm5sowaN>RHkJ!b zSz{N{!avb4xjas$OyXaLs2zy!f7}s*Mu+bJAJu@ncl8^u&19N56O*SeRRnNzq1U6F zi5n&Pk>IqmI@9Z`irVVx2mveffNH5Murk=lb>-jh+A>3Q4{b=}Q)_E$%LTIG2WIZa z>-s=@_s-3W8gWaLJ((eCSAhPh9O7nl)Ry=GW~}*opj*OGQ}yY%{07l{Smiwv$EekL zQ8kapYkkq)?&^4L`s}cG8+f!-D{*Be{*^yX3z+Y`qjW_&W_x>@8opw$c z5sT~0QMp5{t*4FUH`+9p8y6m4FdKC^oIn_+(P(NIxY#La*}~42^Wi;LB71%Jzznb* zfoC>1Lv3v(En2#xe1Sl|st_YO2+#hcsr*J(mXn{4Q7LN2VAor7(mQk2q>r??XkDJw zj*1r4#4kGfi*yfHp3Jy89RrMe({{<#*G1eFl7xon3?Ue~-aOu^2%YM7 zP?R)O)AarSIh-u(84-Uq>wS;Mj({)?XH+<<@|1!trx%SmT`bst;_^(MyAK3BUVdLG zg-+`EHDLC&E>_@$>d6ZGQ#P9dLS&77XkHliqN0 z3!uo%q_X*VpT66arGR7j0U&M_1-)#FA`izd{-zjIbOssxyO<8txU;Bn1BUotKBN+$_ zTu&ac^B{FlxlG4XHms|hNf>Vx;r~CklAuT zbn(DU(D(gd2bdAl_EK+F_OMVGyilPPJwI6Li|8oKLaDZ$`)%~7wR?fR-y(~)EHxPm N@Nh-Cu;3TSKLZPvv3dXi literal 6006 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 YISVfiR1Xi^K_Q(4rD=$)R(HVu3x*dlB>(^b diff --git a/docs/manual/images/image_t_0.png b/docs/manual/images/image_t_0.png index f338b83a2964ac359c478e56508c21dcc6968e1c..f490d9251cb6ba56f5a572388feb3f803c2ee932 100644 GIT binary patch literal 1689 zcma)7dr;C@6n3&P*GFn5W?{Oz+gMVqnC2rzOGPtZ)mD~bDQG6-13^*L$?YXLC`mO| z<|ZYzk+dfGMB7XSQAtVg37QzDAgQUTVf$-$rk(v`XPZ0so|$vc{bs&%?sraJXfWJR zZ?m43mX=|Fzt3U776ZFPR|hy5odZn3=tKv?eY8G*S-)}_MSvqXz{mS&`W@A9Q-Wy@ zxNT-JOJ#IFa>x3}`_?rsu6eJ5Er)0}7()~D&)PGejpNde#4k6m*8?SQ_pQ5*Pcb%e zyPBK)`~FbjXkc^kP$Vp18dpl}QE2O_#xoXcha4B_<<6ur7iX^tm`wZmds`^a#6o`6 zAjMW?>Y1~OHnQ@pk~QV5Y%*Gt_IWj{9ycY1iQFj2L|G$SAuPS=Y-doA!M!^W+(uQt zoSghE)oYXI;`DG}Nte@KFg`l2Hot(W-V~lS99j4k{oii;eU)}365@w7ZB*vEu#Gd( zllw=hC6{DoTgx$!v6dH9gOp&TSx_J;DCQ7G_&M}`H2;x#=zWIul;h~9NRWR zeA|p9h<946ZBZ;>`&Sc(Oz_Vvhrt&Pn05@K#FY5bX}2hGgC?IpzFc0K{E%~i+pwR4 zB)HdUE?ZA^L6-<(cF=6=y{rtegdkesItHGq7PyHx&GQq-y~TJ!uK?VQ|#Lo-DyP%#5~b@v5yGjjpUU+AV?-sP;PH6n!~_q~l#Q|SBtAX)Bo>RsHeNAXOF>f3 zv2R7z<2x%5+;i6twumJXm4p@b<<18C3hj)+V4mOZJ=jFq6sbQ!1H}b*Yb>08RsB^W92-Sv7C)N~ZUgy-CES%O2!f82=LhPFrY2+acU==CS<0;ScT^(xgcrcWUXym%*O_vI z1^UdaMnqW>A^9TGF61WPvZ%T!0)Kjd(&a`f@7xQK{H)QP^gmWrrfvN&HO{$`c_a*W z&!G8H&>0|_dr%*uqAC7Ty6((biw-Iz5ne4bMh=H>gN2aGG+zboT4%=H7nPgWG0yL- z_X=6bmc&;~sbf8lfA7~z5&bC7b-lJk!=1ah#RlsYsu@lF?%V1|$a);YMHo%1{mL?> ztJ3k0A8VX$2U$J#e73N#pj@7xdccyLLb|xuZ2PAHujseObY7qrBY{z)r4`^C>{GG- Gbnc&-5KDLf literal 4212 zcmc(jXENxVi#U4#Eyq6!=ZvH@tgk=L?trK zw)jA;lUWY&C7b;$7%iO)otw)2k&d(d+LZQFq9TUW8v|9EOIBPka!u`{Pdv%mp29JPA1Xo!I*adkdDmiNnXFuK{}gQTrH>4J%BakFrxzkwAm4VYO5mVR-vt<)ZjD+9C{W*Ed= z=&+cj{Adbh%|@50qBvUK@y<7-6=7Ew=9>cFfyg4!oX9L|-hVwUpfv;J5-oF`LNrkh_Qaq3kGm$mK)c`k#U zG>q@B{6K7u0U{R9%7LA8%x~U@*Ry847CB&^{qc0xtl9gO-)b*8qMC1?DDRLG8FsOC zwtIbbd4TP-_dvB(%uIMOIUA`VHnp1Uy&0Y7zLch6nS+RZN6H~tMNgrq&m#!vQVoyx z$F=wDK9{HNJwMy#o7}U}*1A$uNj@}k+Ai0B&xb2yS)}|SOKX73mO;6ae!fyQ5u$89 z$Ry@_I5%sr={BV@xtqTerl6VN?b6JUFK(yBVBB#0DyXNu2AyZH%Zbs}pT{)pVxu^J zt$&Dv^l}W+`1vrT3mP3JfBNa8=6C*Q{fX=J!$oYs_V}Bc7vFW%l9;^WvD8Z4YyD}V zU^2f(*BSp;f8i572_QrNRZ14=f-2M67QZfsk7BN>e!J6HW29I;AGQC>K5{!b#vgT2 zg$&r{a&8{B(6f~o*p@<&?4DZdIiyszOjz7&W01kT&IbQTPeIIe+SfSJ@K2Nb!j9Re zVBCQRGYd~_FeR?dywRmw_i43RePoN@?#6)DyA@PwpjlCQe%QSGo$j^rjJ)vcpu4Ve z=%S^tOKoJJj#BIcYSSi{sd($4^?L&`SHq2e{7wQu=PjCj{y~;Ax*bYf2Vs5%9lAeg=U6;YI~NbBMl79Yy14T(zxpL)6HdxsK8jB**Lf< zA?Evy>|3U1?*S8>n6<+i4^9h{ zvp~ovFx8l>Vc>AYtqSifAcWk1f73@0#n?v26yE(xoz&{o|Bf4OJC-fn+9f8k+xZZB zcDMpB+}W-DUIxSN1XVc<`h=7_dJ2923!eIx&Wnxsh8-=o-4C<%~Qrip8c@t zOJP6heE{8J;CJYzaBvb9xNP*gxp5rMc{W-5LhcH0`HI1M(`~+?-=asBm8?UPF@k8} z>oc_!q@kP4ZlB8c(96@iEkEH5w6|bM?R1n{KhZfO)WXM2O7ZK|P-yt;WM zZls-`_K|}Wq7H)|qE_M=3g5&XvNgrB6O0Gfq-nMe+K*B=M|>@ty-N=|3m-tF*UNNr zB?)_`H%Fw8$&Pm4He58%CgY)`ywsFxWnRCBKKNgTzvd9Ag*9fLanyKN9Jo z-Dfm;;@~YQe{f zWll#Ax2E9`!u@L}sOo4?1p7ZxO8+PEVm>#oqYnNm`uf+oe` zrW|blWr~yvRZ02B^ur?Ut58Xk?>1AhB`3t{gXt^}u81z`&hWOYYC8t>4C5mrQuuFE zhMlj2I$=#Dv^=BYOChU|y#@*lMpYEc$PUz?aKaqc(34c_`UGy>cjKIF_L@=T(5(Ux zEQv+tV;zQWdeJsC9}p+b8n=le%%6o3Rr#gXZP6@j+vhNrJ6Gv-E0#UU>!pgxsGY6F zBPmgYV!J5iO2(+_Q}_vq>L@Ts)^IK|FP+Y7{8@P=2R{mq4gEg*mx@cFIOd}-&amBT zL`W&yjIP|3a`?>^LiaK64S)oiKM4rtYuishqNaN-65k5dnP3*6-?8!BH{n3V#TQs^ zr$Gs^FH@8`=7*YK%s7;+sIqQ`-$3v!1M?y6Su@$t4hFt+44o45wQEl+Qhy+xkPmV` zC6A9@MuDRx+DtFd2||`x;!zCD*HW}4m&;L?J-W?B zC|+xuZ7*+sazu#OGO|meE5Irc$;E1VfAs#Xxc`4*_>ZB=|7l@9tjr^Ew^{iYVdtf` z>XwAF#t4H_&4VSqxT;+1RsoaG>iJ<8{OxDx1ZywUaVbi4C3$Y|ce5x)oPLUMXS!NT zDVi*U2XfZ*K}g4`j0cl?gs^LRshRY)-XbI;*C zAoE6C+l7Z5pWSd=n%*w>4MfCWXB8PCCmupX$x?E(ip+G~WRmb?tH)*XfyLZr>wc#>4}K6)EE|_E_#bG?G|+5bN3{u_ z*ni0=cKIOLJb7#>`|9Z))<7V$UYJ^j_WeG9DlstJfi{qrMA;tvE1c#s-%v3<*XWvQ zabRD^ROLETW7H1wbD1b32kAC9(E!Y^z$K-MP?9GbomuO`^ZvG?bx3lGMiSH=C zk;E(|a4^?~9u2~T!cG1dJ=6kc^m7b`oFMNBoT=?CH~S2&|H_>B{QPTdu*A-IDXG=> zu-qi3XK1?J)$`*`=Ra%xvJBBJzz@?3_Gh$e3lv!wK3V>Gy9I`=v_R;A*P|h}Oh9|| z-{_6&G6r0@kI|$ACo^j{(A^#z7ih_S^+dPPU-XTH=k@<4tuN zX4z8;&)DwbD2hpddG}k7=e{~lTwr%ekgLdKTG-bL!*YWR0pmoNsN*o#iM7NMPB$8S8KiamYN?Ia@aBg( z+updjl{8*m@9|8$wscnBu($H4K)%6s(;CYPoO7gyuyKuL7VvTD=q&R8K?cid^7Pb~ z3WUqeHiL#C=m6vHc8Vh@*3Oh~9*ZrOANjtu0LAUG8m11qBzv{QA2<{-D>&ne?k4Hf z37Vrp^@)4@mau4?%_PkNf8$$htt1oZ;2;YZbD2EskK_f=AtQ#%exMix9Ao9PdzzZv zRj(DjRL3!fed)fGy?tTqhKV_;zJ_p!2F@mN4+QS%W6%&+`4=V!)^0Wq@o)N4In$D? z9_}N{`(I^f=0eQ);^geO`Q?b0DM3IPHx~jAjoceYn8Trp6CkZPHYyhUxU5b)Zn3XG zS37Vkg)T--zK@PYup)~PNU8J@B@)uN6w40HG=?4mb^i+W}E P0Z&6kN4ZAPCi1@kdH5WN diff --git a/docs/manual/images/image_value_t_0.png b/docs/manual/images/image_value_t_0.png index 38a337cc1f5d84d25e2cd0e46eafdd71a19a9eec..5380787cf1f4a0bde587aed716b9b7ee2dcc7093 100644 GIT binary patch literal 1717 zcmb7F2{0R27}i!%b#7aCsbhso9V=2-q>Q7XSV!F&O6z7agt(fHtB$l8{+aj9`~LU-_kaIO``N}qkY9?Qi;GJT zcG=XPV@o-skdKEmPssFpatzOPD+^Pu!_Vz$d-+4oLLki4*b(*QJr$BcbmQvX0Fc)~ zQ+#3${v{JCd^zdV1d>9BfKOO>%_pH8EX^2`(biFoeWO50O^$35>rO~GR{?xE|MIbW zKd^Dq7o6|AY?!}$=!F32g^$2ChxGJ*=u?4ZnO;JX4^B{zJS`*oqvy5!_!5o;e_7K`QP>Uv@<^8N$6tX66* zW2Rji7rmH@RdJzAYyVA`BnswJ3>Gn;IESe>mheve;^%8XYusC4H&}MCfUcQy#!U2x zkUy@+<&Tdil(*t}ki56tj4nBxH3wPMqmMcC&H|u8Y&w(4q*TV`x3UJyC_sDKYzNyP zJXqlo65>ds{7s!aAkJ_LFXKSDC32q^|RON!n0R15TVW~-6HeRhDxswqv(Vth8#S#N2 zrqqNsiW%*9?$~G;ZaNWq==i|KD=k=htwy$avfZE%v7UT&UClj=x|AMxeP`@uJnBBCnPn``_XDCT?A_@)-**owxS+$KygsBocdL z!Qw0=1{C2erEyuppm4;I+b(OSBfiSE*r<{k8bs@eFKKgdEhoI4p7yxkRO;(gyjX3V zrKBIRdf&;}8M(iQq`r#Qj>vudPHG!-=2gs=WmQ#`eiY*ggVtFGMIR(F>`O&^`R8>> z8w-8Ngyl+f4FgqhCJG!c@X4 zX6Hi*R%L9LwW7TZ?}&57DO2H*k&G7PYs_Dj#{Gr~P7@Lk%F7t{F>Mxw*SjesN=D-d+ocmMWUf2X(vH zSB-P}R9w5?s4Oh0P6+7b_3w)K=E=X7%Krx%-s4R!g2C*?fm8bj`v#_Hsgd3YKw+QLW=Q8W$%gl^uq3S=`J(aicR_NJep{wakCf83S_*!{e5NIWt(l-<_BH^9 zRY?cq1rCg=M_$D=PRRyWU6IQe#QC{U%`!{<+Y*_h2BgA0$EIO6^D2GF!Cj(J-7*G! z+N@v>f6|XuK}k8T$7`KEo{2+t6kafd8UTXJRxH5sF-RlV4ZvEu88Xr zZko4@Rvgt}GR=E$0R`xa)bZR-JBgIPSwlS!?8&=0=y-NOIYg$ zRo&F?ocaMF34KD#Ek84bR@VM7g+>i226t*RJi zY0d%}VYtI$G_8C7s?Fa|g#P#>%pp{AK@;dq=|(N~i^9grta5wFibF4)svfmKEK&Mr iWNQ(le9~XIcH}Oji+S8r*aXf$#04|6F|9T6O866bokcwW literal 4611 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 literal 5503 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 KsJ5^}MgIh_Zk#p% literal 5857 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 diff --git a/docs/manual/images/input_engine_t_0.png b/docs/manual/images/input_engine_t_0.png index 209dedbc34a5f8e4559b6130802912f1fff9bb20..0caa5e0ccb83ec5380be79f76ff6a5a5273863b4 100644 GIT binary patch literal 4034 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 Pl!M?JI_l;39>4fsq&Btp literal 9049 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 E8!Fx3&;S4c literal 6134 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 literal 5698 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 Dc(<#J diff --git a/docs/manual/images/input_method_sdl_t_0.png b/docs/manual/images/input_method_sdl_t_0.png index 353c73cbb309b2905c597d65f35dfd1c26d2306c..fc480a5d6017c328a24b1c883a146c8914130054 100644 GIT binary patch literal 1927 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 diff --git a/docs/manual/images/input_method_t_0.png b/docs/manual/images/input_method_t_0.png index 821d47f5a32e187c120a433d17a27604ebd9a4d2..b60ce58ca54ce8123a94b5a1d9ce9e4f7dcc8ab6 100644 GIT binary patch literal 5612 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 Xj{F3UNwEz$%4#50bySL!?>+tx6&`*2 literal 12939 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 AU;qFB literal 3767 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 diff --git a/docs/manual/images/keyboard_t_0.png b/docs/manual/images/keyboard_t_0.png index 0c551243187b835195eb7f0787cb7c062e0ef97b..a96f1f85b38200c5d64c08c1941f9381904a7450 100644 GIT binary patch literal 1627 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 NjVC%PC?%W7{{bolD^dUe diff --git a/docs/manual/images/label_t_0.png b/docs/manual/images/label_t_0.png index 022a3b19b230ceb474f0c94e6a8643195dc24d96..835fd8accd81426abebbf1ffaeac1b0b81234a82 100644 GIT binary patch literal 1485 zcmb_ce>l?#7@yGOIOj*_Qj}#gWG+@chs-pxVch(<<(PYv4QE1HlgExUjAx{6YS|(+ zOPFftXi|5lX_dv6@0bYJsc1V=4@u75J$3)x^~XK$^S+O5wOwKk2xNQ=i$O=x1uulCkfpdUifUxT z$JBwD8J6gb%q*Mi=a1`4T4P-i48vuoK3)63Aj;lm+XMvi2;&R}pDTnDZQX3BjGse9 z_1Nmu0;jIrgwI-?#o=dvQyj_)*ssox2blB76=NYN(*nB2p9PA5fC_IHO-)gTMn|jk zdi|C;$9T=i2v;N$B~Yn6dQOfD7!1Av4V>X9r@|h!MkjLO5Mrd`gn-R9SJBQ|8`NSz za7z%*DBtSeX#P#7)H9!}>&Kt+acU%c!rdgaPL*4=+$kTLHteY|Y@xVT68Gm+u;XJZ zkkZr?$wA5V;21Wok#U3oPZN?&f~kt5D3mC6%|w8?gr+?jfL5--*cYhAZHRD`(l=AbSQqZ*@g==2j>t+qCD z_V@wM6kQOQOrh+xwam-PA{<28p~dITG=~z;_n(MEIJ>#I&CSm{0RVs&Uog{Xy(ALJ z1wupb;$nxdpC1m!sbn&lwJO4zG$`3~179fQ@%bCDB0?6O4o^r(K#N62!K_zD<4u`A zDMJxF+@0y^#<;jRBLUxT3$zLcZHQ?^d37{2xbUm1IiWD?4038d_w;>o5`#g4!C;Kx zfoH7(fuMKwzw-GF2KWiNyx69!r@d?f195DN4a0|r8!AHWGpx#b>eSPRu`o{euv{*O zI#lfWv?0SvI@Gicflz2PL~Uobw>yPGnS1xn!Jqs*|K!5!*Dw(QI|u+_K#N3DTAz}Y zo&D<}a%w@R#>2*x&;lgU>6*DLh!v|>r<0^nsfz-kcdgS6nXIIDWj(-JTFONY%$kP* zdlo2uh>J0e-K2{0a>eNAStl!2O*?TLtUp<;S91-bSrEw9ty`(oE5v)P_Qn@kVch|L z`G#u(dT*isgXX_Ld3JSlRN_Q+p0-KcyGbkz1T7vfDJU@5MUZR$$E~oCck0c-Mel!L)QT}t% b-!1mt+CAi6aq#Qad75|GNRuYL3ZbJw5FsMcK|+xdTIfXt1f@vR z(B&clgn;xA;C=3Ielzd?@4P$n?9Q`0vuAhDp7Z@|nu(DPJqp8}c;+q6@bfwUN8_AH2M_rNgSC?ni zb{)@-cN_XTxpHkvsGhF&7Agf})o%z#S+(~0&2|Ba%6Ht73Iq_Lnt8OD0Xm6w0Y@9( zj7FagFz=_r+5KYeFw{^9g+V@M)Zo`FePzLMavijgrWN`k&`ZRvV~r|IYm`P_O=2$* z#L2s!Nd;a1HBwm!--HP*F$;<<5zsBHsDF*HC_q=A->CAbM#?TB6D_*>KjY6gvb@#@ zlL7|&)w%(SUn

#M!v zAI%=-<9XsCcpZTlw<^wVn~rC~t=@C#-g7mT?hAELbCbka{I-bZGP{^nMU7?cw^U{! zPrxa*u|J2>+6ZZ^B2-FN^>$DJ`_5oNx(KWO6Me}ZEytLX+{x;my(9|3AYPo6Jt zjASiz+Jvlkhadh#@1{OL@_oC$`FND(VlC@oHoI$HWmL`S7;SoWb+($$2cF9nvu+{m zEw)=;;ZN8Tyb)U$I#(B4#pwgquEQ^zW(qm=5fYXvT9}iPUO8V3@|CbY#w!fBVrlqR z))d!!S&u&)5twWBSzu$Wh~cX;F0O}X1?(>=T2`A0x4M01IT;anj%_nl`zGPg?I|C1 z^vm#Mr?%li=*>5osq8}gJ%X0RL6>!%P3dqZpU*-P{(B`T+k3XnckvkKj8M1ksED*G zR0_dv6+eG}2a;~$;J~kXIK&!EI1hw5!wU*(anZX*8ie%}f%#!ruGN8x&pgPs)tenK z5Aj%kiGKL>2MRLjm~+qY4n+}v%(3ZPl?a)?o_>eFu^3cIk#ZfT<5qljm!3-|@o$90 zhedu_Po~2RO@Y|+QhWDmvr42*lZ&k+mQ!D+t7L>6lOk==9Uf?(Ww}bqc$d6++3Z^o z$Lc1AYE3!aw%zYTN?hn3W|~&A+ew~fl6>_F$?|f)qF;f|;=KjkYNzWta3B4s2ogjM8C}d|=uc@;7 z*O&Zq#x9xOH4pwzV5AFCEAznJTI~$(A15{_DKq#)tsL9q;7;*aehU?W$9Jd;QyBPa zGD?U^DUeUTzP;ZY&pz1-Eb&czeAfg+>?n%1>VRbadps#63u^59n#s}DWY!dk)dSGS zn9I}q`=!hm6J))YbEV)Ew!W_c_bxlNAA24l9Aov+(avtdsvhhZ_ngr<$O++Sa>Sn0 z0VieJ60$p=DihxL%b_|e^$Q8L5%|5j)!?*@`xsVUlA80S+3nYEkm-eq$jiNUuZ`i1 z$oj!@68=te>b7N*REd|uwDY&=c*w>d7*N)SCp-goi?rNOq)#^Kbj;$?=ZMo2(c@4K zFR3>vg|VNgY?ul!Yn3{?e*U8+PM-z@u`&3=b&UaDaon-lY>bgaGf!Yv#zK2^jOifu zEjx-(l2?jWk$)6br(NL0;wV0kuTx7f@@c@Vr~~2;$Zj0Iyz!p z)sNJ$gaFZt-_4VRSz&jxM0IB$Vmmk0)9fg1g+At8MiNkb}Ej zB?Fy3)R}U)?jwe)(?x$W>)od`P%wvNW{G4U;S~h~FS1Z>{XQLH|3BR-g$LC^j;>5jLDX~Zn zE4UMavQ8zK0-j=-F_A<+5j|7i3-v(->tmdoIqJe_N_G|&Op{Vs^$xP0&cCmRYjvK010GtVCjlN5C$&+5Q&B!O0^ z$Q?~aY50Ry#c80urL?^zaCVhny^q;Y(O}MK4MDN+FEQ<+ZWqZC=P*sHgEyCcrlWu8 z?GMP4{$t3+b`++j(Gz)s^jq$-Wc=;Qaha4cf*#9-S|?gN#k&in@+%l`sGDL`@^Zf0Eh%3%_%Pk+3U zutS$jqKBn}u~Qau8}%=6FOl(Q1WQ0!(;u*k=WIz#{svSB`L#g4mPg(X8@*Cv)#^2) zeW>#DmH%8#ZjEhg%};uT5Io?^xuG;xb{q~FF0WJ=`d^{{G=WU_C;3z`ganqi)AE8- zvU8{TPD9V>+p+QS<}&KyAFIag=CxMhG1>(R;X(z8JA*h6Z8rZIo@Tq@NRH6;?e9%O z_IIB2yu zrpU<^F&nrsJiR%N@P&f%`j6-%?+$)%a{ZTATU-65-@ZI?j_)?xDhPKF*)_hMVR~`Q+S3u5Y1ud29WPJljw#EI8r@i#1YyR!ewh7Za zTjDpf?W?i1=!Jjd7rvR|_6c0(OU?lz+hxiVJTv+BXR zm0ODk#9I8^PKCxM$h&3!&_NozLK~9^q7;*|d0>HD(@pChGV$S(%kJ1VWJd9x|LhUU zY^2C<9vpj_;-HyFDe7#+>9woD!4 diff --git a/docs/manual/images/lcd_mono_t_0.png b/docs/manual/images/lcd_mono_t_0.png index f9cf46b28fad3e2508c420f5689d8cf39718d0dc..d0c0f01a0c660fd6aee71fd31f02bef9d8f42d8e 100644 GIT binary patch literal 1508 zcmb7^c~H`67{_rtY{j;k$XqR~P4gC8DosNslND-FQM2vv*ep-dOw+<6)1^)GD5(i! zU6m0bFWm81!4NBj$XzTINDD2zQiKu#L;UGt{ol0n%=>-*cxFEHo%cEN0{nc}n^>5D zK%n&)v`?TR6AiCy-CBd*4{v{FNNdj=_4NTQuS5lhP6C0}lwy1i1z-L{A?3zzP6Y91 zdozKMTWq`ULaXf9?gv6rrr$XA#i8j7F!w2|N};kkqNX(`r@P+0Z3q+K^DekDDYiQR zVT{R}7mWKRvuy9Bb1N!lGnAP3(so-dp6Xr{X>@)Gj4&#&qGs)SoYq=6?Kf+0_R zD_yK|(ODv1Qk`A?4E|QP&4bJWKfUw)yaKA^k^d_tgT5>_FVmj#*_@_Bd%6lVXu4we z+w7=cWz^0OH@=CIQDdC#JTWc~q*sM9n{%7OtIeV+2Nj^yla?tS=A71eV2J_d8Hh3u znk&w9L7+&}*KMVs3UVqA9*p?V8F`cz9<;awoHF!CRA}j@*2s?= zST5>2IgWthGKE4J8Xgu?+!EEgxoA<`zR>nmXLWOq15ip0shv`d_pno@N*wOy|A|Pi z&dtqz-fvPffZI#K);BajJBm-x0$=={IHJ}nUUkC3wF5Xj9?y6Y!w7tUE)kX^nJm@; zQC!RCQe9o$yJ=CaN4j?AZKNpfSbTi^!tAJTXDRX6keybmZSLquNW8{sY^(r)Ob$Wg z@cf_0j^`nAxjb$^MH|I}!{PVK%V8Rus%G2@Ye6ITNS-JFPPCj9$t6q;pq~f9!OT0j z8Kp8VGV-v&m-6GJTjFpq1Vva{yds2KZlEplYek}C`zYA5gI9jkj86^>+<_tpRi0_e zv4ia&j(p!O6c$x+qkl_iZEaPNg)i+DZe13IJR}#HxzG$nX4Mgi#3%e}I{nh($JvK; zv(xsykdlA?qkAH$S!BN}zyATmwACBv{jxa9hvcFYzR0)Pg z-9sR#)csFoB?DQ5u_L~8K+`@lM&?YA$LG*X1oEE#F(`_eTiz5Bw5~q<@QFBxyT!*VOFvJb}T5ybK{ekWxce6+W*bFeNkqkg<$cDX;M5y>Q^S{ z{^er(K|fZk9x+XGl+X5^1z3W!D;ug!$0}Mvhhz;SEE-3JE|T;*<~Q#t_88vbk-5ZE ziTD+y=`_8Q8AZxNTQVhCeP%tmcw|8yL38cQj<0MOhBH?a#+*E`VRZmg($dxzQ+x`t z)#dapYbpCuyt>Kz!lbaQiBBajvu>{bWct&0&l#H<37&wbGL9I|HVA|A^J(yo$oUW6 Cf#J{q literal 3329 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 Gcm4&I8ZrL> diff --git a/docs/manual/images/lcd_profile_t_0.png b/docs/manual/images/lcd_profile_t_0.png index 4966bf3bd3788e2919b48794ff6cfc4c2caeb52f..c16881c2868d1bdffd0837783e175690696c63d9 100644 GIT binary patch literal 1630 zcmbVNc`(~~6xZ&Su9k>us5n~D?X*-Hbg84J>ZUYCW#b5odcqK>AGrdY(0 z3fhW62ur9^Y+bF=5Y=pHg}CcJ!v40~{kz?r@8|n{Gw*%py*KakzVCbIqO+}>tg5V( zl$4ykos}yfnZVB7D-E23Y8~Eykj6UNT1oBvz4Cd*>44&Zz12Clt2r|x=6EGfskQ~2 z9zT==)~$JEIb?IL!fkrDM@nXG2q_ysM!Bfd?1FGeg@ZYJv9RNus%nKF6Rzhgo*Grm z_3U^VsK2RSWe~%N*tXc4IsM_|^oH<^K@7hhNz=Y_eV#2jK-%+63h`X}3)-3rl<)D! z$60KjCU%}hd?F^f%(W5_9 z-Q6wW&8}+g9vF-~FV!+Q`f{r?Nm*|*4n}=$NNj0u(+wmM1-EMZprYBAa-pXs5qytu9R3`c1s47 zh`9?X4>O6L&FQAcsRJg!-N4F9jh;_q!<2}J zalzy98!I!O`SbxO0s^E6fk67hxY3f>hzO)4&Id5xaCZ-H&3wZz_gS7Es`B<+dRB0r z67}Kvo*MDZBt$U=j`nnIzdD zjL*o(t6gjo^2OrEYz)stGynu0Ujo8Q))vl-dh;|*XGiLzBRyUVZ>dBAEC~qJX2!c& z+yF}Se7_uGyg#@az;Xj!r^RP7-kjgX1M5b43FkE z2U5@D0t`+8)rbkVbJZ{>J+K>1DR*en-{OioYI(eq5{=x(pEA*3o?}l#TBOb3;r|8$ zq*4OL@>IvoTfe@jZqLWhj~d81UEm8)$ZN>xQFT~P0N z6ag5RAL~HY6&G4;f^6H&`g+C9NVud+2k)r*e)L#()>(BGqc}lbU%Z|^3LMatB|6&` zJd1En4(qQ)*A$(*jgDmT_05R$62n#helKQNr^lFY$RQS5X!!XZ1>H@^)*w)5+F2WL zB82%IdYULuIM#hSe0Bf0X^|^)HBfB^=J=jM5i+3r zQUa11Ib_>eDbo4WVXT)E)a(6o8k7L0*)pC?+K;ia@Pc&~c`J~dgS%Gwz})AdE4Hh? zq!2EJiU6mtt~B^}s;1+-UN0;%;AzS{KPDIv7)qailk_AgW8c11ei95O{&&uNWAOQZ z^z2yMy6ooXg^IyWN14zb6%`eU-EZ6At39$TsEY5e$%6RCxZ85ruSnb3mGsB{;_du& R6X3&;vbT1&Vq5y&{0m{@3y=T+ literal 4107 zcmd6qXEdtA%Ym4QAauZ{ds<#>wG`HAG=(8Uu*5Pp0%FmzIU{tffge@7d-_91*49(x-oFg z0FE3w8sN-5!}}Y!P|Ja^hG!2me zp}SKZ1rn7-$-qoSDc_5;GF^vX%fVZY+QGhnL~9Kn=)KYjLwM^X*+&A8AMV^85u$uQ zAf%sq<3H1w-rRMz$q)6b%;IrN;QpVIZ>?T^`kL`PHyOEQlW&?7K#ON;Tqdxs!Q@*h za@Nu}s`1KaBokPjdnRd%Kq$5FoYcN9te2q08=!ub_rWtXq9=}9#N}5h8anrS06L7Q za$~)nr^EggpC?AWT8@qODzn7&W%%T#gAS%#zV%&y@_=8_Z&OC;X|{5(-Qnh}l=rgU zMdjMWHcb}qj#jS4EA#mntiD{o?507nSYI1TfFz8$Q zpJbxVp>vZrf`<-%$4FpFt3U1Mngc2W_8edhUio9iPjR=oN#@?TRB^9?dlS70{EzH9 zk&HhIoX3lI+o_rSg%b(WH7+8MU{d0%wO{(ePqJL&Un+;5pGL58Q2@QlI`nf0mIC7) zp<6y${D9h7?4kW-`!GRJGd6)&DUc%r=%^2mv9&+mU0R+w7#h)nh>w?;p{8nF$VwS* zoX0P$$CRea;Y}c=v4E9K_7_c~qsHknP9Gt4c74|xj(*3Sd2i)-uME!d69kz>oiQEO z5xF7r?cs({j+473;t*N)nP&92;^~tK94`TJy!AbWaBxQ)d z@E4L5Byp|S5ml_8A-nvv&;Xq87_eOLHeIWGXdH6C@#Q$Mjf>1{ob#)Tpr|`=XbhY9 zSS+XXYi^$YbZM;`*Gc15M_*mV!(x*{16>tI6Gko>!$?)If9^sM`C&9y9N#DBWyVxAHXj%{Z2E0yBqU;LUK z7dQj#Ac@AhT?3QWN820Ibx+bwC$(oSOl4i>mc*R1#kb7GhQ#`_2Gpp}$y;qwZd29O zgd}H(etG?GdRnvoApucY+6^RJ@`K`LeYK)3kRB5qi2OaOh>xb*!OlFmAd3vX zFJF*Smgqv(P>E!|`l$C=eq^bIT^-i>j%g@^+#3_hFeLN|*v?64lS1tGNCuNTTe$qj zWpnu7Dp)mLi1q=n2y*u;o>IL51Jxsf-B;t}?2xduoZ*owM|ds05oi+gHRgLVqUwbM z$pNhBn>>=Mg^LF(+I2)+Vry{H#b}JRpP!MJGX3Tf)!xutX5+9G`c(?65?C(aq%(A7 z@d>-Jjn{lEaYgoih3@&RAK{*hvLKrg$$`~E{ql3Vjj5WF0MMJ;%;3PL2JaQk+u^_q z5aaW@Tqc#%;VWOV?wfYo4p|NADhaF-Zq|}w|7_F|WN{=?77wM%kq5q)Nzqg)Pec`y z?`S7Xr4)1^(-bfA>2PCuVqI*SMD zMUqZFBOVWQf9PHw#M`oyYx3ziba%#|{+@F~uXFS$`TTUI7#iKSWF!*{=+hDrk0qk6 zWzb7O_4p*t*K&Uo9hEO3Zi$IqcO}J!ZE0b|oqt<7Py_I2a_6hh6=0fI{QI4? z!Vp!98fzQ?BRICx#^Wiv|2sY$-k#M6l>bC6NbuNc`&+nVw{0A}!)2^!;R5+|XQp8` zlQ(D`BNcq|3T>SKK3j6QD)@K_wTxOhh4TKxB7giRX{orRT=%_WS14$Enq^3tTzY!E zl6|2;%vBvivYsZqJ#^`ye4Le_s!o+1dfoukYVkgW;VPkgsR$4cfJmP2c18<8R6LdS ze6#^_(j{p`UeCdQKfXK84=e}29@`BA0J|%l(04%m-`#~l<$(x)W-kS^;srM>p6EI(jx*+7j)-cxl@VeK{=-cKufcyK-- z6kbGhAr|a6lL$TYXgf1?Z(J?N^Orz;e|s4z_Dg9dXsgBQl_mk>{(SLA9A|^3D<<>h z56)d6i*b!UYyHK7sG3sKvQMR!4aS2i7q5+U8*VG)+AmPcyG_ZYOFPD&0?aDd$qFQ* z^IU)-$v|BNwc=$gfe;>-mib!%^mwq>FRkO_!@^?Wnu1nmT~Nnh8ftO7qbd6Xa)jP6 zN@|eOwTC)7I#?z|iD}uNFYkCO8{!P7U+vQme2(lYjdla7am15b$Y}uCI@7goOC7Y3 zyut18tgg%Hu3;M6!_6`sLOLI1y)=7FGTKQ#lH0pe|fZ&Y+@kENB~&& z(?pnUXSn!LdxyVS zt9W0`FOP$_q#XxKp#eJSq{0rSKqGXqbz5twdr(er9eovPebOY3Q(DtWr5|4kZ!-1y zJFGVA*~u7^1wa-C_v#ZOu4ISGzVzQ3&5tR5T9OJ`;eN++x;Lak>=Vg`=I7_@GFSq9 z(OK0rl4#zJcnJ2fB{$fRe?C#Uc}8it^4U9{OVPLV1i;Yv>G9rpr9Cbdyj$xsVK9&; z`3S818s8;uS#Rhxf(D%D*nZ*pL^<3Un|xC@2G6tjn$Q|d$vt${>7)~tY^sa^jEA_{ zv~>qkb``9U7fAa1rCOyZz1QQrr6ChGTvNE5}{~R+e!I>i-Q3p~c01n)2vUfi1(FTiQN3Dhs;l0>NU{kxZo4KfvoNl%n7cLj+|T}XZ1A8hf9Qa#k0LtmWFcn_fg zZz8YQ(Aq!@C9E|NWWd$>-?ft|f)0-E-gBS9E7k;tZnYd5&z0!&--s4>O7t?GSmApZ zgFU*t4ZlW>G;U@-KUtGl1lfveUlIB28By&zDJ6Mp_a%^cNv@Lpd0t^YLqdSkKB?3K zAzOAI@&9h}-MH1r-oC(c8IS_GM`x3c*_p3`mAL4T&-(v(3)yu$zWG3tEpmIT%)$(C zSkb^|3~39mft(GmFA@n9)%(;f{;WcE5Xg@r4GzVl*M#6hxG``4_XRO9+H=aOkkgvA zb&)t;LM=fjiF!+;31i{rITw1IO2?%l*`KL6A&<4<`Ruik5p}?#$J*sL0r%@0%v4mm zUg9Ue{)UE8>VreIhY&z=R9}(^4v?EtYy&Vw4JO>b%BBKQeo!~#g=5*6yc_WJ{rKSgXt6Tr&|TuzZcvi2KGk7#Y=)c%Ta=uyHcyP$V%6%GF8SGQCDPqhh;_hH zO0))dp(T^cj|GUlXU=G6`ltZ(L^9lic7;5sxFzERj45+RYkq!_%ku{z^dgubJ4^Xm zR-WjYY{agoN$QuGzy6&cnOzh__p~L@r){%w#pGncVgA}<)SY{)D7bGrkX!uVhXG(!Y}guF758kw>IaPEJ ziQMS)I8?Tg=FJiTjJLdOiYumW9n*O2Iq-D!n3)w+`wXD;VAjs(82wxYdnQ zY6pa9N87Qm=5`uLN`r5>%AP228wFAgL*!nq)C4}yFHg?;dH)5h(zZ;in+YOjf^bkOwkrI zfX7t38ulrnSbKQ51^aipzmopDO})qlE!Tx>S9A0q9zZDU+B+}{>e?p9cx=I9n_~mJ z_C4k37kk8P9m+AVL2r6g4lOQ?``&*6sS~yc-uf!P=gs)?In>wBE^lmG;;mC&X>8Bz zQfI(a*o*7e^NF?V9vC`xczG(P$X%^wfYJJ9YTc-CZFl!2Qu%wDu5cRjSOHv8Pa<`T z1O4wn3t8>Md*mPqC-O(%g$(K#;r;S4^cF(h;#^T&RSMrVXzXs!Q=)sL$3gfjbW}OS zY?)TZ7C`Xb2BQbu007*D6qg%LlL6=Ht+nE+NP2M|2tD$lsBFBP2=dod#1 zhN{u>u+kIsmys-;mZ(h^JRWZvJe9IA#;D}AM#mSqlqgIpO`IO=FR>*FMvNKJJKhlQ z7AaV%%`sMz2^2~aj=|O~k22N(xBxbUa(;1AL9gxkOMWjj8Xa<*98{ol^?6JP zqq<+r?x~?o=R+w(o*|C9I*Zy!g0Fz;e^f_f(fqQXigF#YzfMctL*0`+I z6t7Tg9Xx``#;Kc@DbFpwNB6|Y!0nyRFN!QugD%S|UJjY5clp=FY0RCbL4JsVFg?>` jXVliH^T0pf6;`YH^{lU;i)n+vcO!vBI9k&zuf+TTcjsAg literal 4603 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 ateu57#;?B%oB+2u1Zqm!ij{Dy(Ek7nmAE_r diff --git a/docs/manual/images/list_item_t_0.png b/docs/manual/images/list_item_t_0.png index ffae910dfcbc0bf58bd98ffa2f5cdd912ba8f601..fc202adbabfaba970b311aed8dacc289ddcb02aa 100644 GIT binary patch literal 1618 zcmbW2dpHw%7{^tjNR(SRRN|!E$~74hqfwhnx?x1imRn9XY}h%W&_PXS*w|3HEfdmQ z8ePP5#N;eSn#pYp6BF5H&idm#=a2K8p7WgN_q@ONectDNzVG|~@%jBSyuj{C3fc-X zGBQe_Q?5QzpCh%RZF15(E6I3^)X9Z-y1UA3d^^ST@?2>`9^~qLHokD4-4?Efkm*7aYMQjzJX?Eydm$|x8eLlN`_M@d{?`h$E^jmTOICca z$admN&R(a1YJb{EaK;JL++c~0ZBzw2N}gyr&9Jn$r!+M+-SySKJ2Z6B0V@Ga7dpr3 zfq1Bv<|Gkn8c_=b;bh6V;d+CA2_E=v7^y$5)rs--V!L+u`r!;@ZRJ$8ApIQQ$Fr;2 zF7n!#&#GF=V=7{YZoeIpE9&z**T>gGiCHxkaYK#b&}<9NXstNv(;T{ltCQz8K7*~7 zBj0^FoWkjr%uDhwXHGq~pc-Y@Sx>Rl$A~)U)|i53=D9vq=rc+rEMSgx011!f-WynO zgkdAKOVq*vB#?^Bi=%{ZMTZ{2xr1Geb+y2wM%_Wv zc=`uzo1nhXb6U1l?*wTYK!8t-%t@BlLtFIof zw7>6djyh;K8mS9m|7e)$9n-T#XYqv_;K?rKi1vREHN>V`2m+7WOD-v|W-l$(IVOHB zetlcnmVO_;HLILCa~gOIw>;IOlO+D?J&*FotjrMPg4zfdAXZR1+7Lt_62s#SdxmMzWN_iJ+Qk!i z!RX7B)4PKbt3`)Db8Z!d!C*k4<#Ft`VJ|{ibL@=Ir=!$_|2{%>Z9L8Z!7Fj!EfR*P z%x$?QPmUN#YjltuPN*}XsGX^J(b3=%@vL<)uI%_gr?qlK1C}bRD5r@bU_8tNH?iPk z8UGwU*Eqlh@SoU;Ix{7S4032dujjoF&@xLAHm=324X?w6t9frG z9%DbUNUAqJRH4tPr<6vI2Jc%F-H|w6ZCC(2*fY7Eq*fbrAsTpp@zf+sCs*U$!)jWl z5yanr9TCYZr_bqQ>tm4H*BhNtBynjMH1OBsRCq*Rz9gvx>UZ`cry{3is8Lc|cm5JT zN@pqIkg5U6TT>lfXy3~3)U}}+dBi#R>Di`A1@m`&2ibox{b<2p;zrp%rG;P@!0ny7 zID^2(>z5OaU%4V0E~Tv=9J1Po+SW0n!20_wSaHJH8S3-jJ{y;Q5;7nl*p+%R_~xJ6 CS~YwC literal 4074 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 diff --git a/docs/manual/images/list_view_h_t_0.png b/docs/manual/images/list_view_h_t_0.png index 45a3001176c72eada13f3a580584a97a63aae6c2..9eb733e7e3b3a66c1c622811f80b45a681becf53 100644 GIT binary patch literal 1688 zcmcJQSx^&J6o#2v(IOB~kR4P>2L0Gzmgj8r$hipE~uSbN_qJoqx`J=gfJzN#DCU$;qh8 zNJ&Y_L7g4WOLDp779NzA#3{`eev%~Zf6mE4YVYGI>8iRfFRaQ?hEl!HE z=B}-S8Fvh810NW01c!Of$XKR)m^a7eP=@xNdkBaM$R?qavQ~0i;w^N&yd4;<;3?y6 zT@x#v1g9?K!6PXEO~H71-HCy9_C3Mg0(kKeeslUzMR_ zJ6Y%3YR6OeooYgo&@*kN=vFHs;Xtn1($Z2(W21sUW2$$1yR*oasC|V4MnRx&H^gLu zIQkK*{5vJb=b{mdzj=RA|2_U1nW}4>PkM{89DH16tT+49#|N?aGK@G@!kxXgxZjKl zD)YO!Bk!Wz*Rb9B8t7MK!VKCu!8C!Hc8q<))IdBa92v~b&SxV6>JmYOb&}5P9J4RH zqLms28DgTch3o!6b!0T$wSPh&vSU6YaXXC~119U5*|h~@uJ%9_BygVhg8&n7+s8fF zKV%#PlnLwq3i_rtwEfqw|qGWPZO<+ zE?(_=lE+3E*Cl(r1O(Am$;=uutC9h%Nn5)rL78noMWbX(m+z*c6p>$04n%L-w*N1Q$eJ*;IO_8kxiB;$pT>o4_a}=&i3oHc3XVdwd9(zDFJ+bMId3uy!*~70R+EwB)QdCUsKKkJ-n=Q3z6GAW*P;TF6d|>2 z|N*V?uet-7oeZ! z`-Pz+b#-;znRcwkJN||k27^tsVmP0r)v^-9Wy3Xt(P%do8rQcYSrOy%*RLif&X?S4 z(Exc1geyKagssRvUCS06A5nOQkY_J^nAlV%-rxh1^$KmSpT=ztq^PuXcGiv++q%bI zS*38MtCxQp$)9e=Rv~)g3p?UA-m%nWrD1S5ZE-lK%9yj|olckY8Rp79wE1eR*C?hkO%?by(o!NKhCkhM?(o{F8;4Y2?@XG2WAk&B5r@uk$e>cHGsCYv%%T`!=Wc)yEPC6 z_w~KMTU+S&IqfK=$;6MG)sc$*#6b@pMJhR#MzbDW+_caP*{axRyHl)m#!%aP3;uL9 zHXsD$l36hU;L!Fd<53ZDy+)wQKp;&F$7~eZBnmxPdwoST5DI>P- z8&>`K&F@vuY(SwJ80QBhE}7Is<`j=QN6nk&&Dr;8(X%Rv=@8T)ujD2CMmo$C!|IHh z5FaOG=XfnH8C!MpblXRDEm@b?9e{Z>Ry_l&4|<^GNnJ_nh-Zbm1;sh~@Vt}<5Gp>@ zsndyypC%bw?#NzoDpZwDuT%wSSsFmeVRO9;klUekRPF*>$8g)k&>B8h@DJ?nf#&+) VO^XF)rsS)Uf;zf6)Z1OY`3GJYO;rE@ literal 4501 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 diff --git a/docs/manual/images/list_view_t_0.png b/docs/manual/images/list_view_t_0.png index fcace9401fa684bebaf17d39638da8ad9de227a3..d603b76c6562a5b4e7d7fe9e0a3745a7e463824d 100644 GIT binary patch literal 1627 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 Lj(V-Cb>x2lU-;SI diff --git a/docs/manual/images/mledit_t_0.png b/docs/manual/images/mledit_t_0.png index 8b8df4674205cd56ab51a4f1f87133e46c6ad944..2c748ffd0246c7f11aaa9ad3e2a5071a5ec4f963 100644 GIT binary patch literal 1520 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 Jse(8~{0ATIYdZh{ diff --git a/docs/manual/images/mutable_image_t_0.png b/docs/manual/images/mutable_image_t_0.png index b2cfc03ff70808cd4fca6eac5918860051d78297..4cf8c8a4a50b0d6dd4ca559c26a378d8bb2a1ac0 100644 GIT binary patch literal 1865 zcma)7eOMCK8n@?JMR{@EtTCmuFLODiEmN+dVg?r7Vb^9VQ=IvMB_gFMp`tZsUNf=M zC{4_)hJ`{xf{Nu#9T|%Gh4P`yOT!S*EFqPIOZ#Knvp=?;^PKaZ=lq`cyzlwFAE)R) zAqRkK9oO2}*Z@%n5l5_&Z=H0&D(h;*X!@;URouT1AZ#q}N6jNfnf1VoLhK7WQ>9n5 z7Y~26NjOJza^?>NKNt(L?GE1eAWUcX@RK^F5ej24bWtVX0oy5Ve(wIG`JA>`YZOA6w3aN7DBt&2)Do!6m`(5qAhg_GYR- zU*d3D?d=J+E6g+*_0LCwqBkHrvvFB%T%VZI7ekKxVa63 z)Yhd?66NULfOODG_w3u6tRq*<<4u`p6EG-Htgq4$hq#LmiXTz@?G8wFKWDL@lDdp9AXKymtO z-|fenSLd(j$UO5#T|#-cFtD`zSTE%=H0p=q*e@Ow6cp5C1Q*F%hoe42t%sfb`D_D= zB^zNz=$8yyH1wV=>w&uZ+_l}`%BH99(|yu^nwfZnZ_l%&wxZ~P%}HCR@vyAU!B0EJ`4aJbIN z=QJ8E#m@<<*hBeVfIGEGKBp4uf9}Y~8K>_3XtkV@n0R-RrrECWS~4#S{BstbpYNPh z^Oj9-^esa-3GH&74uRc*qMoZ+YzAE$0)Jj>#D4x*5mrQz^E# zwvySm{1kYexvfMP9~BdmT9-H;*o=Q|&_-l0&1+~bJzW!zvi0+tA$N3ga5Fy5Vx|<= zJ{4E{-w;^-*ImrxaN=&l^QupYTJzgCMwZ=x5@l8g^akx{i-|NlK~T+&S)ZeO{fo#m z6>BwH*+wx*a^Ec+V}#J%+^viV9GdE~0VK3UBH{S~D|(+x69G5Z)qgz6La|4=F>L-~ z)+h^$3%;II1U~cu)%SZ6{HZKI3?P_PZ@^%%@#VmFla&N}{bj@S$mgD();h2P~0&Ps|@V-Rd>xuDeR13ShaTqB7P zp~I)`6H-h&skNxsoX6O5JCHKClGs3R*)NVw4659Lx_xWr*-EcsQk~>HxbFUI&W>f8 zGjc%PTW0oW*W;s>E{J2sS(rY4G%sZYlSa$9>M+&jTP(Zo&%--_YTJjZlqZhby-oOH zXTHvNjfOzB1T4$y7w+6`fozKi54rn9SlNF#O||`Dt)I#_AjhDP0Yps=$A;j zB^+1jz39X~wCH9i*O$$DD^=HaP2p3kX*LAUQD}Lcxap(Nz-Cy8%TsbBE$|QQ|8>05 za$jWZb?oD8{xR%ATC0bm&~Eb{Pp&NpGCaC%OHB;>n!x{1IlO@i5j?2`bAC%d0~`Xt VY98+j6kGpB8x%4G!3v7~?*F%&zK{R_ literal 5113 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 V#WnRu;4F_o>w&I%wW?M4e*xXas%-!O diff --git a/docs/manual/images/native_window_t_0.png b/docs/manual/images/native_window_t_0.png index d5e2ff883b556eeb4069fe280684b27edaceeeee..847f493c1007b4bc6a7ffeda9e440f5befc99935 100644 GIT binary patch literal 1745 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 v=3Uc=U44z=YHAAojw*bL4K?e6A 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 bJ>u#*nZbgC{kwn*Dl}zzb-7v@^YH%xc8UcS diff --git a/docs/manual/images/object_default_t_0.png b/docs/manual/images/object_default_t_0.png index 578896521b2f2713581601b6dbaf229ee0ea3877..781428cd1fad3759f395910a46da6898d5d09c19 100644 GIT binary patch literal 1768 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�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 diff --git a/docs/manual/images/object_t_0.png b/docs/manual/images/object_t_0.png index 992c32901bb0bd0a99881b4ba9442e5b36a9c220..e2e0356be438c66819ce37d50b8a8678ea284cdc 100644 GIT binary patch literal 1551 zcma)64>S{a9A8IBSZlc?P0Gxv=7~!F4Nd-Q;UPBKO4y;+B7e@hj=N0ZSaSXh*-74_ zMrSJ=iH2tLZuYV*=9z_>DJ;b7cHQf}d-v{jz2E!&zMuE|e&6T!-uL(Ye8{LEZ$o`k zeEc3V^M?D1q*x2KX^axF>oTc*ocb+hL zR;?1fsx9>dK1$1-tUW!$7(Xxs@$v&7b4j16>sTy&P^GVep`i?f%foA^_S~AWj9HH@ zQCswFJdODxRTWP9xPtRqk=V>zxOzHuYLMf+BIj_+V+y9yA=+BDYJX=fEU@3ovzh#J z;vU8FWivCgaREJ?#bWvFH3w<+;z0LfI)86fi~6EtV%P%%c_qIh*Bnd@_ru{jw=g?} zNw1X|xJ~5A3z+RhBJpahQykbri1axODh|v!`&pP}D<)Jv4Cyn-vW@ETmONJ|cj)ko zBy;vT`D-7dTXPGCmTE?GxHLXuk2tn!>ItFp`8;>^PRh!26|L5O%mMBvrrJ?e)5>3> zlgeIQ4#81oOJ7Nn{gdZ_6v+-r6D&7c*MHcNPtsP_w@~jQ2j>p=9L&GgufJ7>0DK@@ ztETtQF-bX~H+|f%PR)34Ve~_8(%QCvgaJ})2quy?d8hPDwg?!4+a?13GaaX-jYE< z=UEsM5#60&3j4d$mKA!Rn*JY9FN@p~+%UpJ}=u$T3;jMf71ut72qQ<7%#fO@2Gv| zP@jgX5aQZBGGYR#iENyhp4J;YXD{Q(JuFt`aszV&3E3Fd_VS36Q(i+u11CCNTa)0| zpKx?_?QMzUHOcR5=%S*YYNjuEfCJywjCtYJ5bEhx-PzoUhSLOiY*NyJI*z$}VhsHmguX4p_TtZYL)v2k>pK zKdAVrU&m}%pri{Qp^YA)6&Ewp(o6u?(1@~_8uFDd8UFuO$G;1(i`X@lDl0K52}-?g z+{$EbxTN0t-UAmOugB-}SwyybU0m1NTDz`0)2$WoI3?kTg(BOoG21ys*bO18 zo5H6~zWmnVeV(By2%A#g`sO}=!NswFxWbG=hfXxv+K>m55eZoF$ulZ3mVY~;&0{s& zs5m*@+d}c7ws^z=Vzn;-b#uf~WSH6Q%JcWiF+8}ka3gY5m*OitwX2K?WhA%^3=84* z`T3$`lxj2xY-Rs+cXR>NsabU*o@w0bD-RSK(rp7+{YNFoNd(HW!x$Y*l@U@$9yYP0 z0sX^x^rE>|i~IF?pfQNk)pu(|OiQTzoCY;^_)(eN%TVrd+SRhMGD{+8(;3S)l=Zkq y9Ct%)e5dv%yE7sj@`x@S`@a9N^dHvOqdvC2@jdENI9KEF0AH^lWRvIVAN~ZUuJu&_ literal 3724 zcmd6qX*g7I`^Sxal%*mX*|QWfQdMKewm4h$Jq3SK0E@nRuoPUFcR$I-N?KwXJiEhm4nHw z7oT7gDkROpk0la3_|ljUI1G+@_&E8bA6ZEVnf>127XVA>>%*f=T%l2$Mg`)wGyB8& zN^LFCL%GrP?oUB7)2qXurt2S!_~T~VRkYbMnQx}#aBvyZ{C;@laIhj+#aPi0eZ1x- zy&-hPP9x+uET-;*>Mr!lYoqT=d2UIM+3pR>hUa(~?$RhN)C-0Bx>HR^Ck2DF_lN&X zHYaMFuDExzieH?*Mt}dkCt0AOP~BgPmc@!scTN>r2B8rb)WS>Is@mexJ_+EBJ%ZI8 zv8{*w1J3`&4P=Sme22*1>h!%boAstIGX{*UAtm>ppYks(cnnq~i8WJ#0nB#&dWU(pr@NP}an!u(dgzh|15o@m(m9MY(9`mj+?B>qfN zN=4~~0Zkoj4HV5x%bB7^h+L1_NwGAOAD$%rV*b`3rE~n3db1QP;^Ugt9!>YaSrol7 zNaRA4S|^Q*&fwZN`-G<|%!OBHTU2u8?RhwO&ZiWk4le2*{4Sk(ZFJ)3aJ>^b{V`j% zy5Z;NLh6I!ST9_^Xvo@(fbRq$RY2YjUPp*;cBuE7_K0ERDmqoIP^#@ma;XiaCK)q9 zF$x2RyE%0MI`M-R+fjIMGZy=tm0K90{3=`^V7m`Xp5LJ#C8MpmN_kPsy#% zG+U-JWGDsrvYg0Ju3}G#VY1`LbjAyL`y8A3Sh|b!(BzM2NzGb6F1x-cW z-lO6XD>colj>PcwIYf@$3*(o{o?IJpTghT5A>(I|^7{}~1glGH2zs&isbNnNxBK_* z#Jv_xO-)!8{Gy!I>x81SaWKN2t1sNjZl01BF81#QqyW>ug%>~fEc*CZ>~LSlPx%hV zO0^A+Crwy=*w6TYzFvGgbnsf|9uB^cm34JI_HYkGztVa5N4vkA=+?=z1OMui?gPq! zh&8jVZ=l@{?|ps^>1Kx%5{Cl&VEdIzy-D`d^MzW35Fedgj{27Mkq6D*BuW26^u3a9#~ z#fRnmjXC(7XsNq@;d!ZTf5Oadf>ZP5%WfUcmFuG=EY?n`we5QaPk7HM-}q=v!9~3Q zr0%PT40cxXrt@4Utg@>cL2$U7bC9{tGJ|APIwe;Hc5Ph?D|Pi}&^vu&j; zJTzraK1ltXHh49I_=`i8vao@l#f6H|Zxm|99mm+3E4scD`YT1T;>}7n8`HSEOfJ82 zw~I+5l*UhRZP%jRme_*%49Ee!$77r!%6+W_Ot2RAtOH)IAA6(~hk(%w{X4+(s6$2P zwlKxP+odknK4JLF^Qtgr<%v>58I{tL5$VZ0yu!Q2;}=>hxq zSwvI|BWAfg4;!<;wHN%+cH@bF{G*@sGd@<@DGKm{bdbC~ku^z3*jx8m!GKZlU5{+3 z(DM%XmX;O-kAit`I1|+ea_z)<5{m$Z&jIhe+p#q$Z~CAhxIZW09G_X#C$^O0A=l-VG^0Q_QijPVLwp*6tE3RMw0E#_`4{m60x~3>}YEB)`HPSS)v=-?vsGeZj$6$(h77 zhO@Mv9}K0GMSA@jE_%j3_-9E8dwj4`i^1$MLURGm3Ax5>8d)YvW?tvr5PWdNI`W)m zk~;8v352c^%zzP2;Y&zXO47`>N}?rqq+o`DrLJbIRjxV)Z;i1@i^lCaobdLD1dnG> z?%ron7f<1%HaUACXvh=cU293$?&7H@s?4hV>a_A3SX!?Xzb`97&TsryDwOinL~ep} z95##3J59x2c4|5apa7pIs9OJ%2xY8y{=@3Wv%}s+YQ5ILY84(S*5d_` z$hoHF)btQ+o|pH!jk)n=mgJjz{XE{}vedj-@IEkxf(gk5;(XTKt)VM-XBvDYd{}-1 zI(WCfkK+0Yq4WpJ`s6hy8t7&BM~4gNE>uCWvn&NFSPu^ z#M3C%)oZ{5JCVG|Vqg9rkN`k|QmSm-Hx}Nfs|8OIUCb;2#J!&(Ea9o4iq0fH+GH)S zz$N&jOSV;A(d+HF3Gs|PD%&wc?IE6MUui8ZqdEdiBl{4lqIKhjQC{0-l~J^2_BzzEBltI+mOO1tYCHjIl^=Q zxp%2&WNt$tx1UYcx-}aC!IA%&pIe2!z8j z8azt1^!8c_>fWS4YEm5|RTdL4%c3YJ1Q*c#yAVG>Ult%$1#vG!k>6TX{bos5_5C|h zj7$tlyQt`}SI})La0Lr+h2-@aB46;P7MQ{Yj=fI=0>3sP(?d`%@rFsAM_W&ehIzjv zaSN|%h+QGj=i}zHjHM1X<9T%h$~;ehPu3Y*5JcF`z=?*b z;De^Y8wn*P-selwoHoq%EAXxJws`6O>uW&qtL2p5=VxcLjOZQ`UexUA6uFbjOw+Gr zOF5t&iO!lDs3Q$nWx!vr`HtACny2QoopE~Ol{T_!V1Ue)zo+YQQlAyOSJG@u69F4? zA@(I9_|}U{8eI}%?^I8o@}*9iEokO`+D{DB|ef=Pp3)^bWH}r2oekro2YfGC6i1(t>kQvNDkLCH+FX2a@-yfk`FNP zU74t{gRey{-A8ebfsa(u^C(T-OG9~R?d)kzhl`abcK~?O*jVg)fabPQIu{fiOyT
k58K30IVQS`_xcVWU^34D2b^P;rLp_( zCKc`JKn$ez4Stce#IVv7K%uh=SIgty*SR$MPTDC+M$`$dEMlTYp(0Q$50*R>1sqtG z@qXC#MQp3iQafZlM9VDKA_@`+SjU@`%2IXTC8y{=_|YNGGV6s){adq6(y)n2@F8HU zt9Z^Z_zfPv%Ji2WHB5$EXNoHP5Jgl$Z8WmXwCZ9i(6v3s3z*1<>vOepZ8KJNmDhq~sGT`EhSw_feP?sq61)J{G7|Ec5?@*26oCW46FCyA*q^`CC7bZ6V9gYom7(99u(tgsypKZi)r& zEpdNNYzW diff --git a/docs/manual/images/orientation_event_t_0.png b/docs/manual/images/orientation_event_t_0.png index 311c270ce3c74b20b3df1e54de25128884f20fba..df5b6d3b1ff36d5228817c11dbf14e0832f4d06b 100644 GIT binary patch literal 1743 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 diff --git a/docs/manual/images/overlay_t_0.png b/docs/manual/images/overlay_t_0.png index 2e0b9789a5add85f1527339bc10cbfcb4108a385..221cdebf3e058bc0762dba32d422f3635bf0fef3 100644 GIT binary patch literal 1562 zcma)6Yd8}M7+x_&7M+Sh#3MzyO_aH;$#u3>Zb=8Z?r^Z?&N{6^#mpkAWwSz$BeOz^ zxgDb|mxwgYmP>Axxy)r2Wyd+sbIx;qoI2)FxLA-yK(nKF^1! zN6Hcmb94fW_If)CW!tY%j)wNfo{lS12NN-ZRcEwb)TIXAonO+xP#YV+)!Ew<$#TbuM? zG$@|Ue}<{*au8g`Ezbmmg~^Xc*GAG$h4hD;(;19-${lB#Px;lCFOfywMeTBz!mBe9 zW(VI{>Su$pMt5;OQIM&@+yDCbJsO)Q)a?&-h-Sj$-848ovM$F?x1m;&fM;nKXPn)* zIjj!;^o7c36U_Are&VX9e+)jxzfPhX) zZkquz16aIb^gyCF0aVtBdS4jW^5MA_2V5>Z*OBE@^Ev(Oo@<7}yG`EmM)X3jQS4~i z9y1q;ei#W2pNOn~7g+k*zu4YpC|2-f6wwp@V=!D>^`}#Y`Bc01r-s~EY~FI}!Qu%1 zm|@QjYE}A;2p!%0&24&imEWeB##knUuwI8^Dp+l8@>{oVH35Tj5)8PeIliSH3fgLb zi)&xfTUw6ic7!M@DvnW691nw?2qbd%a|q&D^1QVYNz;ZkIH)->IayItb0-0AF~WTF zn#)xYi^X$`AKmG6`tZsMWHy&>w~rs^n@J=F1O#kYU0s!|eZ>vxpGk8RkB{%;a=9l< zJxm~w43P+1!^ltY@w%V=b((+V%gWN0JUH;TAzVSv; zp3_T7NlBa^lSdvjt`{!P4z*x4ta0K)vC_^?MGFgyxz%M%2botgM_Wo>m;lWTHIcNS z7gJ|uXJ?&?dX6>taRdU&xKQYp$g{GtItqny78he91T!;?2buFlbCoAhsHpO%`8zct z_zpE2xmm0ZqdfS5JopjP>dFe>{0oqq1bA1X^?gDAQ}KU4@UhLrCncqypxKUm`eZ=5 z07m0*>VU^g=G_=Qo@lsP27y34nVH*oK{D4YbMKL+RAI!^HH21Bu<--6u7SX>VGwvc z-m70A=>KKOKT}}cv!^8LtixE1$q5{{iFLm;qI-eqQ;7$M0*MjX(dw9fgBCHzhEu#` z5rkly?eh*@!<(8@zg1b9gc(Fyhn-!Zp+~z~VDrB+tq6U}@`A`l^=eXWS9he&_S z{^9}lOpGg{g}fZ%z8x-!|hvq|q_P zs(hA?8iBEcKEX;#N-_Yy#tUR$M;&+g1Gf+HoT>3Lk&gVMxURq5eO(GjE!Q)8<&;*l Q9`*ni2b4X-?%b8%0lN4HfB*mh literal 4033 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
+9W~|c0370PiS5{YZ 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 Y>Lz7jbhI>I1#}BFgtwm;!{c(sA9PhUQvd(} literal 4291 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 diff --git a/docs/manual/images/pointer_event_t_0.png b/docs/manual/images/pointer_event_t_0.png index 081e0024d5b35fed3855fa296e5b427f31daad58..a198e57d58c9bbdc5cbb56b2308ddc6c0e7604c9 100644 GIT binary patch literal 1680 zcmcJQ`BTzq9LL>qt@S9I%uHN0k95`qH#5^bQZZw7y-HU?GLJMb%KJcVb<6umU5`w$ z(uqtH^FU0+X`)C)STjXILP5m?Vo(7SkNs}_1NFns^Ljp?nfGTt&-Iz-dGb8nT~rh` z73JjQRA3jO-hl50dfk2nz)IjtG{7kYxw=5*cK>S+`?2MK;0%L0Tu!bPOxs7QA+&Nt zZ2wl~4Sm0;M|azc97*0Ulx~;?aoU%nJ4Mbqo+-(-*K~FJw}o408e1h3H`u(<41FHX_@iw~JDlWaiag_Ly;FqDfLz zLc+LIP4l?269Ntg!j2K$v3uc%EJMDJBxiXC&n3}vF5!4H-rfmLT8yY%N6eLJd&p{A zxXxau#nYo)ZgX@gJD!)?XC3J_?V#!gwb*%6tgmH@i9ab!4(Aoy<@uAoL`ir9)4muk zx#LdVnX6kG3pg*6qzdw1=%PHPczH0wKfP$O(v5klFML>#(wT3VrK?#R*hLTEO&49@RRG@$7bWKXhN;xz^zF@YD#msN{Y%ffES-JHxFs(_Gx%uD9;jCc)}#K6 zdB+-$#(bS~(3bY}*kl~-6;Me5ASDVI76>G=%l`Jx2F6=oRjPF-@P?9-Qljvqt!#C^ zpdT%zO8?f(B)H-S25x%P+jXJ3BYD)i4yB`DKaFf6c6>hx*=~9B<7D?ub_-Kbb03bQ zcXV}GfRq(5VNXg3uIky3kbTLc)LN_H&`=hNp0TwN2m*n=2G>{U5VVMMSDe~EKz6UQ zzFq|hXl0$VOMp%rrizy<1OmZS5yxDZXN^&6fR(PU@jTGmo8nAU7@w4PI8nUpgFj)Y|EbIdEum!Twyn@{Ms^u% z3%@fbC)r#W2V7Z=O>g$%QPB|4&AM{-BI4gJOm=Jy;gAbbbSt1caK)_ip;VE=Q7V#$gkP>VOEb57O3XD4^ukki=^`!kxAv28>lCQ@L#3C(+ZAWBM&ut5BcVCnt z@oMsf=tso(A*n_{bM?x~v(~pMXIYhnIQ20}PB@Qp>Ag}-;}IO+$4r=j6;u=y|8aSo z9QQIdET!9E*b3(HXX6@|+Ym6<7!0G2SP#JC;zeK>X62<8u29B{&B&QgLzG?5>Yxs8 zR=J_8-iQg#tR*Q7NSPN~Eo^iM`4Y zN_kcXAKvS9H{yJXw+;=(_x1UIER@T+^4ymr(&ZSbJX|_}M!f@Gq_1oq6h&imUu>H5 QfiFf5=Ijn_b-b4KFG!|bX8-^I literal 4401 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 diff --git a/docs/manual/images/popup_t_0.png b/docs/manual/images/popup_t_0.png index 6095cdc51963cd273c414aec998f59544b1f957a..f2dda08c85981cdab584326029c6ee660da9ebd4 100644 GIT binary patch literal 1477 zcmeAS@N?(olHy`uVBq!ia0vp^g+M%)gAGVF|Cp``q}Y|gW!U_%O^81uvU4x zIEGZrc{|tM`*(~)+x$JZny$DO76>{P6c&k;yn3*#BScqJe1Bt|Pc7wbLQBboLYQNSSt9iiEprn|L6Jd z7(AW_C^1aoU{GZ;h=~92>64PRwe_dZpBF33U20mpRyQ&#>R0f!3&QKyt$Xs}gTaOc z9o0rNd)Cfwo0l=sZ~0UAN*xhZ5)2kLG zN{GB~Fzbw)AIbMhGJU`P6a~FK^ImoykvyKBb0?^J>CLZV*?YIH3$4}9wZ6Lg{_@%1 zvaVnKKCjG;asTaXx8p)W?h_m zc;($j>#v{uUM*DdlKt*7asS?nFW2VIdm)matl3M1q=i=wi-pdzm`hVGTWI^jrU$3T~)z4Mge9gZVo$F+P1+xPlW?#JP z+V$(%CEJbOy?>utRTb6N)>hJf$#ABRn^32VbEUI?kK1CQ{^QJ?UZzWfJmuu&pT2wN zSFW*d!?tZ{?~k#hm6u-^5iBk$y0j*2^{&H#Y;Wd7tPNA0>v#IpsV*CP`_pI7_P(1i zh4FXAv9DjZigdf~+_7WA^5yEDYLho@*s#D_NATMZGB#HJSP|3L*Z1W2 z@96RfuZAfRD??OfpZ%9s1Qfq_@7|M7pMr{0vKpq$IRAWUh}PeTwzfE`1x~i(axB|zJ)qslZ$rhq^GCPQVM3D zb0kJjeX5u1wQJY@P3iCN_coDgl?i&NvMfk5GA3rq#*G`>N;_Sg&YeI1^zmb7=ag3s zlYadBr}wia&dkg#=Q=Qvb|p#_)zruoq+~Vjx_LfrbI{6=l!}TQAIp?PxK7@?H!mkY zpIv6I)dH1$`}TF6_;0&TlAoX7u|-&-Ewk+5{+}fdD?@&Lt}H1D`S$(0s#y2mX|76w zob87l+n4dIn5Us+WMp(HK&;ax=X79$SI#d{;?g|9Oo6H(=KtiEZ{My3M$goZ8jAxo zJTycu$+oGpv9YC8Rz|Y1$7&S)_VX2dDDM@l{|#aP4xdyxXhSKHql6x904MyZiQ; zZ@WA%e2V85zrI8XUiI_uj%;7`c-!78&9$fQyt#dL==z)sZ{NOjd3mZO3z=*G{++Lj=4x%yHgD_v@-}1sA*Ax_A7kUyl-m!OjywRC%M6~b KelF{r5}E*g^o+d# literal 3705 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 literal 4957 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

>i>*u3#; z>L-e7h3mz>J=em3)UhFIs4$}E!m!7 z3%;L3epwRFu9X^=O~q$JulgGV?j<}^_m!U18ga8p)~K1Jq1-Y&+5ASDp(efvqFI%F!!O4{&$|wbK zgNK77m9hD>p3sEo6fgPc^(uU&fdlbEuX%1xhZ!o{vrRz2mvK%r$8b3Fv2xm#6a=jm zZhz}omKM=-NnO}M`QKmX>^KKir1479>}<30fG?H0v%`pzA<|K!jf!rF%2gTq_JLw2 z0dCmCm|c%H{CO>kGu{K90hlT^T$3QuaiG3j%l8Hz4_KA9E-kY$K$RAb6NWjN|8Ig_) diff --git a/docs/manual/images/progress_circle_t_0.png b/docs/manual/images/progress_circle_t_0.png index e69593d6de0c7b6d85e97a71dadbe2f5c18d7d13..8e0917f13f6690e072a45b3293dfde79451c48f7 100644 GIT binary patch literal 1772 zcmb7FX;ji#6vwH|C9}*l_pQ>@HYu^w1g4Owjirv|f|xccO$M1lC5mOEqEzOd3zaw? zDh(t{DkUr}HId9rR8k}wj0DTV1s9lqGjrzDhnZ&1JMZ0h-o5X>dw+L%S^NCF^mI&h zKp>Ew_ilIqKs$g*(b5D~Q|EL20MU%{^@4-cpT|`;Egv|j@P_aF@npGtaK{nDF!R=N zHIgAf+Xcr}q(@a+2Rq_5ZX%L{dxs>UN=s*i@T{9A1PXs{yW5o6#q0IZa?nciX(Am- z#Mo5kx0mz_W#!xwE)lkDL)nhYN$c+5UbnfxVA#s%4homyO~9_Bqobl&gs{Kh z923(l>cR*gSR|RWWlYWLTO)V4^J&uG?|sc!nJC4A z_gOIGDjc%4YCK6*X*blCk%4Mr#d~Y*SLcI4{;?`ePPS}2ZFCTp0!_hmPdg?UpYOm1 zmTa6ws?eJ{{X3_U!@>E?U$@8N7q>xqV~tXA;vN%zdC-%4Q4XPph~ZFtjPMgqj~03P zF20spxt|h`-1`eS-^-}(yjL+*ov~|`+@+2gxA>@*QEI%YBx}^L9rx2UFdbc^%gUcG zliK;J3aZ~ef>q1L3Pzu}&zxl5QRVG zwlY5M$>CMjrAj+rEd&jThD2#!m2T=GC#0?Sat5E)nj0?t58(WT8kIMfO*C(v6u0Jd zbzD1&!@V5hq+&Dmt(LM4-z3@=Jv`WzwU5h1afnB)pvgesu!KpOHoJU4^X!?<&dzjH zhOz&n2+cdY@>b)An>4~gLYUPD7y}cde9w*Aso|p1Dg>(WWTcam6JEkKX&_9|=VvCI z6nPhSIY;}>#JnG3*Nr^8l8G{KAyuvE<@4o3Y=Y~mC9<|$J0NK`lf`a| zTc7WY%lg5y)8mzTnhU^Sv!$8!wY3Mu<8B|GUbHPLB8mGhSivxh^)0v52~XrgQ&n-k zzP@J;WEe7UH?gonnW#C_)qJTs8KYLs<3GOfZb%sMYbvxM2Zs)~=iArU*T;IHu6 z)nNvTeH_XmOkvD&T0i>(D8!t^wb>Rm4K*22y2Z!(P9wH;MbuTQzPR5oZNG610>z#f2)muESmqt7*N2#p%D=*uN=#M z02j}iSP45>+0Etds`MW&X_nMIeWZfT43ZqamVe6)~sLqJjBrcG%9e)6ZUH{9QSMS{Ct7e0a8 z4~RaVJ$#9wD{?$k7!PF$S{^4;PO)BZon#LlegfGMVF@c(2uGzln7n>e*zf~7n`Pyb z;js#>LyP=I1ipybN>#QBz2)cQ7Vb_3@~N_@ZHaF$mXw6wJr+5-f8lK)LlcNlpXt$c h?(ykIzUbUkwT7(Pj<2lNhz7ndkT=2)PWL#N_B(JmN@@TA literal 5327 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 diff --git a/docs/manual/images/prop_change_event_t_0.png b/docs/manual/images/prop_change_event_t_0.png index 15528114b58ca4d624fec5f2e0e5ee9ed5d83847..63ebe1094fca8ec080f1bb80dc0c03e5cc66b560 100644 GIT binary patch literal 1793 zcmbVNdr;C@6sBz}D>KW?^07X$nV!-{rDYnHXja;~nV1FcN@BhjQ`7`|sg-G^jTsT5 zm1UYDrpPG$EDI}8$rK5c5K*Z_kdTKWy6o=kZh!66&Yg45%(?fRbI-Z=`|hQm0(=)O zuwDQHffo7g_5RtYMMfc+%r(wiqN?^A)!gv?zTTjjKSs%u2iJ`TnxD5VlOW*G8&hr&e|E8>55_C9+5*Ovi2E7%Xl1xsu-; z%577_>GTAZk5+?qgCCWO)(8KfpE|kOYv-P6MKi< zI#B*;?wsR^BvFwXf$wspIN2V)dZ9T4J9o`OpJ1ABb!vnp?@HUBG8YFgle<7gd5F^|Qrd;u+3mPML!4341*3 zEFJfHSHY~c__Hc@M|Prc!>;Q7#f{^f)wD3XgziU zrxT3QJWh@8MPwH_`^g4hUq_>{^1kiqWBq68PMQ71l?>dS-Vp0_E>kpDW`6E0EceNu(TuBfL5$T@?FC{l2+)obYl6IYbKj0Qz zlm*J9ppgJBDh$9;;~Qeo=qE@{FdQDYX~o6$=fN#-2*$QIYoV2_`{5xpx@QzS+S`yo zqf#BKO#zdzys4>)uAZKrN4yb3lsjf16VaIT5bI8Jz}0`AnmF0Z=TmK5<7H6_^(h(v z#P7xQ#jB;SsHm4R zR^j>$9x>Tt+!tLB4sOhGYRWL2k}HX>34+$vY`kGIxwX(SNHUXl1hEsRdt+v|<9LDy zX!pn%e6_^JbS|y2F}fjMcngzk;-!loFzB_K5gxb+H<1|Cyx88et=#EAjxn@GqbU}) zb($6-&^;e5%=~?I(RaAfM=H6KDwX*8h4$PU?n)b%uYLIc4=!JN@wH@>TrL+pj^r5O zyYAE3yY21%5XgvDKd^68hf?x#bbxtTFEFCNAnCb4a0}6djYDV6^1pV8K;Vz!A)=0s zfWSylv9ZrXLqmP2KGip3_us>Sq03;)Vfl@w-L~R|PvNm`xo$qNhK!%tJSvfbsAZngMYUiX7-_SGEUNnIUT zl%%JR$nJbnvVxWZoy^w&RE4bh2;3#BbXT@kQz{vvjiKl0w|QmlQp})wWuEvbaWPrC zN?j|QaiMBUf>ybXG=amqzf`OE&mJW@OTJfc8EHeph>-ctmsI$>qAx%NwVNk;%uin#XZzSEI=Pu3)?XGN361NOJZPG zqf2#keee9Ih_chi$xM;Yu$Zw=a^pq$Ro3*Y>NhW}5Ek|-ufK`v>*#mh#bp`y%0&uJ ztyw>G9lH}4OWt7zfgBADy@iB9&)0=k^=a0Ky9j4m;^Y&cFPMC0mPsqhwOgIuZ2Z$e Ney{-V>fOJb`yEy*gwOy0 literal 5145 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�!Q(VmWOOak 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 diff --git a/docs/manual/images/row_t_0.png b/docs/manual/images/row_t_0.png index fc1cad0809af4145fe3f5dcbaa34ce2c0fb926e3..aaa77efbf2267d318663553f52d69c1b393e3a00 100644 GIT binary patch literal 1462 zcmeAS@N?(olHy`uVBq!ia0vp^g+M%)gAGVF|Cp``q}Y|gW!U_%O^81ux5L@ zIEGZrc{|tE`*4gz+x$IIuCEqZ?C4O~VPV<1Aei0Ub;;GB!jJMV^b5r?N4eyaFW%d%CHZHXK&Gyic~ zFCGz1yESQ>=zF&hr3WX%%0vhd-HnLbxc zdLQL-_$<1dKJ9PSv72v&kM;|%PdA!)Bl&la@A512GgsvpexLpO*4J{QZL#*R4Xq{D z*UdMr{&!yM!MBRFFQOJ%W`1qFnt$DY)y~{+nXOqq>VHEfy-C_~?CCL;-L`SsPCMtU zsw>>B^M0AU*TO5MYF#F2i|<}v;3&B4kZ9*#2MIrw^&C%&RziqNn!-`I(1l_xL@5!f6Mh{NxVGK&z7%|0b>8I$EzP`RE|NPmr zl9C>6*PZHh^5x5wHMO;@5;M&Yc>ekGXNuFp3njra{l}L^ ztvz+~W~9T!O7=NNoE9qVTIa1aF(X4>UVeIn4%^Nphdj@u7;W0JMI|{o+4pzQ$|-Z^ z&p!?HI|ER|lp{dbX^M4k+PHDyo&DRksm)q;^5e&i=O-J6$_pZ{BCZn=Xe&?TZ1{~N6n<>%+GYk4d^E3xH6vR!Pz$`Gk-?(XiX_4V;>)*h zVW*yMx_!9Jb!EsTVC=e_m8gZ{=41WwPn58`pJ`p!=K-o{PfF% z2M#=kA9#Nh5?mR!dfhqm^`txD2IH({tg=qt8iEZ0f8u#Q`4~p*g_AgvZ&$H{1H;tYxNeHs{TLeB-O(ck52?(m5LhS3TYGZ=;>|s?HKE z)~NxWCCybEmsPwrlPVDUuVkwnxV40BW@KX2G3US=SMG z*X2zzT%CSuOD^wQrL;o&kjh!F^E%6q$Pp@3kV_r^dpFNNEn4{V_o8~nvjsnQHXl6b zc(L^ES;dDMQ@xDL&7a?@Sm&+s?{GFEFaF_fJJ#^eM`v9cupnmeboFyt=akR{0IWcQ A=Kufz literal 3445 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 diff --git a/docs/manual/images/scroll_bar_t_0.png b/docs/manual/images/scroll_bar_t_0.png index 22310f566d12131f017cb168740b5f947a971664..cf5f55b694a10097c41cad19f2d3e1f93f9c89f2 100644 GIT binary patch literal 1666 zcmb7F3s4ev9JX_6=Oc2}N_>!yQC72j%`~NRQz=a}v z$gHqbT7W2;aA#-Y11U}L1yo{a3eFd%2@ZGL?XF$h?f&=s|L(rK|98Lp?)QEFt0!Pk zBYmL0mX?;$(IZ{~nqH!*@{PKho5CBe(=^?Seo!y1we@qSl~SYuT#kBqo=Pv1i}-$9 zGt4?>mvGC#EVw=ZZgaEwhxbh<@eT>*Qq2Bt+^sL^)nLEow=7FM6#Hyymlqe+>sl zoeK%^MFk}~9X?#yMQ8%AvlMW5LJ`-k9k|9O(j3F&zsNsi#FTEO8)&Km zPj$!xx3)Ts+tHLo!#n*LeFu)j_zfhy4Y* z6fM~Mb};~$>{3($ui&*2ctB59cO=65I`Ku`#oe&mo)p@hk_oq|EA^&`L9u`;l&Uf{VW8+b-s0T%u4Y!GPM$ zIX#}W1GMq+@w`J%eD7Z*5{b;#*78|y?$2DaxcK;B`q0y+E#$H?M!-WvL&!H{q;1+H z*BarJ^22O|DG0QC42wFg6x3GC0VMMznh( zj5ToGKx{B8l+9RGh+4jNc5b)r-$3$S=UbQzG&MDy!qkP-4|f!TWf9q=)DW_ToTFnTxcjG=yBM6 z_vW`dX%K>HB@(&DKdYKnC?43CwY}ZXwRR%&{3H@qN{5(@N73o@?cF|5sQmdg(-=Vg zfnPeUM%nn5sG*68=-0_#jJ1J2=Zepm<$u6fwei#b{=jqL;fX(HAcnzU*y0rb zKcnFj_kMODR@HK$!h_%P0na(EYNl?Fs(hxl9jhwo#7WYyG`KKD6eUKpYffc@9T2;o z^hYl3ZCk?6yYK&PV49Y&^zeZsW?yGuS#I}^%LRUeZgw5*Xm`7htp#3I2D!Fzz*Kmn zdDtto|A{h;0WUJ2+8tWxceD4%K!;!I8<293VTgDJV1g!DC~c&+PPgr!n_sF><4%5g zwGRIxv-p`maQo}vqjBIo$CNh?LX_~XuT;^ucs`4lp2Re6Xm!uV-?B%VobCHqEP|Kn z@Dr#Mfzs_{+HuiHN{MlsAPvqxEo;Yc;&sf6dJR_Z*n`nfbLNcA*Qx%+3oA)XlLqP( z^9H0T$!;2cDQ7F4fqf_Ao&EO|{D+QL2oB7b(f3?88UEx`ePKMA6@@vD(5$VCBb~)^ vRn;6w1cSlYVhlk{VCZQRQGcf_YfURN=A_U^NS@JrDq2UqVP4el&S(A(sV_XD literal 4511 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 W8Wwuu@EiE!LZq)_tX;49JoY~|3z%U5 diff --git a/docs/manual/images/scroll_view_t_0.png b/docs/manual/images/scroll_view_t_0.png index 53f84021d601b0ab07e4440b5a0e781255606298..b4e30591f53d54bf7a318cbf9653cba76c5e104b 100644 GIT binary patch literal 1698 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 diff --git a/docs/manual/images/self_layouter_menu_t_0.png b/docs/manual/images/self_layouter_menu_t_0.png index 895f79e462d48308f50584a2e63d4e5bf77e357b..0e9f6ce2e39a85e45f1222bf22decc7dfadcbd35 100644 GIT binary patch literal 2027 zcmbW2dobJS8pqQblx|&)mZO&HRcYN*chagNO+~Q{8lTN=Y5`c<~yI~-bJ{_ z9@YJ-AP{H|)YHuu&_!UE?@|IzpDYv@5T#IzGsjsyZJS3=#+{BW~uS-^_X zO8>t1!#ZILk>7S)EjZ_Ro1Hx(Q9OHc=(?xTmQLBHyo-@3eioOIXS(K&sWm#N?9(jU zdmnb`aw3Eq_e7+oZ{5!;!6nETHJn z(6whL_x#AITOl3!pj~ezHCeMiMyi~4@xPF=1M4Gz%2%DDN)|#)30}sjoW2+7LpkDp zNtn+}_5;|uwBch@1gJ4=F5W3eY-~MRl~)`$m<2v@AIE#MP3SF_eR^WSbLqqpRxli< zrx2Z@Tey;%OMj%VH8wv;F_O6Yxc?GnqvGS8!UOB$4<)bXVz)%`nc>obqm{T-DY^hp zBT7!@F2GAtu4H>9g}FnnX#02$d{ih-dPXegTxOC}@MOC;elgy$Pm5RDLLRKGFfK7l z@_5Q)Q6CsmH6)klTkCE4L>c%;a2*q;4#{E1;|_`E@BJLpeop-c+vy~GGBV&mlZ^9X zEWC`fBuXgb43o`D@*nF@U6mIab49oHTc)x6xzA~1N4x8V5Bw0imUo*_U|#TEzo6XL zdDmBJ{s|WE*TNpGF(|;*3waHSR>OAL?w-!|lhCSYL~rpaV?$#8&beKGSu)dpKqn=Q z*x1;(+Em3)x2Hx%a-TFG_8?|qRGn0`hxjdVe3>k{UVP%Y0K*3|5*r!WYZk=NXtRIh zOC3YwaQ2=8r~|p8hEj=a!AuC4Da-%qBgqzdb;ns9|F{!CLUdO^(w7FSJ(7j&eey4x zw07Luu|(3W3aY|alZs-|%~2iWoI>;E`QE(ISexacXRxYLMRf)V;YOQyxhCTBTN6YL zAyhu#16ejtq|NR)NXdZLg-Ilm(d*#;rPZ^i;~gCx>8-7;kdfuf zfq_2@1i`7>UvQO=yL4Rlw+;+=NfI3pvx_;LsUXdJBbO%1qnBFG&2UA;9Mf-nkFP9B!Ar|FmY=O1xRJouBh&gw5{lf^wpws)2wvJgM}-u8;bH@n)%BL z>5#N94CkBgI}r$ktYv`9<-hw^cAWrx^L05mzL%)4H*N!gRJ7`2=ejh%F%^G3KYw~t zX@pGAPK2VY$5aX^}VFzws`+0tB(e zO#Pa7&EbZTKp;3}O#^$$Q9CWpkjZ43WQ=-y`R{V*H*hJ;^j98&KHP#ZZ^7JFx5KAx zG3}i-eRp5#L(47jIw(ai8Izx?Ibx1`#rl}kNi1x+nw4WErD z^>1IfXiEv>j6@XI#5_i6*5R00Z*~0>t1tl)zPjm?=wV`QW;Txmr-jQ0zlwa=`+H!X zG$p&ZwsF>~9Z#`P!O8f4*|bfvh(S(RVx0{Hcz5ULH1;BznTOS-Q#l)t7Ck~zZoUyiI~{<}l|G@1pJD2ZHL}%#TXi4E*d3 zc-Lo+d=@kN?>P%jaXM5NOs8`Jc!i4ofS2L_!z-o?AT)l%>OABlJJFc>E2H&>J_~yj zN%}m+x`1<0zBYyLMdwQ7!G#*tk8Rt}XD(`K8=?#LOgS$1lUdj9~aH-t9 literal 5807 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 wG^Xl)ClHTb?x9PTe^D5FVmm-_teV3O}Z`;?_!^ z%|5XjSJ76cd{e8?7zSCqN{9S{{IL^Syx){hwmzJ1ycaaoH0wQ~o=Q!t0~tM5&Q#Sf zltFMxj`qn*uOo+>H#D!d6$%<&M!snb8jghEcC5oZea>iX47=23h|`UNBashZy?WJy zy1>iId&;dD5f6!mSZ<_?6tgT>(mUABgF2;a(pPF}>o~i^LE1q|?tia;n`XR>eUK|$IXi5GO_d8C>dTORGDSKZfO-CQpEoM+`(oIsEFO>yQ*1e8NN2zEjJ2j&JNqT-}v0-eREPC_MjV(^Dq`mbL zNgUyuf@82h#u&Hb`8f}GA}3&HS}=NECc((Rj9!Xk`wy|s2TsInADEIvBquxKbOYSg zMplRC7(<0UWo}F+6YWzQ&@eSvd&NR6#ecN0!X@C*g&+(DgP#{7*n|c8vP`lQ2Yqg6 zuDQ0O-oOserTeqd;oA z=zCkHRGKh_XZsbmMvbOvUU38PHK%kLsz=TSwj|Zlyh|d*_PEJP9{lec1}z;Us*n+3hS z`Ti|QO=FX}9&lyC+}JhZH^s15iKD+@8Yl?s)9FTlVTnYtE1un}ZR{ipZ#T`2Kk#@h zoYq(GMVlL+DRv-mbE5WXZ(K~x{Hqd;%>Oqg=GHO zJ*vnT!UIw7QmOU{F*uj}xp!@so^TgOLn~7@EA({{Ha0fgWLDR1W#8S`e`n)9=f~;} z{)afjli=lM>i({Gk4daKfr7A)MfrUN4$u1*ZP3jMssh%{6nYl*J2H%+CqA#JN@VmC zV_+D<(0$hQa)j*A8BgN1k_;u-C|0k)8=r5i5TH{-#v9}{w6cJ zp>rTFg?f*QK_J-G)?+mChu?~#C-q6BI{TPkVUvS90CmmODarh3~Zd!GZCqL zFv8~uo^Uwj?lMJGB*a%&`;Hh_+GyTO#9FTLS=Gcu^wa4Hjh4!0@-ncU3o+7@KaF2T zb|k#dCgoLBxfS-S!CIX)FDLU7*y!UUJhyX)4PYm5NvgR;q;v49uDEMq9@~(-B#v7D z^6e1fWa7OD)`W^{3#C?Qo=1<&1^^Y%Q}- z?%RaL3y1fVVu3&YU%xE%)*bsdt)8s;B`lpWmuzf)<<~7XRu8f_?)IuRDs4MJy*?*3 n8$G{5DQhS4!OunlIGIQ>s#bkRm17S9O%4S0@N%cSo=y7`ume({ literal 5040 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 diff --git a/docs/manual/images/slide_menu_t_0.png b/docs/manual/images/slide_menu_t_0.png index d14ebe588fc4465ddfa366bb65295e4cedc5aa44..3a58d89318e178ca0f152ce2beec33cb1a6aef12 100644 GIT binary patch literal 1686 zcma)72{7AP7}sejmg;W1u4Y{AG+mT7jv&Q4T5DZ(#udsqN*WoAb%eI4W1E(0C`!>1 zM^&^@bz~D&-HMG{BZ!1J>iA3J7=kph>2$W+na*@~-n{qCeBb-tH}Cho-|zi?(b-O3 zR#jF)LPFmD7h5;6Ef&uQ(o*8Jrf=ej*hmFC*x5?#eH<0!8l2eSU~g;Xkxm%PohCkAbZ}-*vtP8Y&ak05E$zI2l}*bdTzdAj zhN7yHPUfgU-qLNDW?o2|v*1tSc}ho@=9Bm*5*OM?MUjUygDzhmw4@xozGfG4=QxD= zy~>=(lQ%8k^R`wwHZThdFP^N8w~x;=W((SZuUX#1CS$?}%FNw)QZ|>HeKXEM*NdMZ zQK*JmgeHD|e%^Yk%T#49TQ0^{%2X>IlxLMg)%bk!SMFma)HID%^8+TgoI-pgt$r?& zR4JhnML9999V4ajRL|rfao|+rD~s83FP@H3)QcrHn~WOV^?AYd)o&j#WCG;VW&$|_ z>^m}9t3Z$V9ycL)xp{R;P!-?7Bj8R%mH3Qeu~efsi>>R~8a(cgOO7DD*)nB@uIXP% zp63F!t(U?eO(RXkfXkG$Hrefhmt?3kS-bx=2lD=+BJ{{@Vi}TU63#{49_|krvZ(~p zD&WKPfJsRkzWn&23<+3%t-G{#h5~a;aK34{3AlF$FeY$iQQei*G6J+Yo)~i5R(zl(*p#5p}f)`;_g~&Zx=O zpoM{QzIlFLv+rr7q3XJj8cy8VNvvl8%dDf1SW(Oxm+~uU^Z@^2jB7nzHZdw~RW~_O z51gxJPVCNAXVUB8Tw0+%e$Vqcak^9&-*IhkVq)Sxt1Y&ha#a`!gTW|S9xBNn%#tAYwP8#tgNkNx{k~7`a@dB zE+LULvj;i!$Yyt%ejw$_#>NH+;;up5=LLtOf`U5r5bbZ{{VIo^G8zM!1Lcvnc_rlQbjCKn&bGnr8aqd|O$jPI06(Qrpc$1xn(Wu-Iy zpkyxLV{)##W$((KicXIhPOP$X=$g{p{^v}t`&8f`2}5NTDUnz#7EC({26HFdV$Uly zK#F>#itgWE_A@p$RUv`aOxCjgiy)u7|G((;#qKuBwFA7xMQQ*gIikC}+v1J842eWC zK6{pfQN|m>V3=h~`Wb_!Gr_U328ITdZPjH!Boqu)y`mJatga6B_HNgNf%GaG0IevsS9hm7BpfM(59q1o<@1Fr(fm zN-D0eHkwAC)eG*pDY(No4uuzny|1rq<>8#!I6~_TfjZ;-2m$W%iEH7s6G34e1XT5S z86c`IV9ee<(Gm+$2iivCg~@6P0mGC`7J8CvZ;9IyReO%tJ5*r5C5~Sq+rQH@=2h=G zXL3f$x8a`nsZ-`t@|;{;N{YvahwonXP=+xG2*6MA#)p2z*Cyb9)mNY(mx3MxRfKDZ QKN<=9^Uk&e>q}{W1CF&|W&i*H literal 4464 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 t7A7orfXFa4CBP5h1hSz*f}G%%0A1njhISzO@Bb7$ZFK{+I+Yhu{{sN>br1jm diff --git a/docs/manual/images/slide_view_t_0.png b/docs/manual/images/slide_view_t_0.png index 0cf388ccbf0899c6382b62b831306d959e369eef..a327509761a32709b82f13089b7ab57c92eda008 100644 GIT binary patch literal 1688 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 diff --git a/docs/manual/images/slider_t_0.png b/docs/manual/images/slider_t_0.png index bc8903acae363682931db3681f72d35e392c15ef..e4f0eeb48b7aab72175f4f128a1b87d146713055 100644 GIT binary patch literal 1533 zcmb7EX;2af6vnc)b=M{}P0P#>O^no4i^^O&FfK(a%)GFW6qWT_uhhVFwWu@`5iuyO zlpxcz%oI%v4-A!T*F5kjkBHDUbXhT1T$`Pp=||J-&YSnXZ{ECl^X7XqAI%es(AC+f z0{{SYQAqgFWsF`<&YIQBHC@dFFT-jA1_1{weTt$6E*$_^RfU2dz$LP$*e;lrnDvc95U8A`8ydu@(tX;K-K~A2`VTJ)scs5x;F#lo6*{-`dUSBfaa&j#H6I$ z&Q5n;uVU}$R@nVVkE}2l%*X(Ql}Mr33Iu{Dt6bT1iHs2eVfBHS;xil9$*;%my+@W6 zt^ruC*iQp^0s(nnr6fAZIJ5kiup7!E8Lw`U7P%8@B#;HwCZGW0< z;y%QO^2woQk!A}#Dl|x{3Wss&O5ZEhA(BXbs&p*wW(chl6|P&Ric{R)6$o93J-9O% zx`@l2B#^I&vrzHL^;qpHHeVAZfJ~Qcd48BDb6Y=uJuAL3E*p?S6Xg)s}-gi4`OnS@GGEjYV{aFmA|SF2APBMxhAt2_Zg zSNk#&_i65(C6nE5c3Trs8T5kA;M393M-C$pJKB!&^4M&)NGiRSDXL$I9#tsr=AkWp z0s_3u0)2e+g!V)#bwnnrU-dq?(bF2aysWr*t5iz!v<69~(yGeJH$TS?YgsDi=Y8NB z$z$x`@bE{y>`3EMlP2n{{9H`!UsEcP=)&aWBobn@5cb`9p@Y5s>jctuEd~t;6bgm; zkD_*$kr7&9L9^b)|KX=!{`6P6O*0;))xPf8+1a=86^aXO2Ib}Dp!GWPwL(MSRZ)$d zkG`H_j$>wOS^#`@BUMvYQQ`Mw`nOyf16=~HSzOocwwIGHk$7O7d;iCEYwF=b``GjA z5>u9dbH~B>eJ(Fdm+V|vuam6`OZ$7Y6SiBBX8yVZI%mfn5Aom5o$_Xf77~nGD;#fK zt5Q6ypi`zM)HM^0s(xmCetu(fbgDaOZ(_vo6*k^p0KvtguwKI& zsZ2#qupu;jbaqeVcA~hO34)?mS*Y+p22$`|`Rg9RQ~8H2VF%bZZVV>wzs1&*G>Up g;yJ|Y&wOu5%c?KSh=o-KE&DkD<%)%uA3T}%H_m{t`2YX_ literal 3795 zcmb`KXEYpKx5xD|T7n_Egc#9@IvFi`FJYKOofv}XM6Ze734_slH_=hWhB32Y@&Vf#{eBixFF;6qOCA zVF|ra_#FlnY9b5)-@UIf^u&ZFn!FS-ckZ}Bj(fR>?ov>!8gg5V6s-`(5PAB2x3<2W zu(S8Yb}wbim&?oycOR5=c9!?lALjTkO+OS0mozU5_k?OzJ!PfgH)rx8Asu~y9tlLq z`=9a(!y4b+{JpexYyCo17(Ob}mC*U-VAqX>Hj2T1BA3!Zr6KF*%GJp_t>o6611$9R zuZ(Hk^Nb`;`CSc@XZ|z2jfl}o9i+(lq~h(>!i?N#MUo$gvDR;WJzXDjTE(+WNh-K} zbyfNd9kd(c`xFx=qoAKfrsbF z#^-1`5A3u1K68J&AXEWEzu4@k(g^4M*N0CxO9>lvrk7Q%pv0g+0g;;J8TQQBIE~50q}bxkyUIrYJ&nd%tB(QS>e`mIlOd-uNYIimHkj`g zL(b)WR-vD#eX!8-7$@3uRg5aQ=YKXXQ>7A3>;3oF9NPk&!WDPwyAa$aGtrS?eS3t{ zT)keh!f$?Ib9C=l#b4i_iTq9CctRmDTWQp1As=wgP3^C*)E#_%agN(AVB<`oV?L#2 zmt9FI`x}4FDdqG&bzn6T+u^lcKF*W!RY>#tD0vJdr1PyC7JicV#Mg7N)de?}{aA=f z1sBZ~B6c2ng9FJpeUDMAat+Q7y-HTRu`yDhW0B||zf|9vESQu~?F{NYYF%_)j{^#J z`fpFj{=P{X(pW0QApK_(X`OSO`Y^mF zAXTVF`7PP`Uc;v;|Lr^t=h@n#=Pgd(E)Etclaz6%n|hPJ0e~r_g=ee>Q*L)Z7HJ)l zy&SM7Tn%d~fAm>&YWaA8**Xj7{G;82H?Bgkp*!tMGM9l~j^us946(`ky4ezuWHhX* z#AMWkBN>9I*6Uw;8dFBEPB(@{M&m_$vII;jZ8jo;5W_#Ax_6bY-J?X>SBUxsSIz1z zc%{08)$*H4k!&EP07jqvf4)%@wqZk_EP0L!yYlR)mR_O|iv+!FV((@etg+(@pF%@V z8{v=CP|MsUIo5ybbE*~$-NZj7&S3YB#o(T{d~*SZj}Tp!3Ffw{?< z!Y`)&USbVKk)j|L?9OuFkyKcRDt)SdA7nCIoh+p7)%ur2$-s-(GKoV{a~3K?zC=I8 zYYV_WBg5L)%;4kGr)t?ej&t>vj%WNCU!S~1?AjEH@OjG;a0Q>I+CH>m8KtFIcbDyM zb6s*`Pl}>pYxHv~XZNs>Fp#q=pIA>;oPf&{!;?@r~5&cLG

    |$49K4T<-428_n4Z!Z&RJZi!(Mq z56_0gTCa5I0z)@BrzlTYK7i8$(-0+3% zz}d|Pph{KFQ>IR1-2dM)GM7i&nJz7PAe%|{>IthL;9}5$ zi3*-Ewb2Sw@#Z|6657Ng7zE22WM2GXTJoNzhj#VlKJKt^kq`i%E6gem9W2f&2I#Mi z7D&L$@P-bi2t?q4p)_bhf_Q;=#-bd8@K6FkeQ^0?P8h@($X;ou_5=ZkK(B}szN4GN Uefsi2pP4}YfsS&eqGibc0nXIeCIA2c diff --git a/docs/manual/images/tk_iostream_serial_t_0.png b/docs/manual/images/tk_iostream_serial_t_0.png index 6ac13f9802cc5323f2f2ca21c1cdca8a72ecfe3b..3715d4728330efbcdf5150fafaabe4851ab04edc 100644 GIT binary patch literal 2001 zcmbW2dpH~R8pnewb*gTuw5qgP(oVywoLMW=1|>YBVW>;cxwJu|5t3?(sY^HaGR?w5 z6|GCribyIV^Qagqv5^FEoAe}2NffJV!^!rXJ^hYzu)Jt?;r2)eZSxLyDQ%A zx;iF0002N2?&0dIqD*xu+Iv+mA}icpg}q;Uxw`^(|2Pj>Pf7s*tsJ=PrLS)ND4#wX z2lP4AzkGdn=Y&T*Fwg!H5dHMbiQu|t#se~J!|#x*vb-yCMB6#HFZXC>Qm&52TDrPE z^L-a@xcqHPcIfz&d}ertEB}CB+RnJxHu1{o0+T)c;_T-&j)jpL#}?Qlnt($E#p?6g zr;in?u%n0k$&sL#dM=mCN1`7-K5+DW)VgAtnw_0JQWupw7D%W$Wp|ExxyFEDIEHvK z`uv`rd2kb72kB|G32q<{=vg#2?do6Q#Q9z{J+ArE;Nw8K`^kp_i^j+p7ZW#wYcR_( zyIPyyDkMzK_sT+hDxONFiJPN6GR`-=B$~ePoVlj8)FH0K3@E{=h7we7^lW?Nw~ub5 z?{@WzX2Ei));at?6mNamZ~0AoLd$D80OA>({r#lMnb+UUKEL z{W-}cTcK~g*Mz%HFQ7}eKv1@SUy^VTDnq4O+Rh>79oKxN_4t)BX|Pu!J4lCQOS@g- z4NEq7bmP<9n@5fK&zma9dJQYU!Q|Ya%j}k9{m|W*n9d7|c`PN-xJ*zqw7~1KQf@xQ z-bC3(U0k?>tN&N2y&QG~bazK6Hui6eqLBoGh}4!QX3%!0X+j$do62k_(R?Oh2*Duc zzUCJJgt&+)xEJ%yj^lJ(*lYM-zz`k`9-R$no;tdwLyIY9z=eR2%7SXq?7rfJ+3ty^z*hCZz2@2|-FP%Qh%Tb3G%+zxe5yL?>MY~vq73Uyy{z`V z0)b$0zAvwX!Coj7PAf86RUd-UGjn=YR#v7&udc4* zH{Si$=9LL{f?F%bpGUfgBvPp#y{7!Cqx#3%^rLvqquU^Zn zD|K5Skw{>qjD2Sykcs*E`JRI1Z&bbE#Bj9C@9f!NV8xt>lj3TyOrdBYll!nv8xVkB zduL}XJ56aa$^HM*M)M`#sulsvwo&u5ACeN@P!2zCa31Me(15{nSf2>1>EMPT3Z^{M zckLVA3I)0+T>4pIWUJ8gu<#Q4G4mqwV5P!p>0~CM3`;m;?pNf5W-M0V_alJvrKxll!FIQzvMl9qgF?GZJ+tRj$c88 zG&z$dw?V56q1fjAi!sV#>uyTo_DQka&L*X(H#yV_%C6a3>k$s~+#3Gj4v#jSs_zc9 z4X$doXxgV^8;f6-emU^%WeQq_?N7ba4|MWW4JInO?-`{Hi!} zx58d}vD*7-IvtFf+-LGfdX?^!xC9VUXkCG{v$KNMI<#yhIwGWd5rejCA;9S7MdKhR z&!&_Tu}6ora}pXGPQnh1hMBeWhhzz5m>IW2;nvLVwe{(+nSX-O31b%bi!^Jmh<%e5 z2g`GPh`Bu5bAZ3L(|?xK--q2Sxq4LgeUR3ttLG_&DsxuLU5-O>l6*25$;6|#{M8)i q#v1%wM31h@p$=-MKmG3{DK!}qc9?aax}j=E1K@7nt}U>LyZ;8}_qo;p literal 5694 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 abSFxNDl64goVtxf;G?afuU?^Q7xq6PLyHvv diff --git a/docs/manual/images/tk_iostream_shdlc_t_0.png b/docs/manual/images/tk_iostream_shdlc_t_0.png index 783dddecca52f8bec7311b67a8d90bef1843aa38..8cc8f49b09fd7689137f8b669fd68e7efcd3b7f8 100644 GIT binary patch literal 1979 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 literal 4625 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 diff --git a/docs/manual/images/tk_iostream_tcp_t_0.png b/docs/manual/images/tk_iostream_tcp_t_0.png index 8d902f6188fb32b35478a90da0d69fcc0eac2575..34d520b5ef855817b21aeaf949a130422f9cb4f1 100644 GIT binary patch literal 1908 zcmb_d3ozU17LPtDDxz$a(yLnStlqmoA1o;oZtC= z=N{_PMg2Vo_JBYjeWVxsvc~c?o20!hXZ0B=C&4OUvC)Q*>3W2f@l?{gmJVxAnC?6kur}RC$mTM za#QFg*;QchXWKkOTKiAhnH?>GvbdsKXQEQMmf909$u3iFQIm`$>?ese)=0?qQ_s1X z8&uGJmB|Y;15qe?+E?jxBc_(i zhEdH_Y@2Y5Mfaj(lY7b0f#gNGIV~D!1Wt@iwW|wQ-_Vvl-B#lx`veYpi}zYU)m7!; zXjI&RC_EDU0C9h+%YbidSsB=>z4FpQ?{{hq!?oc5=J^jC!D!Jmt*OcJwBVC*iG*$+ z#u=R%sw0*=7^&155fQ@{Wwo_OCvLeHhnSBhDw14#%k8TrVeI0^f)AH`KP{GC4@ zkMG<3upwhvKLVF!btl9`4Ujv=8FAxN0~E!YT*&cp-xIFWJwH!%xxM;~DW;OnCiV1F z+~N|<0XyB}IY+=6tnIWgZV+SqG_)<07A2R@m1&Y+80WCrF<*TD6b6HxN8fSey%iN%y3PHV{}E7j z?Qn15!L}3r)Ruj^JHnUdmSnvqh~lfPl)epBftgcGQqmBI2#myIo;?7#$>vNzxiJ3F zBO`o_PeE*YG7# zw&MsppWCs1)`{HG&W~#TJ3pv-M55HZfI)eNRsX2tQ?F+gU8!0NJJO zP5g8XIaj%^2-Z|y36M_&hV&L$GV(vNw@ClX^P8HsxQUb5lcgwu9b#89%zFO)G zKu#&&o}mv9qo;5aZGTEeep8$1SRMpXyZ|{hbwJ-|AEHulKd>|xp>u)6ZJb!8U9bg?edb4n>Q$oSh=J}lo zLo$qw#!oqrRSgNgqoEbfv25|%-mi1i$_u{bPw@6hSOw7B85 z(l>b1k?#HivlBo=nGN!5?^$!9U$IIMG^j}LUy1&}R)`inI8J{hV!rXLH@dvO_v z1T__FcvHuxq`bdcQ0r$TYfJ`LVFgUR3Ie!-ImhhzbYukK3v9A)p;RlT|752b);8mU zhb_I)1HKrIYd1LdtjcYtQqUdRNw+#L`EPOE;ItI%B6-$T_9Az%_Gm z#kDcUem{IU;_q3@Z$bXpwKsz#GscG{XCi<~Iyb>-1udEOTZw=8g6_Nip6BMh&5D=Z z(^d9u+f)9~DO>t0a#mw!>z^SlF%!;}E;t452InM9ssGVJa6Sly1_uT<(5wz!(=>6H ni#K-7DIp81=DYmoG}+uPDaJBZD5s) literal 5628 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 C8jkV+ diff --git a/docs/manual/images/tk_iostream_udp_t_0.png b/docs/manual/images/tk_iostream_udp_t_0.png index 326f24156332b025f00b952ae9f761db5af75425..1116281a13fb3489fbdeb1169927a1bf78a81497 100644 GIT binary patch literal 1912 zcma)-eN+wP>qbZv!PfFw| zU4#f&O`Wfp3TlFESUF#=+(JcRfQrfxUxo!JzHn*h+?{*R*;)7e&hvZDbI$YoKF{;V z^Z6A;hKE>gx8Du`04zh#1Vx$rfXQeU@0)IW(Cu-Pdp{{GBnV)9dn&m#r2xRT!=XU| z(YX~1QZ8n9?A{j|d0dm^iVH0D;msCOK~n9Qd7JH#%<(rqdY?_}l!GhhZ{H(9tlKP- zTx`YT7c2?_{UblH%k1-Q??`=cc6NqBBWL6EYhV9>)lXN*D=3$h6$kn(9~~+N`rjoO zvk+T6JuG%OIfK5s)eLyVqdF#HFazn*r)Y(yL-nw^63?YeJF{yvnfAO^4qn^u==bH= z8&6nd&*Z-rWn4)=j3kGT>)^^xWSuMeS4; zkpq@V;nkDsOHby^FWmHX>mH(&%sPYoR42nR(S)~Yhcn+5dnEt-q^zOF5^Y$Fsd z%qNT?S7)mK%w0i;( zG|HE#l<`E*W~~81P4dm5*ts$aMZ1=_wz<)j zmY(k01hl#Fd@C=1qs7#QIMH+L`ogm!8=UIZLHft|8_l^BtFM*p)>f2BSFSghL`fve zwbj=(kNd4cV8^WrA09q@7~U?C>J7`wEu_;flCiO?(H~7&5K$-d*PHi1;^$)v&h3Tb z2AkqK`B8(WVo!QY_QzV8;TFWKVSUEW9Y`vbsx!@b-{aJ)pN)+uxs*qc|7D-=#U&Xx zEYJAUT^ApFQfgkFG+o9S&%)kv0o}=4`Sr(q<7S#^;Gs0VM$voUJ{0|V`v9*7g_Gqio`>|AtxUQS0 zka|&jv>;AHnl$X|t{J&K*8~Ty8c&|FgNOAB3S9rn&E}V%b)eQS}IxU02 zEWfJ7m0S(+$VYUqdwZ}Z^7P&vVc-XYS?AWc=wq>ktjw!lpwP7W?+z8G)Os@+UfNpL zGf5|12@=w6&b!Os;^sy)*S|he`ApOqYZlIbHQU$S}N;40q7b2gm>dc~_)80Xw|AA83s*9m#viYCB0LU~#zm5M&tsNXp zMWd@aivcBAU)r$fn=3H{n{8J_ym|P4!R*a`03{2vshDP)zEVJFaClHtU}C|)0iSoM AfB*mh literal 5704 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 literal 5592 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 We(`po$kTWp0Vp3dl6CZa`o93xD1uP{ literal 5167 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 diff --git a/docs/manual/images/tk_istream_mem_t_0.png b/docs/manual/images/tk_istream_mem_t_0.png index aafff9f093335d131e23becf0cdd588c1d70ae0b..0447cf6e9e5f7bb60695918d3068018e509e7f31 100644 GIT binary patch literal 1844 zcmbVN4N%f&942#xZ8DnHa$$;Py4B2Vek3~7G;>szH+610Eyb@5u>|}8)XiDVrj?pT zi7stZCxQxMDQeb<2=r0|*;S~Zy!1ZCnX^gKoWbM`Yv9+>556t*^dw!Zy0?6FI zG7YonT38DW-Mq^wCp-5-dG1xLM~x}z+apeP+xIS-Uzj_@psw5gkbfS!X+!n1lFJlJV?S%a6EQf;?N+lFXV-us@&H zT3Q@g3GV55z~`T1G3{+cA`x%#ehEbN$8)|=%S&*N9mq^KFG%Wle@|RS=9E9OzFR

    L0vl_$3PKS0$U_jV9B}6|`%uY^yB*b(1=5{87cekmM`4;OO>j(QSC4%na+CBJsRd81#iGFWJ0nI^yU#Bx{ZV zvf~jSUeq}2+}bD-;4@Nt_Rwv(>6WyK;Nj#kn)}i!BTLj+s!d~)=7X?yUcZtZwxW}E z7mNFd47Q7>u^xiU1C(iR$}7UfuF%8Hv^3YkCKGo5qc%mALLD-Z6t^!5a(zb||4SnQ zDP=5*ut*%6bif3W?Wi&8DTllia;krNsHEp}8=O^%I;yHS%cv9~~q?nD~ ztzM>**Iu@^roPxsct3Y2zLAGO4W4)sW@1cKh(2tgE_3NFXYPHRzA~akA9G+`Gci<6 z4OmD=M(TQs_em@L%ap@4!8bAajv74c>tBlZg-fOe%79UJ4EW^!Mg^&b^yFUlBdnkN z6ZnxPX=Bn<|EQj;l_f}5mo>QLWM@K1KGYME)p6I!*;!LY;Ye}IAaKJyE>fhZ~KsuM4VCi&c?bd7~iFjxR_LA6CrwAQHool^{By2F zQ7Y%ooj83GFmuql%*%nI*QuEnhQjkS`eDiAB@!+(6i z7@u2HtFP?zRnE#r?O&fcGYCVt{MzzSNT`t;ilUt#Y3S_i9C|vR_5J?eMf~4} z;2-4pk2-x#@L&3M&CW92^}Pl`&}(Stj9MY)*44qA-!j5rFd3^R!~+Mm?{=eT6Jw(( z^ZSb}^lAC;P~ETJ)6w6bN24vUdhPLgqflz*#v^-ZCjVj%fB6kQ!3*wla{3+n3f?)( z94lDRN5`?R{esdH9f&g#L@(5%pFJZ%ZR3@>pfJbAktX4>lPIg@F=xe2g7}N&v1^XP zyhzS*iK0MJT)n@xJxb=o4Z8w{@;@U|9}Wn0b~OZOH;k*y6u|D?;z$~t7z&reD3sYb zUK?97@XHy_-m&rN7g|+Z(*y^2np=^l6X>cB)k%>SSvR6w5J7^qTOkkCv5o! z=!li>am@=^V!QvuGW5}wQi|N?yA#d765322W3hg)M9!yHV?eX1ii~2=MrP&M$tW4V zSfwV};%%boH>u*2Vg;K&CHPWkaDsp!RyB`zGY#Xme}H#z)w$x&(yVLTi`&?`Br{)L zE6)aP2ViRpoCbT-R1QEOP6Dd85xCC2)yFqW7dRO85{>^0PD-su2)cz9S>W8j8LRZWgG m#JUV*VAdzz{quUzpmTcNn9m-V4C&V(#LwrrH`6QP+us1q1DOQ? literal 4816 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%0Dpr;AhiNuhVo(u=Y^52zrQi z(@B}Nf{tzXK_Vn^Rb*Rr*~iRP0B+G@MTH+n=u!8_84Rc*Mi$v_sfC_!`d(>%b+GZ4 zmc**ws*9-Y+FPeka=Wz~xry^IFIy@h@Q7xzt!{-9%b{Rd{w(bZ1qoG_&GNvD^D>Zf zA^C0uv!qMIZ6SFb{XgMs9Rn(>Ay=*)hEX|#DbT$B!$>OdA8=RCx)8^{w#Dc&hYg|V4$_x0VwL#t*`D4w^0c4Z=j-9Xbi9VwOgfdU{dEB%V=ptyBJNRs zG%pEN>9>MZ4#kgo1wEhr!5*X`nJvZ4Cg&?A9rs}+#@1IxH$wj65V4}r#3M!*bkXyC zVVH*JF-h2x)Vu()^`(-+QrvZ=9lY|Ju~NfgP3rzZQjyR2rNcJjfwT}#sUdW6i#h@E zX4172R{!MdiEsdXBRJ6%JW#KTev9Xa)Ib2^tOkuPxjBeW*gY~v)Pdm1ql6J>aX{#T zzCKf92VD9a(xknv0E7)MlExUI0w9rl`oB7X9^ebw4~ArV7CCT_nKKNaUpR>#;OQ$= z{Fg&KETJ@WZn06Ob)$R`VkW{Oc$arTLS(lfHE}c3Iud&4Dq%#I4z6gLnifc@wrSA_ z48&66WBBWB1dwaKTcdVlAOwW$O|Kph0vj#8z1Yk)@zEu`B^30TM|jqC}PuAd(1SY1&TP_oFlKId|?oGv~Yao-_Bm z=X}?K0{nJt|8P410N4Th+~<_u%Jh?ByiLCzNw^2sn{8*|em;QBUq@X>LpcCoX z3dy{soNz~5MeO4(Zk~xuq7tK93ayKXdC`qyhWEo3zeZ-!LpqJ%Lt5LCZerPiuMAo& zOq3U#3Uc#o?;3o|@l|}1Q|_>%Npf_}3n$pYe8u&`x+ftmS7*}2B@ ztv-K+GXGoX{NQClnHRH7t_ENK&XZOyPkld>LU82J*g7ocwIma?3sSdZY9pER(xUSl zU*>IO26bTrsyf3+d@P*8Nj2!Dl5_09=d)BDsqrwQD}Dkx#puJJTLTK2bFd(dCy%lg zjA7YRQW%p}g|;8|G-;Npu8pkYOY!#E!m+U4=Z!)Ni zQ3s-+-W|2T-Lo1XU3n33zX@70u0h~QJspy41G zZwy;>TH)Of(t6hFCtEE4-}nBF^}cn#qHI~4tcyVJtpe@dy<0Q=%mI|M#^G979T}DH zCi)s2>VBA^no}zTZhK6XKVI58^Uc&i{E;6D3k}nEHMZvlg4qG)2H2N;i_=k2ZPlM8 ziyd~;J^5*JQNw<8#Y{5Z z8mH{eH|qI0$Uu%RjT6+2PfdLv(V30oX%;gt(CKu|B+o1ubs%qnbycNfH#bK=lBe)A zjtItB8jvLvhW?H{)~aO66}19nb3D$}1{|*t)GCHrQN~elaL(EoSkMY5IX~H06SL54 zHaj+|D<_fTVs&(MlWn<~p`DMAJj`Hr;B{^qg-)w#n@&65+uMts{E2v(e!`-FX)o;} zBzNVk|B$K}sGrx$A6>cpi8oU3cXM;YHpLFirwsA@A@V^Ry=zmbuASC?m7JSN@$>`L#F zAJ7saP>(fVPsFT4XPr}@2yT+@ z;LBIjC?qfsqQZsxlGVqV!*a*0f8N*|^xUhYi0+hdHiCB;1Z$P@d?j#D%jEf6i6+|5 zbinowKA77Fmtr^r#l09fy@de?OAk&RdYuOkx6Frs`6`QOhdJlJy%_B-U!SS+7&SQ& z_PV-C#x5^lPD6=*^q$a9-@GL66nck{cK&E5M=yzNl&($JHX_6sxa*-La0d7LgNpk1 zSqyCK7pI0R+NOas7xBYy&xorVa0gvWXb1BV>9UH6l^3Q#qUx1#EtIfQGg1SW!PXyq z`|szGA{qsr1=BrtYPP$VR*6izMt{IR)}wrN+#06SCtsskO4*yds{(?J{Q$8{^)H1M z(KLc*u|t|+YXmJkGq@i<{s28w%9-~|%z0{h^<4=3OCjuX%J44aBS@n`Si*7f2c745 zC1morkdBz88^12?jy8WdVZvQQz%H$@_*wt0CVWEW=hvvNPz6pet^gP`z=z=-o%ai0 CoW=zJ literal 5441 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 diff --git a/docs/manual/images/tk_istream_shdlc_t_0.png b/docs/manual/images/tk_istream_shdlc_t_0.png index 5147bfde3a63c948828057a3f29f5ad983f914b1..c5cd27c0e8341dc276c177009f98028993bec1b8 100644 GIT binary patch literal 1942 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 G;(q`Wq%%SQ diff --git a/docs/manual/images/tk_istream_t_0.png b/docs/manual/images/tk_istream_t_0.png index d878b68cd35241706e780612ba7648cbae59dc90..28f56ba2526295a528064a038fd886331b077cc0 100644 GIT binary patch literal 1681 zcmb7FeK-?%9M=^JSzJeD;_%$`C@zkKS!!z>rXnIEdD%$~D?`JIytTvO$$tX?ykH0{hr_N`+Gire7~RP`+Yv2U+xJ6e7n{j zEj2Z@?H=yXQ>s{|I+a^BR5zuMSE~vd=RM(2wT%z^b~~k51swN)y7?tlNJo8QK0OP} zmWhJV>JN;bWg6*uj<#R|U!FFc-%@xlYp3CgZkO`&y3|b%zEb$8s}oxE4CkQ%)=(|$ zuJriuXD^)+<2`bV%X-TqI#6PZe$AWB12YwNoMMg_y6Pmbo4)Djh97v77sM6| zHdWHDUZaI}@}&G`>Dbs2@XqIP^6YCdP^b?Sy3g@ zWj{W9CDDIK347z6Mp874JE3`t4UX_WRt}?i%J%@ty55YVMP@T2zb#LIcgF*R)m&dM zx%-#w@Tr~4XX`uam(Xtcl){KrE0D{`=INGbzKP@q zoH02W8RJks8`d_BWi83Z;W*_ya?p1ljQr{yMg*1ZZ;Pq3NSqhYS&0k0GCPz+KGom2 zVHt#sLx`vQNsuNwJuHA0(pXt(jFXGK2Yt0PVmq<#R}?X;i<5-*B-sQbTo%2#Xhss-duS2OlW8`!O(^`Ge7~9HU=HQEl%XF zuPADslx1FLW7gJ|2b!9ivO*ey0|V*p?O@!JBoJn&tywrZ%;PaaXsEp7+_ydT*XR;>Aj^^VzF2vY{y~eh7R=Ct7_)GlkyMQt#0Jl_hbW1 zQoKNC)&PsZQM8h_;8Wokrd$v;mz0z|jg-sf*a^0t$X8nf&H#27n3x1PKp-S0aK=%V z{kzWoO&tHAnUBG(cRIJk;_)J)Yw86}P0iE2pslf@j>gv3Rx0JBr)uHX$$O%r3_vbv zYmN?f9lz|En-lkybE<#7V?H7j63fbD0i3G)Djlz`uPR?+UT{qR2TSw?GeXt<*?p!N zZ`f6qW?8%af+DPCmZG1KLro~D+gLcBBA(G#*uQrxs?spo#(~3xuOj2t;|rj5eE0IR zJ7L+KzE>bCbJgoEQp1914pWzoo96Kj&eMrFLRk;NF^DM0)=yp zoMTo4FH3BUfV2%!2A3erFBZnaynrJuDH4HYWL{-r#Mi&NSZTdk)~Pe>={B&+?NxFV zW9E?7;J$=V%5plnh@G;RS{$ysc(8-J1P5m#HqQ)33iG~CxFG`r1{Y9L5_gHJQ!Al+ zIv3p?y`2o=uP?|E#QKO!{gIMdS@2SL94jFw=rFl*q8~Gj+AC-tq8nmQO?w2!yDp zCMJ_g`t06|k$P12Em*uIX$R~_N6;TmuA1E{z;^=jZum%llIo99^ME0sbw|&o{|3{> BO{4$- literal 4406 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 diff --git a/docs/manual/images/tk_istream_tcp_t_0.png b/docs/manual/images/tk_istream_tcp_t_0.png index 7545c3b425abaf2783580f31dcccd861eb8d0197..d7fb605ced96539ccb2b5574220299ed4f1d2a88 100644 GIT binary patch literal 1860 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 literal 5040 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 diff --git a/docs/manual/images/tk_ostream_buffered_t_0.png b/docs/manual/images/tk_ostream_buffered_t_0.png index 02ecfac7070b4094eb31de2687ee56d78f78dc5a..14c4053a1a99651d1c91a837ea4493c0b01ea312 100644 GIT binary patch literal 1980 zcmb7Fc{Cf?8qd^er47|qNA(S5)C@(9M<2~%J}rXXe9Y*)8a7-_ClcOO=syOTxlp;d5wFx#UAgluG<46HS8-3R}o>d7%r#&nB)CSz{wwSBht)4Fn+&wY2n;;w75 zXG~3^-n}wgf(PAv8FzTD;cnYd7cBQhuggDZrDki*9u<$&R-M13LJ)zK!GmiJh+bG<$hrVjU9b~a(EW`;?pe* zKX42zV%TDz_bxc;z7}LefIoC>o>DBnDVhQKu*rH*D3GomaJ4^Hp$ID0ylvQb1K6SQ zXQ3$PpPjg9X!5QGvU8L-F;S~!0GSwm==K#gr2uxTnJYRxyC+82@;t`?>fbookhHy? zY8m!!HPI1q=@L*y0PhYHHtI82Ncutjy0tX|i?YKMw2*A#VBv#C(xTK>^5&~?E>}F& zj3+90leTxZqB3lMq4-?`8QgTe4_s%!no74e>j zb}hZg(AMd~y{-E-<{gh7w!S!GB3esCqsOIk42i@`V+a4zGo;gDVWvt*T6v@oAy4$} zA{us9=CZ1*tM}40FrW6Nv?VLC=H}+A7$w#rVfjHRB#AE(u#VMQ*JoIP5?5w3Fjy>~ zlXa{SBb9G6n9RuOwj_}6alUimUJfoA1OknViH(@{xW!z}^sf*|q~?b^4tZy5tPGOG z#AG_wB`YZo*Viq4Fy6N=_p#HpPG=giVqZH+25SPEL!zRh);DDf`!A+3V2bHzg>+p! z$+#}ZUfsa_(`uRn}sh{rFqL?YDJ{|gXne=;V7o}8JnQ@@O*wN_1X`Ek0o)*i>I!DrwHGV720wv z_+acEKRNz~(+Drb!b8c?NjW^eBxoes;AU?Wd#zRV)WCz1CSuj-g1#Jk96Plk)Ht$|-4sr5JAg(z2^|=}S!bHAQj##W>{VJPRJ)E*z=&(Fd?V+~lGWZk}i(&KH_VG0@+WE%~` zWugRR^ZMj1ZUpf%4s+VfSKJtJ-EZ>8NnsPm(f}0fHyL|2nV_>mUJ|idTXu>AYwDiy z01BhOBwfF=(Nyu|?$1G1-Sz-GU23m>Fyz|o?V=)N8@ahP6ELd!8`m1$GFIYq_Q*o- e%KxXvhFaQ`dOkhtlD%pi17I$m&NQc>lz#)?Fv`vV literal 5734 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 IJRThPFY_yWW&i*H literal 5206 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 IDQh11U$^tmT>t<8 diff --git a/docs/manual/images/tk_ostream_mem_t_0.png b/docs/manual/images/tk_ostream_mem_t_0.png index 3a62f98a2f9638e029d8b2fc31418ee94966b8c6..fc0ec9b1d508cb04297a604ed7da27f673077766 100644 GIT binary patch literal 1840 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 diff --git a/docs/manual/images/tk_ostream_noisy_t_0.png b/docs/manual/images/tk_ostream_noisy_t_0.png index 51297d46741fab37583534cc45ebd6a2ee39e182..f1a5b511e3ee766cc0a5382b0d2c0aad9c84aece 100644 GIT binary patch literal 1938 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 Q$FL}ha%!?w(kAf#0Ku?%Gynhq diff --git a/docs/manual/images/tk_ostream_serial_t_0.png b/docs/manual/images/tk_ostream_serial_t_0.png index e8e664b20f09bd03c32dcd8ae0806da703960db8..cb4be385487e7d501cac26a85ed8c33440ac52b8 100644 GIT binary patch literal 1926 zcmb7F4O9|V8>ZzCpW6Dd+{&d^r!fEMs58r-ruj4HBrVf4P?rKNC6@?F5}Asag?^=p zRKjLvOb1L8KQ#rDO-oQV$v?=LnxH6>IzdHrc+O5|-#Ono`*!ZR_r2$R&b{|N?{nYh zy%`P(-eR`L3;+OZ3HdzWw86>@vjS*hSlz#7h8m2?h0x#t!1~7cw(Us?0AT7B65tn^ z`A{|Dle`mV+cmcijl2AaoKQ!!DkSG5d_QE|5H>N9W(e0)ng~MeJZIbI&qz#skh2YU0s6yJZXn5hlG4xocU18-5Km%&d7GvDr zx*wkn9NioMw6&XOw`6;tqWf~Pw6os}vPqhm;lzyD*L4IQ+vTA6OWAT+Sy_tvo(;&b zo0$+$l&)z#zgLKaDW0E5^g3-nyxq-j8za=-U7X?jt-x@l{}Nz(hiSn!-_P>iZQ7r= zb=$u8ul+CR#p`@9@B^^#H#cXMNlQ@w3BJsX_Mcn)){0aR-*hQKzMdbtd(II#?+}~* zHn0UZZ*(+D+xO$D4KLCs%d` zj_X*foPOFXdh7##*Ye2<^RaO<6W;6lpnLUw$@CEL0*K_rk0(N z?&48v3lk$S|5=85WfB=-iDx`lM| zd|X`PT&5Gt0>0f>l=s!eC#UF*kAjQu53ffpa=MsyP1Jqk+0fsARyQ|JVz@^7EqU+A|IXRT z=^RfctJ8PibM&w&Mqw~#BX`#r0$N(rKl8c1hVLpxkNx&M7rVBKtESQR;c1zxOLfM6 z2^1ID7y4yR@?Z)I)x#y|C24TRrRsGQXiYsk@~kmK9harkpp+u5T9!IKH&jNUs5;5k z&e0?XARY9EcRiIy(AT3Cy%V!qL-NWT{9$<_O9Mwg<)p#Ge-7cdWEk;xrJ&9f&61;F2=k9ECA-*#@F~gVQSiZHwRTO=JSlt=0Gmu=w z_UPOshJ03~X>cPDKaX=RWCetU?Se`|YMp^OD!qUfoMu)Lo%>!)!WLn%x)`0+B07Rs zic<@UYL6>#E9x(iHpC^%|K)gf{~eAq^TWY~a*Mu7#W~6fR9R%3I*-9;-6Nz=QR)?= z67bifPG`m&J{Wox*b`W5?s6sUAvD&Sm0R}`Nj{`RGeKOLy9sHU_#J~Tos5@-bPQ@L zgH|DTUi+e0ikfqihsEF;BEtooZ9wEqADpnsqe$Jy6}SyFls1bwVZ&flx$+V+0tAQQ zV2|6lLiFw08n)>835rJYaRRH0fwl=dW5S+FJc?C>X5|+8A6e%1f@LLL7??^Z8JzGQ zQ|;O-ecblLwLYtJ^-;&Com#5;p&RaI)|y;3-3NwC9Qlj*>5J)-80?)#OwxRP*AYj z*hOXk)LA3poj5k7#iyWUH9F+RFz1EaUwh2k6EQ=~;wo%jzM-)KLINQHEdPX@KL9oy B!P5W$ literal 5479 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 diff --git a/docs/manual/images/tk_ostream_shdlc_t_0.png b/docs/manual/images/tk_ostream_shdlc_t_0.png index afc3c73445487336bbe14c1bb748d7360700eb1f..538f09830be01e350b3911b307c1959111d23e23 100644 GIT binary patch literal 1933 zcmb7F3pCqT9F7<@)MIOyYNws`MVGFfM_QA5WoAu7i`FCY4l7Af6(x=LW2joEs!C*1 z>P=UYA|k6*qYaJMghUuCY4NWjNzGqadd|*i&)M0|cJ8_NchCLKJ@@zc?)S@f!#Ho% z+^z|MK(@Mk?Q~jce^pMZhPrY!Jz<-wH0nVooSh(>Z^n=8ssadPi-U`ky~m|eKx`Ya z&EJ^26mfn-|5K}+jFWmOV{=~enF9;&T_a$vyq??WO=fw4P^%yEboIAs2bmg>=!F^I z1?<*r%+oJ=$j${P*7r59M3E%-W1gZrO*C#s%S$6>dm|;i*~Yi0q7W94Bb!S&NWVq8 zrk<%s@<-*+hZ{?{pL+yN{=i6sFO$WZXKfqqm(2@+4^)X)3g7c#g*Rkk$0DYPk@!68%)^_zm z;Y7`yQ?g&8$F$nC1;NDS)RaS8%sh~HK5lexG+T>pNc*vHsON?M0BY)(XUQ`eobOt2 zOD^-~N(RgLc9wg3865XYoE^&W^>dJ(rEpn`#VL3~!3<&=fXRSCzY*j)tq;A;lkf&P zUJ5O*fq)7e8oBnFXrh9M5&2Ef(=R-rAK3j(_%o^Qt88UP^KNb&XhnW%9sA_8fn?D? zeQr~yD}euja*N*lUzzucGEsPWdoSS}zMo)|!@~Gwj9;>JLHHg7+mC;YdUf%L{Joee zA0MB4Bo@HBvP%Y1z*kdgYzjCMcfdZJ;bV`p8Tj6{NNrILh)9yBJ8j~ZD=2Hyn!}tY zbu~&Z>=sXQl86+FxDneHL_40uRPqaizps``zSEW1`O~s zG58+GYABPzz$+4yBJuOm7ema})^Ek<1%Dw-W~dvUn1C!yRWQHIwpkftLbWzZ!!tQ?eKpY6*Ovqc8N(b-f~*#GDn!== zS>Jl3^|vgJig0xF?t_2;=c_v&W0ACyl4e%iqOh;T+PqQc&FxMK7#h0CGM$Ov+@Qc_ z0vy)UgmyAeL76nMA@#l#v%+{h9$7RikpTVWj-ExC(D52*tn~T7PsEj#l^T)0fq~io zqQV;m_?Q3r?~s+8)~PJdXu&>LLR_4{*|ukCw$Hevq+|uB9%Nu>NDK@N+(8uC7il;nRKszI6YOvhg>!f@$m2%KbUL zS6pF&lf}`z1mIh+1;|8`s&Z%*2V)WOaBg(}b))wolp1G|eci-_p z;BHb(#Vu&-JHqn#+)2N!joe~EWCtfiTpLp~k~pz}mlxynP(*YB6;pe$`iai@G1YJ6 zC1;#Rm@UV!`N0-%3z3}gXc^G zVk`^`Q?OcS)_Y1V{Uw!;L)+KRUOaWZczX!j&vMJz4&?kQR#^9m+Z^)VBge5ay4ahE z-`n9{Nlm8blBJYl6Zl^6AC<^_FdQS=M`T!xMG7xH%r|Y|cf?ee(c7;^8V$aftjJaM zJZOL(%AcQ`tQYZoue%-eLN_C(mxc7`vhGW(ghSaT8_@qI{eP=rF>M`?C3udg3}c!E z&1dQ?nUsSbVNXjBf6-i6SU7f8ZFs!Kz3LGY<(Oy)+tvNWyIp006Ks{4bK9W9S=nD9 ME+~vsqeDRIpLZd$%m4rY literal 5544 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 WpLm)gQjz=^DJKV4`zqU@)V}~zUn*$; literal 4432 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 Uai1YL@QVbb`VtDMQG65jAEqyLIsgCw diff --git a/docs/manual/images/tk_ostream_tcp_t_0.png b/docs/manual/images/tk_ostream_tcp_t_0.png index d34a04f104c7a74524352997d154f25e0d94ff70..b4a919dee6e578c97699fff04642d010e40473b0 100644 GIT binary patch literal 1858 zcmb7F3rrK{7A{z!h+@rn3DknGZWq@(bs%q~g4pmV*E_~t3shy$m0F9F7Njrd5DpZ) zn-CwpZjHwp006KKc_8wjHMUqU7i9NK#>oq84R%Ljq9Xw-znrSZ8n!hti;Rr;B==jB zE|lP$0&RP}lAOF@tAFvC(jtCodHP;~Gv)LFf4Jw4w~(T#eL}j8XZwRf&>B1O2FKth zN<`!h@M_hAqL?9lE1l?$!%@0JCIfd{EDY~M4+c&w<1!e*qp=c?b%pnl`C)ljRWJZH)Zw0Mor z@p8Pb z(tA>QS_Ao8_Co0_M<{T&;5`e%0viOC2m9 z4C>zwPuO?41e|}{MIIkPdpm))Z#kg4ZhU-;Jr+c6pU&gVGgG6mJijoG8DUrTa!_F6 zdYkf5a`$Kh3X?oyRLvL@`W5iuBH5l=62~ktBQYRc=*E9cA39yL&*ci`RZl#lh|y8c zk#+G+acE%DoxOFIDBjcSM({_DR)R7^AwQg+;0y7xEUa^xL0eeW4y$o;E`#>^{BeVS z-+4WwJdaH7OG+wzV>V%ePmG*{gyepd{eiT1Vn*0&>}=p!S-r&J)as6P->uj`K5H>A zFHxz}BXMH~Gr#Z4Jb8!0ufA8aJ#)Oj7DKU^iNVK*^686nV)M$!?F~obzz=!h%%f>( z_u*K@QC=8bk|at!14s62nGKS>$Ap+b#Gea6uZ!P#~;IKo?ZO!bHx zjI&}=ikvt*WsvD~y2t6r%|M&AcB?d6t(N)b$uXHpBO{p?=ck*?@mAz0iG*n~7?^L4 zk3anYgGNh^$vkiGip%#tH8VpFW-d2C!WlFsrlwaM&Dt~|!Zz7{dhIMY*E~In(x}xQ z7N5sTWwB{;@);Y3vQ4~J0?w_MO4Gk?X-3!fV>K*Da7IT*N9%29IJB*|Bw5=zdUlkSA|esMwsvtjYKrH*cn8WGp6Se6xo@Aeb$)Q(}|Q;cq#`yCS*?@BD&BafnU)?09Vw2DD?!}A}>2} zu<7;k1+rTpCF)Vd#7-|FuRpbK#w9Tbn2y>%V6)8lnh8dHBWj0IyHK%z{bTHDN0BkYyg7md+Ij z#crXn>Whl^oChtZE;hbWWld5f1yV1pjO0E z8#}aqBEG2GgBL^fS#{n|l{2u1i0LEwCqgTfFM)XbOm%C(0z*Bt3)NJI@|T#&8>1T< z@pSnujufRv1WdFiT(*A?KHRnYJK>NqLBF89o*ndY?d@A^DBmD4y&&HFg35MnNray- z*`X9@RX7ZO?(jydPk*wVSo{naQR#Fz%x^H~eoq$c|I6Xe6~dVpJZ((v#zC4pXYxV` zQgoW84Ux6*7QcHpCMAVSPdtT#p(?#JuInlmkf5r~zoCC+Rh2PNToAQ>t#v5^kWulG Jb%;Z!e+IJ!eNX@Z literal 5148 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 diff --git a/docs/manual/images/tk_ostream_udp_t_0.png b/docs/manual/images/tk_ostream_udp_t_0.png index faa8f555f29a652f2a9cc380cb9b51466d8c4754..513c33ad943947d54281a914487a37936939c634 100644 GIT binary patch literal 1868 zcmb7_dr%Vi7RS*sBR7rGwQW-gcW3SPP}jYNqTyzexu$5hGOh5jaup37RLoHh7IhF1+V{qSR912Q<%D1Tocz}5$=6);NyfbB+pJ}1tlRcT~i z@m8|^eTx}(HNZXldwWj#jP(t<)SfrdG#Po?-yaOdst2#A9s8 z+viu%HgVs7{8gKU3QlBI_2hBRH@FcYO0mlX?~*Zc9QRt{9wV%Xb+fTB2dyG!jI*Bt zjb83H9{9rKM_uAG+st=My$SM8Oh!h=d19VBUL$esz`r?LM?RP3khZAGlXVc;vkA@x zBtZ>5p1I`lXrQkzpUrZ15Q#*cZy#3xmi`Lo3p`K^`qmDT?dc6jzy5ci$l`<*!Wt1g zQ72vA#Zi zoHho>u#xjxQdOzGNJnqXD943FzwmCj0xYyRHD*~e2W_G?Vlk<$cKtI^XYwP<^_OR9 zI;b9(nIT`kh=1W-QTZllpMzIZ(b_hb!6dgM=miH}DHARZQ?0vdR7d?a^Cp}H!Doj_ z%1@P~#(>MU`7V1Qz~sY(>fE&%G0!6RCM$U27tFO8SnA+1iT;j);&j2)YnLUT?8|O1 zVDpK&Tq6eIYuY9poBT5~T+BQfy54T%+bO`1JGgWnQsV8V9t^s<-O|(c&=|Lrerye* zKPo}VkHugU$L(8%+frms`a7or3bGG@j0YN4@OO8zsLl1V9&)f71qaUkYFD7`!78u% zlRti3wGD0P+&H*0JA0qa`uvqf+Cq3O+~<+D5HWK$jwx1$GAHhJGKRD!!^6X(gqDW+ z`kVTVE&*jrF7HgYZ2u`Nju(bvRma|4xc5Uvd#buz)ER=Gujy|NlNC;=|)i97BCJn4fmLT0&*I|i7C_c0VcmiIHo1RJN3ImZ! zr6R4)K&oJ=L*?b=jZ%#%>x?A?7(ph>Mi^d+{l#E~Li7edH+I{1RV`*`mtpKpYBt`# zo8a^LeVe;u(db?RfiO2%>X3720s-`tN+ivXA|jeDsM(r+nl0zmD|Ee&5y*H{Bo=E_ zy;Q>6nXw1jRG4js{_VYuwZ$*KMYjWUd==f47L5kmL0XBM)v+(PMFm?;UfaIQGo-$V za%4Fchnq0HmSYRUA6!nJ>FLRpwc+{`UbHIPU{|g`yv+{pu9)0XEIOp?=BtZS7Qk8A zBb==6EwQ55#yyItmGjEV$~Lf6DwXiZLnB4qpepc>N#)~$e*RHM$NGc<@R1vkk65<9 z-NKIo&{cmJfk@OWPWAI!TK3+u^E0H)&&xCP@ASp6Fuj_7xANynXQd&pliy5H*=_IJ zvo=UeC19FthoQnk;f-)~emaNG|93ZK%T7A-|BJ|KaTL$un(S38xY@BPvQo|rlapUQlz9pAk3k3IK8-r!>; z2do7F^#VD1lOb+oGyd7lx<7jBtKU|b8v2T$S#fm;4y}{zXtoYb4s}S8s9ccUEM!6R zYN|UeEn`AYz$A_vyS9NwNG|6@D!2G#b$hs|i<4qoZ2w)gMZjUlQPusSEGnPg@>{61 zk_&Xi<;=kx5!U?(p=JV7>j*UZuJjnowfvu2{?`-@zYm^8v8Oo} zwJ8GBXjqfz`RW5u6`U*)3NM6&G_cJU=3Wk#elNWh`7f^>Mn7G5{qG4fsF;?b+=Jkj Tq4p>Y=MmtC2=rljN96tq1MZqF literal 5121 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 literal 5409 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 literal 5578 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 diff --git a/docs/manual/images/ui_builder_t_0.png b/docs/manual/images/ui_builder_t_0.png index e5de58591114ba09761418faf77fdfd1662da857..9097d246ddf707701d726e257a65c676d5e2b8d8 100644 GIT binary patch literal 6576 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 J-g*4|e*op#=Oq9D literal 11493 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 literal 4868 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 vf0Yt30rWP9h5|Ei8>pzBXJVZb@g>nJS73L%i& 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

    Dt)ESJfFHTr?w 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 diff --git a/docs/manual/images/value_desc_double_t_0.png b/docs/manual/images/value_desc_double_t_0.png index 959b48e7cd201224db19d8757770c54353a30af2..b85bc0cc2dbe5333ebff7c117cd4a4c2869a0dad 100644 GIT binary patch literal 1896 zcmbVNeN@u-8poW@d`a8Mk%n)(o}0~--7z&aOv{%T9fmG#RHQdrhG^yrd_(j)&B~=- zD-|(JX7*xWDMFG!x|E|Z-x6P9N=E7kehO1SA@$P!+5Tzwo_oIM`+dIW`<&-F&-eM9 z=kvLYM#VVTy4r$3AP2<3$T+i=oA*r{YxDU9o{2OY>yyZsNYKW+b&G%J8VK~E8zM5| za8?~K1uq>v3K41ZS>t&2*4<4*-96C}4-cz9W+!O>xjna;Np`GaEJplL+Sbov^n4O{ zvSEtzad%;%=iS|pUp=lpc03_DdFfnb9W@a(XS&Cl%o^C&w>n$*Y{%6~Z-o6*w%^+y zS)iKuB1b1La)Hf^W#oE1xMIHV+D?*T0ZVkT8KT2;)p|fS29Tt;Po*qNxQ`#7`MxV0 zYrTnWzCllPqO1SiJPfO+VuW&Tu3_PxI6R5r6IYGCI}Gy}I{imt8xPO@E1<32A6{|_ z3op`GeDWSwqt@ejVAroDRIj%IcVxPYXw`1q-1!P`1llsV@n}r3M%VF`ITSzD3QN0O z!%c+eV3p_Ybq2dK;!hbXI5(BhBxj`I z^9}>B7Wnwu@xjZ;+-%dF3m?G=PE{Q3P(wVHG2r-&hUY1Lw)mTRvYw`w&@xfUyTXa= zvva-&bOrL)l(tQXTW@KTnvSra4i%<&KGCZ}&NJu<{-HmwPj`v!UFBWk+K5)VW%EHo z3rff$zV^f9(M5q9+Mgr?F>4>sb&c&lFO{TjTkM=0Rig>Z_Xw#FZ=l zbz)>qD_E{GnA{HwjLh6lV*9)Do~S>lEi*Tcd4hEDz64qRcY-+MknIfN7RSDq0}(Yo zRDTfpzjpZ@09Q8}eadjA)ulVUA9^PzCLTI^giSociAHbVVnmm;jH|YG+7k!_y;c#U zB0V9!d}=`qzWQ9HOQldwV53<+Go_-J-iVViWspZY9q~zq;^GvKh{S%>f9xd{8s2h( z-)epi&0p_?XK9{NHrAQ`o1L8mpq`A>ov6Bpw4n4CCc`2yE3ST1iME)rlZ=g3!O1H_ zIefa?KFTjB`d)knq*=V*stEeoVEsPsSM_0-mT?%YjUr4(B9VcREj>3Hc6Wno_LKpm z_r4Ac3Q9h`A(Wban=NIsSXX=xV2Yrga$!DqcJ^D9!IaN&3nNbq)CJ=Vi*j(n#ZPS# z!|7ppDKr|5q#U{JCNr%Gm=7LIaMR_HHyUia!4-ST(kPT^-qb=FPz_Dw%$z&p>+8$t zM_bL(L#yg!Tio}anIE``Q@U*L249LPcgJjtB57asjMgXebEFAJjsQ#Z zgI}}k;{%Kvz_Y~6g%Sx3E!0@O0%TmhLgW~l zt502^EKc)jaZz_mHC88aIGji(0bI_KseRxrGoIvs{dyr}OnG7bZH`=!cRG4vf3F?* zuV(8n#_s=csg0t4a5)^cRw2@>#-UO0bIV2@0S4P)Z~f{^^y{I910>_J5-a=B8&Nsz zAQp>BGu_4aoUJ8=k7}q?KXvV@8M8K$H98I=A^|VjN9(nc|HcmQD^qQ(3K(c^PNDhhoORgZMSWAq(k#59oW9a& z5zFQb@+?m20M$2d^eUcunIFl_fne4;*g-~Xw&a-hbA@M1G*}=*D&XWOD_&>OuG|Wi zP;Tg3lBQ27m}0}KZ%X>!Q5J9=;IfjYNt=91-cRQ5gUc)d-b+Y*SJG!chZH3Ai-%bn zH+asdM8Z1W@p;FU0+$ixg*a{u;!^&+tCPTrzWQh3*sxd$7|kT!7aTE5CkPRRie&9i GD*O)%II4^Q literal 5696 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 Z%+f#i;(m3r11({Yu9ksj6~Zd?KL904p?LrR diff --git a/docs/manual/images/value_desc_float_t_0.png b/docs/manual/images/value_desc_float_t_0.png index b3b6f92756783cfb43dbcc6c17849ddbc7724c62..af5da46e04207da70a156c6d21613acd3dd3a9c0 100644 GIT binary patch literal 1886 zcmb7_dsGrw9>+=Zk!Dt-P1=|gTdC7%WlrNbXubzcMFQW1){qmZXofVB*6Qf7Mw~X6 zb(8>YBo$oD2cjZaXDginu~Njuq{pZu5AjhTBDyrw*|YOUJ7>>5_x{egzw`T@dw;+C z{oJe2=x{q5XBz+jU|LC@|wM zCDgCcd-f)j6=BcZ-B zU4m0%ZFIv2BV(JUBP3jbV2-yDE>b9%n(bQCj>U*Yo!NbBM_|~0QkO$Foc`8kD+qpN z=X+eXbHUdHp|MAodu;l)x1w;481TU^7^&=47tFjPg0p3p|2GmlQ>+Kr7+J$aN6Ev6 zDy+c515w>=x6>5v3@p)8xldi`cI`YDghN)OE*daKgb~i-zG>FC<@OEKNWC6_a zh4SHNzZ4D^g+YJzb*MYf5C35!%6x=_l78$mfhb%_*RDHp2U4L{9_n&>9v#0Gq9)Hu zITg)KKb{X5ojPo&>w=-d2|Kr(9<3Gf!XdVKNpfbUyR1d|ItGk@YpSk~?1z72b${wb z=;LC=%97&VEd^Jl{Rg6ID~b8wwY~Kw)5S5~Miz6gy=_ojl^P0!(ED zp}4I0mhqV(dM1%5BR~eWO@JM>MB@slK)?9lRPV(!*MP!~JYHs%Cvp+F<488cCWZH` zv!uj=m;Iv1hZ03xp088S&8>LaI$0y`=JRQp85x^t877Zm&B)_l(m%;X4+J%ub#gf9 zXIX^#uav5%?VVj+U#s(E?>wEIXFv2h)uGqx@3qCT&@r?xTIGG0iOri6tr4|_#uYS$ zLOFxOczSus#NrAtQ7bx$9tdtU<8*hQs?luWSIp|C*GX+%By0 zlKoV9pkE-xa8&xG8ST=p8!MlSTYjJWx_0!Ao^#?WbK6;q1TiH5v zS7R2Jr;#6szIn%>)5sPV7gL|ARLw5n{0rlZJy!9|%@l;&T6ArguHionuixXCe*s9ba8&{sJ*kEds5bYA7*Ulgu> z_Nlk2-M+n9lfAyqbr)3;oc8uJXV0#>rvharVi@&H=^4Jd_jBQWC-|KvV`B#{2X6~~ z{9NgA$)@`)HKLC6_8CgK3{3yO8d8HL0of2MKNIfaZ;!^tI!swUkS=654W<(zZ*_Cy zW5kmYAhzdFey88B)u3}flYQ(?#-ydlaudDI(d(&*@0uy-E*HsRr%WNfubj4`}h7bYDWn%@NVxs#&Hoh*b(KfRh61)}`M zmzM<-zwDR5rgyvj6O8W5`N)rc>Bi`rx&dt|R8xP#7+BIm(O)-!%gtMu_V|<&K5(|q zy7D>pN{?2V&tRF;U!^+N$E>fUPwXuYJdI&hI{Z5$R z23tS+@PyMz{%^>c)F&2u;>5Hasty4{2J1vgXX*LOF&t}Pc>GpBs41>0=Q?LDut^rV z*Pg7TlqCwUWz{Q(SOgkV-X=>fjZCg=Y#9h{hPWQ{nOwE_f2sbid$0h#Z1%$KL@TH- zHM-xVtg*#bDAkW37K!5G;`XB)p*iW|n@-6)9^hA960U?#ocwR7tyxUt2xQI$jJfH< O1VBQgL)by7MgIn{?1Jq8 literal 5452 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 diff --git a/docs/manual/images/value_desc_int16_t_0.png b/docs/manual/images/value_desc_int16_t_0.png index 171c347bb207f3efcd88e3a1329e0faf111dcde2..4d796885265dd662897298ca65a0aa9baa2e1bf2 100644 GIT binary patch literal 1894 zcma)7dsNbS7N=a(G+#3-sg#ejrmRS_i6#<8L=nly0KQVPY{XK*Esb8Hj^+5s(KEHy zs$=A%0xGCcU_`~4p6jrH`$g_c^)nhYEU4O)4(ZuZ={3If?du;?)2 z*>8Zc-kiV2Y@R_|C?? zUR@&eBbInHul~{A-IuntU==-GRQRwFmZ#9`sju<S_SiVX*ahI-`Lo_upIRT&HUxla8w>>Wj?-@1@g}l4FRnE3RWK*DtNqzy~BZor%NnqT&5I-?S&& zrJTHt=LncgWJ)jpd~8V`P;1ib8(>wL=)~{_J`~i$BEfr zGJd)|Wid`QM#!k6vperX{k#${Ykgclv?eYio0AgM2X<7XkOsoPh__9=-gpl>+5G*S z%OBSC_sSh%8miT3G%q%zwSZDUo1adBpL!Mb8s8$-7Tl9%mqCxk?eUjQOtgI5D0z{I zW+?%M#bf{^jj(21CBAj2Vrm?VN07ihsRHV#6#;n3BFw*0KT*8h$`w|T+e(!TWN|K? zKE_Gw%wQns-zISnmqFLswxkk{_FmtWu9zHT0Hf_$^FR05fPBf2RS zif^fcF4O0_Ijxlc;K31q2LD^;({Sb{KA%rs4^4Z}+1c4cxu5vlJM{eLy+un7$(}Q= z?5L%;i_*O?7-pG}f8sq#y6e!QpThl;o@|;Fq8Kq);bY57wsB(<2YRrnI-W4*(U8E`fiN zYrpp|{y#(C^V&OuQ_*O&X=~^CU0skC?^kD+%sh!$de-OoVRKJs+@&&99D@)Qd%e1L8)-ZSj`|ag#o^|L_G2-g0!1!{6xQRGDxet4F=8-K?xCmR@vWc-nGSkRqUM* z$^MdO+JgO7ibe8kFHMQ-L&#))clUusc1cwugW)rJt?li)9iLWx?C$$pyQkCn^ow+t S>XYy0CkPu6i{_w?l>Qrmj)D0A literal 5561 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 literal 5637 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 literal 5622 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 BP}=|i diff --git a/docs/manual/images/value_desc_int_enums_t_0.png b/docs/manual/images/value_desc_int_enums_t_0.png index e5809b8db57994a97c780ca8464561b37dc1688a..fa64034b35b16d78b5eaae05bdac375ecb37b065 100644 GIT binary patch literal 1964 zcmbVNdsGr=7RSa+&D7e)Cd-`BI;-udX-&4G(fA_sg|+D+AEc8q$f#2)3J6YPW@^}4 z8f%KLOj{p_qL72&XoiM{4^kWmF)`5rBwvUqx-_%%$NsVBY6U|{38gYIH8{S*|6o5bawln#dQ?Fu9lfPVF#Q}h5F zpE*6}TSv^jbg+HfvCMh1C;qaqkT`b{;>B-<(Fcf5IgXFb30CtkRt92CDK?8V zh=0nLeWei~^o{3**1-`fQ?s zZrUE>c6ViGzT{b`Uj3z}=eLu{{a{_50m_`3z!%H4(w8H#f)JO43nbT9DsBH1#+|4g z)f~;MZjm}C!ibMDa7O~cb2&AUDbNGeGMb;jitf-vKnMqcd#mzGrZDqY%XQ*M-RL%%;CR zLWKMP)cqrEi5=N2pa(Y_yR%fO#HGk5ixV}3jFzd?Xx8=>HEF3jya zJ}+XVp;U4xFhl+Q+{NQ{d>OQkXB6ohZ3!H8a&Uk$M5d9x$5uCR8}Hv{F>xEGQ|yah z$G2PJ6yDC_(9fkRg%Bm>S^?2ZH8{;mZgZXmZ=&$X{MMEhDU-=i?>L`sY_3z8c&%HC zpB+?EF@JryA*@-hW0Y!hJ$XaD_&Ajj$w*&}nQMjE_+p$ziF|GaC`rmCQBjNpvm@>l z5{Wb%TjhN#s{iT<3V}e-7SHQE;;u~k0jDT^vPrDXiYJXmYZNP$%>fl>aRQ422bzQm zgWo;ljU>^9-_XwqI%bL>OFlCfeWMKVUK29J3dRM55+Lj{)(U>V70CsIS}u8wbkV zGJzcA_|EOzR4+c)Wg{1~Bmdb9V`9dt?OJoptRF@k^qg{%8cs}1P`a;P1s5ECxhd)B z==duGyG9muqNy{#et2|BNKcAWZQm)EYB$zmi?V)J?{c-#Xt!>Pt%0b)1rY;2Ffgzo zoRvxy!&P3f#M}3sNAu5MR_6L?>+9>U72lq=SOWZ^=8w|e2l@X$7nYN5Jm+!?JkU$M zsI)Y%*IE0R=w-I9rk=!`I~*Jx1wB1I-Gu8skHPn1PD*mD@s{tCC2YdAUP)mg9*Y$Y z4o;s5V(C}6xW1Aa8WT0DvYuR!EvGh(JYmh?p~CxpmXlF4@Q`cU$IwPNL2ewW z^S?})$Qn@%PnBD3w-&+9{^p9KR(etV9*~{Jh~I0+e5^aU#&?ajna(d1j09 z(zGhId-)KGH-2hK({>l{ut6PsM+?CFOyvy$X z37`1n_T*~EQ^TsWhI~{c+&I1-zm>ZArjtAg_XvNtXr*ohCXFX=of<80^=FV%X95!% z+-)>+DYSqX_wbwIF)2%EpIS2%e%_BVgR0AUe@S zuTi7KUU|RoU?1(H{T=M<+6Sv#&sxt~&$`!L{=Yk1>#-6k5j_zO4i2e`vb+v(JOZ{X zFg~!K-Z4Z22V7SjB{`h3Z+ACwaA;0d#XY^5p{p zuN0D+liK$$Z{3@8O5Ouu?x;|LK(Atz;Lm&P;6z}&;2=fW9v(&{xicZ296Fg!XN(*~ z*+?3!mdrQuEnQ+RFKOeBJSd(`MQ$)vgw+qr#qMl`Q{uTlFKqqoE@E2QE&LYf&-n_Z z=xMph-I}|B8dyhk!0%t|BKA|U6QxG9fdzeOj1gb1FVDD8ShwS?@%!C2^>K!2!=b{#cI-fSq4_6E$%{wujbz<5rHxUn7vVw0De^21l z%;s6o4NaHu6g_m0H+~$efL_BXA!p*e03D@!%o2Gt;ABN>b(X19aQnd9k1QR>i>URA z^`naPOI457hbB2PMIGq%3Uw6LJ-5bG*5?{MV=j(2A5nAb4m-O2?0aXkHC8CF$1+7t zY1Fiwj&PbEJMr9^LXH1re!W}k`3-ub-$=A%B*#CibFD}w8j8B#Ft^KL@#j7uoi>N*eW~rVb*$@sPI(h}d ztl-;@=4oL0DvYbqQL0HiDTa+6rJtHN9L?^Sb@bz1hud92Ps7Vv4nGiB-AycTuvu;R zneZb!?4y!;Z=}y%U2RDr28|8P3{vWHe_rp6nx5Gv@9LRm-#U7P;|CRxTHDQ>ydqk1 z4cf<6tzD;*z(FHuJ(PjkU1(kKDv=RbOyo7ve`P74lIiy=+0pcB#N(MvC-` z!{#2-i@O!vw#qoP`5Ho)I^1>3ZLK?oiJ=a8t)3|@bvU4Yv^L0EGGvkF)x}<7+8&7V z*c#(%=1{r}YgzA!dp*UF)e+9RPj5iGKU)`bak6cValgKBFEXktbId^xriwE;KwWUF zvy3~Sco~o&XpgAFOyY1QkN`C{-Z$lmz&15wYk>eq!^rZ}#9XqynMR30A5V9tE%ehK zx^k47w$3+ocOERYhoki5DteW7wnmpbBP{&H=6&~@^Jg3Vepii9UH|HTP~*HLcLXz0 z`S#(V&A@vB9~x0uQ0z)~4C0nk)5K&O-+~#cD-s$$xsc=oe*9dk$>*eKgzAt!SuqBt z!KxU^e`Nl$ZQJ43IPN@N6Pb#99HbTYh!YtM5_Vpc-5UOQ%l~K)K~bYbuzvC>+A>GT zbr@qiR`5~cAwlT?lZlx}uy15Y%J6v^bi|nK;{7g*;Cz#}s|H8?L6|}E{io4@_m!xS znVYS>Rzo#;xm@2JSq!|nP9}f;HjN=6WSUXjEL;ogW`lKIkLH-j&kRt_^go3{#Y+q- z<&<_0EhyzPmZU9Ww`c1fd{R%*X{8KNO&1q&-=9Z4Km^_HtFfPs_nLFUbmGcg9JE6= z2N4TnWfFbJfJM3u*)Sx|E#8B#2$E0;6NmhF|2f|$I5DXDJu2mB*-;=dtgJ4Ixhd9X zO;=g5l7Tz1#m-qO<%q-fC=#fk{0t0TZP6WVGfCUZ(|#d63}PgMNh+rZSx;0uTkZn! z98vMMOFilw7hfWfuv$nG>NigP4EiWw?164UEDU`0*$M$M&0i`m1#+b}U=miKxSopP zl|iE0+k(Z+hBZ`rb~x-Xd?PH2Xuco7MCWGz$)x~d7xZkc z1FL)`>-|g9wNUKU4ZFU_JiBG>>-b0g2M@}Qu>#zO710V0IrFrV7i``WrKF?d=z0m!`q zYoqhCj_&5|p2&28ie1S58%8FtK8Z&-xc2&C4skz{jO#|jW=W`w{GEM3r^G87TfI{v zLbVR6{?;sTJGAu-`#qiKoI^kRlecS=c%D%vihiP42b6$EnS(j+bXOF^3EFpR)fvc8 zA*3Mo23kNa_&TV)kE-n4E6~mf8|uPTJgAG%JIl2N)JrPk?Ci2zbTp&H)*Z&mw(IYo z)KEpG1-C&V1AMy#Vx@RWt@PUdA6^`eYRYs@yNL6>5y%~*6bwyl*dZpSW#E)qY~p5% zrLPuYDzt5-;DYLa!6}dWj88*4757{JToij$M$wD4;e|G->CVb__-D$Y&!!Utt`3#_ zY4p=X9e8G*UteABw{E-U@jzC)sDat2=ZeLYV7Db*wY$XIY0fQfKt|dOWePYLOtMRc z1D_erOe*3W#?WG__~pKzY63@;w6~7&?mB7nMA6g-_7+|B8vi%?MU{UlyzU+ zrwlT?$5Ja(XAQ=oe0XJ-F*G0TFpJ7$v=Tf#ku*F8i*-o(ns+*&?<+f&Dtk!To*kHx zt%j`r747gyj?%X8l{ACQ%CVFaw?$WENLU@4Co}xUt`Bt@nML}?6wzYQWzW+)2kuFo zo;#)9l?(yg=}{Mr-dq%L^8X|MgEeHA54Ntaj)sosJQv;!C0&v$ECRA3k>{D9?PM7$ z%oc7QssvYwXA`#h&ej*l8v0W^B*hyjxyO^HfzOC~H8xmqUf0=A3%XI0_ws_9{C>v+ z;UGr==HbOJ4Sr;2`*-7vSm9 zh&b>)@YEyO9(xEU7du!C2E@#Y1{)p`-YGe`;B32!Dj{C965tqKcfx~$gQS2tr_S*@ z!9goP8j+ZnXUT$_L4Y|@A954_gOAicxGm|th{GuDCw5M%7IBCPTIuoI7-r@+thqc4cxmTEX2Of9wo@7aIj&o3C{kqjxo8usktP}i2*d0n3HPmBt5(l_*vaN- zD7S7w*4$qeG&)xJ#G+)f_-T28NwW`jHx1#mbs^!gleINoYzHkvHKJ`?f%2uBrw;9l zXD9yIn-GdmLMJ=5#2*_{3zTW(ZDN|S{jaqhOQShTF)t1l+o))0@)ig+Ek?2xmLf&~ z!CeS2oNksZZgcL&L@C2(r-h6RnLtM_V#p^z^J4$I3g4wRAeyOvg(5N1ND*Y0iyBNr z*fr;AW*oR(lUfc;h)iPgkn_2|_}oQY#cR@Jus)a}Wt5D23jELS5+h~Ls^0>F zSmg~7b@pew$*q@NGE+(|+Bu5!#7&;VSx8~qv3o0(yF+FcYiFI3ItG-U+~f5w7HTHC z2+a&h?WQ)YVTIYNWhsAmZ4*syj-svU>U^Jz4;8&HWZJeu`aV&3ALOo^iVKrl$qxmNib&hjI+?0`be5Hw z%W*9R`@{-(|61jcz8C4qp90WRnj6Zjmr?UD?-V1E{z*y#Q9ouB%vW0LFpEw?%q$@_>Ow^it*2&qUaWlOLreA)ri$2cb5t(lKCUA% ze!2dw6pr{_Z9U}HdI>1T6RAH))87}{<>Tv_fn`T<35Ym`ld1DHc6o4>x?5_j#s88D zQh{xyd*@xH1r@Z^x;)#T+?Vx+=~CI#j#BXqz$Cqb3Q^amvrZK9Uwnq*%~jF5YYNTy z-F3|W@P~i3TfPEp2*(x(J=-7kF1Ei`dy@oP5OHx(E3dbLz4l`^-*dy?3`|#BPrl{P zSh;hHY@fJHw(30_dAzm1+B?AC4SPtMRTJ-hG!t9sKuUF12RS7HKA*gNlE6VIP8k2- zx${tU(DE}_a?;-x13(=b45Ic2YUr9!dP-MWQT%dTsnAeR$p8sGe0&%A(5D!2HP-2&r7GW5nP zExO$nkn;l{)0UO{0kt0ZMfoKqt;adGeK+}bxeNpst?5odybQw;}9%Kd=- zUr6I~w&y@axW(y<(@~8vorDMi=4d~?tdI}t$A3D9Xxn{bht37Cp3+#e-eT#_&?3l_ za>R+P9;L3j{4F1a7NsO*5LIuCS48dA3w!JstV~?3zWUM>9T5RE4~$a(Mk2DMURj`x zWM4CxFI|CTvG+sO>U6_l)bzQ@<%B})9e;WcdLVlq?v!4NB;9|kj${_1Vi2?plfFTZ z7wL6W^O7=(k7YXn1pVUQAQW_berT~GT9COBD=9SE#^W$A0;;cF8E=Hs9j!8`)7Akus;)enw1E@~4SGVz(4Plr!e` zwSrqQcTDK&llmY5+)kZNgBE$iC$Q)`8-3!FpGoS{xO8tM!oz8*Yqfq7+D?2s-Xn@HQN!UNzeV6UVPno{h5aVJ8)9oS_|}+6bvBd zd0j7H(^!&!NKJ(DFR3*V*c}7q_0rd>X|?T9Ta2}!RiC_My<*X8#-$x|bUts#3x49| z;#M=Zt1IgHJ4ud}8kKD%rp3#PVh0JW?p0yGGUKOzp&KZGPAMHLId#hGT6A=!t_~6q zUcngIRp!a8madejwiB|O2&TaJn`_QcWnCqI>(!MG~*3EJ#Dyytbe+SD$`LitPk zHiE9Q3gsu+TLK2%*&psCJo(w}1SW5njbtmL`XjMY&?kPFGJ0?(obs?rXx+;8SHMnyMY6doHadkkF9=~h++<1xSba)XuL4vjtDlsW%pcR3Z76jUc zsDOe3Y640Olt`cr0!oyWD}jWNMlMbGL4+KDK!1BU$QxuAP~rUq>pz1I7`4@qPY$n9Zu0v;Iu9Zbd! zFVe7m2A-ead-B60zE{sjRhS>yP0|j(rMCZu-5)~MKy^=>x3`7Ggmy=5xYXtakI+8u z>8TfF5P2r@+w-)puJJJo7&H_;z9M%lde}%Pw1UCzbz33}??Ze=FVkgO8DR)DWCKSd zM{l3UXgYCKlBqlS^ygDUhbdn`03nl$7qeo-_)yHpl?NpA1_lPF_ZU`lJu<-6DecI%uCw+Y)uXSkICm2R`+if7hqtMmBc z`A&bgU!5AoG>`W!S8$H0HM~7VS6m7(A|jhmUK*kUf4q$OnS0rx`5c9)@i1A3_CZ_< zQAnhJ82>=VFcZC$XH(g;V}2LDS?4%CYMq?b$%33<0-s`K^>UZVIX7>G*v?NNd#-Qd zOhFdcX-E`{&4+el0lrwm5^k+OLpLF<_B*JC6olx)_Xp#8Djo{!%!<6!M%6Yuqa&2j z0fwa2|2fUz4HUGu1Z?WKv!tHck2x?xtF09+s-}Ub-4(I`|HBon0=Yu-XqKQBE6Ub2 zqlo}vbJ}9xm;<_2z-VlQ5w|p!XF8dlE3){?#O3S*KA%6ippcVh$Nh*%%lOjRW(YfR zhVx21)JPz$ET=6hu)6OIp$!ps`(}H7Zbl zS8yf^l=B6GhQ~O(SlXUVZIbHgfZotm(Ix1KXPgy{@+&J zhv_Kx%Y;9vR2;!nD z#Bh&xdlU}m*fP@9aOX||(>|l{iF5s}(Ar9JJM>@C@XujhE4K`wm@`KFl$C~VmfM?ndMuIQYKJ^7S$VJ*TQcV_nF+hvE=wIJR!PO<8BG%H9vxHBr8yV&kuuLLjKbU z+m5)V6^4@STXwpCl(nq>ymJmUxI}M7se5$D{CA}+n(sXXw?|kl#0@JW1q5It1sJ18 z+>eQ<*p~3DmcDG~GSkbUHqh(RjwrS?O)m4LaRV@NPpp2e;Yd|~p?;5xXm$`UgvK8& zTablfMK3Ucrh<`fhrlu*$j|0?;-DAS1Tb^mD~;?Prjp6whJACSJ1MTUyZ_?-GtXmMR7e7q?jtbab z+~5ay`g)*G4}%b+ zMQ5Vrp1kY5cdh&VezM=4Gqawv&o0mN`|k)HEfoqiDkS=F8@3OWIc3rL{hf7KbVn3hsI@H&8jvK}P~Y1u4tHI0@vT#G)XD;s*qL(Skg`^= zkBAK$4JLwYU-c(&>n}BVpy6mec#D^d&tBauc6Yu;{_fkk%9rr67h<18ZDNF?l5$^m zzkl)3xW?Lhy1{0Y*>1Vz$wq&I%HM8PxjE31dY5rH!7cLahll~}o^6R?85TR97hoV? z(Z}rj!F6*)GnAAr_wlkc2_7F&B^w79??tnt+aBp<}Zui zJS75et{9seFahbkG52OVAj?iE*|mSR(MSmMjZ;P{zhAJhj^gl9Kf z52+CNTfGFD!-`Cmf9I-RM{=`e?DNi*8jFf~9auJNa)lK?ugcw?LMIeH zmzzxywlD-rzz7KD#B)3dm#-W`I+Rh&F2BirYb^~iRy@KYB=?%$c zoa0>AzrWm^E;UY=DAd;0pk1i7rRn50Zg9-FmKuu!9M%H@-||h=dZ=jUZ0MW)a+%5F zR@54Kw}5f=nA@ndinQ+;2UmXKo9fx-cl%tKkKW)8Rzqa&zw}^w^aff0i|Z2lxT*g| zBj-h(o$f#)Z-lDK&)(=s{v)7J9iEhGY1l^-ICtAtbbL^?8f1k9(^+H3ay-+YZxm{0 zmA}KUw+x~OBFJT#!mG~}O?c4ZA;ozgGTA~OB;w_B{#%nJ0GGoo*AhPlcv?&2G#$35 z6-Ie4+~!@eS#v$J;^p~%1GCCHO(!M!fKt?L@9EK!eC8ALwEiEK?0C98OhRV;srVU}JGrfaRlUPv{rD7Gztt+C8DF*DaY+sEHAC=XRQ9h#AQ}PTtucc@}3$K*y{!4HO-`-hO^6L0e`kt*k;j zOQwv^pg3RRqHqPv9^R=d)#K~e6ZbGwj({3P g~^>+@U$0R*D+p^8GJYvhRBfG3z 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 EpMlDqNdN!< literal 5726 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 c1GWJ0qQl0o9kTg) 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 diff --git a/docs/manual/images/value_desc_uint64_t_0.png b/docs/manual/images/value_desc_uint64_t_0.png index ebc9c971a3c1873506004cf1a7dbda2dc3472747..ec3a441d6a0c04c2a8eb3c6545e2cb07751d2f8d 100644 GIT binary patch literal 1922 zcmbVNeN+-w8^^39t<=s|x>0E9G&QL(btzh@IbRjEqm~%pN>U?3Q(P%RQ=6renZAn5 z$g(Le1B4X6P|N05Xf7>3;6+}gq=DZg2#Ai(>Fn&E?dx=2vE-=i8-23Z|+q6>j`$4nbW7On-~!Ui|&bwj^ga9cNu1qsYjgJc=pYLGx2d) zYbSeP*7Gb!a&2=LCN<5~)UJ=JejD2kZn`nv|K<9fH*QiJEHA9c=9WQOLl^1QrvOFX zg2CP#Q!{JA_1+HIh9ytp>e$@>njbhD8VDM&6j2MF-y&kR{5PoJuDZ0e^wL3#8ve2C z`rV9LA(b7zawL5k3YDw0X{tFS-Vzw}iJxqTu^u!OeE-M6z)3@2AlT}}3c$S6=%$(1 zv7Eo4T-GpxFDyuhpgE-J)NmZI;RW=9mr+2`M!a=yxV*`1!b^2a@5+cyt3F_^C@m-! zb0gvk>Z?!_OM|LYBMmT$Zm8QPud-8OFBq-*0xjLQkzs-s^bNLHooy`ntua0t0gll2 zV+Zlxqlc0cAULt71YMN4UHDU^vxgl-^Qict`^$ue*cePt90P=;cLdByBX!` z=b@tiyETg+9ou2QKJ7|istyj{Ybiu(@w6|)LL4cy3#5*x{If3Y*_0#Mu_B|$+ao9% z5h?GD=4e1YuIrkwFUPg>jBF&|4z#-G&)w&=12`Hb-U+Y8BhxgfO3fZhH5R{;2fxGj zDdX6Qmlf?02efVkHqjygaRV60v<<=jD}dXP5D%Y->HGf04R776Z!8=Mjdt$lf_m!f zW;Xt_6o1Tq0jbKKd|sU4GX;B%y?o&Ry6Rr#$z0Z`+?=-+H^F270QN>S z3L7%D%AffOcTlW26B84C)%~{MJU80~?C?l^SIA(ogv;{L+3A6DSyAZ3UKPP0UAeqJxBkpm?E_9Ah9lhRfy7Jk2&5kuT4T zvCpSX{jw!rat686!HV$hHRTL7Q}ezrz3ncQx~$ENMxnTqN%qXG81wcgza(F>3%OhW zEZ4Mrd_82jouEF4#bT$Phwhv-=~c~(6ET=Bjc%d`RNSJ``@^>(q8@RW@pA9JHZTn^u)rXPkv>u^Vz0Cjl%IXb4(!kF>`J8T6f9) zhbPxX@KwB4nW>v5lxZx-895%{5FW#q;_6v{^xe<>_1pAlho8JrnCqT&;t~y?8UH zniI8JM&z{UaaUJYE^GiakW|bMnn(f~O`7=9huLttLOPhCoH+#T+#rCX&Qm|P59$0#82T^zGm7zZi)pi*A_-Tw4bEDsOkb4XrP7|Z~J^yl`r1#(ufrE}xiiz6ft!GVT^aU35&@`XGHs2^P;? z+1-EiDn?%WEO2EAP8``Z*}@3w@DmPcYBDN^1Sz6He9&0|U)cB+bumzTYTzPdzN|;M zAG$WYy)(A;aoO><10HrEh{(k}+vA7>QM;mON`kUH4PES39gMiBX4=jYaaXqbATE>p zR}<*6FnqE0z>kU3NGeA9rlQ>QJLt9wIjrBM2A+lOz|Vg(O=CqL4 z3x$ugPaHUQUOO*|4GaB=oj;y5F4o&+TO0;LQ|26Wn$46Ma(!1o**ynI~eheg`FSuwDQF literal 5778 zcmeI0Wk6I>l*eHJX&D(tV(4Z-=}@FWY6xKfX(gmvkP?RO21#j!VdzvEB?OU@ZVBla zNy&Zge&7AF`)xnWy!Y;V@80vyJ@=g7|3+zRDwC7Yk>KFqkgKXF>HxCBRK0 zdlwdVs89f+RKiuiCzqJdj!QtLok)-5PF8ux_o(mhWp>%Z>|D#)A_Mi}qLbFds+WzQ zjc@y+%g2_342{B1iBxj3U?N(Os={Ql2s;rGhz^$}?Fmt^Y~($#P8f~0ohDdiUy*2k zp+)(7IzN}c+CBUg`Fx!ZYN=dWxt|_#nMqMXHF-O({*Wef{o$hNz9f6SGx@_Vp>nb> ziFYD|km8unV|@TRkRfQf@*&hnn^NIvdDN8nP@g(_lQr7luuG!~Tz&#K^RmZSv6 zX8XaarX&oKFSBjT-P~8f4@Jg{#Bf7@5D}pZXM77=*Z{j8jqw#CMc9~&qhIYr?Z+$1 zs{9{zq(}b>ty^*z%A*r1WHW@w7I%qPfMYQ}G8FLV)y#SoMxxj>tZs;u-|0w&ann_5 zytE*T9=(`xo3AK?ge%IZ$yuW{TbW)b%G|Wc*>twi2`1%#F7Ti4JS%!S3V8PVzuq~X z862Nxs=Z_jxufvF2EMi0xzz4IPY2Z#lq-vZaOtGM^@uJz+b*^-bl!uZu2I?%!(SsP zb}j(xbSjJ*N}tzQAV0aj+#W3=H2vht^1_lFCKd}fs6=>d3{9L_d?+=j%AK@4-JN0F z+nZ}jpc8jSJo5NG9ym=*^l+qzYBx;6by*hvtT5C|3;0OQz67Q-dlFw@)M)p$Z*qVC ztQSeYy%;&!nUY$oc9<9`P(VA*)TYV=1_YZew7lW^lsf5t^jl+rYyQ{#XAg(n#lYLQ zz!*7td|j5Yw2gpu1fE-CN|ppI1w&Ibl#U~4&=UuV%5sy>ItORH#;Jclz+`OghjJc8 zGYNQJo;n@nDn#5xxB48F#ZdESdG1VB=pqE(2Au7iin_0~nM0(Mfuh`|S0`!R-I6^+zwj>h3;145@fEl!F$?#TZnT8P>hpYA#Yv$a247 ztaqHz!Qxd2yh_!>=%YadB&E?%-YgA7rjU~0vvHS>>yH@{zO8M(Cpz?8Swa%$D>3}Y zui@kqnZh=&uYnn%(vojpgin_~V-vOd2CmcMi~ziyvpro?q&HZ#>M&J_ZgiR}6Lpxh z;QUB3z2~Pd8wf+{8RE0B6q3rLtCJ;S_oVyhM-9weqrQdM!E6J@Os*#4WjGn_=6bsM z$6P5tO2`;IYZ<%P<`>09PABaz@p6#+IRhaDBSJNqUGSjqgumk|xy+zSQ#FN?gOeeS zNye<|+s;&#_Mf7ZXhzBsnq9!IB` z#-jTF9&P;aMR2EZY83XwP&*8s9xPQYj0;-!W(bY6nYMT_7WXKDNdt9S??uw;ytJ)q zJIxXkSqTjzrKW5VOMPH0<}n`GR-MHhF7(RRi~J0`8}Uv{jq{3r3j>Xj(}_fa`GXv}BMTU=+9nzMhRqd@eGo-v-Nh2wZ!jH>~l>nB}{==qf}Bpf7nm<=F(#;YTad`)F_Hp68=gri^m$TGy7U_X0oAc3U~wYjAN znX(H?#FR|;8RYQjs)*z>`#h_+eRkdFmbkK;Dg9edxkj?YIyP`R4he+xcofJ)*@DgQ zbk}~gP$@ieMdB$Gj#Oz1VP;UpA6i6Pe}9)Lbi

    o$9p5?CtDb1 zbkJ*Q6Vu|aNz8|O%cpy@4eCwSTJ1D{!f#Y;nX$Ok!qcE8s29pvg^@t#(EqU5wl_Iw z9_DOlkPM&CSG)YB+}U6JN2(``39=;zjx@x#fL~I_>C4++*9}XnADXJ46A<)C$HOe@ zcbM+Vh9Q5+ilW3)IMkm4nMvc2uqMZ!IDg_>)YF!mU$SZ{(7Q-HTL{I6Dt>!BTh?bv zMW(l|C@w)g3GFm7(>PS(z{KzLt_VC_mjCURqQJ|(TR;5+o?rH){mXAzJ8!=l-*PGC zQA0kDB^9sS##i1p!NuH@Sc$sBaKtD*E!@^_uRK|`qtFl+oU$h5SF@nrhssgtgkuI7 z5T$NULIPW5z~x?(Q39}@{dTj~h}IQ}`GM+gmMDP%`IQ9TUZ43MxH-~=G$pCHiGk$d zHgn1cA7kF0S2qZsUJL6#h`{XGpM)asipz9(%XOII!?fFv$J9e(xf>Z%R!o4Nh8p4) zArz9|{@i(Iq`qqxZ|arKZ@&McLP?Y*EhG=uu_9KF*hNIn=L*|*($dgP@Va{R`M+Cx zcz>1`zMd}*al7Kyq(APM>Mu>!ieO z*|7V3&-2ZvdtEe-N5Fp7mbx130>u�AYmp3UxO$vP4E*VD*^DZi4ozF9%D-5){C# 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 diff --git a/docs/manual/images/value_desc_uint8_t_0.png b/docs/manual/images/value_desc_uint8_t_0.png index 61eadef94c24f7b0060ad293ce58048d8417ab0c..49368b915b78420d2132aba912e51e9f932ef71a 100644 GIT binary patch literal 1870 zcmb_deKgZ+9AEAgNiT}1U6#1jro2RN-ZK-YJKUKhOhjdj#8#J!lrE*xyj-=#+A70r z64PyqrIcGsMBB{IOL`ldAGzMLW$xV0J-2^4r$6p_&hvcFc|Pa+Jm>TMJm1fA*57yc z61_Eg5C~+6kGCgA6GfU?qPtMDTI_K-r3nio_w4qB%*~H$4a@=vMCUsn&t2FPSHWIE ztReb`ma$P+X9LS^=gy#)qo7v8lY8OA-;+a~t@jOPtX0DzLD*4p=qH0+O>4JBMr_z0 zoTIyn@k(kk=H0`*Buu&sl$5llAG7B-h9AAAh?endRnjZc6F&K6F?dLndQljp-62bF zxdry530KCsW3gAIT?|Dm*J1~-uX`on(8zK~&3?bR+husp5b&`#vHJK- z6}&ihO<5^MInpLe3r@?o^chGrY>+V5i)M1rY-AA;GwxeATE7KcMG)c-RugzrGL>t; z>zI_LXt2J%T~L;FBot(3yfIGdd!m=9Rf~VJIJ{^U4z%tM;3?}Wn#vhsi@??NRgdlN zP>mfVO7!EnR+hiEC4y4K@FLjAM{QPPS ziBFgw>8)k6+4Gn`D$drVtGm1Vc>!C4gbUKShuccEIr`RFh)5_DDjuCaUK&^8{7c7s znT!p93qK=PR#v2uo}E-G6_9F}4G%obo*I|6oh)iPmZ{50YXd9V@z|5aG@Ic!sWn!>dKy)-s{p;=7 zv^lkld-O(+@^up+upQ{?x@8r_iBhZH35z%Ttl($NsSB-6FKe8E(z)ENQ2m9Z!FGC2 zi_G5Mo}`*0@Y83Ng)F3jhY{T-yz#P>X7J=42;Ax1sPp3(3~wRQFq@tIlWakfJvR*r z4egO`b8?E+S^C3eQq0Et-bNJaDR zxuiq^0AMc9e8>u_jyrT{ee!A(J2$t4q@*PN_OgR!&L=KWR@>n2IpZXpFle5?qaB72 zA5XcmTA*igGz5pM*Qkk(JBsmKSYOW@siW=Rg4sCJf!D#9>R!!AyaIZO4eF63>Zp>V47R<$7p~^r%X}p-y zA!6FGhYGpn5^SgKBr}8VX!)L$>!tHjh(*5Rdvz_NTl@Eu(snyG`za@E5`00%Qf!~8 zTS5ufI9SE%;3SxGD)K5}NMCkjDZ0>3M1IP(HCw_^Fs$}pf2$qBebrk{N@HfoD;RBw zA4~HFrmCuYV+F(0zp!|MO@H|t84ZqqU<~h4rZ@1$vEW{pzRGhKuRk>uPjUmNLQsTK z^@5M5zs0@36y+Z&H%%7^8gK~|B81zin5+`v(Q!0gQAGgr*|WHqn3y@17Jj7p?8=ou lejzPW+qaA6hTl*x>FjFR6xM* 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 diff --git a/docs/manual/images/vgcanvas_t_0.png b/docs/manual/images/vgcanvas_t_0.png index 03c350fae9059fa31e1143720cf191bcdf361dd8..6ea88fcc71b6d87d46b3a38e8b95b1739b331140 100644 GIT binary patch literal 14025 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 Az5oCK literal 23265 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 literal 3544 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 X;W^(|J}(1bH8L%AJ+*38RLFk-XzJMY diff --git a/docs/manual/images/wheel_event_t_0.png b/docs/manual/images/wheel_event_t_0.png index d19dd3449efa6b994b97a76c81101d0797a555b2..306a6456731f979b8ca5e054494b469656c04659 100644 GIT binary patch literal 1636 zcmcJQX*3&H6vwsGqn4^MMX87x^k{7*)CO(mz|@4u3(vw5A$$$k^A`9de}<4Cktr9T%f+V2lIT$HFbns z`f{TA+vsO%rVVeL$K0T`zH@tna_%>w@#JJ3$ekcXLiPpXy3s97D7wSh0ig`_QBW}6 zV_-h;^Gg&eF(JXy%7MJvC)$7(_IUO^KvQ~(N364mhOm8iq>G`CBIFKyX@LHlZC(7{ zFUVwabDS`pu(PRwH{Noi4Gq*F8lAm`s$>&k&S4PdejZkuu6HFkuS_+Yxm{IHjTi77Mj4k_4_QQJ z=aURybs#euX{>NR0@af*JQZ~#_kwz!YvJzX0jjouQeQKNOX3`K4|O-i7ED(SbYnt} zMT+NLoqKd*pQuWTb4t--VnDQ=|O+VvJv@=mDz7<3?m&NTo%ntV&T>am-Vyx047P z33SW7IiJy$9afyK5_ac5(LyRTGc!x0I3GtK5Swe_dtMYrZM<;>gUL*%Jl7&?9oEzw zo=?z`cK1)TrOuq{Jz)LRtqiRP`_$E2tU!khMmj6BJqn35Sn4Us(K1g8;jSwy}aM3lPjq;pR>om&?WMY)ZhC;5s!VY*ElU z)L#a{E>FH37Yf=_+uf~7^g03tWw*NOe*abDM60Q-Si{jgv-Yt+y~3X^nclg*U-g`R zoBh&0c^lck`2Xl61kCjHF+J)G+D&G&1J!VKq-#7>SN$~$D|6iTl*1_Z=>M^3a$ZzU)e1<(F zp^*mfEL1auJ!R0C`{m4nxD0vg^fKpen8}_3v ztoF^0Fb{M`4BacLV(851b4F_Bl8pGXe!47U>2g$yWhH3}=8cw5tt<=nY98<|Lk=db z=65&0?a`^rq^{EA*@2D(Y+r0pz4=g}?faxf?|1%JLW_mr_4|sn8@p=#oC@rL?Nrgq z*vY~)t;@GR2jrwl>&DKj`)O=uXV@IZp7^+;qGGI9VJnC}@_HP2bXyOGTPG#Ejeh-! ab=5OKTwc1*9-eG$$iZB_T$s+6Zv6>JP8WCp literal 4208 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 diff --git a/docs/manual/images/widget_factory_t_0.png b/docs/manual/images/widget_factory_t_0.png index 85ba84442f6a6980e81583bfaf05dc7c8f0ca53c..4badc09273d8d1fd87fa6dd07b5f56183248b4e4 100644 GIT binary patch literal 1766 zcmb7FeKgZ+9A7w0otUdA(GumQ(#v&KTWGW0S!H91yD6`c=x`V+Ym*dFagz7S>r{-9 zYt-z8Q+a8Puvx5ePx3aVG=>%KuYd0CkGe1CInVi?=kqz=&v{D{7ZL%5! z01hOUF}`}ZcF$g;7E$8H67ABMD>cnpP>sBP>^4F%S|c^BI?(@`ZUxwUZzAe963VmP z>`BGj=eT#Ah3B+oXPZ(Meu_M$Trh1~duu=u=X3dS0@5185tQNy@Str5DWFt9+ucjPus-scO~7S8^OM4SdRGIBIjBG2OKTxZO zIDck(nb*4r7xW?xb`SOAG7;u4NfB@2ELm1O==p};l6u@dQDRfl-lKK(7Cc(tfI;Sx ztGjmaS&Vg`xwSxCyHf#v5eLh12nNTVFq?ZkQN=2|K83jwP}oCv+$dj$F^BHtB0k^u zdU}DP&L#($X;dUwxl+_WhsvG+=t0<}ebNcYYs3%E`NIqNO4N8lYfci0-D-9Gc-ZMr z(=zyd_<0;A-BkC~dY^LL7GPD+<(jcg^6l@sQ5QZU;BYwm!c5?}{4}B3i&bC0j%{LS zz*?M*-P0I3)W@aF$H+xCRP}7?%JyxLXxx&7x{cfR+X`bI zg*G%a%#H|*x$$#Hpw2W;uCHW7kn7?t_{jpXWiI}dvE9knK=z4huetXfh6;t^8Z&1b z5^|U!?im;;2xAq{`TO&Sc+}oWNsXrDm7zJq#9<^qKS@`Svt}QV*WTaRneO1=pn8Zj69@zYGMV^>@oo+A zD`S9aZA~Us=h$YyOdMIWW(|o%3Ouq71mJ)k^W@V~Lo3{D6`&Wt_^F)sWx=30ga<~X z^Ac8=LZO@NNt8v@5-VJ?4t=}OiCRDwa%P^@nO0X5M}dxTLx6}EJdHi;c)opXf)pxeQ0M> zSi=V0=(wpjj|+p9N@c3xwtmFTfd6NNe=LyiOG%U%m`bIZ{jx}2T3&*qs5`mT&t7CQ z88C1_RMbo})FaoD)pUrWs@j!mTtnbR408HqBT`3;mg#AxWvX*->Rm3%o z{o)q9@vJgbXI`szzbeMMP()|=%-e^!FYc7$cH}z5${V>0>}f{VBX32O)HIHd9f6ez ztrZ(a59q@(&Pv;(dA)M`3gzvPDadpDVa%7$^_upfc}E9Aa-y;K4^^kj<_biJ&N?A| zA2H`vT^Bw2?1#yFZS})zMNdyNL)UQDsB<;On+>8i`26{vluI?nM z-_jfwloLnKhI&4D)SHVf%1FJXCF{U91*A{Tzuz*E%q9o*QC*}TuxS3sQUpjRdz050 zAL4+CpTi?Au`z#^w-cX|YyhT>E440Zy)HS9ek}E1wJki M7L7wOk^Wcy1ePFEjsO4v literal 4776 zcmd6rXH=6-n1%yJ3Gh(_lxCzz6$I%Yq4(ZF>5(p7L|Q13E=Z9U1Zh&GMrn%D6%a!2 zy$VV%q1PRE_t*a3b9R3ub24Z0%)B%A+|TvAQM%eHWF!nE5D0`!O;u4Jv|qp{2X+H| zH`NvjfQG^2QpqEK-Gn*7CwhR&)Ykf~<<^)~uRTeoZQTEZawlWmlⅅZbfbL&AzS=$-g z0dp6dX`X%3>t$7klT8;AXJrjd{)e4bYGF`lB~7rki7CG!DU1#(`;3yM^d_XG>Z_k# z9giS=h*9YyJxfbVj>jzfjgQMsQ_@A8Z=+0wnxLPTkB$i zKJa4Gbi@^?C2_RXyjc7}JXz=IFpVFL(t0O4 zaDx9`uCQV75(3L2q-64)CvX}n)H2t=VIJgpEVZ{uxo6Uey3o0fe{4bgkiHJH-LJgK z{Q)gceah;otsOVuv2u?ewb#jcPbnNRD)>hKwQRzA%V(Dfc{t)lPV_CF^m2=D-udr? z3*i#px*%w=|IwD=XE%$IN9F0nQpwFJ_ld%rp{(cDO!MfKC02U{~!qXrYR4gRiDJ#2e(`sd53NEb$x zxI6FZh3xw?eP-1@&jm^Jq>JG6c^LdxMFd4H{5NZOH5l18uPQ9QeUT3*k+kcgk@nkT z%SL!b7iniY+4>)D2zambX5#F+k{3owALF-XzSU?fvnWJ-Ug+R4~IdY+zjaJ_ys?k?LB^KXm#Tyr+dH$q3SG?CR zP)}PjMh|CYHLaDD#<=mqQ&RXW($$l>tX_=RmnFwsp)w}L&ist!<`~c8&C() zb_i!XrRe#oT34Zkm-~YiHyWNT5URO5;G%Dxp?}%8&7<^Df@YlXG}{ZGQw|;SchlN_ zdY!b~A78AYs{i!Zz(poFyLg*KBtffp-V$m8Aehcbb-R8 z-L5bwBFB-GtuXYgi-L>nS&rA~%aW?o%Tt~%HxqN4tmYmoF?vnQZ@FQ(0F*|DoUC=l z37)lzI1N8Zv-$l!l41%Kb^bZ|^k}!t4jx+`#w1stE|>c`>J7FxW7^FHiN(*MQqltFQY{%>s8z4M~94v;szzs zdlIjI>g(yzaw>PttW!%KTt>5Ix1uV*2rF0U@iG%3^B44Z>vI@z7KMJ;vlba(Wmg}= zmnoScA(1&Z=R?r2m-Claq&OB?2$VwZUi0-UF!bX4ZHxlA%y&bSUy@$3Ktj$UAMi#( zfGa^`A++ZT5aHDT^+>91Cb~kXPJB=XOvih|w#g^w8j_Rkd`>bT*t@4dTVSXORge-+U zS^~;xWPsWzIj4zAMg}stzrJh#PGS>`S#g&Zi5DTx#E)7|r`cMe2J3dOlivQf?Pn1k z!Tvn=jbTS^875Xzm#?kV>-7=bC~dDd|Gk@dsXG^4t$Fd%3`Wsi`{oH}_S!U5mn4+A z$FHzKBDo-?u+9C6GKoH1JXNE)cuJEf1G7CxQ=eXY?NjRK=T{wY@*LkLdZFu5_F_5Z zF#~)gMWo%PSa#(mnD;J0jL*q-)0H-`Pqvfv^zz)Mr%r?YKh)b^(~22HjH+OH#Se?+ zfW?!=shK47K^YpbO_vDnKrTNONT}vEU90>nko**;|9#dY0Tku)j}^-gpc@vqJ6~4d zU@s&hK2lo$J$o^7b9@{S16;uvCIAlU6(dmvhygu{W8n>>1N!+9du^=#9wfxSgYvd~ z3{co&d$98?2;N`=BV_?uhQed1S!5dopA`rTrvxJ-zj(~2`vBSg|6E3e&f5$bbe1J* zmHn^p_~1TLhQAE@tU}$`L493I9a^BClFQ$C9HNflb)53N8PE|2H!OYh;Oo`p8Mm0& z*dzHHurPQqaJ2q-nM>8F&+bLQlqa{^&tv9y7QPn)lc}W=lx5z4m6?5xV-Rz@v&><= z!==jnlLPFxi<8zcI|SpSwg{YCiJ-+$OP&P31dif=6%Btvf1cMzrisY zL%q4*Qve&}_%%K>p$?o-=er%nrZrB6dCFvXL<(j}W$!y$<~+t>NayMrr|-eq2&v+Z zj?6`}^!bj$DNyj@!jeg&%Y-1N`=4aTyS&dTdMc=tQOCsvYkz( zEyFYSk$WE+vM-6Wp9MN!T^!Bz(Ms6&KISYVap=u>zu5NL0Hi2a+Dr}larsU*vp(B{ zjM}AT14kZ9daDF~*5g+{RmRqOc+VeDfCT*7}T=FeZqxa+?mU?wJ* zhrRGw8}8&q4&=yPL#>y8&P8pbFHa)BdT**P<5G)Cj7s&lXB!+Rs~rowvaQsiQ zsdgOVIIFj>E(^X!l)gS9=KN05uTq15BGhf>Ynq*y@UKrUtCxK;SJhe>l75Mn0lP|H zH*2RpXlEi`bijT3{|w}9;vcO{*Lmi%m~Kwi6a%v`#9B(Bj%IuufBj6rs1IJQ8`uqh z&})x~(2U+Z-d(Z~8!ymE{nL21B^1<`AwI<0lH*#CIp~aSP)1n}8R$qU`OJ9HdTmWl z9NM&o5i1v(zxpx$C^|t+9{;)L(Yx6oOHYhR{b9|UOjTo1-v!Tatm=A>S>`jw4pcjj@nOa@i!{?(<+%*DhKmhiHF2L3-@Gc)$?m;4JrF`* z;s@Vi)PoOA(RC9hfz>XV(t(q93SL3S3q+Xlp`Y<^iFTj4KryUoO;^EDzXHXs|8_$M z$kW2lS;%p@a_8MbedDOkQ+}u&3kQyQ&fI@zUJme-6ncL^rS?J3&s-f|F~&KdFJ3Vk zG*Hlup+4!em~zzl!5ESkPRb+`G~M_pFyL^)p{J(yVU%X&^g$I?4J;_;!I9k$<{qX0r)F} zt!@gsht12_*y5)2BY@|Hax&gHI|hMa2IBk|_nyt5;`1WYK83**9A` zCYRaziSCcEg%6-);IKqC28cK8w362HtoehYh>Mf61LLUtoo0q4QPgevY3pYycJ(iO zJQiPtMO?<;2*)IAfA`W>kj-p}PMrjr4y#Sk>bH?8)1>5ucb> zw%(n7_MI$$DdA_nN1b))(%TRY_NLjFh}ps2)G%{E{cPakAV{^X{8Il=gjgA!SI^M%UtXyt&-g< zy2)P1LF^L~C)wrV?>t&25LS6TaiGpAMItFthp0Y?4K9hGolkxi_M%SGVG!li@&1Pg zN87}S;*cje{Ln672WjuRDhqy%64Y6nfO1sBJg0%Y*DI%_p>8%Oe6s&H1_|(Ck{Q_o=sK1)^kCXBnn>wV~69v3E0ruR?x>r09#w|L1t z*aOpQu4G+X-j+x*M*G4-8lwx7X>5KK1y$8=XG@|6#9JN`$I&tqhRI2z*o+5B9?5kC zF5z_a@HbuVTzW$}0)|pif|z-dlI$O~x+yKJoscm^OxA*S|VnGW{f uTGrXX@{*t=PH9o#l||a-4Q!I)JX-b2U+yF#;Tw4M1W{AcR;-YJ67nCH${_v# diff --git a/docs/manual/images/widget_t_0.png b/docs/manual/images/widget_t_0.png index e9f08abe422bcb254923d6315b273f7bab9eb6a7..5883b24160cca8836120042da525e776482ba88c 100644 GIT binary patch literal 11095 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 literal 15856 zcmbWebyQa0);0{cH%Q7&D-BZ8(jg53k^<5V0@5MftssJebSov@-O|$C-Q5lEx_{?+ z&N<)r*E`-Z_8|7yd#$zCnrqH$Uh`U?l@z2f(TLCx5D+kBq$QLQ5Fqv7?=%!-@N@rV zQz-a_=%_3uhEUi~vW0*k_*+IoRMi!6FB$dr-N^MrDy*#CLT z7fL1X3$gtb5}W)S5r^V`FM35NwFm@UR6FAZQ9KKtD)-krtjqLle!4Dm@3g9HbQjf% z-Ek=V=&{q9i8F^x^g)yCv~1418a0Ql=o~^RkFRA7&bG&tD=gmmpuhhBnv#?S9SuDZ z6i|Rr!(V?s<`rex3g}THo^Chz2b`6CHrY%cOsocK?uaEjSo-D_FYK#NN&7m3fPCLM%^ zZ*sEUXS0x{kjyZl=TU(1jQ!7CCnmfXX$kNlR1C9VgkV@oFvwwyU-^L0O^zKg<7x+5 zUDu-sBJq$XKRUvRWh2N0i^D#{JHo+9!?YD+nw9z2Thb5>iBEW}tF#s)R~xCU9A^D; zr??m2z*70*q&4^A`u($%6l_rE=?`?)vRB9RbQI}Z))R%vx5vG#ep`=;#lVy>LGWAy zxX7$9|5;&Q8aAs*wgHmGR*d~s{*Rj!iQLx5o+KRK5m524z(==pjPJgHKN%P-GEu1e zezDn4xiY`16Hku9v@e0??)nT}o_tCPEbA@yp)*~#zJ~_x|CkQFpU?eCszWO(-6!=E zWOMga_w5&a8%d5P;H6*E@K0g^9k8I;{L9#&pAl|%8c&C1mFt}Ml!NrleMy<^e!dR> z<@0dQ{=NtA!|<=qOj_mi(sPE|U~bT)!HgmY3=c)IE@vq!UuNRqBvc8xG z=du5K^Mhf_r~>=>>#oxGy(as!HOGqqSlb)@0tZZ;q%KLGN9}|Ou@9iJ&_o2J`DHSn z^Az|LLKGL9A7Mok>bZ(i9E#1%RN3l>7gw705ykV`XPoZOX4>zyLFZ7UY|d6cQ^d%a8G zvZN&yaE?|Kx{}~(O?hHU3#PFPJ1v;ULA>V)d|gF2QC;z!ljp@ZgOFXjztcF}>{SWW zT>*Pg3WU-h5-g>a_5Nc}OwjGIJUTF%>{-VFL552L*`_H)(AszKRLpA2Kbt`Wg8dv} zp}zQzl>ejoANP)ZFz>E3B7PH$FV_FHkx^(6t9gjo41B+k@G0Nlo(w3R`-RgY;&gol z)3bYdWDftFLpg)<-KpcXSbg{YfiL&iBCC~{#N0V9k00K=mjQz@q!jVvVS3)~3`{66 zrTKZpD=J0dyYg&rtND6OA|4y2AB^fTsXq5pBQN7kt_OVXR}#k^!L~o{<5@5n{*pvq z)=B2kg)K#rzTe}Z_lyyAi9!Ml#g7<=8*D#{-%tgiE0YgXrJ33Ll+_TvkCq6PI8}7$zI4WTP*bsQGtr2d~xX)_n_%`PoiMi>%r@C2+z| z5iMN94rxMk;U<|P0^G>^wVof4SoM)?MRnn#lZ^pFCT>Rk#(E2bWUa#nu={Hf`lbjU zuE1{YLT9a~@Yt`(z7JINjF7i&IE$G+nRnkQFbY!7efu+b*1nU}VNmq(XZ$Zn&P~z} z*Aq>v8DT8n!ERD_o_8}VsFR8yGYZySWq$m|QDZ`RSCH224%$4#ap#VG#w_bR z{Mb3?nS!|5zl~s<-9{iF>7}5-JwYTT;^ZnYl^b@qV-vT7h6~lF1**B^%-{fmm z{I;4ZmE^XW%^_0WFz|d>3L#G_a_FKAL8)h0#7cNiO~T`S>-vn-JTkG!uq}9d7-Q*U zd?mK;TqzgNRAqoR+^)nacpc>>1CmH-z>=ULGWFE%6xON!)CK|GFTU;WVxb7VYk1EX zIPujU#v(k+liwj?kqsaMtyL{}JBIP^SFb<|EBIaZnN+eB-ldkBCD{j~HQ3PB8Sa^n zEwCPIaJ;(6)+{saj#3ob^6u==^Vp-AJfL0;`P^}Rwv()zBHThz$wXpq9lW+v)O4=% znuS9lky}22^TYRE1`TfDG(}LA+K31J49mbC_g6&lqlEpg^tjlc*6JjRB9!Wl9 zH~BRCaYPFn8e(N5{&?W!U zGMc>U2k;^yWaIJVYF5+}!BZu_!7w3_s8D{x!k3+Aq+t*&1*IihQNhFMYIO6@2qA_EeV+!60|dSTx_3*k(3fXV(kJqoQ4MR<3bcmn zTn=#BSI+PEsuq4TmOXmHE3z1qS6*&DL{*YPpsEoV%`0XjaV_+TY^W8D;j{6yxq#U|3NWt5XAQ1N|FBH zRNRdi%n&;IgIhSxd(MO641i_Cefz#*IcXg)%h18rZh!%1frAo`7>72Y^>4}SV&dqx zh62(QO&}hv$MRUhWaA_V$L{$%NNC_bIrc^c6${QXqri7A|mzx9BC)5^y@`|fE0%i*sFt9`-F(eNOrA?;Ji^3-`VVMT)K1L;BIRo z68!li`1AF~11V7=)Tm4v#UijY#J63r>U8(BZK5lt@5z1k*$S_Y{*X*W)-6-+w)RQ_ zM?JRs+=Z*e1Pql82Hg(-1E?A%=LU}~-Lg3*JO3S44eUjH9lSnq# zlL|W@Dryd$(hBn-F+KM!8lF{$YLE7DFisP3fNr=?U75gm7EzkpT6U+(xFFNVYrRNI zCdLoNwnxkD`$CsPPRf=0)kzMQnol83_t$wkPGj%bEk^0jSUnfKF5cGZ$E6z-P{Viu z4uL{Md|fUOFd&I= z&n1XBxj;q2N|i-fZ~XznDs}^=B-0;Bb8wsLx8^{KV3{p~Y!@Hmm!sROllPm0=@zMV z7xNyyaDd@;efkZ=7KQzq4YFM2%s2frEdU=vTcvzyF_(xrD&wHii#|{S79DyNNdc#A z)w`Pmp9jXe{o1_X&i2O3Q}CZQOZ}mk-yr%z{#>0)#6ar-A|=8J&LzTYYQFmDzll5m zq^;s&@_mu~l%4FHfI-5mB-|Uj@so+7t-~}@!~pe>1$#2xunqLOj4Begfl_@b(WPO2 zYLFLZt~EGK<~(W0ZavM(cYnF^9!xutnoC~-7vumFrDY~lme6f8J;dZ<&Lx61W#N$o z!aA*Vad&}!QzMDzVT;2`IM16h)4pH!D;;h};v^I#R%l=yV!%!^MU4yr#ZdqNQ2z;JzA}(N zRjKBnVy$#BBtHZYRyTelSA7`Cg0#?S`m4djj+`cR=|JYCIuZoJNUrd_N#{}3BCMH; zvj}wqrGsRn9Udn(LMM#lBj9)$MQM@wtGy|!3`Hc=z~ZpwF?o(JIwfIP|Kf`!IDq>~ zD$w%?>s8vfQfCmT%V!oUt+ho*xoUIX5bIJr@pUG=kNPLOSdA1nS?LJ>oyod~YwQKU zvZYCb$VcCBIEKW7V@RSW+`-Tcc>{nQj)$bkYfRAq60L!QqHQva^D3Bzfroa5#aO;5 z##1(t!s=x-{IoKbFG#D&&DypNG=#bzza;^X&F+3`zBOCpILxi%b9Yv{k>b(QO_!R) zN$x|9h(oUcc3YU^?35)=7rI|xB2RC2syD+y{mIw*yYrdaaIeQCcD@O8aMuSB(8;eI zkbE;yRA{`B_?sCvyhN3!Q{#|Z`uhHYS-aB8OgvdWyXp2=R?u@J*<~CyHg}h(Eqn#DeFEJpO!CY|Mf_YuzsU zGa=9FdH`N5h`#Skr(=hBG2gCrCFtG)G2u+>GZLR}YV>@LR1l|{hc^>1M zX5GJJqM+#+_KnFt_g4-b&&`T!Eo2QGjfOWaW?AcM$^=14``js($j;x>jpE zD2Y_F;OU^a7rwK@*cHg%EQF1abWrMHql-8AECWfxmlr`wNSMI-gqa4_9=}LuwOgt% zYDaTw3;yJICC&DZZ|heSG+|=F=Rr5cZT(q1huK$)vjM&hlC!wMG|@-;3I0JJ0PIz% zI{;Bz_xW0j6vHi<)9BmA(E%~I$AS|cuAN_*>HO+p z&78t=xD=C%SlC4*>V_~o@Yw}6ZN;osAC6bMA+}Foaj-#zR_iEQ`BN-XKOm?|FcO!!>~R&{T?`Vi$sv>=J>Nh4~e)eOx_7& z0UVA(2e#D`2~TAL)ZsNkSY+DKM=0D_G>Qi?z7{jXh@5M5(~kr6o8-L;V*j{CpFdUJl?{K zlH~a>&h3!yN1W}3o-&L>eBL0DI8;F3u9pMG(JpUre|yz|Y{~{wVm7rh)H-jKI%jL+ zAo`QtvH>E-K?#CL%#Z1J$!vyVtwJE%O9fO-M*{Ct0k0G`#dMd9@TWY)A4L<5D#o%v zdf;Xq!}WrV`!b-UMGR-$(hTiXr_{gXxUzBx^(3?GWWVl!Tg{x?8JTL$(BKrF+E{w0 zcWMYY8WXlYtLtK4EBOnjth_<4>F&d0pn&rU198$#EFf%b@3O6&!*iikGVW*lS?@kO z#$di3JxF>8883IDJ*^Uth^@qgL3paz3BO~epBYSPt$d2UZIFUEfc%L)B==6v-`QlC zbrRM_@=L42!h$e42P2N31f+zJEbpnOZNY?kq{A}8w}$~1friJvlCdZsAqBP<`*Rg{ zThZqZsp~6c<(#$=2tU~G z?F{yMG3bb%FnVcXZ5z&2G3eNzK>g=IC-Pu?wN)d6fIrGmP%bBU`udh@+$z(&D8wHF z%1Gn)3I_NRYF1h+TGU_S&GP~uGwXl0NPgs)RBT1YXWTxT0Mw84U&6RFrZ8Olf!#S_Tti*H zL&0Su9e*hYlF;@1E3a6^?4Wy*Zr%7~kXr}KUk*6-C=rVBk|C~2+A1?gW&*!Jw5=v=XPP`DR1yVLgQ(9Y(h zaRk@+UP8%zY{0ZhWf)*qkPrhqO{l=0rbJ|dlvZZe9(L5~4nO9AqA~TE=F-oylk4L?TfKe^J8Row@y?%DBZmIA?-rK6#e`@vVR@D%3Ofo}#5!+Dsx7AK z#kOoj5H0~!>bun9&uq>5Ogfr|-?VDO(s6#o_Ihb}eloxvH{~{zHnEIgP+MX6 z=!m~THT_t)CIA`pyS7b@Wa8l;T*aKvD00&Ik0S@;#`5(Vv{HQT-MHL*XBt5gkXs`T z;HZ;8s;4F)h=s^df2Qy9fFGuagXS#tEz zL}^m1E0|#OylIs{Hl>66@F2ioRu$iBdSK)D-aMaF6$?WbbpZ%_yRrNFty7TBJy%))G^xA~2C^6{wepw3fNU-ZBT~lf}uU<&o1MReJ#K(syaIO|L7+K7HpRbuH?VW&MJvL?pSieb@Z0PI}3g_m_SPcC52 zCXC|Xxe6XY_p*p>bJPfs!Fq!dRH#lIqlhIsGX_-Wwxvw$2g5rQ#!jd~qg^*mY))Oa z(P`r%zU?Sf@08d(SHNXIKWx%qq7GDkT-&jGJY7qI2?^s~HR}?8$DB`ZEyA>;eBbL} z#2x*p_cdV>Al?135Q$;b5Z6hAP!i{An1i7diVBqXQh2X?Lbh`d)2B~{ubZ0h5n5w1N$?_ z$+OngmS8runT3@IVZDk*-P(_a1_^S$$8i~;)vC?lBvNF*Aap_t`awAG&6cAyXfb^P zVUfe%e4B2!f!e@o(l68lDH5l#5M@a6cDs|{6pT}ESzW4_&>ImUK;ecEnt`n8LJQ;M zo5&F0eY8J{>m`u}Ke`02NIz&+CW^LuxjhUiucc%#-+HF<`tyNY&~uTKpxr6LfM)bJ zZ!wg=b#Dr!7*X7|;#of2U8p;Tob(GQT7Wv3%(qv;P%1daHVKI#y#au3Ob!vU57K64 zlr8idZIHDGXfwKM8Za>VX`CRr>v!2Og-R|WWzs*+?OJ8>ZANc#`5X7rznO=v-GBVz zbVM;W6ra&lnL2{fPa0m<%w1yI@8`8?W9xgY5(FEpy9_zQk-p6F{Yy;M*-}8Un_H z6^CePk2XMR)q6Koa}j9{kO(rMpb|w^1PhSVFu} zRBjlkf&K{cL}D-H+9#whXaBs}74o{yQJe)Oifto|%M{O(KA!huzuz5$%I8j~30hr? zkTCcF7!`h)<$lA3p4SId=iaH>Vr=vA{P^J8LZx*7{%g5pel9EBE;o;o!gPS=Ya

    K|G{wRazAa{P?{yQ`Ktx@QN8qY=L+;;xLs#s1<-qmMHx0cAjhNd? zX`vdV6H4+d6N=*z5}`dtq>cy+-OlzO|O3?xtVgi96)ZHUv)ytXo9p^e^4bBMH9 zhv&_99eOhC`jK$=e7uP#Ibi~Itl7Q7%}A2=&`KKT=cUZN=Mv{5PU zWoEPXcaM_Cx%4t^GgTFq6Fne_QoRiNjB(BiFHQG%4$?%i&bG8PQI&E`@l1+@lR(O^OvFZFuIyU}Q z#dJyNv3Vox%hAu~L|2lhzo=dk7I~!Sxb75GsqTakqPRM34rhj0c$E}p0NkJ#W+a3| z{}kkuNaEysq3VS?xvk8Bvpx?u3;u(RhvDdTY`69nO#CZ~Cqau}XprWIJN-o&-k3%8 zvo2nOlq&ZSzNvdb4T@3F<9xIUxV|hEyp!)DdZ>f4;(GQ{b*1fLguR35;z+i)To$8) zV@-p%f|rW{rB+kySDQa0R=4wtvWkhnjZlo=Kr;A-Zp0*zxijVrBGG)12}o`(4p;#d z_r1n(W82?ob_MW{wtjhC8>v2egd{gA#Ilr#4=74)JLJ6?OsHZ{Jo#G-`hfW0MfJ1R zZ+zv|fI#`y^MjF)CYIhMVI94NRM*0_AsjP6)pcc+i_rgp0tTyp^$#2<0iPV2tjLml$Xno>oMkjB+WDN|WIdqTpY zkSyS08i{t$^=j=FRB2b^%~FQiZHkjS+%cIxirb<8y?yyjBpqe&SGv-wxatAeF(#nO z=m3i0vT*-Wz4CRW%C)|w?Z;EGyC=lla)9fWK&zu9n)sMNWZ4KzWGm8mJ`KlwzMd~Y zb=AOb(dluPW!zC4I(syQ9hQ2w0;z7!mnjkRz<6nj1vuZI=qkOf-Q?ZCPa!2iCc!QM zQui^_9k4NDuTD04{gKdDK}8-45f+aw@{bO@9f z3G;xX%)Q$Z#}dRlXF>XX$7a@i_sEiWaT=o~aB&VXGz#$%vU%L42v=PAXHLWfP6>C{ zk)7FtriVgj4U{Q#0VZ?jbR@o&FC3>4jCLa{&(3F08)1#uzhuPMjXNmty2!mR zMPG*#Wzu44Y(1vIB=K*1#YV1!t%mN*0kHQ4$XIJI^^yY&suM`9L{)wHXW}E<*gV>aQCBDc#M}N0wlYQ{a-~0D(YY`4`s~eULfY!;Zj>B z;DD6NOyz5~f9F9PRSeaGD6j{un%#JV<~G9{V#!)O5zn2~b?k%S3Wvt)ZAQMG{IYtI zo>$bc7m&xKA0t8F6Tb`Mu^g8}Dv@?#^Gz0wGctD;zFd5yS#JK#CgK^#>nFU62rW;W z!%5`!u)}BxOmlCwD3t1Zx^t}p@ zM-T(pf=w`RtP|ySuuxZ^Vkjs(2o!&j>K<9?>Y@BeWNp5IaMikr4!jW)L%9F5WK;6? z=W8Oa<1p67NV8NgwX|@P9zj3A6Z~do{ksR2u>gD4;MkXo7DOEt$H#x)7$ts&*2B^; ziwNH!4yYtVf~cs@w-&8Jzl!X6dp!3F-~^td+c7EP`PpLA$k184zF(@78sdlTy^qI# zCfT*3T0n+!Rp_QbjhW-c_f9-iV4Q&;(_Z4=fh0Uvp5-q-G8S3BDf;04GA%+lX+4wD zPvT+3e$lcIjggOXm`dqU*rX-xf}e4Ziw9$TBlo#|ODh+bX8D$-dJ)3qR=t@KwhFM= z69wa`?;_ar=}VF((K9x6;pZpt(tv1!Hb1raKe=6XdUkjT7Rs3H7yz}EH zf2F;+zd4vVY)0IqO^l?26uXI+*8@6q8_!z9iy`)f%4^bb9_#5*7l*gi5Ab?Dks!vr zT5A%{+{5km04PYoB|*<5Z>CG%hq0Kqr*yyLf4m^7UAag{B^xGILIBH{u@e^6S2 z!iaYPyZh1pnHaa8>rxO=BjG%LBvz|!ZNe;|B++(<;zC0ZppveJ&0%jff^@%(uXaaq z4QsQ!WIW0jeleb7%n0$W2{Y`rW1uYchd6)5MQV8kV*xSd`mPKQU$XOXL zGm-mtfqUHw+hLm&pe%*qq6U6OAhW2EtAAMgURYI{e3M!=8^6&S<^!Mz2dl4C%o_xM zvqIdAik31AT+~0f<|A41w=8#!$<2vugf0Yu%|MDa#%cj1VAVJk6wjN%uK!2WL}S|-q7j@Ap$G$^*^dGIA!<*LSyCHHe^!y{eKfimi(g9(S0OL9+i2VC?z$>BEQ<89U$NyJ9%>v-&yyi=~|GXP1 zf&vFYOKBzD|Lz3*F%NE@^@sBPdrH730?r&_i}E;J9#GN$?&na!7gFS+_V-`1xqpom zCI+05IIp=C`+xQ0>jH5jbTu1DVb=G)%Df<8H={?DOW>3NE`YSBvTW#odWT6sJS$Cw z7{Ige;N*6_mCa#m@BbVKd#tB`1NjAb1yt|80~QoFcs;|L5!1jL=-j>no^Y@##`^y! zd#ZBKRJup`o5aWA^JA?#E1a082kb^#z(4#10id;Nx_(|5=;j`}KxJx6yTKcOwc^fu zEOx*FP`5OgM4XX;X_ExS$fz&B0b}F43zSa&8)^CR{%2yz?>44uwskWOqC}?$i3+!1kW{S zLtbyk!Lh?8z95v=)J2Gx}BrC|;uZ9M`+PNs(_&3X4mYbKZFCV9=vK4%p}2Hb}ibAAn+6$3+?tMkwANJlqdVn2mvIWWk>Mc5b%k z3m!1m#!i8pv&<8#zF4c(jRwKk4gD)mEQ?qc-B;?UEm;5=%A9y~2SDoAWwoC9oXRbJ z71%$Fp6IQ1?GEUvUq2aT!-_ZB37b2&GjC<`j$Xpstzas;N^&T>lF)stAZogmX{~oG z;dYBQ#=|<>uzHktmlO7)8tQ*(b#{_;RF;4F_V1fE;JLKLWVupfF6tn!9&BQ>CSly6uC^`Qb3M@S1RNAnkrNR$IAuhKxjCgoAf^fnm!d) zW4=y}vite&3or*o39r&_2ZSGH`(hPt<^sN3r7b*Mb_$z-06VRIO6UV*U2hyzi+v!h zaiIoDAQ9Q)CUBlqcp&q+wRd@VW|p+HpUPvKQnxVW3d$wr`JmjRl=fl@Xi+~}!7Jc& zVK;oBe!~ZpHm5owcR+e(=i|toHr9DHT5KrJ{CMNfC+z1sm~ypyEi)sNBJ6J+U96r4Q<;v^C6I-AO_J5)C3I$8=Mp_*%+oFuYP-=3vfx?+Lcv{N#yH(T|1DaI-sVyCdqw#!nXuWmUScb zN7kIlUZ@->AkQA;a_5IDVix!#|gw=nXdi7axN{NKttxtq}Y?m^AhfH#)6uN zX1!~Px73ug#r$MQ#k&3dQru%Q*Jh3Mxk*Aa4j_ix>jatu+kBA?6WOaRottx-%0Eti zH?M0y0E&obF*z)H{|?K#Ic_3XrE@ZfdYbwRM;|Z##c_c$Sct{Ob>xu4Ud>i8Y6S*UiV5Qr10N>C*@kOX1 zNm~!C!>g+?(ycqenXI_=Qd2T+!sX&@L~gJ0&jRUrNf&E}*3Rj3hHSD0ngJsGO@zk?KGD*mFhl(x+%0qO6{4hvVpugln&^NlHHxznxUCaz>eLB% zDc)(Sxng@b64cw1+yB8XZF?esVyeMXyGccg&QvJoAD-#e0{dHSkWSZu_rC2Oi-WNQ zwKMHb&GkFb_imp-wYM1ytHppCKYKD?rYhNz+=*{OqSTT4gCXJ#w(%#+k@dKrs zUCHDP!op7AYBUZ~0ZTP#hWCo9-pq{VNXPzrY-v(`uF!}Zccy!#`?v60Z-q-Q+kvyI z*a}QmH3s9C-^Q%apl{?hj9~?8FUBCByF!6&IS_u4AYSAkp%YNwG7H(VGtVe4xxSNI3SPLap96WYrO-EBvJFr0EIGEL$ywz_^VAi| zc?XX>Xa&~txxe-|dR8su^2nt=RYa+&ezpR!9?1%~5r3Z8bC^&+RJy86pZ@F=d2&HM!P1sMH^cG|w;Baf z=w}`7<)oHs$|L@F7>)OBWslyl{WUcd{KWMzct&3G2ED%AKn-KZJ6|)!!jE$1kA>?H zJ?ne75A~@7w5+9XON8l4Q!G0Zfyg;+sGW)|4poD=2?tA;_0a(rR+fKSL7U7bwcPWS z)%NafY9^-E)BSwSvLsy#Z~LVn!kEFs>p5?>PX)L?R+zD|+S%w(-WqtGPnqSZ5r!pE zXo&IlNdn)c`}t)%6_#Z$Gf*BSYLjNIQhw5&(QqN3hT=XlXCvi!d>eOguATViY-Ahd z2h6iT{@YCdNACIp&=F0hz*zcdUO zI3uzO7=*5#-4p8jR4z1B3eULvyVg(a;8}Nm*#tVPW#>l&Y)r1f#X+iFJDg)RYux-2 z#I7yAThHa58oaq!4rARmy3}iMuW<;dSQ?8}MM>943r9L-Q*T|KgP%ERI8%;EoN5c! zAD}HNean)9>pef?=zia>b!u8_{wR3fnPIdZh&8mL#~?&``!0l52HCn^zr!ZsWDVEf z&V$L0R4>Nym15t&LU>=0veDCvagm2K41&CzgX-4Xgl`5%CApnz$0zZlIvT^D<#i7` zQ#3VfS?b*&4D#o{9@dCJ=$QYa`_n0#jdjoE*!`~DHn=0<%~M7a3xOe4rs%^2hX(WK zbCQN8VsC9*8D+{LRY zQF&d9b=U54%eV0jpZafRte!>wV?^WZQKuHav%l$KKE;QFX!!2=_|#`4%^5t0uXV>e z)Cf&i=PWO!d*3n8gppc1U|A+#R)(Bh#A10)1<@`Kk0+69Ho)JG{&Mtrdpk z$hDs^P zL98%Sdsc`nlS2z1EO8h8Q^~Y|F_#>2*hMqBF_i2m%(i}3xOi}+&}A^lHivKm8aK^_ zZ&Lvvt=@oel}H5ms?_`(orMQ>c$?Y%T)vWd)q01dVSLFY=MKr!&A9G@Q(PDwX#BNo z6K>p76^t~+t~Ck;eCan@zq(9UF~LP!`zGB zh!d=fR*A521M;0LIjG*nBE-sIjN=uHMxRY?#R^Y;QWX*5*{zbr>r|iO1ZiVyo$#@w zOkIaU+sk;A`b}uypeJ1(*GuP?*cP+Wz<1@Y&7DGrD<^~*cZY!ndoOe&sE(}PYIfyYnRo#A;#pns$Ygwy@=Z{zWm2!JjO-7P zk1COGx1;S#e7w*;+ssWWOiFuRjDbl~Fj36qd{DIF(maZrEr3PGP^^ZSYx-Su+qyN73mJKTkS#T6b2*WS_ zgo3{Eod)IGQQmyi8tWfh4TB{KD~DUz^$b$GnxJ;g-0u~Nsya+x+)E2{>Jb@`R!8pEFhe^L}wSxM|H) zE%~1Y;U`V;T%Ysi?Be{V!N_KAaI>mp@xRa0ia-I46~35O3O|YZ?`sA~O6EHJ|6d0w za&;*LI9r8U=RKmP#Dx=SgZ5B-z9MU&Y%4V%%1D}MLz8Y+gn;w2CuP-pJJTt4i z@Z&^qGULn3eim;6UlEWuWC8+gxW>`!h4#1)&22Cyu?e6xkv5;@QTy$pj27wZyPs}S zg5qR1^#Ops3X6Cnio~%ImhPiHm{$%^G$4=&iT(a9A`tW2>-aQ zp)s>*lBUMZE&mTZeysfM`}dFEzKI>JQESV+ZDC{MqBQYG(Vpk#TOxFn=AZA+O`5DV z|NPc2{CgCHQEHY(5&szQ9V-ljO8R_lM<0X#Y1dryj{L~ z_wL7YjtBVr`)6#w9T5}LQ>9g(`uFC!_eO7dIcA+z)6>^yWQdNA?l}Hf@cfIz3(OT> zaAr;V{=GaWFYnRMpOOp)_V)d&S8MzDO4cmr`no?VdD7W5+vA0Migv!4dOG!dp^X0Q zvu?I)7xwT*tqrriUb?r$>aOiHzvUoi)>f&9XWEQEO?n^m>TH_u_U+p{jwUfQgspDv z?d3i4xUg9N?~3|Ge{1$#`RlX)OE34W_d(x{e_k?wH);Ot+0Czat+<+X*Zc1Jt67Pe znVhFjpWd-=pWJ7jcH?(yQ#@1>ZhyP*dvWgV4Y|_h=H|(BA`OnQ+S=N>?u|SC@#Dt> z_QfS7EmeE_yp|dro5?Ej)pq&(#P25*zTeQ0Eazusv$v7@QgBKm@V^WD$`Gx2k1gWV zCcl(Boni!HE)D7|NINVkedY7MxL?cSU&*?~eUhE)U0+rvcHsEuN48tJA{gmfvjmFP!_me13zvnfs|tYxccwU0+SuErD_R^Szcj&95#fNVp=g_*JEQ z`{c>Oe|~*^9sPUZwA9vF0a{aE{j*)xBRC~B^2F1k8@F%&{>A&hZ?m1L;SbASIZyKY z1l#PSXZp#KLgW$%D?!V2Gjri7yNRd&IW%57nzdtpl*fddf)jP|Nia? zS}F4L^#%2(t3$NDzG?S6qF(1Kbk`YHM!Ydk6r6Tcxh8WHu<&E>boFyt=akR{0KhhU AmH+?% literal 3151 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 I&MBb@08Z<@l>h($ literal 4727 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 DD^vP? diff --git a/docs/manual/images/window_base_t_1.png b/docs/manual/images/window_base_t_1.png index f12210f72c308d5a24e8401b221f8b163fd901b4..34fcfdf4c0d8a311845d74d08fc69f4b28c4da6b 100644 GIT binary patch literal 9793 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 literal 15609 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 literal 4204 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 D9dXmy literal 6693 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

    B` z@@p%1`LW)PJfY3!qy6#K?5$g-Dc`_qC`YN3Yp<@r$I0fbn90CgSSBop+JqV zk5BUn{Qz{NeXUO;m`VlRzsv4S)Q`K6aV6da!*J>I;ucG0L`zEn-%bOT8erhk{}O4v zk;t$$0`fl-d_6bQDX<)s&OEskXY!T&-0|ta(3ahF)b`=MCpAbbH!(8&P`S`ftH_^x zJFh~`q6BWf|3rh+GB8`LJCXO}qPdo6bvO?Pbv>^~;S|Q7P^pSjMj?ur+EZzUR#k7* z&30(S3V@LHwAByXt&I&}LgD1(c%@~B@;EiWAdl*(;oO{6A}+9x71r^vK^0*hG-2y^ zHEEzsG5lluq`-@GmJl|q)8@6( zq9A=g`qvv2*xNbISJ)1Wi*k4KF}YYAzKD1(7Xe){{%nOlSH95$U6zO9cq5|Q8dkLq zg+h5Vy?F_|u_lI#mCJ|;cz56YwR=HZ)YL?sTLq5E9Y5F?*}&@7clRlfbLT#3$(5=f z@G1b@o3OnWKpr{7AY?relCXjg)yGas`iCYm$l)qJ|A+Qej7VtGTdpEGFIvI=sLt-YOC z(cVsrK!mz*LHQ_%*wqzL_2EqPpu(wXMvQpNde1suUx8+*a7%BO*@!?Qk&yoeuUn+; zy(}(P5`zwrrg01T7~|NUm8ovEmmx1C-&DRUH%En+m6atd4%Hx8QupuT351EQ)hWr= zqw$tTudXTD5nsLxBnL#Xgo7peteb|-qobpi5E~USDZw%emMY|p6P>b~B&FoWNU`(n zuWlN@sjN{oO9{rf_UZ+6ovG+f5j5cO`0)~b#M#J`OV9r~h5wEBJ1MqTjJy#w*;PPa zWwp`ms|q0c`YZvLsT--Xlo5TiK5=z&TzqQFyz!P&&SZBw!Xw8WhPH7+Mnpu246k=t zUqaZg$KeR`?I_cu4Br zcGLdBzNu}hLLZmeNTWs=fkBZn4GC-ivNA>O@*gc@j2_L*J`k6rGkV%OL{?HE;4Fwr zJ)VdILt!xgze^Z8E7~P2Ph8vqZ+(dw{XyiDjU72IhjG;zA$$m=VmEl(-@izPm4o*R zl^XJoR@Kr-fx4OAvcbc03fc9$+r4+d!SB7AtUs1Z0=Je1v%5mPQc71_jyh3lFYVyY zCv&oenr_m~Gd4hHXE^4E8{|-?%or%~8pFKEuQ2b`-{Mt4=w( zsK_k^ey`REGP><;nC5boOh6J+HkZ!+$Mf2?!wM)a7xXBs=6mW<6^qb@lc$&_9j zGmFKiGRB9s9s_ks{rvcSjFh^_Lugx{iZb`pVRTXJsyn3a4z=f64QUpam#f1ppJyasfvX3Iu*NJA7Q(*C)``K34!yIoJD>oIaq=| zlAx~(P~~7+zJwntK)>|I%dntmo59xPjZOpY^gG@XU#j)ly#Zmg5w2MU_)DJ&JrVu( zLzM%K${Q%wZMl6cV`3qpGbUAMt^@+`UiF#%>0Mkz^fem%|(rf_31% Fe*+`M>H7cx literal 6293 zcmd6sWmMB)yvJn>*pL{d)L?+5NcTo}>i`KQq!E-J1If{~Q3@g^$2Ozj{93-(v3?Xi}0hlV7`bjZ#}n4GlccfY)mX zDeyjsWKIDdMBZpkm1|WatiP{aV>HxOQ#QsDZCR2fF{sl$g?*G=yOrWSVh&UO2zf#8 zkcU9TgrYN&(Bx2BFt-3_iU|%9V_~0!;FIOT*?*KBURpZdUTpUhUTpJg-27|YHa9!_ zaxtfR?bT>YW2%}b0*VVoEMvhba_v!QWo0GUCQfDJu>9p;gtDBnh*}MA%GM zS=NVK1|!ROS$oeIE@w(PEtslj3dKq~*YlP+7-ULLO!d`|Wp&dmOE9|@tZAOEey3y+5plW~%6 zw>>*5QHdl^>&L}9C&R(#w@rHxA?LgOF8z48 zaa(}zO7)q#UKK<~1}t(-Ms{W|JQYfWEn%+%d+z!#D{-Wu_}Cw}D;<%qWgZ4kVP(WB z{JA(jB;72lxVz8fwd&o|mc`0;k{opQcgwg1^Q6qYjwk5iaJr}xv%RR_@OW~(qtvK4 z^LOQgMyUzEKl3g{EXkAQrmp6z{eES+~l*{<7$D^;qrYNn|d)?NSLM|ouBf`~1%wgn$p(5d8+kEItWGQEp4=CZ% z#Q*Xhs6rRUtx%Def4cU7z#?tn8C}>UZZh=Z&cq=j5>wHP*~)w=Y!-2Gr&-^lxRT(^ ze!S2ggfts7o6Zf~(HA9HBn4hS+wl;H=dyUWJ=QFyYVx1 zb0A(r61!tVuys}{&?HDrj2@5V$h+onfjA$0#BcP*F-%a-WztY4Yg*QY^{a=Jqg(@j z3_dS2t+sNcWzMBZ`nOTt!CZVgFrwD*=mTlP(*-$wmA|sshtwq33zQJ%2+wAp-}FfJ z#LZJk7T^rmqFpzY=K>}=VWCr2vUDE|A$)K@MsZ}eZiz!oWGV7&V^lBX11#xo{gPA+xc`SOK$Vjd4i z()v;Lh|}6~x&(cqc%g+5Ou9pFZpLOmn5J!5cPIbwzIOTjO0iTCc)w4xZEu`oCe1f| znn-Uy9kr{HeCv}(Z9==3Fc0voQITFLRKayhP(KUUBJBz)@#y^&zIs>Oen4rafzp}pZr1&Fc{)!AOH`Kf&&8}%+&=A`A z83L`mJlvQr4LsT7$x}M5vTVr=h@yj?B zXJYZrt+Ym{G3s7{Mk#Q>4feggfwEOpW(iPa*DE$7O=Z1*8l&zQ18MNZ#cXYbwS!yt z#V?7cuLGWZ%CYU8&}sv&DVtEt4bhJb!n{5TGS}zoT?*iV^ECYP<=$%}Uy0s`pI;jC zoj%wa+m`1akH3lS!$FI% zAM-*Lv#j%MY2pM`mjIu*1__u}RV-W2);SUSGvOx)LT&_Kjz8Z_vY+~-0{+{FXxC`? zo)T47k;hJ#P?Tkh-!^{8liY*Rc7ZBdK;#=!RKQxcUw4Ybnq&(Xt51}qQfCAeYP@9l zmGo^^ViK8cEP44zuHv@z1KVHJ1nDg6MJmw_9nvP)O>?YV=a5h?+FxQi1FjhSkegnr zlgQ9>Cyi6+s9t;){?<|Yr|NyDwB#FGTv_UylvDvMGTS@X>1kC%1SL5cx}Qf%p1)QO zKiK!Oma~Bx7idsgr{}*QRU}e$iOoFkq2J7qd}fQ|JEDRUS<%ucT5z>K1e5Vt)$9h( z^7^=>h_ixOC2OONb~X8hJ9boZgZ{q6fJnz#z$-T~AP4OOSM0_x)_eDDKU;jJ0+t-t zU(*FzOrh}8pw%m~tiC?G^_VH%3PFN8YK^LY(}&mC_^7&x>=owDyd^F1Vf9mmc^z}H z0>Mm*BliI=>4K(4V&GfTQGG$evpkhZh$2)JGLR`xdOa2j!fOEN;=Hf(102Q(j@T46 z)6#=^NC3c~`N~v)7t#Yz2BAyE78hDT1FJ=TZAHr}BS?ujo>APOr314j0=O~u^Z6hY zBnse!T}@I3V%Zs(1}{}@YygV^u!t=@vIk70$z?O=x4LVsd;Nx>hr}^jc8$X(FzpLo zvW|Opm$EkU`pxxRxH4TfI7|t$9R3nRp}ixIKnn24sgn`?qk=yoOOte+f`wGe%SqFe zzEe}0+I%OW>yy@ecw>t83jy&=|N7R)Do<5jRvl0!Yjq8}#5$-q_3p(3s>|r-e zIM-Lpe*&CgZb~BAl%haZ0e|wRWt&ziqVuT;?fextaliYiPu}n$^{8ip-M`0?;yl|Y z{fku@6gZEN3)zf6NlU5EuTkY`M&#NKzS?L1r+zvDF-c$B@`loeoX|GoPsU(rm&8_Z z0bH5OwBR?HDwvz~M2oIj*ln+F`bEf$Gfl4Vjq290n0iHS9PvO5^x7h6K+HLh`Dd;GB8<(=qcV%KRr_I6T z_i{PaA2`m_*uO+h~6S(gSb)Lsz=N!d{nY)bHsz)r2xErm~ zo4jE)KNP!V$QFC5p+!40sNM4F_PtUH)ZXzC#E0CybvNoWD&-diu*yhH!IDMjC#TOj zg-1&v)@xm7yIB3H=6JE zz--zpvy0Xn8^K_;x-2m8LttQmJL<(_av(Teh;gC1z(7mSC|VzgGNC6*Fb^m&kj`jP z#t*DjNcrEX{Av?K|8F*Nt8NM?quCNZzwV-S%u~7lAixIMa_ao(H?OJSaxx|N(G2cj zF~?6@xgq~#xpi--dJ>X@7MgwQvAee0US7c0z1BwbKg%Cwg+IP!va7LtezGqCQ1jKr z(_hH=^-@tb==4A$Xc`RQGI{A?foqD%3HVt6xnGwI$@3#svOu{Z4^iKiF2YLT*2xn-)tDSPo z=AYINC^l6@*uuBAFDMp@S>U77Y1jJEC9j(7@asmY9p4c};f2``v(@$k3e18jQ;17) z+K+9vU2Vejz#>2-S5lS!39@}=cSl~ zkNiDHK%o3Q^r(UG48Z_UwkSgvk~@rKz0`RwP^d|mwtA*NM?8e!`jm}K2Q*vpMv`Jk zZ~!2zeghHM=McmyW*<{!1k~)`f4Alie!g-?@2>Qgs>k2(*_;t2w00Q)T30EYjJgOY ziRdmINvX?3(ZPCob&3h^0AwmyrR#De8~Nq6GO^`aB8&9+grTB7fHYs85c|IOT-6Zq zwX@V@(%ZdG&-Yq1T;FLVi|MvCA9R_rCQH)wMc>W9F896!raXG;oakp<;(8e($__&> zhEdcvzVYMB?iEDYhTqOnDNp4!T<4T_Uo_^{NxM7WsZTQ>ItggM$$a&AdTBB71!h^# z6)>jwuA2;Ctvh!btviCt409Ex+{%E@>upDiMoF9Z%$*#`0l}?KuBG`nR^UWq{f! zTWot)u93*hWPXsWUC`uhGS5^FIOun?WeZ0C0*Ix@6Gi%L{^8j>N5c%M2HCRS8cynM zVJzd79A;-whL9QJz5SoVDR_XN+FKMvpl_z@mhD^{8*F+*aJHXo zbTZg+{54gQdkHagoW=85Kg7&3uc$`vBL+}I?%mz$2aQ#k^3O1WyQp|$ zlu_LCKZMPiazEb0?iyaX)TRi4tNC&o`U*?T``Bk!+Z@-Tl(4Mb^0cBc0pz$+G|*wd z8Qu>3-pRwDo!VC+H2y|=^(~yC$hwK(7s?y_wcf>1tSA+buach=AqqJie%n^7X`H1U zChqf{XY)e;>%!QWVq;Zj0)~*_51(8qpvD|g zW#BGP)^a%-7l343cewrnvB+UkW*lH1`qwob=3Z+zjED2Rxbr|`z5texF6N-Ka!*RY zSB?0?l+-xRH^`!7r^2EjUF@5KYZ-J`BqA_?4QlMVO zev7*65Qe&bQ|QaB6^Eo8%7gXE`0*nB4Nu+gcI?ncJT_n(@@Sgs-o!UCY>%Wj{^4eP zXpe2)(N%_O)@P_Eut?);#<&f$W7DI)amx7QYeCR?P(TJi55#>!aufrf0>6zCF8k zoxV~sLp48b?OsuF$T-Z1S4`B9N`Y9kkjl&Uw$w$ohAkKcW$N$IbfjU$xVW}Ajs%s#+EXdtXU0s7DbKTI$1hB5_2hLTqlV(jiO+pH#9wzl<|4Z>l1DF7GRZA z)^pl`?PUmMCXCBExlv^R{at>h;}qXIo@@vO4wLW69JGew}mRCu_W zh-gry@?TcN5tCER0G$F?mTo*yYE9eKDCIVQg_&b|?O*{|^>EK^I)6B@51Hz60x;8ot+%;Ga_PiRN(=5Sz- za}t^(ydnrB!L&0_v+$c9D$&g6m9wi`udkbgIe!n=%$PPKQYP8`78EtjlsGFyWS}P# zzU-Ok9#bv|qjzW{M$LJ!;p}%>dDS}U;4{!{?Rw&Y5#5ZK#VAeh-ha1x>+)mj#TUa& z6lX){J;D`h`=1T7ZI`N}z{^Zh!C@c*`t-!>H7eGVazuKASx!N&NBxGCd0!e6Fm<31 zgMjgl0e)T9r|a1@!s7wpxM~;1J9#^+b1~h!TB-8+S~3qA6;&n@lQo~L%tiz!+XGh~ zRds{Y;qrMnA*y(%N0$-T&uZXc4bO4XcFKazhR@ItB3k7y7S*v^I_E2fqo&W=hPc1W zp3%iDAx8t^>Pc!&MoN{&wn;?B5d-fgE6k6c`yDwjv^v7HZ;hxdMVveb?zl zwi0>#K?}$%*RiKFQ9_tL!90-~t{Wk g3*>*L9+pGs%}m;cmah!~|1(_ERyRwm2be#7 zJ2Vh@Xswf}ky)s{=%nBE2oE=;`&y$s8?YRhKGSkiu?pO><-#HRY*R>RNO%ng+L}y_ zc=PIN%xc+o8CE8n${%DEgmiYg458gmg#*JA6=N(1hboX`-t$tO#~L{n@ET%yai2RN zJ{cg_D6y_bkw~O+@ogv!22)@Sx9lS?z8oDLB{Q?VhCQiu=Y~Xzu@@BPCH-3eifc=y z(N=C9Div?W1jK1B*H=u5`Zgd`BSaQynKf6mjCv@3C zR&EMg{}Zoi3*QMw|fOY=tn%iObYuzjzqaykzw;b&Kg`=)E_w5da^itxvezaXRqZ;@N&j3syFi zJR#b_W!{o+GQg8s>fqOo1*W6mXkL)VM)AyV@j| z^bX5*x|snv8ml@*0#S`_Ea+@rD7^vIWP#F6fig+`*1x6yutY1``Su6j4hjsM!@7Uw zLQ#cjt>AVrcP!c2Xq~_@4m=@lOxX}+ox@^1h;5kSryuH(#x2Q5(kRP|UBoX~pEC~7 z2AtjK#1N7~^5ZAxRdZ#7^)W3#AW)*|`LXKr0WW)7&GK)dQmNDlfjAf3lvukkGqhxf z!i3Biq{;^QL;{HvQ5oFCRjVoGm~z594Q1#w>Kp6X68{R37M|`bfMM*I(@)YqB_t$F z^0%Rqo0B|?Lm&{y82ac>BOJ;*&ET(%@#2PEhqZ`6052CxwMf*jjgj5m-Ixjt+_y9Z zM5^L)aSO7+YN@cY5M6%UmMai^+mxu5pJaXJeyzF?aY5AC=`CEx0E59(5=kq8NQ9p# zO#?~JhKIMAWn5+)xScscr_-Gr99nF$*Ca#3@p!xw42Bo7vC>@Mvg1>|<-PsdlA3Kt&h#Bwi&w-y; zKEq%zv25>8E!(@a4m_J0a!A~v9jdd~eECXnQHP%(Xof_YpF9zO#n#ejG)1IXEGA66 zy4`q?{>1BAbxKMKd!?1#oxLt9-SU5=f2elr3(Z#NqnZ{wxxm$=$e_oGxiAMrJ*}LaxSJ@7}X#r-OrrvC;FnT+UHz z)O`Hjh4)1G{WB=QRBgPsn~mGYTDgIAb=Rhlj2?LiDD*m7=8b*c5mwG7092fy%cV?N z;#oioPy{Gcwd*dRuPX(jIXv@wxXPgN>m^m2UsljpKo0f|7e51=a55B{E}U2Ot|!9v z7<+Yx3(od66k}och4w<#%^)?ev_Um3^nEoyzO@m^K4R@x=lF|_tR_fjyzW_ahL5^+ z!&pf+h8Fe=ETTL!O`NPFE^5rD&S>+4BxPw4E) s%gvq41v|$3e$*O+{^LmeNxQV>Y>!8Agl%7!_KE>e9^U)e?x(1~16BT4F8}}l literal 4925 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 diff --git a/docs/manual/images/window_t_0.png b/docs/manual/images/window_t_0.png index cbd8a257edcc1527a6068209e6ac0058660f87b4..2814e22586d602873c9cb6c8e0ad97db7f64eb54 100644 GIT binary patch literal 1535 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 XqWOZF;fVm!R0>@!BhBi2j#2*sX(CV^ diff --git a/docs/manual/indicator_default_paint_t.md b/docs/manual/indicator_default_paint_t.md index d1b30e704a..57620e7956 100644 --- a/docs/manual/indicator_default_paint_t.md +++ b/docs/manual/indicator_default_paint_t.md @@ -1,7 +1,6 @@ ## indicator\_default\_paint\_t ### 概述 指示器默认绘制的类型。 - ### 常量

    diff --git a/docs/manual/input_engine_null_t.md b/docs/manual/input_engine_null_t.md index 42c6a802cb..656a14158b 100644 --- a/docs/manual/input_engine_null_t.md +++ b/docs/manual/input_engine_null_t.md @@ -9,7 +9,6 @@ - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` diff --git a/docs/manual/input_engine_pinyin_t.md b/docs/manual/input_engine_pinyin_t.md index 2552e548ae..c421e4db80 100644 --- a/docs/manual/input_engine_pinyin_t.md +++ b/docs/manual/input_engine_pinyin_t.md @@ -9,7 +9,6 @@ - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` diff --git a/docs/manual/input_engine_t.md b/docs/manual/input_engine_t.md index 781bb25b0a..f9005513d5 100644 --- a/docs/manual/input_engine_t.md +++ b/docs/manual/input_engine_t.md @@ -11,7 +11,6 @@ ![image](images/input_engine_t_0.png) - ---------------------------------- ### 函数

    @@ -36,7 +35,6 @@ - * 函数原型: ``` @@ -57,7 +55,6 @@ input_engine_t* input_engine_create (); - * 函数原型: ``` @@ -79,7 +76,6 @@ ret_t input_engine_destroy (input_engine_t* engine); - * 函数原型: ``` @@ -102,7 +98,6 @@ ret_t input_engine_input (input_engine_t* engine, int key); - * 函数原型: ``` diff --git a/docs/manual/input_method_default_t.md b/docs/manual/input_method_default_t.md index f3e2813aa8..8114960588 100644 --- a/docs/manual/input_method_default_t.md +++ b/docs/manual/input_method_default_t.md @@ -11,7 +11,6 @@ - ---------------------------------- ### 函数

    @@ -30,7 +29,6 @@ - * 函数原型: ``` diff --git a/docs/manual/input_method_null_t.md b/docs/manual/input_method_null_t.md index ec27d3abf9..8524f4015c 100644 --- a/docs/manual/input_method_null_t.md +++ b/docs/manual/input_method_null_t.md @@ -9,7 +9,6 @@ - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` diff --git a/docs/manual/input_method_sdl_t.md b/docs/manual/input_method_sdl_t.md index 8a1c32f264..8bd8320c10 100644 --- a/docs/manual/input_method_sdl_t.md +++ b/docs/manual/input_method_sdl_t.md @@ -9,7 +9,6 @@ - ---------------------------------- ### 函数

    @@ -27,7 +26,6 @@ - * 函数原型: ``` @@ -50,7 +48,6 @@ ret_t children_layouter_register_builtins (); - * 函数原型: ``` diff --git a/docs/manual/input_method_t.md b/docs/manual/input_method_t.md index 28108520fc..50daaac614 100644 --- a/docs/manual/input_method_t.md +++ b/docs/manual/input_method_t.md @@ -16,7 +16,6 @@ > 输入类型请参考:[input\_type](input_type_t.md) - ---------------------------------- ### 函数

    @@ -55,7 +54,6 @@ - * 函数原型: ``` @@ -76,7 +74,6 @@ input_method_t* input_method (); - * 函数原型: ``` @@ -99,7 +96,6 @@ ret_t input_method_commit_text (input_method_t* im, char* text); - * 函数原型: ``` @@ -123,7 +119,6 @@ ret_t input_method_commit_text_ex (input_method_t* im, bool_t replace, char* tex - * 函数原型: ``` @@ -144,7 +139,6 @@ input_method_t* input_method_create (); - * 函数原型: ``` @@ -166,7 +160,6 @@ ret_t input_method_destroy (input_method_t* im); - * 函数原型: ``` @@ -189,7 +182,6 @@ ret_t input_method_dispatch (input_method_t* im, event_t* e); - * 函数原型: ``` @@ -211,7 +203,6 @@ ret_t input_method_dispatch_action (input_method_t* im); - * 函数原型: ``` @@ -235,7 +226,6 @@ ret_t input_method_dispatch_candidates (input_method_t* im, char* strs, uint32_t - * 函数原型: ``` @@ -258,7 +248,6 @@ ret_t input_method_dispatch_key (input_method_t* im, uint32_t key); - * 函数原型: ``` @@ -281,7 +270,6 @@ ret_t input_method_dispatch_to_widget (input_method_t* im, event_t* e); - * 函数原型: ``` @@ -304,7 +292,6 @@ ret_t input_method_off (input_method_t* im, uint32_t id); - * 函数原型: ``` @@ -329,7 +316,6 @@ uint32_t input_method_on (input_method_t* im, event_type_t type, event_func_t on - * 函数原型: ``` @@ -352,7 +338,6 @@ ret_t input_method_request (input_method_t* im, widget_t* widget); - * 函数原型: ``` @@ -374,7 +359,6 @@ ret_t input_method_set (input_method_t* im); - * 函数原型: ``` @@ -394,7 +378,6 @@ ret_t input_method_update_action_button_info (input_method_t* im, char* text, bo >

    软键盘的上的action按钮是否可用。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -406,7 +389,6 @@ ret_t input_method_update_action_button_info (input_method_t* im, char* text, bo >

    软键盘的上的action按钮文本。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -418,7 +400,6 @@ ret_t input_method_update_action_button_info (input_method_t* im, char* text, bo >

    当前输入的类型。 - * 类型:input\_type\_t | 特性 | 是否支持 | diff --git a/docs/manual/input_type_t.md b/docs/manual/input_type_t.md index 1235e80955..0513561c20 100644 --- a/docs/manual/input_type_t.md +++ b/docs/manual/input_type_t.md @@ -1,7 +1,6 @@ ## input\_type\_t ### 概述 输入类型常量定义。 - ### 常量

    diff --git a/docs/manual/key_code_t.md b/docs/manual/key_code_t.md index 23648f8d86..bff242b041 100644 --- a/docs/manual/key_code_t.md +++ b/docs/manual/key_code_t.md @@ -1,7 +1,6 @@ ## key\_code\_t ### 概述 key code。 - ### 常量

    diff --git a/docs/manual/key_event_t.md b/docs/manual/key_event_t.md index 474ba1b2a4..b1569bcfee 100644 --- a/docs/manual/key_event_t.md +++ b/docs/manual/key_event_t.md @@ -4,7 +4,6 @@ 按键事件。 - ---------------------------------- ### 函数

    @@ -40,7 +39,6 @@ - * 函数原型: ``` @@ -62,7 +60,6 @@ key_event_t* key_event_cast (event_t* event); - * 函数原型: ``` @@ -83,7 +80,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    alt键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -96,7 +92,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    capslock键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -110,7 +105,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ cmd/win键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -124,7 +118,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ ctrl键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -137,7 +130,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    键值。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -150,7 +142,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    left alt键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -163,7 +154,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    left ctrl键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -176,7 +166,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    left shift键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -189,7 +178,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    menu键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -202,7 +190,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    right alt键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -215,7 +202,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    right ctrl键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -228,7 +214,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    right shift键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -241,7 +226,6 @@ event_t* key_event_init (key_event_t* event, void* target, uint32_t type, int32_ >

    shift键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/line_number_t.md b/docs/manual/line_number_t.md index 6c02229a07..eff8ed5f6c 100644 --- a/docs/manual/line_number_t.md +++ b/docs/manual/line_number_t.md @@ -35,7 +35,6 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L556) - ---------------------------------- ### 函数

    @@ -57,7 +56,6 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml# - * 函数原型: ``` @@ -79,7 +77,6 @@ widget_t* line_number_cast (widget_t* widget); - * 函数原型: ``` @@ -105,7 +102,6 @@ widget_t* line_number_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); - * 函数原型: ``` @@ -128,7 +124,6 @@ ret_t line_number_set_bottom_margin (widget_t* widget, int32_t bottom_margin); - * 函数原型: ``` @@ -151,7 +146,6 @@ ret_t line_number_set_line_height (widget_t* widget, int32_t line_height); - * 函数原型: ``` @@ -174,7 +168,6 @@ ret_t line_number_set_top_margin (widget_t* widget, int32_t top_margin); - * 函数原型: ``` diff --git a/docs/manual/locale_info_t.md b/docs/manual/locale_info_t.md index ef9d137924..0be7dfb725 100644 --- a/docs/manual/locale_info_t.md +++ b/docs/manual/locale_info_t.md @@ -3,7 +3,6 @@ 本地化信息。提供字符串翻译数据管理,当前语言改变的事件通知等等。 - ---------------------------------- ### 函数

    重新加载字符串资源。 + + + + +* 函数原型: + +``` +ret_t locale_info_reload (locale_info_t* locale_info); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| locale\_info | locale\_info\_t* | locale\_info对象。 | #### locale\_info\_set 函数 ----------------------- @@ -173,7 +189,6 @@ uint32_t locale_info_on (locale_info_t* locale_info, event_type_t type, event_fu - * 函数原型: ``` @@ -196,7 +211,6 @@ ret_t locale_info_set (locale_info_t* locale_info); - * 函数原型: ``` @@ -208,7 +222,7 @@ ret_t locale_info_set_assets_manager (locale_info_t* locale_info, assets_manager | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | -| locale\_info | locale\_info\_t* | 图片管理器对象。 | +| locale\_info | locale\_info\_t* | locale\_info对象。 | | assets\_manager | assets\_manager\_t* | 资源管理器。 | #### locale\_info\_tr 函数 ----------------------- @@ -219,7 +233,6 @@ ret_t locale_info_set_assets_manager (locale_info_t* locale_info, assets_manager - * 函数原型: ``` @@ -238,7 +251,6 @@ char* locale_info_tr (locale_info_t* locale_info, char* text); >

    国家或地区。如:CN - * 类型:char* | 特性 | 是否支持 | @@ -250,7 +262,6 @@ char* locale_info_tr (locale_info_t* locale_info, char* text); >

    语言。如:zh - * 类型:char* | 特性 | 是否支持 | diff --git a/docs/manual/mledit_t.md b/docs/manual/mledit_t.md index 1d63224fe4..c25a991d68 100644 --- a/docs/manual/mledit_t.md +++ b/docs/manual/mledit_t.md @@ -27,7 +27,6 @@ time\_clock一般不需要设置style。 - ---------------------------------- ### 函数

    @@ -70,7 +69,6 @@ - * 函数原型: ``` @@ -92,7 +90,6 @@ widget_t* mledit_cast (widget_t* widget); - * 函数原型: ``` @@ -118,7 +115,6 @@ widget_t* mledit_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); - * 函数原型: ``` @@ -141,7 +137,6 @@ ret_t mledit_set_focus (widget_t* widget, bool_t focus); - * 函数原型: ``` @@ -164,7 +159,6 @@ ret_t mledit_set_input_tips (widget_t* widget, char* tips); - * 函数原型: ``` @@ -187,7 +181,6 @@ ret_t mledit_set_max_lines (widget_t* widget, uint32_t max_lines); - * 函数原型: ``` @@ -210,7 +203,6 @@ ret_t mledit_set_readonly (widget_t* widget, bool_t readonly); - * 函数原型: ``` @@ -229,7 +221,6 @@ ret_t mledit_set_wrap_word (widget_t* widget, bool_t wrap_word); >

    下边距。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -244,7 +235,6 @@ ret_t mledit_set_wrap_word (widget_t* widget, bool_t wrap_word); >

    左边距。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -259,7 +249,6 @@ ret_t mledit_set_wrap_word (widget_t* widget, bool_t wrap_word); >

    最大行数。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -277,7 +266,6 @@ ret_t mledit_set_wrap_word (widget_t* widget, bool_t wrap_word); >

    编辑器是否为只读。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -295,7 +283,6 @@ ret_t mledit_set_wrap_word (widget_t* widget, bool_t wrap_word); >

    右边距。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -310,7 +297,6 @@ ret_t mledit_set_wrap_word (widget_t* widget, bool_t wrap_word); >

    输入提示。 - * 类型:char* | 特性 | 是否支持 | @@ -328,7 +314,6 @@ ret_t mledit_set_wrap_word (widget_t* widget, bool_t wrap_word); >

    上边距。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -343,7 +328,6 @@ ret_t mledit_set_wrap_word (widget_t* widget, bool_t wrap_word); >

    是否自动折行。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/named_value_t.md b/docs/manual/named_value_t.md index 1f71805411..d0a828e6a5 100644 --- a/docs/manual/named_value_t.md +++ b/docs/manual/named_value_t.md @@ -3,7 +3,6 @@ 命名的值。 - ---------------------------------- ### 函数

    @@ -36,7 +35,6 @@ - * 函数原型: ``` @@ -59,7 +57,6 @@ named_value_t* named_value_cast (named_value_t* nv); - * 函数原型: ``` @@ -82,7 +79,6 @@ named_value_t* named_value_create (); - * 函数原型: ``` @@ -106,7 +102,6 @@ ret_t named_value_deinit (named_value_t* nv); - * 函数原型: ``` @@ -131,7 +126,6 @@ ret_t named_value_destroy (named_value_t* nv); - * 函数原型: ``` @@ -155,7 +149,6 @@ value_t* named_value_get_value (named_value_t* nv); - * 函数原型: ``` @@ -181,7 +174,6 @@ ret_t named_value_init (named_value_t* nv, const char* name, const value_t* valu - * 函数原型: ``` @@ -206,7 +198,6 @@ ret_t named_value_set_name (named_value_t* nv, const char* name); - * 函数原型: ``` @@ -225,7 +216,6 @@ ret_t named_value_set_value (named_value_t* nv, const value_t* value); >

    名称。 - * 类型:char* | 特性 | 是否支持 | @@ -238,7 +228,6 @@ ret_t named_value_set_value (named_value_t* nv, const value_t* value); >

    值。 - * 类型:value\_t | 特性 | 是否支持 | diff --git a/docs/manual/native_window_t.md b/docs/manual/native_window_t.md index ac8d6a5f6e..32e4c30927 100644 --- a/docs/manual/native_window_t.md +++ b/docs/manual/native_window_t.md @@ -5,7 +5,6 @@ 原生窗口。 - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` @@ -49,7 +47,6 @@ native_window_t* native_window_create (const char* params); - * 函数原型: ``` @@ -71,7 +68,6 @@ canvas_t native_window_get_canvas (native_window_t* win); - * 函数原型: ``` @@ -95,7 +91,6 @@ ret_t native_window_invalidate (native_window_t* win, rect_t* r); - * 函数原型: ``` @@ -121,7 +116,6 @@ ret_t native_window_move (native_window_t* win, xy_t x, xy_t y, bool_t force); - * 函数原型: ``` diff --git a/docs/manual/object_array_t.md b/docs/manual/object_array_t.md index f1ab75e0c0..94245a6259 100644 --- a/docs/manual/object_array_t.md +++ b/docs/manual/object_array_t.md @@ -11,7 +11,6 @@ * index 用于访问属性,-1可以用来追加新元素。 - ---------------------------------- ### 函数

    @@ -42,7 +41,6 @@ - * 函数原型: ``` @@ -67,7 +65,6 @@ ret_t object_array_clear_props (object_t* obj); - * 函数原型: ``` @@ -91,7 +88,6 @@ object_t* object_array_create (); - * 函数原型: ``` @@ -116,7 +112,6 @@ object_t* object_array_create (object_array_t* o); - * 函数原型: ``` @@ -135,7 +130,6 @@ ret_t object_array_unref (object_t* obj); - * 类型:value\_t | 特性 | 是否支持 | @@ -148,7 +142,6 @@ ret_t object_array_unref (object_t* obj); - * 类型:uint32\_t | 特性 | 是否支持 | @@ -161,7 +154,6 @@ ret_t object_array_unref (object_t* obj); - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/object_default_t.md b/docs/manual/object_default_t.md index cfa2b5a1b3..e30288786c 100644 --- a/docs/manual/object_default_t.md +++ b/docs/manual/object_default_t.md @@ -8,7 +8,6 @@ 内部使用有序数组保存所有属性,可以快速查找指定名称的属性。 - ---------------------------------- ### 函数

    @@ -40,7 +39,6 @@ - * 函数原型: ``` @@ -65,7 +63,6 @@ ret_t object_default_clear_props (object_t* obj); - * 函数原型: ``` @@ -89,7 +86,6 @@ object_t* object_default_create (); - * 函数原型: ``` @@ -114,7 +110,6 @@ object_t* object_default_create (object_default_t* o); - * 函数原型: ``` @@ -141,7 +136,6 @@ value_t* object_default_find_prop (object_t* obj, tk_compare_t cmp, const void* - * 函数原型: ``` @@ -160,7 +154,6 @@ ret_t object_default_unref (object_t* obj); - * 类型:named\_value\_t | 特性 | 是否支持 | @@ -173,7 +166,6 @@ ret_t object_default_unref (object_t* obj); - * 类型:uint32\_t | 特性 | 是否支持 | @@ -186,7 +178,6 @@ ret_t object_default_unref (object_t* obj); - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/object_t.md b/docs/manual/object_t.md index c5cee95a0e..c5ac0d09f5 100644 --- a/docs/manual/object_t.md +++ b/docs/manual/object_t.md @@ -6,7 +6,6 @@ 对象接口。 - ---------------------------------- ### 函数

    @@ -68,7 +67,6 @@ - * 函数原型: ``` @@ -93,7 +91,6 @@ bool_t object_can_exec (object_t* obj, const char* name, const char* args); - * 函数原型: ``` @@ -117,7 +114,6 @@ int object_compare (object_t* obj, object_t* other); - * 函数原型: ``` @@ -144,7 +140,6 @@ ret_t object_copy_prop (object_t* obj, object_t* src, const char* name); - * 函数原型: ``` @@ -167,7 +162,6 @@ ret_t object_create (const object_vtable_t* vt); - * 函数原型: ``` @@ -191,7 +185,6 @@ ret_t object_eval (object_t* obj, const char* expr, value_t* v); - * 函数原型: ``` @@ -216,7 +209,6 @@ ret_t object_exec (object_t* obj, const char* name, const char* args); - * 函数原型: ``` @@ -241,7 +233,6 @@ ret_t object_foreach_prop (object_t* obj, tk_visit_t on_prop, void* ctx); - * 函数原型: ``` @@ -264,7 +255,6 @@ const char* object_get_desc (object_t* obj); - * 函数原型: ``` @@ -289,7 +279,6 @@ ret_t object_get_prop (object_t* obj, const char* name, value_t* v); - * 函数原型: ``` @@ -314,7 +303,6 @@ bool_t object_get_prop_bool (object_t* obj, const char* name, bool_t defval); - * 函数原型: ``` @@ -339,7 +327,6 @@ bool_t object_get_prop_bool_by_path (object_t* obj, const char* path, bool_t def - * 函数原型: ``` @@ -364,7 +351,6 @@ ret_t object_get_prop_by_path (object_t* obj, const char* path, value_t* v); - * 函数原型: ``` @@ -389,7 +375,6 @@ float_t object_get_prop_float (object_t* obj, const char* name, float_t defval); - * 函数原型: ``` @@ -414,7 +399,6 @@ float_t object_get_prop_float_by_path (object_t* obj, const char* path, float_t - * 函数原型: ``` @@ -439,7 +423,6 @@ int32_t object_get_prop_int (object_t* obj, const char* name, int32_t defval); - * 函数原型: ``` @@ -464,7 +447,6 @@ int32_t object_get_prop_int_by_path (object_t* obj, const char* path, int32_t de - * 函数原型: ``` @@ -488,7 +470,6 @@ object_t* object_get_prop_object (object_t* obj, const char* name); - * 函数原型: ``` @@ -512,7 +493,6 @@ object_t* object_get_prop_object_by_path (object_t* obj, const char* path); - * 函数原型: ``` @@ -536,7 +516,6 @@ void* object_get_prop_pointer (object_t* obj, const char* name); - * 函数原型: ``` @@ -560,7 +539,6 @@ void* object_get_prop_pointer_by_path (object_t* obj, const char* path); - * 函数原型: ``` @@ -584,7 +562,6 @@ const char* object_get_prop_str (object_t* obj, const char* name); - * 函数原型: ``` @@ -608,7 +585,6 @@ const char* object_get_prop_str_by_path (object_t* obj, const char* path); - * 函数原型: ``` @@ -631,7 +607,6 @@ uint32_t object_get_size (object_t* obj); - * 函数原型: ``` @@ -654,7 +629,6 @@ const char* object_get_type (object_t* obj); - * 函数原型: ``` @@ -678,7 +652,6 @@ bool_t object_has_prop (object_t* obj, const char* name); - * 函数原型: ``` @@ -701,7 +674,6 @@ bool_t object_is_collection (object_t* obj); - * 函数原型: ``` @@ -724,7 +696,6 @@ ret_t object_notify_changed (object_t* obj); - * 函数原型: ``` @@ -747,7 +718,6 @@ object_t* object_ref (object_t* obj); - * 函数原型: ``` @@ -771,7 +741,6 @@ ret_t object_remove_prop (object_t* obj, const char* name); - * 函数原型: ``` @@ -795,7 +764,6 @@ ret_t object_set_name (object_t* obj, const char* name); - * 函数原型: ``` @@ -820,7 +788,6 @@ ret_t object_set_prop (object_t* obj, const char* name, value_t* value); - * 函数原型: ``` @@ -845,7 +812,6 @@ ret_t object_set_prop_bool (object_t* obj, const char* name, bool_t value); - * 函数原型: ``` @@ -870,7 +836,6 @@ ret_t object_set_prop_float (object_t* obj, const char* name, float_t value); - * 函数原型: ``` @@ -895,7 +860,6 @@ ret_t object_set_prop_int (object_t* obj, const char* name, int32_t value); - * 函数原型: ``` @@ -920,7 +884,6 @@ ret_t object_set_prop_object (object_t* obj, const char* name, object_t* value); - * 函数原型: ``` @@ -945,7 +908,6 @@ ret_t object_set_prop_pointer (object_t* obj, const char* name, void* value); - * 函数原型: ``` @@ -970,7 +932,6 @@ ret_t object_set_prop_str (object_t* obj, const char* name, const char* value); - * 函数原型: ``` @@ -988,7 +949,6 @@ ret_t object_unref (object_t* obj); >

    对象的名称。 - * 类型:char* | 特性 | 是否支持 | @@ -1001,7 +961,6 @@ ret_t object_unref (object_t* obj); >

    引用计数。 - * 类型:int32\_t | 特性 | 是否支持 | diff --git a/docs/manual/orientation_event_t.md b/docs/manual/orientation_event_t.md index 9d107a6b09..c4a8acf008 100644 --- a/docs/manual/orientation_event_t.md +++ b/docs/manual/orientation_event_t.md @@ -4,7 +4,6 @@ 滚轮事件。 - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` @@ -50,7 +48,6 @@ orientation_event_t* orientation_event_cast (event_t* event); - * 函数原型: ``` @@ -71,7 +68,6 @@ event_t* orientation_event_init (orientation_event_t* event, void* target, uint3 >

    屏幕方向。 - * 类型:int32\_t | 特性 | 是否支持 | diff --git a/docs/manual/overlay_t.md b/docs/manual/overlay_t.md index 2d5f17daa5..ac97664a3c 100644 --- a/docs/manual/overlay_t.md +++ b/docs/manual/overlay_t.md @@ -41,7 +41,6 @@ > 更多用法请参考:[theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0) - ---------------------------------- ### 函数

    @@ -59,7 +58,6 @@ - * 函数原型: ``` @@ -81,7 +79,6 @@ widget_t* overlay_cast (widget_t* widget); - * 函数原型: ``` diff --git a/docs/manual/paint_event_t.md b/docs/manual/paint_event_t.md index c619fe92ac..c90db887f4 100644 --- a/docs/manual/paint_event_t.md +++ b/docs/manual/paint_event_t.md @@ -4,7 +4,6 @@ 绘制事件。 - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` @@ -50,7 +48,6 @@ paint_event_t* paint_event_cast (event_t* event); - * 函数原型: ``` @@ -71,7 +68,6 @@ event_t* paint_event_init (paint_event_t* event, void* target, uint32_t type, ca >

    canvas。 - * 类型:canvas\_t* | 特性 | 是否支持 | diff --git a/docs/manual/point_t.md b/docs/manual/point_t.md index 863e342ddb..b9132d26ec 100644 --- a/docs/manual/point_t.md +++ b/docs/manual/point_t.md @@ -2,7 +2,6 @@ ### 概述 点。包括一个x坐标和一个y坐标。 - ---------------------------------- ### 属性

    @@ -16,7 +15,6 @@ >

    x坐标。 - * 类型:xy\_t | 特性 | 是否支持 | @@ -28,7 +26,6 @@ >

    y坐标。 - * 类型:xy\_t | 特性 | 是否支持 | diff --git a/docs/manual/pointer_event_t.md b/docs/manual/pointer_event_t.md index 66ace4e7d5..e9d05cb134 100644 --- a/docs/manual/pointer_event_t.md +++ b/docs/manual/pointer_event_t.md @@ -4,7 +4,6 @@ 指针事件。 - ---------------------------------- ### 函数

    @@ -36,7 +35,6 @@ - * 函数原型: ``` @@ -58,7 +56,6 @@ pointer_event_t* pointer_event_cast (event_t* event); - * 函数原型: ``` @@ -80,7 +77,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    alt键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -93,7 +89,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    button。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -106,7 +101,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    cmd键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -119,7 +113,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    ctrl键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -132,7 +125,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    menu键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -145,7 +137,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    指针是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -158,7 +149,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    shift键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -171,7 +161,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    x坐标。 - * 类型:xy\_t | 特性 | 是否支持 | @@ -184,7 +173,6 @@ event_t* pointer_event_init (pointer_event_t* event, void* target, uint32_t type >

    y坐标。 - * 类型:xy\_t | 特性 | 是否支持 | diff --git a/docs/manual/preload_res_t.md b/docs/manual/preload_res_t.md index 0695b17a92..02ffc28089 100644 --- a/docs/manual/preload_res_t.md +++ b/docs/manual/preload_res_t.md @@ -2,5 +2,4 @@ ### 概述 预加载资源的描述信息。 - ---------------------------------- diff --git a/docs/manual/prop_change_event_t.md b/docs/manual/prop_change_event_t.md index 7823b856f3..8795bbeead 100644 --- a/docs/manual/prop_change_event_t.md +++ b/docs/manual/prop_change_event_t.md @@ -4,7 +4,6 @@ 对象属性变化事件。 - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` @@ -46,7 +44,6 @@ prop_change_event_t* prop_change_event_cast (event_t* event); >

    属性的名称。 - * 类型:const char* | 特性 | 是否支持 | @@ -59,7 +56,6 @@ prop_change_event_t* prop_change_event_cast (event_t* event); >

    属性的值。 - * 类型:const value\_t* | 特性 | 是否支持 | diff --git a/docs/manual/prop_desc_flags_t.md b/docs/manual/prop_desc_flags_t.md index 2ecc7edad8..9acbe76049 100644 --- a/docs/manual/prop_desc_flags_t.md +++ b/docs/manual/prop_desc_flags_t.md @@ -1,7 +1,6 @@ ## prop\_desc\_flags\_t ### 概述 属性描述范围常量定义。 - ### 常量

    diff --git a/docs/manual/rbuffer_t.md b/docs/manual/rbuffer_t.md index 500eb84382..031bc032cc 100644 --- a/docs/manual/rbuffer_t.md +++ b/docs/manual/rbuffer_t.md @@ -17,7 +17,6 @@ rbuffer_read_string(&rbuffer, &str); ``` - ---------------------------------- ### 函数

    @@ -53,7 +52,6 @@ - * 函数原型: ``` @@ -75,7 +73,6 @@ bool_t rbuffer_has_more (rbuffer_t* rbuffer); - * 函数原型: ``` @@ -99,7 +96,6 @@ rbuffer_t* rbuffer_init (rbuffer_t* rbuffer, uint8_t* data, uint16_t capacity); - * 函数原型: ``` @@ -122,7 +118,6 @@ ret_t rbuffer_peek_uint16 (rbuffer_t* rbuffer, uint16_t* value); - * 函数原型: ``` @@ -145,7 +140,6 @@ ret_t rbuffer_peek_uint32 (rbuffer_t* rbuffer, uint32_t* value); - * 函数原型: ``` @@ -168,7 +162,6 @@ ret_t rbuffer_peek_uint8 (rbuffer_t* rbuffer, uint8_t* value); - * 函数原型: ``` @@ -192,7 +185,6 @@ ret_t rbuffer_read_binary (rbuffer_t* rbuffer, void* data, uint32_t size); - * 函数原型: ``` @@ -215,7 +207,6 @@ ret_t rbuffer_read_float (rbuffer_t* rbuffer, float_t* value); - * 函数原型: ``` @@ -238,7 +229,6 @@ ret_t rbuffer_read_string (rbuffer_t* rbuffer, char** str); - * 函数原型: ``` @@ -261,7 +251,6 @@ ret_t rbuffer_read_uint16 (rbuffer_t* rbuffer, uint16_t* value); - * 函数原型: ``` @@ -284,7 +273,6 @@ ret_t rbuffer_read_uint32 (rbuffer_t* rbuffer, uint32_t* value); - * 函数原型: ``` @@ -307,7 +295,6 @@ ret_t rbuffer_read_uint8 (rbuffer_t* rbuffer, uint8_t* value); - * 函数原型: ``` @@ -326,7 +313,6 @@ ret_t rbuffer_skip (rbuffer_t* rbuffer, int32_t offset); >

    缓存区最大容量。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -338,7 +324,6 @@ ret_t rbuffer_skip (rbuffer_t* rbuffer, int32_t offset); >

    当前读取位置。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -350,7 +335,6 @@ ret_t rbuffer_skip (rbuffer_t* rbuffer, int32_t offset); >

    缓存区。 - * 类型:uint8\_t* | 特性 | 是否支持 | diff --git a/docs/manual/rect_t.md b/docs/manual/rect_t.md index 37b1bc9301..abe97ab1b7 100644 --- a/docs/manual/rect_t.md +++ b/docs/manual/rect_t.md @@ -2,7 +2,6 @@ ### 概述 矩形。包括一个x坐标、y坐标、宽度和高度。 - ---------------------------------- ### 函数

    @@ -33,7 +32,6 @@ - * 函数原型: ``` @@ -58,7 +56,6 @@ rect_t* rect_cast (rect_t* rect); - * 函数原型: ``` @@ -86,7 +83,6 @@ rect_t* rect_create (xy_t x, xy_t y, wh_t w, wh_t h); - * 函数原型: ``` @@ -111,7 +107,6 @@ ret_t rect_destroy (rect_t* r); - * 函数原型: ``` @@ -133,7 +128,6 @@ rect_t* rect_set (rect_t* rect, xy_t x, xy_t y, wh_t w, wh_t h); >

    高度。 - * 类型:wh\_t | 特性 | 是否支持 | @@ -146,7 +140,6 @@ rect_t* rect_set (rect_t* rect, xy_t x, xy_t y, wh_t w, wh_t h); >

    宽度。 - * 类型:wh\_t | 特性 | 是否支持 | @@ -159,7 +152,6 @@ rect_t* rect_set (rect_t* rect, xy_t x, xy_t y, wh_t w, wh_t h); >

    x坐标。 - * 类型:xy\_t | 特性 | 是否支持 | @@ -172,7 +164,6 @@ rect_t* rect_set (rect_t* rect, xy_t x, xy_t y, wh_t w, wh_t h); >

    y坐标。 - * 类型:xy\_t | 特性 | 是否支持 | diff --git a/docs/manual/rgba_t.md b/docs/manual/rgba_t.md index 312ce7796e..caa0be8fd9 100644 --- a/docs/manual/rgba_t.md +++ b/docs/manual/rgba_t.md @@ -3,7 +3,6 @@ 颜色的四个通道。 - ---------------------------------- ### 属性

    @@ -19,7 +18,6 @@ >

    alpha。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -31,7 +29,6 @@ >

    蓝色。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -43,7 +40,6 @@ >

    绿色。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -55,7 +51,6 @@ >

    红色。 - * 类型:uint8\_t | 特性 | 是否支持 | diff --git a/docs/manual/rich_text_t.md b/docs/manual/rich_text_t.md index 34923d706b..62685d446f 100644 --- a/docs/manual/rich_text_t.md +++ b/docs/manual/rich_text_t.md @@ -52,7 +52,6 @@ * underline 下划线(暂不支持) - ---------------------------------- ### 函数

    @@ -77,7 +76,6 @@ - * 函数原型: ``` @@ -99,7 +97,6 @@ widget_t* rich_text_cast (widget_t* widget); - * 函数原型: ``` @@ -125,7 +122,6 @@ widget_t* rich_text_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); - * 函数原型: ``` @@ -144,7 +140,6 @@ ret_t rich_text_set_text (widget_t* widget, char* text); >

    行间距。 - * 类型:int32\_t | 特性 | 是否支持 | diff --git a/docs/manual/ring_buffer_t.md b/docs/manual/ring_buffer_t.md index da469e7426..925207d1e8 100644 --- a/docs/manual/ring_buffer_t.md +++ b/docs/manual/ring_buffer_t.md @@ -2,7 +2,6 @@ ### 概述 循环缓存区。 - ---------------------------------- ### 函数

    @@ -47,7 +46,6 @@ - * 函数原型: ``` @@ -70,7 +68,6 @@ uint32_t ring_buffer_capacity (ring_buffer_t* ring_buffer); - * 函数原型: ``` @@ -94,7 +91,6 @@ ring_buffer_t* ring_buffer_create (uint32_t init_capacity, uint32_t max_capacity - * 函数原型: ``` @@ -117,7 +113,6 @@ ret_t ring_buffer_destroy (ring_buffer_t* ring_buffer); - * 函数原型: ``` @@ -140,7 +135,6 @@ uint32_t ring_buffer_free_size (ring_buffer_t* ring_buffer); - * 函数原型: ``` @@ -163,7 +157,6 @@ bool_t ring_buffer_is_empty (ring_buffer_t* ring_buffer); - * 函数原型: ``` @@ -186,7 +179,6 @@ bool_t ring_buffer_is_full (ring_buffer_t* ring_buffer); - * 函数原型: ``` @@ -211,7 +203,6 @@ uint32_t ring_buffer_peek (ring_buffer_t* ring_buffer, void* buff, uint32_t size - * 函数原型: ``` @@ -236,7 +227,6 @@ uint32_t ring_buffer_read (ring_buffer_t* ring_buffer, void* buff, uint32_t size - * 函数原型: ``` @@ -261,7 +251,6 @@ ret_t ring_buffer_read_len (ring_buffer_t* ring_buffer, void* buff, uint32_t siz - * 函数原型: ``` @@ -284,7 +273,6 @@ ret_t ring_buffer_reset (ring_buffer_t* ring_buffer); - * 函数原型: ``` @@ -308,7 +296,6 @@ ret_t ring_buffer_set_read_cursor (ring_buffer_t* ring_buffer, uint32_t r); - * 函数原型: ``` @@ -332,7 +319,6 @@ ret_t ring_buffer_set_read_cursor_delta (ring_buffer_t* ring_buffer, uint32_t r_ - * 函数原型: ``` @@ -356,7 +342,6 @@ ret_t ring_buffer_set_write_cursor (ring_buffer_t* ring_buffer, uint32_t w); - * 函数原型: ``` @@ -380,7 +365,6 @@ ret_t ring_buffer_set_write_cursor_delta (ring_buffer_t* ring_buffer, uint32_t w - * 函数原型: ``` @@ -404,7 +388,6 @@ uint32_t ring_buffer_size (ring_buffer_t* ring_buffer); - * 函数原型: ``` @@ -429,7 +412,6 @@ uint32_t ring_buffer_write (ring_buffer_t* ring_buffer, const void* buff, uint32 - * 函数原型: ``` @@ -449,7 +431,6 @@ ret_t ring_buffer_write_len (ring_buffer_t* ring_buffer, const void* buff, uint3 >

    当前容量。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -461,7 +442,6 @@ ret_t ring_buffer_write_len (ring_buffer_t* ring_buffer, const void* buff, uint3 >

    数据。 - * 类型:uint8\_t* | 特性 | 是否支持 | @@ -473,7 +453,6 @@ ret_t ring_buffer_write_len (ring_buffer_t* ring_buffer, const void* buff, uint3 >

    是否满。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -485,7 +464,6 @@ ret_t ring_buffer_write_len (ring_buffer_t* ring_buffer, const void* buff, uint3 >

    最大容量。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -497,7 +475,6 @@ ret_t ring_buffer_write_len (ring_buffer_t* ring_buffer, const void* buff, uint3 >

    读取位置。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -509,7 +486,6 @@ ret_t ring_buffer_write_len (ring_buffer_t* ring_buffer, const void* buff, uint3 >

    写入位置。 - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/self_layouter_default_t.md b/docs/manual/self_layouter_default_t.md index 725ea9fa48..551b8cd43e 100644 --- a/docs/manual/self_layouter_default_t.md +++ b/docs/manual/self_layouter_default_t.md @@ -9,7 +9,6 @@ https://github.com/zlgopen/awtk/blob/master/docs/self_layouter_default.md) - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ https://github.com/zlgopen/awtk/blob/master/docs/self_layouter_default.md) - * 函数原型: ``` diff --git a/docs/manual/self_layouter_factory_t.md b/docs/manual/self_layouter_factory_t.md index 4578da8af8..44437cb9e3 100644 --- a/docs/manual/self_layouter_factory_t.md +++ b/docs/manual/self_layouter_factory_t.md @@ -3,7 +3,6 @@ 控件自身布局算法工厂。 - ---------------------------------- ### 函数

    @@ -24,7 +23,6 @@ >

    获取缺省的控件自身布局算法工厂对象。 - * 函数原型: ``` @@ -45,7 +43,6 @@ self_layouter_factory_t* self_layouter_factory (); - * 函数原型: ``` @@ -66,7 +63,6 @@ self_layouter_factory_t* self_layouter_factory_create (); - * 函数原型: ``` @@ -89,7 +85,6 @@ self_layouter_t* self_layouter_factory_create_layouter (self_layouter_factory_t* - * 函数原型: ``` @@ -111,7 +106,6 @@ ret_t self_layouter_factory_destroy (self_layouter_factory_t* factory); - * 函数原型: ``` @@ -135,7 +129,6 @@ ret_t self_layouter_factory_register (self_layouter_factory_t* factory, const ch - * 函数原型: ``` diff --git a/docs/manual/self_layouter_menu_t.md b/docs/manual/self_layouter_menu_t.md index cbe3e1d253..654bb1a144 100644 --- a/docs/manual/self_layouter_menu_t.md +++ b/docs/manual/self_layouter_menu_t.md @@ -9,7 +9,6 @@ https://github.com/zlgopen/awtk/blob/master/docs/self_layouter_menu.md) - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ https://github.com/zlgopen/awtk/blob/master/docs/self_layouter_menu.md) - * 函数原型: ``` diff --git a/docs/manual/self_layouter_t.md b/docs/manual/self_layouter_t.md index d604d0578f..3e7ad7f2f5 100644 --- a/docs/manual/self_layouter_t.md +++ b/docs/manual/self_layouter_t.md @@ -4,7 +4,6 @@ 按特定算法对控件进行排版布局,子类需要实现vtable中的函数。 - ---------------------------------- ### 函数

    @@ -29,7 +28,6 @@ - * 函数原型: ``` @@ -51,7 +49,6 @@ self_layouter_t* self_layouter_create (const char* params); - * 函数原型: ``` @@ -73,7 +70,6 @@ ret_t self_layouter_destroy (self_layouter_t* layouter); - * 函数原型: ``` @@ -97,7 +93,6 @@ ret_t self_layouter_get_param (self_layouter_t* layouter, const char* name, valu - * 函数原型: ``` @@ -121,7 +116,6 @@ ret_t self_layouter_get_param_float (self_layouter_t* layouter, const char* name - * 函数原型: ``` @@ -145,7 +139,6 @@ ret_t self_layouter_get_param_int (self_layouter_t* layouter, const char* name, - * 函数原型: ``` @@ -169,7 +162,6 @@ ret_t self_layouter_layout (self_layouter_t* layouter, widget_t* widget, rect_t* - * 函数原型: ``` @@ -193,7 +185,6 @@ ret_t self_layouter_set_param (self_layouter_t* layouter, const char* name, cons - * 函数原型: ``` @@ -217,7 +208,6 @@ ret_t self_layouter_set_param_str (self_layouter_t* layouter, const char* name, - * 函数原型: ``` diff --git a/docs/manual/shortcut_t.md b/docs/manual/shortcut_t.md index 2997004a70..ae4308c00e 100644 --- a/docs/manual/shortcut_t.md +++ b/docs/manual/shortcut_t.md @@ -2,7 +2,6 @@ ### 概述 快捷键。 - ---------------------------------- ### 函数

    @@ -40,7 +39,6 @@ - * 函数原型: ``` @@ -63,7 +61,6 @@ bool_t shortcut_equal (shortcut_t* shortcut1, shortcut_t* shortcut2); - * 函数原型: ``` @@ -84,7 +81,6 @@ shortcut_t* shortcut_init (); - * 函数原型: ``` @@ -106,7 +102,6 @@ shortcut_t* shortcut_init_with_str (shortcut_t* shortcut); - * 函数原型: ``` @@ -125,7 +120,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    alt键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -137,7 +131,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    cmd/win键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -149,7 +142,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    ctrl键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -161,7 +153,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    是否有效。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -173,7 +164,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    键值。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -185,7 +175,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    left alt键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -197,7 +186,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    left ctrl键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -209,7 +197,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    left shift键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -221,7 +208,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    menu键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -233,7 +219,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    right alt键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -245,7 +230,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    right ctrl键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -257,7 +241,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    right shift键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -269,7 +252,6 @@ bool_t shortcut_match (shortcut_t* filter, shortcut_t* event); >

    shift键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/slide_indicator_t.md b/docs/manual/slide_indicator_t.md index a70280903e..8e77b401dd 100644 --- a/docs/manual/slide_indicator_t.md +++ b/docs/manual/slide_indicator_t.md @@ -36,7 +36,6 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml) https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L350) - ---------------------------------- ### 函数

    @@ -80,7 +79,6 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml# - * 函数原型: ``` @@ -102,7 +100,6 @@ widget_t* slide_indicator_cast (widget_t* widget); - * 函数原型: ``` @@ -128,7 +125,6 @@ widget_t* slide_indicator_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t - * 函数原型: ``` @@ -154,7 +150,6 @@ widget_t* slide_indicator_create_arc (widget_t* parent, xy_t x, xy_t y, wh_t w, - * 函数原型: ``` @@ -180,7 +175,6 @@ widget_t* slide_indicator_create_linear (widget_t* parent, xy_t x, xy_t y, wh_t - * 函数原型: ``` @@ -204,7 +198,6 @@ ret_t slide_indicator_set_anchor (widget_t* widget, const char* anchor_x, const - * 函数原型: ``` @@ -227,7 +220,6 @@ ret_t slide_indicator_set_auto_hide (widget_t* widget, uint16_t auto_hide); - * 函数原型: ``` @@ -250,7 +242,6 @@ ret_t slide_indicator_set_default_paint (widget_t* widget, indicator_default_pai - * 函数原型: ``` @@ -273,7 +264,6 @@ ret_t slide_indicator_set_indicated_target (widget_t* widget, const char* indica - * 函数原型: ``` @@ -296,7 +286,6 @@ ret_t slide_indicator_set_margin (widget_t* widget, int32_t margin); - * 函数原型: ``` @@ -319,7 +308,6 @@ ret_t slide_indicator_set_max (widget_t* widget, uint32_t max); - * 函数原型: ``` @@ -342,7 +330,6 @@ ret_t slide_indicator_set_size (widget_t* widget, uint32_t size); - * 函数原型: ``` @@ -365,7 +352,6 @@ ret_t slide_indicator_set_spacing (widget_t* widget, float_t spacing); - * 函数原型: ``` @@ -384,7 +370,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    锚点x坐标。 - * 类型:float\_t | 特性 | 是否支持 | @@ -402,7 +387,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    锚点y坐标。 - * 类型:float\_t | 特性 | 是否支持 | @@ -420,7 +404,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    自动隐藏。0表示禁止,非0表示无操作后延迟多久隐藏。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -438,7 +421,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    指示器的类型。 - * 类型:indicator\_default\_paint\_t | 特性 | 是否支持 | @@ -456,7 +438,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    指示器指示的目标。 - * 类型:char* | 特性 | 是否支持 | @@ -474,7 +455,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    指示器与边缘的边距。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -492,7 +472,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    最大值(缺省为100)。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -510,7 +489,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    指示器的大小。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -528,7 +506,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    指示器的中心之间的间距(圆弧显示时,间距的单位为弧度,否则为像素)。 - * 类型:float\_t | 特性 | 是否支持 | @@ -546,7 +523,6 @@ ret_t slide_indicator_set_value (widget_t* widget, uint32_t value); >

    值(缺省为0)。 - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/slist_t.md b/docs/manual/slist_t.md index 6a69bcdc50..0d79d34bbb 100644 --- a/docs/manual/slist_t.md +++ b/docs/manual/slist_t.md @@ -20,7 +20,6 @@ ``` - ---------------------------------- ### 函数

    @@ -56,7 +55,6 @@ - * 函数原型: ``` @@ -79,7 +77,6 @@ ret_t slist_append (slist_t* slist, void* data); - * 函数原型: ``` @@ -102,7 +99,6 @@ int32_t slist_count (slist_t* slist, void* ctx); - * 函数原型: ``` @@ -125,7 +121,6 @@ slist_t* slist_create (tk_destroy_t destroy, tk_compare_t compare); - * 函数原型: ``` @@ -148,7 +143,6 @@ ret_t slist_deinit (slist_t* slist); - * 函数原型: ``` @@ -170,7 +164,6 @@ ret_t slist_destroy (slist_t* slist); - * 函数原型: ``` @@ -193,7 +186,6 @@ void* slist_find (slist_t* slist, void* ctx); - * 函数原型: ``` @@ -217,7 +209,6 @@ ret_t slist_foreach (slist_t* slist, tk_visit_t visit, void* ctx); - * 函数原型: ``` @@ -241,7 +232,6 @@ slist_t* slist_init (slist_t* slist, tk_destroy_t destroy, tk_compare_t compare) - * 函数原型: ``` @@ -264,7 +254,6 @@ ret_t slist_prepend (slist_t* slist, void* data); - * 函数原型: ``` @@ -287,7 +276,6 @@ ret_t slist_remove (slist_t* slist, void* ctx); - * 函数原型: ``` @@ -309,7 +297,6 @@ ret_t slist_remove_all (slist_t* slist); - * 函数原型: ``` @@ -327,7 +314,6 @@ int32_t slist_size (slist_t* slist); >

    元素比较函数。 - * 类型:tk\_compare\_t | 特性 | 是否支持 | @@ -339,7 +325,6 @@ int32_t slist_size (slist_t* slist); >

    元素销毁函数。 - * 类型:tk\_destroy\_t | 特性 | 是否支持 | @@ -351,7 +336,6 @@ int32_t slist_size (slist_t* slist); >

    首节点。 - * 类型:slist\_node\_t* | 特性 | 是否支持 | diff --git a/docs/manual/str_t.md b/docs/manual/str_t.md index ce0fc1684c..fbd2106b70 100644 --- a/docs/manual/str_t.md +++ b/docs/manual/str_t.md @@ -17,7 +17,6 @@ > 先调str\_init进行初始化,最后调用str\_reset释放内存。 - ---------------------------------- ### 函数

    @@ -73,7 +72,6 @@ - * 函数原型: ``` @@ -96,7 +94,6 @@ ret_t str_append (str_t* str, char* text); - * 函数原型: ``` @@ -119,7 +116,6 @@ ret_t str_append_char (str_t* str, char c); - * 函数原型: ``` @@ -143,7 +139,6 @@ ret_t str_append_with_len (str_t* str, char* text, uint32_t len); - * 函数原型: ``` @@ -165,7 +160,6 @@ ret_t str_clear (str_t* str); - * 函数原型: ``` @@ -188,7 +182,6 @@ ret_t str_decode_xml_entity (str_t* str, char* text); - * 函数原型: ``` @@ -212,7 +205,6 @@ ret_t str_decode_xml_entity_with_len (str_t* str, char* text, uint32_t len); - * 函数原型: ``` @@ -235,7 +227,6 @@ bool_t str_end_with (str_t* str, char* text); - * 函数原型: ``` @@ -265,7 +256,6 @@ bool_t str_eq (str_t* str, char* text); - * 函数原型: ``` @@ -287,7 +277,6 @@ ret_t str_expand_vars (str_t* str); - * 函数原型: ``` @@ -310,7 +299,6 @@ ret_t str_extend (str_t* str, uint32_t capacity); - * 函数原型: ``` @@ -333,7 +321,6 @@ ret_t str_from_float (str_t* str, double v); - * 函数原型: ``` @@ -356,7 +343,6 @@ ret_t str_from_int (str_t* str, int32_t v); - * 函数原型: ``` @@ -379,7 +365,6 @@ ret_t str_from_value (str_t* str, value_t v); - * 函数原型: ``` @@ -402,7 +387,6 @@ ret_t str_from_wstr (str_t* str, wchar_t* wstr); - * 函数原型: ``` @@ -425,7 +409,6 @@ str_t* str_init (str_t* str, uint32_t capacity); - * 函数原型: ``` @@ -449,7 +432,6 @@ ret_t str_insert (str_t* str, uint32_t offset, char* text); - * 函数原型: ``` @@ -474,7 +456,6 @@ ret_t str_insert_with_len (str_t* str, uint32_t offset, char* text, uint32_t len - * 函数原型: ``` @@ -496,7 +477,6 @@ ret_t str_pop (str_t* str); - * 函数原型: ``` @@ -520,7 +500,6 @@ ret_t str_remove (str_t* str, uint32_t offset, uint32_t len); - * 函数原型: ``` @@ -544,7 +523,6 @@ ret_t str_replace (str_t* str, char* text, char* new_text); - * 函数原型: ``` @@ -566,7 +544,6 @@ ret_t str_reset (str_t* str); - * 函数原型: ``` @@ -589,7 +566,6 @@ ret_t str_set (str_t* str, char* text); - * 函数原型: ``` @@ -613,7 +589,6 @@ ret_t str_set_with_len (str_t* str, char* text, uint32_t len); - * 函数原型: ``` @@ -636,7 +611,6 @@ bool_t str_start_with (str_t* str, char* text); - * 函数原型: ``` @@ -659,7 +633,6 @@ ret_t str_to_float (str_t* str, double* v); - * 函数原型: ``` @@ -682,7 +655,6 @@ ret_t str_to_int (str_t* str, int32_t* v); - * 函数原型: ``` @@ -704,7 +676,6 @@ ret_t str_to_lower (str_t* str); - * 函数原型: ``` @@ -726,7 +697,6 @@ ret_t str_to_upper (str_t* str); - * 函数原型: ``` @@ -749,7 +719,6 @@ ret_t str_trim (str_t* str, char* text); - * 函数原型: ``` @@ -772,7 +741,6 @@ ret_t str_trim_left (str_t* str, char* text); - * 函数原型: ``` @@ -795,7 +763,6 @@ ret_t str_trim_right (str_t* str, char* text); - * 函数原型: ``` @@ -813,7 +780,6 @@ ret_t str_unescape (str_t* str); >

    容量。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -825,7 +791,6 @@ ret_t str_unescape (str_t* str); >

    长度。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -837,7 +802,6 @@ ret_t str_unescape (str_t* str); >

    字符串。 - * 类型:char* | 特性 | 是否支持 | diff --git a/docs/manual/style_const_t.md b/docs/manual/style_const_t.md index 11e35dab9c..675fe24a17 100644 --- a/docs/manual/style_const_t.md +++ b/docs/manual/style_const_t.md @@ -8,7 +8,6 @@ tools/theme_gen用于把XML的主题数据转换成常量数据。 - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/style_factory_t.md b/docs/manual/style_factory_t.md index 44ab60ae15..cfba50cc32 100644 --- a/docs/manual/style_factory_t.md +++ b/docs/manual/style_factory_t.md @@ -5,7 +5,6 @@ > 在特殊情况下,可以实现自己的style工厂,比如支持CSS和可实时修改的style。 - ---------------------------------- ### 函数

    @@ -23,7 +22,6 @@ >

    获取缺省的style factory。 - * 函数原型: ``` @@ -44,7 +42,6 @@ style_factory_t* style_factory (); - * 函数原型: ``` @@ -67,7 +64,6 @@ style_t* style_factory_create_style (style_factory_t* factory, widget_t* widget) - * 函数原型: ``` diff --git a/docs/manual/style_id_t.md b/docs/manual/style_id_t.md index 5eed46aab7..64c73b3369 100644 --- a/docs/manual/style_id_t.md +++ b/docs/manual/style_id_t.md @@ -1,7 +1,6 @@ ## style\_id\_t ### 概述 style常量定义。 - ### 常量

    diff --git a/docs/manual/style_mutable_t.md b/docs/manual/style_mutable_t.md index db3033ddb9..33a62635ea 100644 --- a/docs/manual/style_mutable_t.md +++ b/docs/manual/style_mutable_t.md @@ -8,7 +8,6 @@ style\_mutable也对style\_const进行了包装,当用户没修改某个值时,便从style\_const中获取。 - ---------------------------------- ### 函数

    @@ -42,7 +41,6 @@ - * 函数原型: ``` @@ -64,7 +62,6 @@ style_t* style_mutable_cast (style_t* s); - * 函数原型: ``` @@ -90,7 +87,6 @@ ret_t style_mutable_copy (style_t* s, style_t* other); - * 函数原型: ``` @@ -113,7 +109,6 @@ style_t* style_mutable_create (widget_t* widget, style_t* default_style); - * 函数原型: ``` @@ -137,7 +132,6 @@ ret_t style_mutable_foreach (style_t* s, tk_on_style_item_t on_style_item, void* - * 函数原型: ``` @@ -159,7 +153,6 @@ const char* style_mutable_get_name (style_t* s); - * 函数原型: ``` @@ -184,7 +177,6 @@ ret_t style_mutable_get_value (style_t* s, const char* state, const char* name, - * 函数原型: ``` @@ -205,7 +197,6 @@ ret_t style_mutable_register (); - * 函数原型: ``` @@ -230,7 +221,6 @@ ret_t style_mutable_set_color (style_t* s, const char* state, const char* name, - * 函数原型: ``` @@ -255,7 +245,6 @@ ret_t style_mutable_set_int (style_t* s, const char* state, const char* name, in - * 函数原型: ``` @@ -278,7 +267,6 @@ ret_t style_mutable_set_name (style_t* s, const char* name); - * 函数原型: ``` @@ -303,7 +291,6 @@ ret_t style_mutable_set_str (style_t* s, const char* state, const char* name, co - * 函数原型: ``` @@ -324,7 +311,6 @@ ret_t style_mutable_set_value (style_t* s, const char* state, const char* name, >

    名称。 - * 类型:char* | 特性 | 是否支持 | diff --git a/docs/manual/style_t.md b/docs/manual/style_t.md index 59d7cf1cb9..941aeb6d53 100644 --- a/docs/manual/style_t.md +++ b/docs/manual/style_t.md @@ -14,7 +14,6 @@ 属性名称的请参考[style\_id](style_id_t.md) - ---------------------------------- ### 函数

    @@ -38,7 +37,6 @@ - * 函数原型: ``` @@ -60,7 +58,6 @@ ret_t style_destroy (style_t* s); - * 函数原型: ``` @@ -84,7 +81,6 @@ color_t style_get_color (style_t* s, const char* name, color_t defval); - * 函数原型: ``` @@ -108,7 +104,6 @@ int32_t style_get_int (style_t* s, const char* name, int32_t defval); - * 函数原型: ``` @@ -132,7 +127,6 @@ const char* style_get_str (style_t* s, const char* name, const char* defval); - * 函数原型: ``` @@ -154,7 +148,6 @@ bool_t style_is_mutable (style_t* s); - * 函数原型: ``` @@ -176,7 +169,6 @@ bool_t style_is_valid (style_t* s); - * 函数原型: ``` @@ -199,7 +191,6 @@ ret_t style_notify_widget_state_changed (style_t* s, widget_t* widget); - * 函数原型: ``` diff --git a/docs/manual/suggest_words_t.md b/docs/manual/suggest_words_t.md index a09e2bcd3e..5d005336b1 100644 --- a/docs/manual/suggest_words_t.md +++ b/docs/manual/suggest_words_t.md @@ -2,7 +2,6 @@ ### 概述 输入法联想字词。 - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` @@ -49,7 +47,6 @@ suggest_words_t* suggest_words_create (asset_info_t* res); - * 函数原型: ``` @@ -71,7 +68,6 @@ ret_t suggest_words_destroy (suggest_words_t* suggest_words); - * 函数原型: ``` diff --git a/docs/manual/system_info_t.md b/docs/manual/system_info_t.md index 5265dc6cd1..b2ca287a31 100644 --- a/docs/manual/system_info_t.md +++ b/docs/manual/system_info_t.md @@ -4,7 +4,6 @@ 当前系统的信息。 - ---------------------------------- ### 函数

    @@ -48,7 +47,6 @@ >

    获取system_info对象。 - * 函数原型: ``` @@ -69,7 +67,6 @@ system_info_t* system_info (); - * 函数原型: ``` @@ -91,7 +88,6 @@ ret_t system_info_deinit (); - * 函数原型: ``` @@ -113,7 +109,6 @@ const char* system_info_fix_font_name (const char* name); - * 函数原型: ``` @@ -138,7 +133,6 @@ ret_t system_info_init (app_type_t app_type, const char* app_name, const char* a - * 函数原型: ``` @@ -162,7 +156,6 @@ ret_t system_info_set_default_font (system_info_t* info info, const char* defaul - * 函数原型: ``` @@ -186,7 +179,6 @@ ret_t system_info_set_device_pixel_ratio (system_info_t* info info, float_t devi - * 函数原型: ``` @@ -210,7 +202,6 @@ ret_t system_info_set_font_scale (system_info_t* info info, float_t font_scale); - * 函数原型: ``` @@ -234,7 +225,6 @@ ret_t system_info_set_lcd_h (system_info_t* info info, uint32_t lcd_h); - * 函数原型: ``` @@ -258,7 +248,6 @@ ret_t system_info_set_lcd_orientation (system_info_t* info info, lcd_orientation - * 函数原型: ``` @@ -282,7 +271,6 @@ ret_t system_info_set_lcd_type (system_info_t* info info, lcd_type_t lcd_type); - * 函数原型: ``` @@ -301,7 +289,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    应用程序的名称。 - * 类型:const char* | 特性 | 是否支持 | @@ -313,7 +300,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    应用程序的根目录,用于定位资源文件。 - * 类型:const char* | 特性 | 是否支持 | @@ -325,7 +311,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    应用程序的类型。 - * 类型:app\_type\_t | 特性 | 是否支持 | @@ -339,7 +324,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); > 只能通过object\_get\_prop函数访问。 - * 类型:const char* | 特性 | 是否支持 | @@ -351,7 +335,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    缺省字体。 - * 类型:const char* | 特性 | 是否支持 | @@ -365,7 +348,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); > 只能通过object\_get\_prop函数访问。 - * 类型:const char* | 特性 | 是否支持 | @@ -377,7 +359,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    显示屏的密度。 - * 类型:float\_t | 特性 | 是否支持 | @@ -389,7 +370,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    字体缩放比例,用于实现字体整体放大。 - * 类型:float\_t | 特性 | 是否支持 | @@ -403,7 +383,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); > 只能通过object\_get\_prop函数访问。 - * 类型:const char* | 特性 | 是否支持 | @@ -415,7 +394,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    显示屏的高度。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -427,7 +405,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    显示屏的旋转角度。 - * 类型:lcd\_orientation\_t | 特性 | 是否支持 | @@ -439,7 +416,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    显示屏的类型。 - * 类型:lcd\_type\_t | 特性 | 是否支持 | @@ -451,7 +427,6 @@ ret_t system_info_set_lcd_w (system_info_t* info info, uint32_t lcd_w); >

    显示屏的宽度。 - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/text_edit_state_t.md b/docs/manual/text_edit_state_t.md index 6280d0ee0a..918e4f8d91 100644 --- a/docs/manual/text_edit_state_t.md +++ b/docs/manual/text_edit_state_t.md @@ -1,5 +1,4 @@ ## text\_edit\_state\_t ### 概述 - ---------------------------------- diff --git a/docs/manual/text_edit_t.md b/docs/manual/text_edit_t.md index 86c14f5684..e1a8c3fca7 100644 --- a/docs/manual/text_edit_t.md +++ b/docs/manual/text_edit_t.md @@ -1,7 +1,6 @@ ## text\_edit\_t ### 概述 - ---------------------------------- ### 函数

    @@ -43,7 +42,6 @@ - * 函数原型: ``` @@ -67,7 +65,6 @@ ret_t text_edit_click (text_edit_t* text_edit, xy_t x, xy_t y); - * 函数原型: ``` @@ -89,7 +86,6 @@ ret_t text_edit_copy (text_edit_t* text_edit); - * 函数原型: ``` @@ -112,7 +108,6 @@ widget_t* text_edit_create (widget_t* widget, boo_t single_line); - * 函数原型: ``` @@ -134,7 +129,6 @@ ret_t text_edit_cut (text_edit_t* text_edit); - * 函数原型: ``` @@ -156,7 +150,6 @@ ret_t text_edit_destroy (text_edit_t* text_edit); - * 函数原型: ``` @@ -180,7 +173,6 @@ ret_t text_edit_drag (text_edit_t* text_edit, xy_t x, xy_t y); - * 函数原型: ``` @@ -202,7 +194,6 @@ uin32_t text_edit_get_cursor (text_edit_t* text_edit); - * 函数原型: ``` @@ -225,7 +216,6 @@ ret_t text_edit_get_state (text_edit_t* text_edit, text_edit_state_t* state); - * 函数原型: ``` @@ -247,7 +237,6 @@ ret_t text_edit_invert_caret_visible (text_edit_t* text_edit); - * 函数原型: ``` @@ -270,7 +259,6 @@ ret_t text_edit_key_down (text_edit_t* text_edit, key_event_t* evt); - * 函数原型: ``` @@ -292,7 +280,6 @@ ret_t text_edit_layout (text_edit_t* text_edit); - * 函数原型: ``` @@ -315,7 +302,6 @@ ret_t text_edit_paint (text_edit_t* text_edit, canvas_t* c); - * 函数原型: ``` @@ -339,7 +325,6 @@ ret_t text_edit_paste (text_edit_t* text_edit, const wchar_t* str, uint32_t size - * 函数原型: ``` @@ -361,7 +346,6 @@ ret_t text_edit_select_all (text_edit_t* text_edit); - * 函数原型: ``` @@ -384,7 +368,6 @@ ret_t text_edit_set_canvas (text_edit_t* text_edit, canvas_t* c); - * 函数原型: ``` @@ -407,7 +390,6 @@ ret_t text_edit_set_caret_visible (text_edit_t* text_edit, bool_t caret_visible) - * 函数原型: ``` @@ -430,7 +412,6 @@ ret_t text_edit_set_cursor (text_edit_t* text_edit, uint32_t cursor); - * 函数原型: ``` @@ -453,7 +434,6 @@ ret_t text_edit_set_mask (text_edit_t* text_edit, bool_t mask); - * 函数原型: ``` @@ -476,7 +456,6 @@ ret_t text_edit_set_mask_char (text_edit_t* text_edit, wchar_t mask_char); - * 函数原型: ``` @@ -499,7 +478,6 @@ ret_t text_edit_set_max_rows (text_edit_t* text_edit, uint32_t max_rows); - * 函数原型: ``` @@ -523,7 +501,6 @@ ret_t text_edit_set_offset (text_edit_t* text_edit, int32_t ox, int32_t oy); - * 函数原型: ``` @@ -547,7 +524,6 @@ ret_t text_edit_set_on_state_changed (text_edit_t* text_edit, text_edit_on_state - * 函数原型: ``` @@ -571,7 +547,6 @@ ret_t text_edit_set_select (text_edit_t* text_edit, uint32_t start, uint32_t end - * 函数原型: ``` @@ -594,7 +569,6 @@ ret_t text_edit_set_tips (text_edit_t* text_edit, const char* tips); - * 函数原型: ``` @@ -617,7 +591,6 @@ ret_t text_edit_set_wrap_word (text_edit_t* text_edit, bool_t wrap_word); - * 函数原型: ``` diff --git a/docs/manual/theme_t.md b/docs/manual/theme_t.md index fc5b61a947..c0c7cc49e0 100644 --- a/docs/manual/theme_t.md +++ b/docs/manual/theme_t.md @@ -5,7 +5,6 @@ 负责管理缺省的主题数据,方便实现style\_const。 - ---------------------------------- ### 函数

    @@ -27,7 +26,6 @@ >

    获取缺省的主题对象。 - * 函数原型: ``` @@ -48,7 +46,6 @@ theme_t* theme (); - * 函数原型: ``` @@ -70,7 +67,6 @@ theme_t* theme_create (const uint8_t* data); - * 函数原型: ``` @@ -92,7 +88,6 @@ ret_t theme_deinit (theme_t* theme); - * 函数原型: ``` @@ -114,7 +109,6 @@ ret_t theme_destroy (theme_t* theme); - * 函数原型: ``` @@ -139,7 +133,6 @@ theme_t* theme_find_style (theme_t* data, const char* widget_type, const char* n - * 函数原型: ``` @@ -162,7 +155,6 @@ theme_t* theme_init (theme_t* theme, const uint8_t* data); - * 函数原型: ``` diff --git a/docs/manual/time_now_t.md b/docs/manual/time_now_t.md index ae282d9dc4..b2cee06caf 100644 --- a/docs/manual/time_now_t.md +++ b/docs/manual/time_now_t.md @@ -4,7 +4,6 @@ 这里的当前时间是相对的,在嵌入式系统一般相对于开机时间。 它本身并没有任何意义,一般用来计算时间间隔,如实现定时器和动画等等。 - ---------------------------------- ### 函数

    @@ -22,7 +21,6 @@ - * 函数原型: ``` @@ -43,7 +41,6 @@ uint64_t time_now_ms (); - * 函数原型: ``` diff --git a/docs/manual/timer_info_t.md b/docs/manual/timer_info_t.md index 632050e941..2bbd2423a0 100644 --- a/docs/manual/timer_info_t.md +++ b/docs/manual/timer_info_t.md @@ -5,7 +5,6 @@ 单个定时器的信息。 - ---------------------------------- ### 函数

    @@ -36,7 +35,6 @@ - * 函数原型: ``` @@ -55,7 +53,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); - * 类型:void* | 特性 | 是否支持 | @@ -69,7 +66,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); - * 类型:uint32\_t | 特性 | 是否支持 | @@ -83,7 +79,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); > 为TK\_INVALID\_ID时表示无效定时器。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -97,7 +92,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); - * 类型:uint64\_t | 特性 | 是否支持 | @@ -110,7 +104,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); >

    定时器销毁时的回调函数。 - * 类型:tk\_destroy\_t | 特性 | 是否支持 | @@ -122,7 +115,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); >

    定时器销毁时的回调函数上下文。 - * 类型:void* | 特性 | 是否支持 | @@ -134,7 +126,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); >

    定时器回调函数。 - * 类型:timer\_func\_t | 特性 | 是否支持 | @@ -147,7 +138,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); - * 类型:uint64\_t | 特性 | 是否支持 | @@ -159,7 +149,6 @@ timer_info_t* timer_info_cast (timer_info_t* timer); >

    用户是否修改了系统时间。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/timer_t.md b/docs/manual/timer_t.md index 5e84508fed..8a92beb70e 100644 --- a/docs/manual/timer_t.md +++ b/docs/manual/timer_t.md @@ -20,7 +20,6 @@ > 在非GUI线程请用timer\_queue。 - ---------------------------------- ### 函数

    @@ -44,7 +43,6 @@ - * 函数原型: ``` @@ -68,7 +66,6 @@ uint32_t timer_add (timer_func_t on_timer, void* ctx, uint32_t duration); - * 函数原型: ``` @@ -89,7 +86,6 @@ uint32_t timer_count (); - * 函数原型: ``` @@ -112,7 +108,6 @@ ret_t timer_modify (uint32_t timer_id, uint32_t duration); - * 函数原型: ``` @@ -134,7 +129,6 @@ uint32_t timer_next_time (); - * 函数原型: ``` @@ -158,7 +152,6 @@ ret_t timer_queue (timer_func_t , void* ctx, uint32_t duration); - * 函数原型: ``` @@ -180,7 +173,6 @@ ret_t timer_remove (uint32_t timer_id); - * 函数原型: ``` @@ -202,7 +194,6 @@ ret_t timer_reset (uint32_t timer_id); - * 函数原型: ``` diff --git a/docs/manual/tk_cond_var_t.md b/docs/manual/tk_cond_var_t.md index 66062960a9..ddd11766ff 100644 --- a/docs/manual/tk_cond_var_t.md +++ b/docs/manual/tk_cond_var_t.md @@ -2,7 +2,6 @@ ### 概述 简化版的条件变量。 - ---------------------------------- ### 函数

    @@ -22,7 +21,6 @@ - * 函数原型: ``` @@ -44,7 +42,6 @@ ret_t tk_cond_var_awake (tk_cond_var_t* cond_var); - * 函数原型: ``` @@ -65,7 +62,6 @@ tk_cond_var_t* tk_cond_var_create (); - * 函数原型: ``` @@ -87,7 +83,6 @@ ret_t tk_cond_var_destroy (tk_cond_var_t* cond_var); - * 函数原型: ``` diff --git a/docs/manual/tk_iostream_mem_t.md b/docs/manual/tk_iostream_mem_t.md index b3d1934998..7003867a28 100644 --- a/docs/manual/tk_iostream_mem_t.md +++ b/docs/manual/tk_iostream_mem_t.md @@ -6,7 +6,6 @@ iostream base on mem - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_iostream_noisy_t.md b/docs/manual/tk_iostream_noisy_t.md index 715ada7c20..3a313929df 100644 --- a/docs/manual/tk_iostream_noisy_t.md +++ b/docs/manual/tk_iostream_noisy_t.md @@ -6,7 +6,6 @@ 在输出流中注入错误,方便进行可靠性测试。 - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_iostream_serial_t.md b/docs/manual/tk_iostream_serial_t.md index 758f379aa1..88b09dfaba 100644 --- a/docs/manual/tk_iostream_serial_t.md +++ b/docs/manual/tk_iostream_serial_t.md @@ -6,7 +6,6 @@ input stream base on serial port - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_iostream_shdlc_t.md b/docs/manual/tk_iostream_shdlc_t.md index b276cfde0c..51ceaa59ac 100644 --- a/docs/manual/tk_iostream_shdlc_t.md +++ b/docs/manual/tk_iostream_shdlc_t.md @@ -8,7 +8,6 @@ 一般用于串口通信。 - ---------------------------------- ### 函数

    @@ -30,7 +29,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_iostream_t.md b/docs/manual/tk_iostream_t.md index 80db2896d7..97ea8a4c8f 100644 --- a/docs/manual/tk_iostream_t.md +++ b/docs/manual/tk_iostream_t.md @@ -6,7 +6,6 @@ input/output stream interface - ---------------------------------- ### 函数

    @@ -27,7 +26,6 @@ - * 函数原型: ``` @@ -52,7 +50,6 @@ tk_istream_t* tk_iostream_get_istream (tk_iostream_t* stream); - * 函数原型: ``` diff --git a/docs/manual/tk_iostream_tcp_t.md b/docs/manual/tk_iostream_tcp_t.md index faad7631f1..1b1d09fdee 100644 --- a/docs/manual/tk_iostream_tcp_t.md +++ b/docs/manual/tk_iostream_tcp_t.md @@ -6,7 +6,6 @@ input stream base on socket - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_iostream_udp_t.md b/docs/manual/tk_iostream_udp_t.md index 2d43d408d7..b6fe4f8e34 100644 --- a/docs/manual/tk_iostream_udp_t.md +++ b/docs/manual/tk_iostream_udp_t.md @@ -6,7 +6,6 @@ input stream base on socket - ---------------------------------- ### 函数

    @@ -27,7 +26,6 @@ - * 函数原型: ``` @@ -52,7 +50,6 @@ tk_iostream_t* tk_iostream_udp_create (int sock); - * 函数原型: ``` diff --git a/docs/manual/tk_istream_buffered_t.md b/docs/manual/tk_istream_buffered_t.md index fd58a71d4b..8b7729eb5c 100644 --- a/docs/manual/tk_istream_buffered_t.md +++ b/docs/manual/tk_istream_buffered_t.md @@ -8,7 +8,6 @@ 如果调用者每次只读取少量数据,可以使用本类对底层istream进行装饰,以提高读取效率。 - ---------------------------------- ### 函数

    @@ -30,7 +29,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_istream_file_t.md b/docs/manual/tk_istream_file_t.md index 0af084f777..8f92a41c75 100644 --- a/docs/manual/tk_istream_file_t.md +++ b/docs/manual/tk_istream_file_t.md @@ -6,7 +6,6 @@ input stream base on file - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_istream_mem_t.md b/docs/manual/tk_istream_mem_t.md index 5ed4a57b8f..821483ccf3 100644 --- a/docs/manual/tk_istream_mem_t.md +++ b/docs/manual/tk_istream_mem_t.md @@ -6,7 +6,6 @@ input stream base on memory - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_istream_serial_t.md b/docs/manual/tk_istream_serial_t.md index a062b1eb6b..f6f1bdf96c 100644 --- a/docs/manual/tk_istream_serial_t.md +++ b/docs/manual/tk_istream_serial_t.md @@ -6,7 +6,6 @@ input stream base on fd - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_istream_shdlc_t.md b/docs/manual/tk_istream_shdlc_t.md index 349ce0317d..256c7cce7a 100644 --- a/docs/manual/tk_istream_shdlc_t.md +++ b/docs/manual/tk_istream_shdlc_t.md @@ -6,7 +6,6 @@ reliable istream base on simple HDLC - ---------------------------------- ### 函数

    @@ -35,7 +34,6 @@ - * 函数原型: ``` @@ -53,7 +51,6 @@ tk_istream_t* tk_istream_shdlc_create (tk_iostream_shdlc_t* iostream); >

    失败重传次数。 - * 类型:uint32\_t #### timeout 属性 @@ -61,6 +58,5 @@ tk_istream_t* tk_istream_shdlc_create (tk_iostream_shdlc_t* iostream); >

    读写超时时间(ms) - * 类型:uint32\_t diff --git a/docs/manual/tk_istream_t.md b/docs/manual/tk_istream_t.md index 135e62cc8d..75de6de45b 100644 --- a/docs/manual/tk_istream_t.md +++ b/docs/manual/tk_istream_t.md @@ -6,7 +6,6 @@ input stream interface - ---------------------------------- ### 函数

    @@ -31,7 +30,6 @@ - * 函数原型: ``` @@ -56,7 +54,6 @@ ret_t tk_istream_flush (tk_istream_t* stream); - * 函数原型: ``` @@ -83,7 +80,6 @@ int32_t tk_istream_read (tk_istream_t* stream, uint8_t* buff, uint32_t max_size) - * 函数原型: ``` @@ -111,7 +107,6 @@ int32_t tk_istream_read_len (tk_istream_t* stream, uint8_t* buff, uint32_t max_s - * 函数原型: ``` @@ -139,7 +134,6 @@ int32_t tk_istream_read_line (tk_istream_t* stream, uint8_t* buff, uint32_t max_ - * 函数原型: ``` @@ -165,7 +159,6 @@ ret_t tk_istream_seek (tk_istream_t* stream, uint32_t offset); - * 函数原型: ``` diff --git a/docs/manual/tk_istream_tcp_t.md b/docs/manual/tk_istream_tcp_t.md index 6ba2de9141..652d2c16be 100644 --- a/docs/manual/tk_istream_tcp_t.md +++ b/docs/manual/tk_istream_tcp_t.md @@ -6,7 +6,6 @@ input stream base on socket - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_istream_udp_t.md b/docs/manual/tk_istream_udp_t.md index bdb8def31e..92801e232a 100644 --- a/docs/manual/tk_istream_udp_t.md +++ b/docs/manual/tk_istream_udp_t.md @@ -6,7 +6,6 @@ input stream base on socket - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` @@ -53,7 +51,6 @@ tk_istream_t* tk_istream_udp_create (int sock); - * 函数原型: ``` @@ -79,7 +76,6 @@ ret_t tk_istream_udp_set_target_with_addr (tk_istream_t* stream, struct sockaddr - * 函数原型: ``` diff --git a/docs/manual/tk_mem_t.md b/docs/manual/tk_mem_t.md index f49c901104..1cfa2c5451 100644 --- a/docs/manual/tk_mem_t.md +++ b/docs/manual/tk_mem_t.md @@ -18,7 +18,6 @@ TKMEM_FREE(str); ``` - ---------------------------------- ### 函数

    @@ -39,7 +38,6 @@ - * 函数原型: ``` @@ -62,7 +60,6 @@ void* TKMEM_ALLOC (uint32_t size); - * 函数原型: ``` @@ -86,7 +83,6 @@ void* TKMEM_CALLOC (uint32_t nmemb, uint32_t size); - * 函数原型: ``` @@ -109,7 +105,6 @@ void TKMEM_FREE (void* p); - * 函数原型: ``` diff --git a/docs/manual/tk_mutex_t.md b/docs/manual/tk_mutex_t.md index 6ebb4c73be..c73a63d7dd 100644 --- a/docs/manual/tk_mutex_t.md +++ b/docs/manual/tk_mutex_t.md @@ -2,7 +2,6 @@ ### 概述 互斥锁。 - ---------------------------------- ### 函数

    @@ -22,7 +21,6 @@ - * 函数原型: ``` @@ -43,7 +41,6 @@ tk_mutex_t* tk_mutex_create (); - * 函数原型: ``` @@ -65,7 +62,6 @@ ret_t tk_mutex_destroy (tk_mutex_t* mutex); - * 函数原型: ``` @@ -87,7 +83,6 @@ ret_t tk_mutex_lock (tk_mutex_t* mutex); - * 函数原型: ``` diff --git a/docs/manual/tk_ostream_buffered_t.md b/docs/manual/tk_ostream_buffered_t.md index 9a78bd9ca1..3515d88968 100644 --- a/docs/manual/tk_ostream_buffered_t.md +++ b/docs/manual/tk_ostream_buffered_t.md @@ -6,7 +6,6 @@ 先将数据写入一个缓存区,调用flush时才真正写入底层的ostream。 - ---------------------------------- ### 函数

    @@ -29,7 +28,6 @@ - * 函数原型: ``` @@ -54,7 +52,6 @@ tk_ostream_t* tk_ostream_buffered_create (tk_ostream_t* real_ostream); - * 函数原型: ``` diff --git a/docs/manual/tk_ostream_file_t.md b/docs/manual/tk_ostream_file_t.md index 3cb8c2f3d2..bf92a23c37 100644 --- a/docs/manual/tk_ostream_file_t.md +++ b/docs/manual/tk_ostream_file_t.md @@ -6,7 +6,6 @@ input stream base on file - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_ostream_mem_t.md b/docs/manual/tk_ostream_mem_t.md index 921b433fcb..c41c93ff68 100644 --- a/docs/manual/tk_ostream_mem_t.md +++ b/docs/manual/tk_ostream_mem_t.md @@ -6,7 +6,6 @@ output stream base on memory - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_ostream_noisy_t.md b/docs/manual/tk_ostream_noisy_t.md index fdafae2ca8..7d70f3af22 100644 --- a/docs/manual/tk_ostream_noisy_t.md +++ b/docs/manual/tk_ostream_noisy_t.md @@ -6,7 +6,6 @@ 在输出流中注入错误,方便进行可靠性测试。 - ---------------------------------- ### 函数

    @@ -36,7 +35,6 @@ - * 函数原型: ``` @@ -54,7 +52,6 @@ tk_ostream_t* tk_ostream_noisy_create (tk_ostream_t* real_ostream); >

    注入的错误数。 - * 类型:uint32\_t #### error\_level 属性 @@ -63,7 +60,6 @@ tk_ostream_t* tk_ostream_noisy_create (tk_ostream_t* real_ostream); - * 类型:uint32\_t #### write\_count 属性 @@ -71,6 +67,5 @@ tk_ostream_t* tk_ostream_noisy_create (tk_ostream_t* real_ostream); >

    写入的次数。 - * 类型:uint32\_t diff --git a/docs/manual/tk_ostream_serial_t.md b/docs/manual/tk_ostream_serial_t.md index 00bf103c76..75cbc710d2 100644 --- a/docs/manual/tk_ostream_serial_t.md +++ b/docs/manual/tk_ostream_serial_t.md @@ -6,7 +6,6 @@ input stream base on fd - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_ostream_shdlc_t.md b/docs/manual/tk_ostream_shdlc_t.md index 2d9df5405a..d84f1ca54f 100644 --- a/docs/manual/tk_ostream_shdlc_t.md +++ b/docs/manual/tk_ostream_shdlc_t.md @@ -6,7 +6,6 @@ reliable ostream base on simple HDLC - ---------------------------------- ### 函数

    @@ -36,7 +35,6 @@ - * 函数原型: ``` @@ -54,7 +52,6 @@ tk_ostream_t* tk_ostream_shdlc_create (tk_iostream_shdlc_t* iostream); >

    激活压缩的阈值。 - * 类型:uint32\_t #### retry\_times 属性 @@ -62,7 +59,6 @@ tk_ostream_t* tk_ostream_shdlc_create (tk_iostream_shdlc_t* iostream); >

    失败重传次数。 - * 类型:uint32\_t #### timeout 属性 @@ -70,6 +66,5 @@ tk_ostream_t* tk_ostream_shdlc_create (tk_iostream_shdlc_t* iostream); >

    读写超时时间(ms) - * 类型:uint32\_t diff --git a/docs/manual/tk_ostream_t.md b/docs/manual/tk_ostream_t.md index 77c0ac32e1..d674470e5b 100644 --- a/docs/manual/tk_ostream_t.md +++ b/docs/manual/tk_ostream_t.md @@ -6,7 +6,6 @@ input stream interface - ---------------------------------- ### 函数

    @@ -30,7 +29,6 @@ - * 函数原型: ``` @@ -55,7 +53,6 @@ ret_t tk_ostream_flush (tk_ostream_t* stream); - * 函数原型: ``` @@ -81,7 +78,6 @@ ret_t tk_ostream_seek (tk_ostream_t* stream, uint32_t offset); - * 函数原型: ``` @@ -108,7 +104,6 @@ int32_t tk_ostream_write (tk_ostream_t* stream, const uint8_t* buff, uint32_t ma - * 函数原型: ``` @@ -134,7 +129,6 @@ ret_t tk_ostream_write_byte (tk_ostream_t* stream, uint8_t byte); - * 函数原型: ``` diff --git a/docs/manual/tk_ostream_tcp_t.md b/docs/manual/tk_ostream_tcp_t.md index 0cd5939f38..d508243d67 100644 --- a/docs/manual/tk_ostream_tcp_t.md +++ b/docs/manual/tk_ostream_tcp_t.md @@ -6,7 +6,6 @@ input stream base on socket - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/tk_ostream_udp_t.md b/docs/manual/tk_ostream_udp_t.md index 2bdaff09f1..0abd3f86f1 100644 --- a/docs/manual/tk_ostream_udp_t.md +++ b/docs/manual/tk_ostream_udp_t.md @@ -6,7 +6,6 @@ input stream base on socket - ---------------------------------- ### 函数

    @@ -28,7 +27,6 @@ - * 函数原型: ``` @@ -53,7 +51,6 @@ tk_ostream_t* tk_ostream_udp_create (int sock); - * 函数原型: ``` @@ -79,7 +76,6 @@ ret_t tk_ostream_udp_set_target_with_addr (tk_ostream_t* stream, struct sockaddr - * 函数原型: ``` diff --git a/docs/manual/tk_thread_t.md b/docs/manual/tk_thread_t.md index 61bb058ff3..075ebc2761 100644 --- a/docs/manual/tk_thread_t.md +++ b/docs/manual/tk_thread_t.md @@ -2,7 +2,6 @@ ### 概述 线程对象。 - ---------------------------------- ### 函数

    @@ -12,6 +11,9 @@ | tk\_thread\_create | 创建thread对象。 | | tk\_thread\_destroy | 销毁thread对象。 | | tk\_thread\_join | 等待线程退出。 | +| tk\_thread\_set\_name | 设置线程的名称。 | +| tk\_thread\_set\_priority | 设置线程的栈大小。 | +| tk\_thread\_set\_stack\_size | 设置线程的栈大小。 | | tk\_thread\_start | 启动线程。 | #### tk\_thread\_create 函数 ----------------------- @@ -26,7 +28,7 @@ * 函数原型: ``` -tk_thread_t* tk_thread_create (); +tk_thread_t* tk_thread_create (tk_thread_entry_t entry, void* args); ``` * 参数说明: @@ -34,6 +36,8 @@ tk_thread_t* tk_thread_create (); | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | tk\_thread\_t* | thread对象。 | +| entry | tk\_thread\_entry\_t | 线程函数。 | +| args | void* | 线程函数的上下文。 | #### tk\_thread\_destroy 函数 ----------------------- @@ -43,7 +47,6 @@ tk_thread_t* tk_thread_create (); - * 函数原型: ``` @@ -65,7 +68,6 @@ ret_t tk_thread_destroy (tk_thread_t* thread); - * 函数原型: ``` @@ -78,6 +80,78 @@ ret_t tk_thread_join (tk_thread_t* thread); | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | thread | tk\_thread\_t* | thread对象。 | +#### tk\_thread\_set\_name 函数 +----------------------- + +* 函数功能: + +>

    设置线程的名称。 + + > 需要在调用start之前调用本函数。 + + + +* 函数原型: + +``` +ret_t tk_thread_set_name (tk_thread_t* thread, const char* name); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| thread | tk\_thread\_t* | thread对象。 | +| name | const char* | 名称。 | +#### tk\_thread\_set\_priority 函数 +----------------------- + +* 函数功能: + +>

    设置线程的栈大小。 + + > 需要在调用start之前调用本函数。 + + + +* 函数原型: + +``` +ret_t tk_thread_set_priority (tk_thread_t* thread, uint32_t priority); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| thread | tk\_thread\_t* | thread对象。 | +| priority | uint32\_t | 栈的大小。 | +#### tk\_thread\_set\_stack\_size 函数 +----------------------- + +* 函数功能: + +>

    设置线程的栈大小。 + + > 需要在调用start之前调用本函数。 + + + +* 函数原型: + +``` +ret_t tk_thread_set_stack_size (tk_thread_t* thread, uint32_t stack_size); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| thread | tk\_thread\_t* | thread对象。 | +| stack\_size | uint32\_t | 栈的大小。 | #### tk\_thread\_start 函数 ----------------------- @@ -87,7 +161,6 @@ ret_t tk_thread_join (tk_thread_t* thread); - * 函数原型: ``` diff --git a/docs/manual/tokenizer_t.md b/docs/manual/tokenizer_t.md index 06796686c3..f45f656b19 100644 --- a/docs/manual/tokenizer_t.md +++ b/docs/manual/tokenizer_t.md @@ -2,7 +2,6 @@ ### 概述 从字符串中解析出一个一个的token。 - ---------------------------------- ### 函数

    @@ -36,7 +35,6 @@ - * 函数原型: ``` @@ -58,7 +56,6 @@ ret_t tokenizer_deinit (tokenizer_t* tokenizer); - * 函数原型: ``` @@ -80,7 +77,6 @@ bool_t tokenizer_has_more (tokenizer_t* tokenizer); - * 函数原型: ``` @@ -105,7 +101,6 @@ tokenizer_t* tokenizer_init (tokenizer_t* tokenizer, char* str, uint32_t size, c - * 函数原型: ``` @@ -131,7 +126,6 @@ tokenizer_t* tokenizer_init_ex (tokenizer_t* tokenizer, char* str, uint32_t size - * 函数原型: ``` @@ -153,7 +147,6 @@ char* tokenizer_next (tokenizer_t* tokenizer); - * 函数原型: ``` @@ -176,7 +169,6 @@ char* tokenizer_next_float (tokenizer_t* tokenizer, float defval); - * 函数原型: ``` @@ -199,7 +191,6 @@ char* tokenizer_next_int (tokenizer_t* tokenizer, int defval); - * 函数原型: ``` @@ -218,7 +209,6 @@ char* tokenizer_next_until (tokenizer_t* tokenizer, const char* str); >

    当前位置。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -230,7 +220,6 @@ char* tokenizer_next_until (tokenizer_t* tokenizer, const char* str); >

    分隔字符串。 - * 类型:char* | 特性 | 是否支持 | @@ -242,7 +231,6 @@ char* tokenizer_next_until (tokenizer_t* tokenizer, const char* str); >

    单字符的token。 - * 类型:char* | 特性 | 是否支持 | @@ -254,7 +242,6 @@ char* tokenizer_next_until (tokenizer_t* tokenizer, const char* str); >

    字符串的长度。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -266,7 +253,6 @@ char* tokenizer_next_until (tokenizer_t* tokenizer, const char* str); >

    字符串。 - * 类型:char* | 特性 | 是否支持 | diff --git a/docs/manual/ui_binary_writer_t.md b/docs/manual/ui_binary_writer_t.md index a37f50b495..71c1c2c6ec 100644 --- a/docs/manual/ui_binary_writer_t.md +++ b/docs/manual/ui_binary_writer_t.md @@ -6,7 +6,6 @@ 生成二进制格式的UI描述数据。 - ---------------------------------- ### 函数

    @@ -25,7 +24,6 @@ - * 函数原型: ``` diff --git a/docs/manual/ui_builder_default_t.md b/docs/manual/ui_builder_default_t.md index 3377799f6c..f90c6561da 100644 --- a/docs/manual/ui_builder_default_t.md +++ b/docs/manual/ui_builder_default_t.md @@ -7,7 +7,6 @@ 构建widget树。 - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/ui_builder_t.md b/docs/manual/ui_builder_t.md index 97f4d0c55e..bcd4cb937f 100644 --- a/docs/manual/ui_builder_t.md +++ b/docs/manual/ui_builder_t.md @@ -14,7 +14,6 @@ ![image](images/ui_builder_t_0.png) - ---------------------------------- ### 函数

    @@ -38,7 +37,6 @@ - * 函数原型: ``` @@ -62,7 +60,6 @@ ret_t ui_builder_on_end (ui_builder_t* builder); - * 函数原型: ``` @@ -86,7 +83,6 @@ ret_t ui_builder_on_start (ui_builder_t* builder); - * 函数原型: ``` @@ -110,7 +106,6 @@ ret_t ui_builder_on_widget_end (ui_builder_t* builder); - * 函数原型: ``` @@ -136,7 +131,6 @@ ret_t ui_builder_on_widget_prop (ui_builder_t* builder, const char* name, const - * 函数原型: ``` @@ -160,7 +154,6 @@ ret_t ui_builder_on_widget_prop (ui_builder_t* builder); - * 函数原型: ``` diff --git a/docs/manual/ui_feedback_t.md b/docs/manual/ui_feedback_t.md index 4567f19508..9b758056c9 100644 --- a/docs/manual/ui_feedback_t.md +++ b/docs/manual/ui_feedback_t.md @@ -3,7 +3,6 @@ 提供按键音、触屏音和震动等反馈。 - ---------------------------------- ### 函数

    @@ -23,7 +22,6 @@ - * 函数原型: ``` @@ -47,7 +45,6 @@ ret_t ui_feedback_init (ui_on_feedback_t on_feedback, void* ctx); - * 函数原型: ``` diff --git a/docs/manual/ui_loader_default_t.md b/docs/manual/ui_loader_default_t.md index 32255b8875..378cbf4655 100644 --- a/docs/manual/ui_loader_default_t.md +++ b/docs/manual/ui_loader_default_t.md @@ -7,7 +7,6 @@ - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/ui_loader_t.md b/docs/manual/ui_loader_t.md index d2ce7895e0..588cc06209 100644 --- a/docs/manual/ui_loader_t.md +++ b/docs/manual/ui_loader_t.md @@ -15,7 +15,6 @@ - ---------------------------------- ### 函数

    @@ -35,7 +34,6 @@ - * 函数原型: ``` @@ -65,7 +63,6 @@ ret_t ui_loader_load (ui_loader_t* loader, const uint8_t* data, uint32_t size, u - * 函数原型: ``` diff --git a/docs/manual/ui_loader_xml_t.md b/docs/manual/ui_loader_xml_t.md index 068e605afe..acdb48cff2 100644 --- a/docs/manual/ui_loader_xml_t.md +++ b/docs/manual/ui_loader_xml_t.md @@ -7,7 +7,6 @@ - ---------------------------------- ### 函数

    @@ -26,7 +25,6 @@ - * 函数原型: ``` diff --git a/docs/manual/ui_xml_writer_t.md b/docs/manual/ui_xml_writer_t.md index b9b2ba6d25..9ac2ed4cc4 100644 --- a/docs/manual/ui_xml_writer_t.md +++ b/docs/manual/ui_xml_writer_t.md @@ -6,7 +6,6 @@ 生成XML格式的UI描述数据。 - ---------------------------------- ### 函数

    @@ -25,7 +24,6 @@ - * 函数原型: ``` diff --git a/docs/manual/value_desc_binary_t.md b/docs/manual/value_desc_binary_t.md index cf9c3facd2..cca28c06c0 100644 --- a/docs/manual/value_desc_binary_t.md +++ b/docs/manual/value_desc_binary_t.md @@ -4,7 +4,6 @@ 二进制类型属性描述。 - ---------------------------------- ### 属性

    @@ -18,7 +17,6 @@ >

    最大长度。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -30,7 +28,6 @@ >

    最小长度。 - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_bool_t.md b/docs/manual/value_desc_bool_t.md index f03e2003ba..8ee626415b 100644 --- a/docs/manual/value_desc_bool_t.md +++ b/docs/manual/value_desc_bool_t.md @@ -4,7 +4,6 @@ 布尔类型属性描述。 - ---------------------------------- ### 属性

    @@ -17,7 +16,6 @@ >

    缺省值。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_double_t.md b/docs/manual/value_desc_double_t.md index 66f5638988..a9a74ef617 100644 --- a/docs/manual/value_desc_double_t.md +++ b/docs/manual/value_desc_double_t.md @@ -4,7 +4,6 @@ 单精度浮点数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:double | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:double | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:double | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:double\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_float_t.md b/docs/manual/value_desc_float_t.md index 947027a3a8..3bfd501e63 100644 --- a/docs/manual/value_desc_float_t.md +++ b/docs/manual/value_desc_float_t.md @@ -4,7 +4,6 @@ 单精度浮点数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:float | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:float | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:float | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:float\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_int16_t.md b/docs/manual/value_desc_int16_t.md index 8d75602b64..096749c05d 100644 --- a/docs/manual/value_desc_int16_t.md +++ b/docs/manual/value_desc_int16_t.md @@ -4,7 +4,6 @@ 有符号16位整数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:int16\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:int16\_t | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:int16\_t | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:int16\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_int32_t.md b/docs/manual/value_desc_int32_t.md index 6d86b189fa..7ee7366bb5 100644 --- a/docs/manual/value_desc_int32_t.md +++ b/docs/manual/value_desc_int32_t.md @@ -4,7 +4,6 @@ 有符号32位整数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_int64_t.md b/docs/manual/value_desc_int64_t.md index cfaae3b753..d5606beb73 100644 --- a/docs/manual/value_desc_int64_t.md +++ b/docs/manual/value_desc_int64_t.md @@ -4,7 +4,6 @@ 有符号64位整数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:int64\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:int64\_t | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:int64\_t | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:int64\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_int8_t.md b/docs/manual/value_desc_int8_t.md index 9f585b4c61..36a5dca674 100644 --- a/docs/manual/value_desc_int8_t.md +++ b/docs/manual/value_desc_int8_t.md @@ -4,7 +4,6 @@ 有符号8位整数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:int8\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:int8\_t | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:int8\_t | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:int8\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_int_enums_t.md b/docs/manual/value_desc_int_enums_t.md index 64311deefe..40a6c96f95 100644 --- a/docs/manual/value_desc_int_enums_t.md +++ b/docs/manual/value_desc_int_enums_t.md @@ -4,7 +4,6 @@ 整数枚举类型属性描述。 - ---------------------------------- ### 属性

    @@ -18,7 +17,6 @@ >

    缺省值。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -30,7 +28,6 @@ >

    枚举值(每一项用英文冒号分隔值和名称)。 - * 类型:const char** | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_string_enums_t.md b/docs/manual/value_desc_string_enums_t.md index c9fa7d4341..3fd1238e1a 100644 --- a/docs/manual/value_desc_string_enums_t.md +++ b/docs/manual/value_desc_string_enums_t.md @@ -3,7 +3,6 @@ 字符串枚举类型属性描述。 - ---------------------------------- ### 属性

    @@ -17,7 +16,6 @@ >

    缺省值。 - * 类型:const char* | 特性 | 是否支持 | @@ -29,7 +27,6 @@ >

    枚举值。 - * 类型:const char** | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_string_t.md b/docs/manual/value_desc_string_t.md index 4096b35923..2938d7388d 100644 --- a/docs/manual/value_desc_string_t.md +++ b/docs/manual/value_desc_string_t.md @@ -4,7 +4,6 @@ 字符串类型属性描述。 - ---------------------------------- ### 属性

    @@ -19,7 +18,6 @@ >

    缺省值。 - * 类型:const char* | 特性 | 是否支持 | @@ -31,7 +29,6 @@ >

    最大长度。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -43,7 +40,6 @@ >

    最小长度。 - * 类型:uint32\_t | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_t.md b/docs/manual/value_desc_t.md index b0c10253c9..0dca486469 100644 --- a/docs/manual/value_desc_t.md +++ b/docs/manual/value_desc_t.md @@ -2,7 +2,6 @@ ### 概述 属性描述。 - ---------------------------------- ### 属性

    @@ -20,7 +19,6 @@ >

    描述。 - * 类型:const char* | 特性 | 是否支持 | @@ -32,7 +30,6 @@ >

    显示名称。 - * 类型:const char* | 特性 | 是否支持 | @@ -44,7 +41,6 @@ >

    flags。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -56,7 +52,6 @@ >

    格式。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -68,7 +63,6 @@ >

    名称。 - * 类型:const char* | 特性 | 是否支持 | @@ -80,7 +74,6 @@ >

    类型。 - * 类型:uint8\_t | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_type_t.md b/docs/manual/value_desc_type_t.md index d93350983d..384032ecbe 100644 --- a/docs/manual/value_desc_type_t.md +++ b/docs/manual/value_desc_type_t.md @@ -1,7 +1,6 @@ ## value\_desc\_type\_t ### 概述 属性描述类型常量定义。 - ### 常量

    diff --git a/docs/manual/value_desc_uint16_t.md b/docs/manual/value_desc_uint16_t.md index a7bae02f8e..37d9c4629c 100644 --- a/docs/manual/value_desc_uint16_t.md +++ b/docs/manual/value_desc_uint16_t.md @@ -4,7 +4,6 @@ 无符号16位整数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_uint32_t.md b/docs/manual/value_desc_uint32_t.md index 585af84fbd..faf6df93f8 100644 --- a/docs/manual/value_desc_uint32_t.md +++ b/docs/manual/value_desc_uint32_t.md @@ -4,7 +4,6 @@ 无符号32位整数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_uint64_t.md b/docs/manual/value_desc_uint64_t.md index cfd318cbfb..36b86a9091 100644 --- a/docs/manual/value_desc_uint64_t.md +++ b/docs/manual/value_desc_uint64_t.md @@ -4,7 +4,6 @@ 无符号64位整数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:uint64\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:uint64\_t | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:uint64\_t | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:uint64\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_desc_uint8_t.md b/docs/manual/value_desc_uint8_t.md index 7aba72e753..cf3881a4ad 100644 --- a/docs/manual/value_desc_uint8_t.md +++ b/docs/manual/value_desc_uint8_t.md @@ -4,7 +4,6 @@ 无符号8位整数类型属性描述。 - ---------------------------------- ### 属性

    @@ -21,7 +20,6 @@ >

    缺省值。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -33,7 +31,6 @@ >

    最大值。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -45,7 +42,6 @@ >

    最小值。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -57,7 +53,6 @@ >

    步长。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -69,7 +64,6 @@ >

    单位。 - * 类型:const char* | 特性 | 是否支持 | diff --git a/docs/manual/value_format_type_t.md b/docs/manual/value_format_type_t.md index c0e6fe7839..b348fbba64 100644 --- a/docs/manual/value_format_type_t.md +++ b/docs/manual/value_format_type_t.md @@ -1,7 +1,6 @@ ## value\_format\_type\_t ### 概述 属性描述格式常量定义。 - ### 常量

    diff --git a/docs/manual/value_t.md b/docs/manual/value_t.md index 35a5cc3a30..781c790ab4 100644 --- a/docs/manual/value_t.md +++ b/docs/manual/value_t.md @@ -12,7 +12,6 @@ > 在脚本语言中,需要动态创建对象。 - ---------------------------------- ### 函数

    @@ -79,7 +78,6 @@ - * 函数原型: ``` @@ -101,7 +99,6 @@ binary_data_t* value_binary_data (value_t* v); - * 函数原型: ``` @@ -125,7 +122,6 @@ bool_t value_bool (value_t* v); - * 函数原型: ``` @@ -147,7 +143,6 @@ value_t* value_cast (value_t* value); - * 函数原型: ``` @@ -170,7 +165,6 @@ ret_t value_copy (value_t* dst, value_t* src); - * 函数原型: ``` @@ -191,7 +185,6 @@ value_t* value_create (); - * 函数原型: ``` @@ -214,7 +207,6 @@ ret_t value_deep_copy (value_t* dst, value_t* src); - * 函数原型: ``` @@ -236,7 +228,6 @@ ret_t value_destroy (value_t* v); - * 函数原型: ``` @@ -260,7 +251,6 @@ double value_double (value_t* v); - * 函数原型: ``` @@ -283,7 +273,6 @@ value_t* value_dup_str (value_t* v, const char* value); - * 函数原型: ``` @@ -306,7 +295,6 @@ bool_t value_equal (value_t* value, value_t* other); - * 函数原型: ``` @@ -328,7 +316,6 @@ float_t value_float (value_t* v); - * 函数原型: ``` @@ -350,7 +337,6 @@ float value_float32 (value_t* v); - * 函数原型: ``` @@ -372,7 +358,6 @@ int value_int (value_t* v); - * 函数原型: ``` @@ -394,7 +379,6 @@ int16_t value_int16 (value_t* v); - * 函数原型: ``` @@ -416,7 +400,6 @@ int32_t value_int32 (value_t* v); - * 函数原型: ``` @@ -438,7 +421,6 @@ int64_t value_int64 (value_t* v); - * 函数原型: ``` @@ -460,7 +442,6 @@ int8_t value_int8 (value_t* v); - * 函数原型: ``` @@ -482,7 +463,6 @@ bool_t value_is_null (value_t* value); - * 函数原型: ``` @@ -504,7 +484,6 @@ object_t* value_object (value_t* v); - * 函数原型: ``` @@ -526,7 +505,6 @@ void* value_pointer (value_t* v); - * 函数原型: ``` @@ -548,7 +526,6 @@ ret_t value_reset (value_t* v); - * 函数原型: ``` @@ -572,7 +549,6 @@ value_t* value_set_binary_data (value_t* v, void* value, uint32_t size); - * 函数原型: ``` @@ -595,7 +571,6 @@ value_t* value_set_bool (value_t* v, bool_t value); - * 函数原型: ``` @@ -618,7 +593,6 @@ value_t* value_set_double (value_t* v, double value); - * 函数原型: ``` @@ -641,7 +615,6 @@ value_t* value_set_float (value_t* v, float_t value); - * 函数原型: ``` @@ -664,7 +637,6 @@ value_t* value_set_float32 (value_t* v, float value); - * 函数原型: ``` @@ -687,7 +659,6 @@ value_t* value_set_int (value_t* v, int32_t value); - * 函数原型: ``` @@ -710,7 +681,6 @@ value_t* value_set_int16 (value_t* v, int16_t value); - * 函数原型: ``` @@ -733,7 +703,6 @@ value_t* value_set_int32 (value_t* v, int32_t value); - * 函数原型: ``` @@ -756,7 +725,6 @@ value_t* value_set_int64 (value_t* v, int64_t value); - * 函数原型: ``` @@ -779,7 +747,6 @@ value_t* value_set_int8 (value_t* v, int8_t value); - * 函数原型: ``` @@ -802,7 +769,6 @@ value_t* value_set_object (value_t* v, object_t* value); - * 函数原型: ``` @@ -825,7 +791,6 @@ value_t* value_set_pointer (value_t* v, pointer_t value); - * 函数原型: ``` @@ -849,7 +814,6 @@ value_t* value_set_sized_str (value_t* v, char* str, uint32_t size); - * 函数原型: ``` @@ -872,7 +836,6 @@ value_t* value_set_str (value_t* v, const char* value); - * 函数原型: ``` @@ -895,7 +858,6 @@ value_t* value_set_token (value_t* v, uint32_t value); - * 函数原型: ``` @@ -919,7 +881,6 @@ value_t* value_set_ubjson (value_t* v, void* value, uint32_t size); - * 函数原型: ``` @@ -942,7 +903,6 @@ value_t* value_set_uint16 (value_t* v, uint16_t value); - * 函数原型: ``` @@ -965,7 +925,6 @@ value_t* value_set_uint32 (value_t* v, uint32_t value); - * 函数原型: ``` @@ -988,7 +947,6 @@ value_t* value_set_uint64 (value_t* v, uint64_t value); - * 函数原型: ``` @@ -1011,7 +969,6 @@ value_t* value_set_uint8 (value_t* v, uint8_t value); - * 函数原型: ``` @@ -1034,7 +991,6 @@ value_t* value_set_wstr (value_t* v, const wchar_t* value); - * 函数原型: ``` @@ -1056,7 +1012,6 @@ sized_str_t* value_sized_str (value_t* v); - * 函数原型: ``` @@ -1078,7 +1033,6 @@ const char* value_str (value_t* v); - * 函数原型: ``` @@ -1100,7 +1054,6 @@ uint32_t value_token (value_t* v); - * 函数原型: ``` @@ -1122,7 +1075,6 @@ binary_data_t* value_ubjson (value_t* v); - * 函数原型: ``` @@ -1144,7 +1096,6 @@ uint16_t value_uint16 (value_t* v); - * 函数原型: ``` @@ -1166,7 +1117,6 @@ uint32_t value_uint32 (value_t* v); - * 函数原型: ``` @@ -1188,7 +1138,6 @@ uint64_t value_uint64 (value_t* v); - * 函数原型: ``` @@ -1210,7 +1159,6 @@ int8_t value_uint8 (value_t* v); - * 函数原型: ``` diff --git a/docs/manual/value_type_t.md b/docs/manual/value_type_t.md index 1963f64f64..8a03ab7c1f 100644 --- a/docs/manual/value_type_t.md +++ b/docs/manual/value_type_t.md @@ -1,7 +1,6 @@ ## value\_type\_t ### 概述 类型常量定义。 - ### 常量

    diff --git a/docs/manual/vgcanvas_t.md b/docs/manual/vgcanvas_t.md index 60bfcc7806..9ce7e7db8a 100644 --- a/docs/manual/vgcanvas_t.md +++ b/docs/manual/vgcanvas_t.md @@ -34,7 +34,6 @@ >请参考:https://www.w3schools.com/tags/ref_canvas.asp - ---------------------------------- ### 函数

    @@ -127,7 +126,6 @@ - * 函数原型: ``` @@ -156,7 +154,6 @@ ret_t vgcanvas_arc (vgcanvas_t* vg, float_t x, float_t y, float_t r, float_t sta - * 函数原型: ``` @@ -184,7 +181,6 @@ ret_t vgcanvas_arc_to (vgcanvas_t* vg, float_t x1, float_t y1, float_t x2, float - * 函数原型: ``` @@ -208,7 +204,6 @@ ret_t vgcanvas_begin_frame (vgcanvas_t* vg, rect_t* dirty_rect); - * 函数原型: ``` @@ -231,7 +226,6 @@ ret_t vgcanvas_begin_path (vgcanvas_t* vg); - * 函数原型: ``` @@ -259,7 +253,6 @@ ret_t vgcanvas_bezier_to (vgcanvas_t* vg, float_t cp1x, float_t cp1y, float_t cp - * 函数原型: ``` @@ -282,7 +275,6 @@ vgcanvas_t* vgcanvas_cast (vgcanvas_t* vg); - * 函数原型: ``` @@ -310,7 +302,6 @@ ret_t vgcanvas_clear_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, floa - * 函数原型: ``` @@ -339,7 +330,6 @@ ret_t vgcanvas_clip_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float - * 函数原型: ``` @@ -361,7 +351,6 @@ ret_t vgcanvas_close_path (vgcanvas_t* vg); - * 函数原型: ``` @@ -387,7 +376,6 @@ vgcanvas_t vgcanvas_create (uint32_t w, uint32_t h, uint32_t stride, bitmap_form - * 函数原型: ``` @@ -412,7 +400,6 @@ ret_t vgcanvas_destroy (vgcanvas_t* vg); - * 函数原型: ``` @@ -444,7 +431,6 @@ ret_t vgcanvas_draw_icon (vgcanvas_t* vg, bitmap_t* img, float_t sx, float_t sy, - * 函数原型: ``` @@ -476,7 +462,6 @@ ret_t vgcanvas_draw_image (vgcanvas_t* vg, bitmap_t* img, float_t sx, float_t sy - * 函数原型: ``` @@ -502,7 +487,6 @@ ret_t vgcanvas_ellipse (vgcanvas_t* vg, float_t x, float_t y, float_t rx, float_ - * 函数原型: ``` @@ -525,7 +509,6 @@ ret_t vgcanvas_end_frame (vgcanvas_t* vg); - * 函数原型: ``` @@ -548,7 +531,6 @@ ret_t vgcanvas_fill (vgcanvas_t* vg); - * 函数原型: ``` @@ -575,7 +557,6 @@ ret_t vgcanvas_fill_text (vgcanvas_t* vg, char* text, float_t x, float_t y, floa - * 函数原型: ``` @@ -597,7 +578,6 @@ ret_t vgcanvas_flush (vgcanvas_t* vg); - * 函数原型: ``` @@ -619,7 +599,6 @@ wh_t vgcanvas_get_height (vgcanvas_t* vgcanvas); - * 函数原型: ``` @@ -642,7 +621,6 @@ wh_t vgcanvas_get_width (vgcanvas_t* vgcanvas); - * 函数原型: ``` @@ -667,7 +645,6 @@ bool_t vgcanvas_is_point_in_path (vgcanvas_t* vg, float_t x, float_t y); - * 函数原型: ``` @@ -692,7 +669,6 @@ ret_t vgcanvas_line_to (vgcanvas_t* vg, float_t x, float_t y); - * 函数原型: ``` @@ -716,7 +692,6 @@ float_t vgcanvas_measure_text (vgcanvas_t* vg, char* text); - * 函数原型: ``` @@ -742,7 +717,6 @@ ret_t vgcanvas_move_to (vgcanvas_t* vg, float_t x, float_t y); - * 函数原型: ``` @@ -767,7 +741,6 @@ ret_t vgcanvas_paint (vgcanvas_t* vg, bool_t stroke, bitmap_t* img); - * 函数原型: ``` @@ -794,7 +767,6 @@ ret_t vgcanvas_quad_to (vgcanvas_t* vg, float_t cpx, float_t cpy, float_t x, flo - * 函数原型: ``` @@ -821,7 +793,6 @@ ret_t vgcanvas_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h) - * 函数原型: ``` @@ -849,7 +820,6 @@ ret_t vgcanvas_reinit (vgcanvas_t* vg, uint32_t w, uint32_t h, uint32_t stride, - * 函数原型: ``` @@ -874,7 +844,6 @@ ret_t vgcanvas_reset (vgcanvas_t* vg); - * 函数原型: ``` @@ -897,7 +866,6 @@ ret_t vgcanvas_restore (vgcanvas_t* vg); - * 函数原型: ``` @@ -921,7 +889,6 @@ ret_t vgcanvas_rotate (vgcanvas_t* vg, float_t rad); - * 函数原型: ``` @@ -951,7 +918,6 @@ ret_t vgcanvas_rounded_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, fl - * 函数原型: ``` @@ -974,7 +940,6 @@ ret_t vgcanvas_save (vgcanvas_t* vg); - * 函数原型: ``` @@ -999,7 +964,6 @@ ret_t vgcanvas_scale (vgcanvas_t* vg, float_t x, float_t y); - * 函数原型: ``` @@ -1023,7 +987,6 @@ ret_t vgcanvas_set_antialias (vgcanvas_t* vg, bool_t value); - * 函数原型: ``` @@ -1047,7 +1010,6 @@ ret_t vgcanvas_set_fill_color (vgcanvas_t* vg, color_t color); - * 函数原型: ``` @@ -1071,7 +1033,6 @@ ret_t vgcanvas_set_fill_color_str (vgcanvas_t* vg, const char* color); - * 函数原型: ``` @@ -1100,7 +1061,6 @@ ret_t vgcanvas_set_fill_linear_gradient (vgcanvas_t* vg, float_t sx, float_t sy, - * 函数原型: ``` @@ -1129,7 +1089,6 @@ ret_t vgcanvas_set_fill_radial_gradient (vgcanvas_t* vg, float_t cx, float_t cy, - * 函数原型: ``` @@ -1153,7 +1112,6 @@ ret_t vgcanvas_set_font (vgcanvas_t* vg, char* font); - * 函数原型: ``` @@ -1177,7 +1135,6 @@ ret_t vgcanvas_set_font_size (vgcanvas_t* vg, float_t font); - * 函数原型: ``` @@ -1201,7 +1158,6 @@ ret_t vgcanvas_set_global_alpha (vgcanvas_t* vg, float_t alpha); - * 函数原型: ``` @@ -1225,7 +1181,6 @@ ret_t vgcanvas_set_line_cap (vgcanvas_t* vg, char* value); - * 函数原型: ``` @@ -1249,7 +1204,6 @@ ret_t vgcanvas_set_line_join (vgcanvas_t* vg, char* value); - * 函数原型: ``` @@ -1273,7 +1227,6 @@ ret_t vgcanvas_set_line_width (vgcanvas_t* vg, float_t value); - * 函数原型: ``` @@ -1297,7 +1250,6 @@ ret_t vgcanvas_set_miter_limit (vgcanvas_t* vg, float_t value); - * 函数原型: ``` @@ -1321,7 +1273,6 @@ ret_t vgcanvas_set_stroke_color (vgcanvas_t* vg, color_t color); - * 函数原型: ``` @@ -1345,7 +1296,6 @@ ret_t vgcanvas_set_stroke_color_str (vgcanvas_t* vg, const char* color); - * 函数原型: ``` @@ -1374,7 +1324,6 @@ ret_t vgcanvas_set_stroke_linear_gradient (vgcanvas_t* vg, float_t sx, float_t s - * 函数原型: ``` @@ -1403,7 +1352,6 @@ ret_t vgcanvas_set_stroke_radial_gradient (vgcanvas_t* vg, float_t cx, float_t c - * 函数原型: ``` @@ -1427,7 +1375,6 @@ ret_t vgcanvas_set_text_align (vgcanvas_t* vg, char* value); - * 函数原型: ``` @@ -1451,7 +1398,6 @@ ret_t vgcanvas_set_text_baseline (vgcanvas_t* vg, char* value); - * 函数原型: ``` @@ -1480,7 +1426,6 @@ ret_t vgcanvas_set_transform (vgcanvas_t* vg, float_t a, float_t b, float_t c, f - * 函数原型: ``` @@ -1503,7 +1448,6 @@ ret_t vgcanvas_stroke (vgcanvas_t* vg); - * 函数原型: ``` @@ -1532,7 +1476,6 @@ ret_t vgcanvas_transform (vgcanvas_t* vg, float_t a, float_t b, float_t c, float - * 函数原型: ``` @@ -1552,7 +1495,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    是否启用反走样功能。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -1565,7 +1507,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    填充颜色 - * 类型:color\_t | 特性 | 是否支持 | @@ -1577,7 +1518,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    字体。 - * 类型:char* | 特性 | 是否支持 | @@ -1590,7 +1530,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    字体大小。 - * 类型:float\_t | 特性 | 是否支持 | @@ -1603,7 +1542,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    全局alpha。 - * 类型:float\_t | 特性 | 是否支持 | @@ -1616,7 +1554,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    canvas的高度 - * 类型:wh\_t | 特性 | 是否支持 | @@ -1630,7 +1567,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); @see http://www.w3school.com.cn/tags/canvas_linecap.asp - * 类型:const char* | 特性 | 是否支持 | @@ -1644,7 +1580,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); @see http://www.w3school.com.cn/tags/canvas_linejoin.asp - * 类型:const char* | 特性 | 是否支持 | @@ -1657,7 +1592,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    线宽。 - * 类型:float\_t | 特性 | 是否支持 | @@ -1671,7 +1605,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); @see http://www.w3school.com.cn/tags/canvas_miterlimit.asp - * 类型:float\_t | 特性 | 是否支持 | @@ -1684,7 +1617,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    显示比例。 - * 类型:float\_t | 特性 | 是否支持 | @@ -1697,7 +1629,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    线条颜色 - * 类型:color\_t | 特性 | 是否支持 | @@ -1711,7 +1642,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); @see http://www.w3school.com.cn/tags/canvas_textalign.asp - * 类型:const char* | 特性 | 是否支持 | @@ -1726,7 +1656,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); @see http://www.w3school.com.cn/tags/canvas_textbaseline.asp - * 类型:const char* | 特性 | 是否支持 | @@ -1739,7 +1668,6 @@ ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); >

    canvas的宽度 - * 类型:wh\_t | 特性 | 是否支持 | diff --git a/docs/manual/wbuffer_t.md b/docs/manual/wbuffer_t.md index 015a9b6032..e63e31d9a9 100644 --- a/docs/manual/wbuffer_t.md +++ b/docs/manual/wbuffer_t.md @@ -29,7 +29,6 @@ - ---------------------------------- ### 函数

    @@ -65,7 +64,6 @@ - * 函数原型: ``` @@ -87,7 +85,6 @@ ret_t wbuffer_deinit (wbuffer_t* wbuffer); - * 函数原型: ``` @@ -110,7 +107,6 @@ ret_t wbuffer_extend_capacity (wbuffer_t* wbuffer, uint32_t capacity); - * 函数原型: ``` @@ -135,7 +131,6 @@ wbuffer_t* wbuffer_init (wbuffer_t* wbuffer, uint8_t* data, uint16_t capacity); - * 函数原型: ``` @@ -157,7 +152,6 @@ wbuffer_t* wbuffer_init_extendable (wbuffer_t* wbuffer); - * 函数原型: ``` @@ -180,7 +174,6 @@ ret_t wbuffer_skip (wbuffer_t* wbuffer, int32_t delta); - * 函数原型: ``` @@ -204,7 +197,6 @@ ret_t wbuffer_write_binary (wbuffer_t* wbuffer, void* data, uint32_t size); - * 函数原型: ``` @@ -227,7 +219,6 @@ ret_t wbuffer_write_float (wbuffer_t* wbuffer, float_t value); - * 函数原型: ``` @@ -250,7 +241,6 @@ ret_t wbuffer_write_string (wbuffer_t* wbuffer, char* data); - * 函数原型: ``` @@ -273,7 +263,6 @@ ret_t wbuffer_write_uint16 (wbuffer_t* wbuffer, uint16_t value); - * 函数原型: ``` @@ -296,7 +285,6 @@ ret_t wbuffer_write_uint32 (wbuffer_t* wbuffer, uint32_t value); - * 函数原型: ``` @@ -315,7 +303,6 @@ ret_t wbuffer_write_uint8 (wbuffer_t* wbuffer, uint8_t value); >

    缓存区最大容量。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -327,7 +314,6 @@ ret_t wbuffer_write_uint8 (wbuffer_t* wbuffer, uint8_t value); >

    当前写入位置。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -339,7 +325,6 @@ ret_t wbuffer_write_uint8 (wbuffer_t* wbuffer, uint8_t value); >

    缓存区。 - * 类型:uint8\_t* | 特性 | 是否支持 | @@ -351,7 +336,6 @@ ret_t wbuffer_write_uint8 (wbuffer_t* wbuffer, uint8_t value); >

    容量是否可扩展。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/wheel_event_t.md b/docs/manual/wheel_event_t.md index a3b9d7aec8..00193051c6 100644 --- a/docs/manual/wheel_event_t.md +++ b/docs/manual/wheel_event_t.md @@ -4,7 +4,6 @@ 滚轮事件。 - ---------------------------------- ### 函数

    @@ -31,7 +30,6 @@ - * 函数原型: ``` @@ -53,7 +51,6 @@ wheel_event_t* wheel_event_cast (event_t* event); - * 函数原型: ``` @@ -74,7 +71,6 @@ event_t* wheel_event_init (wheel_event_t* event, void* target, uint32_t type, in >

    alt键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -87,7 +83,6 @@ event_t* wheel_event_init (wheel_event_t* event, void* target, uint32_t type, in >

    ctrl键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -100,7 +95,6 @@ event_t* wheel_event_init (wheel_event_t* event, void* target, uint32_t type, in >

    滚轮的y值。 - * 类型:int32\_t | 特性 | 是否支持 | @@ -113,7 +107,6 @@ event_t* wheel_event_init (wheel_event_t* event, void* target, uint32_t type, in >

    shift键是否按下。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/widget_animator_prop2_t.md b/docs/manual/widget_animator_prop2_t.md index 70efb587ba..19858a12d8 100644 --- a/docs/manual/widget_animator_prop2_t.md +++ b/docs/manual/widget_animator_prop2_t.md @@ -2,7 +2,6 @@ ### 概述 通过修改对象的两个指定属性形成动画效果。 - ---------------------------------- ### 函数

    @@ -20,7 +19,6 @@ - * 函数原型: ``` @@ -47,7 +45,6 @@ widget_animator_t* widget_animator_prop2_create (widget_t* widget, uint32_t dura - * 函数原型: ``` diff --git a/docs/manual/widget_animator_prop_t.md b/docs/manual/widget_animator_prop_t.md index ff60353101..9ba01da372 100644 --- a/docs/manual/widget_animator_prop_t.md +++ b/docs/manual/widget_animator_prop_t.md @@ -2,7 +2,6 @@ ### 概述 通过修改对象的指定属性形成动画效果。 - ---------------------------------- ### 函数

    @@ -20,7 +19,6 @@ - * 函数原型: ``` @@ -46,7 +44,6 @@ widget_animator_t* widget_animator_prop_create (widget_t* widget, uint32_t durat - * 函数原型: ``` diff --git a/docs/manual/widget_animator_scroll_t.md b/docs/manual/widget_animator_scroll_t.md index 56c0696fc7..44b1df1eb0 100644 --- a/docs/manual/widget_animator_scroll_t.md +++ b/docs/manual/widget_animator_scroll_t.md @@ -3,7 +3,6 @@ 滚动控件的动画。 本动画也可以用widget_animator_prop2实现,但滚动控件需要访问内部数据结构,出于可读性考虑保留独立实现。 - ---------------------------------- ### 函数

    @@ -21,7 +20,6 @@ - * 函数原型: ``` @@ -46,7 +44,6 @@ widget_animator_t* widget_animator_scroll_create (widget_t* widget, uint32_t dur - * 函数原型: ``` diff --git a/docs/manual/widget_animator_t.md b/docs/manual/widget_animator_t.md index 6a09c80394..21ce20061c 100644 --- a/docs/manual/widget_animator_t.md +++ b/docs/manual/widget_animator_t.md @@ -2,7 +2,6 @@ ### 概述 控件动画接口。 - ---------------------------------- ### 函数

    @@ -37,7 +36,6 @@ - * 函数原型: ``` @@ -59,7 +57,6 @@ ret_t widget_animator_destroy (widget_animator_t* animator); - * 函数原型: ``` @@ -85,7 +82,6 @@ ret_t widget_animator_init (widget_animator_t* animator, widget_t* widget, uint3 - * 函数原型: ``` @@ -109,7 +105,6 @@ ret_t widget_animator_off (widget_animator_t* animator, uint32_t id); - * 函数原型: ``` @@ -134,7 +129,6 @@ uint32_t widget_animator_on (widget_animator_t* animator, event_type_t , event_f - * 函数原型: ``` @@ -156,7 +150,6 @@ ret_t widget_animator_pause (widget_animator_t* animator); - * 函数原型: ``` @@ -179,7 +172,6 @@ ret_t widget_animator_set_destroy_when_done (widget_animator_t* animator, bool_t - * 函数原型: ``` @@ -202,7 +194,6 @@ ret_t widget_animator_set_name (widget_animator_t* animator, const char* name); - * 函数原型: ``` @@ -225,7 +216,6 @@ ret_t widget_animator_set_repeat (widget_animator_t* animator, uint32_t repeat_t - * 函数原型: ``` @@ -248,7 +238,6 @@ ret_t widget_animator_set_reversed (widget_animator_t* animator, bool_t value); - * 函数原型: ``` @@ -271,7 +260,6 @@ ret_t widget_animator_set_time_scale (widget_animator_t* animator, float_t time_ - * 函数原型: ``` @@ -294,7 +282,6 @@ ret_t widget_animator_set_yoyo (widget_animator_t* animator, uint32_t yoyo_times - * 函数原型: ``` @@ -316,7 +303,6 @@ ret_t widget_animator_start (widget_animator_t* animator); - * 函数原型: ``` @@ -334,6 +320,5 @@ ret_t widget_animator_stop (widget_animator_t* animator); >

    名称。 - * 类型:char* diff --git a/docs/manual/widget_factory_t.md b/docs/manual/widget_factory_t.md index abfc030093..7374598a82 100644 --- a/docs/manual/widget_factory_t.md +++ b/docs/manual/widget_factory_t.md @@ -8,7 +8,6 @@ 用户注册自定义控件,可以获得内置控件同等待遇。 - ---------------------------------- ### 函数

    @@ -29,7 +28,6 @@ >

    获取缺省的控件工厂对象。 - * 函数原型: ``` @@ -50,7 +48,6 @@ widget_factory_t* widget_factory (); - * 函数原型: ``` @@ -71,7 +68,6 @@ widget_factory_t* widget_factory_create (); - * 函数原型: ``` @@ -98,7 +94,6 @@ widget_t* widget_factory_create_widget (widget_factory_t* factory, const char* t - * 函数原型: ``` @@ -120,7 +115,6 @@ ret_t widget_factory_destroy (widget_factory_t* factory); - * 函数原型: ``` @@ -144,7 +138,6 @@ ret_t widget_factory_register (widget_factory_t* factory, const char* type, widg - * 函数原型: ``` diff --git a/docs/manual/widget_prop_t.md b/docs/manual/widget_prop_t.md index f99ff4a2f0..98ad6a4f9f 100644 --- a/docs/manual/widget_prop_t.md +++ b/docs/manual/widget_prop_t.md @@ -1,7 +1,6 @@ ## widget\_prop\_t ### 概述 控件的属性。 - ### 常量

    diff --git a/docs/manual/widget_state_t.md b/docs/manual/widget_state_t.md index f900c49251..238f785311 100644 --- a/docs/manual/widget_state_t.md +++ b/docs/manual/widget_state_t.md @@ -3,7 +3,6 @@ 控件状态常量定义。 这里指定常用的状态值,扩展控件可以在自己的头文件中定义私有的状态。 - ### 常量

    diff --git a/docs/manual/widget_t.md b/docs/manual/widget_t.md index b03ab9da7d..f2ab58d604 100644 --- a/docs/manual/widget_t.md +++ b/docs/manual/widget_t.md @@ -45,7 +45,6 @@ ``` - ---------------------------------- ### 函数

    @@ -101,8 +100,11 @@ | widget\_move | 移动控件。 | | widget\_move\_resize | 移动控件并调整控件的大小。 | | widget\_off | 注销指定事件的处理函数。 | -| widget\_off\_by\_func | 注销指定事件的处理函数。 | +| widget\_off\_by\_ctx | 注销指定ctx的事件处理函数。 | +| widget\_off\_by\_func | 注销指定函数的事件处理函数。 | +| widget\_off\_by\_tag | 注销指定tag的事件处理函数。 | | widget\_on | 注册指定事件的处理函数。 | +| widget\_on\_with\_tag | 注册指定tag的事件处理函数。 | | widget\_pause\_animator | 暂停动画。 | | widget\_remove\_child | 移出指定的子控件(并不销毁)。 | | widget\_resize | 调整控件的大小。 | @@ -220,7 +222,6 @@ - * 函数原型: ``` @@ -245,7 +246,6 @@ ret_t widget_add_child (widget_t* widget, widget_t* child); - * 函数原型: ``` @@ -283,7 +283,6 @@ uint32_t widget_add_idle (widget_t* widget, idle_func_t on_idle); - * 函数原型: ``` @@ -308,7 +307,6 @@ uint32_t widget_add_timer (widget_t* widget, timer_func_t on_timer, uint32_t dur - * 函数原型: ``` @@ -332,7 +330,6 @@ ret_t widget_add_value (widget_t* widget, int32_t delta); - * 函数原型: ``` @@ -356,7 +353,6 @@ ret_t widget_animate_value_to (widget_t* widget, int32_t value, uint32_t duratio - * 函数原型: ``` @@ -378,7 +374,6 @@ widget_t* widget_cast (widget_t* widget); - * 函数原型: ``` @@ -402,7 +397,6 @@ widget_t* widget_child (widget_t* widget, char* name); - * 函数原型: ``` @@ -428,7 +422,6 @@ int32_t widget_child_on (widget_t* widget, char* name, uint32_t type, event_func - * 函数原型: ``` @@ -451,7 +444,6 @@ widget_t* widget_clone (widget_t* widget, widget_t* parent); - * 函数原型: ``` @@ -478,7 +470,6 @@ int32_t widget_count_children (widget_t* widget); - * 函数原型: ``` @@ -502,7 +493,6 @@ ret_t widget_create_animator (widget_t* widget, const char* animation); - * 函数原型: ``` @@ -530,7 +520,6 @@ ret_t widget_destroy (widget_t* widget); - * 函数原型: ``` @@ -553,7 +542,6 @@ ret_t widget_destroy_animator (widget_t* widget, char* name); - * 函数原型: ``` @@ -575,7 +563,6 @@ ret_t widget_destroy_children (widget_t* widget); - * 函数原型: ``` @@ -598,7 +585,6 @@ ret_t widget_dispatch (widget_t* widget, event_t* e); - * 函数原型: ``` @@ -622,7 +608,6 @@ bool_t widget_equal (widget_t* widget, widget_t* other); - * 函数原型: ``` @@ -645,7 +630,6 @@ widget_animator_t* widget_find_animator (widget_t* widget, char* name); - * 函数原型: ``` @@ -669,7 +653,6 @@ ret_t widget_foreach (widget_t* widget, tk_visit_t visit, void* ctx); - * 函数原型: ``` @@ -690,7 +673,6 @@ canvas_t* widget_get_canvas (); - * 函数原型: ``` @@ -713,7 +695,6 @@ widget_t* widget_get_child (widget_t* widget, int32_t index); - * 函数原型: ``` @@ -737,7 +718,6 @@ ret_t widget_get_prop (widget_t* widget, const char* name, value_t* v); - * 函数原型: ``` @@ -761,7 +741,6 @@ bool_t widget_get_prop_bool (widget_t* widget, const char* name, bool_t defval); - * 函数原型: ``` @@ -785,7 +764,6 @@ ret_t widget_get_prop_default_value (widget_t* widget, const char* name, value_t - * 函数原型: ``` @@ -809,7 +787,6 @@ int32_t widget_get_prop_int (widget_t* widget, const char* name, int32_t defval) - * 函数原型: ``` @@ -832,7 +809,6 @@ void* widget_get_prop_pointer (widget_t* widget, const char* name); - * 函数原型: ``` @@ -857,7 +833,6 @@ const char* widget_get_prop_str (widget_t* widget, const char* name, const char* - * 函数原型: ``` @@ -879,7 +854,6 @@ wchar_t* widget_get_text (widget_t* widget); - * 函数原型: ``` @@ -901,7 +875,6 @@ char* widget_get_type (widget_t* widget); - * 函数原型: ``` @@ -923,7 +896,6 @@ int32_t widget_get_value (widget_t* widget); - * 函数原型: ``` @@ -945,7 +917,6 @@ widget_t* widget_get_window (widget_t* widget); - * 函数原型: ``` @@ -968,7 +939,6 @@ widget_t* widget_get_window_manager (widget_t* widget); - * 函数原型: ``` @@ -991,7 +961,6 @@ ret_t widget_grab (widget_t* widget, widget_t* child); - * 函数原型: ``` @@ -1013,7 +982,6 @@ int32_t widget_index_of (widget_t* widget); - * 函数原型: ``` @@ -1037,7 +1005,6 @@ ret_t widget_insert_child (widget_t* widget, uint32_t index, widget_t* child); - * 函数原型: ``` @@ -1060,7 +1027,6 @@ ret_t widget_invalidate (widget_t* widget, rect_t* r); - * 函数原型: ``` @@ -1083,7 +1049,6 @@ ret_t widget_invalidate_force (widget_t* widget, rect_t* r); - * 函数原型: ``` @@ -1105,7 +1070,6 @@ bool_t widget_is_designing_window (widget_t* widget); - * 函数原型: ``` @@ -1127,7 +1091,6 @@ bool_t widget_is_window (widget_t* widget); - * 函数原型: ``` @@ -1149,7 +1112,6 @@ bool_t widget_is_window_manager (widget_t* widget); - * 函数原型: ``` @@ -1171,7 +1133,6 @@ bool_t widget_is_window_opened (widget_t* widget); - * 函数原型: ``` @@ -1193,7 +1154,6 @@ ret_t widget_layout (widget_t* widget); - * 函数原型: ``` @@ -1223,7 +1183,6 @@ ret_t widget_layout_children (widget_t* widget); - * 函数原型: ``` @@ -1257,7 +1216,6 @@ const asset_info_t* widget_load_asset (widget_t* widget, asset_type_t type, cons - * 函数原型: ``` @@ -1281,7 +1239,6 @@ ret_t widget_load_image (widget_t* widget, const char* name, bitmap_t* bitmap); - * 函数原型: ``` @@ -1305,7 +1262,6 @@ widget_t* widget_lookup (widget_t* widget, char* name, bool_t recursive); - * 函数原型: ``` @@ -1329,7 +1285,6 @@ widget_t* widget_lookup_by_type (widget_t* widget, char* type, bool_t recursive) - * 函数原型: ``` @@ -1353,7 +1308,6 @@ ret_t widget_move (widget_t* widget, xy_t x, xy_t y); - * 函数原型: ``` @@ -1379,7 +1333,6 @@ ret_t widget_move_resize (widget_t* widget, xy_t x, xy_t y, wh_t w, wh_t h); - * 函数原型: ``` @@ -1393,14 +1346,34 @@ ret_t widget_off (widget_t* widget, int32_t id); | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | 控件对象。 | | id | int32\_t | widget\_on返回的ID。 | -#### widget\_off\_by\_func 函数 +#### widget\_off\_by\_ctx 函数 ----------------------- * 函数功能: ->

    注销指定事件的处理函数。 - 仅用于辅助实现脚本绑定。 +>

    注销指定ctx的事件处理函数。 + + + +* 函数原型: + +``` +ret_t widget_off_by_ctx (widget_t* widget, void* ctx); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | 控件对象。 | +| ctx | void* | 事件处理函数上下文。 | +#### widget\_off\_by\_func 函数 +----------------------- +* 函数功能: + +>

    注销指定函数的事件处理函数。 @@ -1419,6 +1392,28 @@ ret_t widget_off_by_func (widget_t* widget, uint32_t type, event_func_t on_event | type | uint32\_t | 事件类型。 | | on\_event | event\_func\_t | 事件处理函数。 | | ctx | void* | 事件处理函数上下文。 | +#### widget\_off\_by\_tag 函数 +----------------------- + +* 函数功能: + +>

    注销指定tag的事件处理函数。 + + + +* 函数原型: + +``` +ret_t widget_off_by_tag (widget_t* widget, uint32_t tag); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | +| widget | widget\_t* | 控件对象。 | +| tag | uint32\_t | tag。 | #### widget\_on 函数 ----------------------- @@ -1435,7 +1430,6 @@ ret_t widget_off_by_func (widget_t* widget, uint32_t type, event_func_t on_event - * 函数原型: ``` @@ -1451,6 +1445,34 @@ int32_t widget_on (widget_t* widget, uint32_t type, event_func_t on_event, void* | type | uint32\_t | 事件类型。 | | on\_event | event\_func\_t | 事件处理函数。 | | ctx | void* | 事件处理函数上下文。 | +#### widget\_on\_with\_tag 函数 +----------------------- + +* 函数功能: + +>

    注册指定tag的事件处理函数。 + + > 注册时指定一个tag,可用widget\_off\_by\_tag注销相同tag的事件处理函数。 + + + + +* 函数原型: + +``` +int32_t widget_on_with_tag (widget_t* widget, uint32_t type, event_func_t on_event, void* ctx, uint32_t tag); +``` + +* 参数说明: + +| 参数 | 类型 | 说明 | +| -------- | ----- | --------- | +| 返回值 | int32\_t | 返回id,用于widget\_off。 | +| widget | widget\_t* | 控件对象。 | +| type | uint32\_t | 事件类型。 | +| on\_event | event\_func\_t | 事件处理函数。 | +| ctx | void* | 事件处理函数上下文。 | +| tag | uint32\_t | tag。 | #### widget\_pause\_animator 函数 ----------------------- @@ -1466,7 +1488,6 @@ int32_t widget_on (widget_t* widget, uint32_t type, event_func_t on_event, void* - * 函数原型: ``` @@ -1489,7 +1510,6 @@ ret_t widget_pause_animator (widget_t* widget, char* name); - * 函数原型: ``` @@ -1512,7 +1532,6 @@ ret_t widget_remove_child (widget_t* widget, widget_t* child); - * 函数原型: ``` @@ -1536,7 +1555,6 @@ ret_t widget_resize (widget_t* widget, wh_t w, wh_t h); - * 函数原型: ``` @@ -1561,7 +1579,6 @@ ret_t widget_restack (widget_t* widget, uint32_t index); - * 函数原型: ``` @@ -1590,7 +1607,6 @@ ret_t widget_set_animation (widget_t* widget, const char* animation); - * 函数原型: ``` @@ -1614,7 +1630,6 @@ ret_t widget_set_animator_time_scale (widget_t* widget, const char* name, float_ - * 函数原型: ``` @@ -1637,7 +1652,6 @@ ret_t widget_set_children_layout (widget_t* widget, const char* params); - * 函数原型: ``` @@ -1660,7 +1674,6 @@ ret_t widget_set_cursor (widget_t* widget, char* cursor); - * 函数原型: ``` @@ -1683,7 +1696,6 @@ ret_t widget_set_enable (widget_t* widget, bool_t enable); - * 函数原型: ``` @@ -1706,7 +1718,6 @@ ret_t widget_set_feedback (widget_t* widget, bool_t feedback); - * 函数原型: ``` @@ -1729,7 +1740,6 @@ ret_t widget_set_floating (widget_t* widget, bool_t floating); - * 函数原型: ``` @@ -1752,7 +1762,6 @@ ret_t widget_set_focused (widget_t* widget, bool_t focused); - * 函数原型: ``` @@ -1778,7 +1787,6 @@ ret_t widget_set_name (widget_t* widget, char* name); - * 函数原型: ``` @@ -1801,7 +1809,6 @@ ret_t widget_set_opacity (widget_t* widget, uint8_t opacity); - * 函数原型: ``` @@ -1825,7 +1832,6 @@ ret_t widget_set_prop (widget_t* widget, const char* name, value_t* v); - * 函数原型: ``` @@ -1849,7 +1855,6 @@ ret_t widget_set_prop_bool (widget_t* widget, const char* name, bool_t v); - * 函数原型: ``` @@ -1873,7 +1878,6 @@ ret_t widget_set_prop_int (widget_t* widget, const char* name, int32_t v); - * 函数原型: ``` @@ -1897,7 +1901,6 @@ ret_t widget_set_prop_pointer (widget_t* widget, const char* name, void** v); - * 函数原型: ``` @@ -1921,7 +1924,6 @@ ret_t widget_set_prop_str (widget_t* widget, const char* name, const char* v); - * 函数原型: ``` @@ -1944,7 +1946,6 @@ ret_t widget_set_self_layout (widget_t* widget, const char* params); - * 函数原型: ``` @@ -1970,7 +1971,6 @@ ret_t widget_set_self_layout_params (widget_t* widget, const char* x, const char - * 函数原型: ``` @@ -1993,7 +1993,6 @@ ret_t widget_set_sensitive (widget_t* widget, bool_t sensitive); - * 函数原型: ``` @@ -2016,7 +2015,6 @@ ret_t widget_set_state (widget_t* widget, const char* state); - * 函数原型: ``` @@ -2040,7 +2038,6 @@ ret_t widget_set_style_color (widget_t* widget, const char* state_and_name, uint - * 函数原型: ``` @@ -2064,7 +2061,6 @@ ret_t widget_set_style_int (widget_t* widget, const char* state_and_name, int32_ - * 函数原型: ``` @@ -2089,7 +2085,6 @@ ret_t widget_set_style_str (widget_t* widget, const char* state_and_name, const - * 函数原型: ``` @@ -2113,7 +2108,6 @@ ret_t widget_set_text (widget_t* widget, wchar_t* text); - * 函数原型: ``` @@ -2139,7 +2133,6 @@ ret_t widget_set_text_utf8 (widget_t* widget, char* text); - * 函数原型: ``` @@ -2162,7 +2155,6 @@ ret_t widget_set_theme (widget_t* widget, char* name); - * 函数原型: ``` @@ -2186,7 +2178,6 @@ ret_t widget_set_tr_text (widget_t* widget, char* text); - * 函数原型: ``` @@ -2209,7 +2200,6 @@ ret_t widget_set_value (widget_t* widget, int32_t value); - * 函数原型: ``` @@ -2233,7 +2223,6 @@ ret_t widget_set_visible (widget_t* widget, bool_t visible, bool_t recursive); - * 函数原型: ``` @@ -2262,7 +2251,6 @@ ret_t widget_set_visible_only (widget_t* widget, bool_t visible); - * 函数原型: ``` @@ -2291,7 +2279,6 @@ ret_t widget_start_animator (widget_t* widget, const char* name); - * 函数原型: ``` @@ -2314,7 +2301,6 @@ ret_t widget_stop_animator (widget_t* widget, char* name); - * 函数原型: ``` @@ -2337,7 +2323,6 @@ ret_t widget_to_global (widget_t* widget, point_t* p); - * 函数原型: ``` @@ -2360,7 +2345,6 @@ ret_t widget_to_local (widget_t* widget, point_t* p); - * 函数原型: ``` @@ -2383,7 +2367,6 @@ ret_t widget_to_screen (widget_t* widget, point_t* p); - * 函数原型: ``` @@ -2414,7 +2397,6 @@ ret_t widget_ungrab (widget_t* widget, widget_t* child); - * 函数原型: ``` @@ -2440,7 +2422,6 @@ ret_t widget_unload_asset (widget_t* widget, const asset_info_t* asset); - * 函数原型: ``` @@ -2463,7 +2444,6 @@ ret_t widget_unload_image (widget_t* widget, bitmap_t* bitmap); - * 函数原型: ``` @@ -2482,7 +2462,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    动画参数。请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md) - * 类型:char* | 特性 | 是否支持 | @@ -2500,7 +2479,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    Style对象。 - * 类型:style\_t* | 特性 | 是否支持 | @@ -2512,7 +2490,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    是否由父控件自动创建。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2524,7 +2501,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    标识控件目前不能被销毁(比如正在分发事件),如果此时调用widget\_destroy,自动异步处理。 - * 类型:uint16\_t | 特性 | 是否支持 | @@ -2536,7 +2512,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    全部子控件。 - * 类型:darray\_t* | 特性 | 是否支持 | @@ -2548,7 +2523,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    子控件布局器。请参考[控件布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md) - * 类型:children\_layouter\_t* | 特性 | 是否支持 | @@ -2563,7 +2537,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    自定义属性。 - * 类型:object\_t* | 特性 | 是否支持 | @@ -2575,7 +2548,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    标识控件正在被销毁。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2587,7 +2559,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    标识控件是否需要重绘。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2599,7 +2570,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    事件发射器。 - * 类型:emitter\_t* | 特性 | 是否支持 | @@ -2611,7 +2581,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    启用/禁用状态。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2629,7 +2598,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    是否启用按键音、触屏音和震动等反馈。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2647,7 +2615,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    标识控件是否启用浮动布局,不受父控件的children_layout的控制。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2665,7 +2632,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    是否支持焦点停留。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2683,7 +2649,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    是否得到焦点。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2695,7 +2660,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    高度。 - * 类型:wh\_t | 特性 | 是否支持 | @@ -2713,7 +2677,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    标识控件正在初始化。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2725,7 +2688,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    控件名字。 - * 类型:char* | 特性 | 是否支持 | @@ -2743,7 +2705,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    标识控件是否需要重新layout子控件。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2755,7 +2716,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    标识控件是否需要update style。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2767,7 +2727,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    不透明度(0-255),0完全透明,255完全不透明。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -2779,7 +2738,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    父控件 - * 类型:widget\_t* | 特性 | 是否支持 | @@ -2791,7 +2749,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    控件布局器。请参考[控件布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md) - * 类型:self\_layouter\_t* | 特性 | 是否支持 | @@ -2806,7 +2763,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    是否接受用户事件。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2824,7 +2780,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    控件的状态(取值参考widget_state_t)。 - * 类型:uint8\_t | 特性 | 是否支持 | @@ -2836,7 +2791,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    style的名称。 - * 类型:char* | 特性 | 是否支持 | @@ -2854,7 +2808,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    文本。用途视具体情况而定。 - * 类型:wstr\_t | 特性 | 是否支持 | @@ -2866,7 +2819,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    保存用于翻译的字符串。 - * 类型:char* | 特性 | 是否支持 | @@ -2884,7 +2836,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    是否可见。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2902,7 +2853,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    虚函数表。 - * 类型:widget\_vtable\_t | 特性 | 是否支持 | @@ -2914,7 +2864,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    宽度。 - * 类型:wh\_t | 特性 | 是否支持 | @@ -2933,7 +2882,6 @@ ret_t widget_use_style (widget_t* widget, char* style); > 如果希望style支持焦点状态,但有不希望焦点停留,可用本属性。 - * 类型:bool\_t | 特性 | 是否支持 | @@ -2951,7 +2899,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    x坐标(相对于父控件的x坐标)。 - * 类型:xy\_t | 特性 | 是否支持 | @@ -2969,7 +2916,6 @@ ret_t widget_use_style (widget_t* widget, char* style); >

    y坐标(相对于父控件的y坐标)。 - * 类型:xy\_t | 特性 | 是否支持 | diff --git a/docs/manual/widget_type_t.md b/docs/manual/widget_type_t.md index cf71850b2a..8997538e73 100644 --- a/docs/manual/widget_type_t.md +++ b/docs/manual/widget_type_t.md @@ -1,7 +1,6 @@ ## widget\_type\_t ### 概述 控件的类型。 - ### 常量

    diff --git a/docs/manual/window_animator_factory_t.md b/docs/manual/window_animator_factory_t.md index 7b47fc6b4f..5429340073 100644 --- a/docs/manual/window_animator_factory_t.md +++ b/docs/manual/window_animator_factory_t.md @@ -6,7 +6,6 @@ 让用户可以自定义窗口动画,并获得内置窗口动画同等待遇。 - ---------------------------------- ### 函数

    @@ -30,7 +29,6 @@ - * 函数原型: ``` @@ -55,7 +53,6 @@ window_animator_t* window_animator_create_for_close (char* type, canvas_t* c, wi - * 函数原型: ``` @@ -79,7 +76,6 @@ window_animator_t* window_animator_create_for_open (char* type, canvas_t* c, wid >

    获取缺省的窗口动画工厂对象。 - * 函数原型: ``` @@ -100,7 +96,6 @@ window_animator_factory_t* window_animator_factory (); - * 函数原型: ``` @@ -121,7 +116,6 @@ window_animator_factory_t* window_animator_factory_create (); - * 函数原型: ``` @@ -145,7 +139,6 @@ window_animator_t* window_animator_factory_create_animator (window_animator_fact - * 函数原型: ``` @@ -167,7 +160,6 @@ ret_t window_animator_factory_destroy (window_animator_factory_t* factory); - * 函数原型: ``` @@ -191,7 +183,6 @@ ret_t window_animator_factory_register (window_animator_factory_t* factory, cons - * 函数原型: ``` diff --git a/docs/manual/window_animator_t.md b/docs/manual/window_animator_t.md index 25911497f8..02e4e4d773 100644 --- a/docs/manual/window_animator_t.md +++ b/docs/manual/window_animator_t.md @@ -2,7 +2,6 @@ ### 概述 窗口动画。 - ---------------------------------- ### 函数

    @@ -23,7 +22,6 @@ - * 函数原型: ``` @@ -47,7 +45,6 @@ ret_t window_animator_begin_frame (window_animator_t* wa); - * 函数原型: ``` @@ -70,7 +67,6 @@ window_animator_t* window_animator_create (bool_t open, const window_animator_vt - * 函数原型: ``` @@ -92,7 +88,6 @@ ret_t window_animator_destroy (window_animator_t* wa); - * 函数原型: ``` @@ -114,7 +109,6 @@ ret_t window_animator_end_frame (window_animator_t* wa); - * 函数原型: ``` diff --git a/docs/manual/window_animator_type_t.md b/docs/manual/window_animator_type_t.md index 5beaac1f77..9228f1a338 100644 --- a/docs/manual/window_animator_type_t.md +++ b/docs/manual/window_animator_type_t.md @@ -2,7 +2,6 @@ ### 概述 @type string 内置窗口动画常量定义。 - ### 常量

    diff --git a/docs/manual/window_closable_t.md b/docs/manual/window_closable_t.md index 5a536cf6e3..c9ca88de74 100644 --- a/docs/manual/window_closable_t.md +++ b/docs/manual/window_closable_t.md @@ -1,7 +1,6 @@ ## window\_closable\_t ### 概述 窗口的closable常量定义。 - ### 常量

    diff --git a/docs/manual/window_event_t.md b/docs/manual/window_event_t.md index 50adb28aca..4597f1028a 100644 --- a/docs/manual/window_event_t.md +++ b/docs/manual/window_event_t.md @@ -4,7 +4,6 @@ 窗口事件,由窗口管理器触发。 - ---------------------------------- ### 函数

    @@ -29,7 +28,6 @@ - * 函数原型: ``` @@ -52,7 +50,6 @@ ret_t pointer_event_rotate (pointer_event_t* evt, system_info_t* info); - * 函数原型: ``` @@ -74,7 +71,6 @@ window_event_t* window_event_cast (event_t* event); - * 函数原型: ``` @@ -95,7 +91,6 @@ event_t* window_event_init (window_event_t* event, void* target, uint32_t type, >

    canvas。 - * 类型:widget\_t* | 特性 | 是否支持 | diff --git a/docs/manual/window_stage_t.md b/docs/manual/window_stage_t.md index 1acfa7c300..cc27184484 100644 --- a/docs/manual/window_stage_t.md +++ b/docs/manual/window_stage_t.md @@ -1,7 +1,6 @@ ## window\_stage\_t ### 概述 窗口的生命周期常量定义。 - ### 常量

    diff --git a/docs/manual/window_t.md b/docs/manual/window_t.md index ad099fa04f..d4fb0a9ff8 100644 --- a/docs/manual/window_t.md +++ b/docs/manual/window_t.md @@ -41,7 +41,6 @@ > 更多用法请参考:[theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0) - ---------------------------------- ### 函数

    @@ -71,7 +70,6 @@ - * 函数原型: ``` @@ -92,7 +90,6 @@ ret_t dialog_highlighter_register_builtins (); - * 函数原型: ``` @@ -114,7 +111,6 @@ widget_t* window_cast (widget_t* widget); - * 函数原型: ``` @@ -136,7 +132,6 @@ ret_t window_close (widget_t* widget); - * 函数原型: ``` @@ -158,7 +153,6 @@ ret_t window_close_force (widget_t* widget); - * 函数原型: ``` @@ -185,7 +179,6 @@ widget_t* window_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); - * 函数原型: ``` @@ -207,7 +200,6 @@ widget_t* window_open (char* name); - * 函数原型: ``` @@ -233,7 +225,6 @@ widget_t* window_open_and_close (char* name, widget_t* to_close); - * 函数原型: ``` @@ -254,7 +245,6 @@ ret_t window_set_fullscreen (widget_t* widget, bool_t fullscreen); >这里全屏是指与LCD相同大小,而非让SDL窗口全屏。 - * 类型:bool\_t | 特性 | 是否支持 | diff --git a/docs/manual/wstr_t.md b/docs/manual/wstr_t.md index b65901d5b1..fb9ec47d48 100644 --- a/docs/manual/wstr_t.md +++ b/docs/manual/wstr_t.md @@ -16,7 +16,6 @@ > 先调wstr\_init进行初始化,最后调用wstr\_reset释放内存。 - ---------------------------------- ### 函数

    @@ -62,7 +61,6 @@ - * 函数原型: ``` @@ -85,7 +83,6 @@ ret_t wstr_add_float (wstr_t* str, double delta); - * 函数原型: ``` @@ -108,7 +105,6 @@ ret_t wstr_append (wstr_t* str, wchar_t* text); - * 函数原型: ``` @@ -132,7 +128,6 @@ ret_t wstr_append_with_len (wstr_t* str, wchar_t* text, uint32_t len); - * 函数原型: ``` @@ -154,7 +149,6 @@ ret_t wstr_clear (wstr_t* str); - * 函数原型: ``` @@ -177,7 +171,6 @@ bool_t wstr_equal (wstr_t* str, wstr_t* other); - * 函数原型: ``` @@ -200,7 +193,6 @@ ret_t wstr_from_float (wstr_t* str, double v); - * 函数原型: ``` @@ -223,7 +215,6 @@ ret_t wstr_from_int (wstr_t* str, int32_t v); - * 函数原型: ``` @@ -246,7 +237,6 @@ ret_t wstr_from_value (wstr_t* str, value_t v); - * 函数原型: ``` @@ -270,7 +260,6 @@ ret_t wstr_get_utf8 (wstr_t* str, char* text, uint32_t size); - * 函数原型: ``` @@ -293,7 +282,6 @@ wstr_t* wstr_init (wstr_t* str, uint32_t capacity); - * 函数原型: ``` @@ -318,7 +306,6 @@ ret_t wstr_insert (wstr_t* str, uint32_t offset, wchar_t* text, uint32_t nr); - * 函数原型: ``` @@ -341,7 +328,6 @@ ret_t wstr_normalize_newline (wstr_t* str, wchar_t newline); - * 函数原型: ``` @@ -363,7 +349,6 @@ ret_t wstr_pop (wstr_t* str); - * 函数原型: ``` @@ -386,7 +371,6 @@ ret_t wstr_push (wstr_t* str, wchar_t c); - * 函数原型: ``` @@ -410,7 +394,6 @@ ret_t wstr_push_int (wstr_t* str, const char* format, int32_t value); - * 函数原型: ``` @@ -434,7 +417,6 @@ ret_t wstr_remove (wstr_t* str, uint32_t offset, uint32_t nr); - * 函数原型: ``` @@ -456,7 +438,6 @@ ret_t wstr_reset (wstr_t* str); - * 函数原型: ``` @@ -479,7 +460,6 @@ ret_t wstr_set (wstr_t* str, wchar_t* text); - * 函数原型: ``` @@ -502,7 +482,6 @@ ret_t wstr_set_utf8 (wstr_t* str, char* text); - * 函数原型: ``` @@ -525,7 +504,6 @@ ret_t wstr_to_float (wstr_t* str, double* v); - * 函数原型: ``` @@ -548,7 +526,6 @@ ret_t wstr_to_int (wstr_t* str, int32_t* v); - * 函数原型: ``` @@ -566,7 +543,6 @@ ret_t wstr_trim_float_zero (wstr_t* str); >

    容量。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -578,7 +554,6 @@ ret_t wstr_trim_float_zero (wstr_t* str); >

    长度。 - * 类型:uint32\_t | 特性 | 是否支持 | @@ -590,7 +565,6 @@ ret_t wstr_trim_float_zero (wstr_t* str); >

    字符串。 - * 类型:wchar\_t* | 特性 | 是否支持 | diff --git a/tools/idl_gen/idl.json b/tools/idl_gen/idl.json index 7815825229..1108c61155 100644 --- a/tools/idl_gen/idl.json +++ b/tools/idl_gen/idl.json @@ -30647,7 +30647,7 @@ "annotation": { "scriptable": true }, - "desc": " 停止(并重置index为0)。\r\n\r\n", + "desc": " 停止(并重置index为-1)。\r\n\r\n", "name": "image_animation_stop", "return": { "type": "ret_t", From 76d2ac3958476bc2cfc39abdc0a0f4ba8b93f107 Mon Sep 17 00:00:00 2001 From: lixianjing Date: Fri, 25 Oct 2019 18:01:43 +0800 Subject: [PATCH 38/66] update docs --- docs/manual/button_t.md | 4 +- docs/manual/calibration_win_t.md | 2 +- docs/manual/canvas_widget_t.md | 2 +- docs/manual/check_button_t.md | 4 +- docs/manual/color_picker_t.md | 2 +- docs/manual/color_tile_t.md | 2 +- docs/manual/combo_box_t.md | 4 +- docs/manual/dialog_t.md | 4 +- docs/manual/digit_clock_t.md | 4 +- docs/manual/draggable_t.md | 2 +- docs/manual/edit_t.md | 4 +- docs/manual/gif_image_t.md | 4 +- docs/manual/guage_pointer_t.md | 2 +- docs/manual/guage_t.md | 4 +- docs/manual/hscroll_label_t.md | 4 +- docs/manual/image_animation_t.md | 2 +- docs/manual/image_base_t.md | 6 +- docs/manual/image_t.md | 4 +- docs/manual/image_value_t.md | 2 +- docs/manual/keyboard_t.md | 2 +- docs/manual/label_t.md | 4 +- docs/manual/line_number_t.md | 4 +- docs/manual/list_item_t.md | 4 +- docs/manual/list_view_h_t.md | 2 +- docs/manual/list_view_t.md | 4 +- docs/manual/mledit_t.md | 2 +- docs/manual/mutable_image_t.md | 2 +- docs/manual/overlay_t.md | 4 +- docs/manual/pages_t.md | 2 +- docs/manual/popup_t.md | 4 +- docs/manual/progress_bar_t.md | 4 +- docs/manual/progress_circle_t.md | 4 +- docs/manual/rich_text_t.md | 2 +- docs/manual/scroll_bar_t.md | 4 +- docs/manual/scroll_view_t.md | 2 +- docs/manual/slide_indicator_t.md | 4 +- docs/manual/slide_menu_t.md | 4 +- docs/manual/slide_view_t.md | 4 +- docs/manual/slider_t.md | 4 +- docs/manual/spin_box_t.md | 4 +- docs/manual/svg_image_t.md | 4 +- docs/manual/switch_t.md | 4 +- docs/manual/system_bar_t.md | 4 +- docs/manual/tab_button_group_t.md | 2 +- docs/manual/tab_button_t.md | 2 +- docs/manual/tab_control_t.md | 2 +- docs/manual/text_selector_t.md | 4 +- docs/manual/time_clock_t.md | 2 +- docs/manual/window_t.md | 4 +- src/base/dialog.h | 4 +- src/base/image_base.h | 6 +- src/base/window.h | 4 +- src/ext_widgets/canvas_widget/canvas_widget.h | 2 +- src/ext_widgets/color_picker/color_picker.h | 2 +- src/ext_widgets/features/draggable.h | 2 +- src/ext_widgets/gif_image/gif_image.h | 4 +- src/ext_widgets/guage/guage.h | 4 +- src/ext_widgets/guage/guage_pointer.h | 2 +- .../image_animation/image_animation.h | 2 +- src/ext_widgets/image_value/image_value.h | 2 +- src/ext_widgets/keyboard/keyboard.h | 2 +- src/ext_widgets/mledit/line_number.h | 4 +- src/ext_widgets/mledit/mledit.h | 2 +- src/ext_widgets/mutable_image/mutable_image.h | 2 +- .../progress_circle/progress_circle.h | 4 +- src/ext_widgets/rich_text/rich_text.h | 2 +- src/ext_widgets/scroll_label/hscroll_label.h | 4 +- src/ext_widgets/scroll_view/list_item.h | 4 +- src/ext_widgets/scroll_view/list_view.h | 4 +- src/ext_widgets/scroll_view/list_view_h.h | 2 +- src/ext_widgets/scroll_view/scroll_bar.h | 4 +- src/ext_widgets/scroll_view/scroll_view.h | 2 +- src/ext_widgets/slide_menu/slide_menu.h | 4 +- src/ext_widgets/slide_view/slide_indicator.h | 4 +- src/ext_widgets/slide_view/slide_view.h | 4 +- src/ext_widgets/svg_image/svg_image.h | 4 +- src/ext_widgets/switch/switch.h | 4 +- src/ext_widgets/text_selector/text_selector.h | 4 +- src/ext_widgets/time_clock/digit_clock.h | 4 +- src/ext_widgets/time_clock/time_clock.h | 2 +- src/widgets/button.h | 4 +- src/widgets/calibration_win.h | 2 +- src/widgets/check_button.h | 4 +- src/widgets/color_tile.h | 2 +- src/widgets/combo_box.h | 4 +- src/widgets/edit.h | 4 +- src/widgets/image.h | 4 +- src/widgets/label.h | 4 +- src/widgets/overlay.h | 4 +- src/widgets/pages.h | 2 +- src/widgets/popup.h | 4 +- src/widgets/progress_bar.h | 4 +- src/widgets/slider.h | 4 +- src/widgets/spin_box.h | 4 +- src/widgets/system_bar.h | 4 +- src/widgets/tab_button.h | 2 +- src/widgets/tab_button_group.h | 2 +- src/widgets/tab_control.h | 2 +- tools/idl_gen/idl.json | 98 +++++++++---------- 99 files changed, 209 insertions(+), 209 deletions(-) diff --git a/docs/manual/button_t.md b/docs/manual/button_t.md index 1d8196cbae..098e1add2a 100644 --- a/docs/manual/button_t.md +++ b/docs/manual/button_t.md @@ -17,7 +17,7 @@ ``` > 更多用法请参考: - [button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/button.xml) + [button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/button.xml) 在c代码中使用函数button\_create创建按钮控件。如: @@ -45,7 +45,7 @@ > 更多用法请参考: [theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L31) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L31) ---------------------------------- diff --git a/docs/manual/calibration_win_t.md b/docs/manual/calibration_win_t.md index 378881f3a5..44ab35e142 100644 --- a/docs/manual/calibration_win_t.md +++ b/docs/manual/calibration_win_t.md @@ -15,7 +15,7 @@ ``` > 更多用法请参考: - [window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/calibration_win.xml) + [window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/calibration_win.xml) 在c代码中使用函数calibration\_win\_create创建窗口。如: diff --git a/docs/manual/canvas_widget_t.md b/docs/manual/canvas_widget_t.md index 1c8343f91f..322790bf8d 100644 --- a/docs/manual/canvas_widget_t.md +++ b/docs/manual/canvas_widget_t.md @@ -15,7 +15,7 @@ ``` > 更多用法请参考: - [canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/vgcanvas.xml) + [canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/vgcanvas.xml) 在c代码中使用函数canvas\_widget\_create创建画布控件。如: diff --git a/docs/manual/check_button_t.md b/docs/manual/check_button_t.md index 7dd69464a3..504d526999 100644 --- a/docs/manual/check_button_t.md +++ b/docs/manual/check_button_t.md @@ -19,7 +19,7 @@ ``` > 更多用法请参考: - [button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/basic.xml) + [button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml) 在c代码中使用函数check\_button\_create创建多选按钮控件。如: @@ -55,7 +55,7 @@ > 更多用法请参考: [theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L227) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L227) ---------------------------------- diff --git a/docs/manual/color_picker_t.md b/docs/manual/color_picker_t.md index 74aa277bea..b749f959a1 100644 --- a/docs/manual/color_picker_t.md +++ b/docs/manual/color_picker_t.md @@ -18,7 +18,7 @@ ``` > 更多用法请参考: - [color\_picker](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/color_picker.xml) + [color\_picker](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker.xml) 其中的子控件必须按下列规则命名: diff --git a/docs/manual/color_tile_t.md b/docs/manual/color_tile_t.md index 99ad50d6a7..9eda72ac1f 100644 --- a/docs/manual/color_tile_t.md +++ b/docs/manual/color_tile_t.md @@ -17,7 +17,7 @@ ``` > 更多用法请参考: - [color_tile](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/color_picker_rgb.xml) + [color_tile](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker_rgb.xml) 在c代码中使用函数color_tile\_create创建色块控件。如: diff --git a/docs/manual/combo_box_t.md b/docs/manual/combo_box_t.md index def1d5311a..aa6677790d 100644 --- a/docs/manual/combo_box_t.md +++ b/docs/manual/combo_box_t.md @@ -39,7 +39,7 @@ tr_text="english"/> ``` > - 更多用法请参考:[combo_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/combo_box.xml) + 更多用法请参考:[combo_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/combo_box.xml) 在c代码中使用函数combo\_box\_create创建下拉列表控件。如: @@ -72,7 +72,7 @@ demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/combo_box.c) ``` > 更多用法请参考:[theme -default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L422) +default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L422) ---------------------------------- diff --git a/docs/manual/dialog_t.md b/docs/manual/dialog_t.md index dcc4f59c93..240d1b2aa1 100644 --- a/docs/manual/dialog_t.md +++ b/docs/manual/dialog_t.md @@ -78,7 +78,7 @@ ``` > 更多用法请参考: - [dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + [dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) > 完整C代码示例请参考: @@ -96,7 +96,7 @@ > 更多用法请参考: [theme default] - (https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324) + (https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L324) ---------------------------------- diff --git a/docs/manual/digit_clock_t.md b/docs/manual/digit_clock_t.md index fd9d2eb7c2..302b08f86f 100644 --- a/docs/manual/digit_clock_t.md +++ b/docs/manual/digit_clock_t.md @@ -13,7 +13,7 @@ ``` > 更多用法请参考:[digit\_clock.xml]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/digit_clock.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/digit_clock.xml) 在c代码中使用函数digit\_clock\_create创建数字时钟控件。如: @@ -34,7 +34,7 @@ ``` > 更多用法请参考:[theme default]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L138) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L138) ---------------------------------- diff --git a/docs/manual/draggable_t.md b/docs/manual/draggable_t.md index 2057f6f534..e7e4be48d2 100644 --- a/docs/manual/draggable_t.md +++ b/docs/manual/draggable_t.md @@ -24,7 +24,7 @@ ``` > 更多用法请参考: - [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/draggable.xml) + [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/draggable.xml) 在c代码中使用函数draggable\_create创建按钮控件。如: diff --git a/docs/manual/edit_t.md b/docs/manual/edit_t.md index 1677951692..b9f12a8cdb 100644 --- a/docs/manual/edit_t.md +++ b/docs/manual/edit_t.md @@ -27,7 +27,7 @@ > XXX:需要在min/max/step之前设置input\_type。 >更多用法请参考: - [edit.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/edit.xml) + [edit.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/edit.xml) 在c代码中使用函数edit\_create创建编辑器控件。如: @@ -55,7 +55,7 @@ > 更多用法请参考: [theme -default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L104) +default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L104) ---------------------------------- diff --git a/docs/manual/gif_image_t.md b/docs/manual/gif_image_t.md index b11dd64210..76788d6aa8 100644 --- a/docs/manual/gif_image_t.md +++ b/docs/manual/gif_image_t.md @@ -16,7 +16,7 @@ ``` >更多用法请参考: - [gif image](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/gif_image.xml) + [gif image](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/gif_image.xml) 在c代码中使用函数gif\_image\_create创建GIF图片控件。如: @@ -43,7 +43,7 @@ ``` > 更多用法请参考:[theme default]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml) ---------------------------------- diff --git a/docs/manual/guage_pointer_t.md b/docs/manual/guage_pointer_t.md index 6dd01b55ba..04396964eb 100644 --- a/docs/manual/guage_pointer_t.md +++ b/docs/manual/guage_pointer_t.md @@ -17,7 +17,7 @@ ``` > 更多用法请参考: - [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml) + [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml) 在c代码中使用函数guage\_pointer\_create创建仪表指针控件。如: diff --git a/docs/manual/guage_t.md b/docs/manual/guage_t.md index 51dcc0ec83..77b3c2f445 100644 --- a/docs/manual/guage_t.md +++ b/docs/manual/guage_t.md @@ -15,7 +15,7 @@ ``` > 更多用法请参考: - [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml) + [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml) 在c代码中使用函数guage\_create创建表盘控件。如: @@ -35,7 +35,7 @@ ``` > 更多用法请参考: - [theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) + [theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml) ---------------------------------- diff --git a/docs/manual/hscroll_label_t.md b/docs/manual/hscroll_label_t.md index f6692bda4c..df3a25052e 100644 --- a/docs/manual/hscroll_label_t.md +++ b/docs/manual/hscroll_label_t.md @@ -14,7 +14,7 @@ ``` > 更多用法请参考:[mledit.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml) 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如: @@ -27,7 +27,7 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) > 更多用法请参考: [theme default]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml) ---------------------------------- diff --git a/docs/manual/image_animation_t.md b/docs/manual/image_animation_t.md index 6216bf2573..17635ec00c 100644 --- a/docs/manual/image_animation_t.md +++ b/docs/manual/image_animation_t.md @@ -16,7 +16,7 @@ ``` > 更多用法请参考: - [image_animation.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/image_animation.xml) + [image_animation.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_animation.xml) 在c代码中使用函数image\_animation\_create创建图片动画控件。如: diff --git a/docs/manual/image_base_t.md b/docs/manual/image_base_t.md index 55460cfc49..94338a59bf 100644 --- a/docs/manual/image_base_t.md +++ b/docs/manual/image_base_t.md @@ -14,9 +14,9 @@ 如果需要显示文件系统中的图片,只需将图片名称换成实际的文件名,并加上"file://"前缀即可。如: ``` - - - + + + ``` ---------------------------------- diff --git a/docs/manual/image_t.md b/docs/manual/image_t.md index 157529d53f..0aa705ffc6 100644 --- a/docs/manual/image_t.md +++ b/docs/manual/image_t.md @@ -23,7 +23,7 @@ ``` > 更多用法请参考: - [image.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/images.xml) + [image.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/images.xml) 在c代码中使用函数image\_create创建图片控件。如: @@ -58,7 +58,7 @@ > 更多用法请参考: [theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L313) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L313) ---------------------------------- diff --git a/docs/manual/image_value_t.md b/docs/manual/image_value_t.md index dd18e7c976..1e02606302 100644 --- a/docs/manual/image_value_t.md +++ b/docs/manual/image_value_t.md @@ -21,7 +21,7 @@ image\_value\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数 ``` > 更多用法请参考: - [image\_value](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/image_value.xml) + [image\_value](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_value.xml) 在c代码中使用函数image\_value\_create创建图片值控件。如: diff --git a/docs/manual/keyboard_t.md b/docs/manual/keyboard_t.md index d0da1d6564..039424b110 100644 --- a/docs/manual/keyboard_t.md +++ b/docs/manual/keyboard_t.md @@ -38,7 +38,7 @@ > 更多用法请参考: - [kb_default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/kb_default.xml) + [kb_default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/kb_default.xml) ---------------------------------- diff --git a/docs/manual/label_t.md b/docs/manual/label_t.md index 1ac69fbe16..719a44c862 100644 --- a/docs/manual/label_t.md +++ b/docs/manual/label_t.md @@ -18,7 +18,7 @@ ``` > 更多用法请参考:[label.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/label.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/label.xml) 在c代码中使用函数label\_create创建文本控件。如: @@ -42,7 +42,7 @@ https://github.com/zlgopen/awtk-c-demos/blob/master/demos/label.c) > 更多用法请参考: [theme default]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L144) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L144) ---------------------------------- diff --git a/docs/manual/line_number_t.md b/docs/manual/line_number_t.md index eff8ed5f6c..b9c5ae8921 100644 --- a/docs/manual/line_number_t.md +++ b/docs/manual/line_number_t.md @@ -18,7 +18,7 @@ ``` > 更多用法请参考:[mledit.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml) 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如: @@ -32,7 +32,7 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) > 更多用法请参考: [theme default]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L556) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L556) ---------------------------------- diff --git a/docs/manual/list_item_t.md b/docs/manual/list_item_t.md index dacff28479..ca891f9b44 100644 --- a/docs/manual/list_item_t.md +++ b/docs/manual/list_item_t.md @@ -25,7 +25,7 @@ ``` > 更多用法请参考:[list\_view\_m.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml) 在c代码中使用函数list\_item\_create创建列表项控件。如: @@ -46,7 +46,7 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) ``` > 更多用法请参考:[theme default]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L372) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L372) ---------------------------------- diff --git a/docs/manual/list_view_h_t.md b/docs/manual/list_view_h_t.md index f910050ca1..b9cb7d96e0 100644 --- a/docs/manual/list_view_h_t.md +++ b/docs/manual/list_view_h_t.md @@ -21,7 +21,7 @@ > 更多用法请参考:[list\_view\_h.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_h.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_h.xml) 在c代码中使用函数list\_view\_h\_create创建水平列表视图控件。如: diff --git a/docs/manual/list_view_t.md b/docs/manual/list_view_t.md index 7981837268..be4094230d 100644 --- a/docs/manual/list_view_t.md +++ b/docs/manual/list_view_t.md @@ -9,7 +9,7 @@ 如果不需要滚动,可以用view控件配置适当的layout参数作为列表控件。 列表视图中的列表项可以固定高度,也可以使用不同高度。请参考[变高列表项]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_vh.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_vh.xml) 列表视图控件的中可以有滚动条,也可以没有滚动条。 可以使用移动设备风格的滚动条,也可以使用桌面风格的滚动条。 @@ -36,7 +36,7 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_vh.xml > 更多用法请参考:[list\_view\_m.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml) 在c代码中使用函数list\_view\_create创建列表视图控件。如: diff --git a/docs/manual/mledit_t.md b/docs/manual/mledit_t.md index c25a991d68..3a81e877d9 100644 --- a/docs/manual/mledit_t.md +++ b/docs/manual/mledit_t.md @@ -13,7 +13,7 @@ ``` > 更多用法请参考:[mledit.xml]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml) 在c代码中使用函数mledit\_create创建多行编辑器控件。如: diff --git a/docs/manual/mutable_image_t.md b/docs/manual/mutable_image_t.md index 3b0fd4b140..1927cc87fb 100644 --- a/docs/manual/mutable_image_t.md +++ b/docs/manual/mutable_image_t.md @@ -19,7 +19,7 @@ >更多用法请参考: [mutable - image](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mutable_image.xml) + image](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mutable_image.xml) 在c代码中使用函数mutable\_image\_create创建mutable图片控件。如: diff --git a/docs/manual/overlay_t.md b/docs/manual/overlay_t.md index ac97664a3c..8c521d7d16 100644 --- a/docs/manual/overlay_t.md +++ b/docs/manual/overlay_t.md @@ -19,7 +19,7 @@ ``` > - 更多用法请参考:[overlay.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + 更多用法请参考:[overlay.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) 在c代码中使用函数overlay\_create创建窗口。如: @@ -39,7 +39,7 @@ ``` > 更多用法请参考:[theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L0) ---------------------------------- ### 函数 diff --git a/docs/manual/pages_t.md b/docs/manual/pages_t.md index 591c3b23de..1afe3e3938 100644 --- a/docs/manual/pages_t.md +++ b/docs/manual/pages_t.md @@ -24,7 +24,7 @@ ``` > 更多用法请参考: - [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) ---------------------------------- diff --git a/docs/manual/popup_t.md b/docs/manual/popup_t.md index 23b213a368..a190a64a3c 100644 --- a/docs/manual/popup_t.md +++ b/docs/manual/popup_t.md @@ -23,7 +23,7 @@ ``` > - 更多用法请参考:[popup](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + 更多用法请参考:[popup](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) 在c代码中使用函数popup\_create创建弹出窗口。如: @@ -47,7 +47,7 @@ ``` > 更多用法请参考:[theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L324) ---------------------------------- ### 函数 diff --git a/docs/manual/progress_bar_t.md b/docs/manual/progress_bar_t.md index 5f65b0bd25..3f181c85c1 100644 --- a/docs/manual/progress_bar_t.md +++ b/docs/manual/progress_bar_t.md @@ -16,7 +16,7 @@ ``` > 更多用法请参考: - [basic demo](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/basic.xml) + [basic demo](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml) 在c代码中使用函数progress\_bar\_create创建进度条控件。如: @@ -37,7 +37,7 @@ > 更多用法请参考: [theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L183) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L183) ---------------------------------- diff --git a/docs/manual/progress_circle_t.md b/docs/manual/progress_circle_t.md index 79d05dd90a..065f17e803 100644 --- a/docs/manual/progress_circle_t.md +++ b/docs/manual/progress_circle_t.md @@ -13,7 +13,7 @@ ``` > 更多用法请参考: - [progress_circle.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/progress_circle.xml) + [progress_circle.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/progress_circle.xml) 在c代码中使用函数progress\_circle\_create创建进度圆环控件。如: @@ -37,7 +37,7 @@ > 更多用法请参考: [theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L467) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L467) ---------------------------------- diff --git a/docs/manual/rich_text_t.md b/docs/manual/rich_text_t.md index 62685d446f..51fa261336 100644 --- a/docs/manual/rich_text_t.md +++ b/docs/manual/rich_text_t.md @@ -15,7 +15,7 @@ > > 更多用法请参考: - [rich_text.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/rich_text.xml) + [rich_text.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/rich_text.xml) 在c代码中使用函数rich\_text\_create创建图文混排控件。如: diff --git a/docs/manual/scroll_bar_t.md b/docs/manual/scroll_bar_t.md index 0afe159c16..712f8660dc 100644 --- a/docs/manual/scroll_bar_t.md +++ b/docs/manual/scroll_bar_t.md @@ -20,7 +20,7 @@ ``` > 更多用法请参考:[list\_view\_m.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml) 在c代码中使用函数scroll\_bar\_create创建列表项控件。如: @@ -37,7 +37,7 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) ``` > 更多用法请参考:[theme default]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L350) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L350) ---------------------------------- diff --git a/docs/manual/scroll_view_t.md b/docs/manual/scroll_view_t.md index 6a1da0c0c4..9f472aa76b 100644 --- a/docs/manual/scroll_view_t.md +++ b/docs/manual/scroll_view_t.md @@ -25,7 +25,7 @@ > 滚动视图一般作为列表视图的子控件使用。 > 更多用法请参考:[list\_view\_m.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml) 在c代码中使用函数scroll\_view\_create创建列表视图控件。如: diff --git a/docs/manual/slide_indicator_t.md b/docs/manual/slide_indicator_t.md index 8e77b401dd..07a1765b79 100644 --- a/docs/manual/slide_indicator_t.md +++ b/docs/manual/slide_indicator_t.md @@ -18,7 +18,7 @@ ``` > 更多用法请参考:[slide\_view.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/slide_view.xml) 在c代码中使用函数slide\_indicator\_create创建指示器控件。如: @@ -33,7 +33,7 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml) ``` > 更多用法请参考:[theme default]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L350) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L350) ---------------------------------- diff --git a/docs/manual/slide_menu_t.md b/docs/manual/slide_menu_t.md index e106a392b5..6623e7163f 100644 --- a/docs/manual/slide_menu_t.md +++ b/docs/manual/slide_menu_t.md @@ -21,7 +21,7 @@ ``` > 更多用法请参考:[slide_menu.xml]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_menu.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/slide_menu.xml) 在c代码中使用函数slide\_menu\_create创建左右滑动菜单控件。如: @@ -61,7 +61,7 @@ ``` > 更多用法请参考:[theme default]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L493) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L493) ---------------------------------- diff --git a/docs/manual/slide_view_t.md b/docs/manual/slide_view_t.md index 3b099158d8..0e08ba6c6c 100644 --- a/docs/manual/slide_view_t.md +++ b/docs/manual/slide_view_t.md @@ -22,7 +22,7 @@ ``` > 更多用法请参考:[slide_view.xml]( -https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml) +https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/slide_view.xml) 在c代码中使用函数slide\_view\_create创建滑动视图控件。如: @@ -45,7 +45,7 @@ https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml) > 如果希望背景图片跟随滚动,请将背景图片设置到页面上,否则设置到slide\_view上。 > 更多用法请参考:[theme default]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L458) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L458) ---------------------------------- diff --git a/docs/manual/slider_t.md b/docs/manual/slider_t.md index 9a12bcc04d..6f70572885 100644 --- a/docs/manual/slider_t.md +++ b/docs/manual/slider_t.md @@ -15,7 +15,7 @@ ``` > 更多用法请参考: - [basic](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/basic.xml) + [basic](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml) 在c代码中使用函数slider\_create创建滑块控件。如: @@ -40,7 +40,7 @@ > 更多用法请参考: [theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L179) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L179) ---------------------------------- diff --git a/docs/manual/spin_box_t.md b/docs/manual/spin_box_t.md index 06d659697b..ad8984cb2f 100644 --- a/docs/manual/spin_box_t.md +++ b/docs/manual/spin_box_t.md @@ -18,7 +18,7 @@ ``` > - 更多用法请参考:[spin_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/spinbox.xml) + 更多用法请参考:[spin_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/spinbox.xml) 在c代码中使用函数spin_box\_create创建spinbox控件。如: @@ -49,7 +49,7 @@ ``` > 更多用法请参考:[theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L128) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L128) ---------------------------------- diff --git a/docs/manual/svg_image_t.md b/docs/manual/svg_image_t.md index 29fc85a6e0..544ebb2b7f 100644 --- a/docs/manual/svg_image_t.md +++ b/docs/manual/svg_image_t.md @@ -13,7 +13,7 @@ ``` >更多用法请参考:[svg image]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/svg_image.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/svg_image.xml) 在c代码中使用函数svg\_image\_create创建SVG图片控件。如: @@ -38,7 +38,7 @@ ``` > 更多用法请参考:[theme default]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml) ---------------------------------- diff --git a/docs/manual/switch_t.md b/docs/manual/switch_t.md index b1e13af81c..8635345bf1 100644 --- a/docs/manual/switch_t.md +++ b/docs/manual/switch_t.md @@ -13,7 +13,7 @@ ``` > 更多用法请参考:[switch.xml]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/switch.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/switch.xml) 在c代码中使用函数switch\_create创建开关控件。如: @@ -34,7 +34,7 @@ ``` > 更多用法请参考:[theme default]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L452) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L452) ---------------------------------- diff --git a/docs/manual/system_bar_t.md b/docs/manual/system_bar_t.md index 39c1e335db..09b7ab4b61 100644 --- a/docs/manual/system_bar_t.md +++ b/docs/manual/system_bar_t.md @@ -29,7 +29,7 @@ system\_bar\_t是[window\_base\_t](window_base_t.md)的子类控件, ``` > 更多用法请参考: - [system_bar](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/system_bar.xml) + [system_bar](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/system_bar.xml) 在c代码中使用函数system\_bar\_create创建system\_bar窗口。如: @@ -50,7 +50,7 @@ system\_bar\_t是[window\_base\_t](window_base_t.md)的子类控件, ``` > 更多用法请参考: - [system_bar.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/system_bar.xml) + [system_bar.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/system_bar.xml) ---------------------------------- diff --git a/docs/manual/tab_button_group_t.md b/docs/manual/tab_button_group_t.md index 93a559404c..5942c4e6e0 100644 --- a/docs/manual/tab_button_group_t.md +++ b/docs/manual/tab_button_group_t.md @@ -20,7 +20,7 @@ ``` > 更多用法请参考: - [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) 可用通过style来设置控件的显示风格,如颜色等等。如: diff --git a/docs/manual/tab_button_t.md b/docs/manual/tab_button_t.md index b402bfbb60..0b5458bf34 100644 --- a/docs/manual/tab_button_t.md +++ b/docs/manual/tab_button_t.md @@ -21,7 +21,7 @@ 标签按钮一般放在标签按钮分组中,布局由标签按钮分组控件决定,不需要指定自己的布局参数和坐标。 > 更多用法请参考: - [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如: diff --git a/docs/manual/tab_control_t.md b/docs/manual/tab_control_t.md index 003e9b9d7f..0684503bb0 100644 --- a/docs/manual/tab_control_t.md +++ b/docs/manual/tab_control_t.md @@ -28,7 +28,7 @@ ``` > 更多用法请参考: - [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) ---------------------------------- diff --git a/docs/manual/text_selector_t.md b/docs/manual/text_selector_t.md index fddeff7f3a..0fc41c01c3 100644 --- a/docs/manual/text_selector_t.md +++ b/docs/manual/text_selector_t.md @@ -15,7 +15,7 @@ ``` > 更多用法请参考:[text\_selector.xml]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/text_selector.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/text_selector.xml) 在c代码中使用函数text\_selector\_create创建文本选择器控件。如: @@ -38,7 +38,7 @@ ``` > 更多用法请参考:[theme default]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L443) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L443) ---------------------------------- diff --git a/docs/manual/time_clock_t.md b/docs/manual/time_clock_t.md index ac15191358..ef2e760d85 100644 --- a/docs/manual/time_clock_t.md +++ b/docs/manual/time_clock_t.md @@ -14,7 +14,7 @@ ``` > 更多用法请参考:[time\_clock.xml]( - https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/time_clock.xml) + https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/time_clock.xml) 在c代码中使用函数time\_clock\_create创建模拟时钟控件。如: diff --git a/docs/manual/window_t.md b/docs/manual/window_t.md index d4fb0a9ff8..4054943ab5 100644 --- a/docs/manual/window_t.md +++ b/docs/manual/window_t.md @@ -17,7 +17,7 @@ ``` > - 更多用法请参考:[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + 更多用法请参考:[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) 在c代码中使用函数window\_create创建窗口。如: @@ -39,7 +39,7 @@ ``` > 更多用法请参考:[theme - default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0) + default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L0) ---------------------------------- ### 函数 diff --git a/src/base/dialog.h b/src/base/dialog.h index 3268258a7c..ddce246b13 100644 --- a/src/base/dialog.h +++ b/src/base/dialog.h @@ -110,7 +110,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + * [dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) * * > 完整C代码示例请参考: * @@ -128,7 +128,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme default] - * (https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324) + * (https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L324) * */ typedef struct _dialog_t { diff --git a/src/base/image_base.h b/src/base/image_base.h index 793b9e5f3c..d7a86e2f7f 100644 --- a/src/base/image_base.h +++ b/src/base/image_base.h @@ -47,9 +47,9 @@ BEGIN_C_DECLS * 如果需要显示文件系统中的图片,只需将图片名称换成实际的文件名,并加上"file://"前缀即可。如: * *``` - * - * - * + * + * + * * ``` */ typedef struct _image_base_t { diff --git a/src/base/window.h b/src/base/window.h index 3d392252ee..06f3be9238 100644 --- a/src/base/window.h +++ b/src/base/window.h @@ -45,7 +45,7 @@ BEGIN_C_DECLS * ``` * * > - * 更多用法请参考:[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + * 更多用法请参考:[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) * * 在c代码中使用函数window\_create创建窗口。如: * @@ -67,7 +67,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L0) */ typedef struct _window_t { window_base_t window; diff --git a/src/ext_widgets/canvas_widget/canvas_widget.h b/src/ext_widgets/canvas_widget/canvas_widget.h index fa448e5556..13eb6446f4 100644 --- a/src/ext_widgets/canvas_widget/canvas_widget.h +++ b/src/ext_widgets/canvas_widget/canvas_widget.h @@ -43,7 +43,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/vgcanvas.xml) + * [canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/vgcanvas.xml) * * 在c代码中使用函数canvas\_widget\_create创建画布控件。如: * diff --git a/src/ext_widgets/color_picker/color_picker.h b/src/ext_widgets/color_picker/color_picker.h index ec3df84828..b8852e5fd3 100644 --- a/src/ext_widgets/color_picker/color_picker.h +++ b/src/ext_widgets/color_picker/color_picker.h @@ -47,7 +47,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [color\_picker](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/color_picker.xml) + * [color\_picker](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker.xml) * * 其中的子控件必须按下列规则命名: * diff --git a/src/ext_widgets/features/draggable.h b/src/ext_widgets/features/draggable.h index 270fcc1170..395006f4da 100644 --- a/src/ext_widgets/features/draggable.h +++ b/src/ext_widgets/features/draggable.h @@ -51,7 +51,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/draggable.xml) + * [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/draggable.xml) * * 在c代码中使用函数draggable\_create创建按钮控件。如: * diff --git a/src/ext_widgets/gif_image/gif_image.h b/src/ext_widgets/gif_image/gif_image.h index 676f814394..a40e01a466 100644 --- a/src/ext_widgets/gif_image/gif_image.h +++ b/src/ext_widgets/gif_image/gif_image.h @@ -45,7 +45,7 @@ BEGIN_C_DECLS * ``` * * >更多用法请参考: - * [gif image](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/gif_image.xml) + * [gif image](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/gif_image.xml) * * 在c代码中使用函数gif\_image\_create创建GIF图片控件。如: * @@ -72,7 +72,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme default]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml) * */ typedef struct _gif_image_t { diff --git a/src/ext_widgets/guage/guage.h b/src/ext_widgets/guage/guage.h index 4819cdd115..ef063739dc 100644 --- a/src/ext_widgets/guage/guage.h +++ b/src/ext_widgets/guage/guage.h @@ -43,7 +43,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml) + * [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml) * * 在c代码中使用函数guage\_create创建表盘控件。如: * @@ -63,7 +63,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) + * [theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml) * */ typedef struct _guage_t { diff --git a/src/ext_widgets/guage/guage_pointer.h b/src/ext_widgets/guage/guage_pointer.h index e2abb96e29..42815bc7b0 100644 --- a/src/ext_widgets/guage/guage_pointer.h +++ b/src/ext_widgets/guage/guage_pointer.h @@ -45,7 +45,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml) + * [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml) * * 在c代码中使用函数guage\_pointer\_create创建仪表指针控件。如: * diff --git a/src/ext_widgets/image_animation/image_animation.h b/src/ext_widgets/image_animation/image_animation.h index 6d0924b718..f085463664 100644 --- a/src/ext_widgets/image_animation/image_animation.h +++ b/src/ext_widgets/image_animation/image_animation.h @@ -44,7 +44,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [image_animation.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/image_animation.xml) + * [image_animation.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_animation.xml) * * 在c代码中使用函数image\_animation\_create创建图片动画控件。如: * diff --git a/src/ext_widgets/image_value/image_value.h b/src/ext_widgets/image_value/image_value.h index a05d6887e8..90e3eb0038 100644 --- a/src/ext_widgets/image_value/image_value.h +++ b/src/ext_widgets/image_value/image_value.h @@ -49,7 +49,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [image\_value](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/image_value.xml) + * [image\_value](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_value.xml) * * 在c代码中使用函数image\_value\_create创建图片值控件。如: * diff --git a/src/ext_widgets/keyboard/keyboard.h b/src/ext_widgets/keyboard/keyboard.h index 696b7c3d7b..baea0dace2 100644 --- a/src/ext_widgets/keyboard/keyboard.h +++ b/src/ext_widgets/keyboard/keyboard.h @@ -66,7 +66,7 @@ BEGIN_C_DECLS * * * > 更多用法请参考: - * [kb_default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/kb_default.xml) + * [kb_default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/kb_default.xml) * */ diff --git a/src/ext_widgets/mledit/line_number.h b/src/ext_widgets/mledit/line_number.h index 3119fdafae..c59c5992c1 100644 --- a/src/ext_widgets/mledit/line_number.h +++ b/src/ext_widgets/mledit/line_number.h @@ -46,7 +46,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[mledit.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml) * * 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如: * @@ -60,7 +60,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme default]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L556) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L556) * */ typedef struct _line_number_t { diff --git a/src/ext_widgets/mledit/mledit.h b/src/ext_widgets/mledit/mledit.h index b2497e417c..75e73cf1c8 100644 --- a/src/ext_widgets/mledit/mledit.h +++ b/src/ext_widgets/mledit/mledit.h @@ -42,7 +42,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[mledit.xml]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml) * * 在c代码中使用函数mledit\_create创建多行编辑器控件。如: * diff --git a/src/ext_widgets/mutable_image/mutable_image.h b/src/ext_widgets/mutable_image/mutable_image.h index 00b13ed3cc..c48815ab6e 100644 --- a/src/ext_widgets/mutable_image/mutable_image.h +++ b/src/ext_widgets/mutable_image/mutable_image.h @@ -50,7 +50,7 @@ typedef ret_t (*mutable_image_prepare_image_t)(void* ctx, bitmap_t* image); * * >更多用法请参考: * [mutable - * image](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mutable_image.xml) + * image](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mutable_image.xml) * * 在c代码中使用函数mutable\_image\_create创建mutable图片控件。如: * diff --git a/src/ext_widgets/progress_circle/progress_circle.h b/src/ext_widgets/progress_circle/progress_circle.h index 9e36a5de57..1fa9646e93 100644 --- a/src/ext_widgets/progress_circle/progress_circle.h +++ b/src/ext_widgets/progress_circle/progress_circle.h @@ -41,7 +41,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [progress_circle.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/progress_circle.xml) + * [progress_circle.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/progress_circle.xml) * * 在c代码中使用函数progress\_circle\_create创建进度圆环控件。如: * @@ -65,7 +65,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L467) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L467) * */ typedef struct _progress_circle_t { diff --git a/src/ext_widgets/rich_text/rich_text.h b/src/ext_widgets/rich_text/rich_text.h index 0b0993e1e2..7095fe8c34 100644 --- a/src/ext_widgets/rich_text/rich_text.h +++ b/src/ext_widgets/rich_text/rich_text.h @@ -44,7 +44,7 @@ BEGIN_C_DECLS * > * * > 更多用法请参考: - * [rich_text.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/rich_text.xml) + * [rich_text.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/rich_text.xml) * * 在c代码中使用函数rich\_text\_create创建图文混排控件。如: * diff --git a/src/ext_widgets/scroll_label/hscroll_label.h b/src/ext_widgets/scroll_label/hscroll_label.h index 26fc733956..ed379a6919 100644 --- a/src/ext_widgets/scroll_label/hscroll_label.h +++ b/src/ext_widgets/scroll_label/hscroll_label.h @@ -42,7 +42,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[mledit.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml) * * 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如: * @@ -55,7 +55,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme default]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml) * */ typedef struct _hscroll_label_t { diff --git a/src/ext_widgets/scroll_view/list_item.h b/src/ext_widgets/scroll_view/list_item.h index dc4b140151..00e22a8734 100644 --- a/src/ext_widgets/scroll_view/list_item.h +++ b/src/ext_widgets/scroll_view/list_item.h @@ -53,7 +53,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[list\_view\_m.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml) * * 在c代码中使用函数list\_item\_create创建列表项控件。如: * @@ -74,7 +74,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme default]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L372) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L372) * */ typedef struct _list_item_t { diff --git a/src/ext_widgets/scroll_view/list_view.h b/src/ext_widgets/scroll_view/list_view.h index 2d9f34a740..f7522f6817 100644 --- a/src/ext_widgets/scroll_view/list_view.h +++ b/src/ext_widgets/scroll_view/list_view.h @@ -37,7 +37,7 @@ BEGIN_C_DECLS * 如果不需要滚动,可以用view控件配置适当的layout参数作为列表控件。 * * 列表视图中的列表项可以固定高度,也可以使用不同高度。请参考[变高列表项]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_vh.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_vh.xml) * * 列表视图控件的中可以有滚动条,也可以没有滚动条。 * 可以使用移动设备风格的滚动条,也可以使用桌面风格的滚动条。 @@ -64,7 +64,7 @@ BEGIN_C_DECLS * * * > 更多用法请参考:[list\_view\_m.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml) * * 在c代码中使用函数list\_view\_create创建列表视图控件。如: * diff --git a/src/ext_widgets/scroll_view/list_view_h.h b/src/ext_widgets/scroll_view/list_view_h.h index 85f29cb858..ed25329ded 100644 --- a/src/ext_widgets/scroll_view/list_view_h.h +++ b/src/ext_widgets/scroll_view/list_view_h.h @@ -49,7 +49,7 @@ BEGIN_C_DECLS * * * > 更多用法请参考:[list\_view\_h.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_h.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_h.xml) * * 在c代码中使用函数list\_view\_h\_create创建水平列表视图控件。如: * diff --git a/src/ext_widgets/scroll_view/scroll_bar.h b/src/ext_widgets/scroll_view/scroll_bar.h index e538c33bb1..39cbd88802 100644 --- a/src/ext_widgets/scroll_view/scroll_bar.h +++ b/src/ext_widgets/scroll_view/scroll_bar.h @@ -49,7 +49,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[list\_view\_m.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml) * * 在c代码中使用函数scroll\_bar\_create创建列表项控件。如: * @@ -66,7 +66,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme default]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L350) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L350) * */ typedef struct _scroll_bar_t { diff --git a/src/ext_widgets/scroll_view/scroll_view.h b/src/ext_widgets/scroll_view/scroll_view.h index 7a5d7e24fe..9df162f642 100644 --- a/src/ext_widgets/scroll_view/scroll_view.h +++ b/src/ext_widgets/scroll_view/scroll_view.h @@ -60,7 +60,7 @@ typedef ret_t (*scroll_view_on_scroll_to_t)(widget_t* widget, int32_t xoffset_en * > 滚动视图一般作为列表视图的子控件使用。 * * > 更多用法请参考:[list\_view\_m.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml) * * 在c代码中使用函数scroll\_view\_create创建列表视图控件。如: * diff --git a/src/ext_widgets/slide_menu/slide_menu.h b/src/ext_widgets/slide_menu/slide_menu.h index a48f922d9d..4070739b35 100644 --- a/src/ext_widgets/slide_menu/slide_menu.h +++ b/src/ext_widgets/slide_menu/slide_menu.h @@ -51,7 +51,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[slide_menu.xml]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_menu.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/slide_menu.xml) * * 在c代码中使用函数slide\_menu\_create创建左右滑动菜单控件。如: * @@ -91,7 +91,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme default]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L493) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L493) * */ typedef struct _slide_menu_t { diff --git a/src/ext_widgets/slide_view/slide_indicator.h b/src/ext_widgets/slide_view/slide_indicator.h index 55f4407384..0e1d81d064 100644 --- a/src/ext_widgets/slide_view/slide_indicator.h +++ b/src/ext_widgets/slide_view/slide_indicator.h @@ -79,7 +79,7 @@ typedef enum _indicator_default_paint_t { * ``` * * > 更多用法请参考:[slide\_view.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/slide_view.xml) * * 在c代码中使用函数slide\_indicator\_create创建指示器控件。如: * @@ -94,7 +94,7 @@ typedef enum _indicator_default_paint_t { * ``` * * > 更多用法请参考:[theme default]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L350) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L350) * */ typedef struct _slide_indicator_t { diff --git a/src/ext_widgets/slide_view/slide_view.h b/src/ext_widgets/slide_view/slide_view.h index 7f7f207f7c..4110a32295 100644 --- a/src/ext_widgets/slide_view/slide_view.h +++ b/src/ext_widgets/slide_view/slide_view.h @@ -51,7 +51,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[slide_view.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/slide_view.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/slide_view.xml) * * 在c代码中使用函数slide\_view\_create创建滑动视图控件。如: * @@ -74,7 +74,7 @@ BEGIN_C_DECLS * > 如果希望背景图片跟随滚动,请将背景图片设置到页面上,否则设置到slide\_view上。 * * > 更多用法请参考:[theme default]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L458) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L458) * */ typedef struct _slide_view_t { diff --git a/src/ext_widgets/svg_image/svg_image.h b/src/ext_widgets/svg_image/svg_image.h index 668151a610..2878d8e83a 100644 --- a/src/ext_widgets/svg_image/svg_image.h +++ b/src/ext_widgets/svg_image/svg_image.h @@ -42,7 +42,7 @@ BEGIN_C_DECLS * ``` * * >更多用法请参考:[svg image]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/svg_image.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/svg_image.xml) * * 在c代码中使用函数svg\_image\_create创建SVG图片控件。如: * @@ -67,7 +67,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme default]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml) * */ typedef struct _svg_image_t { diff --git a/src/ext_widgets/switch/switch.h b/src/ext_widgets/switch/switch.h index 6197735663..f04396c117 100644 --- a/src/ext_widgets/switch/switch.h +++ b/src/ext_widgets/switch/switch.h @@ -43,7 +43,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[switch.xml]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/switch.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/switch.xml) * * 在c代码中使用函数switch\_create创建开关控件。如: * @@ -64,7 +64,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme default]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L452) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L452) * */ typedef struct _switch_t { diff --git a/src/ext_widgets/text_selector/text_selector.h b/src/ext_widgets/text_selector/text_selector.h index 3bdc6dd696..a104c46b41 100644 --- a/src/ext_widgets/text_selector/text_selector.h +++ b/src/ext_widgets/text_selector/text_selector.h @@ -51,7 +51,7 @@ typedef struct _text_selector_option_t { * ``` * * > 更多用法请参考:[text\_selector.xml]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/text_selector.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/text_selector.xml) * * 在c代码中使用函数text\_selector\_create创建文本选择器控件。如: * @@ -74,7 +74,7 @@ typedef struct _text_selector_option_t { * ``` * * > 更多用法请参考:[theme default]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L443) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L443) * */ typedef struct _text_selector_t { diff --git a/src/ext_widgets/time_clock/digit_clock.h b/src/ext_widgets/time_clock/digit_clock.h index f2da02e22a..f794ef0bd5 100644 --- a/src/ext_widgets/time_clock/digit_clock.h +++ b/src/ext_widgets/time_clock/digit_clock.h @@ -42,7 +42,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[digit\_clock.xml]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/digit_clock.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/digit_clock.xml) * * 在c代码中使用函数digit\_clock\_create创建数字时钟控件。如: * @@ -63,7 +63,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme default]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L138) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L138) * */ typedef struct _digit_clock_t { diff --git a/src/ext_widgets/time_clock/time_clock.h b/src/ext_widgets/time_clock/time_clock.h index 85f3de6304..e6ce5e6ba2 100644 --- a/src/ext_widgets/time_clock/time_clock.h +++ b/src/ext_widgets/time_clock/time_clock.h @@ -42,7 +42,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[time\_clock.xml]( - * https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/time_clock.xml) + * https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/time_clock.xml) * * 在c代码中使用函数time\_clock\_create创建模拟时钟控件。如: * diff --git a/src/widgets/button.h b/src/widgets/button.h index 4d818b1305..8ca7c8c10f 100644 --- a/src/widgets/button.h +++ b/src/widgets/button.h @@ -45,7 +45,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/button.xml) + * [button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/button.xml) * * 在c代码中使用函数button\_create创建按钮控件。如: * @@ -73,7 +73,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L31) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L31) * */ typedef struct _button_t { diff --git a/src/widgets/calibration_win.h b/src/widgets/calibration_win.h index e2dfbec707..900f486b6e 100644 --- a/src/widgets/calibration_win.h +++ b/src/widgets/calibration_win.h @@ -55,7 +55,7 @@ typedef ret_t (*calibration_win_on_click_t)(void* ctx, uint32_t index, point_t p * ``` * * > 更多用法请参考: - * [window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/calibration_win.xml) + * [window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/calibration_win.xml) * * 在c代码中使用函数calibration\_win\_create创建窗口。如: * diff --git a/src/widgets/check_button.h b/src/widgets/check_button.h index 285ccff9f0..5575320d8d 100644 --- a/src/widgets/check_button.h +++ b/src/widgets/check_button.h @@ -47,7 +47,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/basic.xml) + * [button.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml) * * 在c代码中使用函数check\_button\_create创建多选按钮控件。如: * @@ -83,7 +83,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L227) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L227) * */ typedef struct _check_button_t { diff --git a/src/widgets/color_tile.h b/src/widgets/color_tile.h index ca0a5ab830..ab770a693a 100644 --- a/src/widgets/color_tile.h +++ b/src/widgets/color_tile.h @@ -45,7 +45,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [color_tile](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/color_picker_rgb.xml) + * [color_tile](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker_rgb.xml) * * 在c代码中使用函数color_tile\_create创建色块控件。如: * diff --git a/src/widgets/combo_box.h b/src/widgets/combo_box.h index 1397bd04ec..bb2aa70d24 100644 --- a/src/widgets/combo_box.h +++ b/src/widgets/combo_box.h @@ -75,7 +75,7 @@ typedef widget_t* (*combo_box_custom_open_popup_t)(widget_t* combobox); * ``` * * > - * 更多用法请参考:[combo_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/combo_box.xml) + * 更多用法请参考:[combo_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/combo_box.xml) * * 在c代码中使用函数combo\_box\_create创建下拉列表控件。如: * @@ -108,7 +108,7 @@ typedef widget_t* (*combo_box_custom_open_popup_t)(widget_t* combobox); * ``` * * > 更多用法请参考:[theme - *default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L422) + *default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L422) * */ typedef struct _combo_box_t { diff --git a/src/widgets/edit.h b/src/widgets/edit.h index 81d8b80e0d..57bcebf7cb 100644 --- a/src/widgets/edit.h +++ b/src/widgets/edit.h @@ -60,7 +60,7 @@ typedef bool_t (*edit_is_valid_char_t)(widget_t* widget, wchar_t c); * > XXX:需要在min/max/step之前设置input\_type。 * * >更多用法请参考: - * [edit.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/edit.xml) + * [edit.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/edit.xml) * * 在c代码中使用函数edit\_create创建编辑器控件。如: * @@ -88,7 +88,7 @@ typedef bool_t (*edit_is_valid_char_t)(widget_t* widget, wchar_t c); * * > 更多用法请参考: * [theme - *default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L104) + *default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L104) * */ typedef struct _edit_t { diff --git a/src/widgets/image.h b/src/widgets/image.h index 4a927318d7..2bcf998d0e 100644 --- a/src/widgets/image.h +++ b/src/widgets/image.h @@ -52,7 +52,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [image.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/images.xml) + * [image.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/images.xml) * * 在c代码中使用函数image\_create创建图片控件。如: * @@ -87,7 +87,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L313) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L313) * */ typedef struct _image_t { diff --git a/src/widgets/label.h b/src/widgets/label.h index ee97f2a817..08a85ec118 100644 --- a/src/widgets/label.h +++ b/src/widgets/label.h @@ -46,7 +46,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[label.xml]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/label.xml) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/label.xml) * * 在c代码中使用函数label\_create创建文本控件。如: * @@ -70,7 +70,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme default]( - *https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L144) + *https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L144) * */ typedef struct _label_t { diff --git a/src/widgets/overlay.h b/src/widgets/overlay.h index a80cf63ca2..6877adbf2b 100644 --- a/src/widgets/overlay.h +++ b/src/widgets/overlay.h @@ -47,7 +47,7 @@ BEGIN_C_DECLS * ``` * * > - * 更多用法请参考:[overlay.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + * 更多用法请参考:[overlay.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) * * 在c代码中使用函数overlay\_create创建窗口。如: * @@ -67,7 +67,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L0) */ typedef struct _overlay_t { window_base_t overlay; diff --git a/src/widgets/pages.h b/src/widgets/pages.h index 491f8689a4..9f317b711d 100644 --- a/src/widgets/pages.h +++ b/src/widgets/pages.h @@ -52,7 +52,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + * [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) * */ typedef struct _pages_t { diff --git a/src/widgets/popup.h b/src/widgets/popup.h index 260e695afe..26710d690f 100644 --- a/src/widgets/popup.h +++ b/src/widgets/popup.h @@ -51,7 +51,7 @@ BEGIN_C_DECLS * ``` * * > - * 更多用法请参考:[popup](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + * 更多用法请参考:[popup](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) * * 在c代码中使用函数popup\_create创建弹出窗口。如: * @@ -75,7 +75,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L324) */ typedef struct _popup_t { window_base_t window; diff --git a/src/widgets/progress_bar.h b/src/widgets/progress_bar.h index afab0e6de3..9991e79ef3 100644 --- a/src/widgets/progress_bar.h +++ b/src/widgets/progress_bar.h @@ -44,7 +44,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [basic demo](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/basic.xml) + * [basic demo](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml) * * 在c代码中使用函数progress\_bar\_create创建进度条控件。如: * @@ -65,7 +65,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L183) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L183) * */ typedef struct _progress_bar_t { diff --git a/src/widgets/slider.h b/src/widgets/slider.h index 810b66f7bd..ab2f5a243e 100644 --- a/src/widgets/slider.h +++ b/src/widgets/slider.h @@ -43,7 +43,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [basic](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/basic.xml) + * [basic](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml) * * 在c代码中使用函数slider\_create创建滑块控件。如: * @@ -68,7 +68,7 @@ BEGIN_C_DECLS * * > 更多用法请参考: * [theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L179) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L179) * */ typedef struct _slider_t { diff --git a/src/widgets/spin_box.h b/src/widgets/spin_box.h index 286a3d2090..ef33afe99d 100644 --- a/src/widgets/spin_box.h +++ b/src/widgets/spin_box.h @@ -46,7 +46,7 @@ BEGIN_C_DECLS * ``` * * > - * 更多用法请参考:[spin_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/spinbox.xml) + * 更多用法请参考:[spin_box.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/spinbox.xml) * * 在c代码中使用函数spin_box\_create创建spinbox控件。如: * @@ -77,7 +77,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考:[theme - * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L128) + * default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L128) * */ typedef edit_t spin_box_t; diff --git a/src/widgets/system_bar.h b/src/widgets/system_bar.h index 726516e292..6318706b1c 100644 --- a/src/widgets/system_bar.h +++ b/src/widgets/system_bar.h @@ -57,7 +57,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [system_bar](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/system_bar.xml) + * [system_bar](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/system_bar.xml) * * 在c代码中使用函数system\_bar\_create创建system\_bar窗口。如: * @@ -78,7 +78,7 @@ BEGIN_C_DECLS * ``` * *> 更多用法请参考: - * [system_bar.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/system_bar.xml) + * [system_bar.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/system_bar.xml) * */ typedef struct _system_bar_t { diff --git a/src/widgets/tab_button.h b/src/widgets/tab_button.h index cdb4f81697..5d42ef81b7 100644 --- a/src/widgets/tab_button.h +++ b/src/widgets/tab_button.h @@ -49,7 +49,7 @@ BEGIN_C_DECLS * 标签按钮一般放在标签按钮分组中,布局由标签按钮分组控件决定,不需要指定自己的布局参数和坐标。 * * > 更多用法请参考: - * [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + * [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) * * 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如: * diff --git a/src/widgets/tab_button_group.h b/src/widgets/tab_button_group.h index c4f4f5f611..5d2f4be716 100644 --- a/src/widgets/tab_button_group.h +++ b/src/widgets/tab_button_group.h @@ -49,7 +49,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + * [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) * * 可用通过style来设置控件的显示风格,如颜色等等。如: * diff --git a/src/widgets/tab_control.h b/src/widgets/tab_control.h index 3fe268d3c1..386962307e 100644 --- a/src/widgets/tab_control.h +++ b/src/widgets/tab_control.h @@ -62,7 +62,7 @@ BEGIN_C_DECLS * ``` * * > 更多用法请参考: - * [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/) + * [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/) * */ typedef struct _tab_control_t { diff --git a/tools/idl_gen/idl.json b/tools/idl_gen/idl.json index 1108c61155..852c3c474e 100644 --- a/tools/idl_gen/idl.json +++ b/tools/idl_gen/idl.json @@ -24348,7 +24348,7 @@ "events": [], "properties": [], "header": "widgets/tab_control.h", - "desc": " 标签控件。\r\n\r\n 它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。\r\n\r\n 标签控件通常会包含一个pages控件和一个tab\\_button\\_group控件。\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n pages_t -> tab_control_t[arrowhead = \"ediamond\"]\r\n tab_button_group_t -> tab_control_t[arrowhead = \"ediamond\"]\r\n view_t ->pages_t[arrowhead = \"ediamond\"]\r\n tab_button_t -> tab_button_group_t[arrowhead = \"ediamond\"]\r\n ```\r\n\r\n tab\\_control\\_t是[widget\\_t](widget_t.md)的子类控件,\r\n widget\\_t的函数均适用于tab\\_control\\_t控件。\r\n\r\n 在xml中使用\"tab\\_control\"标签创建标签控件。如:\r\n\r\n ```xml\r\n \r\n \r\n ...\r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n", + "desc": " 标签控件。\r\n\r\n 它本身不提供布局功能,仅提供具有语义的标签,让xml更具有可读性。\r\n\r\n 标签控件通常会包含一个pages控件和一个tab\\_button\\_group控件。\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n pages_t -> tab_control_t[arrowhead = \"ediamond\"]\r\n tab_button_group_t -> tab_control_t[arrowhead = \"ediamond\"]\r\n view_t ->pages_t[arrowhead = \"ediamond\"]\r\n tab_button_t -> tab_button_group_t[arrowhead = \"ediamond\"]\r\n ```\r\n\r\n tab\\_control\\_t是[widget\\_t](widget_t.md)的子类控件,\r\n widget\\_t的函数均适用于tab\\_control\\_t控件。\r\n\r\n 在xml中使用\"tab\\_control\"标签创建标签控件。如:\r\n\r\n ```xml\r\n \r\n \r\n ...\r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)\r\n\r\n", "name": "tab_control_t", "parent": "widget_t", "annotation": { @@ -24543,7 +24543,7 @@ } ], "header": "widgets/tab_button.h", - "desc": " 标签按钮控件。\r\n\r\n 标签按钮有点类似单选按钮,但点击标签按钮之后会自动切换当前的标签页。\r\n\r\n tab\\_button\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于tab\\_button\\_t控件。\r\n\r\n 在xml中使用\"tab\\_button\"标签创建标签按钮控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n ```\r\n\r\n 标签按钮一般放在标签按钮分组中,布局由标签按钮分组控件决定,不需要指定自己的布局参数和坐标。\r\n\r\n > 更多用法请参考:\r\n [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n", + "desc": " 标签按钮控件。\r\n\r\n 标签按钮有点类似单选按钮,但点击标签按钮之后会自动切换当前的标签页。\r\n\r\n tab\\_button\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于tab\\_button\\_t控件。\r\n\r\n 在xml中使用\"tab\\_button\"标签创建标签按钮控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n ```\r\n\r\n 标签按钮一般放在标签按钮分组中,布局由标签按钮分组控件决定,不需要指定自己的布局参数和坐标。\r\n\r\n > 更多用法请参考:\r\n [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n", "name": "tab_button_t", "parent": "widget_t", "annotation": { @@ -24691,7 +24691,7 @@ } ], "header": "widgets/tab_button_group.h", - "desc": " 标签按钮分组控件。\r\n\r\n 一个简单的容器,主要用于对标签按钮进行布局和管理。\r\n\r\n tab\\_button\\_group\\_t是[widget\\_t](widget_t.md)的子类控件,\r\n widget\\_t的函数均适用于tab\\_button\\_group\\_t控件。\r\n\r\n 在xml中使用\"tab\\_button\\_group\"标签创建标签按钮分组控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n 可用通过style来设置控件的显示风格,如颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n", + "desc": " 标签按钮分组控件。\r\n\r\n 一个简单的容器,主要用于对标签按钮进行布局和管理。\r\n\r\n tab\\_button\\_group\\_t是[widget\\_t](widget_t.md)的子类控件,\r\n widget\\_t的函数均适用于tab\\_button\\_group\\_t控件。\r\n\r\n 在xml中使用\"tab\\_button\\_group\"标签创建标签按钮分组控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)\r\n\r\n 可用通过style来设置控件的显示风格,如颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n", "name": "tab_button_group_t", "parent": "widget_t", "annotation": { @@ -24999,7 +24999,7 @@ } ], "header": "widgets/slider.h", - "desc": " 滑块控件。\r\n\r\n slider\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于slider\\_t控件。\r\n\r\n 在xml中使用\"slider\"标签创建滑块控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [basic](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/basic.xml)\r\n\r\n 在c代码中使用函数slider\\_create创建滑块控件。如:\r\n\r\n ```c\r\n widget_t* slider = slider_create(win, 10, 10, 200, 30);\r\n widget_on(slider, EVT_VALUE_CHANGED, on_changed, NULL);\r\n widget_on(slider, EVT_VALUE_CHANGING, on_changing, NULL);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [slider demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/slider.c)\r\n\r\n 可用通过style来设置控件的显示风格,如图片和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L179)\r\n\r\n", + "desc": " 滑块控件。\r\n\r\n slider\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于slider\\_t控件。\r\n\r\n 在xml中使用\"slider\"标签创建滑块控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [basic](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml)\r\n\r\n 在c代码中使用函数slider\\_create创建滑块控件。如:\r\n\r\n ```c\r\n widget_t* slider = slider_create(win, 10, 10, 200, 30);\r\n widget_on(slider, EVT_VALUE_CHANGED, on_changed, NULL);\r\n widget_on(slider, EVT_VALUE_CHANGING, on_changing, NULL);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [slider demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/slider.c)\r\n\r\n 可用通过style来设置控件的显示风格,如图片和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L179)\r\n\r\n", "name": "slider_t", "parent": "widget_t", "annotation": { @@ -25323,7 +25323,7 @@ } ], "header": "widgets/progress_bar.h", - "desc": " 进度条控件。\r\n\r\n 进度条控件可以水平显示也可以垂直显示,由vertical属性决定。\r\n\r\n progress\\_bar\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于progress\\_bar\\_t控件。\r\n\r\n 在xml中使用\"progress\\_bar\"标签创建进度条控件。如:\r\n\r\n ```xml\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [basic demo](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/basic.xml)\r\n\r\n 在c代码中使用函数progress\\_bar\\_create创建进度条控件。如:\r\n\r\n ```c\r\n widget_t* progress_bar = progress_bar_create(win, 10, 10, 128, 30);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [progress_bar demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/progress_bar.c)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L183)\r\n\r\n", + "desc": " 进度条控件。\r\n\r\n 进度条控件可以水平显示也可以垂直显示,由vertical属性决定。\r\n\r\n progress\\_bar\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于progress\\_bar\\_t控件。\r\n\r\n 在xml中使用\"progress\\_bar\"标签创建进度条控件。如:\r\n\r\n ```xml\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [basic demo](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/basic.xml)\r\n\r\n 在c代码中使用函数progress\\_bar\\_create创建进度条控件。如:\r\n\r\n ```c\r\n widget_t* progress_bar = progress_bar_create(win, 10, 10, 128, 30);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [progress_bar demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/progress_bar.c)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L183)\r\n\r\n", "name": "progress_bar_t", "parent": "widget_t", "annotation": { @@ -25471,7 +25471,7 @@ } ], "header": "widgets/popup.h", - "desc": " 弹出窗口。\r\n\r\n 弹出窗口是一种特殊的窗口,大小和位置可以自由设置,主要用来实现右键菜单和combo\\_box的下列列表等功能。\r\n\r\n popup\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于popup\\_t控件。\r\n\r\n 在xml中使用\"popup\"标签创建弹出窗口。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ```\r\n\r\n >\r\n 更多用法请参考:[popup](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n 在c代码中使用函数popup\\_create创建弹出窗口。如:\r\n\r\n ```c\r\n widget_t* win = popup_create(NULL, 0, 0, w, h);\r\n popup_set_close_when_click_outside(win, TRUE);\r\n ```\r\n\r\n > 创建之后,和使用普通窗口是一样的。\r\n\r\n > 完整示例请参考:[combo_box.c](https://github.com/zlgopen/awtk/src/widgets/combo_box.c)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324)\r\n", + "desc": " 弹出窗口。\r\n\r\n 弹出窗口是一种特殊的窗口,大小和位置可以自由设置,主要用来实现右键菜单和combo\\_box的下列列表等功能。\r\n\r\n popup\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于popup\\_t控件。\r\n\r\n 在xml中使用\"popup\"标签创建弹出窗口。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ```\r\n\r\n >\r\n 更多用法请参考:[popup](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)\r\n\r\n 在c代码中使用函数popup\\_create创建弹出窗口。如:\r\n\r\n ```c\r\n widget_t* win = popup_create(NULL, 0, 0, w, h);\r\n popup_set_close_when_click_outside(win, TRUE);\r\n ```\r\n\r\n > 创建之后,和使用普通窗口是一样的。\r\n\r\n > 完整示例请参考:[combo_box.c](https://github.com/zlgopen/awtk/src/widgets/combo_box.c)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L324)\r\n", "name": "popup_t", "parent": "widget_t", "annotation": { @@ -25618,7 +25618,7 @@ } ], "header": "widgets/pages.h", - "desc": " 页面管理控件。\r\n\r\n 只有一个Page处于active状态,处于active状态的Page才能显示并接收事件。\r\n 常用于实现标签控件中的页面管理。\r\n\r\n pages\\_t是[widget\\_t](widget_t.md)的子类控件,\r\n widget\\_t的函数均适用于pages\\_t控件。\r\n\r\n 在xml中使用\"pages\"标签创建页面管理控件。如:\r\n\r\n ```xml\r\n \r\n \r\n ...\r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n", + "desc": " 页面管理控件。\r\n\r\n 只有一个Page处于active状态,处于active状态的Page才能显示并接收事件。\r\n 常用于实现标签控件中的页面管理。\r\n\r\n pages\\_t是[widget\\_t](widget_t.md)的子类控件,\r\n widget\\_t的函数均适用于pages\\_t控件。\r\n\r\n 在xml中使用\"pages\"标签创建页面管理控件。如:\r\n\r\n ```xml\r\n \r\n \r\n ...\r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [tab control](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)\r\n\r\n", "name": "pages_t", "parent": "widget_t", "annotation": { @@ -25693,7 +25693,7 @@ "events": [], "properties": [], "header": "widgets/overlay.h", - "desc": " overlay窗口。\r\n\r\n overlay窗口有点类似于非模态的dialog,但是它位置和大小是完全自由的,窗口管理器不会对它做任何限制。\r\n\r\n 如果overlay窗口有透明或半透效果,则不支持窗口动画,但可以通过移动窗口位置来实现类似动画的效果。\r\n\r\n overlay\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于overlay\\_t控件。\r\n\r\n 在xml中使用\"overlay\"标签创建窗口。需要指定坐标和大小,可以指定主题和动画名称。如:\r\n\r\n ```xml\r\n \r\n ...\r\n \r\n ```\r\n\r\n >\r\n 更多用法请参考:[overlay.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n 在c代码中使用函数overlay\\_create创建窗口。如:\r\n\r\n ```c\r\n widget_t* overlay = overlay_create(NULL, 100, 100, 200, 300);\r\n ```\r\n\r\n > 完整示例请参考:[overlay\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/)\r\n\r\n 可用通过style来设置窗口的风格,如背景颜色或图片等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0)\r\n", + "desc": " overlay窗口。\r\n\r\n overlay窗口有点类似于非模态的dialog,但是它位置和大小是完全自由的,窗口管理器不会对它做任何限制。\r\n\r\n 如果overlay窗口有透明或半透效果,则不支持窗口动画,但可以通过移动窗口位置来实现类似动画的效果。\r\n\r\n overlay\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于overlay\\_t控件。\r\n\r\n 在xml中使用\"overlay\"标签创建窗口。需要指定坐标和大小,可以指定主题和动画名称。如:\r\n\r\n ```xml\r\n \r\n ...\r\n \r\n ```\r\n\r\n >\r\n 更多用法请参考:[overlay.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)\r\n\r\n 在c代码中使用函数overlay\\_create创建窗口。如:\r\n\r\n ```c\r\n widget_t* overlay = overlay_create(NULL, 100, 100, 200, 300);\r\n ```\r\n\r\n > 完整示例请参考:[overlay\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/)\r\n\r\n 可用通过style来设置窗口的风格,如背景颜色或图片等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L0)\r\n", "name": "overlay_t", "parent": "widget_t", "annotation": { @@ -25844,7 +25844,7 @@ } ], "header": "widgets/label.h", - "desc": "\r\n 文本控件。用于显示一行或多行文本。\r\n\r\n 文本控件不会根据文本的长度自动换行,只有文本内容包含换行符时才会换行。\r\n\r\n 如需自动换行请使用[rich\\_text\\_t](rich_text_t.md)控件。\r\n\r\n label\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于label\\_t控件。\r\n\r\n 在xml中使用\"label\"标签创建文本控件。如:\r\n\r\n ```xml\r\n

    \r\n \r\n \r\n \r\n ```\r\n\r\n 如果你不需要对话框的标题,可以这样写:\r\n\r\n ```xml\r\n \r\n \r\n ```\r\n\r\n 打开非模态对话框时,其用法与普通窗口一样。打开非模态对话框时,还需要调用dialog\\_modal。\r\n\r\n ```c\r\n widget_t* dlg = dialog_open(name);\r\n\r\n ret = dialog_modal(dlg);\r\n ```\r\n\r\n 关闭模态对话框用dialog\\_quit\r\n\r\n ```c\r\n static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {\r\n widget_t* win = widget_get_window(WIDGET(evt->target));\r\n int code = (char*)ctx - (char*)NULL;\r\n\r\n dialog_quit(win, code);\r\n\r\n return RET_OK;\r\n }\r\n ```\r\n\r\n 关闭非模态对话框用window\\_close。\r\n\r\n ```c\r\n static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {\r\n widget_t* win = widget_get_window(WIDGET(evt->target));\r\n int code = (char*)ctx - (char*)NULL;\r\n\r\n window_close(win);\r\n\r\n return RET_OK;\r\n }\r\n ```\r\n\r\n > 更多用法请参考:\r\n [dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n > 完整C代码示例请参考:\r\n\r\n * [非模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog.c)\r\n\r\n * [模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog_modal.c)\r\n\r\n可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default]\r\n (https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L324)\r\n\r\n", + "desc": "\r\n 对话框。 对话框是一种特殊的窗口,大小和位置可以自由设置。\r\n\r\n AWTK中的对话框可以是模态的,也可以是非模态的。\r\n\r\n 如果dialog有透明或半透效果则不支持窗口动画。\r\n\r\n> 由于浏览器中无法实现主循环嵌套,因此无法实现模态对话框。\r\n 如果希望自己写的AWTK应用程序可以在浏览器(包括各种小程序)中运行或演示,\r\n 请避免使用模态对话框。\r\n\r\n 对话框通常由对话框标题和对话框客户区两部分组成:\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n dialog_title_t -> dialog_t[arrowhead = \"ediamond\"]\r\n dialog_client_t -> dialog_t[arrowhead = \"ediamond\"]\r\n ```\r\n\r\n dialog\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于dialog\\_t控件。\r\n\r\n 在xml中使用\"dialog\"标签创建对话框。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n ```\r\n\r\n 如果你不需要对话框的标题,可以这样写:\r\n\r\n ```xml\r\n \r\n \r\n ```\r\n\r\n 打开非模态对话框时,其用法与普通窗口一样。打开非模态对话框时,还需要调用dialog\\_modal。\r\n\r\n ```c\r\n widget_t* dlg = dialog_open(name);\r\n\r\n ret = dialog_modal(dlg);\r\n ```\r\n\r\n 关闭模态对话框用dialog\\_quit\r\n\r\n ```c\r\n static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {\r\n widget_t* win = widget_get_window(WIDGET(evt->target));\r\n int code = (char*)ctx - (char*)NULL;\r\n\r\n dialog_quit(win, code);\r\n\r\n return RET_OK;\r\n }\r\n ```\r\n\r\n 关闭非模态对话框用window\\_close。\r\n\r\n ```c\r\n static ret_t on_dialog_btn_click(void* ctx, event_t* evt) {\r\n widget_t* win = widget_get_window(WIDGET(evt->target));\r\n int code = (char*)ctx - (char*)NULL;\r\n\r\n window_close(win);\r\n\r\n return RET_OK;\r\n }\r\n ```\r\n\r\n > 更多用法请参考:\r\n [dialog.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)\r\n\r\n > 完整C代码示例请参考:\r\n\r\n * [非模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog.c)\r\n\r\n * [模态对话框](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/dialog_modal.c)\r\n\r\n可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default]\r\n (https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L324)\r\n\r\n", "name": "dialog_t", "parent": "widget_t", "annotation": { @@ -29138,7 +29138,7 @@ } ], "header": "base/window.h", - "desc": " 窗口。\r\n\r\n 缺省的应用程序窗口,占用除system\\_bar\\_t之外的整个区域,请不要修改它的位置和大小(除非你清楚后果)。\r\n\r\n window\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于window\\_t控件。\r\n\r\n 在xml中使用\"window\"标签创建窗口。无需指定坐标和大小,可以指定主题和动画名称。如:\r\n\r\n ```xml\r\n \r\n ...\r\n \r\n ```\r\n\r\n >\r\n 更多用法请参考:[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/)\r\n\r\n 在c代码中使用函数window\\_create创建窗口。如:\r\n\r\n ```c\r\n widget_t* window = window_create(NULL, 0, 0, 0, 0);\r\n ```\r\n\r\n > 无需指定父控件、坐标和大小,使用0即可。\r\n\r\n > 完整示例请参考:[window\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/)\r\n\r\n 可用通过style来设置窗口的风格,如背景颜色或图片等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L0)\r\n", + "desc": " 窗口。\r\n\r\n 缺省的应用程序窗口,占用除system\\_bar\\_t之外的整个区域,请不要修改它的位置和大小(除非你清楚后果)。\r\n\r\n window\\_t是[window\\_base\\_t](window_base_t.md)的子类控件,window\\_base\\_t的函数均适用于window\\_t控件。\r\n\r\n 在xml中使用\"window\"标签创建窗口。无需指定坐标和大小,可以指定主题和动画名称。如:\r\n\r\n ```xml\r\n \r\n ...\r\n \r\n ```\r\n\r\n >\r\n 更多用法请参考:[window.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/)\r\n\r\n 在c代码中使用函数window\\_create创建窗口。如:\r\n\r\n ```c\r\n widget_t* window = window_create(NULL, 0, 0, 0, 0);\r\n ```\r\n\r\n > 无需指定父控件、坐标和大小,使用0即可。\r\n\r\n > 完整示例请参考:[window\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/)\r\n\r\n 可用通过style来设置窗口的风格,如背景颜色或图片等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L0)\r\n", "name": "window_t", "parent": "widget_t", "annotation": { @@ -29242,7 +29242,7 @@ "events": [], "properties": [], "header": "canvas_widget/canvas_widget.h", - "desc": " 画布控件。\r\n\r\n 画布控件让开发者可以自己在控件上绘制需要的内容。\r\n\r\n canvas\\_widget\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于canvas\\_widget\\_t控件。\r\n\r\n 在xml中使用\"canvas\"标签创建画布控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/vgcanvas.xml)\r\n\r\n 在c代码中使用函数canvas\\_widget\\_create创建画布控件。如:\r\n\r\n ```c\r\n widget_t* canvas = canvas_widget_create(win, 0, 0, win->w, win->h);\r\n ```\r\n\r\n > 创建之后,需要用widget\\_on注册EVT\\_PAINT事件,并在EVT\\_PAINT事件处理函数中绘制。\r\n\r\n ```c\r\n widget_on(canvas, EVT_PAINT, on_paint_event, canvas);\r\n ```\r\n\r\n 绘制时,可以通过canvas接口去绘制,也可以通过vgcanvas接口去绘制。\r\n 先从evt获取canvas对象,再通过canvas\\_get\\_vgcanvas从canvas中获取vgcanvas对象。\r\n\r\n ```c\r\n\r\n static ret_t on_paint_event(void* ctx, event_t* evt) {\r\n widget_t* canvas_widget = WIDGET(ctx);\r\n canvas_t* c = paint_event_cast(evt)->c;\r\n vgcanvas_t* vg = canvas_get_vgcanvas(c);\r\n color_t bg = color_init(0xe0, 0xe0, 0xe0, 0xff);\r\n color_t tc = color_init(0, 0, 0, 0xff);\r\n rect_t r = rect_init(canvas_widget->x, canvas_widget->y, canvas_widget->w, canvas_widget->h);\r\n\r\n vgcanvas_save(vg);\r\n vgcanvas_clip_rect(vg, r.x, r.y, r.w, r.h);\r\n vgcanvas_translate(vg, r.x, r.y);\r\n\r\n ...\r\n\r\n vgcanvas_restore(vg);\r\n\r\n return RET_OK;\r\n }\r\n ```\r\n\r\n > 完整示例请参考:\r\n [canvas demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/canvas.c)\r\n\r\n 参考:\r\n\r\n * [canvas接口描述](canvas_t.md)\r\n * [vgcanvas接口描述](vgcanvas_t.md)\r\n\r\n", + "desc": " 画布控件。\r\n\r\n 画布控件让开发者可以自己在控件上绘制需要的内容。\r\n\r\n canvas\\_widget\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于canvas\\_widget\\_t控件。\r\n\r\n 在xml中使用\"canvas\"标签创建画布控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [canvas_widget.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/vgcanvas.xml)\r\n\r\n 在c代码中使用函数canvas\\_widget\\_create创建画布控件。如:\r\n\r\n ```c\r\n widget_t* canvas = canvas_widget_create(win, 0, 0, win->w, win->h);\r\n ```\r\n\r\n > 创建之后,需要用widget\\_on注册EVT\\_PAINT事件,并在EVT\\_PAINT事件处理函数中绘制。\r\n\r\n ```c\r\n widget_on(canvas, EVT_PAINT, on_paint_event, canvas);\r\n ```\r\n\r\n 绘制时,可以通过canvas接口去绘制,也可以通过vgcanvas接口去绘制。\r\n 先从evt获取canvas对象,再通过canvas\\_get\\_vgcanvas从canvas中获取vgcanvas对象。\r\n\r\n ```c\r\n\r\n static ret_t on_paint_event(void* ctx, event_t* evt) {\r\n widget_t* canvas_widget = WIDGET(ctx);\r\n canvas_t* c = paint_event_cast(evt)->c;\r\n vgcanvas_t* vg = canvas_get_vgcanvas(c);\r\n color_t bg = color_init(0xe0, 0xe0, 0xe0, 0xff);\r\n color_t tc = color_init(0, 0, 0, 0xff);\r\n rect_t r = rect_init(canvas_widget->x, canvas_widget->y, canvas_widget->w, canvas_widget->h);\r\n\r\n vgcanvas_save(vg);\r\n vgcanvas_clip_rect(vg, r.x, r.y, r.w, r.h);\r\n vgcanvas_translate(vg, r.x, r.y);\r\n\r\n ...\r\n\r\n vgcanvas_restore(vg);\r\n\r\n return RET_OK;\r\n }\r\n ```\r\n\r\n > 完整示例请参考:\r\n [canvas demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/canvas.c)\r\n\r\n 参考:\r\n\r\n * [canvas接口描述](canvas_t.md)\r\n * [vgcanvas接口描述](vgcanvas_t.md)\r\n\r\n", "name": "canvas_widget_t", "parent": "widget_t", "annotation": { @@ -29508,7 +29508,7 @@ } ], "header": "color_picker/color_picker.h", - "desc": " 颜色选择器。\r\n\r\n color\\_picker\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于color\\_picker\\_t控件。\r\n\r\n 在xml中使用\"color\\_picker\"标签创建颜色选择器控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [color\\_picker](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/color_picker.xml)\r\n\r\n 其中的子控件必须按下列规则命名:\r\n\r\n * r 红色分量。可以是spin_box、edit和slider。\r\n * g 绿色分量。可以是spin_box、edit和slider。\r\n * b 蓝色分量。可以是spin_box、edit和slider。\r\n * h Hue分量。可以是spin_box、edit、slider和color_component。\r\n * s Saturation分量。可以是spin_box、edit和slider。\r\n * v Value/Brightness分量。可以是spin_box、edit和slider。\r\n * sv Saturation和Value/Brightness分量。可以是color_component。\r\n * old 旧的值。可以是spin_box、edit和color_tile。\r\n * new 新的值。可以是spin_box、edit和color_tile。\r\n\r\n", + "desc": " 颜色选择器。\r\n\r\n color\\_picker\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于color\\_picker\\_t控件。\r\n\r\n 在xml中使用\"color\\_picker\"标签创建颜色选择器控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [color\\_picker](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/color_picker.xml)\r\n\r\n 其中的子控件必须按下列规则命名:\r\n\r\n * r 红色分量。可以是spin_box、edit和slider。\r\n * g 绿色分量。可以是spin_box、edit和slider。\r\n * b 蓝色分量。可以是spin_box、edit和slider。\r\n * h Hue分量。可以是spin_box、edit、slider和color_component。\r\n * s Saturation分量。可以是spin_box、edit和slider。\r\n * v Value/Brightness分量。可以是spin_box、edit和slider。\r\n * sv Saturation和Value/Brightness分量。可以是color_component。\r\n * old 旧的值。可以是spin_box、edit和color_tile。\r\n * new 新的值。可以是spin_box、edit和color_tile。\r\n\r\n", "name": "color_picker_t", "parent": "widget_t", "annotation": { @@ -29864,7 +29864,7 @@ } ], "header": "features/draggable.h", - "desc": " \r\n 将draggable放入目标控件,即可让目标控件或当前窗口可以被拖动。\r\n \r\n draggable\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于draggable\\_t控件。\r\n\r\n 在xml中使用\"draggable\"标签创建draggable控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n 拖动对话框标题时移动对话框:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/draggable.xml)\r\n\r\n 在c代码中使用函数draggable\\_create创建按钮控件。如:\r\n\r\n ```c\r\n widget_t* draggable = draggable_create(target, 0, 0, 0, 0);\r\n ```\r\n\r\n > draggable本身不可见,故无需style。\r\n\r\n", + "desc": " \r\n 将draggable放入目标控件,即可让目标控件或当前窗口可以被拖动。\r\n \r\n draggable\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于draggable\\_t控件。\r\n\r\n 在xml中使用\"draggable\"标签创建draggable控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n 拖动对话框标题时移动对话框:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/draggable.xml)\r\n\r\n 在c代码中使用函数draggable\\_create创建按钮控件。如:\r\n\r\n ```c\r\n widget_t* draggable = draggable_create(target, 0, 0, 0, 0);\r\n ```\r\n\r\n > draggable本身不可见,故无需style。\r\n\r\n", "name": "draggable_t", "parent": "widget_t", "annotation": { @@ -30148,7 +30148,7 @@ } ], "header": "guage/guage_pointer.h", - "desc": " 仪表指针控件。\r\n\r\n 仪表指针就是一张旋转的图片,图片可以是普通图片也可以是SVG图片。\r\n\r\n 在嵌入式平台上,对于旋转的图片,SVG图片的效率比位图高数倍,所以推荐使用SVG图片。\r\n\r\n guage\\_pointer\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于guage\\_pointer\\_t控件。\r\n\r\n 在xml中使用\"guage\\_pointer\"标签创建仪表指针控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml)\r\n\r\n 在c代码中使用函数guage\\_pointer\\_create创建仪表指针控件。如:\r\n\r\n ```c\r\n widget_t* guage_pointer = guage_pointer_create(guage, 10, 10, 100, 30);\r\n guage_pointer_set_image(guage_pointer, \"guage_pointer\");\r\n ```\r\n\r\n > 创建之后,需要用guage\\_pointer\\_set\\_image设置仪表指针图片。\r\n\r\n\r\n", + "desc": " 仪表指针控件。\r\n\r\n 仪表指针就是一张旋转的图片,图片可以是普通图片也可以是SVG图片。\r\n\r\n 在嵌入式平台上,对于旋转的图片,SVG图片的效率比位图高数倍,所以推荐使用SVG图片。\r\n\r\n guage\\_pointer\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于guage\\_pointer\\_t控件。\r\n\r\n 在xml中使用\"guage\\_pointer\"标签创建仪表指针控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml)\r\n\r\n 在c代码中使用函数guage\\_pointer\\_create创建仪表指针控件。如:\r\n\r\n ```c\r\n widget_t* guage_pointer = guage_pointer_create(guage, 10, 10, 100, 30);\r\n guage_pointer_set_image(guage_pointer, \"guage_pointer\");\r\n ```\r\n\r\n > 创建之后,需要用guage\\_pointer\\_set\\_image设置仪表指针图片。\r\n\r\n\r\n", "name": "guage_pointer_t", "parent": "widget_t", "annotation": { @@ -30400,7 +30400,7 @@ } ], "header": "guage/guage.h", - "desc": " 表盘控件。\r\n\r\n 表盘控件就是一张图片。\r\n\r\n guage\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于guage\\_t控件。\r\n\r\n 在xml中使用\"guage\"标签创建表盘控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/guage.xml)\r\n\r\n 在c代码中使用函数guage\\_create创建表盘控件。如:\r\n\r\n ```c\r\n widget_t* guage = guage_create(win, 10, 10, 200, 200);\r\n guage_set_image(guage, \"guage_bg\");\r\n ```\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", + "desc": " 表盘控件。\r\n\r\n 表盘控件就是一张图片。\r\n\r\n guage\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于guage\\_t控件。\r\n\r\n 在xml中使用\"guage\"标签创建表盘控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [guage.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/guage.xml)\r\n\r\n 在c代码中使用函数guage\\_create创建表盘控件。如:\r\n\r\n ```c\r\n widget_t* guage = guage_create(win, 10, 10, 200, 200);\r\n guage_set_image(guage, \"guage_bg\");\r\n ```\r\n\r\n 可用通过style来设置控件的显示风格,如背景和边框等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml)\r\n\r\n", "name": "guage_t", "parent": "widget_t", "annotation": { @@ -30872,7 +30872,7 @@ } ], "header": "image_animation/image_animation.h", - "desc": " 图片动画控件,指定一个图片前缀,依次显示指定序列的图片,从而形成动画效果。\r\n\r\n 图片序列可以用sequence指定,也可以用start\\_index和end\\_index指定一个范围。\r\n\r\n image\\_animation\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于image\\_animation\\_t控件。\r\n\r\n 在xml中使用\"image\\_animation\"标签创建图片动画控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [image_animation.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/image_animation.xml)\r\n\r\n 在c代码中使用函数image\\_animation\\_create创建图片动画控件。如:\r\n\r\n ```c\r\n image_animation = image_animation_create(win, 10, 10, 200, 200);\r\n image_animation_set_image(image_animation, \"ani\");\r\n image_animation_set_interval(image_animation, 50);\r\n image_animation_set_range_sequence(image_animation, 1, 9);\r\n image_animation_play(image_animation);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [image_animation\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_animation.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框等等,不过一般情况并不需要。\r\n\r\n", + "desc": " 图片动画控件,指定一个图片前缀,依次显示指定序列的图片,从而形成动画效果。\r\n\r\n 图片序列可以用sequence指定,也可以用start\\_index和end\\_index指定一个范围。\r\n\r\n image\\_animation\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于image\\_animation\\_t控件。\r\n\r\n 在xml中使用\"image\\_animation\"标签创建图片动画控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [image_animation.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_animation.xml)\r\n\r\n 在c代码中使用函数image\\_animation\\_create创建图片动画控件。如:\r\n\r\n ```c\r\n image_animation = image_animation_create(win, 10, 10, 200, 200);\r\n image_animation_set_image(image_animation, \"ani\");\r\n image_animation_set_interval(image_animation, 50);\r\n image_animation_set_range_sequence(image_animation, 1, 9);\r\n image_animation_play(image_animation);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [image_animation\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_animation.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框等等,不过一般情况并不需要。\r\n\r\n", "name": "image_animation_t", "parent": "widget_t", "annotation": { @@ -31109,7 +31109,7 @@ } ], "header": "image_value/image_value.h", - "desc": " 图片值控件。\r\n\r\n 可以用图片来表示如电池电量、WIFI信号强度和其它各种数值的值。\r\n\r\n 其原理如下:\r\n\r\n * 1.把value以format为格式转换成字符串。\r\n * 2.把每个字符与image(图片文件名前缀)映射成一个图片名。\r\n * 3.最后把这些图片显示出来。\r\n\r\nimage\\_value\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于image\\_value\\_t控件。\r\n\r\n在xml中使用\"image\\_value\"标签创建图片值控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [image\\_value](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/image_value.xml)\r\n\r\n 在c代码中使用函数image\\_value\\_create创建图片值控件。如:\r\n\r\n ```c\r\n image_value = image_value_create(win, 10, 10, 200, 200);\r\n image_value_set_image(image_value, \"num_\");\r\n image_value_set_value(image_value, 100);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [image_value demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_value.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框等等,不过一般情况并不需要。\r\n\r\n", + "desc": " 图片值控件。\r\n\r\n 可以用图片来表示如电池电量、WIFI信号强度和其它各种数值的值。\r\n\r\n 其原理如下:\r\n\r\n * 1.把value以format为格式转换成字符串。\r\n * 2.把每个字符与image(图片文件名前缀)映射成一个图片名。\r\n * 3.最后把这些图片显示出来。\r\n\r\nimage\\_value\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于image\\_value\\_t控件。\r\n\r\n在xml中使用\"image\\_value\"标签创建图片值控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [image\\_value](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/image_value.xml)\r\n\r\n 在c代码中使用函数image\\_value\\_create创建图片值控件。如:\r\n\r\n ```c\r\n image_value = image_value_create(win, 10, 10, 200, 200);\r\n image_value_set_image(image_value, \"num_\");\r\n image_value_set_value(image_value, 100);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [image_value demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/image_value.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框等等,不过一般情况并不需要。\r\n\r\n", "name": "image_value_t", "parent": "widget_t", "annotation": { @@ -31274,7 +31274,7 @@ "events": [], "properties": [], "header": "keyboard/keyboard.h", - "desc": " 软键盘。\r\n\r\n 软键盘是一个特殊的窗口,由编辑器通过输入法自动打开和关闭。\r\n\r\n 这里介绍一下定制软键盘的方法:\r\n\r\n 编辑器输入类型和软键盘UI资源文件的对应关系:\r\n\r\n| 输入类型 | 软键盘UI资源文件|\r\n|----------------|:---------------:|\r\n| INPUT\\_PHONE | kb\\_phone.xml |\r\n| INPUT\\_INT | kb\\_int.xml |\r\n| INPUT\\_FLOAT | kb\\_float.xml |\r\n| INPUT\\_UINT | kb\\_uint.xml |\r\n| INPUT\\_UFLOAT | kb\\_ufloat.xml |\r\n| INPUT\\_HEX | kb\\_hex.xml |\r\n| INPUT\\_EMAIL | kb\\_ascii.xml |\r\n| INPUT\\_PASSWORD | kb\\_ascii.xml |\r\n| INPUT\\_CUSTOM | 使用自定义的键盘 |\r\n| 其它 | kb\\_default.xml |\r\n\r\n keyboard中按钮子控件的名称有些特殊要求:\r\n\r\n| 名称 | 功能 |\r\n|----------------|:---------------:|\r\n| return | 回车键 |\r\n| action | 定制按钮 |\r\n| backspace | 删除键 |\r\n| tab | tab键 |\r\n| space | 空格键 |\r\n| close | 关闭软键盘 |\r\n| 前缀key: | 键值 |\r\n| 前缀page: | 切换到页面 |\r\n\r\n\r\n > 更多用法请参考:\r\n [kb_default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/kb_default.xml)\r\n\r\n", + "desc": " 软键盘。\r\n\r\n 软键盘是一个特殊的窗口,由编辑器通过输入法自动打开和关闭。\r\n\r\n 这里介绍一下定制软键盘的方法:\r\n\r\n 编辑器输入类型和软键盘UI资源文件的对应关系:\r\n\r\n| 输入类型 | 软键盘UI资源文件|\r\n|----------------|:---------------:|\r\n| INPUT\\_PHONE | kb\\_phone.xml |\r\n| INPUT\\_INT | kb\\_int.xml |\r\n| INPUT\\_FLOAT | kb\\_float.xml |\r\n| INPUT\\_UINT | kb\\_uint.xml |\r\n| INPUT\\_UFLOAT | kb\\_ufloat.xml |\r\n| INPUT\\_HEX | kb\\_hex.xml |\r\n| INPUT\\_EMAIL | kb\\_ascii.xml |\r\n| INPUT\\_PASSWORD | kb\\_ascii.xml |\r\n| INPUT\\_CUSTOM | 使用自定义的键盘 |\r\n| 其它 | kb\\_default.xml |\r\n\r\n keyboard中按钮子控件的名称有些特殊要求:\r\n\r\n| 名称 | 功能 |\r\n|----------------|:---------------:|\r\n| return | 回车键 |\r\n| action | 定制按钮 |\r\n| backspace | 删除键 |\r\n| tab | tab键 |\r\n| space | 空格键 |\r\n| close | 关闭软键盘 |\r\n| 前缀key: | 键值 |\r\n| 前缀page: | 切换到页面 |\r\n\r\n\r\n > 更多用法请参考:\r\n [kb_default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/kb_default.xml)\r\n\r\n", "name": "keyboard_t", "parent": "widget_t", "annotation": { @@ -31442,7 +31442,7 @@ "events": [], "properties": [], "header": "mledit/line_number.h", - "desc": "\r\n 行号。多行编辑器的行号。\r\n\r\n line\\_number\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于line\\_number\\_t控件。\r\n\r\n 在xml中使用\"lin\\e_number\"标签创建行号控件,一般配合mledit使用。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L556)\r\n\r\n", + "desc": "\r\n 行号。多行编辑器的行号。\r\n\r\n line\\_number\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于line\\_number\\_t控件。\r\n\r\n 在xml中使用\"lin\\e_number\"标签创建行号控件,一般配合mledit使用。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L556)\r\n\r\n", "name": "line_number_t", "parent": "widget_t", "annotation": { @@ -31736,7 +31736,7 @@ } ], "header": "mledit/mledit.h", - "desc": " 多行编辑器控件。\r\n\r\n mledit\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于mledit\\_t控件。\r\n\r\n 在xml中使用\"mledit\"标签创建多行编辑器控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\r\n\r\n 在c代码中使用函数mledit\\_create创建多行编辑器控件。如:\r\n\r\n ```c\r\n widget_t* tc = mledit_create(win, 10, 10, 240, 240);\r\n ```\r\n\r\n > 完整示例请参考:[mledit demo](\r\n https://github.com/zlgopen/awtk-c-demos/blob/master/demos/mledit.c)\r\n\r\n time\\_clock一般不需要设置style。\r\n\r\n", + "desc": " 多行编辑器控件。\r\n\r\n mledit\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于mledit\\_t控件。\r\n\r\n 在xml中使用\"mledit\"标签创建多行编辑器控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\n https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml)\r\n\r\n 在c代码中使用函数mledit\\_create创建多行编辑器控件。如:\r\n\r\n ```c\r\n widget_t* tc = mledit_create(win, 10, 10, 240, 240);\r\n ```\r\n\r\n > 完整示例请参考:[mledit demo](\r\n https://github.com/zlgopen/awtk-c-demos/blob/master/demos/mledit.c)\r\n\r\n time\\_clock一般不需要设置style。\r\n\r\n", "name": "mledit_t", "parent": "widget_t", "annotation": { @@ -32075,7 +32075,7 @@ } ], "header": "progress_circle/progress_circle.h", - "desc": " 进度圆环控件。\r\n\r\n progress\\_circle\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于progress\\_circle\\_t控件。\r\n\r\n 在xml中使用\"progress\\_circle\"标签创建进度圆环控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [progress_circle.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/progress_circle.xml)\r\n\r\n 在c代码中使用函数progress\\_circle\\_create创建进度圆环控件。如:\r\n\r\n ```c\r\n progress_circle = progress_circle_create(win, 10, 10, 200, 200);\r\n progress_circle_set_max(progress_circle, 360);\r\n widget_set_value(progress_circle, 128);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [progress_circle\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/progress_circle.c)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L467)\r\n\r\n", + "desc": " 进度圆环控件。\r\n\r\n progress\\_circle\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于progress\\_circle\\_t控件。\r\n\r\n 在xml中使用\"progress\\_circle\"标签创建进度圆环控件。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [progress_circle.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/progress_circle.xml)\r\n\r\n 在c代码中使用函数progress\\_circle\\_create创建进度圆环控件。如:\r\n\r\n ```c\r\n progress_circle = progress_circle_create(win, 10, 10, 200, 200);\r\n progress_circle_set_max(progress_circle, 360);\r\n widget_set_value(progress_circle, 128);\r\n ```\r\n\r\n > 完整示例请参考:\r\n [progress_circle\r\n demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/progress_circle.c)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme\r\n default](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L467)\r\n\r\n", "name": "progress_circle_t", "parent": "widget_t", "annotation": { @@ -32187,7 +32187,7 @@ } ], "header": "rich_text/rich_text.h", - "desc": " 图文混排控件,实现简单的图文混排。\r\n\r\n rich\\_text\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于rich\\_text\\_t控件。\r\n\r\n 在xml中使用\"rich\\_text\"标签创建图文混排控件。如:\r\n\r\n ```xml\r\n hello awtk!\" />\r\n ```\r\n >\r\n\r\n > 更多用法请参考:\r\n [rich_text.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/rich_text.xml)\r\n\r\n 在c代码中使用函数rich\\_text\\_create创建图文混排控件。如:\r\n\r\n ```c\r\n widget_t* rich_text = rich_text_create(win, 0, 0, 0, 0);\r\n widget_set_text_utf8(rich_text,\r\n \"hello awtk!ProTip! The \"\r\n \"feed shows you events from people you follow and repositories you watch. \"\r\n \"nhello world. 确定取消中文字符测试。确定。取消。中文字符测试。\");\r\n\r\n widget_set_self_layout_params(rich_text, \"center\", \"middle\", \"100%\", \"100%\");\r\n ```\r\n\r\n > 完整示例请参考:\r\n [rich_text demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/rich_text.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色等等。而字体的大小和颜色则由文本内部的属性决定。\r\n\r\n 目前支持image和font两个tag:\r\n\r\n * image 支持的属性有:\r\n * name 图片的名称。\r\n * w 图片的宽度。\r\n * h 图片的高度。\r\n\r\n * font 支持的属性有:\r\n * color 颜色。\r\n * size 大小。\r\n * align_v 垂直方向对齐的方式(top|middle|bottom)。\r\n * bold 粗体(暂不支持)\r\n * italic 斜体(暂不支持)\r\n * underline 下划线(暂不支持)\r\n\r\n", + "desc": " 图文混排控件,实现简单的图文混排。\r\n\r\n rich\\_text\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于rich\\_text\\_t控件。\r\n\r\n 在xml中使用\"rich\\_text\"标签创建图文混排控件。如:\r\n\r\n ```xml\r\n hello awtk!\" />\r\n ```\r\n >\r\n\r\n > 更多用法请参考:\r\n [rich_text.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/rich_text.xml)\r\n\r\n 在c代码中使用函数rich\\_text\\_create创建图文混排控件。如:\r\n\r\n ```c\r\n widget_t* rich_text = rich_text_create(win, 0, 0, 0, 0);\r\n widget_set_text_utf8(rich_text,\r\n \"hello awtk!ProTip! The \"\r\n \"feed shows you events from people you follow and repositories you watch. \"\r\n \"nhello world. 确定取消中文字符测试。确定。取消。中文字符测试。\");\r\n\r\n widget_set_self_layout_params(rich_text, \"center\", \"middle\", \"100%\", \"100%\");\r\n ```\r\n\r\n > 完整示例请参考:\r\n [rich_text demo](https://github.com/zlgopen/awtk-c-demos/blob/master/demos/rich_text.c)\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色等等。而字体的大小和颜色则由文本内部的属性决定。\r\n\r\n 目前支持image和font两个tag:\r\n\r\n * image 支持的属性有:\r\n * name 图片的名称。\r\n * w 图片的宽度。\r\n * h 图片的高度。\r\n\r\n * font 支持的属性有:\r\n * color 颜色。\r\n * size 大小。\r\n * align_v 垂直方向对齐的方式(top|middle|bottom)。\r\n * bold 粗体(暂不支持)\r\n * italic 斜体(暂不支持)\r\n * underline 下划线(暂不支持)\r\n\r\n", "name": "rich_text_t", "parent": "widget_t", "annotation": { @@ -32558,7 +32558,7 @@ } ], "header": "scroll_label/hscroll_label.h", - "desc": "\r\n 可水平滚动的文本控件,方便实现长文本滚动。\r\n\r\n\r\n hscroll\\_label\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于hscroll\\_label\\_t控件。\r\n\r\n 在xml中使用\"hscroll\\_label\"标签创建行号控件,一般配合mledit使用。如:\r\n\r\n ```xml\r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/mledit.xml)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml)\r\n\r\n", + "desc": "\r\n 可水平滚动的文本控件,方便实现长文本滚动。\r\n\r\n\r\n hscroll\\_label\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于hscroll\\_label\\_t控件。\r\n\r\n 在xml中使用\"hscroll\\_label\"标签创建行号控件,一般配合mledit使用。如:\r\n\r\n ```xml\r\n ```\r\n\r\n > 更多用法请参考:[mledit.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/mledit.xml)\r\n\r\n 可用通过style来设置控件的显示风格,如字体的大小和颜色等等。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:\r\n [theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml)\r\n\r\n", "name": "hscroll_label_t", "parent": "widget_t", "annotation": { @@ -33625,7 +33625,7 @@ "events": [], "properties": [], "header": "scroll_view/list_item.h", - "desc": " 列表项控件。\r\n\r\n 列表项控件是一个简单的容器控件,一般作为列表视图中滚动视图的子控件。\r\n\r\n list\\_item\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于list\\_item\\_t控件。\r\n\r\n 在xml中使用\"list\\_item\"标签创建列表项控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[list\\_view\\_m.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml)\r\n\r\n 在c代码中使用函数list\\_item\\_create创建列表项控件。如:\r\n\r\n ```c\r\n widget_t* list_item = list_item_create(scroll_view, 0, 0, 0, 0);\r\n ```\r\n\r\n > 列表项控件大小一般由列表控制,不需指定xywh参数。\r\n\r\n 可以用style来实现可点击或不可点击的效果。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L372)\r\n\r\n", + "desc": " 列表项控件。\r\n\r\n 列表项控件是一个简单的容器控件,一般作为列表视图中滚动视图的子控件。\r\n\r\n list\\_item\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于list\\_item\\_t控件。\r\n\r\n 在xml中使用\"list\\_item\"标签创建列表项控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[list\\_view\\_m.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml)\r\n\r\n 在c代码中使用函数list\\_item\\_create创建列表项控件。如:\r\n\r\n ```c\r\n widget_t* list_item = list_item_create(scroll_view, 0, 0, 0, 0);\r\n ```\r\n\r\n > 列表项控件大小一般由列表控制,不需指定xywh参数。\r\n\r\n 可以用style来实现可点击或不可点击的效果。如:\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L372)\r\n\r\n", "name": "list_item_t", "parent": "widget_t", "annotation": { @@ -33773,7 +33773,7 @@ } ], "header": "scroll_view/list_view_h.h", - "desc": " 水平列表视图控件。\r\n\r\n list\\_view\\_h\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于list\\_view\\_h\\_t控件。\r\n\r\n 在xml中使用\"list\\_view\\_h\"标签创建水平列表视图控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 注意:列表项不是作为列表视图控件的直接子控件,而是作为滚动视图的子控件。\r\n\r\n\r\n > 更多用法请参考:[list\\_view\\_h.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_h.xml)\r\n\r\n 在c代码中使用函数list\\_view\\_h\\_create创建水平列表视图控件。如:\r\n\r\n ```c\r\n widget_t* list_view = list_view_h_create(win, 0, 0, 0, 0);\r\n ```\r\n\r\n 用代码构造列表视图是比较繁琐的事情,最好用XML来构造。\r\n 如果需要动态修改,可以使用widget\\_clone来增加列表项,使用widget\\_remove\\_child来移出列表项。\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框颜色等(一般情况不需要)。\r\n\r\n", + "desc": " 水平列表视图控件。\r\n\r\n list\\_view\\_h\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于list\\_view\\_h\\_t控件。\r\n\r\n 在xml中使用\"list\\_view\\_h\"标签创建水平列表视图控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 注意:列表项不是作为列表视图控件的直接子控件,而是作为滚动视图的子控件。\r\n\r\n\r\n > 更多用法请参考:[list\\_view\\_h.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_h.xml)\r\n\r\n 在c代码中使用函数list\\_view\\_h\\_create创建水平列表视图控件。如:\r\n\r\n ```c\r\n widget_t* list_view = list_view_h_create(win, 0, 0, 0, 0);\r\n ```\r\n\r\n 用代码构造列表视图是比较繁琐的事情,最好用XML来构造。\r\n 如果需要动态修改,可以使用widget\\_clone来增加列表项,使用widget\\_remove\\_child来移出列表项。\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框颜色等(一般情况不需要)。\r\n\r\n", "name": "list_view_h_t", "parent": "widget_t", "annotation": { @@ -33957,7 +33957,7 @@ } ], "header": "scroll_view/list_view.h", - "desc": " 列表视图控件。\r\n\r\n 列表视图控件是一个可以垂直滚动的列表控件。\r\n\r\n 如果不需要滚动,可以用view控件配置适当的layout参数作为列表控件。\r\n\r\n 列表视图中的列表项可以固定高度,也可以使用不同高度。请参考[变高列表项](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_vh.xml)\r\n\r\n 列表视图控件的中可以有滚动条,也可以没有滚动条。\r\n 可以使用移动设备风格的滚动条,也可以使用桌面风格的滚动条。\r\n\r\n list\\_view\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于list\\_view\\_t控件。\r\n\r\n 在xml中使用\"list\\_view\"标签创建列表视图控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 注意:列表项不是作为列表视图控件的直接子控件,而是作为滚动视图的子控件。\r\n\r\n\r\n > 更多用法请参考:[list\\_view\\_m.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml)\r\n\r\n 在c代码中使用函数list\\_view\\_create创建列表视图控件。如:\r\n\r\n ```c\r\n widget_t* list_view = list_view_create(win, 0, 0, 0, 0);\r\n ```\r\n\r\n 用代码构造列表视图是比较繁琐的事情,最好用XML来构造。\r\n 如果需要动态修改,可以使用widget\\_clone来增加列表项,使用widget\\_remove\\_child来移出列表项。\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框颜色等(一般情况不需要)。\r\n\r\n", + "desc": " 列表视图控件。\r\n\r\n 列表视图控件是一个可以垂直滚动的列表控件。\r\n\r\n 如果不需要滚动,可以用view控件配置适当的layout参数作为列表控件。\r\n\r\n 列表视图中的列表项可以固定高度,也可以使用不同高度。请参考[变高列表项](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_vh.xml)\r\n\r\n 列表视图控件的中可以有滚动条,也可以没有滚动条。\r\n 可以使用移动设备风格的滚动条,也可以使用桌面风格的滚动条。\r\n\r\n list\\_view\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于list\\_view\\_t控件。\r\n\r\n 在xml中使用\"list\\_view\"标签创建列表视图控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 注意:列表项不是作为列表视图控件的直接子控件,而是作为滚动视图的子控件。\r\n\r\n\r\n > 更多用法请参考:[list\\_view\\_m.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml)\r\n\r\n 在c代码中使用函数list\\_view\\_create创建列表视图控件。如:\r\n\r\n ```c\r\n widget_t* list_view = list_view_create(win, 0, 0, 0, 0);\r\n ```\r\n\r\n 用代码构造列表视图是比较繁琐的事情,最好用XML来构造。\r\n 如果需要动态修改,可以使用widget\\_clone来增加列表项,使用widget\\_remove\\_child来移出列表项。\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框颜色等(一般情况不需要)。\r\n\r\n", "name": "list_view_t", "parent": "widget_t", "annotation": { @@ -34329,7 +34329,7 @@ } ], "header": "scroll_view/scroll_bar.h", - "desc": " 滚动条控件。\r\n\r\n> 目前只支持垂直滚动。\r\n\r\n scroll\\_bar\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于scroll\\_bar\\_t控件。\r\n\r\n 在xml中使用\"scroll\\_bar\"或\"scroll\\_bar\\_d\"或\"scroll\\_bar\\_m\"标签创建滚动条控件。如:\r\n\r\n ```xml\r\n \r\n \r\n ...\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[list\\_view\\_m.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml)\r\n\r\n 在c代码中使用函数scroll\\_bar\\_create创建列表项控件。如:\r\n\r\n ```c\r\n widget_t* scroll_bar = scroll_bar_create(list_view, 0, 0, 0, 0);\r\n ```\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/styles/default.xml#L350)\r\n\r\n", + "desc": " 滚动条控件。\r\n\r\n> 目前只支持垂直滚动。\r\n\r\n scroll\\_bar\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于scroll\\_bar\\_t控件。\r\n\r\n 在xml中使用\"scroll\\_bar\"或\"scroll\\_bar\\_d\"或\"scroll\\_bar\\_m\"标签创建滚动条控件。如:\r\n\r\n ```xml\r\n \r\n \r\n ...\r\n \r\n \r\n \r\n ```\r\n\r\n > 更多用法请参考:[list\\_view\\_m.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml)\r\n\r\n 在c代码中使用函数scroll\\_bar\\_create创建列表项控件。如:\r\n\r\n ```c\r\n widget_t* scroll_bar = scroll_bar_create(list_view, 0, 0, 0, 0);\r\n ```\r\n\r\n ```xml\r\n \r\n ```\r\n\r\n > 更多用法请参考:[theme default](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/styles/default.xml#L350)\r\n\r\n", "name": "scroll_bar_t", "parent": "widget_t", "annotation": { @@ -34632,7 +34632,7 @@ } ], "header": "scroll_view/scroll_view.h", - "desc": " 滚动视图。\r\n\r\n scroll\\_view\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于scroll\\_view\\_t控件。\r\n\r\n 在xml中使用\"scroll\\_view\"标签创建滚动视图控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 滚动视图一般作为列表视图的子控件使用。\r\n\r\n > 更多用法请参考:[list\\_view\\_m.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/raw/ui/list_view_m.xml)\r\n\r\n 在c代码中使用函数scroll\\_view\\_create创建列表视图控件。如:\r\n\r\n ```c\r\n widget_t* scroll_view = scroll_view_create(win, 0, 0, 0, 0);\r\n ```\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框颜色等(一般情况不需要)。\r\n\r\n", + "desc": " 滚动视图。\r\n\r\n scroll\\_view\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于scroll\\_view\\_t控件。\r\n\r\n 在xml中使用\"scroll\\_view\"标签创建滚动视图控件。如:\r\n\r\n ```xml\r\n \r\n \r\n \r\n \r\n \r\n \r\n ...\r\n \r\n \r\n ```\r\n\r\n > 滚动视图一般作为列表视图的子控件使用。\r\n\r\n > 更多用法请参考:[list\\_view\\_m.xml](\r\nhttps://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/list_view_m.xml)\r\n\r\n 在c代码中使用函数scroll\\_view\\_create创建列表视图控件。如:\r\n\r\n ```c\r\n widget_t* scroll_view = scroll_view_create(win, 0, 0, 0, 0);\r\n ```\r\n\r\n 可用通过style来设置控件的显示风格,如背景颜色和边框颜色等(一般情况不需要)。\r\n\r\n", "name": "scroll_view_t", "parent": "widget_t", "annotation": { @@ -34827,7 +34827,7 @@ } ], "header": "slide_menu/slide_menu.h", - "desc": " 左右滑动菜单控件。\r\n\r\n 一般用一组按钮作为子控件,通过左右滑动改变当前的项。除了当菜单使用外,也可以用来切换页面。\r\n\r\n slide\\_menu\\_t是[widget\\_t](widget_t.md)的子类控件,widget\\_t的函数均适用于slide\\_menu\\_t控件。\r\n\r\n 在xml中使用\"slide\\_menu\"标签创建左右滑动菜单控件。如:\r\n\r\n ```xml\r\n \r\n diff --git a/demos/assets/default/raw/ui/system_bar_bottom.bin b/demos/assets/default/raw/ui/system_bar_bottom.bin new file mode 100644 index 0000000000000000000000000000000000000000..5afb83d39d1a1e92730762b910cd44b23f028f9d GIT binary patch literal 492 zcma)2!3u*g4DEThdE8-#fuP`^4s{^-EmE~kS!=J`IVLDbwlP2kVyk}X5 zt?o2%nP#j_GXlq+Fmv%WM>9(~^z_|ROGsbHNlKnh+mBfz;Q)ax*A$uXc_ zmH3p}E+K+tT+II$@@DFtF|R}W1GYr$Ftp#;8alxV)PQ%x + + +

    @@ -16,6 +15,7 @@ | locale\_info\_destroy | 释放全部资源并销毁locale_info对象。 | | locale\_info\_off | 注销指定事件的处理函数。 | | locale\_info\_on | 注册指定事件的处理函数。 | +| locale\_info\_reload | 重新加载字符串资源。 | | locale\_info\_set | 设置缺省locale_info。 | | locale\_info\_set\_assets\_manager | 设置资源管理器对象。 | | locale\_info\_tr | 翻译字符串。 | @@ -35,7 +35,6 @@ - * 函数原型: ``` @@ -56,7 +55,6 @@ locale_info_t* locale_info (); - * 函数原型: ``` @@ -80,7 +78,6 @@ ret_t locale_info_change (locale_info_t* locale_info, char* language, char* coun - * 函数原型: ``` @@ -103,7 +100,6 @@ locale_info_t* locale_info_create (char* language, char* country); - * 函数原型: ``` @@ -125,7 +121,6 @@ ret_t locale_info_destroy (locale_info_t* locale_info); - * 函数原型: ``` @@ -137,7 +132,7 @@ ret_t locale_info_off (locale_info_t* locale_info, uint32_t id); | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | -| locale\_info | locale\_info\_t* | 控件对象。 | +| locale\_info | locale\_info\_t* | locale\_info对象。 | | id | uint32\_t | locale\_info\_on返回的ID。 | #### locale\_info\_on 函数 ----------------------- @@ -148,7 +143,6 @@ ret_t locale_info_off (locale_info_t* locale_info, uint32_t id); - * 函数原型: ``` @@ -160,10 +154,32 @@ uint32_t locale_info_on (locale_info_t* locale_info, event_type_t type, event_fu | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | uint32\_t | 返回id,用于locale\_info\_off。 | -| locale\_info | locale\_info\_t* | 控件对象。 | +| locale\_info | locale\_info\_t* | locale\_info对象。 | | type | event\_type\_t | 事件类型,目前固定为EVT\_LOCALE\_CHANGED。 | | on\_event | event\_func\_t | 事件处理函数。 | | ctx | void* | 事件处理函数上下文。 | +#### locale\_info\_reload 函数 +----------------------- + +* 函数功能: + +>

|7U`t40TlBGV&+=36jp-?Cdb{8JDL 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 literal 3772 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 diff --git a/docs/manual/images/style_const_t_0.png b/docs/manual/images/style_const_t_0.png index 818d4327f0e4a3e951ddaf8878de7d5edb2a5c74..f2e7d10312c84a081efd2c643288178a72cbcfbc 100644 GIT binary patch literal 1696 zcmcIlcTf{{6pkmWEK#YT5|&bWWg7(~i~|WVr3Ec&kZFiSF$@_J0|c%p4hV)JBghm4 zEd(TC2k=yu2th_65E5B}j1Wc!At5%l=UxBk_3R(L-}ig(?)~xp_`dhOcmIqVR7LTS zA^-qTft_~#MVd>czd%7w8tGa+zS1NY;0kpHeER%~+bS}ph4V0H$8$IH*~}N{{Rvv# z>jIoG528_WN)GtYSTXxSvUdqhzu`_4X0X%YRrC*A@cf|*Xjx!#(`k984^YOjME9wB zmF5Hsv-T*h4D)7ZtE_0O0&8Dfj9FjJoEsll*jJjGaTKP!#*sL*Ljh50M=t*b@p3Ex z2nK`sQ!jUet*zJW9^N0kdOSEN=#9X<pwRW4<4}s`vYu<>;Xbb|=W%flzj}KZ4|^KWIeZQH#^(iTyD-ff}xl zhpg_j6z44dMxixbAyp9>Jgj@~%3*O|E{5o)bOb$m=!8+ZFB}D=^k6ry<7^EayFIzE z>%20d4X5crh5pCD7$3I{hGB1F;X&UBVYX_oUe_m~q8TTJ0Nd))bs6|hkKEdXx~&}W zb!aA}nHU>yX*=mrsZ>618BUE_%;1!$lN%c5V-=u19oAqlx*r8<(utQ$zm{i=kJrYu zgre>n|q~>%C08{rwxGsch`!Y5lH@8S92h zc+Es-ibj85)p+m(LB}B&jefh?^9q7D5KDF#g$@a!qzjc)wph3sy|c}mV(mTSgg0o7 z6AtnD{1rZ%fn#`+vO_{cCu;m(*rpl>cX&E!bz4e_;Kj6siNxa8dPWFia*}(T{CqFc z(IG)n2e0wtnG6CwJUpUjyHv85GVawDOG&z@4vAhKC5`N0RwrvoBomQjM`S@TjyskB z)J%pFw8x)$RIKcX1kXeR`6rR=XvXN+7<-jT?Y3?C+*!vVzE0YmJ~=u0j)B|eF6O#K zMW`VirBdN)vcaIKDYDj(;mvc>QoUFIwR$gspu)Y#5;PO}tA=@+BmRFx_?&|h^Zolq z4KqI(L1YmQD_AWc21(4r&o9slDCn_jATwQ=PN$#l!<)5tZD-A}(uv_=VFN21l00Tt zR_C84ekS@4llo<#@kffdsz0kknEsoK+~+`1AN?>v36`OTP#hyrmS>+Jh1dhxO7o=9G4MG`*lF#)%?zJu(X!xFf84 zVmyEa3qnRheC=u2W_y-7(!0FU=dB7&4fVS=9=`otCgLej*1-KM|&~eqAnz_ow z$G0MG7{(Peeq489ni`dp7mQ*>v-T|AMXNUV-g>o-bP+WuXUtO}#Rq@es<|vD=%)i; zsQmXOf$t-vt#4*psJ?Eo*@rA0GzU?Vl9JX_74}Qr^CXn8&%R$#MbP}WU4#DwNJ2^|261z)cDj`K2R3q4c>n+a literal 4474 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 h)tC6pe}BKk2KBZnxxCa2I|y{%_EUgirtg literal 4626 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 diff --git a/docs/manual/images/svg_image_t_0.png b/docs/manual/images/svg_image_t_0.png index 79733b4a402567b8510119742b8eef70d8f78df9..f691cd4eec0e0dce0b57fcc66b7a1220ff8112c4 100644 GIT binary patch literal 1749 zcmcJQ{ZkTX5XT)e>$EH{i!74JQo9T*OE2H>HL({hGhb4&GPDj6@dY|T?KJbEd?oTY zbbM)y@&y$YQWLczv=k~cMZ{jnNCQm~L=Zii>ksIDxY^G>JF`3Uoqc9^X0IRj_g!tY z$w*I6Z?zxHJ5U!XIxksisC#LB!!^2Kc>aj5x8Bk>D{H5bbP1xLw@1+BVwtD|X%+x{ zI?YczKzwqjq2AP^zJc+xN3|K22s@v7}(uyj|f9XrRr;Cx^UWT@T*rxi;|6 zjF_maULrIY;DC3=H{vwX(b!SDmD>}kBEHnk*?FDaUZVI{2lvk%t;X(h(|z6lvgN2F zVSa`)Iogg)UtG9<$HHJzDHCE969cX&FG~T{5iOk-bII$oK7GcvQ3U3jdJJzD6;&=T z|2M8E-$BoF9iDwkldJ!G()a>MKtmsk&j5^r{v{}i1( z-nwTT`&Jeq^baKQ7orQDg0#n{>TVU-PI=M*26QrFCUJ1YswE!AYGd<|rAdg}$+4wT z(Tc~oq+N|5q871p#|1Z^vDF$nX&euHOA36`BZohHaHe$DG!(mX6RY*fqCI)t(l!Ff z{$9XW@X3XbY@+!7(I{xfny|3Dt}g7m4WQnht-jqqgoIGd@1r_a*H~@@LDQNVWB9`b zmcA1Z#6(gX9LW-T$#iob87Xc)U3-{lbgXW$F(+rW=IeVeQRUIftgNhFsrU4L_H)!> zQ5%jw`L+X13n*pQ*4A!Kf5|lI?Qzj+HG{g9kf{}4l=Jc!{M;m5v}1WDD-xfgQP!f+ zXkm3oU2I}vzf(yroK0w%WMp*0KHcvhADWj-WFsw!Z+>f*_K>WVnz^ag=SKQq`HQJJ z6as<3jlI@Yge<7HrZJ(C&Teg=&jOZwDn-gbGqBH5|rd!?!ALJ4L6I z3sa&i#T-PC&R@!iG^&vZW41A^q1T1s#s>JhH$2jUwoX zJa>`ZdMMV@u*I_j78s=FT^A2k*bLhzY-gD_#Wc4tK?GOc#ap=Ik6*@H`%~j(_H~fA zX*a80`X+$b3bNk@MvZa7fryypcGbI)r6dE}`BXZ$yDYa0120b;kO*%B>SwXy*#XI? z<5ja5b1o*@ngn>!yLA3k@}pOdSNK>6TN{r8d^jBHP}t%RBUuX&E4DsyM-=dS2vaYt z;uXlkvi)N&Jr+ei0dXmd;*`|FsG!|w6DJ;)jVwLi7Gao~4hep0SNcn(&=Co4`M84MVWcAIde3f@jj`3e}lW@<4W@%!l-?KCX`KTmL#Sep9Tq)Y65bL)uu(l*XT3Y>^J}< oVq;4QuKNmRuXQF6{GE{{aEZK|d<__&yHk38KK|Zx&$Ai-0FTg#x&QzG literal 4608 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 VlFJ*X{{)uf44$rjF6*2UngA7jrKtb_ literal 3891 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 C3rW2I literal 4661 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 diff --git a/docs/manual/images/tab_button_group_t_0.png b/docs/manual/images/tab_button_group_t_0.png index 6ddb86d389e182b36ba784b44466d1bd6ef083c5..8a91ac5009cec261ca7bad24abadac62a4cd0c8b 100644 GIT binary patch literal 1821 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 ONM@*K3ais`iun(5&%;Lm diff --git a/docs/manual/images/tab_button_t_0.png b/docs/manual/images/tab_button_t_0.png index f0fbe7d11513ec98ff7a391b1298ec6c5bce498f..865371183065841d9757b255c38b698c398ece19 100644 GIT binary patch literal 1661 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 E0Kz<44FCWD diff --git a/docs/manual/images/tab_control_t_0.png b/docs/manual/images/tab_control_t_0.png index 58f6398807d459798435071e37347f30e11fe287..63e470e941759bc277754f8fe7434b95c2e1e94f 100644 GIT binary patch literal 1690 zcmb7F3pCVe6xV7c5;l1c72#|suM(4qHKs`(oAO9QWMtBK4`$5FZX}gKD2g>xhMkRB zPR*e47@NGOFa|?RljeAgDPqW*{qNbcXSY3jcH8rv@4M%G_x$d?-~FB6{cd`?!;}=X z6=Y;&l;9_vPXm?;>>_zN;2hL#M*v1H*cIk1v-#V4&_K%tEYTkjq}XG!$5d7$y;HW+u)k<>Dve>TqK?LJUkEJj5^A=$I^ zLJOl{W{)x7x??Q2WVs$9mTrMg=NM5q$E2=ZRwr`|Ro@7!zQbq9Xd1ZOb0i%~(F|&B zbnsr87kddrf)$2IkN7fbG2U{NlYQRlCC0h z9j>CG26v5QbJOa*EDNBd{Y+56P+?ZZdzI!ePyW6G>EZv*7PWcSlND19@Fm^Z&{5k7x}KBO5IA3wmU zrH0fHa~NCTIg{<#2Imln{sjpiBOP}WexopCQ=t{^>*vRvnkws}Kq^-kXC#X=LUx*( zbufKz=EWl0Xs06)BRy%#`twu$2LOb&g*TJMdbCYhFARtu8tP)~K|Z6~#!lM}ASPSV zHCEP^8FDFC4NjIJjh^fWnd$oWNZtVJVP^6(?mVE z?M{$g36JIxNx5AD#?6~#H!DNzS8_)i(XiHx3?*^*h!}nx9jzixHE7Nf6AKcdO;Q;k9eYc6_EN3WP$JTrg*a~r@12alBEm!!T-U1d;N>Qr!p(FH zTXDMb$u-kta@A{-Th(R>uk4Hu8qAGj1mdlZ*NkJSz0)>jN8WA5iR1|sopF$55XNi2xRI$~9yb`IYbOUjBrbdoB!L;1K0 zk)oRRtQ2 zs)wEDg&~3+cUb=DU_7$bH_otIJJv4Ka(MsxDpblM9h5}(qkTVO`nZ#*+II*MbD}pg z)T`4x{1qM+cNe;K;1o2Um@ztF~CP5?d|893D4xx(o}@~`P)Hyr=~ literal 4535 zcmd5=S5#A7w~f>Q@=+9|{8T9-T`5XOX`xpEDI!9s(oE^P(x)K)%H z<-A~e;PV?~@zt2`Nwz?zHOut+XffKfP`4^zcTNDIHT#x=Rl-)Mwzd|w(wF%*XTd_d zk2U^Q=?%tkJafzA@jwb*Y+!>!b~va#4aEJe^EL?6u}HZ|0Zdc;HJ0VR7A4LtX(h}H z!U%@H|F#EK^V|z;Rk#LBUsE!V(*`-l;^-!5fN7fFdG1QUKPcJ%FjNCM>VX(67Ma5F z3wy8OWWY38;8%`#Q2T$kez4h&^;_0`TJQgoOyDa@gv=!yFJ$;h$GeFL6|gTh%>J@j zR{yalON2E2fl~TuwHFtcqJJr`#puRbLqva;eDU(F_a7<^J+l=9iu|{yG#$fs zYFCr&X|m+K4Kr=o9JcV7Dri4S2SI!PX@wJw0ZK-suT&?^1>UA72c8L9%}zv__%1Ik zX;c`vr$G3Gw{7G$Z>@{kOqSW9HDg&}^N5q6jKj6zUrQ%Dv(x=ydmXpX&b?_uVKX(p zUdTE6Y(sn<+@o&4M>KA`FZ2EZYA84C60&jjC061KO4h^l>hi*EV+`Gi9Q$fgc0oGY zgq&G@e=2*hF;YmkE>|ByhR# zhMJ)w>OD{BUv+s^_+oaz-1FLwI^@{1Y3xg4!@0uA$@Az*F&7o8vS-qCX=MJ34$j2@mJ434%$kfXilo6MU+gGP^)Pi7wT z!-9cquuWg?NzDgpArt9#)ka!-a!43DhD({%!Q2*cdjSIvHAydE@daHtPrp=Y^@dNw zV?_p>ujt(7o0Ml^qXs+b8ia(Bc9vm=Ph=~`gto)o^?#!eC#o_Q@hF>Ilo=9RP0 z-ObD6?dfbg_n8{$^)-`c!J6X*M=GSX+Z+%53Opu1tCJt#HN3uiam&4?xk=nCr)n`$ zy{M{90)UAbJsUT)PtZs=}_2lUCFW23c~2Im#g; zUo>NN7C1NN8ta)pc?fVa%V(|zx!=Zou&HwFphYPKRn(Vr{`8m>>JLbo^04w*>S7WW z-LJo=b5zJ8s8tZhDX(>G;`$Eqrs=`a;y;XI)l^FyErTf8UKzpsM`Xot+w4c*69+vh!y&HwUH~f%`UgBAk(!^I|s_W;Z z&GKTnwsyC|Jv*!?doRnq?@F?d%TyZN$M2?j-!QGDtNQ-ZEi2@BE84F4NBfhd7g&AU zeYi%zVw}8||MzDM(L=7SuPNQ&hpj(sS^7o4OBrcxs0kREY|X~7h@!kz94*D#X|Es{ z%|FVH?O@X3sF6WwQT)@xJd6QGWBnHaN{(4Rh~98DrxrqeGI3KWimo`~`~Uz%Ng7&( zDI|1HOnO9QLyWD87S+$MUqdSd!cZQlqczDGvote&SoA@TbSrO6V<~v$Vx|7v%>X)Y zA9W!sjhZLx^EL}9pnYdB=!!Fk1Rl__MMKPBXx#p zc%iWaJ$*gFR~IJ+ac-kU9bak81OZwZiZI+9g{#4~+Gct+N->y~-_^@ouLnWDp zDM5$B+Cb$Y3iM=oHHASKO(((F=^-3Xn0~-KqB;{+djALx0T-+R#1vHuD@yH?7jzL2 zzws6_NlZwM--Zt6a1E39@nXRo39>_dZF0eM@Fa?7iEQ_xL?& ziuZsAz$1#;T))EoK^(X8lvPj9%!&z008b?U>j-fmd&HCe-p~cIN0Wlw2FM;8fj`12K=#CdsjvXcV|Ch$?f}_y zlj*uA!0w)jZ*z@-)BgY1Sjl6f%)0Vj=Lh!3Bc9k`!jV#COKg>?Q+W9Qt>{1)>$fzPtpHvQDtCVB0C<6K zl)VP?|2AFY`+~Gyoa_4Q9X)iyvb0B~Gjpq%1tVQ)RGsYN+~bW@j-9eMuRos> z(Lp}1vQ9u!jY9BSu#&1c-9sh&R4oO^wrVVV2myB+GaatqH{q(S`TZj?u6R$HXHk1kc z>+rPJuh7PBwQIw|;;gVbPb-ci)6EslQ)cgbgopNJsQ=4=|9(y{Kcm*0CjRPTO)H*T z+4c1A9~t0E zl%KBVhRG3yjdGS;a)RFR1T8Ve&%UL(QR7Ld5aVIXec;=c0?62SkBQRti6e6`o`88l z-AnC6DunLm?Qan(t%cYQK0SOjgPM9@zf%{hc`CFUuX_30#;Z0mH*_B|sdY9D$Q9N^ z3>d$(x#!-jQCc=ToUa{3I$Rff?QeZ2`M%3Qja*$GPDnU^FW};6^1#eUxueG<-h#r@ zGyXph+x*%v?LWLYV{b{y;SPT>s0N-tROGjEsZ`rFIpbNeB}DNC4dy6wo9WJqM&YY2 z8&BqXd($P2;LG*mmEFWF@22O`bf@*ZO^Yl2Ss`2Io_g)`v z=RT;6aeF|#o{pH${`9z|=devXy;sZ=`u*uoD^(xi<&~8R+wN?;gSju7baPFJdSUO0 zQfnnoyp&PS{6G`ptR|GW-{8p7`uKCDCo#z!XXGSqz7&7FTnGQ)wVnm~4KWJ9qT}hd^%6%c073XxjG{PDz4L)bo$6E+0B{I<3kdvh8ZO*?3dcrV};9WwgfnMA5f#In*nj= zGWls+FI_^gmOfJ{`p;KLvd|LPfST%LKCIazw~kLb-lZ{d9(mSJF@&}(Fh4uT%KqS% zcBFt@UqQJ_m9<`eHObe{p_*mRPil`Zi=#E@h4UJtO$FsuH{Q)4mBp&&fOxnqcE*|5 zu_@9R=(N$sOL9qFXOrU1x0JKFI8nxrg?OvKzykiN;=@7>U_QlebKGe6-0w^mgDNg%j)x@<=si@Z3>Ol$@fN-0yfFIHXmRflr0ft_{{xx|N7F zD^?;R6*&UK02&~Y_DdGiixG)9%9T{ho9JT&+Hr=-hw7%iv=xnjzP?}4r^p|>si$4x zw<$yZ?YyS*h`mDva#hKXy+eI1t1?#&=~&5JNu0|~q#+9eJ2}gsiu=iSH@Zx?yWUNt zTMhQ4kL1y_kiW^i@3L~1(Y@ZJLSnz?1cvmjIyo;jT16YYhJ6EU3on?m$Y1A*F@YMF z*Oy{h6j{_L^2Bj;SNACLW_I{IZNjj}^iPdGXu5C%C1B^tet+(g00>>eD3A{D>y$0( ziFN>?+vWUa1q?Y|_#6IufY9re{)hu+pA|%{=?{>Me^8qZ2q1LOKQUW?DA?M6TMZ&} zn~&>ZxW4xcb*;ttrlHyu*@$FNnWsW+O~}a((!Yy5qKjf_^`hXF*4-ziYv|g1(Yhi38AAXEmY}B z?;WH_2oMk<^l~Qad_T_L^PaPkm1I4cJek@1-q*fo-s|L zd_KEG0bUa=GJL=rg@d++8sv=h$gIc2LLgV=wbYc2pQjRLe34gwb9QX?S*ktYInNV9 z7jLBbru`#?M`KNy>;Bae9`d%r&I8*0i`n$5|2RAFsOytmBzgfX!hgmte^e68@^elq36^?JEG$+4CkA)QSQAq!!EP+fvS zM7addHND9E-(L{f2*vPxc*FNri6x_9S2FHtN9M0L3}+K!_n7k7r@GJ{yvz~4lTnqU zygH=6d9;$&AXJz+K}gjR+M;;w5%d91Y@~PsDo&V zh9(*`|H56&qol z)ZIlLB6g3e{y)JEoBfkEbmcM?3uDg7v4(!L&w5i**2!^4|BZj0m0yTal_y;Z!Y*+5 z7n?AQUaE9fOE~S?{?;O^giBnnG;ejr=F#4!nYMPsA#n|puHa9BHLZeaYfJd=BBz|p zmG#3qi!HvY(8u)j^vDM6f2QG7EN*XCPm}h@UabHA>SB@q-Uf4#Hes!-F@Z1e>|}3s zFgL=FxSFdNc$oh%LveMc)<^H6vxmo*Cq2ndwNyepVhtCrCP+w06%`ljn3$NnQ_m?Z zDjKqIPRkW@Y|sDvSwA#1lyoKJ!j<9S;ZIPTkfVd3BSO_$M)2vt&_ksXaK|Dn))M^I z<>}M@3FnNGfgBCQ;3utQIiFGrS`K8bwX~XkGuAmH(6lR2WUSg_Q5-(V2dV_VKK?}( zm+B>(XHnr2Kl^-<`s7awEwhk>|I!DIolz@yeC=k#QQsPoNSv(quPQ7o+*vIuTP^Q` z8U+T{=iZ(-eWsNBL8{?k`G$?pjQ3;(!fX)kf1R`fZGV10k)TTIN%Fr%ZRXKV*F ztm2xlD5wYPe7B9w&GRo@VO|+7Fp^QY+9!bIH#f7gDw=Nz$D}Sdy(D9mM1Fk8l)L%2 zON5jO8V>o7sAT(=F#KlY+2}*1lO;!|PIBeTYpJgvLD>ypXQf7WdDZ`Uzq5IPbBQ8^ z!IWLW&p0wN@|NnKs=1({t;G(ng*W9OF|4AG?*F8dKRezYsdAr-vw!!9ThQLb#wLv~ zm+JfEq@~u+x4ba?Tn^0W63q=s9Uz3g0-ne3GGCiiR8+`rci;2I=O*4vTLw`vs&bnV zf7ApyqwHz|%aq%|=sanCLr+!jb;+#W-o(|lgo2uNCqt;!)z$TIAwuM8q&i4YuFqVc zS&n+7As@pR^8znkji_M|GzrfoP2E&!1IC*={jF~qM;e3AqTpe)oTcyHQAU_FQmU7gR_tpZUwhUfQw&ESjP^EWh##dF!gL=jM^)_ZLfK9K#uvKC#!47Gk*%T^S{ zE|&)~T2xbGakNV?%1{hMCcY-GR=Ct~TSR1RFjt#6?il?$P!nbt&7rU}>%XZLllL&A zwDI(?%kzQeYhKv?lg-)sWO?864eT1U#HMx>E%VY4s1#9JqfSbVlT$7hO>n8@L#gOD zv&;o-N47_Emc3;ZaG9!fy)7vC*~ai!zzK0IS=2t{=EL-2VXMl1^>ZrvJZr41tm5c( zb7~+RP+Y5{B`JiM^FpkVE}$DFOSyAs%#el^o$fEv>L!b8#e8$_<8UiQXV%qO-*fIA z{uwV+;YW0t`h8zM>D3(&g+WjsL|jI2VP0O?d(=}9D8H>X7Kz}~0OHzMbcF4>`}#aW zlarIE4tAgXh6dY_k&$WMmBISG*`m4NGaK!MI|IJBG>nYb@;LNX8GYOz>pRRtG5p%! z5M$5>IRjB5g`sjnrp5Y>jyW(GY`DtZ&L;STSgHNfDmCXdjw9fYvI5Y&@5ykanZuWl z%e`qugsCdhdUjR@z$k5Ue)$Tw8ChZ5I`g%$GBYi$w**g>tlZoORkMCYVE)E7Ha+y% z3t$+~#pX(amD_-0v_c+}km)#7z&JTM88zcQR*;qT64xxuB{=`~sd(Wnqr8=L|Bd<6 z#yjv}XkAH(E~pxLmJQwzhUpkkT(KJOToUOl0(%envAU ztK|LFeNM5o$7)#aYQVf6>gDSm+LzA!#6p!R&njwm>OFc-9pDz{pK zjq>G=(Gn{RCfyH~BI)|Gpz&)Ot!c4&mR-=n1CrOdz+#=5oy`M=QdV93{sCxn1%!U7 zAO(T|;mpof0R&alIOgCHv>!el?m5|;E0aKsjzcfrN|pCDl$t@sDxMvCfiy>Zb#ibE zelR>Tk{Zg>1<#bLZ`F{AshPc_i7 zVm=iX-X^Y&fTF93%v4hWIL0m~BTySPxI!#8`NmH#{iDTP7P|nkzEI~k0$$IOcQI~! z_*b-wTzp=`FV2yXfN5t}wy@xkCht3l){=?HYz-z&5|oNDpu}w3&B z?MqjbiQJ9I^)E>j>QU=S@M6V40Mj7bmNornV3D&$Rd zYdk@pY;|y2);<3MIQrdd9!eM2zuc2TY$Bsw0bk%YHNvNxL$8dCkLTxVCl=Z@24V4e zDagb)#%cw@z6zik&^1#^l7GEQNMIJW!5WjK2PiUBkPrL*I&qs102v1T!pl$7F*?f(qzg`1~> zw0H1r0qxQRZ8RKh?Avr2RgQ^p23NYz1x=!*38ExO$5e|kiGIB29Cdnt%P1Cc-d^rW zR`5rUCX(G^c#C@c$az}hGKAuPn(}kX|L(#|s-K#C3wTcKU%w#8-w0=Ayc3=8iL+q& zma}kbsmM9@JILriTaGCdf8Q`bLiiRN4JKuJ7Go7AKBNxe7cj(yPSKI$$+@*-zhi{n znA8wjOI#OcS%*yA_pNaae@ysTEGe)Z9V|RV)OGe>;;C{?aGTTlR?nb|LnVFCY$c-q zc%?jHi%aui6KLa4hE8m@H>T@3Vw3CwaIl@^A!5%r8-^2Ge_`87?QCD~Ql)`%#`=t2 zKk2}p2%>kbf@ge+r1oBgF?Z6&-JyA$Br$M>@FX;K{ZY~#xuFB!Huy(WkVs0GEYxTMji0?6w_-FJ4UBe;ZC@Xrt`F~TTcvwV zDZhSoP47svocDpqQQ{3-k&dstFag~C)b!7LhpVM22mHx52Yz^9Z~=p9&=E{vb|p+o zKBmOI(8(FgQIN2FvW`h|&pT#p~cc5e7eOpu13(QY-+Xp?P_)F4=2`JY%k52xI;Q68tjPbpUDp> zALn71{u)S5-suc%6(M&@zv3BA>*=Z-A1Uc5C%Quc0Zrgv8UL7|9!og9Aj7-q*UCW7 z>TG>27B!!;6_O41fNgDU4R>(e_xidIJ?pMkp88E%QeD5R7K55{tvax!dXIqCu9p}0 zHX_DK0db5hEG$eDU!5WPntFk8kH6QSoRZ?*#$=XXS!sIV!Uf=v2LU}0wRgC(KJS|K z8c-Oq?()wUmJIXk{jO@1n}b274VPMBfhtMkL+%uKFIkHz-a zo8fTHSJR2KC-Iq7AAuolh1M*^jK|$FGSsUAmfKueSs4j9s%S!y3bi{FGOH(BE-Gsn z1TOrO@Ah(T>PD2@hCaZMX^G|UhxYf+9}L>bXk5Rq*NguoD?q+~OXRSKplX@gi_#M~ zm85FQ3s@;*GoTo5kGw%LGGKdvn6CCvqL+jdds8(@;9y&mr6m_#U*t zE_HHKRC%Jbx_TUaxl_!^$*EHN5BrhU^7PJ)UW4;5{w;j}vm8A}QrD*w1lR#c9HLnu z9z(`IY?Dw74q^J1<0B8WddH+z&av+t{w+=D-SG6{W~hquEBF1jieUJx-g(gx@vTi?kElVy@$~EG z*eWW1R_Mg>C)_Kc+L$zio{!=d(p5<*A!S=5?g#X>bkfa+q36EdV}xS{-Pn91Ig2@+ zJZ15QU+=LpA!Ba2H! zq%Mh}%A$vTKiC;zO-8BImz7$U46*ftbO1$F_2QRPh6zz-@|uKjfsRCupyrF$ojU^N^7BV29rs*1PCtBXF_^ O(R!e#R;uzS?kAw7Bo3-Jm|Cxo6gf+%yPh-UwM% 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 diff --git a/docs/manual/images/text_selector_t_0.png b/docs/manual/images/text_selector_t_0.png index 101c0d30322ec47e40f8751318e1c5015061c8f1..10096da02f8da203cd8661335370630e0d44f4ec 100644 GIT binary patch literal 1746 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 diff --git a/docs/manual/images/time_clock_t_0.png b/docs/manual/images/time_clock_t_0.png index 7908424868252f805071115a429c4572193ca2c0..6103d39b0170a6d6756909d45ff50cb0553610a3 100644 GIT binary patch literal 1680 zcmb_ddr%Tc9QH1CiZUt_uGBE>tz|;um;z^+L>6ggo}y@pIHF=$VTq6Hb(jRECPt-{ zkI1s@z%oSa%v3ykT&9o$nqqb;SmqNEJ({~~{Nv{CpPQZC-_EzQzuo!1{eFAF7l*L` ztOS^tm{?$UdmS)FuCeFOH#d&_7ae8BV1C30<7G1YrQMM5bBw?)te5A(lh?JXeKD4J zo5tbU5QS}!7YS*?KT^}bbmQ3*n7KDFZx}rCI zQG%DbD6MT?vSF%iNF|P9Fc~1Fk(w&{NBCSln zIlLWaoEU5)1E0JJp-E9STi30FwdM(5P4Zo)_pr8iELsKeKu`>h3O3%!gLGAEfd-+b zdfhTO5@a43-2M)0J5y_shMq14)05IVn0B=3OkzN~y9*QzT}ZV(*ukXncCHs>=xp`}hvfV_MPHeFi5d`AS8K={N>!>*@$vrb ze2-Itfzsu&{^MnBvmUavcISpWipjViDS5btCQQQQxtO>hFmg zN0X2WrP8CyG6r#N+@MdS8>UXw!$;<2l{}D0;#8E0-*K9!=NCSD@E}}E6Zdd+r=xh_`<|Ijh%Su*6^Q!`643o*c4)eDYILqX6?bO&Ht?xNEt13^J3-ZzFj@VS zx&MecM&OL&p^$=D8V!-)R!Hpz&NahVrM=Am2iQJserIj%X=K`raxoBi_ev(XQ$mk| z!{Gt@i#Q+ILPJs?uk#aV;J@qVo9V1$XaHZ(b3vhJhXkY zXx)FBdCvVszd{$DxpC)a_jhTpQ*d=o%K~}ORTujee2$NMb|ey}8$SyeoY23V@N_O< z!U1yPC5PlHo7A=E!mRwttEqf$xBreMrkKG+vvgS;$?72ltBz_Xv>*g*Jn@MT6~Aja z+i{;Mb+8e+%Cz?Ncu%4Ad?$xxJC$i+y_d6TsizuWh|7a`l~6Lh%BFL;I51)I=kBe- z4E^a3l9@g3PdwCB=|zs6U7>s+KnC~;@uw|(AN}{sZKdvC| z7Sg59wo+Q+nJuUc>d0~=Ga5ss-YQ!QPQ5DVCtmS3HAt2D3GqgQQI7ZY9U>~B@hu#~ z2=l-|e}b}CpiJ>j;fYSg{d-XbH~S0iTGKs-9OjEITX%)0!#xjmj8z82Hg82 zjvvADjv(rG6Twb|ZE)fH_mPIOt<=5`A21xV6i6x`Ku}-(QpNw=KZJg$4u2bR&Udl# Pi!s6O!g<}_5q{L|fr*ImP3kQ1bdDT#Df_nH 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 literal 4371 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