diff --git a/3rd/SDL/src/video/windows/SDL_windowsevents.c b/3rd/SDL/src/video/windows/SDL_windowsevents.c index 6ca3e82e94..dc9ef87812 100644 --- a/3rd/SDL/src/video/windows/SDL_windowsevents.c +++ b/3rd/SDL/src/video/windows/SDL_windowsevents.c @@ -629,6 +629,9 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) case WM_KEYDOWN: case WM_SYSKEYDOWN: { + if(wParam == VK_PROCESSKEY) { + break; + } SDL_Scancode code = WindowsScanCodeToSDLScanCode(lParam, wParam); const Uint8 *keyboardState = SDL_GetKeyboardState(NULL); diff --git a/3rd/freetype_single_header/freetype.h b/3rd/freetype_single_header/freetype.h index fb67c097b2..3ca50080a7 100644 --- a/3rd/freetype_single_header/freetype.h +++ b/3rd/freetype_single_header/freetype.h @@ -1,4 +1,4 @@ -#pragma once +#pragma once #if defined(_MSC_VER) && !defined(__clang__) # pragma warning(push) diff --git a/3rd/libunibreak/linebreak.c b/3rd/libunibreak/linebreak.c index 5b2ce3b189..2219764ac1 100644 --- a/3rd/libunibreak/linebreak.c +++ b/3rd/libunibreak/linebreak.c @@ -84,7 +84,7 @@ enum BreakAction * adjusted after special processing as per LB8a of Revision 41) and CB * (manually added as per LB20). */ -static enum BreakAction baTable[LBP_CB][LBP_CB] = { +static const enum BreakAction baTable[LBP_CB][LBP_CB] = { { /* OP */ PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, diff --git a/3rd/nanovg/base/fontstash.h b/3rd/nanovg/base/fontstash.h index 9df68b31a9..6351875958 100644 --- a/3rd/nanovg/base/fontstash.h +++ b/3rd/nanovg/base/fontstash.h @@ -93,6 +93,8 @@ typedef struct FONScontext FONScontext; FONScontext* fonsCreateInternal(FONSparams* params); void fonsDeleteInternal(FONScontext* s); +void fontsDeleteFontByName(FONScontext* stash, const char* name); + void fonsSetErrorCallback(FONScontext* s, void (*callback)(void* uptr, int error, int val), void* uptr); // Returns current atlas size. void fonsGetAtlasSize(FONScontext* s, int* width, int* height); @@ -1628,6 +1630,35 @@ int fonsValidateTexture(FONScontext* stash, int* dirty) return 0; } +void fontsDeleteFontByName(FONScontext* stash, const char* name) +{ + int id = 0; + if (stash == NULL) return; + if(name == NULL) { + for (id = 0; id < stash->nfonts; ++id) { + fons__freeFont(stash->fonts[id]); + } + stash->nfonts = 0; + } + else { + id = fonsGetFontByName(stash, name); + if(id >= 0) { + fons__freeFont(stash->fonts[id]); + + for(; id < stash->nfonts; id++) { + if(id + 1 < stash->nfonts) { + stash->fonts[id] = stash->fonts[id + 1]; + } + else { + stash->fonts[id] = NULL; + break; + } + } + stash->nfonts--; + } + } +} + void fonsDeleteInternal(FONScontext* stash) { int i; diff --git a/3rd/nanovg/base/nanovg.c b/3rd/nanovg/base/nanovg.c index ddc09d9375..7b719de05c 100644 --- a/3rd/nanovg/base/nanovg.c +++ b/3rd/nanovg/base/nanovg.c @@ -867,6 +867,15 @@ void nvgImageSize(NVGcontext* ctx, int image, int* w, int* h) ctx->params.renderGetTextureSize(ctx->params.userPtr, image, w, h); } +void nvgDeleteFontByName(NVGcontext* ctx, const char* name) +{ +#ifdef WITH_NANOVG_GPU + if (ctx->fs) { + fontsDeleteFontByName(ctx->fs, name); + } +#endif +} + void nvgDeleteImage(NVGcontext* ctx, int image) { ctx->params.renderDeleteTexture(ctx->params.userPtr, image); diff --git a/3rd/nanovg/base/nanovg.h b/3rd/nanovg/base/nanovg.h index fd61ff3189..5c4e1d8b67 100644 --- a/3rd/nanovg/base/nanovg.h +++ b/3rd/nanovg/base/nanovg.h @@ -388,6 +388,9 @@ void nvgImageSize(NVGcontext* ctx, int image, int* w, int* h); // Deletes created image. void nvgDeleteImage(NVGcontext* ctx, int image); +// Deletes font's assets for font's name. +void nvgDeleteFontByName(NVGcontext* ctx, const char* name); + // // Paints // diff --git a/demos/assets.c b/demos/assets.c index 15d4295a59..054a70c5b7 100644 --- a/demos/assets.c +++ b/demos/assets.c @@ -1,409 +1,413 @@ #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/system_bar_bottom.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/draggable.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/mono_test.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/system_bar_bottom.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 +416,284 @@ 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_system_bar_bottom); + 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_draggable); + 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_mono_test); + 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_system_bar_bottom); + 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/data/a_b_c_any.data b/demos/assets/default/inc/data/a_b_c_any.data index 6dadf42b1f..c3a60ca5cd 100644 --- a/demos/assets/default/inc/data/a_b_c_any.data +++ b/demos/assets/default/inc/data/a_b_c_any.data @@ -1,4 +1,4 @@ TK_CONST_DATA_ALIGN(const unsigned char data_a_b_c_any[]) = { -0x08,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x2d,0x62,0x2d,0x63,0x2e,0x61,0x6e, +0x08,0x00,0x00,0x01,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x2d,0x62,0x2d,0x63,0x2e,0x61,0x6e, 0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x61,0x62,0x63,0x0a,0x00,0x00,0x00,0x00,};/*52*/ +0x00,0x00,0x00,0x00,0x61,0x62,0x63,0x0d,0x0a,0x00,0x00,0x00,0x00,};/*53*/ diff --git a/demos/assets/default/inc/data/com_zlg_app_json.data b/demos/assets/default/inc/data/com_zlg_app_json.data index c40ea8db8a..38bd48de4b 100644 --- a/demos/assets/default/inc/data/com_zlg_app_json.data +++ b/demos/assets/default/inc/data/com_zlg_app_json.data @@ -1,4 +1,4 @@ TK_CONST_DATA_ALIGN(const unsigned char data_com_zlg_app_json[]) = { -0x08,0x00,0x03,0x01,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x6f,0x6d,0x2e,0x7a,0x6c,0x67,0x2e, +0x08,0x00,0x03,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x6f,0x6d,0x2e,0x7a,0x6c,0x67,0x2e, 0x61,0x70,0x70,0x2e,0x6a,0x73,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x7b,0x7d,0x0a,0x00,0x00,0x00,0x00,};/*51*/ +0x00,0x00,0x00,0x00,0x7b,0x7d,0x0d,0x0a,0x00,0x00,0x00,0x00,};/*52*/ diff --git a/demos/assets/default/inc/data/test_dat.data b/demos/assets/default/inc/data/test_dat.data index 2820d503df..53256ad4b5 100644 --- a/demos/assets/default/inc/data/test_dat.data +++ b/demos/assets/default/inc/data/test_dat.data @@ -1,4 +1,4 @@ TK_CONST_DATA_ALIGN(const unsigned char data_test_dat[]) = { -0x08,0x00,0x04,0x01,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x2e,0x64,0x61,0x74, +0x08,0x00,0x04,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x2e,0x64,0x61,0x74, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x61,0x62,0x63,0x64,0x0a,0x00,0x00,0x00,0x00,};/*53*/ +0x00,0x00,0x00,0x00,0x61,0x62,0x63,0x64,0x0d,0x0a,0x00,0x00,0x00,0x00,};/*54*/ diff --git a/demos/assets/default/inc/data/test_json.data b/demos/assets/default/inc/data/test_json.data index a31b8d243a..5c2a0c18ea 100644 --- a/demos/assets/default/inc/data/test_json.data +++ b/demos/assets/default/inc/data/test_json.data @@ -1,5 +1,5 @@ TK_CONST_DATA_ALIGN(const unsigned char data_test_json[]) = { -0x08,0x00,0x03,0x01,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x2e,0x6a,0x73,0x6f, +0x08,0x00,0x03,0x01,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x2e,0x6a,0x73,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,0x7b,0x0a,0x20,0x20,0x22,0x6e,0x61,0x6d,0x65,0x22,0x3a,0x22,0x66,0x6f,0x72,0x20, -0x74,0x65,0x73,0x74,0x22,0x0a,0x7d,0x0a,0x00,0x00,0x00,0x00,};/*72*/ +0x00,0x00,0x00,0x00,0x7b,0x0d,0x0a,0x20,0x20,0x22,0x6e,0x61,0x6d,0x65,0x22,0x3a,0x22,0x66,0x6f,0x72, +0x20,0x74,0x65,0x73,0x74,0x22,0x0d,0x0a,0x7d,0x0d,0x0a,0x00,0x00,0x00,0x00,};/*75*/ diff --git a/demos/assets/default/inc/fonts/default.data b/demos/assets/default/inc/fonts/default.data index 02e95ea859..c31e002c78 100644 --- a/demos/assets/default/inc/fonts/default.data +++ b/demos/assets/default/inc/fonts/default.data @@ -1,698 +1,698 @@ TK_CONST_DATA_ALIGN(const unsigned char font_default[]) = { -0x01,0x00,0x02,0x01,0x35,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x00, +0x01,0x00,0x02,0x01,0x39,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,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,0x00,0x00,0x00,0x00,0x70,0x00,0x12,0x0d,0x0a,0x00,0xc8,0x01,0x20,0x00,0xc8,0x01, -0x21,0x00,0xc8,0x01,0x22,0x00,0xfe,0x01,0x23,0x00,0x23,0x02,0x24,0x00,0xb1,0x02,0x25,0x00,0x4d,0x03, -0x26,0x00,0x1d,0x04,0x27,0x00,0xb8,0x04,0x28,0x00,0xce,0x04,0x29,0x00,0x2a,0x05,0x2a,0x00,0x76,0x05, -0x2b,0x00,0xac,0x05,0x2c,0x00,0xf8,0x05,0x2d,0x00,0x13,0x06,0x2e,0x00,0x2f,0x06,0x2f,0x00,0x44,0x06, -0x30,0x00,0xa4,0x06,0x31,0x00,0x2e,0x07,0x32,0x00,0x61,0x07,0x33,0x00,0xe2,0x07,0x34,0x00,0x6c,0x08, -0x35,0x00,0xfa,0x08,0x36,0x00,0x84,0x09,0x37,0x00,0x0e,0x0a,0x38,0x00,0x86,0x0a,0x39,0x00,0x10,0x0b, -0x3a,0x00,0x9a,0x0b,0x3b,0x00,0xbe,0x0b,0x3c,0x00,0xe8,0x0b,0x3d,0x00,0x44,0x0c,0x3e,0x00,0x78,0x0c, -0x3f,0x00,0xd4,0x0c,0x40,0x00,0x48,0x0d,0x41,0x00,0x26,0x0e,0x42,0x00,0xce,0x0e,0x43,0x00,0x5c,0x0f, -0x44,0x00,0x02,0x10,0x45,0x00,0x9a,0x10,0x46,0x00,0x28,0x11,0x47,0x00,0xa9,0x11,0x48,0x00,0x4f,0x12, -0x49,0x00,0xdd,0x12,0x4a,0x00,0x03,0x13,0x4b,0x00,0x7f,0x13,0x4c,0x00,0x1a,0x14,0x4d,0x00,0x9b,0x14, -0x4e,0x00,0x6a,0x15,0x4f,0x00,0xf8,0x15,0x50,0x00,0x9e,0x16,0x51,0x00,0x2c,0x17,0x52,0x00,0xe0,0x17, -0x53,0x00,0x7b,0x18,0x54,0x00,0x13,0x19,0x55,0x00,0xa1,0x19,0x56,0x00,0x39,0x1a,0x57,0x00,0xdf,0x1a, -0x58,0x00,0xae,0x1b,0x59,0x00,0x56,0x1c,0x5a,0x00,0xe4,0x1c,0x5b,0x00,0x72,0x1d,0x5c,0x00,0xbe,0x1d, -0x5d,0x00,0x1e,0x1e,0x5e,0x00,0x6a,0x1e,0x5f,0x00,0x8a,0x1e,0x60,0x00,0xa4,0x1e,0x61,0x00,0xc0,0x1e, -0x62,0x00,0x26,0x1f,0x63,0x00,0xa7,0x1f,0x64,0x00,0x0d,0x20,0x65,0x00,0x8e,0x20,0x66,0x00,0xfd,0x20, -0x67,0x00,0x64,0x21,0x68,0x00,0xe5,0x21,0x69,0x00,0x66,0x22,0x6a,0x00,0x99,0x22,0x6b,0x00,0xfa,0x22, -0x6c,0x00,0x7b,0x23,0x6d,0x00,0xa1,0x23,0x6e,0x00,0x2b,0x24,0x6f,0x00,0x87,0x24,0x70,0x00,0xed,0x24, -0x71,0x00,0x77,0x25,0x72,0x00,0x01,0x26,0x73,0x00,0x53,0x26,0x74,0x00,0xb7,0x26,0x75,0x00,0x25,0x27, -0x76,0x00,0x82,0x27,0x77,0x00,0xe8,0x27,0x78,0x00,0x6c,0x28,0x79,0x00,0xc9,0x28,0x7a,0x00,0x4a,0x29, -0x7b,0x00,0xa7,0x29,0x7c,0x00,0x03,0x2a,0x7d,0x00,0x2f,0x2a,0x7e,0x00,0x8b,0x2a,0x02,0x30,0xb5,0x2a, -0x2d,0x4e,0xda,0x2a,0x3a,0x4e,0xa9,0x2b,0x3c,0x50,0x87,0x2c,0xd6,0x53,0x74,0x2d,0x57,0x5b,0x52,0x2e, -0x9a,0x5b,0x3f,0x2f,0x87,0x65,0x2c,0x30,0x4b,0x6d,0xfc,0x30,0x88,0x6d,0xda,0x31,0x6e,0x78,0xb8,0x32, -0x26,0x7b,0x96,0x33,0xd5,0x8b,0x83,0x34,0x01,0xff,0x70,0x35,0x0c,0xff,0xa6,0x35,0x1f,0xff,0xc1,0x35, -0x00,0x00,0xf4,0xff,0x03,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x05,0x00,0x0f,0xd6,0x1d,0x1f,0xff, -0x3a,0x11,0xff,0x2b,0x03,0xfe,0x1b,0x00,0xf3,0x0c,0x00,0xe1,0x00,0x00,0xc4,0x00,0x00,0xa6,0x00,0x00, -0x88,0x00,0x00,0x15,0x00,0x00,0x2c,0x00,0x0d,0xd6,0x17,0x00,0x03,0x00,0x00,0x00,0xf4,0xff,0x05,0x00, -0x05,0x00,0x04,0x00,0x00,0x00,0x07,0x2a,0x00,0x32,0x00,0x57,0xbe,0x16,0xfa,0x05,0x3f,0xab,0x03,0xe7, -0x00,0x20,0x8f,0x00,0xaf,0x00,0x04,0x57,0x00,0x5b,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x0a, -0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x7d,0x55,0x00,0x00, -0xd1,0x00,0x00,0x00,0x00,0x00,0x9e,0x34,0x00,0x15,0xbc,0x00,0x00,0x00,0x00,0x00,0xbf,0x13,0x00,0x36, -0x9b,0x00,0x00,0x02,0x8a,0x8a,0xea,0x8a,0x8a,0xb2,0xc3,0x8a,0x56,0x00,0x00,0x05,0xcb,0x00,0x00,0x79, -0x58,0x00,0x00,0x00,0x00,0x23,0xad,0x00,0x00,0x9a,0x36,0x00,0x00,0x00,0x00,0x44,0x8b,0x00,0x00,0xba, -0x14,0x00,0x00,0x4c,0x8c,0xb6,0xc0,0x8c,0x8c,0xe9,0x8c,0x8c,0x11,0x01,0x02,0x87,0x49,0x02,0x05,0xcb, -0x02,0x02,0x00,0x00,0x00,0xa7,0x27,0x00,0x1e,0xb0,0x00,0x00,0x00,0x00,0x00,0xc6,0x08,0x00,0x3f,0x8f, -0x00,0x00,0x00,0x00,0x00,0xb8,0x00,0x00,0x54,0x64,0x00,0x00,0x00,0x00,0x00,0xf3,0xff,0x09,0x00,0x10, -0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9d,0x00, -0x00,0x00,0x00,0x00,0x03,0x47,0x92,0xd7,0x87,0x2d,0x00,0x00,0x00,0xa0,0x74,0x0a,0x9d,0x13,0x93,0x2e, -0x00,0x13,0xd4,0x01,0x00,0x9d,0x00,0x02,0x4e,0x00,0x3b,0xbc,0x00,0x00,0x9d,0x00,0x00,0x00,0x00,0x01, -0xd8,0x4b,0x00,0x9d,0x00,0x00,0x00,0x00,0x00,0x39,0xba,0xc5,0xbc,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, -0x30,0xdb,0xda,0x77,0x09,0x00,0x00,0x00,0x00,0x00,0x9d,0x13,0xac,0x76,0x00,0x00,0x00,0x00,0x00,0x9d, -0x00,0x24,0xdb,0x00,0x27,0x0d,0x00,0x00,0x9d,0x00,0x1d,0xc2,0x00,0x10,0x97,0x17,0x00,0x9d,0x02,0x87, -0x6a,0x00,0x00,0x16,0x8d,0x9e,0xd9,0xaa,0x73,0x0d,0x00,0x00,0x00,0x00,0x01,0xa0,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0e,0x00,0x0e,0x00,0x0d,0x00,0x00, -0x00,0x00,0x00,0x23,0x38,0x00,0x00,0x00,0x00,0x00,0x3a,0x42,0x00,0x00,0x00,0x00,0x80,0x70,0x59,0x9b, -0x00,0x00,0x00,0x00,0xb9,0x1c,0x00,0x00,0x00,0x08,0xb8,0x00,0x00,0x98,0x28,0x00,0x00,0x45,0x90,0x00, -0x00,0x00,0x00,0x47,0x8e,0x00,0x00,0x67,0x6d,0x00,0x01,0xbe,0x17,0x00,0x00,0x00,0x00,0x33,0xa1,0x00, -0x00,0x77,0x5c,0x00,0x4d,0x89,0x00,0x00,0x00,0x00,0x00,0x02,0xc4,0x02,0x00,0xab,0x1a,0x01,0xc2,0x13, -0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x97,0x92,0x71,0x00,0x55,0x81,0x00,0x00,0x1b,0x05,0x00,0x00,0x00, -0x00,0x01,0x07,0x00,0x03,0xc4,0x0f,0x05,0x8d,0x71,0x93,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x5d,0x7a, -0x00,0x41,0x79,0x00,0x01,0xbc,0x00,0x00,0x00,0x00,0x00,0x05,0xc7,0x0c,0x00,0x8b,0x43,0x00,0x00,0xbd, -0x15,0x00,0x00,0x00,0x00,0x65,0x73,0x00,0x00,0x8f,0x43,0x00,0x00,0xbd,0x18,0x00,0x00,0x00,0x07,0xc8, -0x09,0x00,0x00,0x48,0x7b,0x00,0x01,0xc4,0x00,0x00,0x00,0x00,0x6d,0x6b,0x00,0x00,0x00,0x09,0x97,0x6a, -0x94,0x5e,0x00,0x00,0x00,0x00,0x34,0x07,0x00,0x00,0x00,0x00,0x00,0x26,0x0b,0x00,0x00,0x00,0x00,0xf4, -0xff,0x0b,0x00,0x0d,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x04,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x58,0xa3,0x87,0x9e,0x98,0x09,0x00,0x00,0x00,0x00,0x0a,0xda,0x05,0x00,0x00,0x8d,0x63,0x00, -0x00,0x00,0x00,0x59,0x9c,0x00,0x00,0x00,0x4d,0xaf,0x00,0x00,0x00,0x00,0x3d,0xbd,0x00,0x00,0x00,0xad, -0x61,0x00,0x00,0x00,0x00,0x04,0xe6,0x07,0x49,0xb7,0x98,0x0b,0x00,0x00,0x00,0x00,0x00,0xc2,0xd2,0x84, -0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x7d,0xc1,0xd5,0x28,0x00,0x00,0x00,0x82,0x0c,0x00,0x19,0xfc,0x30, -0x31,0xd1,0x1c,0x00,0x03,0xf6,0x21,0x00,0x47,0xc3,0x00,0x00,0x3b,0xcd,0x43,0x28,0xe2,0x00,0x00,0x06, -0xde,0x11,0x00,0x00,0x12,0xa9,0xb9,0xa3,0x00,0x00,0x00,0x84,0x97,0x1e,0x00,0x14,0x78,0xe9,0xb6,0x47, -0x00,0x00,0x06,0x45,0x8f,0xab,0xcc,0xa0,0x20,0x03,0x57,0x65,0x00,0x00,0xf4,0xff,0x02,0x00,0x05,0x00, -0x02,0x00,0x00,0x00,0x03,0x2d,0x44,0xd0,0x2b,0xbe,0x0b,0xa1,0x00,0x58,0x00,0x00,0xf3,0xff,0x05,0x00, -0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x03,0x94,0x00,0x00,0x00,0x6c,0x4c, -0x00,0x00,0x16,0xc2,0x01,0x00,0x00,0x83,0x67,0x00,0x00,0x00,0xbb,0x36,0x00,0x00,0x01,0xed,0x0f,0x00, -0x00,0x23,0xe7,0x00,0x00,0x00,0x31,0xda,0x00,0x00,0x00,0x06,0xf3,0x04,0x00,0x00,0x00,0xcd,0x22,0x00, -0x00,0x00,0x9b,0x51,0x00,0x00,0x00,0x3a,0xbd,0x00,0x00,0x00,0x00,0x94,0x38,0x00,0x00,0x00,0x0e,0x94, -0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xf3,0xff,0x04,0x00,0x10,0x00,0x04,0x00,0x00,0x00,0x0e,0x06, -0x00,0x00,0x24,0x73,0x00,0x00,0x00,0x9c,0x1c,0x00,0x00,0x30,0xa9,0x00,0x00,0x00,0xc1,0x28,0x00,0x00, -0x90,0x5f,0x00,0x00,0x69,0x92,0x00,0x00,0x41,0xc6,0x00,0x00,0x35,0xd3,0x00,0x00,0x59,0xa2,0x00,0x00, -0x7e,0x71,0x00,0x00,0xae,0x3f,0x00,0x20,0xd1,0x06,0x00,0x91,0x3b,0x00,0x15,0x8b,0x00,0x00,0x21,0x0e, -0x00,0x00,0x00,0x00,0xf4,0xff,0x06,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00, -0x00,0x00,0x5a,0x58,0x00,0x00,0x28,0xbc,0x78,0x76,0xb8,0x26,0x00,0x1f,0xd9,0xdd,0x26,0x00,0x15,0xcd, -0x87,0x86,0xc8,0x25,0x03,0x05,0x58,0x60,0x04,0x01,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0xf7,0xff, -0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x3b, -0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x88,0x00,0x00,0x00,0x44,0x7c,0x7c,0x9a,0xc2,0x7c,0x7c,0x69, -0x14,0x25,0x25,0x57,0x99,0x25,0x25,0x1f,0x00,0x00,0x00,0x3b,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x3b, -0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x42,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0x03,0x00,0x05,0x00, -0x03,0x00,0x00,0x00,0x00,0x11,0x00,0x1e,0xeb,0x2b,0x00,0x8f,0x30,0x17,0xb4,0x02,0x19,0x05,0x00,0x00, -0x00,0xfa,0xff,0x08,0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x49,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x64,0x16, -0x25,0x25,0x25,0x25,0x25,0x25,0x1e,0x00,0x00,0xfe,0xff,0x03,0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00, -0x11,0x00,0x25,0xee,0x18,0x00,0x2f,0x00,0x00,0x00,0xf4,0xff,0x06,0x00,0x0e,0x00,0x05,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x4a,0x4b,0x00,0x00,0x00,0x00,0xac,0x1b,0x00,0x00,0x00,0x0d,0xba,0x00,0x00,0x00, -0x00,0x5a,0x6e,0x00,0x00,0x00,0x00,0xae,0x1b,0x00,0x00,0x00,0x0e,0xbb,0x00,0x00,0x00,0x00,0x5c,0x6e, -0x00,0x00,0x00,0x00,0xb0,0x1a,0x00,0x00,0x00,0x0f,0xbc,0x00,0x00,0x00,0x00,0x5e,0x6d,0x00,0x00,0x00, -0x00,0xb2,0x1a,0x00,0x00,0x00,0x10,0xbc,0x00,0x00,0x00,0x00,0x60,0x6d,0x00,0x00,0x00,0x00,0x7f,0x1a, -0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x09, -0x3f,0x21,0x00,0x00,0x00,0x00,0x00,0x54,0xea,0x77,0x8b,0xb4,0x0c,0x00,0x00,0x3e,0xcd,0x23,0x00,0x00, -0x5d,0xae,0x00,0x00,0xb7,0x4d,0x00,0x00,0x00,0x01,0xdd,0x24,0x13,0xf0,0x04,0x00,0x00,0x00,0x00,0x90, -0x75,0x34,0xd4,0x00,0x00,0x00,0x00,0x00,0x74,0x93,0x52,0xb9,0x00,0x00,0x00,0x00,0x00,0x5d,0xaf,0x4b, -0xc0,0x00,0x00,0x00,0x00,0x00,0x63,0xab,0x2f,0xda,0x00,0x00,0x00,0x00,0x00,0x7b,0x95,0x0f,0xf2,0x0b, -0x00,0x00,0x00,0x00,0x9f,0x79,0x00,0xa6,0x61,0x00,0x00,0x00,0x03,0xe9,0x26,0x00,0x30,0xd3,0x1c,0x00, -0x00,0x72,0xb5,0x00,0x00,0x00,0x37,0xb9,0x99,0xa8,0xa5,0x0a,0x00,0x00,0x00,0x00,0x00,0x0f,0x03,0x00, -0x00,0x00,0x00,0x00,0xf4,0xff,0x03,0x00,0x0d,0x00,0x04,0x00,0x00,0x00,0x0f,0x18,0x00,0x1c,0x98,0xb0, -0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f, -0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1e,0xd8,0x00,0x00,0xf4,0xff,0x09,0x00,0x0d, -0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x31,0x00,0x00,0x00,0x00,0x00,0x1c,0x96,0x92,0x7f,0xb8, -0x81,0x08,0x00,0x00,0x90,0x16,0x00,0x00,0x01,0xa6,0x58,0x00,0x31,0x5b,0x00,0x00,0x00,0x00,0x45,0xb9, -0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x29,0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x93,0x00,0x00, -0x00,0x00,0x00,0x00,0x46,0xde,0x2e,0x00,0x00,0x00,0x00,0x01,0x79,0xce,0x23,0x00,0x00,0x00,0x00,0x08, -0xa6,0x9a,0x0a,0x00,0x00,0x00,0x00,0x16,0xb1,0x4d,0x00,0x00,0x00,0x00,0x00,0x00,0xa7,0x4b,0x00,0x00, -0x00,0x00,0x00,0x00,0x0c,0xac,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x50,0xec,0xec,0xec,0xec,0xec,0xec, -0xc1,0x01,0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x3a,0x09, -0x00,0x00,0x00,0x00,0x05,0x94,0x9f,0x74,0xb2,0xa2,0x21,0x00,0x00,0x7d,0x36,0x00,0x00,0x00,0x6c,0x9d, -0x00,0x11,0x52,0x00,0x00,0x00,0x00,0x0d,0xec,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0xe8,0x06,0x00, -0x00,0x00,0x00,0x01,0x26,0xba,0x7f,0x00,0x00,0x00,0x00,0x97,0xe8,0xad,0x25,0x00,0x00,0x00,0x00,0x00, -0x0f,0x47,0x80,0xa5,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0xd9,0x01,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0xc6,0x46,0x25,0x0a,0x00,0x00,0x00,0x00,0x04,0xe6,0x2f,0x16,0xa0,0x23,0x00,0x00,0x02,0x64, -0xca,0x00,0x00,0x11,0x9a,0xb0,0xaa,0xcb,0x94,0x2d,0x00,0x00,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x00, -0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xb0,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0xbe,0xeb, -0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0xcd,0x21,0xeb,0x00,0x00,0x00,0x00,0x00,0x37,0xde,0x1d,0x17,0xeb, -0x00,0x00,0x00,0x00,0x1c,0xde,0x38,0x00,0x17,0xeb,0x00,0x00,0x00,0x0a,0xcc,0x5c,0x00,0x00,0x17,0xeb, -0x00,0x00,0x01,0xa9,0x87,0x00,0x00,0x00,0x17,0xeb,0x00,0x00,0x42,0xb7,0x02,0x00,0x00,0x00,0x17,0xeb, -0x00,0x00,0x3f,0xb2,0x74,0x74,0x74,0x74,0x81,0xf4,0x73,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0xeb, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xe0, -0x00,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x03,0x08,0x08,0x08,0x08, -0x08,0x06,0x00,0x00,0x66,0xbe,0x6c,0x6c,0x6c,0x6c,0x68,0x0c,0x00,0x83,0x75,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0xa0,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xd9,0x9d,0xa2,0xb6,0x6b,0x12,0x00,0x00,0x00,0x6f,0x32,0x02,0x0c,0x62,0xce,0x4f,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x45,0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xe1,0x1a,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0xd7,0x39,0x26,0x0b,0x00,0x00,0x00,0x00,0x30,0xde,0x01,0x14,0x9f,0x19,0x00,0x00,0x19,0xa8, -0x82,0x00,0x00,0x1b,0xa1,0xb5,0xbc,0xc4,0x67,0x0c,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00, -0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x49,0x2d,0x00, -0x00,0x00,0x00,0x00,0x3e,0xd5,0x76,0x02,0x00,0x00,0x00,0x00,0x41,0xd0,0x35,0x00,0x00,0x00,0x00,0x00, -0x13,0xee,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xad,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xec,0x6a, -0xaa,0xae,0xa2,0x35,0x00,0x00,0x22,0xf5,0xa8,0x28,0x00,0x23,0xb3,0x68,0x00,0x44,0xff,0x45,0x00,0x00, -0x00,0x3a,0xc5,0x00,0x5d,0xeb,0x04,0x00,0x00,0x00,0x04,0xed,0x1e,0x22,0xd7,0x00,0x00,0x00,0x00,0x00, -0xdf,0x22,0x00,0xd3,0x30,0x00,0x00,0x00,0x2a,0xcf,0x00,0x00,0x80,0xa8,0x10,0x00,0x06,0x91,0x7e,0x00, -0x00,0x03,0x85,0xdb,0x9d,0xa7,0x60,0x0a,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00, -0xf5,0xff,0x09,0x00,0x0c,0x00,0x08,0x00,0x00,0x00,0x1d,0x74,0x74,0x74,0x74,0x74,0x77,0xb2,0x1d,0x00, -0x00,0x00,0x00,0x00,0x00,0x04,0xdd,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x69,0xb2,0x00,0x00,0x00,0x00, -0x00,0x00,0x0f,0xe6,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0x21, -0xed,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x9a,0x89,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xeb,0x2c,0x00, -0x00,0x00,0x00,0x00,0x00,0x42,0xd7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x95,0x82,0x00,0x00,0x00,0x00, -0x00,0x00,0x02,0xe5,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xf4,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x49,0x27,0x00,0x00,0x00,0x00, -0x04,0xa2,0x9f,0x59,0x82,0xb3,0x4c,0x00,0x00,0x5d,0x99,0x00,0x00,0x00,0x1a,0xd2,0x02,0x00,0xc2,0x43, -0x00,0x00,0x00,0x00,0xc0,0x41,0x00,0x8b,0x91,0x00,0x00,0x00,0x12,0xf2,0x13,0x00,0x19,0xb5,0x8a,0x35, -0x60,0xbc,0x75,0x00,0x00,0x00,0x54,0xf9,0xc6,0xea,0xbe,0x16,0x00,0x00,0x97,0x9a,0x1f,0x00,0x05,0x4e, -0xd4,0x2d,0x1e,0xf1,0x0e,0x00,0x00,0x00,0x00,0x89,0x91,0x5c,0xaf,0x00,0x00,0x00,0x00,0x00,0x38,0xd3, -0x12,0xe8,0x0c,0x00,0x00,0x00,0x00,0x75,0x8c,0x00,0xa2,0x7b,0x03,0x00,0x00,0x0b,0xd6,0x2e,0x00,0x19, -0x7a,0xb7,0x90,0xa0,0xb0,0x69,0x00,0x00,0x00,0x00,0x00,0x22,0x0f,0x00,0x00,0x00,0x00,0x00,0xf4,0xff, -0x09,0x00,0x0e,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x36,0x12,0x00,0x00,0x00,0x00,0x14,0x7c, -0xa7,0x76,0xd3,0xa5,0x0b,0x00,0x00,0x97,0x65,0x00,0x00,0x01,0x91,0x7e,0x00,0x06,0xe2,0x0b,0x00,0x00, -0x00,0x31,0xc8,0x00,0x4c,0xb6,0x00,0x00,0x00,0x00,0x00,0xe9,0x15,0x2d,0xe8,0x03,0x00,0x00,0x00,0x1f, -0xff,0x49,0x00,0xca,0x3f,0x00,0x00,0x00,0x6d,0xff,0x2d,0x00,0x4e,0xcd,0x7e,0x2c,0x7d,0xcb,0xfe,0x0a, -0x00,0x00,0x05,0x56,0x96,0x69,0x80,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xe0,0x55,0x00,0x00,0x00, -0x00,0x00,0x00,0x76,0xc7,0x02,0x00,0x00,0x00,0x00,0x14,0xaf,0xbd,0x0f,0x00,0x00,0x00,0x00,0x37,0xbd, -0x70,0x07,0x00,0x00,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf9,0xff,0x03,0x00, -0x08,0x00,0x03,0x00,0x00,0x00,0x00,0x1c,0x00,0x1b,0xf3,0x24,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x15,0xb6,0x1b,0x06,0x7a,0x09,0x00,0x00,0xf9,0xff,0x03,0x00,0x0a,0x00,0x03,0x00, -0x00,0x00,0x00,0x1c,0x00,0x1b,0xf3,0x24,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0xb0,0x12,0x03,0xa4,0x4b,0x02,0xc0,0x10,0x28,0x2c,0x00,0x00,0x00,0xf6,0xff,0x08,0x00,0x0a,0x00, -0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x70,0x00,0x00,0x00,0x00,0x01,0x5e,0xb0,0x38, -0x00,0x00,0x00,0x35,0xaf,0x61,0x02,0x00,0x00,0x17,0x98,0x8a,0x0e,0x00,0x00,0x00,0x4a,0xb3,0x27,0x00, -0x00,0x00,0x00,0x00,0x20,0xa4,0x74,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0xb2,0x48,0x00,0x00,0x00, -0x00,0x00,0x00,0x06,0x77,0xa6,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x9d,0x7d,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x2d,0x00,0x00,0xf8,0xff,0x08,0x00,0x05,0x00,0x07,0x00,0x00,0x00,0x11,0x1d,0x1d,0x1d, -0x1d,0x1d,0x1d,0x0e,0x49,0x80,0x80,0x80,0x80,0x80,0x80,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x49,0x00,0x00,0xf6,0xff, -0x08,0x00,0x0a,0x00,0x08,0x00,0x00,0x00,0x4d,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x99,0x88,0x0e, -0x00,0x00,0x00,0x00,0x00,0x00,0x36,0xb0,0x5f,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x5f,0xb0,0x36,0x00, -0x00,0x00,0x00,0x00,0x00,0x0e,0x8b,0x8e,0x00,0x00,0x00,0x00,0x00,0x3a,0xaf,0x53,0x00,0x00,0x00,0x1a, -0x9b,0x84,0x0b,0x00,0x00,0x06,0x77,0xa6,0x23,0x00,0x00,0x00,0x3a,0xb4,0x4a,0x00,0x00,0x00,0x00,0x00, -0x2d,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x08,0x00,0x0d,0x00,0x08,0x00,0x00,0x00, -0x00,0x00,0x00,0x02,0x14,0x00,0x00,0x00,0x00,0x1e,0x91,0x9a,0x95,0xac,0x72,0x04,0x01,0x9e,0x13,0x00, -0x00,0x02,0xb0,0x53,0x4a,0x33,0x00,0x00,0x00,0x00,0x43,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x56,0xc0, -0x00,0x00,0x00,0x00,0x00,0x33,0xd2,0x5d,0x00,0x00,0x00,0x00,0x79,0xce,0x41,0x00,0x00,0x00,0x00,0x40, -0xdd,0x0d,0x00,0x00,0x00,0x00,0x00,0x6b,0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0x6b,0x9b,0x00,0x00,0x00, -0x00,0x00,0x00,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x55, -0x8e,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x01,0x22,0x44,0x21,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xa6,0xab,0x89,0x69,0x90,0xb7, -0x96,0x0d,0x00,0x00,0x00,0x00,0x56,0xc5,0x33,0x00,0x00,0x00,0x00,0x00,0x51,0xc9,0x2a,0x00,0x00,0x22, -0xd3,0x0a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x32,0xc3,0x02,0x00,0xb9,0x4b,0x00,0x04,0x58,0xad,0xb6, -0xac,0x34,0x5d,0x00,0x8c,0x5e,0x13,0xd5,0x00,0x00,0x9b,0x77,0x06,0x00,0x57,0xee,0x94,0x00,0x3e,0x99, -0x3f,0xaa,0x00,0x03,0xdb,0x05,0x00,0x00,0x09,0xf5,0x67,0x00,0x10,0xc7,0x69,0x80,0x00,0x3e,0xa8,0x00, -0x00,0x00,0x00,0xe1,0x3a,0x00,0x20,0xb9,0x5d,0x84,0x00,0x54,0xa3,0x00,0x00,0x00,0x24,0xfe,0x0e,0x00, -0x5b,0x78,0x34,0xb1,0x00,0x0b,0xdf,0x02,0x00,0x00,0x71,0xe0,0x00,0x00,0x96,0x36,0x0b,0xd8,0x0e,0x00, -0x76,0xbc,0x66,0xa7,0xa5,0xe3,0x2b,0x95,0xb4,0x03,0x00,0x68,0x9c,0x00,0x00,0x0b,0x4f,0x11,0x00,0x54, -0x9d,0x3b,0x13,0x00,0x00,0x02,0xae,0x92,0x11,0x00,0x00,0x00,0x00,0x00,0x0c,0x8f,0x42,0x00,0x00,0x00, -0x00,0x58,0xd0,0x9a,0x74,0x51,0x69,0x95,0xae,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x40,0x5c, -0x35,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0c,0x00,0x0d,0x00,0x0b,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xe2,0x6f,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0x6e,0xe2,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x01, -0xbd,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x6a,0x00,0x56,0xb9,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x98,0x0c,0x00,0x06,0xe6,0x25,0x00,0x00,0x00,0x00,0x00,0x1c,0x88,0x00,0x00,0x00,0x86,0x8c,0x00, -0x00,0x00,0x00,0x00,0x83,0x21,0x00,0x00,0x00,0x20,0xea,0x09,0x00,0x00,0x00,0x09,0xcd,0x74,0x74,0x74, -0x74,0x74,0xe3,0x5f,0x00,0x00,0x00,0x63,0x3f,0x00,0x00,0x00,0x00,0x00,0x50,0xc8,0x00,0x00,0x00,0xa2, -0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xe3,0x33,0x00,0x41,0x62,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f, -0x9c,0x00,0x88,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xd5,0x0a,0x00,0x00,0xf4,0xff,0x0a,0x00, -0x0d,0x00,0x0a,0x00,0x00,0x00,0x02,0x2a,0x2a,0x2a,0x2a,0x28,0x03,0x00,0x00,0x00,0x0c,0xf9,0x4a,0x4a, -0x4a,0x68,0x99,0x90,0x30,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x4b,0xbc,0x00,0x0c,0xf6,0x00,0x00, -0x00,0x00,0x00,0x03,0xe3,0x21,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x11,0xf1,0x14,0x0c,0xf6,0x00,0x00, -0x00,0x00,0x03,0x80,0xad,0x00,0x0c,0xfa,0x74,0x74,0x74,0x9e,0xeb,0x7d,0x02,0x00,0x0c,0xf6,0x00,0x00, -0x00,0x09,0x47,0x87,0x93,0x09,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0xba,0x60,0x0c,0xf6,0x00,0x00, -0x00,0x00,0x00,0x00,0x55,0xb5,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0x75,0x0c,0xf6,0x00,0x00, -0x00,0x00,0x02,0x35,0xec,0x16,0x0a,0xd9,0x78,0x78,0x78,0x8c,0xa2,0x6a,0x21,0x00,0x00,0x00,0xf4,0xff, -0x0b,0x00,0x0e,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x26,0x3c,0x09,0x00,0x00,0x00,0x00, -0x00,0x02,0x82,0xc6,0x95,0x79,0xa6,0x9b,0x07,0x00,0x00,0x03,0xb2,0x92,0x05,0x00,0x00,0x00,0x2f,0x6e, -0x00,0x00,0x60,0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdf,0x30,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x19,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xca,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x37,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0xf7,0x02,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48, -0xd6,0x07,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x86,0xcf,0x2d,0x00,0x00,0x00,0x23,0x9d,0x07, -0x00,0x00,0x00,0x4b,0xb5,0xcc,0xb6,0xae,0xa0,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00, -0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0e,0x00,0x0a,0x00,0x00,0x00,0x02,0x26,0x26,0x26,0x25,0x0a, -0x00,0x00,0x00,0x00,0x10,0xf9,0x4e,0x4e,0x58,0x83,0xae,0x5d,0x00,0x00,0x10,0xf6,0x00,0x00,0x00,0x00, -0x09,0xa3,0x81,0x00,0x10,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xe3,0x1b,0x10,0xf6,0x00,0x00,0x00,0x00, -0x00,0x00,0x89,0x79,0x10,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0xa1,0x10,0xf6,0x00,0x00,0x00,0x00, -0x00,0x00,0x3e,0xc5,0x10,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0xbe,0x10,0xf6,0x00,0x00,0x00,0x00, -0x00,0x00,0x66,0x9e,0x10,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x74,0x10,0xf6,0x00,0x00,0x00,0x00, -0x00,0x17,0xe7,0x11,0x10,0xf6,0x00,0x00,0x00,0x00,0x1d,0xbe,0x63,0x00,0x0d,0xd9,0x78,0x78,0x7e,0x87, -0x90,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00, -0x0d,0x00,0x09,0x00,0x00,0x00,0x02,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x14,0x00,0x0c,0xfb,0x4a,0x4a, -0x4a,0x4a,0x4a,0x4a,0x37,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfc,0x74,0x74,0x74,0x74,0x74,0x64,0x03,0x00,0x0c,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdd,0x1d,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x95,0x7b,0x78,0x78,0x78,0x78,0x63,0x02,0x00,0x00,0xf4,0xff, -0x09,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x02,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x11,0x0c,0xf9,0x4a, -0x4a,0x4a,0x4a,0x4a,0x4a,0x33,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x00,0x12,0x0d,0x0a,0x00,0xcc,0x01,0x0d,0x00,0xcc,0x01, +0x20,0x00,0xcc,0x01,0x21,0x00,0xcc,0x01,0x22,0x00,0x02,0x02,0x23,0x00,0x27,0x02,0x24,0x00,0xb5,0x02, +0x25,0x00,0x51,0x03,0x26,0x00,0x21,0x04,0x27,0x00,0xbc,0x04,0x28,0x00,0xd2,0x04,0x29,0x00,0x2e,0x05, +0x2a,0x00,0x7a,0x05,0x2b,0x00,0xb0,0x05,0x2c,0x00,0xfc,0x05,0x2d,0x00,0x17,0x06,0x2e,0x00,0x33,0x06, +0x2f,0x00,0x48,0x06,0x30,0x00,0xa8,0x06,0x31,0x00,0x32,0x07,0x32,0x00,0x65,0x07,0x33,0x00,0xe6,0x07, +0x34,0x00,0x70,0x08,0x35,0x00,0xfe,0x08,0x36,0x00,0x88,0x09,0x37,0x00,0x12,0x0a,0x38,0x00,0x8a,0x0a, +0x39,0x00,0x14,0x0b,0x3a,0x00,0x9e,0x0b,0x3b,0x00,0xc2,0x0b,0x3c,0x00,0xec,0x0b,0x3d,0x00,0x48,0x0c, +0x3e,0x00,0x7c,0x0c,0x3f,0x00,0xd8,0x0c,0x40,0x00,0x4c,0x0d,0x41,0x00,0x2a,0x0e,0x42,0x00,0xd2,0x0e, +0x43,0x00,0x60,0x0f,0x44,0x00,0x06,0x10,0x45,0x00,0x9e,0x10,0x46,0x00,0x2c,0x11,0x47,0x00,0xad,0x11, +0x48,0x00,0x53,0x12,0x49,0x00,0xe1,0x12,0x4a,0x00,0x07,0x13,0x4b,0x00,0x83,0x13,0x4c,0x00,0x1e,0x14, +0x4d,0x00,0x9f,0x14,0x4e,0x00,0x6e,0x15,0x4f,0x00,0xfc,0x15,0x50,0x00,0xa2,0x16,0x51,0x00,0x30,0x17, +0x52,0x00,0xe4,0x17,0x53,0x00,0x7f,0x18,0x54,0x00,0x17,0x19,0x55,0x00,0xa5,0x19,0x56,0x00,0x3d,0x1a, +0x57,0x00,0xe3,0x1a,0x58,0x00,0xb2,0x1b,0x59,0x00,0x5a,0x1c,0x5a,0x00,0xe8,0x1c,0x5b,0x00,0x76,0x1d, +0x5c,0x00,0xc2,0x1d,0x5d,0x00,0x22,0x1e,0x5e,0x00,0x6e,0x1e,0x5f,0x00,0x8e,0x1e,0x60,0x00,0xa8,0x1e, +0x61,0x00,0xc4,0x1e,0x62,0x00,0x2a,0x1f,0x63,0x00,0xab,0x1f,0x64,0x00,0x11,0x20,0x65,0x00,0x92,0x20, +0x66,0x00,0x01,0x21,0x67,0x00,0x68,0x21,0x68,0x00,0xe9,0x21,0x69,0x00,0x6a,0x22,0x6a,0x00,0x9d,0x22, +0x6b,0x00,0xfe,0x22,0x6c,0x00,0x7f,0x23,0x6d,0x00,0xa5,0x23,0x6e,0x00,0x2f,0x24,0x6f,0x00,0x8b,0x24, +0x70,0x00,0xf1,0x24,0x71,0x00,0x7b,0x25,0x72,0x00,0x05,0x26,0x73,0x00,0x57,0x26,0x74,0x00,0xbb,0x26, +0x75,0x00,0x29,0x27,0x76,0x00,0x86,0x27,0x77,0x00,0xec,0x27,0x78,0x00,0x70,0x28,0x79,0x00,0xcd,0x28, +0x7a,0x00,0x4e,0x29,0x7b,0x00,0xab,0x29,0x7c,0x00,0x07,0x2a,0x7d,0x00,0x33,0x2a,0x7e,0x00,0x8f,0x2a, +0x02,0x30,0xb9,0x2a,0x2d,0x4e,0xde,0x2a,0x3a,0x4e,0xad,0x2b,0x3c,0x50,0x8b,0x2c,0xd6,0x53,0x78,0x2d, +0x57,0x5b,0x56,0x2e,0x9a,0x5b,0x43,0x2f,0x87,0x65,0x30,0x30,0x4b,0x6d,0x00,0x31,0x88,0x6d,0xde,0x31, +0x6e,0x78,0xbc,0x32,0x26,0x7b,0x9a,0x33,0xd5,0x8b,0x87,0x34,0x01,0xff,0x74,0x35,0x0c,0xff,0xaa,0x35, +0x1f,0xff,0xc5,0x35,0x00,0x00,0xf4,0xff,0x03,0x00,0x0e,0x00,0x03,0x00,0x00,0x00,0x00,0x05,0x00,0x0f, +0xd6,0x1d,0x1f,0xff,0x3a,0x11,0xff,0x2b,0x03,0xfe,0x1b,0x00,0xf3,0x0c,0x00,0xe1,0x00,0x00,0xc4,0x00, +0x00,0xa6,0x00,0x00,0x88,0x00,0x00,0x15,0x00,0x00,0x2c,0x00,0x0d,0xd6,0x17,0x00,0x03,0x00,0x00,0x00, +0xf4,0xff,0x05,0x00,0x05,0x00,0x04,0x00,0x00,0x00,0x07,0x2a,0x00,0x32,0x00,0x57,0xbe,0x16,0xfa,0x05, +0x3f,0xab,0x03,0xe7,0x00,0x20,0x8f,0x00,0xaf,0x00,0x04,0x57,0x00,0x5b,0x00,0x00,0x00,0xf4,0xff,0x0a, +0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00, +0x7d,0x55,0x00,0x00,0xd1,0x00,0x00,0x00,0x00,0x00,0x9e,0x34,0x00,0x15,0xbc,0x00,0x00,0x00,0x00,0x00, +0xbf,0x13,0x00,0x36,0x9b,0x00,0x00,0x02,0x8a,0x8a,0xea,0x8a,0x8a,0xb2,0xc3,0x8a,0x56,0x00,0x00,0x05, +0xcb,0x00,0x00,0x79,0x58,0x00,0x00,0x00,0x00,0x23,0xad,0x00,0x00,0x9a,0x36,0x00,0x00,0x00,0x00,0x44, +0x8b,0x00,0x00,0xba,0x14,0x00,0x00,0x4c,0x8c,0xb6,0xc0,0x8c,0x8c,0xe9,0x8c,0x8c,0x11,0x01,0x02,0x87, +0x49,0x02,0x05,0xcb,0x02,0x02,0x00,0x00,0x00,0xa7,0x27,0x00,0x1e,0xb0,0x00,0x00,0x00,0x00,0x00,0xc6, +0x08,0x00,0x3f,0x8f,0x00,0x00,0x00,0x00,0x00,0xb8,0x00,0x00,0x54,0x64,0x00,0x00,0x00,0x00,0x00,0xf3, +0xff,0x09,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x9d,0x00,0x00,0x00,0x00,0x00,0x03,0x47,0x92,0xd7,0x87,0x2d,0x00,0x00,0x00,0xa0,0x74,0x0a, +0x9d,0x13,0x93,0x2e,0x00,0x13,0xd4,0x01,0x00,0x9d,0x00,0x02,0x4e,0x00,0x3b,0xbc,0x00,0x00,0x9d,0x00, +0x00,0x00,0x00,0x01,0xd8,0x4b,0x00,0x9d,0x00,0x00,0x00,0x00,0x00,0x39,0xba,0xc5,0xbc,0x0b,0x00,0x00, +0x00,0x00,0x00,0x00,0x30,0xdb,0xda,0x77,0x09,0x00,0x00,0x00,0x00,0x00,0x9d,0x13,0xac,0x76,0x00,0x00, +0x00,0x00,0x00,0x9d,0x00,0x24,0xdb,0x00,0x27,0x0d,0x00,0x00,0x9d,0x00,0x1d,0xc2,0x00,0x10,0x97,0x17, +0x00,0x9d,0x02,0x87,0x6a,0x00,0x00,0x16,0x8d,0x9e,0xd9,0xaa,0x73,0x0d,0x00,0x00,0x00,0x00,0x01,0xa0, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0e,0x00,0x0e, +0x00,0x0d,0x00,0x00,0x00,0x00,0x00,0x23,0x38,0x00,0x00,0x00,0x00,0x00,0x3a,0x42,0x00,0x00,0x00,0x00, +0x80,0x70,0x59,0x9b,0x00,0x00,0x00,0x00,0xb9,0x1c,0x00,0x00,0x00,0x08,0xb8,0x00,0x00,0x98,0x28,0x00, +0x00,0x45,0x90,0x00,0x00,0x00,0x00,0x47,0x8e,0x00,0x00,0x67,0x6d,0x00,0x01,0xbe,0x17,0x00,0x00,0x00, +0x00,0x33,0xa1,0x00,0x00,0x77,0x5c,0x00,0x4d,0x89,0x00,0x00,0x00,0x00,0x00,0x02,0xc4,0x02,0x00,0xab, +0x1a,0x01,0xc2,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x97,0x92,0x71,0x00,0x55,0x81,0x00,0x00,0x1b, +0x05,0x00,0x00,0x00,0x00,0x01,0x07,0x00,0x03,0xc4,0x0f,0x05,0x8d,0x71,0x93,0x4a,0x00,0x00,0x00,0x00, +0x00,0x00,0x5d,0x7a,0x00,0x41,0x79,0x00,0x01,0xbc,0x00,0x00,0x00,0x00,0x00,0x05,0xc7,0x0c,0x00,0x8b, +0x43,0x00,0x00,0xbd,0x15,0x00,0x00,0x00,0x00,0x65,0x73,0x00,0x00,0x8f,0x43,0x00,0x00,0xbd,0x18,0x00, +0x00,0x00,0x07,0xc8,0x09,0x00,0x00,0x48,0x7b,0x00,0x01,0xc4,0x00,0x00,0x00,0x00,0x6d,0x6b,0x00,0x00, +0x00,0x09,0x97,0x6a,0x94,0x5e,0x00,0x00,0x00,0x00,0x34,0x07,0x00,0x00,0x00,0x00,0x00,0x26,0x0b,0x00, +0x00,0x00,0x00,0xf4,0xff,0x0b,0x00,0x0d,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x04,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xa3,0x87,0x9e,0x98,0x09,0x00,0x00,0x00,0x00,0x0a,0xda,0x05,0x00, +0x00,0x8d,0x63,0x00,0x00,0x00,0x00,0x59,0x9c,0x00,0x00,0x00,0x4d,0xaf,0x00,0x00,0x00,0x00,0x3d,0xbd, +0x00,0x00,0x00,0xad,0x61,0x00,0x00,0x00,0x00,0x04,0xe6,0x07,0x49,0xb7,0x98,0x0b,0x00,0x00,0x00,0x00, +0x00,0xc2,0xd2,0x84,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x7d,0xc1,0xd5,0x28,0x00,0x00,0x00,0x82,0x0c, +0x00,0x19,0xfc,0x30,0x31,0xd1,0x1c,0x00,0x03,0xf6,0x21,0x00,0x47,0xc3,0x00,0x00,0x3b,0xcd,0x43,0x28, +0xe2,0x00,0x00,0x06,0xde,0x11,0x00,0x00,0x12,0xa9,0xb9,0xa3,0x00,0x00,0x00,0x84,0x97,0x1e,0x00,0x14, +0x78,0xe9,0xb6,0x47,0x00,0x00,0x06,0x45,0x8f,0xab,0xcc,0xa0,0x20,0x03,0x57,0x65,0x00,0x00,0xf4,0xff, +0x02,0x00,0x05,0x00,0x02,0x00,0x00,0x00,0x03,0x2d,0x44,0xd0,0x2b,0xbe,0x0b,0xa1,0x00,0x58,0x00,0x00, +0xf3,0xff,0x05,0x00,0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x03,0x94,0x00, +0x00,0x00,0x6c,0x4c,0x00,0x00,0x16,0xc2,0x01,0x00,0x00,0x83,0x67,0x00,0x00,0x00,0xbb,0x36,0x00,0x00, +0x01,0xed,0x0f,0x00,0x00,0x23,0xe7,0x00,0x00,0x00,0x31,0xda,0x00,0x00,0x00,0x06,0xf3,0x04,0x00,0x00, +0x00,0xcd,0x22,0x00,0x00,0x00,0x9b,0x51,0x00,0x00,0x00,0x3a,0xbd,0x00,0x00,0x00,0x00,0x94,0x38,0x00, +0x00,0x00,0x0e,0x94,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xf3,0xff,0x04,0x00,0x10,0x00,0x04,0x00, +0x00,0x00,0x0e,0x06,0x00,0x00,0x24,0x73,0x00,0x00,0x00,0x9c,0x1c,0x00,0x00,0x30,0xa9,0x00,0x00,0x00, +0xc1,0x28,0x00,0x00,0x90,0x5f,0x00,0x00,0x69,0x92,0x00,0x00,0x41,0xc6,0x00,0x00,0x35,0xd3,0x00,0x00, +0x59,0xa2,0x00,0x00,0x7e,0x71,0x00,0x00,0xae,0x3f,0x00,0x20,0xd1,0x06,0x00,0x91,0x3b,0x00,0x15,0x8b, +0x00,0x00,0x21,0x0e,0x00,0x00,0x00,0x00,0xf4,0xff,0x06,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x00,0x00, +0x01,0x01,0x00,0x00,0x00,0x00,0x5a,0x58,0x00,0x00,0x28,0xbc,0x78,0x76,0xb8,0x26,0x00,0x1f,0xd9,0xdd, +0x26,0x00,0x15,0xcd,0x87,0x86,0xc8,0x25,0x03,0x05,0x58,0x60,0x04,0x01,0x00,0x00,0x02,0x02,0x00,0x00, +0x00,0x00,0xf7,0xff,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x6f,0x00,0x00,0x00, +0x00,0x00,0x00,0x3b,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x88,0x00,0x00,0x00,0x44,0x7c,0x7c,0x9a, +0xc2,0x7c,0x7c,0x69,0x14,0x25,0x25,0x57,0x99,0x25,0x25,0x1f,0x00,0x00,0x00,0x3b,0x88,0x00,0x00,0x00, +0x00,0x00,0x00,0x3b,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x42,0x00,0x00,0x00,0x00,0x00,0xfe,0xff, +0x03,0x00,0x05,0x00,0x03,0x00,0x00,0x00,0x00,0x11,0x00,0x1e,0xeb,0x2b,0x00,0x8f,0x30,0x17,0xb4,0x02, +0x19,0x05,0x00,0x00,0x00,0xfa,0xff,0x08,0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x49,0x7c,0x7c,0x7c,0x7c, +0x7c,0x7c,0x64,0x16,0x25,0x25,0x25,0x25,0x25,0x25,0x1e,0x00,0x00,0xfe,0xff,0x03,0x00,0x03,0x00,0x02, +0x00,0x00,0x00,0x00,0x11,0x00,0x25,0xee,0x18,0x00,0x2f,0x00,0x00,0x00,0xf4,0xff,0x06,0x00,0x0e,0x00, +0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4a,0x4b,0x00,0x00,0x00,0x00,0xac,0x1b,0x00,0x00,0x00,0x0d, +0xba,0x00,0x00,0x00,0x00,0x5a,0x6e,0x00,0x00,0x00,0x00,0xae,0x1b,0x00,0x00,0x00,0x0e,0xbb,0x00,0x00, +0x00,0x00,0x5c,0x6e,0x00,0x00,0x00,0x00,0xb0,0x1a,0x00,0x00,0x00,0x0f,0xbc,0x00,0x00,0x00,0x00,0x5e, +0x6d,0x00,0x00,0x00,0x00,0xb2,0x1a,0x00,0x00,0x00,0x10,0xbc,0x00,0x00,0x00,0x00,0x60,0x6d,0x00,0x00, +0x00,0x00,0x7f,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00, +0x00,0x00,0x00,0x09,0x3f,0x21,0x00,0x00,0x00,0x00,0x00,0x54,0xea,0x77,0x8b,0xb4,0x0c,0x00,0x00,0x3e, +0xcd,0x23,0x00,0x00,0x5d,0xae,0x00,0x00,0xb7,0x4d,0x00,0x00,0x00,0x01,0xdd,0x24,0x13,0xf0,0x04,0x00, +0x00,0x00,0x00,0x90,0x75,0x34,0xd4,0x00,0x00,0x00,0x00,0x00,0x74,0x93,0x52,0xb9,0x00,0x00,0x00,0x00, +0x00,0x5d,0xaf,0x4b,0xc0,0x00,0x00,0x00,0x00,0x00,0x63,0xab,0x2f,0xda,0x00,0x00,0x00,0x00,0x00,0x7b, +0x95,0x0f,0xf2,0x0b,0x00,0x00,0x00,0x00,0x9f,0x79,0x00,0xa6,0x61,0x00,0x00,0x00,0x03,0xe9,0x26,0x00, +0x30,0xd3,0x1c,0x00,0x00,0x72,0xb5,0x00,0x00,0x00,0x37,0xb9,0x99,0xa8,0xa5,0x0a,0x00,0x00,0x00,0x00, +0x00,0x0f,0x03,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x03,0x00,0x0d,0x00,0x04,0x00,0x00,0x00,0x0f,0x18, +0x00,0x1c,0x98,0xb0,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00, +0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1f,0xe3,0x00,0x1e,0xd8,0x00,0x00,0xf4, +0xff,0x09,0x00,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x31,0x00,0x00,0x00,0x00,0x00,0x1c, +0x96,0x92,0x7f,0xb8,0x81,0x08,0x00,0x00,0x90,0x16,0x00,0x00,0x01,0xa6,0x58,0x00,0x31,0x5b,0x00,0x00, +0x00,0x00,0x45,0xb9,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x29,0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x80,0x93,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xde,0x2e,0x00,0x00,0x00,0x00,0x01,0x79,0xce,0x23,0x00, +0x00,0x00,0x00,0x08,0xa6,0x9a,0x0a,0x00,0x00,0x00,0x00,0x16,0xb1,0x4d,0x00,0x00,0x00,0x00,0x00,0x00, +0xa7,0x4b,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xac,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x50,0xec,0xec, +0xec,0xec,0xec,0xec,0xc1,0x01,0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x00, +0x00,0x07,0x3a,0x09,0x00,0x00,0x00,0x00,0x05,0x94,0x9f,0x74,0xb2,0xa2,0x21,0x00,0x00,0x7d,0x36,0x00, +0x00,0x00,0x6c,0x9d,0x00,0x11,0x52,0x00,0x00,0x00,0x00,0x0d,0xec,0x12,0x00,0x00,0x00,0x00,0x00,0x00, +0x31,0xe8,0x06,0x00,0x00,0x00,0x00,0x01,0x26,0xba,0x7f,0x00,0x00,0x00,0x00,0x97,0xe8,0xad,0x25,0x00, +0x00,0x00,0x00,0x00,0x0f,0x47,0x80,0xa5,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0xd9,0x01,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0x46,0x25,0x0a,0x00,0x00,0x00,0x00,0x04,0xe6,0x2f,0x16,0xa0,0x23, +0x00,0x00,0x02,0x64,0xca,0x00,0x00,0x11,0x9a,0xb0,0xaa,0xcb,0x94,0x2d,0x00,0x00,0x00,0x00,0x00,0x12, +0x02,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x09,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xb0,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x86,0xbe,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0xcd,0x21,0xeb,0x00,0x00,0x00,0x00,0x00,0x37, +0xde,0x1d,0x17,0xeb,0x00,0x00,0x00,0x00,0x1c,0xde,0x38,0x00,0x17,0xeb,0x00,0x00,0x00,0x0a,0xcc,0x5c, +0x00,0x00,0x17,0xeb,0x00,0x00,0x01,0xa9,0x87,0x00,0x00,0x00,0x17,0xeb,0x00,0x00,0x42,0xb7,0x02,0x00, +0x00,0x00,0x17,0xeb,0x00,0x00,0x3f,0xb2,0x74,0x74,0x74,0x74,0x81,0xf4,0x73,0x16,0x00,0x00,0x00,0x00, +0x00,0x00,0x17,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0xeb,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x16,0xe0,0x00,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x03, +0x08,0x08,0x08,0x08,0x08,0x06,0x00,0x00,0x66,0xbe,0x6c,0x6c,0x6c,0x6c,0x68,0x0c,0x00,0x83,0x75,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0x33,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xd9,0x9d,0xa2,0xb6,0x6b,0x12,0x00,0x00,0x00,0x6f,0x32,0x02,0x0c,0x62,0xce,0x4f, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x45,0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xe1,0x1a,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xd7,0x39,0x26,0x0b,0x00,0x00,0x00,0x00,0x30,0xde,0x01,0x14,0x9f,0x19, +0x00,0x00,0x19,0xa8,0x82,0x00,0x00,0x1b,0xa1,0xb5,0xbc,0xc4,0x67,0x0c,0x00,0x00,0x00,0x00,0x00,0x12, +0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x49,0x2d,0x00,0x00,0x00,0x00,0x00,0x3e,0xd5,0x76,0x02,0x00,0x00,0x00,0x00,0x41,0xd0,0x35,0x00, +0x00,0x00,0x00,0x00,0x13,0xee,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xad,0x00,0x00,0x00,0x00,0x00, +0x00,0x04,0xec,0x6a,0xaa,0xae,0xa2,0x35,0x00,0x00,0x22,0xf5,0xa8,0x28,0x00,0x23,0xb3,0x68,0x00,0x44, +0xff,0x45,0x00,0x00,0x00,0x3a,0xc5,0x00,0x5d,0xeb,0x04,0x00,0x00,0x00,0x04,0xed,0x1e,0x22,0xd7,0x00, +0x00,0x00,0x00,0x00,0xdf,0x22,0x00,0xd3,0x30,0x00,0x00,0x00,0x2a,0xcf,0x00,0x00,0x80,0xa8,0x10,0x00, +0x06,0x91,0x7e,0x00,0x00,0x03,0x85,0xdb,0x9d,0xa7,0x60,0x0a,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00, +0x00,0x00,0x00,0x00,0xf5,0xff,0x09,0x00,0x0c,0x00,0x08,0x00,0x00,0x00,0x1d,0x74,0x74,0x74,0x74,0x74, +0x77,0xb2,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xdd,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x69,0xb2, +0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xe6,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0x9b,0x00,0x00,0x00, +0x00,0x00,0x00,0x21,0xed,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x9a,0x89,0x00,0x00,0x00,0x00,0x00,0x00, +0x04,0xeb,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0xd7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x95,0x82, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xe5,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0xd0,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x49,0x27, +0x00,0x00,0x00,0x00,0x04,0xa2,0x9f,0x59,0x82,0xb3,0x4c,0x00,0x00,0x5d,0x99,0x00,0x00,0x00,0x1a,0xd2, +0x02,0x00,0xc2,0x43,0x00,0x00,0x00,0x00,0xc0,0x41,0x00,0x8b,0x91,0x00,0x00,0x00,0x12,0xf2,0x13,0x00, +0x19,0xb5,0x8a,0x35,0x60,0xbc,0x75,0x00,0x00,0x00,0x54,0xf9,0xc6,0xea,0xbe,0x16,0x00,0x00,0x97,0x9a, +0x1f,0x00,0x05,0x4e,0xd4,0x2d,0x1e,0xf1,0x0e,0x00,0x00,0x00,0x00,0x89,0x91,0x5c,0xaf,0x00,0x00,0x00, +0x00,0x00,0x38,0xd3,0x12,0xe8,0x0c,0x00,0x00,0x00,0x00,0x75,0x8c,0x00,0xa2,0x7b,0x03,0x00,0x00,0x0b, +0xd6,0x2e,0x00,0x19,0x7a,0xb7,0x90,0xa0,0xb0,0x69,0x00,0x00,0x00,0x00,0x00,0x22,0x0f,0x00,0x00,0x00, +0x00,0x00,0xf4,0xff,0x09,0x00,0x0e,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x36,0x12,0x00,0x00, +0x00,0x00,0x14,0x7c,0xa7,0x76,0xd3,0xa5,0x0b,0x00,0x00,0x97,0x65,0x00,0x00,0x01,0x91,0x7e,0x00,0x06, +0xe2,0x0b,0x00,0x00,0x00,0x31,0xc8,0x00,0x4c,0xb6,0x00,0x00,0x00,0x00,0x00,0xe9,0x15,0x2d,0xe8,0x03, +0x00,0x00,0x00,0x1f,0xff,0x49,0x00,0xca,0x3f,0x00,0x00,0x00,0x6d,0xff,0x2d,0x00,0x4e,0xcd,0x7e,0x2c, +0x7d,0xcb,0xfe,0x0a,0x00,0x00,0x05,0x56,0x96,0x69,0x80,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xe0, +0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xc7,0x02,0x00,0x00,0x00,0x00,0x14,0xaf,0xbd,0x0f,0x00,0x00, +0x00,0x00,0x37,0xbd,0x70,0x07,0x00,0x00,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xf9,0xff,0x03,0x00,0x08,0x00,0x03,0x00,0x00,0x00,0x00,0x1c,0x00,0x1b,0xf3,0x24,0x00,0x23,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0xb6,0x1b,0x06,0x7a,0x09,0x00,0x00,0xf9,0xff,0x03,0x00, +0x0a,0x00,0x03,0x00,0x00,0x00,0x00,0x1c,0x00,0x1b,0xf3,0x24,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x16,0xb0,0x12,0x03,0xa4,0x4b,0x02,0xc0,0x10,0x28,0x2c,0x00,0x00,0x00,0xf6,0xff, +0x08,0x00,0x0a,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x70,0x00,0x00,0x00,0x00, +0x01,0x5e,0xb0,0x38,0x00,0x00,0x00,0x35,0xaf,0x61,0x02,0x00,0x00,0x17,0x98,0x8a,0x0e,0x00,0x00,0x00, +0x4a,0xb3,0x27,0x00,0x00,0x00,0x00,0x00,0x20,0xa4,0x74,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0xb2, +0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x77,0xa6,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x9d,0x7d, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x00,0x00,0xf8,0xff,0x08,0x00,0x05,0x00,0x07,0x00,0x00,0x00, +0x11,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x0e,0x49,0x80,0x80,0x80,0x80,0x80,0x80,0x3c,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x49, +0x00,0x00,0xf6,0xff,0x08,0x00,0x0a,0x00,0x08,0x00,0x00,0x00,0x4d,0x26,0x00,0x00,0x00,0x00,0x00,0x00, +0x18,0x99,0x88,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0xb0,0x5f,0x01,0x00,0x00,0x00,0x00,0x00,0x01, +0x5f,0xb0,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x8b,0x8e,0x00,0x00,0x00,0x00,0x00,0x3a,0xaf,0x53, +0x00,0x00,0x00,0x1a,0x9b,0x84,0x0b,0x00,0x00,0x06,0x77,0xa6,0x23,0x00,0x00,0x00,0x3a,0xb4,0x4a,0x00, +0x00,0x00,0x00,0x00,0x2d,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x08,0x00,0x0d,0x00, +0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x14,0x00,0x00,0x00,0x00,0x1e,0x91,0x9a,0x95,0xac,0x72,0x04, +0x01,0x9e,0x13,0x00,0x00,0x02,0xb0,0x53,0x4a,0x33,0x00,0x00,0x00,0x00,0x43,0xbb,0x00,0x00,0x00,0x00, +0x00,0x00,0x56,0xc0,0x00,0x00,0x00,0x00,0x00,0x33,0xd2,0x5d,0x00,0x00,0x00,0x00,0x79,0xce,0x41,0x00, +0x00,0x00,0x00,0x40,0xdd,0x0d,0x00,0x00,0x00,0x00,0x00,0x6b,0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0x6b, +0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x32,0x00,0x00,0x00, +0x00,0x00,0x00,0x55,0x8e,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x01,0x22,0x44,0x21,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xa6,0xab, +0x89,0x69,0x90,0xb7,0x96,0x0d,0x00,0x00,0x00,0x00,0x56,0xc5,0x33,0x00,0x00,0x00,0x00,0x00,0x51,0xc9, +0x2a,0x00,0x00,0x22,0xd3,0x0a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x32,0xc3,0x02,0x00,0xb9,0x4b,0x00, +0x04,0x58,0xad,0xb6,0xac,0x34,0x5d,0x00,0x8c,0x5e,0x13,0xd5,0x00,0x00,0x9b,0x77,0x06,0x00,0x57,0xee, +0x94,0x00,0x3e,0x99,0x3f,0xaa,0x00,0x03,0xdb,0x05,0x00,0x00,0x09,0xf5,0x67,0x00,0x10,0xc7,0x69,0x80, +0x00,0x3e,0xa8,0x00,0x00,0x00,0x00,0xe1,0x3a,0x00,0x20,0xb9,0x5d,0x84,0x00,0x54,0xa3,0x00,0x00,0x00, +0x24,0xfe,0x0e,0x00,0x5b,0x78,0x34,0xb1,0x00,0x0b,0xdf,0x02,0x00,0x00,0x71,0xe0,0x00,0x00,0x96,0x36, +0x0b,0xd8,0x0e,0x00,0x76,0xbc,0x66,0xa7,0xa5,0xe3,0x2b,0x95,0xb4,0x03,0x00,0x68,0x9c,0x00,0x00,0x0b, +0x4f,0x11,0x00,0x54,0x9d,0x3b,0x13,0x00,0x00,0x02,0xae,0x92,0x11,0x00,0x00,0x00,0x00,0x00,0x0c,0x8f, +0x42,0x00,0x00,0x00,0x00,0x58,0xd0,0x9a,0x74,0x51,0x69,0x95,0xae,0x2e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x17,0x40,0x5c,0x35,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0c,0x00,0x0d,0x00,0x0b,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xe2, +0x6f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0x6e,0xe2,0x04,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xa2,0x01,0xbd,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x6a,0x00,0x56,0xb9,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x98,0x0c,0x00,0x06,0xe6,0x25,0x00,0x00,0x00,0x00,0x00,0x1c,0x88,0x00,0x00, +0x00,0x86,0x8c,0x00,0x00,0x00,0x00,0x00,0x83,0x21,0x00,0x00,0x00,0x20,0xea,0x09,0x00,0x00,0x00,0x09, +0xcd,0x74,0x74,0x74,0x74,0x74,0xe3,0x5f,0x00,0x00,0x00,0x63,0x3f,0x00,0x00,0x00,0x00,0x00,0x50,0xc8, +0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xe3,0x33,0x00,0x41,0x62,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x9c,0x00,0x88,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xd5,0x0a,0x00,0x00, +0xf4,0xff,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x02,0x2a,0x2a,0x2a,0x2a,0x28,0x03,0x00,0x00,0x00, +0x0c,0xf9,0x4a,0x4a,0x4a,0x68,0x99,0x90,0x30,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x4b,0xbc,0x00, +0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x03,0xe3,0x21,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x11,0xf1,0x14, +0x0c,0xf6,0x00,0x00,0x00,0x00,0x03,0x80,0xad,0x00,0x0c,0xfa,0x74,0x74,0x74,0x9e,0xeb,0x7d,0x02,0x00, +0x0c,0xf6,0x00,0x00,0x00,0x09,0x47,0x87,0x93,0x09,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0xba,0x60, +0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0xb5,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0x75, +0x0c,0xf6,0x00,0x00,0x00,0x00,0x02,0x35,0xec,0x16,0x0a,0xd9,0x78,0x78,0x78,0x8c,0xa2,0x6a,0x21,0x00, +0x00,0x00,0xf4,0xff,0x0b,0x00,0x0e,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x26,0x3c,0x09, +0x00,0x00,0x00,0x00,0x00,0x02,0x82,0xc6,0x95,0x79,0xa6,0x9b,0x07,0x00,0x00,0x03,0xb2,0x92,0x05,0x00, +0x00,0x00,0x2f,0x6e,0x00,0x00,0x60,0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdf,0x30,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xca, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x11,0xf7,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xce,0x4b,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x48,0xd6,0x07,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x86,0xcf,0x2d,0x00,0x00, +0x00,0x23,0x9d,0x07,0x00,0x00,0x00,0x4b,0xb5,0xcc,0xb6,0xae,0xa0,0x14,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0e,0x00,0x0a,0x00,0x00,0x00,0x02,0x26, +0x26,0x26,0x25,0x0a,0x00,0x00,0x00,0x00,0x10,0xf9,0x4e,0x4e,0x58,0x83,0xae,0x5d,0x00,0x00,0x10,0xf6, +0x00,0x00,0x00,0x00,0x09,0xa3,0x81,0x00,0x10,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xe3,0x1b,0x10,0xf6, +0x00,0x00,0x00,0x00,0x00,0x00,0x89,0x79,0x10,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0xa1,0x10,0xf6, +0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0xc5,0x10,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0xbe,0x10,0xf6, +0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x9e,0x10,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x74,0x10,0xf6, +0x00,0x00,0x00,0x00,0x00,0x17,0xe7,0x11,0x10,0xf6,0x00,0x00,0x00,0x00,0x1d,0xbe,0x63,0x00,0x0d,0xd9, +0x78,0x78,0x7e,0x87,0x90,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xf4,0xff,0x0a,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x02,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x14,0x00, +0x0c,0xfb,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x37,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfc,0x74,0x74,0x74,0x74,0x74,0x64,0x03,0x00, +0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xdd,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x95,0x7b,0x78,0x78,0x78,0x78,0x63,0x02, +0x00,0x00,0xf4,0xff,0x09,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x02,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, +0x11,0x0c,0xf9,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x33,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, +0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x74,0x74,0x74,0x74,0x74,0x5f,0x01,0x0c,0xf6,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x0c,0xfa,0x74,0x74,0x74,0x74,0x74,0x5f,0x01,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xd5,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0b,0x00,0x0e,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x0c,0x3e,0x29,0x01,0x00,0x00,0x00,0x00,0x00,0x0e,0xa7,0xba,0x80,0x84,0xad,0x7e,0x00,0x00,0x00, -0x0b,0xd1,0x61,0x00,0x00,0x00,0x00,0x57,0x80,0x00,0x00,0x7e,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x1b, -0x01,0x03,0xed,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xd9,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x49,0xb5,0x00,0x00,0x0d,0x70,0x74,0x74,0x6a,0x21,0x00,0x46,0xb9,0x00,0x00,0x00,0x00, -0x00,0x00,0x24,0xdf,0x01,0x1f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0x22,0x02,0xe6,0x23,0x00, -0x00,0x00,0x00,0x00,0x0c,0xf7,0x17,0x00,0x68,0xae,0x00,0x00,0x00,0x00,0x00,0x51,0xf4,0x01,0x00,0x04, -0xb3,0xa0,0x0c,0x00,0x00,0x31,0xbf,0x83,0x00,0x00,0x00,0x01,0x70,0xc3,0xc0,0xd6,0xe2,0x77,0x06,0x00, -0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x0a, -0x00,0x00,0x00,0x05,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0b,0x1f,0xc5,0x00,0x00,0x00,0x00,0x00, -0x00,0x2b,0xb9,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00, -0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00, -0x00,0x2b,0xdb,0x1f,0xf2,0x74,0x74,0x74,0x74,0x74,0x74,0x8b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00, -0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00, -0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00, -0x00,0x2b,0xdb,0x1a,0xc8,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0xbd,0x00,0x00,0xf4,0xff,0x02,0x00,0x0d, -0x00,0x02,0x00,0x00,0x00,0x04,0x0d,0x1b,0xc7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x1b, -0xe7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x17,0xc8,0x00,0x00,0xf4,0xff,0x08,0x00,0x0e,0x00,0x08, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x1c,0x00, +0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x0a,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0b,0x00,0x0e,0x00,0x0a,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x0c,0x3e,0x29,0x01,0x00,0x00,0x00,0x00,0x00,0x0e,0xa7,0xba,0x80,0x84,0xad, +0x7e,0x00,0x00,0x00,0x0b,0xd1,0x61,0x00,0x00,0x00,0x00,0x57,0x80,0x00,0x00,0x7e,0x8e,0x00,0x00,0x00, +0x00,0x00,0x00,0x1b,0x01,0x03,0xed,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xd9,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0xb5,0x00,0x00,0x0d,0x70,0x74,0x74,0x6a,0x21,0x00,0x46,0xb9, +0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xdf,0x01,0x1f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0x22, +0x02,0xe6,0x23,0x00,0x00,0x00,0x00,0x00,0x0c,0xf7,0x17,0x00,0x68,0xae,0x00,0x00,0x00,0x00,0x00,0x51, +0xf4,0x01,0x00,0x04,0xb3,0xa0,0x0c,0x00,0x00,0x31,0xbf,0x83,0x00,0x00,0x00,0x01,0x70,0xc3,0xc0,0xd6, +0xe2,0x77,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a, +0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x05,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0b,0x1f,0xc5,0x00, +0x00,0x00,0x00,0x00,0x00,0x2b,0xb9,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00, +0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00, +0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xf2,0x74,0x74,0x74,0x74,0x74,0x74,0x8b,0xdb,0x1f,0xe7,0x00, +0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00, +0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1f,0xe7,0x00, +0x00,0x00,0x00,0x00,0x00,0x2b,0xdb,0x1a,0xc8,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0xbd,0x00,0x00,0xf4, +0xff,0x02,0x00,0x0d,0x00,0x02,0x00,0x00,0x00,0x04,0x0d,0x1b,0xc7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x1b, +0xe7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x1b,0xe7,0x17,0xc8,0x00,0x00,0xf4,0xff,0x08, +0x00,0x0e,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xcc,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0xda,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xda,0x30,0x00, 0x00,0x00,0x00,0x00,0x00,0xda,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xda,0x30,0x00,0x00,0x00,0x00,0x00, 0x00,0xda,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xda,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xda,0x30,0x00, -0x00,0x00,0x00,0x00,0x00,0xda,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xda,0x30,0x00,0x00,0x00,0x00,0x00, -0x00,0xde,0x29,0x00,0x00,0x00,0x00,0x00,0x1f,0xe5,0x01,0x78,0x37,0x00,0x00,0x01,0x7f,0x99,0x00,0x02, -0x7a,0xa6,0xa2,0xc8,0x91,0x22,0x00,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0b, -0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x02,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x0c,0xd2, -0x00,0x00,0x00,0x00,0x00,0x15,0x9a,0x2b,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x30,0x9d,0x13,0x00,0x00, -0x0c,0xf6,0x00,0x00,0x00,0x57,0x88,0x04,0x00,0x00,0x00,0x0c,0xf6,0x00,0x02,0x80,0x64,0x00,0x00,0x00, -0x00,0x00,0x0c,0xf6,0x0f,0xa5,0xd4,0x08,0x00,0x00,0x00,0x00,0x00,0x0c,0xfb,0xa6,0x1e,0x99,0x99,0x00, -0x00,0x00,0x00,0x00,0x0c,0xf9,0x0a,0x00,0x09,0xd2,0x5b,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00, -0x29,0xe8,0x29,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x61,0xd4,0x0a,0x00,0x00,0x0c,0xf6,0x00, -0x00,0x00,0x00,0x00,0xa3,0xa0,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xd9,0x62,0x00,0x0a, -0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xd4,0x1f,0x00,0x00,0xf4,0xff,0x09,0x00,0x0d,0x00,0x08,0x00, -0x00,0x00,0x02,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xd4,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xde,0x29,0x00,0x00,0x00,0x00,0x00,0x1f,0xe5,0x01,0x78,0x37,0x00,0x00,0x01, +0x7f,0x99,0x00,0x02,0x7a,0xa6,0xa2,0xc8,0x91,0x22,0x00,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x00,0x00, +0x00,0xf4,0xff,0x0b,0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x02,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x0f,0x00,0x0c,0xd2,0x00,0x00,0x00,0x00,0x00,0x15,0x9a,0x2b,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x30, +0x9d,0x13,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x57,0x88,0x04,0x00,0x00,0x00,0x0c,0xf6,0x00,0x02,0x80, +0x64,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x0f,0xa5,0xd4,0x08,0x00,0x00,0x00,0x00,0x00,0x0c,0xfb,0xa6, +0x1e,0x99,0x99,0x00,0x00,0x00,0x00,0x00,0x0c,0xf9,0x0a,0x00,0x09,0xd2,0x5b,0x00,0x00,0x00,0x00,0x0c, +0xf6,0x00,0x00,0x00,0x29,0xe8,0x29,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x61,0xd4,0x0a,0x00, +0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0xa3,0xa0,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c, +0xd9,0x62,0x00,0x0a,0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xd4,0x1f,0x00,0x00,0xf4,0xff,0x09,0x00, +0x0d,0x00,0x08,0x00,0x00,0x00,0x02,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xd4,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00, -0x02,0x00,0xd9,0x26,0x00,0x00,0x00,0x00,0x67,0x39,0x00,0x49,0xa4,0x9a,0x96,0x93,0x8e,0x5d,0x00,0x00, -0x00,0xf4,0xff,0x0f,0x00,0x0d,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00, -0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xcf,0x66,0x00,0x00,0x00,0x00,0x1f,0xde,0x3a,0x00,0x00, -0x00,0x00,0x00,0x48,0xab,0xd5,0x00,0x00,0x00,0x00,0x6e,0xba,0x9c,0x00,0x00,0x00,0x00,0x00,0x86,0x17, -0xe9,0x18,0x00,0x00,0x00,0x96,0x29,0xdc,0x00,0x00,0x00,0x00,0x00,0x9b,0x00,0xaa,0x59,0x00,0x00,0x03, -0x94,0x01,0xe7,0x1d,0x00,0x00,0x00,0x0b,0x90,0x00,0x6a,0x9a,0x00,0x00,0x33,0x64,0x00,0xa8,0x5d,0x00, -0x00,0x00,0x44,0x55,0x00,0x29,0xdb,0x00,0x00,0x75,0x23,0x00,0x68,0x9d,0x00,0x00,0x00,0x83,0x17,0x00, -0x01,0xe6,0x1d,0x00,0x98,0x00,0x00,0x28,0xdd,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0xa6,0x5e,0x05,0x93, -0x00,0x00,0x01,0xe7,0x1e,0x00,0x09,0x8f,0x00,0x00,0x00,0x65,0x9f,0x3a,0x5f,0x00,0x00,0x00,0xa7,0x5e, -0x00,0x41,0x56,0x00,0x00,0x00,0x25,0xe1,0x85,0x1e,0x00,0x00,0x00,0x67,0x9e,0x00,0x7f,0x17,0x00,0x00, -0x00,0x00,0xe3,0xdb,0x00,0x00,0x00,0x00,0x27,0xde,0x00,0x82,0x00,0x00,0x00,0x00,0x00,0x61,0x61,0x00, -0x00,0x00,0x00,0x00,0xcb,0x17,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x00,0x09, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x07,0xe1,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x92,0x10,0xa3, -0xdd,0x47,0x00,0x00,0x00,0x00,0x00,0x92,0x10,0x82,0x47,0xdd,0x0a,0x00,0x00,0x00,0x00,0x92,0x10,0x82, -0x00,0xa5,0x89,0x00,0x00,0x00,0x00,0x92,0x10,0x82,0x00,0x16,0xe9,0x2f,0x00,0x00,0x00,0x92,0x10,0x82, -0x00,0x00,0x63,0xc8,0x02,0x00,0x00,0x92,0x10,0x82,0x00,0x00,0x01,0xc1,0x6c,0x00,0x00,0x92,0x10,0x82, -0x00,0x00,0x00,0x28,0xea,0x1b,0x00,0x92,0x10,0x82,0x00,0x00,0x00,0x00,0x80,0xae,0x00,0x92,0x10,0x82, -0x00,0x00,0x00,0x00,0x07,0xd7,0x4f,0x92,0x10,0x82,0x00,0x00,0x00,0x00,0x00,0x3f,0xe2,0xbd,0x0d,0x71, -0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x71,0x00,0x00,0xf4,0xff,0x0b,0x00,0x0e,0x00,0x0b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x0c,0x3f,0x37,0x07,0x00,0x00,0x00,0x00,0x00,0x09,0x9b,0xa6,0x63,0x73,0xb7,0x76, -0x01,0x00,0x00,0x04,0xc9,0x5d,0x00,0x00,0x00,0x01,0x84,0x94,0x00,0x00,0x67,0xa9,0x00,0x00,0x00,0x00, -0x00,0x02,0xd3,0x2d,0x00,0xdb,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x69,0x9a,0x09,0xfa,0x06,0x00,0x00, -0x00,0x00,0x00,0x00,0x3f,0xc4,0x2d,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xe9,0x26,0xe2,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xe6,0x04,0xf8,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0xc7,0x00, -0xc9,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xa0,0x00,0x48,0xc7,0x01,0x00,0x00,0x00,0x00,0x04,0xe0, -0x33,0x00,0x00,0x9b,0x9f,0x08,0x00,0x00,0x06,0x9f,0x9a,0x00,0x00,0x00,0x00,0x64,0xb4,0xa3,0xa0,0xaf, -0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00, -0x0d,0x00,0x0a,0x00,0x00,0x00,0x01,0x2a,0x2a,0x2a,0x2a,0x28,0x04,0x00,0x00,0x00,0x08,0xfb,0x4a,0x4a, -0x4a,0x65,0xa1,0x8e,0x30,0x00,0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x29,0xdd,0x01,0x08,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0xc5,0x40,0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x88,0x08,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0xbf,0x43,0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x1d,0xe1,0x02,0x08,0xfb,0x3d,0x3d, -0x3d,0x58,0x9d,0x98,0x3c,0x00,0x08,0xfb,0x3b,0x3b,0x3b,0x39,0x0b,0x00,0x00,0x00,0x08,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xfa,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff, -0x0c,0x00,0x0e,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x3f,0x37,0x07,0x00,0x00,0x00,0x00, -0x00,0x00,0x09,0x9b,0xa6,0x63,0x73,0xb7,0x76,0x01,0x00,0x00,0x00,0x04,0xc9,0x5d,0x00,0x00,0x00,0x01, -0x84,0x94,0x00,0x00,0x00,0x67,0xa9,0x00,0x00,0x00,0x00,0x00,0x02,0xd3,0x2d,0x00,0x00,0xdb,0x31,0x00, -0x00,0x00,0x00,0x00,0x00,0x69,0x9a,0x00,0x09,0xfa,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xc4,0x00, -0x2d,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xe9,0x00,0x26,0xe2,0x00,0x00,0x00,0x02,0x00,0x00, -0x00,0x21,0xe5,0x00,0x04,0xf8,0x0a,0x00,0x00,0x48,0x94,0x02,0x00,0x3d,0xc4,0x00,0x00,0xc9,0x45,0x00, -0x00,0x00,0x5b,0x96,0x01,0x71,0x9e,0x00,0x00,0x48,0xc7,0x01,0x00,0x00,0x00,0x6c,0x8b,0xd9,0x30,0x00, -0x00,0x00,0x9b,0x9f,0x08,0x00,0x00,0x22,0xd2,0xc6,0x00,0x00,0x00,0x00,0x00,0x64,0xb4,0xa3,0xa9,0x9d, -0x4d,0x91,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x04,0x00,0x00,0x02,0x65,0x12,0x00,0x00,0xf4,0xff, -0x0b,0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x03,0x2e,0x2e,0x2e,0x2e,0x2d,0x0a,0x00,0x00,0x00,0x00,0x10, -0xf6,0x46,0x46,0x46,0x58,0x91,0x95,0x5e,0x00,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x03,0xe1,0x1d, -0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x7d,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x00, -0x7e,0x8d,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x03,0xe1,0x30,0x00,0x10,0xf5,0x31,0x31,0x31,0x42, -0x82,0xa2,0x7c,0x00,0x00,0x10,0xf6,0x46,0x46,0x46,0xbc,0x96,0x00,0x00,0x00,0x00,0x10,0xf3,0x00,0x00, -0x00,0x13,0xdb,0x48,0x00,0x00,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x2f,0xe5,0x28,0x00,0x00,0x10,0xf3, -0x00,0x00,0x00,0x00,0x00,0x59,0xd9,0x11,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x8b,0xba,0x04, -0x0d,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xab,0x6e,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0e,0x00,0x09, -0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x33,0x36,0x04,0x00,0x00,0x00,0x00,0x1e,0x9b,0xa4,0x72,0x6f,0xa1, -0x89,0x01,0x00,0x00,0x96,0x70,0x00,0x00,0x00,0x00,0x46,0x80,0x00,0x16,0xe4,0x0a,0x00,0x00,0x00,0x00, -0x00,0x0f,0x00,0x0d,0xeb,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8d,0xbd,0x44,0x02,0x00,0x00, -0x00,0x00,0x00,0x00,0x06,0x54,0xb9,0xe0,0x83,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0xdb, -0xb1,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x8e,0x9d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x17,0xf1,0x12,0x29,0x25,0x00,0x00,0x00,0x00,0x00,0x27,0xe1,0x03,0x03,0x8c,0x4f,0x03,0x00,0x00,0x0c, -0x9e,0x80,0x00,0x00,0x01,0x6f,0xae,0xab,0xb8,0xbd,0x80,0x15,0x00,0x00,0x00,0x00,0x00,0x03,0x0b,0x00, -0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x1f,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x1f,0x00,0x23,0x4a,0x4a,0x4a,0xe6,0x68,0x4a,0x4a,0x47,0x03,0x00,0x00,0x00,0x00,0xdc, -0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc, -0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc, -0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc, -0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc, -0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbe, -0x24,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0e,0x00,0x0a,0x00,0x00,0x00,0x02,0x0d,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0c,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x91,0x0c,0xfa,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0c,0xfa,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0c,0xfa,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0b,0xfb,0x01, -0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0xec,0x3c,0x00,0x00,0x00,0x00,0x00,0x16,0xa1,0x00,0xb8,0x9e, -0x00,0x00,0x00,0x00,0x00,0x68,0x7d,0x00,0x2d,0xec,0x61,0x15,0x00,0x00,0x35,0xc0,0x16,0x00,0x00,0x27, -0xa8,0xdd,0xc1,0xbd,0xb5,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xf4, -0xff,0x0b,0x00,0x0e,0x00,0x0a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0c, -0xa2,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x16,0x48,0xbd,0x00,0x00,0x00,0x00,0x00,0x00,0x03, -0x9a,0x00,0x04,0xe6,0x1d,0x00,0x00,0x00,0x00,0x00,0x47,0x57,0x00,0x00,0x90,0x77,0x00,0x00,0x00,0x00, -0x00,0x96,0x09,0x00,0x00,0x34,0xd3,0x00,0x00,0x00,0x00,0x0d,0x91,0x00,0x00,0x00,0x00,0xd7,0x30,0x00, -0x00,0x00,0x61,0x3e,0x00,0x00,0x00,0x00,0x7c,0x8c,0x00,0x00,0x00,0x9e,0x01,0x00,0x00,0x00,0x00,0x21, -0xe4,0x03,0x00,0x1e,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0x45,0x00,0x7a,0x26,0x00,0x00,0x00,0x00, -0x00,0x00,0x68,0xa1,0x00,0x9f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0xe9,0x7b,0x67,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x43,0x8e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0f,0x00,0x0d,0x00,0x0e,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00, -0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x05,0x07,0xac,0x3d,0x00,0x00,0x00,0x00,0x46,0xe0,0x0f,0x00, -0x00,0x00,0x00,0x86,0x0b,0x73,0x8e,0x00,0x00,0x00,0x00,0x92,0xe9,0x4e,0x00,0x00,0x00,0x00,0x96,0x00, -0x33,0xce,0x00,0x00,0x00,0x00,0x99,0x74,0x8f,0x00,0x00,0x00,0x12,0x84,0x00,0x03,0xed,0x12,0x00,0x00, -0x1b,0x7e,0x32,0xd0,0x00,0x00,0x00,0x50,0x47,0x00,0x00,0xb2,0x50,0x00,0x00,0x5c,0x3c,0x02,0xec,0x14, -0x00,0x00,0x8b,0x0c,0x00,0x00,0x72,0x91,0x00,0x00,0x92,0x06,0x00,0xaf,0x54,0x00,0x00,0x97,0x00,0x00, -0x00,0x32,0xd1,0x00,0x00,0x97,0x00,0x00,0x6e,0x95,0x00,0x11,0x86,0x00,0x00,0x00,0x02,0xed,0x14,0x21, -0x76,0x00,0x00,0x2c,0xd7,0x00,0x4f,0x49,0x00,0x00,0x00,0x00,0xb1,0x53,0x62,0x34,0x00,0x00,0x01,0xe9, -0x1a,0x8a,0x0d,0x00,0x00,0x00,0x00,0x71,0x94,0x93,0x03,0x00,0x00,0x00,0xa9,0x5b,0x98,0x00,0x00,0x00, -0x00,0x00,0x31,0xf2,0xa5,0x00,0x00,0x00,0x00,0x68,0xdf,0x87,0x00,0x00,0x00,0x00,0x00,0x01,0x8c,0x33, -0x00,0x00,0x00,0x00,0x0d,0x9d,0x19,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0c,0x00,0x0d,0x00,0x0b,0x00, -0x00,0x00,0x0d,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x0a,0xc7,0x5d,0x00,0x00,0x00, -0x00,0x00,0x00,0x49,0x73,0x00,0x00,0x21,0xe4,0x36,0x00,0x00,0x00,0x00,0x2b,0x92,0x00,0x00,0x00,0x00, -0x44,0xe0,0x18,0x00,0x00,0x16,0xa2,0x07,0x00,0x00,0x00,0x00,0x00,0x73,0xc4,0x06,0x08,0xa3,0x14,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0xa5,0x9a,0x95,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xdf, -0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x57,0x82,0xe5,0x3d,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x37,0x89,0x00,0x42,0xe5,0x1d,0x00,0x00,0x00,0x00,0x00,0x1e,0x9e,0x03,0x00,0x00,0x70,0xcc,0x09, -0x00,0x00,0x00,0x0d,0xa4,0x0e,0x00,0x00,0x00,0x00,0xa1,0xa4,0x00,0x00,0x03,0x9d,0x20,0x00,0x00,0x00, -0x00,0x00,0x08,0xcb,0x74,0x00,0x6d,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0xce,0x31,0x00,0x00, -0xf4,0xff,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10, -0x70,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x84,0x03,0xc7,0x4a,0x00,0x00,0x00,0x00,0x02,0xa2,0x0b, -0x00,0x2b,0xdc,0x0f,0x00,0x00,0x00,0x6a,0x46,0x00,0x00,0x00,0x7f,0x9b,0x00,0x00,0x1e,0x94,0x00,0x00, -0x00,0x00,0x06,0xd3,0x44,0x00,0xa0,0x13,0x00,0x00,0x00,0x00,0x00,0x37,0xdd,0x6a,0x57,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x99,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x96,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x77,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x96,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x77,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x67,0x82,0x00,0x00,0x00,0x00, -0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x0b,0x26,0x26,0x26,0x26,0x26,0x26,0x26, -0x07,0x00,0x04,0x4b,0x4e,0x4e,0x4e,0x4e,0x4e,0x55,0xcc,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43, -0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xe1,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xcf,0x58, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa6,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0xb9,0x03,0x00, -0x00,0x00,0x00,0x00,0x00,0x45,0xd9,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xe1,0x2d,0x00,0x00,0x00, -0x00,0x00,0x00,0x0b,0xd0,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xa9,0x86,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x36,0xd1,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0xb0,0x78,0x78,0x78,0x78,0x78,0x78, -0x6b,0x04,0x00,0x00,0xf3,0xff,0x04,0x00,0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x0d,0x0c,0x00,0xbd, -0x96,0x51,0x22,0xd5,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd, +0x00,0x00,0x00,0x00,0x02,0x00,0xd9,0x26,0x00,0x00,0x00,0x00,0x67,0x39,0x00,0x49,0xa4,0x9a,0x96,0x93, +0x8e,0x5d,0x00,0x00,0x00,0xf4,0xff,0x0f,0x00,0x0d,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00, +0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xcf,0x66,0x00,0x00,0x00,0x00,0x1f, +0xde,0x3a,0x00,0x00,0x00,0x00,0x00,0x48,0xab,0xd5,0x00,0x00,0x00,0x00,0x6e,0xba,0x9c,0x00,0x00,0x00, +0x00,0x00,0x86,0x17,0xe9,0x18,0x00,0x00,0x00,0x96,0x29,0xdc,0x00,0x00,0x00,0x00,0x00,0x9b,0x00,0xaa, +0x59,0x00,0x00,0x03,0x94,0x01,0xe7,0x1d,0x00,0x00,0x00,0x0b,0x90,0x00,0x6a,0x9a,0x00,0x00,0x33,0x64, +0x00,0xa8,0x5d,0x00,0x00,0x00,0x44,0x55,0x00,0x29,0xdb,0x00,0x00,0x75,0x23,0x00,0x68,0x9d,0x00,0x00, +0x00,0x83,0x17,0x00,0x01,0xe6,0x1d,0x00,0x98,0x00,0x00,0x28,0xdd,0x00,0x00,0x00,0x99,0x00,0x00,0x00, +0xa6,0x5e,0x05,0x93,0x00,0x00,0x01,0xe7,0x1e,0x00,0x09,0x8f,0x00,0x00,0x00,0x65,0x9f,0x3a,0x5f,0x00, +0x00,0x00,0xa7,0x5e,0x00,0x41,0x56,0x00,0x00,0x00,0x25,0xe1,0x85,0x1e,0x00,0x00,0x00,0x67,0x9e,0x00, +0x7f,0x17,0x00,0x00,0x00,0x00,0xe3,0xdb,0x00,0x00,0x00,0x00,0x27,0xde,0x00,0x82,0x00,0x00,0x00,0x00, +0x00,0x61,0x61,0x00,0x00,0x00,0x00,0x00,0xcb,0x17,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x0a,0x00, +0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x07,0xe1,0x90,0x00,0x00,0x00,0x00,0x00, +0x00,0x92,0x10,0xa3,0xdd,0x47,0x00,0x00,0x00,0x00,0x00,0x92,0x10,0x82,0x47,0xdd,0x0a,0x00,0x00,0x00, +0x00,0x92,0x10,0x82,0x00,0xa5,0x89,0x00,0x00,0x00,0x00,0x92,0x10,0x82,0x00,0x16,0xe9,0x2f,0x00,0x00, +0x00,0x92,0x10,0x82,0x00,0x00,0x63,0xc8,0x02,0x00,0x00,0x92,0x10,0x82,0x00,0x00,0x01,0xc1,0x6c,0x00, +0x00,0x92,0x10,0x82,0x00,0x00,0x00,0x28,0xea,0x1b,0x00,0x92,0x10,0x82,0x00,0x00,0x00,0x00,0x80,0xae, +0x00,0x92,0x10,0x82,0x00,0x00,0x00,0x00,0x07,0xd7,0x4f,0x92,0x10,0x82,0x00,0x00,0x00,0x00,0x00,0x3f, +0xe2,0xbd,0x0d,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x71,0x00,0x00,0xf4,0xff,0x0b,0x00,0x0e,0x00, +0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x3f,0x37,0x07,0x00,0x00,0x00,0x00,0x00,0x09,0x9b,0xa6, +0x63,0x73,0xb7,0x76,0x01,0x00,0x00,0x04,0xc9,0x5d,0x00,0x00,0x00,0x01,0x84,0x94,0x00,0x00,0x67,0xa9, +0x00,0x00,0x00,0x00,0x00,0x02,0xd3,0x2d,0x00,0xdb,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x69,0x9a,0x09, +0xfa,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xc4,0x2d,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20, +0xe9,0x26,0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xe6,0x04,0xf8,0x0a,0x00,0x00,0x00,0x00,0x00, +0x00,0x46,0xc7,0x00,0xc9,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xa0,0x00,0x48,0xc7,0x01,0x00,0x00, +0x00,0x00,0x04,0xe0,0x33,0x00,0x00,0x9b,0x9f,0x08,0x00,0x00,0x06,0x9f,0x9a,0x00,0x00,0x00,0x00,0x64, +0xb4,0xa3,0xa0,0xaf,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00, +0xf4,0xff,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x01,0x2a,0x2a,0x2a,0x2a,0x28,0x04,0x00,0x00,0x00, +0x08,0xfb,0x4a,0x4a,0x4a,0x65,0xa1,0x8e,0x30,0x00,0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x29,0xdd,0x01, +0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0xc5,0x40,0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x88, +0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0xbf,0x43,0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x1d,0xe1,0x02, +0x08,0xfb,0x3d,0x3d,0x3d,0x58,0x9d,0x98,0x3c,0x00,0x08,0xfb,0x3b,0x3b,0x3b,0x39,0x0b,0x00,0x00,0x00, +0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x08,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xf4,0xff,0x0c,0x00,0x0e,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x3f,0x37,0x07, +0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x9b,0xa6,0x63,0x73,0xb7,0x76,0x01,0x00,0x00,0x00,0x04,0xc9,0x5d, +0x00,0x00,0x00,0x01,0x84,0x94,0x00,0x00,0x00,0x67,0xa9,0x00,0x00,0x00,0x00,0x00,0x02,0xd3,0x2d,0x00, +0x00,0xdb,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x69,0x9a,0x00,0x09,0xfa,0x06,0x00,0x00,0x00,0x00,0x00, +0x00,0x3f,0xc4,0x00,0x2d,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xe9,0x00,0x26,0xe2,0x00,0x00, +0x00,0x02,0x00,0x00,0x00,0x21,0xe5,0x00,0x04,0xf8,0x0a,0x00,0x00,0x48,0x94,0x02,0x00,0x3d,0xc4,0x00, +0x00,0xc9,0x45,0x00,0x00,0x00,0x5b,0x96,0x01,0x71,0x9e,0x00,0x00,0x48,0xc7,0x01,0x00,0x00,0x00,0x6c, +0x8b,0xd9,0x30,0x00,0x00,0x00,0x9b,0x9f,0x08,0x00,0x00,0x22,0xd2,0xc6,0x00,0x00,0x00,0x00,0x00,0x64, +0xb4,0xa3,0xa9,0x9d,0x4d,0x91,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x04,0x00,0x00,0x02,0x65,0x12, +0x00,0x00,0xf4,0xff,0x0b,0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x03,0x2e,0x2e,0x2e,0x2e,0x2d,0x0a,0x00, +0x00,0x00,0x00,0x10,0xf6,0x46,0x46,0x46,0x58,0x91,0x95,0x5e,0x00,0x00,0x10,0xf3,0x00,0x00,0x00,0x00, +0x00,0x03,0xe1,0x1d,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x7d,0x00,0x10,0xf3,0x00,0x00, +0x00,0x00,0x00,0x00,0x7e,0x8d,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x03,0xe1,0x30,0x00,0x10,0xf5, +0x31,0x31,0x31,0x42,0x82,0xa2,0x7c,0x00,0x00,0x10,0xf6,0x46,0x46,0x46,0xbc,0x96,0x00,0x00,0x00,0x00, +0x10,0xf3,0x00,0x00,0x00,0x13,0xdb,0x48,0x00,0x00,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x2f,0xe5,0x28, +0x00,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x59,0xd9,0x11,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00, +0x00,0x8b,0xba,0x04,0x0d,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xab,0x6e,0x00,0x00,0xf4,0xff,0x0a, +0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x33,0x36,0x04,0x00,0x00,0x00,0x00,0x1e,0x9b, +0xa4,0x72,0x6f,0xa1,0x89,0x01,0x00,0x00,0x96,0x70,0x00,0x00,0x00,0x00,0x46,0x80,0x00,0x16,0xe4,0x0a, +0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x0d,0xeb,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8d,0xbd, +0x44,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x54,0xb9,0xe0,0x83,0x1e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x20,0x80,0xdb,0xb1,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x8e,0x9d,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x17,0xf1,0x12,0x29,0x25,0x00,0x00,0x00,0x00,0x00,0x27,0xe1,0x03,0x03,0x8c,0x4f, +0x03,0x00,0x00,0x0c,0x9e,0x80,0x00,0x00,0x01,0x6f,0xae,0xab,0xb8,0xbd,0x80,0x15,0x00,0x00,0x00,0x00, +0x00,0x03,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x1f, +0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x1f,0x00,0x23,0x4a,0x4a,0x4a,0xe6,0x68,0x4a,0x4a,0x47,0x03,0x00, +0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x2a,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xbe,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0e,0x00,0x0a,0x00,0x00, +0x00,0x02,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0c,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x91,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x96,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x96,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x0c,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x96,0x0b,0xfb,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0xec,0x3c,0x00,0x00,0x00,0x00,0x00,0x16, +0xa1,0x00,0xb8,0x9e,0x00,0x00,0x00,0x00,0x00,0x68,0x7d,0x00,0x2d,0xec,0x61,0x15,0x00,0x00,0x35,0xc0, +0x16,0x00,0x00,0x27,0xa8,0xdd,0xc1,0xbd,0xb5,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, +0x00,0x00,0x00,0xf4,0xff,0x0b,0x00,0x0e,0x00,0x0a,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x04,0x0c,0xa2,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x16,0x48,0xbd,0x00,0x00,0x00, +0x00,0x00,0x00,0x03,0x9a,0x00,0x04,0xe6,0x1d,0x00,0x00,0x00,0x00,0x00,0x47,0x57,0x00,0x00,0x90,0x77, +0x00,0x00,0x00,0x00,0x00,0x96,0x09,0x00,0x00,0x34,0xd3,0x00,0x00,0x00,0x00,0x0d,0x91,0x00,0x00,0x00, +0x00,0xd7,0x30,0x00,0x00,0x00,0x61,0x3e,0x00,0x00,0x00,0x00,0x7c,0x8c,0x00,0x00,0x00,0x9e,0x01,0x00, +0x00,0x00,0x00,0x21,0xe4,0x03,0x00,0x1e,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0x45,0x00,0x7a,0x26, +0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xa1,0x00,0x9f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0xe9,0x7b, +0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x8e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0f,0x00,0x0d,0x00,0x0e,0x00,0x00,0x00,0x13, +0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x05,0x07,0xac,0x3d,0x00,0x00,0x00,0x00, +0x46,0xe0,0x0f,0x00,0x00,0x00,0x00,0x86,0x0b,0x73,0x8e,0x00,0x00,0x00,0x00,0x92,0xe9,0x4e,0x00,0x00, +0x00,0x00,0x96,0x00,0x33,0xce,0x00,0x00,0x00,0x00,0x99,0x74,0x8f,0x00,0x00,0x00,0x12,0x84,0x00,0x03, +0xed,0x12,0x00,0x00,0x1b,0x7e,0x32,0xd0,0x00,0x00,0x00,0x50,0x47,0x00,0x00,0xb2,0x50,0x00,0x00,0x5c, +0x3c,0x02,0xec,0x14,0x00,0x00,0x8b,0x0c,0x00,0x00,0x72,0x91,0x00,0x00,0x92,0x06,0x00,0xaf,0x54,0x00, +0x00,0x97,0x00,0x00,0x00,0x32,0xd1,0x00,0x00,0x97,0x00,0x00,0x6e,0x95,0x00,0x11,0x86,0x00,0x00,0x00, +0x02,0xed,0x14,0x21,0x76,0x00,0x00,0x2c,0xd7,0x00,0x4f,0x49,0x00,0x00,0x00,0x00,0xb1,0x53,0x62,0x34, +0x00,0x00,0x01,0xe9,0x1a,0x8a,0x0d,0x00,0x00,0x00,0x00,0x71,0x94,0x93,0x03,0x00,0x00,0x00,0xa9,0x5b, +0x98,0x00,0x00,0x00,0x00,0x00,0x31,0xf2,0xa5,0x00,0x00,0x00,0x00,0x68,0xdf,0x87,0x00,0x00,0x00,0x00, +0x00,0x01,0x8c,0x33,0x00,0x00,0x00,0x00,0x0d,0x9d,0x19,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0c,0x00, +0x0d,0x00,0x0b,0x00,0x00,0x00,0x0d,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x0a,0xc7, +0x5d,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x73,0x00,0x00,0x21,0xe4,0x36,0x00,0x00,0x00,0x00,0x2b,0x92, +0x00,0x00,0x00,0x00,0x44,0xe0,0x18,0x00,0x00,0x16,0xa2,0x07,0x00,0x00,0x00,0x00,0x00,0x73,0xc4,0x06, +0x08,0xa3,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa5,0x9a,0x95,0x2a,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x0a,0xdf,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x57,0x82,0xe5,0x3d,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x37,0x89,0x00,0x42,0xe5,0x1d,0x00,0x00,0x00,0x00,0x00,0x1e,0x9e,0x03,0x00, +0x00,0x70,0xcc,0x09,0x00,0x00,0x00,0x0d,0xa4,0x0e,0x00,0x00,0x00,0x00,0xa1,0xa4,0x00,0x00,0x03,0x9d, +0x20,0x00,0x00,0x00,0x00,0x00,0x08,0xcb,0x74,0x00,0x6d,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d, +0xce,0x31,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x10,0x70,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x84,0x03,0xc7,0x4a,0x00,0x00,0x00, +0x00,0x02,0xa2,0x0b,0x00,0x2b,0xdc,0x0f,0x00,0x00,0x00,0x6a,0x46,0x00,0x00,0x00,0x7f,0x9b,0x00,0x00, +0x1e,0x94,0x00,0x00,0x00,0x00,0x06,0xd3,0x44,0x00,0xa0,0x13,0x00,0x00,0x00,0x00,0x00,0x37,0xdd,0x6a, +0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x96, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x96, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x67,0x82, +0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x0a,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x0b,0x26,0x26,0x26, +0x26,0x26,0x26,0x26,0x07,0x00,0x04,0x4b,0x4e,0x4e,0x4e,0x4e,0x4e,0x55,0xcc,0x05,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x43,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xe1,0x30,0x00,0x00,0x00,0x00,0x00, +0x00,0x0a,0xcf,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa6,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x74,0xb9,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x45,0xd9,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xe1, +0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xd0,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xa9,0x86,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x36,0xd1,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0xb0,0x78,0x78, +0x78,0x78,0x78,0x78,0x6b,0x04,0x00,0x00,0xf3,0xff,0x04,0x00,0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x00, +0x0d,0x0c,0x00,0xbd,0x96,0x51,0x22,0xd5,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd, 0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd, -0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x09,0xe8,0x38,0x00,0x00,0x37,0x7a,0x60,0x00,0x00, -0xf4,0xff,0x06,0x00,0x0e,0x00,0x05,0x00,0x00,0x00,0x80,0x15,0x00,0x00,0x00,0x00,0x60,0x67,0x00,0x00, -0x00,0x00,0x11,0xb7,0x00,0x00,0x00,0x00,0x00,0xb2,0x16,0x00,0x00,0x00,0x00,0x60,0x69,0x00,0x00,0x00, -0x00,0x11,0xb8,0x00,0x00,0x00,0x00,0x00,0xb2,0x18,0x00,0x00,0x00,0x00,0x60,0x6b,0x00,0x00,0x00,0x00, -0x11,0xba,0x00,0x00,0x00,0x00,0x00,0xb2,0x19,0x00,0x00,0x00,0x00,0x5f,0x6d,0x00,0x00,0x00,0x00,0x10, -0xbc,0x00,0x00,0x00,0x00,0x00,0xb2,0x1b,0x00,0x00,0x00,0x00,0x4f,0x4a,0x00,0x00,0xf3,0xff,0x04,0x00, -0x10,0x00,0x04,0x00,0x00,0x00,0x04,0x0b,0x03,0x00,0x27,0x6b,0xd6,0x42,0x00,0x00,0x62,0x97,0x00,0x00, +0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x2a,0xcd,0x00,0x00,0x09,0xe8,0x38,0x00,0x00,0x37, +0x7a,0x60,0x00,0x00,0xf4,0xff,0x06,0x00,0x0e,0x00,0x05,0x00,0x00,0x00,0x80,0x15,0x00,0x00,0x00,0x00, +0x60,0x67,0x00,0x00,0x00,0x00,0x11,0xb7,0x00,0x00,0x00,0x00,0x00,0xb2,0x16,0x00,0x00,0x00,0x00,0x60, +0x69,0x00,0x00,0x00,0x00,0x11,0xb8,0x00,0x00,0x00,0x00,0x00,0xb2,0x18,0x00,0x00,0x00,0x00,0x60,0x6b, +0x00,0x00,0x00,0x00,0x11,0xba,0x00,0x00,0x00,0x00,0x00,0xb2,0x19,0x00,0x00,0x00,0x00,0x5f,0x6d,0x00, +0x00,0x00,0x00,0x10,0xbc,0x00,0x00,0x00,0x00,0x00,0xb2,0x1b,0x00,0x00,0x00,0x00,0x4f,0x4a,0x00,0x00, +0xf3,0xff,0x04,0x00,0x10,0x00,0x04,0x00,0x00,0x00,0x04,0x0b,0x03,0x00,0x27,0x6b,0xd6,0x42,0x00,0x00, +0x62,0x97,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00, 0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00, -0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x00, -0x58,0x9f,0x00,0x04,0xad,0x73,0x2c,0x7a,0x63,0x0d,0x00,0x00,0xf4,0xff,0x05,0x00,0x04,0x00,0x05,0x00, -0x00,0x00,0x00,0x04,0x3c,0x03,0x00,0x00,0x94,0xf4,0x96,0x00,0x45,0x9a,0x07,0x97,0x4c,0x37,0x01,0x00, -0x00,0x38,0x00,0x00,0x00,0x00,0x07,0x00,0x02,0x00,0x07,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01, -0x01,0x5b,0x86,0x86,0x86,0x86,0x86,0x6c,0x00,0x00,0xf4,0xff,0x04,0x00,0x04,0x00,0x03,0x00,0x00,0x00, -0x2b,0x1f,0x00,0x00,0x61,0xe3,0x1b,0x00,0x00,0x4e,0xbd,0x0b,0x00,0x00,0x23,0x41,0x00,0x00,0xf7,0xff, -0x09,0x00,0x0a,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x00,0x44, -0xb6,0xb9,0xc5,0x4e,0xa2,0x1f,0x00,0x8b,0xaf,0x22,0x00,0x1f,0xb5,0xec,0x46,0x18,0xf9,0x2c,0x00,0x00, -0x00,0x49,0xff,0x46,0x48,0xde,0x00,0x00,0x00,0x00,0x0b,0xf8,0x46,0x5d,0xa9,0x00,0x00,0x00,0x00,0x00, -0xce,0x46,0x19,0xe5,0x02,0x00,0x00,0x00,0x0b,0xf8,0x46,0x00,0xc5,0x3a,0x00,0x00,0x00,0x4b,0xff,0x46, -0x00,0x62,0xca,0x4c,0x01,0x3d,0xbc,0xdd,0x46,0x00,0x00,0x1e,0x8c,0xc2,0xab,0x38,0xa8,0x40,0x00,0x00, -0xf4,0xff,0x09,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x02,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, -0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf3,0x00, -0x00,0x04,0x00,0x00,0x00,0x00,0x0c,0xf3,0x24,0xb8,0xb4,0xbb,0x5a,0x05,0x00,0x0c,0xfa,0xc8,0x35,0x00, -0x0e,0x8a,0xb8,0x00,0x0c,0xff,0x84,0x00,0x00,0x00,0x0a,0xf6,0x3d,0x0c,0xff,0x3b,0x00,0x00,0x00,0x00, -0xb4,0x71,0x0c,0xfe,0x0b,0x00,0x00,0x00,0x00,0x80,0x84,0x0c,0xff,0x48,0x00,0x00,0x00,0x00,0xb7,0x44, -0x0c,0xff,0x93,0x00,0x00,0x00,0x06,0xe8,0x07,0x0c,0xf5,0xac,0x72,0x0b,0x27,0xa6,0x9b,0x00,0x0b,0xd9, -0x0b,0x81,0xb5,0xa4,0x36,0x00,0x00,0x00,0x00,0xf7,0xff,0x09,0x00,0x0a,0x00,0x08,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x81,0xbb,0xc2,0xa0,0x10,0x00,0x00,0x54,0xd0, -0x46,0x01,0x05,0x5d,0x9b,0x02,0x06,0xe5,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0xf8,0x10,0x00,0x00, -0x00,0x00,0x00,0x00,0x4a,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0xef,0x12,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0xa7,0x68,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x46,0xdc,0x5d,0x08,0x00,0x13,0x9b,0x0c, -0x00,0x00,0x3e,0xba,0xd7,0xab,0x9f,0x22,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0d,0x00,0x09,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaf,0x29,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0xb9,0x46,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xb9,0x46,0x00,0x00,0x42, -0xad,0xb3,0xc3,0x4a,0xb9,0x46,0x00,0x82,0xaf,0x1d,0x00,0x1e,0xb3,0xe8,0x46,0x10,0xf6,0x35,0x00,0x00, -0x00,0x46,0xff,0x46,0x3b,0xe7,0x02,0x00,0x00,0x00,0x09,0xf6,0x46,0x4d,0xb7,0x00,0x00,0x00,0x00,0x00, -0xce,0x46,0x0e,0xe9,0x06,0x00,0x00,0x00,0x0c,0xf9,0x46,0x00,0xb6,0x43,0x00,0x00,0x00,0x4b,0xff,0x46, -0x00,0x54,0xcb,0x53,0x02,0x40,0xb6,0xd7,0x46,0x00,0x00,0x14,0x7a,0xbc,0xa3,0x30,0xa5,0x3e,0x00,0x00, -0xf7,0xff,0x09,0x00,0x0b,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00, -0x00,0x29,0x96,0xb2,0xa7,0x61,0x0f,0x00,0x00,0x6b,0xb8,0x28,0x00,0x07,0x6a,0xae,0x00,0x0d,0xef,0x3d, -0x00,0x00,0x00,0x01,0xd7,0x1a,0x39,0xe8,0x03,0x00,0x00,0x00,0x00,0x9e,0x5f,0x57,0xd3,0x74,0x74,0x74, -0x74,0x7e,0xa2,0x19,0x38,0xdf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xee,0x4a,0x00,0x00,0x00,0x00, -0x09,0x19,0x00,0x67,0xcd,0x4a,0x04,0x00,0x0e,0x9f,0x17,0x00,0x00,0x48,0xbd,0xd6,0xb3,0x9f,0x36,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x07,0x00,0x0d,0x00,0x05,0x00,0x00, -0x00,0x00,0x00,0x00,0x0f,0x2a,0x24,0x00,0x00,0x00,0x55,0xb4,0x4f,0x4a,0x09,0x00,0x00,0xa8,0x55,0x00, -0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x2f,0x74,0xd5,0xa0,0x74,0x1f,0x00,0x00,0x00,0xb2,0x50, -0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0xb2, -0x50,0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00, -0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0x9a,0x46,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0x09,0x00,0x0d,0x00, -0x09,0x00,0x00,0x00,0x00,0x00,0x31,0xa4,0xb5,0xbb,0x4c,0x94,0x1d,0x00,0x6f,0xc1,0x2d,0x00,0x22,0xb3, -0xec,0x4d,0x0a,0xef,0x45,0x00,0x00,0x00,0x40,0xff,0x4d,0x31,0xf2,0x06,0x00,0x00,0x00,0x07,0xf5,0x4d, -0x47,0xc3,0x00,0x00,0x00,0x00,0x00,0xca,0x4d,0x0b,0xeb,0x0a,0x00,0x00,0x00,0x08,0xf5,0x4d,0x00,0xaa, -0x50,0x00,0x00,0x00,0x44,0xff,0x4d,0x00,0x45,0xcc,0x61,0x07,0x45,0xbc,0xda,0x4d,0x00,0x00,0x0e,0x72, -0xbc,0x9d,0x37,0xc7,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xea,0x04,0x1e,0x76,0x04,0x00,0x00,0x00, -0x64,0xa1,0x00,0x00,0x39,0xb5,0x93,0x76,0xbe,0xb1,0x2e,0x00,0x00,0x00,0x00,0x1e,0x4a,0x15,0x00,0x00, -0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x03,0x0f,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x10,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x10,0xf3,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x10,0xf3,0x30,0xbd,0xb8,0xb5,0x69,0x0e,0x00,0x10,0xfb, -0xb8,0x23,0x00,0x0b,0x94,0x80,0x00,0x10,0xff,0x59,0x00,0x00,0x00,0x25,0xd6,0x00,0x10,0xf9,0x0a,0x00, -0x00,0x00,0x00,0xde,0x20,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xd3,0x28,0x10,0xf3,0x00,0x00,0x00,0x00, -0x00,0xd3,0x28,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xd3,0x28,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xd3, -0x28,0x0d,0xd2,0x00,0x00,0x00,0x00,0x00,0xb6,0x23,0x00,0x00,0xf4,0xff,0x03,0x00,0x0d,0x00,0x02,0x00, -0x00,0x00,0x00,0x0e,0x00,0x10,0xc4,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x07,0x9f,0x00,0x08,0xfa,0x00, -0x08,0xfa,0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x07,0xd8, -0x00,0xfe,0xff,0xf4,0xff,0x05,0x00,0x11,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x09,0x00,0x00, -0x00,0x62,0x71,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x57,0x4d,0x00,0x00, -0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00, -0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00, -0x00,0x63,0x98,0x00,0x00,0x00,0x7a,0x79,0x25,0x86,0x78,0xd8,0x2d,0x00,0x01,0x38,0x0e,0x00,0x00,0x00, -0xf4,0xff,0x09,0x00,0x0d,0x00,0x08,0x00,0x00,0x00,0x01,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08, -0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xf6,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xf6,0x00,0x00,0x00,0x00,0x39,0x82,0x09,0x08,0xf6,0x00,0x00,0x00, -0x6c,0x7c,0x03,0x00,0x08,0xf6,0x00,0x0d,0xa8,0x4c,0x00,0x00,0x00,0x08,0xf6,0x2b,0x9f,0xbe,0x6d,0x00, -0x00,0x00,0x08,0xfc,0x88,0x06,0x25,0xe9,0x18,0x00,0x00,0x08,0xf6,0x00,0x00,0x00,0x85,0xa3,0x00,0x00, -0x08,0xf6,0x00,0x00,0x00,0x0b,0xe1,0x3f,0x00,0x08,0xf6,0x00,0x00,0x00,0x00,0x55,0xd4,0x05,0x07,0xd2, -0x00,0x00,0x00,0x00,0x00,0xaa,0x59,0x00,0x00,0xf4,0xff,0x02,0x00,0x0d,0x00,0x02,0x00,0x00,0x00,0x02, -0x0d,0x10,0xcc,0x10,0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x10, -0xef,0x10,0xef,0x0d,0xcf,0x00,0x00,0xf8,0xff,0x0e,0x00,0x09,0x00,0x0e,0x00,0x00,0x00,0x13,0xb8,0x17, -0x80,0xb9,0xba,0x44,0x01,0x7f,0xbc,0xb6,0x7d,0x1a,0x00,0x13,0xfb,0x9f,0x10,0x00,0x2d,0xe8,0xa5,0x6a, -0x05,0x02,0x6e,0xa6,0x00,0x13,0xff,0x2d,0x00,0x00,0x00,0xa5,0xd4,0x01,0x00,0x00,0x08,0xe9,0x10,0x13, -0xec,0x00,0x00,0x00,0x00,0x6e,0x92,0x00,0x00,0x00,0x00,0xc4,0x3b,0x13,0xeb,0x00,0x00,0x00,0x00,0x6d, -0x91,0x00,0x00,0x00,0x00,0xc3,0x3b,0x13,0xeb,0x00,0x00,0x00,0x00,0x6d,0x91,0x00,0x00,0x00,0x00,0xc3, -0x3b,0x13,0xeb,0x00,0x00,0x00,0x00,0x6d,0x91,0x00,0x00,0x00,0x00,0xc3,0x3b,0x13,0xeb,0x00,0x00,0x00, -0x00,0x6d,0x91,0x00,0x00,0x00,0x00,0xc3,0x3b,0x10,0xc8,0x00,0x00,0x00,0x00,0x5d,0x7c,0x00,0x00,0x00, -0x00,0xa6,0x32,0x00,0x00,0xf7,0xff,0x08,0x00,0x0a,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x00,0x00,0x12,0xaf,0x3e,0xbe,0xb5,0xac,0x61,0x06,0x13,0xf9,0xaa,0x15,0x00,0x0e,0xad,0x5a,0x13, -0xff,0x33,0x00,0x00,0x00,0x42,0xbe,0x13,0xe9,0x00,0x00,0x00,0x00,0x09,0xf2,0x13,0xe7,0x00,0x00,0x00, -0x00,0x08,0xf3,0x13,0xe7,0x00,0x00,0x00,0x00,0x08,0xf3,0x13,0xe7,0x00,0x00,0x00,0x00,0x08,0xf3,0x13, -0xe7,0x00,0x00,0x00,0x00,0x08,0xf3,0x10,0xc5,0x00,0x00,0x00,0x00,0x07,0xce,0x00,0x00,0xf7,0xff,0x09, -0x00,0x0a,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0xb5, -0xa8,0xb2,0x8a,0x06,0x00,0x00,0x5c,0xac,0x05,0x00,0x00,0x6d,0x9e,0x00,0x00,0xb9,0x25,0x00,0x00,0x00, -0x00,0xd6,0x07,0x12,0xdb,0x00,0x00,0x00,0x00,0x00,0xa3,0x4a,0x49,0xb2,0x00,0x00,0x00,0x00,0x00,0x76, -0x8b,0x0e,0xe3,0x02,0x00,0x00,0x00,0x00,0xa7,0x76,0x00,0xb2,0x34,0x00,0x00,0x00,0x00,0xe3,0x41,0x00, -0x53,0xcb,0x44,0x00,0x00,0x65,0xba,0x00,0x00,0x00,0x4d,0xc2,0xbd,0xad,0x84,0x07,0x00,0x00,0x00,0xf7, -0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xce, -0x11,0x92,0xb0,0xae,0x48,0x01,0x00,0x0c,0xf9,0xb5,0x4c,0x01,0x13,0x8c,0xae,0x00,0x0c,0xff,0x94,0x00, -0x00,0x00,0x04,0xf0,0x3b,0x0c,0xff,0x48,0x00,0x00,0x00,0x00,0xac,0x73,0x0c,0xff,0x0f,0x00,0x00,0x00, -0x00,0x77,0x89,0x0c,0xff,0x4a,0x00,0x00,0x00,0x00,0xaa,0x4d,0x0c,0xff,0x9a,0x00,0x00,0x00,0x02,0xe4, -0x0c,0x0c,0xf8,0xa7,0x78,0x10,0x1b,0x92,0xad,0x00,0x0c,0xf6,0x08,0x7a,0xb1,0xad,0x44,0x01,0x00,0x0c, -0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf7,0xff,0x09, -0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2f,0x9f, -0xb7,0xb1,0x3a,0x9c,0x1f,0x00,0x73,0xbf,0x32,0x00,0x2a,0xb9,0xe4,0x4a,0x0c,0xf1,0x3d,0x00,0x00,0x00, -0x4e,0xff,0x4a,0x35,0xeb,0x03,0x00,0x00,0x00,0x0c,0xf9,0x4a,0x4a,0xb8,0x00,0x00,0x00,0x00,0x00,0xce, -0x4a,0x0d,0xea,0x07,0x00,0x00,0x00,0x0a,0xf7,0x4a,0x00,0xb5,0x4a,0x00,0x00,0x00,0x47,0xff,0x4a,0x00, -0x57,0xd2,0x56,0x03,0x3b,0xba,0xdb,0x4a,0x00,0x00,0x1c,0x87,0xc5,0xab,0x3c,0xb5,0x4a,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xb5,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb5,0x4a,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0xb5,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x13,0x00,0x00,0xf7,0xff,0x07,0x00,0x0a, -0x00,0x06,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x0c,0xc6,0x0c,0x8e,0xbb,0x92,0x0a,0x0c, -0xf7,0xcc,0x53,0x0a,0x00,0x00,0x0c,0xff,0x95,0x00,0x00,0x00,0x00,0x0c,0xfe,0x29,0x00,0x00,0x00,0x00, -0x0c,0xef,0x00,0x00,0x00,0x00,0x00,0x0c,0xef,0x00,0x00,0x00,0x00,0x00,0x0c,0xef,0x00,0x00,0x00,0x00, -0x00,0x0c,0xef,0x00,0x00,0x00,0x00,0x00,0x0a,0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf7,0xff,0x08, -0x00,0x0b,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x2d,0x92,0xa8,0xb1, -0xc0,0x66,0x00,0x02,0xcb,0x32,0x00,0x00,0x1c,0x7d,0x4f,0x25,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00, -0xb3,0xa8,0x4f,0x0d,0x00,0x00,0x00,0x00,0x01,0x39,0x8b,0xd6,0xaa,0x4f,0x02,0x00,0x00,0x00,0x00,0x01, -0x37,0xcf,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0xb4,0x2c,0xa7,0x57,0x09,0x00,0x06,0xab,0x65,0x00, -0x24,0xa6,0xc9,0xbc,0xbb,0x85,0x09,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x07, -0x00,0x0e,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x0f,0x00,0x00,0x00,0x00,0x00,0x0c,0xd9,0x00,0x00,0x00, -0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x21,0x7b,0xfa,0x74,0x74, -0x26,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00, -0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6, -0x00,0x00,0x00,0x00,0x00,0x02,0xe1,0x29,0x1c,0x8a,0x08,0x00,0x00,0x62,0xca,0xac,0x11,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0x09,0x00,0x09,0x00,0x08,0x00,0x00,0x00,0x0e,0xa1,0x00, -0x00,0x00,0x00,0x00,0xae,0x03,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xf4,0x0e,0x10,0xf3,0x00,0x00,0x00, -0x00,0x00,0xf4,0x0e,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xf4,0x0e,0x10,0xf3,0x00,0x00,0x00,0x00,0x00, -0xf4,0x0e,0x0d,0xf6,0x03,0x00,0x00,0x00,0x01,0xf7,0x0e,0x00,0xc8,0x43,0x00,0x00,0x00,0x40,0xff,0x0e, -0x00,0x6b,0xb5,0x1f,0x00,0x20,0xb2,0xfc,0x0e,0x00,0x08,0x58,0xaa,0xbe,0xba,0x3e,0xde,0x0c,0x00,0x00, -0xf8,0xff,0x09,0x00,0x0a,0x00,0x08,0x00,0x00,0x00,0x88,0x3b,0x00,0x00,0x00,0x00,0x00,0x5d,0x27,0x45, -0xbd,0x00,0x00,0x00,0x00,0x00,0xa1,0x00,0x01,0xda,0x27,0x00,0x00,0x00,0x28,0x79,0x00,0x00,0x75,0x8e, -0x00,0x00,0x00,0x81,0x1f,0x00,0x00,0x14,0xe5,0x09,0x00,0x01,0x9f,0x00,0x00,0x00,0x00,0xa4,0x5e,0x00, -0x39,0x66,0x00,0x00,0x00,0x00,0x3c,0xc6,0x00,0x8d,0x11,0x00,0x00,0x00,0x00,0x00,0xd1,0x62,0x97,0x00, -0x00,0x00,0x00,0x00,0x00,0x22,0xb1,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0xf8,0xff,0x0c,0x00,0x0a,0x00,0x0c,0x00,0x00,0x00,0x91,0x1c,0x00,0x00,0x00,0x45,0xba,0x0c, -0x00,0x00,0x00,0x6f,0x88,0x6f,0x00,0x00,0x00,0xa1,0xce,0x54,0x00,0x00,0x04,0x8f,0x4a,0xad,0x00,0x00, -0x0f,0x91,0x5c,0x9e,0x00,0x00,0x35,0x5f,0x0f,0xe7,0x01,0x00,0x5b,0x46,0x14,0xe4,0x01,0x00,0x72,0x22, -0x00,0xcd,0x2a,0x00,0x9c,0x05,0x00,0xc6,0x34,0x00,0x94,0x00,0x00,0x8f,0x68,0x0a,0x97,0x00,0x00,0x7c, -0x7e,0x01,0x94,0x00,0x00,0x51,0xa6,0x52,0x50,0x00,0x00,0x31,0xc9,0x2b,0x6a,0x00,0x00,0x14,0xec,0xc7, -0x0a,0x00,0x00,0x01,0xe3,0xb6,0x2d,0x00,0x00,0x00,0x8b,0x6e,0x00,0x00,0x00,0x00,0x51,0x9e,0x01,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0x09,0x00,0x09,0x00, -0x08,0x00,0x00,0x00,0x59,0x91,0x02,0x00,0x00,0x00,0x12,0x84,0x02,0x01,0xa8,0x86,0x00,0x00,0x05,0x9f, -0x17,0x00,0x00,0x0c,0xd2,0x53,0x00,0x8d,0x30,0x00,0x00,0x00,0x00,0x25,0xe3,0x8d,0x52,0x00,0x00,0x00, -0x00,0x00,0x00,0x79,0xe6,0x11,0x00,0x00,0x00,0x00,0x00,0x27,0x97,0x7f,0xb7,0x03,0x00,0x00,0x00,0x11, -0xa5,0x0a,0x02,0xb1,0x86,0x00,0x00,0x04,0xa1,0x1b,0x00,0x00,0x0f,0xd8,0x54,0x00,0x71,0x37,0x00,0x00, -0x00,0x00,0x2a,0xcc,0x1c,0x00,0x00,0xf8,0xff,0x09,0x00,0x0d,0x00,0x08,0x00,0x00,0x00,0x86,0x36,0x00, -0x00,0x00,0x00,0x00,0x62,0x1b,0x47,0xbe,0x00,0x00,0x00,0x00,0x06,0x9d,0x00,0x01,0xd8,0x2c,0x00,0x00, -0x00,0x5b,0x48,0x00,0x00,0x6e,0x98,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x0f,0xe8,0x11,0x00,0x39,0x6b, -0x00,0x00,0x00,0x00,0x96,0x72,0x00,0x98,0x0c,0x00,0x00,0x00,0x00,0x2b,0xdc,0x1e,0x89,0x00,0x00,0x00, -0x00,0x00,0x00,0xbe,0xc6,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xb0,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x63,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x65, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0x09,0x00, -0x09,0x00,0x08,0x00,0x00,0x00,0x09,0x6d,0x74,0x74,0x74,0x74,0x91,0x68,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x6e,0xa1,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0xd9,0x1e,0x00,0x00,0x00,0x00,0x00,0x6d,0xd4,0x19, -0x00,0x00,0x00,0x00,0x00,0x75,0xce,0x15,0x00,0x00,0x00,0x00,0x00,0x7d,0xc8,0x11,0x00,0x00,0x00,0x00, -0x00,0x86,0xc0,0x0d,0x00,0x00,0x00,0x00,0x00,0x3e,0xca,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0xa3, -0x78,0x78,0x78,0x78,0x78,0x6a,0x04,0x00,0x00,0xf3,0xff,0x05,0x00,0x10,0x00,0x05,0x00,0x00,0x00,0x00, -0x00,0x00,0x06,0x0b,0x00,0x00,0x88,0xb1,0x64,0x00,0x08,0xe3,0x0a,0x00,0x00,0x18,0xe3,0x00,0x00,0x00, -0x18,0xe3,0x00,0x00,0x00,0x18,0xe3,0x00,0x00,0x00,0x2a,0xd2,0x00,0x00,0x16,0x9e,0x75,0x00,0x00,0x52, -0xc2,0x26,0x00,0x00,0x00,0x4e,0xb2,0x00,0x00,0x00,0x18,0xe2,0x00,0x00,0x00,0x18,0xe3,0x00,0x00,0x00, -0x18,0xe3,0x00,0x00,0x00,0x10,0xe2,0x00,0x00,0x00,0x00,0xd0,0x1f,0x00,0x00,0x00,0x20,0x72,0x73,0x00, -0x00,0xf3,0xff,0x02,0x00,0x10,0x00,0x02,0x00,0x00,0x00,0x00,0x09,0x08,0xd5,0x08,0xd5,0x08,0xd5,0x08, +0x58,0x9f,0x00,0x00,0x58,0x9f,0x00,0x04,0xad,0x73,0x2c,0x7a,0x63,0x0d,0x00,0x00,0xf4,0xff,0x05,0x00, +0x04,0x00,0x05,0x00,0x00,0x00,0x00,0x04,0x3c,0x03,0x00,0x00,0x94,0xf4,0x96,0x00,0x45,0x9a,0x07,0x97, +0x4c,0x37,0x01,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x07,0x00,0x02,0x00,0x07,0x00,0x00,0x00,0x00,0x01, +0x01,0x01,0x01,0x01,0x01,0x5b,0x86,0x86,0x86,0x86,0x86,0x6c,0x00,0x00,0xf4,0xff,0x04,0x00,0x04,0x00, +0x03,0x00,0x00,0x00,0x2b,0x1f,0x00,0x00,0x61,0xe3,0x1b,0x00,0x00,0x4e,0xbd,0x0b,0x00,0x00,0x23,0x41, +0x00,0x00,0xf7,0xff,0x09,0x00,0x0a,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03, +0x00,0x00,0x00,0x44,0xb6,0xb9,0xc5,0x4e,0xa2,0x1f,0x00,0x8b,0xaf,0x22,0x00,0x1f,0xb5,0xec,0x46,0x18, +0xf9,0x2c,0x00,0x00,0x00,0x49,0xff,0x46,0x48,0xde,0x00,0x00,0x00,0x00,0x0b,0xf8,0x46,0x5d,0xa9,0x00, +0x00,0x00,0x00,0x00,0xce,0x46,0x19,0xe5,0x02,0x00,0x00,0x00,0x0b,0xf8,0x46,0x00,0xc5,0x3a,0x00,0x00, +0x00,0x4b,0xff,0x46,0x00,0x62,0xca,0x4c,0x01,0x3d,0xbc,0xdd,0x46,0x00,0x00,0x1e,0x8c,0xc2,0xab,0x38, +0xa8,0x40,0x00,0x00,0xf4,0xff,0x09,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x02,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x0c,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf3,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x0c,0xf3,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x0c,0xf3,0x24,0xb8,0xb4,0xbb,0x5a,0x05,0x00,0x0c, +0xfa,0xc8,0x35,0x00,0x0e,0x8a,0xb8,0x00,0x0c,0xff,0x84,0x00,0x00,0x00,0x0a,0xf6,0x3d,0x0c,0xff,0x3b, +0x00,0x00,0x00,0x00,0xb4,0x71,0x0c,0xfe,0x0b,0x00,0x00,0x00,0x00,0x80,0x84,0x0c,0xff,0x48,0x00,0x00, +0x00,0x00,0xb7,0x44,0x0c,0xff,0x93,0x00,0x00,0x00,0x06,0xe8,0x07,0x0c,0xf5,0xac,0x72,0x0b,0x27,0xa6, +0x9b,0x00,0x0b,0xd9,0x0b,0x81,0xb5,0xa4,0x36,0x00,0x00,0x00,0x00,0xf7,0xff,0x09,0x00,0x0a,0x00,0x08, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x81,0xbb,0xc2,0xa0,0x10, +0x00,0x00,0x54,0xd0,0x46,0x01,0x05,0x5d,0x9b,0x02,0x06,0xe5,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x2e, +0xf8,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x4a,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0xef,0x12, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa7,0x68,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x46,0xdc,0x5d,0x08, +0x00,0x13,0x9b,0x0c,0x00,0x00,0x3e,0xba,0xd7,0xab,0x9f,0x22,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0d, +0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xaf,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb9,0x46,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xb9, +0x46,0x00,0x00,0x42,0xad,0xb3,0xc3,0x4a,0xb9,0x46,0x00,0x82,0xaf,0x1d,0x00,0x1e,0xb3,0xe8,0x46,0x10, +0xf6,0x35,0x00,0x00,0x00,0x46,0xff,0x46,0x3b,0xe7,0x02,0x00,0x00,0x00,0x09,0xf6,0x46,0x4d,0xb7,0x00, +0x00,0x00,0x00,0x00,0xce,0x46,0x0e,0xe9,0x06,0x00,0x00,0x00,0x0c,0xf9,0x46,0x00,0xb6,0x43,0x00,0x00, +0x00,0x4b,0xff,0x46,0x00,0x54,0xcb,0x53,0x02,0x40,0xb6,0xd7,0x46,0x00,0x00,0x14,0x7a,0xbc,0xa3,0x30, +0xa5,0x3e,0x00,0x00,0xf7,0xff,0x09,0x00,0x0b,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00, +0x00,0x00,0x00,0x00,0x00,0x29,0x96,0xb2,0xa7,0x61,0x0f,0x00,0x00,0x6b,0xb8,0x28,0x00,0x07,0x6a,0xae, +0x00,0x0d,0xef,0x3d,0x00,0x00,0x00,0x01,0xd7,0x1a,0x39,0xe8,0x03,0x00,0x00,0x00,0x00,0x9e,0x5f,0x57, +0xd3,0x74,0x74,0x74,0x74,0x7e,0xa2,0x19,0x38,0xdf,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xee,0x4a, +0x00,0x00,0x00,0x00,0x09,0x19,0x00,0x67,0xcd,0x4a,0x04,0x00,0x0e,0x9f,0x17,0x00,0x00,0x48,0xbd,0xd6, +0xb3,0x9f,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x07,0x00,0x0d, +0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x2a,0x24,0x00,0x00,0x00,0x55,0xb4,0x4f,0x4a,0x09,0x00, +0x00,0xa8,0x55,0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x2f,0x74,0xd5,0xa0,0x74,0x1f,0x00, +0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00, +0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0xb2,0x50,0x00, +0x00,0x00,0x00,0x00,0xb2,0x50,0x00,0x00,0x00,0x00,0x00,0x9a,0x46,0x00,0x00,0x00,0x00,0x00,0xf8,0xff, +0x09,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x31,0xa4,0xb5,0xbb,0x4c,0x94,0x1d,0x00,0x6f,0xc1, +0x2d,0x00,0x22,0xb3,0xec,0x4d,0x0a,0xef,0x45,0x00,0x00,0x00,0x40,0xff,0x4d,0x31,0xf2,0x06,0x00,0x00, +0x00,0x07,0xf5,0x4d,0x47,0xc3,0x00,0x00,0x00,0x00,0x00,0xca,0x4d,0x0b,0xeb,0x0a,0x00,0x00,0x00,0x08, +0xf5,0x4d,0x00,0xaa,0x50,0x00,0x00,0x00,0x44,0xff,0x4d,0x00,0x45,0xcc,0x61,0x07,0x45,0xbc,0xda,0x4d, +0x00,0x00,0x0e,0x72,0xbc,0x9d,0x37,0xc7,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xea,0x04,0x1e,0x76, +0x04,0x00,0x00,0x00,0x64,0xa1,0x00,0x00,0x39,0xb5,0x93,0x76,0xbe,0xb1,0x2e,0x00,0x00,0x00,0x00,0x1e, +0x4a,0x15,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0d,0x00,0x09,0x00,0x00,0x00,0x03,0x0f,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xf3,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x10,0xf3,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x10,0xf3,0x30,0xbd,0xb8,0xb5,0x69, +0x0e,0x00,0x10,0xfb,0xb8,0x23,0x00,0x0b,0x94,0x80,0x00,0x10,0xff,0x59,0x00,0x00,0x00,0x25,0xd6,0x00, +0x10,0xf9,0x0a,0x00,0x00,0x00,0x00,0xde,0x20,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xd3,0x28,0x10,0xf3, +0x00,0x00,0x00,0x00,0x00,0xd3,0x28,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xd3,0x28,0x10,0xf3,0x00,0x00, +0x00,0x00,0x00,0xd3,0x28,0x0d,0xd2,0x00,0x00,0x00,0x00,0x00,0xb6,0x23,0x00,0x00,0xf4,0xff,0x03,0x00, +0x0d,0x00,0x02,0x00,0x00,0x00,0x00,0x0e,0x00,0x10,0xc4,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x07,0x9f, +0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x08,0xfa,0x00,0x08, +0xfa,0x00,0x07,0xd8,0x00,0xfe,0xff,0xf4,0xff,0x05,0x00,0x11,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +0x06,0x09,0x00,0x00,0x00,0x62,0x71,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x57,0x4d,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00, +0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00, +0x63,0x98,0x00,0x00,0x00,0x63,0x98,0x00,0x00,0x00,0x7a,0x79,0x25,0x86,0x78,0xd8,0x2d,0x00,0x01,0x38, +0x0e,0x00,0x00,0x00,0xf4,0xff,0x09,0x00,0x0d,0x00,0x08,0x00,0x00,0x00,0x01,0x0e,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x08,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xf6,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x08,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xf6,0x00,0x00,0x00,0x00,0x39,0x82,0x09,0x08, +0xf6,0x00,0x00,0x00,0x6c,0x7c,0x03,0x00,0x08,0xf6,0x00,0x0d,0xa8,0x4c,0x00,0x00,0x00,0x08,0xf6,0x2b, +0x9f,0xbe,0x6d,0x00,0x00,0x00,0x08,0xfc,0x88,0x06,0x25,0xe9,0x18,0x00,0x00,0x08,0xf6,0x00,0x00,0x00, +0x85,0xa3,0x00,0x00,0x08,0xf6,0x00,0x00,0x00,0x0b,0xe1,0x3f,0x00,0x08,0xf6,0x00,0x00,0x00,0x00,0x55, +0xd4,0x05,0x07,0xd2,0x00,0x00,0x00,0x00,0x00,0xaa,0x59,0x00,0x00,0xf4,0xff,0x02,0x00,0x0d,0x00,0x02, +0x00,0x00,0x00,0x02,0x0d,0x10,0xcc,0x10,0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x10, +0xef,0x10,0xef,0x10,0xef,0x10,0xef,0x0d,0xcf,0x00,0x00,0xf8,0xff,0x0e,0x00,0x09,0x00,0x0e,0x00,0x00, +0x00,0x13,0xb8,0x17,0x80,0xb9,0xba,0x44,0x01,0x7f,0xbc,0xb6,0x7d,0x1a,0x00,0x13,0xfb,0x9f,0x10,0x00, +0x2d,0xe8,0xa5,0x6a,0x05,0x02,0x6e,0xa6,0x00,0x13,0xff,0x2d,0x00,0x00,0x00,0xa5,0xd4,0x01,0x00,0x00, +0x08,0xe9,0x10,0x13,0xec,0x00,0x00,0x00,0x00,0x6e,0x92,0x00,0x00,0x00,0x00,0xc4,0x3b,0x13,0xeb,0x00, +0x00,0x00,0x00,0x6d,0x91,0x00,0x00,0x00,0x00,0xc3,0x3b,0x13,0xeb,0x00,0x00,0x00,0x00,0x6d,0x91,0x00, +0x00,0x00,0x00,0xc3,0x3b,0x13,0xeb,0x00,0x00,0x00,0x00,0x6d,0x91,0x00,0x00,0x00,0x00,0xc3,0x3b,0x13, +0xeb,0x00,0x00,0x00,0x00,0x6d,0x91,0x00,0x00,0x00,0x00,0xc3,0x3b,0x10,0xc8,0x00,0x00,0x00,0x00,0x5d, +0x7c,0x00,0x00,0x00,0x00,0xa6,0x32,0x00,0x00,0xf7,0xff,0x08,0x00,0x0a,0x00,0x08,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x12,0xaf,0x3e,0xbe,0xb5,0xac,0x61,0x06,0x13,0xf9,0xaa,0x15,0x00, +0x0e,0xad,0x5a,0x13,0xff,0x33,0x00,0x00,0x00,0x42,0xbe,0x13,0xe9,0x00,0x00,0x00,0x00,0x09,0xf2,0x13, +0xe7,0x00,0x00,0x00,0x00,0x08,0xf3,0x13,0xe7,0x00,0x00,0x00,0x00,0x08,0xf3,0x13,0xe7,0x00,0x00,0x00, +0x00,0x08,0xf3,0x13,0xe7,0x00,0x00,0x00,0x00,0x08,0xf3,0x10,0xc5,0x00,0x00,0x00,0x00,0x07,0xce,0x00, +0x00,0xf7,0xff,0x09,0x00,0x0a,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, +0x00,0x00,0x5c,0xb5,0xa8,0xb2,0x8a,0x06,0x00,0x00,0x5c,0xac,0x05,0x00,0x00,0x6d,0x9e,0x00,0x00,0xb9, +0x25,0x00,0x00,0x00,0x00,0xd6,0x07,0x12,0xdb,0x00,0x00,0x00,0x00,0x00,0xa3,0x4a,0x49,0xb2,0x00,0x00, +0x00,0x00,0x00,0x76,0x8b,0x0e,0xe3,0x02,0x00,0x00,0x00,0x00,0xa7,0x76,0x00,0xb2,0x34,0x00,0x00,0x00, +0x00,0xe3,0x41,0x00,0x53,0xcb,0x44,0x00,0x00,0x65,0xba,0x00,0x00,0x00,0x4d,0xc2,0xbd,0xad,0x84,0x07, +0x00,0x00,0x00,0xf7,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x0c,0xce,0x11,0x92,0xb0,0xae,0x48,0x01,0x00,0x0c,0xf9,0xb5,0x4c,0x01,0x13,0x8c,0xae,0x00, +0x0c,0xff,0x94,0x00,0x00,0x00,0x04,0xf0,0x3b,0x0c,0xff,0x48,0x00,0x00,0x00,0x00,0xac,0x73,0x0c,0xff, +0x0f,0x00,0x00,0x00,0x00,0x77,0x89,0x0c,0xff,0x4a,0x00,0x00,0x00,0x00,0xaa,0x4d,0x0c,0xff,0x9a,0x00, +0x00,0x00,0x02,0xe4,0x0c,0x0c,0xf8,0xa7,0x78,0x10,0x1b,0x92,0xad,0x00,0x0c,0xf6,0x08,0x7a,0xb1,0xad, +0x44,0x01,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xf7,0xff,0x09,0x00,0x0e,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x2f,0x9f,0xb7,0xb1,0x3a,0x9c,0x1f,0x00,0x73,0xbf,0x32,0x00,0x2a,0xb9,0xe4,0x4a,0x0c,0xf1, +0x3d,0x00,0x00,0x00,0x4e,0xff,0x4a,0x35,0xeb,0x03,0x00,0x00,0x00,0x0c,0xf9,0x4a,0x4a,0xb8,0x00,0x00, +0x00,0x00,0x00,0xce,0x4a,0x0d,0xea,0x07,0x00,0x00,0x00,0x0a,0xf7,0x4a,0x00,0xb5,0x4a,0x00,0x00,0x00, +0x47,0xff,0x4a,0x00,0x57,0xd2,0x56,0x03,0x3b,0xba,0xdb,0x4a,0x00,0x00,0x1c,0x87,0xc5,0xab,0x3c,0xb5, +0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb5,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb5,0x4a,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xb5,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x13,0x00,0x00,0xf7, +0xff,0x07,0x00,0x0a,0x00,0x06,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x0c,0xc6,0x0c,0x8e, +0xbb,0x92,0x0a,0x0c,0xf7,0xcc,0x53,0x0a,0x00,0x00,0x0c,0xff,0x95,0x00,0x00,0x00,0x00,0x0c,0xfe,0x29, +0x00,0x00,0x00,0x00,0x0c,0xef,0x00,0x00,0x00,0x00,0x00,0x0c,0xef,0x00,0x00,0x00,0x00,0x00,0x0c,0xef, +0x00,0x00,0x00,0x00,0x00,0x0c,0xef,0x00,0x00,0x00,0x00,0x00,0x0a,0xcf,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xf7,0xff,0x08,0x00,0x0b,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, +0x2d,0x92,0xa8,0xb1,0xc0,0x66,0x00,0x02,0xcb,0x32,0x00,0x00,0x1c,0x7d,0x4f,0x25,0xe0,0x03,0x00,0x00, +0x00,0x00,0x00,0x00,0xb3,0xa8,0x4f,0x0d,0x00,0x00,0x00,0x00,0x01,0x39,0x8b,0xd6,0xaa,0x4f,0x02,0x00, +0x00,0x00,0x00,0x01,0x37,0xcf,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0xb4,0x2c,0xa7,0x57,0x09,0x00, +0x06,0xab,0x65,0x00,0x24,0xa6,0xc9,0xbc,0xbb,0x85,0x09,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, +0x00,0xf4,0xff,0x07,0x00,0x0e,0x00,0x06,0x00,0x00,0x00,0x00,0x02,0x0f,0x00,0x00,0x00,0x00,0x00,0x0c, +0xd9,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x21, +0x7b,0xfa,0x74,0x74,0x26,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00, +0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x0c,0xf6,0x00,0x00,0x00, +0x00,0x00,0x0c,0xf6,0x00,0x00,0x00,0x00,0x00,0x02,0xe1,0x29,0x1c,0x8a,0x08,0x00,0x00,0x62,0xca,0xac, +0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0x09,0x00,0x09,0x00,0x08,0x00,0x00, +0x00,0x0e,0xa1,0x00,0x00,0x00,0x00,0x00,0xae,0x03,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xf4,0x0e,0x10, +0xf3,0x00,0x00,0x00,0x00,0x00,0xf4,0x0e,0x10,0xf3,0x00,0x00,0x00,0x00,0x00,0xf4,0x0e,0x10,0xf3,0x00, +0x00,0x00,0x00,0x00,0xf4,0x0e,0x0d,0xf6,0x03,0x00,0x00,0x00,0x01,0xf7,0x0e,0x00,0xc8,0x43,0x00,0x00, +0x00,0x40,0xff,0x0e,0x00,0x6b,0xb5,0x1f,0x00,0x20,0xb2,0xfc,0x0e,0x00,0x08,0x58,0xaa,0xbe,0xba,0x3e, +0xde,0x0c,0x00,0x00,0xf8,0xff,0x09,0x00,0x0a,0x00,0x08,0x00,0x00,0x00,0x88,0x3b,0x00,0x00,0x00,0x00, +0x00,0x5d,0x27,0x45,0xbd,0x00,0x00,0x00,0x00,0x00,0xa1,0x00,0x01,0xda,0x27,0x00,0x00,0x00,0x28,0x79, +0x00,0x00,0x75,0x8e,0x00,0x00,0x00,0x81,0x1f,0x00,0x00,0x14,0xe5,0x09,0x00,0x01,0x9f,0x00,0x00,0x00, +0x00,0xa4,0x5e,0x00,0x39,0x66,0x00,0x00,0x00,0x00,0x3c,0xc6,0x00,0x8d,0x11,0x00,0x00,0x00,0x00,0x00, +0xd1,0x62,0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xb1,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0x0c,0x00,0x0a,0x00,0x0c,0x00,0x00,0x00,0x91,0x1c,0x00,0x00, +0x00,0x45,0xba,0x0c,0x00,0x00,0x00,0x6f,0x88,0x6f,0x00,0x00,0x00,0xa1,0xce,0x54,0x00,0x00,0x04,0x8f, +0x4a,0xad,0x00,0x00,0x0f,0x91,0x5c,0x9e,0x00,0x00,0x35,0x5f,0x0f,0xe7,0x01,0x00,0x5b,0x46,0x14,0xe4, +0x01,0x00,0x72,0x22,0x00,0xcd,0x2a,0x00,0x9c,0x05,0x00,0xc6,0x34,0x00,0x94,0x00,0x00,0x8f,0x68,0x0a, +0x97,0x00,0x00,0x7c,0x7e,0x01,0x94,0x00,0x00,0x51,0xa6,0x52,0x50,0x00,0x00,0x31,0xc9,0x2b,0x6a,0x00, +0x00,0x14,0xec,0xc7,0x0a,0x00,0x00,0x01,0xe3,0xb6,0x2d,0x00,0x00,0x00,0x8b,0x6e,0x00,0x00,0x00,0x00, +0x51,0x9e,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff, +0x09,0x00,0x09,0x00,0x08,0x00,0x00,0x00,0x59,0x91,0x02,0x00,0x00,0x00,0x12,0x84,0x02,0x01,0xa8,0x86, +0x00,0x00,0x05,0x9f,0x17,0x00,0x00,0x0c,0xd2,0x53,0x00,0x8d,0x30,0x00,0x00,0x00,0x00,0x25,0xe3,0x8d, +0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xe6,0x11,0x00,0x00,0x00,0x00,0x00,0x27,0x97,0x7f,0xb7,0x03, +0x00,0x00,0x00,0x11,0xa5,0x0a,0x02,0xb1,0x86,0x00,0x00,0x04,0xa1,0x1b,0x00,0x00,0x0f,0xd8,0x54,0x00, +0x71,0x37,0x00,0x00,0x00,0x00,0x2a,0xcc,0x1c,0x00,0x00,0xf8,0xff,0x09,0x00,0x0d,0x00,0x08,0x00,0x00, +0x00,0x86,0x36,0x00,0x00,0x00,0x00,0x00,0x62,0x1b,0x47,0xbe,0x00,0x00,0x00,0x00,0x06,0x9d,0x00,0x01, +0xd8,0x2c,0x00,0x00,0x00,0x5b,0x48,0x00,0x00,0x6e,0x98,0x00,0x00,0x00,0xa2,0x01,0x00,0x00,0x0f,0xe8, +0x11,0x00,0x39,0x6b,0x00,0x00,0x00,0x00,0x96,0x72,0x00,0x98,0x0c,0x00,0x00,0x00,0x00,0x2b,0xdc,0x1e, +0x89,0x00,0x00,0x00,0x00,0x00,0x00,0xbe,0xc6,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xb0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x63,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x40,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xf8,0xff,0x09,0x00,0x09,0x00,0x08,0x00,0x00,0x00,0x09,0x6d,0x74,0x74,0x74,0x74,0x91,0x68,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x6e,0xa1,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0xd9,0x1e,0x00,0x00,0x00,0x00, +0x00,0x6d,0xd4,0x19,0x00,0x00,0x00,0x00,0x00,0x75,0xce,0x15,0x00,0x00,0x00,0x00,0x00,0x7d,0xc8,0x11, +0x00,0x00,0x00,0x00,0x00,0x86,0xc0,0x0d,0x00,0x00,0x00,0x00,0x00,0x3e,0xca,0x0a,0x00,0x00,0x00,0x00, +0x00,0x00,0x2d,0xa3,0x78,0x78,0x78,0x78,0x78,0x6a,0x04,0x00,0x00,0xf3,0xff,0x05,0x00,0x10,0x00,0x05, +0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0b,0x00,0x00,0x88,0xb1,0x64,0x00,0x08,0xe3,0x0a,0x00,0x00,0x18, +0xe3,0x00,0x00,0x00,0x18,0xe3,0x00,0x00,0x00,0x18,0xe3,0x00,0x00,0x00,0x2a,0xd2,0x00,0x00,0x16,0x9e, +0x75,0x00,0x00,0x52,0xc2,0x26,0x00,0x00,0x00,0x4e,0xb2,0x00,0x00,0x00,0x18,0xe2,0x00,0x00,0x00,0x18, +0xe3,0x00,0x00,0x00,0x18,0xe3,0x00,0x00,0x00,0x10,0xe2,0x00,0x00,0x00,0x00,0xd0,0x1f,0x00,0x00,0x00, +0x20,0x72,0x73,0x00,0x00,0xf3,0xff,0x02,0x00,0x10,0x00,0x02,0x00,0x00,0x00,0x00,0x09,0x08,0xd5,0x08, 0xd5,0x08,0xd5,0x08,0xd5,0x08,0xd5,0x08,0xd5,0x08,0xd5,0x08,0xd5,0x08,0xd5,0x08,0xd5,0x08,0xd5,0x08, -0xd5,0x04,0x6f,0x00,0x00,0xf3,0xff,0x05,0x00,0x10,0x00,0x05,0x00,0x00,0x00,0x04,0x06,0x00,0x00,0x00, -0x40,0x88,0xc5,0x0f,0x00,0x00,0x00,0x9e,0x58,0x00,0x00,0x00,0x89,0x72,0x00,0x00,0x00,0x89,0x72,0x00, -0x00,0x00,0x89,0x72,0x00,0x00,0x00,0x78,0x85,0x00,0x00,0x00,0x2d,0xca,0x34,0x00,0x00,0x07,0x95,0xa2, -0x00,0x00,0x56,0xaa,0x00,0x00,0x00,0x87,0x73,0x00,0x00,0x00,0x89,0x72,0x00,0x00,0x00,0x89,0x72,0x00, -0x00,0x00,0x89,0x6a,0x00,0x00,0x05,0xb8,0x30,0x00,0x47,0x7c,0x45,0x01,0x00,0x00,0x00,0xf9,0xff,0x0a, -0x00,0x03,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xb9,0xb8, -0xc3,0x97,0x4d,0x0b,0x57,0xad,0x01,0x38,0x3d,0x00,0x01,0x34,0x7b,0xb5,0x98,0x29,0x00,0x01,0x00,0xfd, -0xff,0x05,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x00,0x13,0x60,0x1f,0x00,0x0a,0x9f,0x26,0x92,0x22,0x45, -0x4c,0x00,0x27,0x6b,0x09,0xa2,0x32,0x94,0x22,0x00,0x0b,0x4f,0x15,0x00,0x01,0x00,0xf3,0xff,0x0d,0x00, -0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x2e,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0xd5,0x00, -0x00,0x00,0x00,0x00,0x00,0x79,0x83,0x74,0x74,0x74,0x8d,0xe8,0x74,0x74,0x74,0x87,0x5f,0x00,0xb5,0x46, -0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x01,0xc3,0x2d,0xb5,0x46,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00, -0x00,0x00,0x9e,0x59,0xb5,0x46,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x9e,0x59,0xb5,0x46,0x00, -0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x9e,0x59,0xb5,0x46,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00, -0x00,0x9e,0x59,0xb5,0x46,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x9e,0x59,0x56,0x76,0x74,0x74, -0x74,0x8d,0xe8,0x74,0x74,0x74,0x74,0x77,0x2b,0x00,0x00,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x2e,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xa2,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0xf3,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x80,0x08,0x00,0x00,0xc3,0x01,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x5f,0xd4,0x0e,0x00,0xf8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x73, -0x00,0xf9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x56,0x78,0x79,0x80,0x7a,0xfa,0x78,0x78,0x78,0x78, -0x87,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x3a,0xbf,0x00,0x00,0x00,0x00,0x07,0xce,0x27,0x00,0x00,0x00, -0x00,0x00,0x86,0x71,0x01,0x00,0x00,0x00,0x00,0x97,0x60,0x00,0x00,0x00,0x00,0x00,0xd2,0x29,0xa3,0x12, -0x00,0x00,0x00,0x96,0x61,0x00,0x00,0x00,0x00,0x20,0xd5,0x00,0x43,0xd8,0x22,0x00,0x00,0x96,0x61,0x00, -0x00,0x00,0x00,0x6e,0x87,0x00,0x00,0x85,0xbf,0x00,0x00,0x96,0x61,0x00,0x00,0x00,0x21,0xdc,0x25,0x00, -0x00,0x04,0xc2,0x26,0x00,0x96,0x61,0x00,0x00,0x0a,0xc5,0x3b,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x96, -0x60,0x00,0x00,0x9d,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbf,0x31,0x00,0x6a,0x5a,0x00,0x00, -0x00,0x00,0x00,0x65,0x50,0x18,0x5a,0xdd,0x01,0x04,0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x84, -0x67,0x18,0x00,0x00,0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x7d,0x00,0x00,0x00,0x00,0x58,0x6b, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x91,0x95,0x1d,0x74,0x74,0x74,0xaa,0xc6,0x74,0x74,0x74,0x34,0x00, -0x00,0x05,0xea,0x4c,0x00,0x00,0x00,0x00,0x72,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x4e,0xff,0x0d,0x00, -0x68,0x75,0x74,0xb5,0xb3,0x74,0x6f,0x29,0x00,0x00,0x00,0xac,0xff,0x06,0x00,0xd9,0x16,0x00,0x00,0x00, -0x00,0x1a,0xdc,0x08,0x00,0x12,0xe1,0xf5,0x06,0x00,0xd9,0x3c,0x29,0x29,0x29,0x29,0x29,0xcd,0x2c,0x00, -0x68,0x4c,0xee,0x06,0x00,0xd9,0x5b,0x4b,0x4b,0x4b,0x4b,0x4b,0xd5,0x2c,0x00,0x11,0x00,0xee,0x06,0x00, -0xd9,0x16,0x00,0x00,0x00,0x00,0x00,0xc3,0x2c,0x00,0x00,0x00,0xee,0x06,0x00,0xd9,0x80,0x74,0x74,0x74, -0x74,0x74,0xde,0x2c,0x00,0x00,0x00,0xee,0x06,0x00,0xd9,0x16,0x00,0x00,0x00,0x00,0x00,0xc3,0x2c,0x00, -0x00,0x00,0xee,0x06,0x00,0xd9,0x80,0x74,0x74,0x74,0x74,0x74,0xde,0x2c,0x00,0x00,0x00,0xee,0x06,0x00, -0xd9,0x16,0x00,0x00,0x00,0x00,0x00,0xc3,0x2c,0x00,0x00,0x00,0xee,0x06,0x22,0xdf,0x3d,0x2a,0x2a,0x2a, -0x2a,0x2a,0xcd,0x46,0x00,0x00,0x00,0xb5,0x04,0x2b,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4d,0x07, -0x00,0x00,0xf4,0xff,0x0f,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x14,0x7a,0x7c,0x78,0x78,0x78,0x7f,0x5d, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x02,0x67,0x78,0x78,0x78,0x81, -0x25,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00,0x2a,0x00,0x00,0x00,0x35,0xbb,0x00,0x00,0x66,0x8c, -0x15,0x15,0x15,0xed,0x00,0x70,0x2a,0x00,0x00,0x41,0xbe,0x00,0x00,0x66,0xb2,0x63,0x63,0x63,0xf3,0x00, -0x27,0x90,0x00,0x00,0x9a,0x81,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00,0x00,0xcc,0x09,0x05,0xed, -0x44,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00,0x00,0x84,0x5f,0x4b,0xe1,0x06,0x00,0x00,0x66,0xbb, -0x74,0x74,0x74,0xf4,0x00,0x00,0x22,0xc5,0xa4,0x69,0x00,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00, -0x00,0x00,0xbb,0xdb,0x07,0x00,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xb0,0xc2,0x00, -0x00,0x00,0x00,0x66,0x82,0x01,0x23,0x58,0xf5,0x96,0x1a,0x66,0x9d,0xd4,0x5a,0x00,0x00,0x17,0xb7,0xe2, -0xe0,0xb2,0x6a,0xf1,0x00,0x2c,0xad,0x04,0x53,0xe8,0x10,0x00,0x00,0x37,0x26,0x05,0x00,0x00,0xec,0x0a, -0xa2,0x0d,0x00,0x00,0xbc,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb7,0x43,0x19,0x00,0x00,0x00,0x1e, -0x99,0x06,0x00,0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb6,0x5c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x3f,0x41,0x41,0x41,0x41,0x73,0xf3,0x42,0x41,0x41,0x41,0x22,0x00,0x00,0x00, -0xf4,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x38,0xa1,0x78,0x00,0x00,0xf3,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x57,0xa5,0x00,0x00,0xc9,0x00,0x55,0x74,0x74,0x74,0x74,0x74,0x74,0xd6, -0x4f,0x70,0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x7f,0xe8,0x41,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x3b,0xae,0xb8,0x7b,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1e,0xc0,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x6d,0x78,0x78,0x78,0x78,0x78,0xb5,0xbe,0x78,0x78, -0x78,0x78,0x61,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xf5,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x34,0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x5f,0x21,0x40,0xbd,0x71,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0x75,0x82,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xbf,0x67,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x74,0x74,0x74,0x74,0x74,0x9e,0xf9,0x77,0x74,0x74,0x75,0x4e,0x08,0x00,0x00,0xfb,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x8e,0x84,0x00,0x00,0xfb,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x73,0x93,0x00,0x00,0x8d,0x2e,0x74,0x74,0x74,0x74,0xa4,0x84,0x74,0x74,0x6b,0x68,0x0f, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x71, -0x00,0x00,0x00,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0xd1,0x00,0x00,0x00,0xb9,0x3f, -0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x69,0xab,0x00,0x00,0x00,0xb9,0x98,0x76,0x76,0x76,0x5f,0x00, -0x00,0x00,0x00,0x91,0x9a,0x00,0x00,0x00,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xdb,0x94, -0x51,0x00,0x00,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x66,0x00,0x87,0x67,0x09,0xb9,0x3e, -0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xa0,0x00,0x00,0x01,0x8b,0xc7,0xe7,0x96,0x6e,0x6d,0x6d,0x6d,0x69, -0x08,0x40,0x16,0x00,0x00,0x00,0x00,0x00,0x0e,0x3d,0x5f,0x61,0x61,0x61,0x3b,0x00,0x00,0x00,0xf4,0xff, -0x0e,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xa8,0x2d,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xe0,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x78,0x78, -0x78,0x78,0x78,0xba,0x79,0x78,0x78,0xa6,0x91,0x3d,0x00,0x00,0x2f,0x06,0x00,0x00,0x00,0x00,0x00,0x00, -0x0c,0xec,0x21,0x00,0x00,0x00,0x24,0x98,0x04,0x00,0x00,0x00,0x00,0x00,0x6c,0xb2,0x00,0x00,0x00,0x00, -0x00,0x3e,0x9d,0x02,0x00,0x00,0x00,0x03,0xda,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0x9b,0x01,0x00, -0x00,0x8a,0xb6,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x92,0x00,0x5a,0xd6,0x0f,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x02,0xab,0xa3,0xe3,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x64,0xfe,0xc1,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0xb3,0xbb,0x26,0xae,0xe9,0x53,0x00, -0x00,0x00,0x00,0x00,0x01,0x67,0xe6,0x6c,0x01,0x00,0x03,0x90,0xff,0xa8,0x14,0x00,0x00,0x24,0xb1,0x88, -0x17,0x00,0x00,0x00,0x00,0x00,0x51,0xec,0xe9,0x51,0x00,0x5f,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x17,0x6e,0x40,0x00,0x00,0xf3,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x2f,0x75,0x08,0x00,0x7a,0x78,0x78,0x7d,0x4a,0x00, -0x00,0x00,0x39,0x7c,0x00,0x79,0xd3,0x09,0xce,0x00,0x00,0x03,0xae,0x1e,0x61,0x21,0x39,0xa4,0x00,0x00, -0x76,0x46,0xce,0x00,0x7b,0x0a,0x89,0x41,0x77,0x48,0x39,0xa4,0x2d,0x01,0x00,0x00,0xce,0x00,0xb8,0x25, -0x89,0x41,0x77,0x48,0x39,0xa4,0x52,0xc1,0x23,0x00,0xce,0x00,0xb8,0x25,0x89,0x41,0x77,0x48,0x39,0xa4, -0x00,0x64,0xcb,0x04,0xce,0x00,0xb8,0x25,0x89,0x41,0x77,0x48,0x39,0xa4,0x00,0x00,0x48,0x01,0xce,0x00, -0xc9,0x15,0x89,0x41,0x77,0x48,0x39,0xa4,0x00,0x00,0x14,0x31,0xce,0x01,0xd6,0x00,0x89,0x41,0x77,0x48, -0x39,0xa4,0x00,0x00,0x7b,0x32,0xce,0x1f,0xb0,0x00,0x89,0x41,0x77,0x48,0x39,0xa4,0x00,0x06,0xcf,0x01, -0xce,0x4a,0x7d,0x00,0x89,0x41,0x77,0x48,0x39,0xa4,0x00,0x5c,0xa4,0x00,0x1e,0xbb,0x48,0x64,0x11,0x08, -0x43,0x28,0x39,0xa4,0x00,0xcc,0x5e,0x00,0x6e,0x80,0x00,0x85,0x9e,0x02,0x00,0x00,0x39,0xa4,0x3d,0xed, -0x0f,0x29,0x97,0x01,0x00,0x03,0xbf,0x64,0x24,0x08,0x6b,0x79,0x21,0x37,0x00,0x56,0x06,0x00,0x00,0x00, -0x18,0x50,0x29,0x82,0x8f,0x18,0x00,0x00,0xf3,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x7b,0x12,0x00,0x29,0x18,0x00,0x00, -0x50,0x73,0x00,0x00,0x29,0x07,0x00,0x3d,0xde,0x3e,0x1b,0xd2,0x23,0x00,0x50,0xa3,0x00,0x01,0xca,0x44, -0x00,0x00,0x3d,0xc9,0x00,0x6b,0xa9,0x00,0x50,0xa3,0x00,0x5c,0xc7,0x02,0x11,0x00,0x00,0x10,0x00,0x02, -0x3c,0x00,0x50,0xa3,0x00,0x56,0x09,0x00,0x45,0xb1,0x1c,0x00,0x21,0xbb,0x74,0x74,0x84,0x94,0x74,0x83, -0x8b,0x13,0x00,0x61,0xdd,0x0b,0x29,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x71,0x00,0x00,0x7d,0x3c, -0x29,0xcf,0x13,0x13,0x13,0x13,0x13,0x13,0x6e,0x95,0x00,0x00,0x00,0x34,0x29,0xde,0x61,0x61,0x61,0x61, -0x61,0x61,0x9d,0x95,0x00,0x00,0x09,0xa5,0x29,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x95,0x00,0x00, -0x72,0x6a,0x29,0xdd,0x59,0x59,0x59,0x59,0x59,0x59,0x98,0x95,0x00,0x0d,0xe7,0x17,0x29,0xd0,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x73,0x95,0x00,0x7c,0xbc,0x00,0x29,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x91, -0x11,0xef,0x4c,0x00,0x29,0xcb,0x00,0x00,0x00,0x24,0x20,0x07,0xad,0x50,0x12,0x58,0x00,0x00,0x1e,0x97, -0x00,0x00,0x00,0x0d,0x5e,0xa1,0x74,0x07,0x00,0x00,0xf3,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x06,0x26,0x26,0x26,0x26,0x08, -0x00,0x38,0xc5,0x40,0x40,0x2a,0x00,0x00,0x01,0x4b,0xa5,0x9d,0x52,0x26,0x22,0xe9,0x71,0x2c,0x2d,0xc6, -0x3c,0x00,0x00,0x00,0xb6,0x30,0x00,0x12,0xd5,0x73,0x00,0x00,0x60,0xba,0x09,0x00,0x00,0x07,0xd8,0x01, -0x00,0xa2,0xe8,0x7c,0x78,0xb0,0xb7,0x7a,0x98,0x44,0x00,0x47,0xc6,0x7a,0x4e,0x06,0xd6,0x0b,0x00,0x82, -0x5b,0x00,0x2b,0xb0,0x00,0xa7,0x67,0x0e,0xd1,0x03,0xd6,0x0b,0x00,0x82,0x5b,0x00,0x1f,0xc2,0x14,0xf2, -0x67,0x00,0xc6,0x08,0xd6,0x7d,0x78,0xbd,0xa8,0x78,0x88,0xc2,0x61,0x8f,0x67,0x00,0xc6,0x08,0xd7,0x0a, -0x00,0x82,0x5b,0x00,0x1f,0xc2,0x00,0x6a,0x67,0x00,0xc6,0x08,0xe5,0x02,0x00,0x82,0x5b,0x00,0x1f,0xc2, -0x00,0x6a,0x67,0x00,0xc6,0x08,0xf0,0x78,0x78,0xbd,0xa8,0x78,0x88,0xc2,0x00,0x6a,0x67,0x00,0xc6,0x14, -0xac,0x00,0x00,0x82,0x5b,0x00,0x1f,0xc2,0x00,0x6a,0x67,0x00,0xc6,0x4f,0x51,0x00,0x00,0x82,0x5b,0x00, -0x1f,0xc2,0x00,0x4e,0x8c,0x6c,0xa9,0x88,0x07,0x00,0x00,0x82,0x64,0x07,0x49,0x99,0x00,0x00,0x00,0x00, -0x00,0x4e,0x00,0x00,0x00,0x37,0x3d,0x74,0x9b,0x29,0x00,0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4c, -0x7d,0x00,0x00,0x00,0x00,0x47,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xe0,0xa2,0xaf,0x6c,0x6c,0x3e, -0xe1,0xa7,0xac,0x70,0x6c,0x49,0x00,0x00,0x8a,0xb7,0x02,0xa0,0x39,0x00,0x97,0xb8,0x02,0x74,0x61,0x00, -0x00,0x00,0x2e,0xc4,0x13,0x00,0x45,0x78,0x40,0xb4,0x0f,0x00,0x18,0xb5,0x00,0x00,0x00,0x36,0x0a,0x00, -0x9c,0x10,0x00,0x21,0x02,0x00,0x00,0x00,0x63,0x0b,0x00,0x00,0x00,0x00,0x4d,0xe2,0x03,0x00,0x00,0x00, -0x00,0x00,0x00,0xac,0x47,0x00,0x00,0x00,0x06,0xd9,0x87,0x34,0x74,0x74,0x74,0x74,0x74,0x74,0xd2,0x9b, -0x60,0x01,0x00,0x72,0xff,0x72,0x00,0x43,0x1b,0x00,0x00,0x00,0x00,0xac,0x47,0x00,0x00,0x14,0xd0,0x9f, -0x72,0x00,0x19,0xcc,0x68,0x00,0x00,0x00,0xac,0x47,0x00,0x00,0x51,0x23,0x81,0x72,0x00,0x00,0x1e,0xe0, -0x81,0x00,0x00,0xac,0x47,0x00,0x00,0x00,0x00,0x81,0x72,0x00,0x00,0x00,0x24,0xcd,0x02,0x00,0xac,0x47, -0x00,0x00,0x00,0x00,0x81,0x72,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xbd,0x31,0x00,0x00,0x00,0x00,0x81, -0x72,0x00,0x00,0x00,0x2e,0x4a,0x0a,0x3b,0xdc,0x01,0x00,0x00,0x00,0x00,0x57,0x4d,0x00,0x00,0x00,0x01, -0x35,0x85,0x83,0x2b,0x00,0x00,0x00,0x00,0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x29,0x00,0x00,0x00, -0x00,0x00,0x00,0x22,0x96,0x00,0x15,0x00,0x00,0x00,0x16,0xdb,0x3a,0x00,0x00,0x00,0x00,0x00,0x1e,0xce, -0x00,0x80,0x14,0x00,0x00,0x00,0x4c,0xca,0x03,0x09,0x09,0x09,0x09,0x23,0xd3,0x09,0x2a,0x8d,0x00,0x00, -0x00,0x00,0x3b,0x0a,0x67,0x6b,0x6b,0x6b,0x77,0xeb,0x6b,0x6b,0xc3,0x0f,0x28,0x85,0x50,0x00,0x00,0x00, -0x00,0x00,0x00,0x08,0xee,0x00,0x00,0x13,0x00,0x00,0x16,0xe3,0x00,0x03,0x2d,0x2d,0x2d,0x28,0x00,0xf7, -0x05,0x00,0x00,0x00,0x00,0x01,0xee,0x00,0x00,0x39,0x83,0xab,0x43,0x09,0xe9,0x1a,0x00,0x00,0x00,0x00, -0x01,0xee,0x00,0x00,0x00,0x57,0x8e,0x00,0x00,0xd5,0x2f,0x00,0x00,0x00,0x00,0x01,0xee,0x00,0x00,0x00, -0x57,0x8e,0x00,0x00,0xb4,0x44,0x00,0x00,0x00,0x00,0x01,0xee,0x00,0x00,0x00,0x57,0x8e,0x00,0x00,0x92, -0x5a,0x00,0x00,0x00,0x00,0x01,0xee,0x00,0x00,0x00,0x57,0x8e,0x00,0x09,0x5e,0x8a,0x00,0x01,0x02,0x00, -0x01,0xee,0x00,0x96,0x2c,0x8b,0xd4,0xad,0x61,0x0e,0xd1,0x00,0x46,0x42,0x00,0x01,0xe0,0xb3,0x90,0x94, -0x7a,0x41,0x02,0x00,0x00,0xa8,0x67,0x88,0x2d,0x00,0x00,0x2c,0x44,0x01,0x00,0x00,0x00,0x00,0x00,0x00, -0x08,0x78,0x6e,0x04,0x02,0x00,0xf4,0xff,0x03,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x00,0x04,0x00,0x03, -0xcd,0x2f,0x03,0xfe,0x57,0x00,0xf2,0x48,0x00,0xe4,0x39,0x00,0xd5,0x2a,0x00,0xc7,0x1b,0x00,0xb8,0x0c, -0x00,0xa6,0x01,0x00,0x89,0x00,0x00,0x17,0x00,0x00,0x29,0x00,0x02,0xcb,0x2f,0x00,0x04,0x00,0x02,0x00, -0xfe,0xff,0x03,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x00,0x31,0x00,0x0c,0xe0,0x54,0x00,0x70,0x44,0x11, -0xa0,0x09,0x08,0x01,0x00,0x00,0x00,0xf4,0xff,0x08,0x00,0x0d,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00, -0x0c,0x06,0x00,0x00,0x00,0x00,0x50,0x99,0x93,0xa6,0x9b,0x3c,0x00,0x2b,0x85,0x00,0x00,0x00,0x20,0xe0, -0x05,0x76,0x04,0x00,0x00,0x00,0x00,0xa9,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0xba,0x5c,0x00,0x00,0x00, -0x00,0x04,0x65,0xeb,0x0b,0x00,0x00,0x00,0x0c,0xca,0x9b,0x18,0x00,0x00,0x00,0x00,0xa1,0x87,0x00,0x00, -0x00,0x00,0x00,0x00,0xd0,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x36,0x00,0x00,0x00,0x00,0x00,0x00, -0x0a,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xb0,0x36,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,};/*13925*/ +0xd5,0x08,0xd5,0x08,0xd5,0x04,0x6f,0x00,0x00,0xf3,0xff,0x05,0x00,0x10,0x00,0x05,0x00,0x00,0x00,0x04, +0x06,0x00,0x00,0x00,0x40,0x88,0xc5,0x0f,0x00,0x00,0x00,0x9e,0x58,0x00,0x00,0x00,0x89,0x72,0x00,0x00, +0x00,0x89,0x72,0x00,0x00,0x00,0x89,0x72,0x00,0x00,0x00,0x78,0x85,0x00,0x00,0x00,0x2d,0xca,0x34,0x00, +0x00,0x07,0x95,0xa2,0x00,0x00,0x56,0xaa,0x00,0x00,0x00,0x87,0x73,0x00,0x00,0x00,0x89,0x72,0x00,0x00, +0x00,0x89,0x72,0x00,0x00,0x00,0x89,0x6a,0x00,0x00,0x05,0xb8,0x30,0x00,0x47,0x7c,0x45,0x01,0x00,0x00, +0x00,0xf9,0xff,0x0a,0x00,0x03,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x0a,0xb9,0xb8,0xc3,0x97,0x4d,0x0b,0x57,0xad,0x01,0x38,0x3d,0x00,0x01,0x34,0x7b,0xb5,0x98,0x29, +0x00,0x01,0x00,0xfd,0xff,0x05,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x00,0x13,0x60,0x1f,0x00,0x0a,0x9f, +0x26,0x92,0x22,0x45,0x4c,0x00,0x27,0x6b,0x09,0xa2,0x32,0x94,0x22,0x00,0x0b,0x4f,0x15,0x00,0x01,0x00, +0xf3,0xff,0x0d,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x9c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0x83,0x74,0x74,0x74,0x8d,0xe8,0x74,0x74,0x74,0x87, +0x5f,0x00,0xb5,0x46,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x01,0xc3,0x2d,0xb5,0x46,0x00,0x00,0x00, +0x2e,0xd5,0x00,0x00,0x00,0x00,0x9e,0x59,0xb5,0x46,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x9e, +0x59,0xb5,0x46,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x9e,0x59,0xb5,0x46,0x00,0x00,0x00,0x2e, +0xd5,0x00,0x00,0x00,0x00,0x9e,0x59,0xb5,0x46,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x9e,0x59, +0x56,0x76,0x74,0x74,0x74,0x8d,0xe8,0x74,0x74,0x74,0x74,0x77,0x2b,0x00,0x00,0x00,0x00,0x00,0x2e,0xd5, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x2e,0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xa2,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf3,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x80,0x08,0x00,0x00,0xc3,0x01,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0xd4,0x0e,0x00,0xf8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x84,0x73,0x00,0xf9,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x56,0x78,0x79,0x80,0x7a,0xfa, +0x78,0x78,0x78,0x78,0x87,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x3a,0xbf,0x00,0x00,0x00,0x00,0x07,0xce, +0x27,0x00,0x00,0x00,0x00,0x00,0x86,0x71,0x01,0x00,0x00,0x00,0x00,0x97,0x60,0x00,0x00,0x00,0x00,0x00, +0xd2,0x29,0xa3,0x12,0x00,0x00,0x00,0x96,0x61,0x00,0x00,0x00,0x00,0x20,0xd5,0x00,0x43,0xd8,0x22,0x00, +0x00,0x96,0x61,0x00,0x00,0x00,0x00,0x6e,0x87,0x00,0x00,0x85,0xbf,0x00,0x00,0x96,0x61,0x00,0x00,0x00, +0x21,0xdc,0x25,0x00,0x00,0x04,0xc2,0x26,0x00,0x96,0x61,0x00,0x00,0x0a,0xc5,0x3b,0x00,0x00,0x00,0x00, +0x06,0x00,0x00,0x96,0x60,0x00,0x00,0x9d,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbf,0x31,0x00, +0x6a,0x5a,0x00,0x00,0x00,0x00,0x00,0x65,0x50,0x18,0x5a,0xdd,0x01,0x04,0x5e,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x33,0x84,0x67,0x18,0x00,0x00,0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x7d,0x00,0x00, +0x00,0x00,0x58,0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x91,0x95,0x1d,0x74,0x74,0x74,0xaa,0xc6,0x74, +0x74,0x74,0x34,0x00,0x00,0x05,0xea,0x4c,0x00,0x00,0x00,0x00,0x72,0x84,0x00,0x00,0x00,0x00,0x00,0x00, +0x4e,0xff,0x0d,0x00,0x68,0x75,0x74,0xb5,0xb3,0x74,0x6f,0x29,0x00,0x00,0x00,0xac,0xff,0x06,0x00,0xd9, +0x16,0x00,0x00,0x00,0x00,0x1a,0xdc,0x08,0x00,0x12,0xe1,0xf5,0x06,0x00,0xd9,0x3c,0x29,0x29,0x29,0x29, +0x29,0xcd,0x2c,0x00,0x68,0x4c,0xee,0x06,0x00,0xd9,0x5b,0x4b,0x4b,0x4b,0x4b,0x4b,0xd5,0x2c,0x00,0x11, +0x00,0xee,0x06,0x00,0xd9,0x16,0x00,0x00,0x00,0x00,0x00,0xc3,0x2c,0x00,0x00,0x00,0xee,0x06,0x00,0xd9, +0x80,0x74,0x74,0x74,0x74,0x74,0xde,0x2c,0x00,0x00,0x00,0xee,0x06,0x00,0xd9,0x16,0x00,0x00,0x00,0x00, +0x00,0xc3,0x2c,0x00,0x00,0x00,0xee,0x06,0x00,0xd9,0x80,0x74,0x74,0x74,0x74,0x74,0xde,0x2c,0x00,0x00, +0x00,0xee,0x06,0x00,0xd9,0x16,0x00,0x00,0x00,0x00,0x00,0xc3,0x2c,0x00,0x00,0x00,0xee,0x06,0x22,0xdf, +0x3d,0x2a,0x2a,0x2a,0x2a,0x2a,0xcd,0x46,0x00,0x00,0x00,0xb5,0x04,0x2b,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e, +0x4e,0x4e,0x4d,0x07,0x00,0x00,0xf4,0xff,0x0f,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x14,0x7a,0x7c,0x78, +0x78,0x78,0x7f,0x5d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x02,0x67, +0x78,0x78,0x78,0x81,0x25,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00,0x2a,0x00,0x00,0x00,0x35,0xbb, +0x00,0x00,0x66,0x8c,0x15,0x15,0x15,0xed,0x00,0x70,0x2a,0x00,0x00,0x41,0xbe,0x00,0x00,0x66,0xb2,0x63, +0x63,0x63,0xf3,0x00,0x27,0x90,0x00,0x00,0x9a,0x81,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00,0x00, +0xcc,0x09,0x05,0xed,0x44,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00,0x00,0x84,0x5f,0x4b,0xe1,0x06, +0x00,0x00,0x66,0xbb,0x74,0x74,0x74,0xf4,0x00,0x00,0x22,0xc5,0xa4,0x69,0x00,0x00,0x00,0x66,0x82,0x00, +0x00,0x00,0xec,0x00,0x00,0x00,0xbb,0xdb,0x07,0x00,0x00,0x00,0x66,0x82,0x00,0x00,0x00,0xec,0x00,0x00, +0x00,0xb0,0xc2,0x00,0x00,0x00,0x00,0x66,0x82,0x01,0x23,0x58,0xf5,0x96,0x1a,0x66,0x9d,0xd4,0x5a,0x00, +0x00,0x17,0xb7,0xe2,0xe0,0xb2,0x6a,0xf1,0x00,0x2c,0xad,0x04,0x53,0xe8,0x10,0x00,0x00,0x37,0x26,0x05, +0x00,0x00,0xec,0x0a,0xa2,0x0d,0x00,0x00,0xbc,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb7,0x43,0x19, +0x00,0x00,0x00,0x1e,0x99,0x06,0x00,0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb6, +0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x41,0x41,0x41,0x41,0x73,0xf3,0x42,0x41,0x41,0x41, +0x22,0x00,0x00,0x00,0xf4,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x38,0xa1,0x78,0x00,0x00,0xf3, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x57,0xa5,0x00,0x00,0xc9,0x00,0x55,0x74,0x74,0x74, +0x74,0x74,0x74,0xd6,0x4f,0x70,0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x7f,0xe8,0x41, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0xae,0xb8,0x7b,0x1c,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x1e,0xc0,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x6d,0x78,0x78,0x78,0x78,0x78, +0xb5,0xbe,0x78,0x78,0x78,0x78,0x61,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0xd1,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xf5,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x34,0xcf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x5f,0x21,0x40, +0xbd,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0x75,0x82,0x2e,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xbf,0x67,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x74,0x74,0x74,0x74,0x9e,0xf9,0x77,0x74,0x74,0x75,0x4e,0x08,0x00, +0x00,0xfb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x8e,0x84,0x00,0x00,0xfb,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x93,0x00,0x00,0x8d,0x2e,0x74,0x74,0x74,0x74,0xa4,0x84,0x74, +0x74,0x6b,0x68,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x18,0x71,0x00,0x00,0x00,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0xd1,0x00, +0x00,0x00,0xb9,0x3f,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x69,0xab,0x00,0x00,0x00,0xb9,0x98,0x76, +0x76,0x76,0x5f,0x00,0x00,0x00,0x00,0x91,0x9a,0x00,0x00,0x00,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x0a,0xdb,0x94,0x51,0x00,0x00,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x66,0x00,0x87, +0x67,0x09,0xb9,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xa0,0x00,0x00,0x01,0x8b,0xc7,0xe7,0x96,0x6e, +0x6d,0x6d,0x6d,0x69,0x08,0x40,0x16,0x00,0x00,0x00,0x00,0x00,0x0e,0x3d,0x5f,0x61,0x61,0x61,0x3b,0x00, +0x00,0x00,0xf4,0xff,0x0e,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xa8,0x2d, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xe0,0x06,0x00,0x00,0x00,0x00,0x00, +0x00,0x5a,0x78,0x78,0x78,0x78,0x78,0xba,0x79,0x78,0x78,0xa6,0x91,0x3d,0x00,0x00,0x2f,0x06,0x00,0x00, +0x00,0x00,0x00,0x00,0x0c,0xec,0x21,0x00,0x00,0x00,0x24,0x98,0x04,0x00,0x00,0x00,0x00,0x00,0x6c,0xb2, +0x00,0x00,0x00,0x00,0x00,0x3e,0x9d,0x02,0x00,0x00,0x00,0x03,0xda,0x46,0x00,0x00,0x00,0x00,0x00,0x00, +0x5f,0x9b,0x01,0x00,0x00,0x8a,0xb6,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x92,0x00,0x5a,0xd6, +0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xab,0xa3,0xe3,0x24,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x64,0xfe,0xc1,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0xb3,0xbb,0x26, +0xae,0xe9,0x53,0x00,0x00,0x00,0x00,0x00,0x01,0x67,0xe6,0x6c,0x01,0x00,0x03,0x90,0xff,0xa8,0x14,0x00, +0x00,0x24,0xb1,0x88,0x17,0x00,0x00,0x00,0x00,0x00,0x51,0xec,0xe9,0x51,0x00,0x5f,0x10,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x17,0x6e,0x40,0x00,0x00,0xf3,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x2f,0x75,0x08,0x00,0x7a,0x78, +0x78,0x7d,0x4a,0x00,0x00,0x00,0x39,0x7c,0x00,0x79,0xd3,0x09,0xce,0x00,0x00,0x03,0xae,0x1e,0x61,0x21, +0x39,0xa4,0x00,0x00,0x76,0x46,0xce,0x00,0x7b,0x0a,0x89,0x41,0x77,0x48,0x39,0xa4,0x2d,0x01,0x00,0x00, +0xce,0x00,0xb8,0x25,0x89,0x41,0x77,0x48,0x39,0xa4,0x52,0xc1,0x23,0x00,0xce,0x00,0xb8,0x25,0x89,0x41, +0x77,0x48,0x39,0xa4,0x00,0x64,0xcb,0x04,0xce,0x00,0xb8,0x25,0x89,0x41,0x77,0x48,0x39,0xa4,0x00,0x00, +0x48,0x01,0xce,0x00,0xc9,0x15,0x89,0x41,0x77,0x48,0x39,0xa4,0x00,0x00,0x14,0x31,0xce,0x01,0xd6,0x00, +0x89,0x41,0x77,0x48,0x39,0xa4,0x00,0x00,0x7b,0x32,0xce,0x1f,0xb0,0x00,0x89,0x41,0x77,0x48,0x39,0xa4, +0x00,0x06,0xcf,0x01,0xce,0x4a,0x7d,0x00,0x89,0x41,0x77,0x48,0x39,0xa4,0x00,0x5c,0xa4,0x00,0x1e,0xbb, +0x48,0x64,0x11,0x08,0x43,0x28,0x39,0xa4,0x00,0xcc,0x5e,0x00,0x6e,0x80,0x00,0x85,0x9e,0x02,0x00,0x00, +0x39,0xa4,0x3d,0xed,0x0f,0x29,0x97,0x01,0x00,0x03,0xbf,0x64,0x24,0x08,0x6b,0x79,0x21,0x37,0x00,0x56, +0x06,0x00,0x00,0x00,0x18,0x50,0x29,0x82,0x8f,0x18,0x00,0x00,0xf3,0xff,0x0e,0x00,0x0f,0x00,0x0e,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x7b,0x12,0x00, +0x29,0x18,0x00,0x00,0x50,0x73,0x00,0x00,0x29,0x07,0x00,0x3d,0xde,0x3e,0x1b,0xd2,0x23,0x00,0x50,0xa3, +0x00,0x01,0xca,0x44,0x00,0x00,0x3d,0xc9,0x00,0x6b,0xa9,0x00,0x50,0xa3,0x00,0x5c,0xc7,0x02,0x11,0x00, +0x00,0x10,0x00,0x02,0x3c,0x00,0x50,0xa3,0x00,0x56,0x09,0x00,0x45,0xb1,0x1c,0x00,0x21,0xbb,0x74,0x74, +0x84,0x94,0x74,0x83,0x8b,0x13,0x00,0x61,0xdd,0x0b,0x29,0xcb,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x71, +0x00,0x00,0x7d,0x3c,0x29,0xcf,0x13,0x13,0x13,0x13,0x13,0x13,0x6e,0x95,0x00,0x00,0x00,0x34,0x29,0xde, +0x61,0x61,0x61,0x61,0x61,0x61,0x9d,0x95,0x00,0x00,0x09,0xa5,0x29,0xcb,0x00,0x00,0x00,0x00,0x00,0x00, +0x62,0x95,0x00,0x00,0x72,0x6a,0x29,0xdd,0x59,0x59,0x59,0x59,0x59,0x59,0x98,0x95,0x00,0x0d,0xe7,0x17, +0x29,0xd0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x73,0x95,0x00,0x7c,0xbc,0x00,0x29,0xcb,0x00,0x00,0x00,0x00, +0x00,0x00,0x66,0x91,0x11,0xef,0x4c,0x00,0x29,0xcb,0x00,0x00,0x00,0x24,0x20,0x07,0xad,0x50,0x12,0x58, +0x00,0x00,0x1e,0x97,0x00,0x00,0x00,0x0d,0x5e,0xa1,0x74,0x07,0x00,0x00,0xf3,0xff,0x0e,0x00,0x0f,0x00, +0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x06,0x26, +0x26,0x26,0x26,0x08,0x00,0x38,0xc5,0x40,0x40,0x2a,0x00,0x00,0x01,0x4b,0xa5,0x9d,0x52,0x26,0x22,0xe9, +0x71,0x2c,0x2d,0xc6,0x3c,0x00,0x00,0x00,0xb6,0x30,0x00,0x12,0xd5,0x73,0x00,0x00,0x60,0xba,0x09,0x00, +0x00,0x07,0xd8,0x01,0x00,0xa2,0xe8,0x7c,0x78,0xb0,0xb7,0x7a,0x98,0x44,0x00,0x47,0xc6,0x7a,0x4e,0x06, +0xd6,0x0b,0x00,0x82,0x5b,0x00,0x2b,0xb0,0x00,0xa7,0x67,0x0e,0xd1,0x03,0xd6,0x0b,0x00,0x82,0x5b,0x00, +0x1f,0xc2,0x14,0xf2,0x67,0x00,0xc6,0x08,0xd6,0x7d,0x78,0xbd,0xa8,0x78,0x88,0xc2,0x61,0x8f,0x67,0x00, +0xc6,0x08,0xd7,0x0a,0x00,0x82,0x5b,0x00,0x1f,0xc2,0x00,0x6a,0x67,0x00,0xc6,0x08,0xe5,0x02,0x00,0x82, +0x5b,0x00,0x1f,0xc2,0x00,0x6a,0x67,0x00,0xc6,0x08,0xf0,0x78,0x78,0xbd,0xa8,0x78,0x88,0xc2,0x00,0x6a, +0x67,0x00,0xc6,0x14,0xac,0x00,0x00,0x82,0x5b,0x00,0x1f,0xc2,0x00,0x6a,0x67,0x00,0xc6,0x4f,0x51,0x00, +0x00,0x82,0x5b,0x00,0x1f,0xc2,0x00,0x4e,0x8c,0x6c,0xa9,0x88,0x07,0x00,0x00,0x82,0x64,0x07,0x49,0x99, +0x00,0x00,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x37,0x3d,0x74,0x9b,0x29,0x00,0x00,0xf3,0xff,0x0f,0x00, +0x0f,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x4c,0x7d,0x00,0x00,0x00,0x00,0x47,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0xe0,0xa2, +0xaf,0x6c,0x6c,0x3e,0xe1,0xa7,0xac,0x70,0x6c,0x49,0x00,0x00,0x8a,0xb7,0x02,0xa0,0x39,0x00,0x97,0xb8, +0x02,0x74,0x61,0x00,0x00,0x00,0x2e,0xc4,0x13,0x00,0x45,0x78,0x40,0xb4,0x0f,0x00,0x18,0xb5,0x00,0x00, +0x00,0x36,0x0a,0x00,0x9c,0x10,0x00,0x21,0x02,0x00,0x00,0x00,0x63,0x0b,0x00,0x00,0x00,0x00,0x4d,0xe2, +0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x47,0x00,0x00,0x00,0x06,0xd9,0x87,0x34,0x74,0x74,0x74,0x74, +0x74,0x74,0xd2,0x9b,0x60,0x01,0x00,0x72,0xff,0x72,0x00,0x43,0x1b,0x00,0x00,0x00,0x00,0xac,0x47,0x00, +0x00,0x14,0xd0,0x9f,0x72,0x00,0x19,0xcc,0x68,0x00,0x00,0x00,0xac,0x47,0x00,0x00,0x51,0x23,0x81,0x72, +0x00,0x00,0x1e,0xe0,0x81,0x00,0x00,0xac,0x47,0x00,0x00,0x00,0x00,0x81,0x72,0x00,0x00,0x00,0x24,0xcd, +0x02,0x00,0xac,0x47,0x00,0x00,0x00,0x00,0x81,0x72,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xbd,0x31,0x00, +0x00,0x00,0x00,0x81,0x72,0x00,0x00,0x00,0x2e,0x4a,0x0a,0x3b,0xdc,0x01,0x00,0x00,0x00,0x00,0x57,0x4d, +0x00,0x00,0x00,0x01,0x35,0x85,0x83,0x2b,0x00,0x00,0x00,0x00,0x00,0xf3,0xff,0x0f,0x00,0x0f,0x00,0x0e, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a, +0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x96,0x00,0x15,0x00,0x00,0x00,0x16,0xdb,0x3a,0x00,0x00,0x00, +0x00,0x00,0x1e,0xce,0x00,0x80,0x14,0x00,0x00,0x00,0x4c,0xca,0x03,0x09,0x09,0x09,0x09,0x23,0xd3,0x09, +0x2a,0x8d,0x00,0x00,0x00,0x00,0x3b,0x0a,0x67,0x6b,0x6b,0x6b,0x77,0xeb,0x6b,0x6b,0xc3,0x0f,0x28,0x85, +0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xee,0x00,0x00,0x13,0x00,0x00,0x16,0xe3,0x00,0x03,0x2d,0x2d, +0x2d,0x28,0x00,0xf7,0x05,0x00,0x00,0x00,0x00,0x01,0xee,0x00,0x00,0x39,0x83,0xab,0x43,0x09,0xe9,0x1a, +0x00,0x00,0x00,0x00,0x01,0xee,0x00,0x00,0x00,0x57,0x8e,0x00,0x00,0xd5,0x2f,0x00,0x00,0x00,0x00,0x01, +0xee,0x00,0x00,0x00,0x57,0x8e,0x00,0x00,0xb4,0x44,0x00,0x00,0x00,0x00,0x01,0xee,0x00,0x00,0x00,0x57, +0x8e,0x00,0x00,0x92,0x5a,0x00,0x00,0x00,0x00,0x01,0xee,0x00,0x00,0x00,0x57,0x8e,0x00,0x09,0x5e,0x8a, +0x00,0x01,0x02,0x00,0x01,0xee,0x00,0x96,0x2c,0x8b,0xd4,0xad,0x61,0x0e,0xd1,0x00,0x46,0x42,0x00,0x01, +0xe0,0xb3,0x90,0x94,0x7a,0x41,0x02,0x00,0x00,0xa8,0x67,0x88,0x2d,0x00,0x00,0x2c,0x44,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x08,0x78,0x6e,0x04,0x02,0x00,0xf4,0xff,0x03,0x00,0x0e,0x00,0x0e,0x00,0x00,0x00, +0x00,0x04,0x00,0x03,0xcd,0x2f,0x03,0xfe,0x57,0x00,0xf2,0x48,0x00,0xe4,0x39,0x00,0xd5,0x2a,0x00,0xc7, +0x1b,0x00,0xb8,0x0c,0x00,0xa6,0x01,0x00,0x89,0x00,0x00,0x17,0x00,0x00,0x29,0x00,0x02,0xcb,0x2f,0x00, +0x04,0x00,0x02,0x00,0xfe,0xff,0x03,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x00,0x31,0x00,0x0c,0xe0,0x54, +0x00,0x70,0x44,0x11,0xa0,0x09,0x08,0x01,0x00,0x00,0x00,0xf4,0xff,0x08,0x00,0x0d,0x00,0x0e,0x00,0x00, +0x00,0x00,0x00,0x00,0x0c,0x06,0x00,0x00,0x00,0x00,0x50,0x99,0x93,0xa6,0x9b,0x3c,0x00,0x2b,0x85,0x00, +0x00,0x00,0x20,0xe0,0x05,0x76,0x04,0x00,0x00,0x00,0x00,0xa9,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0xba, +0x5c,0x00,0x00,0x00,0x00,0x04,0x65,0xeb,0x0b,0x00,0x00,0x00,0x0c,0xca,0x9b,0x18,0x00,0x00,0x00,0x00, +0xa1,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x36,0x00,0x00, +0x00,0x00,0x00,0x00,0x0a,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x06,0x00,0x00,0x00,0x00,0x00,0x01, +0xb0,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*13929*/ diff --git a/demos/assets/default/inc/scripts/dummy.res b/demos/assets/default/inc/scripts/dummy.res index 946b59e76e..e243dc7684 100644 --- a/demos/assets/default/inc/scripts/dummy.res +++ b/demos/assets/default/inc/scripts/dummy.res @@ -1,5 +1,5 @@ TK_CONST_DATA_ALIGN(const unsigned char script_dummy[]) = { -0x07,0x00,0x01,0x01,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x75,0x6d,0x6d,0x79,0x00,0x72,0x65, +0x07,0x00,0x01,0x01,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x75,0x6d,0x6d,0x79,0x00,0x72,0x65, 0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x68,0x65,0x6c, -0x6c,0x6f,0x20,0x61,0x77,0x74,0x6b,0x22,0x29,0x3b,0x0a,0x00,0x00,0x00,0x00,};/*75*/ +0x6c,0x6f,0x20,0x61,0x77,0x74,0x6b,0x22,0x29,0x3b,0x0d,0x0a,0x00,0x00,0x00,0x00,};/*76*/ diff --git a/demos/assets/default/inc/strings/en_US.data b/demos/assets/default/inc/strings/en_US.data index bd3061469f..c60e1bd660 100644 --- a/demos/assets/default/inc/strings/en_US.data +++ b/demos/assets/default/inc/strings/en_US.data @@ -1,14 +1,14 @@ TK_CONST_DATA_ALIGN(const unsigned char strings_en_US[]) = { -0x06,0x00,0x00,0x01,0xc4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x6e,0x5f,0x55,0x53,0x00,0x64,0x61, +0x06,0x00,0x00,0x01,0xc9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x6e,0x5f,0x55,0x53,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,0x00,0x00,0x00,0x00,0x06,0x00,0x3c,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x4a,0x00,0x00,0x00, 0x52,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x7a,0x00,0x00,0x00, -0xa6,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xab,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x63,0x61,0x6e,0x63,0x65,0x6c,0x00,0x43,0x61,0x6e,0x63,0x65,0x6c,0x00,0x63,0x68, 0x69,0x6e,0x65,0x73,0x65,0x00,0x43,0x68,0x69,0x6e,0x65,0x73,0x65,0x00,0x65,0x6e,0x67,0x6c,0x69,0x73, 0x68,0x00,0x45,0x6e,0x67,0x6c,0x69,0x73,0x68,0x00,0x6d,0x75,0x6c,0x74,0x69,0x20,0x6c,0x69,0x6e,0x65, -0x20,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0a,0x69,0x73,0x0a,0x61,0x0a,0x6d,0x75,0x6c,0x74,0x69,0x2d, -0x6c,0x69,0x6e,0x65,0x0a,0x54,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x20,0x74,0x65,0x78,0x74,0x20, -0x0a,0x28,0x63,0x65,0x6e,0x74,0x65,0x72,0x29,0x00,0x6f,0x6b,0x00,0x4f,0x4b,0x00,0x76,0x61,0x6c,0x75, -0x65,0x20,0x69,0x73,0x20,0x25,0x64,0x00,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x73,0x20,0x25,0x64,0x00, -0x00,0x00,0x00,0x00,};/*244*/ +0x20,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0d,0x0a,0x69,0x73,0x0d,0x0a,0x61,0x0d,0x0a,0x6d,0x75,0x6c, +0x74,0x69,0x2d,0x6c,0x69,0x6e,0x65,0x0d,0x0a,0x54,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x20,0x74, +0x65,0x78,0x74,0x20,0x0d,0x0a,0x28,0x63,0x65,0x6e,0x74,0x65,0x72,0x29,0x00,0x6f,0x6b,0x00,0x4f,0x4b, +0x00,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x73,0x20,0x25,0x64,0x00,0x76,0x61,0x6c,0x75,0x65,0x20,0x69, +0x73,0x20,0x25,0x64,0x00,0x00,0x00,0x00,0x00,};/*249*/ diff --git a/demos/assets/default/inc/strings/zh_CN.data b/demos/assets/default/inc/strings/zh_CN.data index be16763950..3e87f3056d 100644 --- a/demos/assets/default/inc/strings/zh_CN.data +++ b/demos/assets/default/inc/strings/zh_CN.data @@ -3,7 +3,7 @@ TK_CONST_DATA_ALIGN(const unsigned char strings_zh_CN[]) = { 0x74,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x34,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x42,0x00,0x00,0x00, 0x4a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x63,0x00,0x00,0x00, -0x6a,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0x63,0x61,0x6e,0x63, +0x6a,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x63,0x61,0x6e,0x63, 0x65,0x6c,0x00,0xe5,0x8f,0x96,0xe6,0xb6,0x88,0x00,0x63,0x68,0x69,0x6e,0x65,0x73,0x65,0x00,0xe4,0xb8, 0xad,0xe6,0x96,0x87,0x00,0x65,0x6e,0x67,0x6c,0x69,0x73,0x68,0x00,0xe8,0x8b,0xb1,0xe6,0x96,0x87,0x00, 0x6f,0x6b,0x00,0xe7,0xa1,0xae,0xe5,0xae,0x9a,0x00,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x73,0x20,0x25, diff --git a/demos/assets/default/inc/styles/system_bar_bottom.data b/demos/assets/default/inc/styles/system_bar_bottom.data new file mode 100644 index 0000000000..e04c0f49ac --- /dev/null +++ b/demos/assets/default/inc/styles/system_bar_bottom.data @@ -0,0 +1,62 @@ +TK_CONST_DATA_ALIGN(const unsigned char style_system_bar_bottom[]) = { +0x03,0x00,0x00,0x01,0x90,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x62, +0x61,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x00,0x64,0x61,0x74,0x61,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xfd,0xfc,0xfb,0xfa,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xc8,0x02,0x00,0x00, +0x6e,0x6f,0x72,0x6d,0x61,0x6c,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,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,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,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x62,0x61,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f, +0x6d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0x02,0x00,0x00, +0x6e,0x6f,0x72,0x6d,0x61,0x6c,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,0x74,0x69,0x74,0x6c,0x65,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,0x6c,0x61,0x62,0x65,0x6c,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,0x44,0x03,0x00,0x00, +0x6e,0x6f,0x72,0x6d,0x61,0x6c,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,0x74,0x69,0x6d,0x65,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,0x64,0x69,0x67,0x69,0x74,0x5f,0x63,0x6c,0x6f,0x63,0x6b,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x03,0x00,0x00, +0x6e,0x6f,0x72,0x6d,0x61,0x6c,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,0x63,0x6c,0x6f,0x73,0x65,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,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,0xb8,0x03,0x00,0x00, +0x70,0x72,0x65,0x73,0x73,0x65,0x64,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,0x63,0x6c,0x6f,0x73,0x65,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,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,0x04,0x00,0x00, +0x6f,0x76,0x65,0x72,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,0x63,0x6c,0x6f,0x73,0x65,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,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,0x48,0x04,0x00,0x00, +0x64,0x69,0x73,0x61,0x62,0x6c,0x65,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,0x63,0x6c,0x6f,0x73,0x65,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,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,0x01,0x00,0x00,0x00, +0x62,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0xff,0x00,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x74,0x65,0x78,0x74,0x5f,0x61,0x6c,0x69,0x67,0x6e,0x5f,0x68,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, +0x74,0x65,0x78,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x74,0x65,0x78,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x63,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,0x63,0x6c,0x6f,0x73,0x65,0x5f,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, +0x01,0x00,0x00,0x00,0x69,0x63,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,0x63,0x6c,0x6f,0x73, +0x65,0x5f,0x70,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,0x01,0x00,0x00,0x00,0x69,0x63,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,0x63,0x6c,0x6f,0x73,0x65,0x5f,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,0x01,0x00,0x00,0x00,0x69,0x63,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, +0x63,0x6c,0x6f,0x73,0x65,0x5f,0x64,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,};/*1216*/ diff --git a/demos/assets/default/inc/ui/basic.data b/demos/assets/default/inc/ui/basic.data index 1b41aa6bbc..ea434f6f15 100644 --- a/demos/assets/default/inc/ui/basic.data +++ b/demos/assets/default/inc/ui/basic.data @@ -1,5 +1,5 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_basic[]) = { -0x04,0x00,0x01,0x01,0xdb,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x61,0x73,0x69,0x63,0x00,0x64,0x61, +0x04,0x00,0x01,0x01,0xdc,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x61,0x73,0x69,0x63,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,0x00,0x00,0x12,0x12,0x22,0x11,0x77,0x69,0x6e,0x64,0x6f,0x77,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, @@ -7,162 +7,162 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_basic[]) = { 0x5f,0x68,0x69,0x6e,0x74,0x00,0x68,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x00,0x6d,0x6f,0x76, 0x65,0x5f,0x66,0x6f,0x63,0x75,0x73,0x5f,0x70,0x72,0x65,0x76,0x5f,0x6b,0x65,0x79,0x00,0x75,0x70,0x00, 0x6d,0x6f,0x76,0x65,0x5f,0x66,0x6f,0x63,0x75,0x73,0x5f,0x6e,0x65,0x78,0x74,0x5f,0x6b,0x65,0x79,0x00, -0x64,0x6f,0x77,0x6e,0x00,0x74,0x65,0x78,0x74,0x00,0x75,0x70,0x2f,0x64,0x6f,0x77,0x6e,0x20,0x74,0x6f, -0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x66,0x6f,0x63,0x75,0x73,0x00,0x00,0x61,0x70,0x70,0x5f,0x62, -0x61,0x72,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,0x64,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,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d, -0x33,0x30,0x29,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x64,0x00,0x00,0x00,0x64,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,0x30,0x2c,0x79,0x3d,0x30, -0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x74,0x65,0x78,0x74, -0x00,0x42,0x61,0x73,0x69,0x63,0x20,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x00,0x73,0x74,0x79,0x6c, -0x65,0x3a,0x66,0x6f,0x6e,0x74,0x5f,0x73,0x69,0x7a,0x65,0x00,0x32,0x34,0x00,0x73,0x74,0x79,0x6c,0x65, -0x3a,0x74,0x65,0x78,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x67,0x72,0x65,0x65,0x6e,0x00,0x00,0x00, -0x00,0x72,0x6f,0x77,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,0x64,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,0x30,0x2c,0x79,0x3d,0x34,0x30,0x2c,0x77,0x3d, -0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f, -0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c,0x63, -0x3d,0x33,0x2c,0x78,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,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,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x69,0x6e,0x63,0x5f,0x76,0x61,0x6c,0x75,0x65,0x00,0x74,0x65, -0x78,0x74,0x00,0x49,0x6e,0x63,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75, -0x65,0x00,0x66,0x6f,0x63,0x75,0x73,0x00,0x74,0x72,0x75,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,0x6c,0x6f,0x73,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x43, -0x6c,0x6f,0x73,0x65,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,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,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x64,0x65,0x63,0x5f,0x76, -0x61,0x6c,0x75,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x44,0x65,0x63,0x00,0x66,0x6f,0x63,0x75,0x73,0x61, -0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73, -0x65,0x64,0x3a,0x74,0x65,0x78,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x72,0x65,0x64,0x00,0x00,0x00, -0x00,0x72,0x6f,0x77,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,0x64,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,0x30,0x2c,0x79,0x3d,0x38,0x30,0x2c,0x77,0x3d, -0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f, -0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c,0x63, -0x3d,0x33,0x2c,0x78,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c, -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,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6c, -0x65,0x66,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x4c,0x65,0x66,0x74,0x00,0x00,0x00,0x6c,0x61,0x62,0x65, +0x64,0x6f,0x77,0x6e,0x00,0x74,0x65,0x78,0x74,0x00,0x42,0x61,0x73,0x69,0x63,0x20,0x43,0x6f,0x6e,0x74, +0x72,0x6f,0x6c,0x73,0x00,0x00,0x61,0x70,0x70,0x5f,0x62,0x61,0x72,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,0x64,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,0x30,0x2c,0x79,0x3d, +0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x00,0x6c,0x61,0x62,0x65, 0x6c,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,0x00,0x64,0x00,0x00,0x00, +0x64,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,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68, +0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x75,0x70,0x2f,0x64,0x6f,0x77,0x6e,0x20, +0x6b,0x65,0x79,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x66,0x6f,0x63,0x75,0x73,0x00,0x73,0x74,0x79, +0x6c,0x65,0x3a,0x66,0x6f,0x6e,0x74,0x5f,0x73,0x69,0x7a,0x65,0x00,0x32,0x34,0x00,0x73,0x74,0x79,0x6c, +0x65,0x3a,0x74,0x65,0x78,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x67,0x72,0x65,0x65,0x6e,0x00,0x00, +0x00,0x00,0x72,0x6f,0x77,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,0x64,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,0x30,0x2c,0x79,0x3d,0x34,0x30,0x2c,0x77, +0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e, +0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c, +0x63,0x3d,0x33,0x2c,0x78,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,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,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x6e,0x61,0x6d, -0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x65,0x78,0x74,0x00,0x43,0x65,0x6e,0x74,0x65,0x72, -0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69,0x67, -0x68,0x74,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x69,0x67,0x68,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x52, -0x69,0x67,0x68,0x74,0x00,0x00,0x00,0x00,0x73,0x6c,0x69,0x64,0x65,0x72,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,0x74,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65, -0x00,0x73,0x6c,0x69,0x64,0x65,0x72,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x34,0x30,0x00,0x66,0x6f,0x63, -0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x70,0x72,0x6f,0x67,0x72,0x65, -0x73,0x73,0x5f,0x62,0x61,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x10,0x00, -0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61,0x72,0x31,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x34,0x30, -0x00,0x73,0x68,0x6f,0x77,0x5f,0x74,0x65,0x78,0x74,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x70,0x72, -0x6f,0x67,0x72,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x1e,0x00, -0x00,0x00,0x76,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61,0x72,0x32,0x00,0x76,0x61,0x6c,0x75, -0x65,0x00,0x32,0x30,0x00,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x00,0x74,0x72,0x75,0x65,0x00,0x00, -0x00,0x63,0x6f,0x6c,0x75,0x6d,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,0x14,0x00,0x00,0x00,0xa0,0x00,0x00, -0x00,0x32,0x00,0x00,0x00,0x5a,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,0x32,0x30,0x2c,0x79,0x3d,0x31,0x36,0x30,0x2c, -0x77,0x3d,0x35,0x30,0x25,0x2c,0x68,0x3d,0x39,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e, -0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x33,0x2c, -0x63,0x3d,0x31,0x2c,0x79,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x63,0x68,0x65,0x63, -0x6b,0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x31,0x00,0x74,0x65,0x78,0x74,0x00,0x42,0x6f,0x6f, -0x6b,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x63, -0x68,0x65,0x63,0x6b,0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x32,0x00,0x74,0x65,0x78,0x74,0x00, -0x46,0x6f,0x6f,0x64,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00, -0x00,0x00,0x63,0x68,0x65,0x63,0x6b,0x5f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x69,0x6e,0x63,0x5f,0x76,0x61,0x6c,0x75,0x65,0x00,0x74, +0x65,0x78,0x74,0x00,0x49,0x6e,0x63,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72, +0x75,0x65,0x00,0x66,0x6f,0x63,0x75,0x73,0x00,0x74,0x72,0x75,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,0x6c,0x6f,0x73,0x65,0x00,0x74,0x65,0x78,0x74,0x00, +0x43,0x6c,0x6f,0x73,0x65,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,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,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x64,0x65,0x63,0x5f, +0x76,0x61,0x6c,0x75,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x44,0x65,0x63,0x00,0x66,0x6f,0x63,0x75,0x73, +0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x66,0x6f,0x63,0x75, +0x73,0x65,0x64,0x3a,0x74,0x65,0x78,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x72,0x65,0x64,0x00,0x00, +0x00,0x00,0x72,0x6f,0x77,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,0x64,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,0x30,0x2c,0x79,0x3d,0x38,0x30,0x2c,0x77, +0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e, +0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c, +0x63,0x3d,0x33,0x2c,0x78,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x6c,0x61,0x62,0x65, +0x6c,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,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x33,0x00,0x74,0x65, -0x78,0x74,0x00,0x50,0x65,0x6e,0x63,0x69,0x6c,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x74,0x72,0x75,0x65, -0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x00,0x63, -0x6f,0x6c,0x75,0x6d,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,0x14,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x32, -0x00,0x00,0x00,0x5a,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,0x32,0x30,0x2c,0x79,0x3d,0x32,0x36,0x30,0x2c,0x77,0x3d, -0x35,0x30,0x25,0x2c,0x68,0x3d,0x39,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c, -0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x33,0x2c,0x63,0x3d, -0x31,0x2c,0x79,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x72,0x61,0x64,0x69,0x6f,0x5f, -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, -0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x66,0x6f,0x6e,0x74,0x5f,0x73,0x6d,0x61,0x6c,0x6c,0x00,0x74,0x65, -0x78,0x74,0x00,0x53,0x6d,0x61,0x6c,0x6c,0x20,0x46,0x6f,0x6e,0x74,0x00,0x66,0x6f,0x63,0x75,0x73,0x61, +0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x6e,0x61,0x6d,0x65,0x00, +0x6c,0x65,0x66,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x4c,0x65,0x66,0x74,0x00,0x00,0x00,0x6c,0x61,0x62, +0x65,0x6c,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,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x6e,0x61, +0x6d,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x65,0x78,0x74,0x00,0x43,0x65,0x6e,0x74,0x65, +0x72,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69, +0x67,0x68,0x74,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x69,0x67,0x68,0x74,0x00,0x74,0x65,0x78,0x74,0x00, +0x52,0x69,0x67,0x68,0x74,0x00,0x00,0x00,0x00,0x73,0x6c,0x69,0x64,0x65,0x72,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,0x74,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x6e,0x61,0x6d, +0x65,0x00,0x73,0x6c,0x69,0x64,0x65,0x72,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x34,0x30,0x00,0x66,0x6f, +0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x70,0x72,0x6f,0x67,0x72, +0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x10, +0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61,0x72,0x31,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x34, +0x30,0x00,0x73,0x68,0x6f,0x77,0x5f,0x74,0x65,0x78,0x74,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x70, +0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x1e, +0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61,0x72,0x32,0x00,0x76,0x61,0x6c, +0x75,0x65,0x00,0x32,0x30,0x00,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x00,0x74,0x72,0x75,0x65,0x00, +0x00,0x00,0x63,0x6f,0x6c,0x75,0x6d,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,0x14,0x00,0x00,0x00,0xa0,0x00, +0x00,0x00,0x32,0x00,0x00,0x00,0x5a,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,0x32,0x30,0x2c,0x79,0x3d,0x31,0x36,0x30, +0x2c,0x77,0x3d,0x35,0x30,0x25,0x2c,0x68,0x3d,0x39,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65, +0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x33, +0x2c,0x63,0x3d,0x31,0x2c,0x79,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x63,0x68,0x65, +0x63,0x6b,0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x31,0x00,0x74,0x65,0x78,0x74,0x00,0x42,0x6f, +0x6f,0x6b,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00, +0x63,0x68,0x65,0x63,0x6b,0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x32,0x00,0x74,0x65,0x78,0x74, +0x00,0x46,0x6f,0x6f,0x64,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65, +0x00,0x00,0x00,0x63,0x68,0x65,0x63,0x6b,0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x33,0x00,0x74, +0x65,0x78,0x74,0x00,0x50,0x65,0x6e,0x63,0x69,0x6c,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x74,0x72,0x75, +0x65,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x00, +0x63,0x6f,0x6c,0x75,0x6d,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,0x14,0x00,0x00,0x00,0x04,0x01,0x00,0x00, +0x32,0x00,0x00,0x00,0x5a,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,0x32,0x30,0x2c,0x79,0x3d,0x32,0x36,0x30,0x2c,0x77, +0x3d,0x35,0x30,0x25,0x2c,0x68,0x3d,0x39,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f, +0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x33,0x2c,0x63, +0x3d,0x31,0x2c,0x79,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x72,0x61,0x64,0x69,0x6f, +0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x66,0x6f,0x6e,0x74,0x5f,0x73,0x6d,0x61,0x6c,0x6c,0x00,0x74, +0x65,0x78,0x74,0x00,0x53,0x6d,0x61,0x6c,0x6c,0x20,0x46,0x6f,0x6e,0x74,0x00,0x66,0x6f,0x63,0x75,0x73, +0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x72,0x61,0x64,0x69,0x6f,0x5f,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,0x00,0x00, +0x6e,0x61,0x6d,0x65,0x00,0x66,0x6f,0x6e,0x74,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x00,0x74,0x65,0x78, +0x74,0x00,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x46,0x6f,0x6e,0x74,0x00,0x66,0x6f,0x63,0x75,0x73,0x61, 0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x72,0x61,0x64,0x69,0x6f,0x5f,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,0x00,0x00,0x6e, -0x61,0x6d,0x65,0x00,0x66,0x6f,0x6e,0x74,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x00,0x74,0x65,0x78,0x74, -0x00,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x46,0x6f,0x6e,0x74,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62, -0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x72,0x61,0x64,0x69,0x6f,0x5f,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,0x00,0x00,0x6e,0x61, -0x6d,0x65,0x00,0x66,0x6f,0x6e,0x74,0x5f,0x62,0x69,0x67,0x00,0x74,0x65,0x78,0x74,0x00,0x42,0x69,0x67, -0x20,0x46,0x6f,0x6e,0x74,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65, -0x00,0x00,0x00,0x00,0x72,0x6f,0x77,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,0x14,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x64,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,0x32,0x30,0x2c,0x79,0x3d,0x62, -0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x36,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x2c,0x68,0x3d,0x33,0x30,0x29, -0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66, -0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c,0x63,0x3d,0x34,0x29,0x00,0x00,0x72,0x61,0x64,0x69,0x6f, -0x5f,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,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x00,0x00,0x72,0x61,0x64,0x69, +0x61,0x6d,0x65,0x00,0x66,0x6f,0x6e,0x74,0x5f,0x62,0x69,0x67,0x00,0x74,0x65,0x78,0x74,0x00,0x42,0x69, +0x67,0x20,0x46,0x6f,0x6e,0x74,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75, +0x65,0x00,0x00,0x00,0x00,0x72,0x6f,0x77,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,0x14,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x64,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,0x32,0x30,0x2c,0x79,0x3d, +0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x36,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x2c,0x68,0x3d,0x33,0x30, +0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65, +0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c,0x63,0x3d,0x34,0x29,0x00,0x00,0x72,0x61,0x64,0x69, 0x6f,0x5f,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,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6d,0x69,0x64,0x64,0x6c,0x65,0x00,0x00,0x00,0x72, -0x61,0x64,0x69,0x6f,0x5f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x00,0x00,0x72,0x61,0x64, +0x69,0x6f,0x5f,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,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69,0x67,0x68,0x74,0x00,0x00, -0x00,0x63,0x68,0x65,0x63,0x6b,0x5f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6d,0x69,0x64,0x64,0x6c,0x65,0x00,0x00,0x00, +0x72,0x61,0x64,0x69,0x6f,0x5f,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,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6d,0x75,0x74,0x65,0x00, -0x00,0x00,0x00,0x67,0x72,0x69,0x64,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,0x14,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x28,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,0x32,0x30,0x2c,0x79,0x3d,0x62,0x6f, -0x74,0x74,0x6f,0x6d,0x3a,0x31,0x30,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x34,0x30,0x29,0x00, -0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61, -0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c,0x63,0x3d,0x35,0x2c,0x78,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30, -0x29,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69,0x67,0x68,0x74,0x00, +0x00,0x00,0x63,0x68,0x65,0x63,0x6b,0x5f,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,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65, -0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x61,0x6e, -0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x00,0x72,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x28,0x66,0x72,0x6f, -0x6d,0x3d,0x30,0x2c,0x20,0x74,0x6f,0x3d,0x36,0x2e,0x32,0x38,0x2c,0x20,0x72,0x65,0x70,0x65,0x61,0x74, -0x5f,0x74,0x69,0x6d,0x65,0x73,0x3d,0x30,0x2c,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3d,0x32, -0x30,0x30,0x30,0x2c,0x20,0x65,0x61,0x73,0x69,0x6e,0x67,0x3d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x29,0x00, -0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6d,0x75,0x74,0x65, +0x00,0x00,0x00,0x00,0x67,0x72,0x69,0x64,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,0x14,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x28,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,0x32,0x30,0x2c,0x79,0x3d,0x62, +0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x30,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x34,0x30,0x29, +0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66, +0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c,0x63,0x3d,0x35,0x2c,0x78,0x3d,0x32,0x2c,0x73,0x3d,0x31, +0x30,0x29,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70, +0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x61, +0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x00,0x72,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x28,0x66,0x72, +0x6f,0x6d,0x3d,0x30,0x2c,0x20,0x74,0x6f,0x3d,0x36,0x2e,0x32,0x38,0x2c,0x20,0x72,0x65,0x70,0x65,0x61, +0x74,0x5f,0x74,0x69,0x6d,0x65,0x73,0x3d,0x30,0x2c,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3d, +0x32,0x30,0x30,0x30,0x2c,0x20,0x65,0x61,0x73,0x69,0x6e,0x67,0x3d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x29, +0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00, -0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x72,0x67,0x62,0x61,0x00,0x00,0x00,0x69,0x6d, -0x61,0x67,0x65,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,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65, +0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x72,0x67,0x62,0x61,0x00,0x00,0x00,0x69, +0x6d,0x61,0x67,0x65,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,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e, -0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x72,0x67,0x62,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f, +0x6e,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x72,0x67,0x62,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67, -0x65,0x00,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x00,0x00, +0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61, +0x67,0x65,0x00,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67,0x65, -0x00,0x72,0x65,0x64,0x5f,0x62,0x74,0x6e,0x5f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*3339*/ +0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67, +0x65,0x00,0x72,0x65,0x64,0x5f,0x62,0x74,0x6e,0x5f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*3340*/ diff --git a/demos/assets/default/inc/ui/dialog1.data b/demos/assets/default/inc/ui/dialog1.data index c4e89c52dc..9982da0d91 100644 --- a/demos/assets/default/inc/ui/dialog1.data +++ b/demos/assets/default/inc/ui/dialog1.data @@ -1,5 +1,5 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_dialog1[]) = { -0x04,0x00,0x01,0x01,0xda,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x31,0x00, +0x04,0x00,0x01,0x01,0x1d,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x31,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, @@ -16,38 +16,42 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_dialog1[]) = { 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,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d, 0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x00, -0x00,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x5f,0x63,0x6c,0x69,0x65,0x6e,0x74,0x00,0x00,0x00,0x00,0x00, +0x00,0x64,0x72,0x61,0x67,0x67,0x61,0x62,0x6c,0x65,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,0x64,0x00,0x00,0x00,0xe2,0xff,0xff,0xff,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75, -0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x30,0x2c,0x79,0x3d,0x62,0x6f,0x74,0x74, -0x6f,0x6d,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x2d,0x33,0x30,0x29,0x00,0x00,0x63,0x6f, -0x6d,0x62,0x6f,0x5f,0x62,0x6f,0x78,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,0x05,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,0x35,0x2c,0x77, -0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x00,0x6c, -0x65,0x66,0x74,0x3b,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x72,0x69,0x67,0x68,0x74,0x3b,0x00,0x6c,0x65, -0x66,0x74,0x5f,0x6d,0x61,0x72,0x67,0x69,0x6e,0x00,0x36,0x00,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79, -0x00,0x74,0x72,0x75,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x6c,0x65,0x66,0x74,0x00,0x66,0x6f,0x63,0x75, -0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x67,0x5f,0x77,0x69,0x6e,0x64,0x6f,0x77, +0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x5f,0x63,0x6c,0x69,0x65, +0x6e,0x74,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,0x64,0x00,0x00,0x00,0xe2,0xff,0xff,0xff,0x73,0x65,0x6c, +0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x30, +0x2c,0x79,0x3d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x2d, +0x33,0x30,0x29,0x00,0x00,0x63,0x6f,0x6d,0x62,0x6f,0x5f,0x62,0x6f,0x78,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,0x00,0x00,0x00,0x00,0x00,0xc8,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,0x2d, -0x32,0x30,0x2c,0x77,0x3d,0x32,0x30,0x30,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00, -0x00,0x74,0x65,0x78,0x74,0x00,0x42,0x61,0x63,0x6b,0x20,0x74,0x6f,0x20,0x68,0x6f,0x6d,0x65,0x3f,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,0x6e, -0x61,0x6d,0x65,0x00,0x62,0x61,0x63,0x6b,0x5f,0x74,0x6f,0x5f,0x68,0x6f,0x6d,0x65,0x00,0x74,0x65,0x78, -0x74,0x00,0xe7,0xa1,0xae,0xe5,0xae,0x9a,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74, -0x72,0x75,0x65,0x00,0x00,0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x05,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,0x35,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x6f,0x70, +0x74,0x69,0x6f,0x6e,0x73,0x00,0x6c,0x65,0x66,0x74,0x3b,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x72,0x69, +0x67,0x68,0x74,0x3b,0x00,0x6c,0x65,0x66,0x74,0x5f,0x6d,0x61,0x72,0x67,0x69,0x6e,0x00,0x36,0x00,0x72, +0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x00,0x74,0x72,0x75,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x6c,0x65, +0x66,0x74,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00, +0x6c,0x61,0x62,0x65,0x6c,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,0x00, +0xc8,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,0x2d,0x32,0x30,0x2c,0x77,0x3d,0x32,0x30,0x30,0x2c,0x68,0x3d,0x33,0x30, +0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x00,0x74,0x65,0x78,0x74,0x00,0x42,0x61,0x63,0x6b,0x20,0x74,0x6f, +0x20,0x68,0x6f,0x6d,0x65,0x3f,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,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,0x6e,0x61,0x6d,0x65,0x00,0x71,0x75,0x69,0x74,0x00,0x74, -0x65,0x78,0x74,0x00,0xe5,0x8f,0x96,0xe6,0xb6,0x88,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65, -0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*1034*/ +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,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61,0x63,0x6b,0x5f,0x74,0x6f,0x5f,0x68, +0x6f,0x6d,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0xe7,0xa1,0xae,0xe5,0xae,0x9a,0x00,0x66,0x6f,0x63,0x75, +0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,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,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,0x6e,0x61,0x6d,0x65, +0x00,0x71,0x75,0x69,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0xe5,0x8f,0x96,0xe6,0xb6,0x88,0x00,0x66,0x6f, +0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,};/*1101*/ diff --git a/demos/assets/default/inc/ui/dialog2.data b/demos/assets/default/inc/ui/dialog2.data index 0f2ca4b0c1..4a88902bf9 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,0xdf,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, @@ -14,30 +14,40 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_dialog2[]) = { 0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28, 0x78,0x3d,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29, 0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x75,0x73,0x74,0x6f,0x6d,0x00,0x74,0x65,0x78,0x74,0x00,0x48, -0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x00,0x00,0x00,0x64,0x69,0x61,0x6c,0x6f,0x67,0x5f,0x63, -0x6c,0x69,0x65,0x6e,0x74,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,0x64,0x00,0x00,0x00,0xe2,0xff,0xff,0xff, -0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28, -0x78,0x3d,0x30,0x2c,0x79,0x3d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c, -0x68,0x3d,0x2d,0x33,0x30,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x75,0x73,0x74,0x6f,0x6d,0x00, -0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x00,0x00,0x64,0x72,0x61,0x67,0x67,0x61,0x62,0x6c,0x65, +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,0x00,0x00,0x00,0x00,0x00,0x64, +0x72,0x61,0x67,0x5f,0x77,0x69,0x6e,0x64,0x6f,0x77,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x00,0x64, +0x69,0x61,0x6c,0x6f,0x67,0x5f,0x63,0x6c,0x69,0x65,0x6e,0x74,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,0x64, +0x00,0x00,0x00,0xe2,0xff,0xff,0xff,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64, +0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x30,0x2c,0x79,0x3d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c, +0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x2d,0x33,0x30,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00, +0x63,0x75,0x73,0x74,0x6f,0x6d,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0xc8,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,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,0xc8,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,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,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,0x00,0x00,0x00,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,};/*1039*/ diff --git a/demos/assets/default/inc/ui/draggable.data b/demos/assets/default/inc/ui/draggable.data new file mode 100644 index 0000000000..91c60617fc --- /dev/null +++ b/demos/assets/default/inc/ui/draggable.data @@ -0,0 +1,35 @@ +TK_CONST_DATA_ALIGN(const unsigned char ui_draggable[]) = { +0x04,0x00,0x01,0x01,0x68,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x67,0x67,0x61,0x62,0x6c, +0x65,0x00,0x64,0x61,0x74,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x12,0x12,0x22,0x11,0x77,0x69,0x6e,0x64,0x6f,0x77,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x6e,0x69,0x6d, +0x5f,0x68,0x69,0x6e,0x74,0x00,0x68,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x00,0x74,0x65,0x78, +0x74,0x00,0x44,0x72,0x61,0x67,0x67,0x61,0x62,0x6c,0x65,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,0x0a,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x28,0x00,0x00, +0x00,0x74,0x65,0x78,0x74,0x00,0x44,0x72,0x61,0x67,0x20,0x4d,0x65,0x00,0x00,0x64,0x72,0x61,0x67,0x67, +0x61,0x62,0x6c,0x65,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,0x00,0x00, +0x00,0x00,0x00,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,0x64,0x00, +0x00,0x00,0x0a,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x74,0x65,0x78,0x74,0x00,0x44, +0x72,0x61,0x67,0x20,0x56,0x00,0x00,0x64,0x72,0x61,0x67,0x67,0x61,0x62,0x6c,0x65,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,0x00,0x00,0x00,0x00,0x00,0x76,0x65,0x72,0x74,0x69, +0x63,0x61,0x6c,0x5f,0x6f,0x6e,0x6c,0x79,0x00,0x74,0x72,0x75,0x65,0x00,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,0x64,0x00,0x00,0x00,0x50,0x00,0x00, +0x00,0x28,0x00,0x00,0x00,0x74,0x65,0x78,0x74,0x00,0x44,0x72,0x61,0x67,0x20,0x48,0x00,0x00,0x64,0x72, +0x61,0x67,0x67,0x61,0x62,0x6c,0x65,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,0x00,0x00,0x00,0x00,0x00,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x5f,0x6f,0x6e,0x6c, +0x79,0x00,0x74,0x72,0x75,0x65,0x00,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,0xc8,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x74,0x65, +0x78,0x74,0x00,0x44,0x72,0x61,0x67,0x20,0x52,0x00,0x00,0x64,0x72,0x61,0x67,0x67,0x61,0x62,0x6c,0x65, +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,0x00,0x00,0x00,0x00,0x00,0x6c, +0x65,0x66,0x74,0x00,0x31,0x30,0x00,0x72,0x69,0x67,0x68,0x74,0x00,0x32,0x30,0x30,0x00,0x74,0x6f,0x70, +0x00,0x31,0x35,0x30,0x00,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x00,0x33,0x30,0x30,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,};/*664*/ diff --git a/demos/assets/default/inc/ui/label.data b/demos/assets/default/inc/ui/label.data index a65b65c415..08a66038cb 100644 --- a/demos/assets/default/inc/ui/label.data +++ b/demos/assets/default/inc/ui/label.data @@ -1,5 +1,5 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_label[]) = { -0x04,0x00,0x01,0x01,0xe4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x64,0x61, +0x04,0x00,0x01,0x01,0xe9,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x12,0x12,0x22,0x11,0x77,0x69,0x6e,0x64,0x6f,0x77,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, @@ -8,59 +8,60 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_label[]) = { 0x63,0x3d,0x33,0x2c,0x72,0x3d,0x34,0x29,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74, -0x79,0x6c,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0a,0x69,0x73,0x0a, -0x61,0x0a,0x6d,0x75,0x6c,0x74,0x69,0x2d,0x6c,0x69,0x6e,0x65,0x0a,0x73,0x61,0x6d,0x70,0x6c,0x65,0x0a, -0x28,0x6c,0x65,0x66,0x74,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x00,0x00,0x00,0x00,0x00, +0x79,0x6c,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0d,0x0a,0x69,0x73, +0x0d,0x0a,0x61,0x0d,0x0a,0x6d,0x75,0x6c,0x74,0x69,0x2d,0x6c,0x69,0x6e,0x65,0x0d,0x0a,0x73,0x61,0x6d, +0x70,0x6c,0x65,0x0d,0x0a,0x28,0x6c,0x65,0x66,0x74,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x73,0x74,0x79, -0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x72,0x5f,0x74,0x65,0x78,0x74,0x00,0x6d,0x75, -0x6c,0x74,0x69,0x20,0x6c,0x69,0x6e,0x65,0x20,0x74,0x65,0x78,0x74,0x00,0x00,0x00,0x6c,0x61,0x62,0x65, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x72,0x5f,0x74,0x65, +0x78,0x74,0x00,0x6d,0x75,0x6c,0x74,0x69,0x20,0x6c,0x69,0x6e,0x65,0x20,0x74,0x65,0x78,0x74,0x00,0x00, +0x00,0x6c,0x61,0x62,0x65,0x6c,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, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69,0x67,0x68,0x74, +0x00,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0a,0x69,0x73,0x0a,0x61,0x0a,0x6d,0x75,0x6c,0x74,0x69,0x2d, +0x6c,0x69,0x6e,0x65,0x0a,0x73,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x28,0x72,0x69,0x67,0x68,0x74,0x29,0x00, +0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74, +0x65,0x72,0x5f,0x74,0x6f,0x70,0x00,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0a,0x69,0x73,0x0a,0x61,0x0a, +0x6d,0x75,0x6c,0x74,0x69,0x2d,0x6c,0x69,0x6e,0x65,0x0a,0x73,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x28,0x63, +0x65,0x6e,0x74,0x65,0x72,0x5f,0x74,0x6f,0x70,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x65,0x78,0x74,0x00,0x69, +0x74,0x0a,0x69,0x73,0x0a,0x61,0x0a,0x6d,0x75,0x6c,0x74,0x69,0x2d,0x6c,0x69,0x6e,0x65,0x0a,0x73,0x61, +0x6d,0x70,0x6c,0x65,0x0a,0x28,0x63,0x65,0x6e,0x74,0x65,0x72,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65, 0x6c,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,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69,0x67,0x68,0x74,0x00,0x74,0x65,0x78,0x74, -0x00,0x69,0x74,0x0a,0x69,0x73,0x0a,0x61,0x0a,0x6d,0x75,0x6c,0x74,0x69,0x2d,0x6c,0x69,0x6e,0x65,0x0a, -0x73,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x28,0x72,0x69,0x67,0x68,0x74,0x29,0x00,0x00,0x00,0x6c,0x61,0x62, -0x65,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x62,0x6f,0x74, +0x74,0x6f,0x6d,0x00,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0a,0x69,0x73,0x0a,0x61,0x0a,0x6d,0x75,0x6c, +0x74,0x69,0x2d,0x6c,0x69,0x6e,0x65,0x0a,0x73,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x28,0x63,0x65,0x6e,0x74, +0x65,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x74,0x6f, -0x70,0x00,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0a,0x69,0x73,0x0a,0x61,0x0a,0x6d,0x75,0x6c,0x74,0x69, -0x2d,0x6c,0x69,0x6e,0x65,0x0a,0x73,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x28,0x63,0x65,0x6e,0x74,0x65,0x72, -0x5f,0x74,0x6f,0x70,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c, -0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x65,0x78,0x74,0x00,0x69,0x74,0x0a,0x69,0x73,0x0a, -0x61,0x0a,0x6d,0x75,0x6c,0x74,0x69,0x2d,0x6c,0x69,0x6e,0x65,0x0a,0x73,0x61,0x6d,0x70,0x6c,0x65,0x0a, -0x28,0x63,0x65,0x6e,0x74,0x65,0x72,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x00,0x00,0x00, +0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x64,0x69,0x61, +0x6c,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x00,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x00,0x6c,0x65, +0x6e,0x67,0x74,0x68,0x28,0x66,0x72,0x6f,0x6d,0x3d,0x37,0x2c,0x20,0x74,0x6f,0x3d,0x31,0x32,0x2c,0x20, +0x65,0x61,0x73,0x69,0x6e,0x67,0x3d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x64,0x75,0x72,0x61,0x74, +0x69,0x6f,0x6e,0x3d,0x31,0x32,0x30,0x30,0x2c,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x3d,0x31,0x30,0x30, +0x30,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73, -0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x00,0x74, -0x65,0x78,0x74,0x00,0x69,0x74,0x0a,0x69,0x73,0x0a,0x61,0x0a,0x6d,0x75,0x6c,0x74,0x69,0x2d,0x6c,0x69, -0x6e,0x65,0x0a,0x73,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x28,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x62,0x6f, -0x74,0x74,0x6f,0x6d,0x29,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c, -0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x64,0x69,0x61,0x6c,0x69,0x6e,0x67,0x2e, -0x2e,0x2e,0x00,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x00,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28, -0x66,0x72,0x6f,0x6d,0x3d,0x37,0x2c,0x20,0x74,0x6f,0x3d,0x31,0x32,0x2c,0x20,0x65,0x61,0x73,0x69,0x6e, -0x67,0x3d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3d,0x31, -0x32,0x30,0x30,0x2c,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x3d,0x31,0x30,0x30,0x30,0x29,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63, +0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x65,0x78,0x74,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x00,0x00, 0x6c,0x61,0x62,0x65,0x6c,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,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72, -0x00,0x74,0x65,0x78,0x74,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69,0x67,0x68,0x74,0x00, +0x74,0x65,0x78,0x74,0x00,0x72,0x69,0x67,0x68,0x74,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69,0x67,0x68,0x74,0x00,0x74,0x65,0x78,0x74,0x00, -0x72,0x69,0x67,0x68,0x74,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x74,0x6f,0x70,0x00,0x74,0x65, +0x78,0x74,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x74,0x6f,0x70,0x00,0x00,0x00,0x6c,0x61,0x62,0x65, +0x6c,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,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c, -0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x74,0x6f,0x70,0x00,0x74,0x65,0x78,0x74,0x00,0x63,0x65, -0x6e,0x74,0x65,0x72,0x5f,0x74,0x6f,0x70,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x65,0x78, +0x74,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73, -0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x65,0x78,0x74,0x00,0x63,0x65,0x6e, -0x74,0x65,0x72,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00, -0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x00,0x74,0x65,0x78,0x74,0x00,0x63, -0x65,0x6e,0x74,0x65,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*1300*/ +0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x00,0x74, +0x65,0x78,0x74,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,};/*1305*/ diff --git a/demos/assets/default/inc/ui/main.data b/demos/assets/default/inc/ui/main.data index 51c9eb92d3..8bdd7fa684 100644 --- a/demos/assets/default/inc/ui/main.data +++ b/demos/assets/default/inc/ui/main.data @@ -1,5 +1,5 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_main[]) = { -0x04,0x00,0x01,0x01,0x04,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,0x00,0x64,0x61,0x74, +0x04,0x00,0x01,0x01,0xdf,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x6d,0x61,0x69,0x6e,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,0x00,0x00,0x00,0x12,0x12,0x22,0x11,0x77,0x69,0x6e,0x64,0x6f,0x77,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, @@ -192,31 +192,42 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_main[]) = { 0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x30, 0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00, 0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61, -0x75,0x6c,0x74,0x28,0x63,0x3d,0x31,0x2c,0x72,0x3d,0x38,0x2c,0x6d,0x3d,0x35,0x2c,0x73,0x3d,0x35,0x29, +0x75,0x6c,0x74,0x28,0x63,0x3d,0x32,0x2c,0x72,0x3d,0x38,0x2c,0x6d,0x3d,0x35,0x2c,0x73,0x3d,0x35,0x29, 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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a, -0x6d,0x65,0x6d,0x74,0x65,0x73,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x4d,0x65,0x6d,0x54,0x65,0x73,0x74, -0x00,0x00,0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x64,0x72,0x61,0x67,0x67,0x61,0x62,0x6c,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x44,0x72,0x61,0x67,0x67, +0x61,0x62,0x6c,0x65,0x00,0x00,0x00,0x00,0x76,0x69,0x65,0x77,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,0x00,0x00,0x64,0x00,0x00,0x00,0x64,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,0x30,0x2c, +0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x63, +0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75, +0x6c,0x74,0x28,0x63,0x3d,0x31,0x2c,0x72,0x3d,0x38,0x2c,0x6d,0x3d,0x35,0x2c,0x73,0x3d,0x35,0x29,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e, -0x3a,0x63,0x61,0x6c,0x69,0x62,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x77,0x69,0x6e,0x00,0x74,0x65,0x78, -0x74,0x00,0x43,0x61,0x6c,0x69,0x62,0x72,0x61,0x74,0x69,0x6f,0x6e,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,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x6d, +0x65,0x6d,0x74,0x65,0x73,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x4d,0x65,0x6d,0x54,0x65,0x73,0x74,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x73,0x68,0x6f,0x77,0x5f,0x66,0x70,0x73,0x00,0x74,0x65, -0x78,0x74,0x00,0x53,0x68,0x6f,0x77,0x20,0x46,0x50,0x53,0x00,0x00,0x00,0x62,0x75,0x74,0x74,0x6f,0x6e, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a, +0x63,0x61,0x6c,0x69,0x62,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x77,0x69,0x6e,0x00,0x74,0x65,0x78,0x74, +0x00,0x43,0x61,0x6c,0x69,0x62,0x72,0x61,0x74,0x69,0x6f,0x6e,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,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x73,0x68,0x6f,0x77,0x5f,0x66,0x70,0x73,0x00,0x74,0x65,0x78, +0x74,0x00,0x53,0x68,0x6f,0x77,0x20,0x46,0x50,0x53,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,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,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x65,0x78, -0x69,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x45,0x78,0x69,0x74,0x00,0x00,0x00,0x00,0x00,0x73,0x6c,0x69, -0x64,0x65,0x5f,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,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,0x64,0x00,0x00, -0x00,0x14,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,0x30,0x2c,0x79,0x3d,0x62,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c, -0x68,0x3d,0x32,0x30,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x62,0x6c,0x75,0x65,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,};/*4404*/ +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,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x65,0x78,0x69, +0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x45,0x78,0x69,0x74,0x00,0x00,0x00,0x00,0x00,0x73,0x6c,0x69,0x64, +0x65,0x5f,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,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,0x64,0x00,0x00,0x00, +0x14,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,0x30,0x2c,0x79,0x3d,0x62,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68, +0x3d,0x32,0x30,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x62,0x6c,0x75,0x65,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,};/*4623*/ diff --git a/demos/assets/default/inc/ui/mono_test.data b/demos/assets/default/inc/ui/mono_test.data new file mode 100644 index 0000000000..e263e2f3bf --- /dev/null +++ b/demos/assets/default/inc/ui/mono_test.data @@ -0,0 +1,111 @@ +TK_CONST_DATA_ALIGN(const unsigned char ui_mono_test[]) = { +0x04,0x00,0x01,0x01,0x61,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x6d,0x6f,0x6e,0x6f,0x5f,0x74,0x65,0x73, +0x74,0x00,0x64,0x61,0x74,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x12,0x12,0x22,0x11,0x77,0x69,0x6e,0x64,0x6f,0x77,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c, +0x65,0x3a,0x62,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x62,0x6c,0x61,0x63,0x6b,0x00,0x74,0x65,0x78, +0x74,0x00,0x42,0x61,0x73,0x69,0x63,0x20,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x00,0x00,0x61,0x70, +0x70,0x5f,0x62,0x61,0x72,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,0x64,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,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25, +0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x64,0x00,0x00,0x00,0x64,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,0x30,0x2c, +0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x74, +0x65,0x78,0x74,0x00,0x75,0x70,0x2f,0x64,0x6f,0x77,0x6e,0x20,0x6b,0x65,0x79,0x20,0x63,0x68,0x61,0x6e, +0x67,0x65,0x20,0x66,0x6f,0x63,0x75,0x73,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x66,0x6f,0x6e,0x74,0x5f, +0x73,0x69,0x7a,0x65,0x00,0x32,0x34,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x74,0x65,0x78,0x74,0x5f,0x63, +0x6f,0x6c,0x6f,0x72,0x00,0x77,0x68,0x69,0x74,0x65,0x00,0x00,0x00,0x00,0x72,0x6f,0x77,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,0x64,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,0x30,0x2c,0x79,0x3d,0x34,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d, +0x33,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00, +0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x31,0x2c,0x63,0x3d,0x33,0x2c,0x78,0x6d,0x3d,0x32, +0x2c,0x73,0x3d,0x31,0x30,0x29,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65, +0x00,0x69,0x6e,0x63,0x5f,0x76,0x61,0x6c,0x75,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x49,0x6e,0x63,0x00, +0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x66,0x6f,0x63,0x75,0x73, +0x00,0x74,0x72,0x75,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, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65, +0x00,0x63,0x6c,0x6f,0x73,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x43,0x6c,0x6f,0x73,0x65,0x00,0x66,0x6f, +0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x64,0x65,0x63,0x5f,0x76,0x61,0x6c,0x75,0x65,0x00,0x74,0x65, +0x78,0x74,0x00,0x44,0x65,0x63,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75, +0x65,0x00,0x00,0x00,0x00,0x72,0x6f,0x77,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,0x64,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,0x30,0x2c,0x79,0x3d,0x38, +0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64, +0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72, +0x3d,0x31,0x2c,0x63,0x3d,0x33,0x2c,0x78,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x6c, +0x61,0x62,0x65,0x6c,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,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x6e,0x61, +0x6d,0x65,0x00,0x6c,0x65,0x66,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x4c,0x65,0x66,0x74,0x00,0x73,0x74, +0x79,0x6c,0x65,0x3a,0x74,0x65,0x78,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x77,0x68,0x69,0x74,0x65, +0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x65,0x6e, +0x74,0x65,0x72,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,0x65,0x6e,0x74,0x65,0x72,0x00,0x74,0x65,0x78,0x74, +0x00,0x43,0x65,0x6e,0x74,0x65,0x72,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x74,0x65,0x78,0x74,0x5f,0x63, +0x6f,0x6c,0x6f,0x72,0x00,0x77,0x68,0x69,0x74,0x65,0x00,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x72,0x69,0x67,0x68,0x74,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x69, +0x67,0x68,0x74,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x69,0x67,0x68,0x74,0x00,0x73,0x74,0x79,0x6c,0x65, +0x3a,0x74,0x65,0x78,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x77,0x68,0x69,0x74,0x65,0x00,0x00,0x00, +0x00,0x63,0x6f,0x6c,0x75,0x6d,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,0x14,0x00,0x00,0x00,0xa0,0x00,0x00, +0x00,0x32,0x00,0x00,0x00,0x5a,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,0x32,0x30,0x2c,0x79,0x3d,0x31,0x36,0x30,0x2c, +0x77,0x3d,0x35,0x30,0x25,0x2c,0x68,0x3d,0x39,0x30,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e, +0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x72,0x3d,0x33,0x2c, +0x63,0x3d,0x31,0x2c,0x79,0x6d,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x63,0x68,0x65,0x63, +0x6b,0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x31,0x00,0x74,0x65,0x78,0x74,0x00,0x42,0x6f,0x6f, +0x6b,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x63, +0x68,0x65,0x63,0x6b,0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x32,0x00,0x74,0x65,0x78,0x74,0x00, +0x46,0x6f,0x6f,0x64,0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00, +0x00,0x00,0x63,0x68,0x65,0x63,0x6b,0x5f,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,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x33,0x00,0x74,0x65, +0x78,0x74,0x00,0x50,0x65,0x6e,0x63,0x69,0x6c,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x74,0x72,0x75,0x65, +0x00,0x66,0x6f,0x63,0x75,0x73,0x61,0x62,0x6c,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x00,0x00,0x00,0x67, +0x72,0x69,0x64,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,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50, +0x00,0x00,0x00,0x28,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,0x32,0x30,0x2c,0x79,0x3d,0x62,0x6f,0x74,0x74,0x6f,0x6d, +0x3a,0x31,0x30,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x34,0x30,0x29,0x00,0x63,0x68,0x69,0x6c, +0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28, +0x72,0x3d,0x31,0x2c,0x63,0x3d,0x35,0x2c,0x78,0x3d,0x32,0x2c,0x73,0x3d,0x31,0x30,0x29,0x00,0x00,0x69, +0x6d,0x61,0x67,0x65,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,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f, +0x6e,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x00,0x00,0x69,0x6d,0x61,0x67, +0x65,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,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69, +0x6d,0x61,0x67,0x65,0x00,0x72,0x67,0x62,0x61,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x64,0x72,0x61,0x77,0x5f,0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67,0x65, +0x00,0x72,0x67,0x62,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f, +0x74,0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x6d,0x65,0x73,0x73, +0x61,0x67,0x65,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x72,0x61,0x77,0x5f,0x74, +0x79,0x70,0x65,0x00,0x69,0x63,0x6f,0x6e,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x72,0x65,0x64,0x5f,0x62, +0x74,0x6e,0x5f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*2193*/ diff --git a/demos/assets/default/inc/ui/rich_text.data b/demos/assets/default/inc/ui/rich_text.data index 102d6bc73f..d8d12d8d28 100644 --- a/demos/assets/default/inc/ui/rich_text.data +++ b/demos/assets/default/inc/ui/rich_text.data @@ -1,5 +1,5 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_rich_text[]) = { -0x04,0x00,0x01,0x01,0xd3,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x72,0x69,0x63,0x68,0x5f,0x74,0x65,0x78, +0x04,0x00,0x01,0x01,0xd5,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x72,0x69,0x63,0x68,0x5f,0x74,0x65,0x78, 0x74,0x00,0x64,0x61,0x74,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x12,0x12,0x22,0x11,0x77,0x69,0x6e,0x64,0x6f,0x77,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, @@ -50,17 +50,17 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_rich_text[]) = { 0x73,0x20,0x79,0x6f,0x75,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x70,0x65, 0x6f,0x70,0x6c,0x65,0x20,0x79,0x6f,0x75,0x20,0x66,0x6f,0x6c,0x6c,0x6f,0x77,0x20,0x61,0x6e,0x64,0x20, 0x72,0x65,0x70,0x6f,0x73,0x69,0x74,0x6f,0x72,0x69,0x65,0x73,0x20,0x79,0x6f,0x75,0x20,0x77,0x61,0x74, -0x63,0x68,0x2e,0x20,0x0a,0x20,0x68,0x65,0x6c,0x6c,0x6f,0x20,0x77,0x6f,0x72,0x6c,0x64,0x21,0x0a,0x20, -0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x3c,0x66,0x6f,0x6e,0x74,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3d,0x22, -0x72,0x65,0x64,0x22,0x20,0x73,0x69,0x7a,0x65,0x3d,0x22,0x32,0x30,0x22,0x3e,0xe7,0xa1,0xae,0xe5,0xae, -0x9a,0xe5,0x8f,0x96,0xe6,0xb6,0x88,0xe4,0xb8,0xad,0xe6,0x96,0x87,0xe5,0xad,0x97,0xe7,0xac,0xa6,0xe6, -0xb5,0x8b,0xe8,0xaf,0x95,0xe3,0x80,0x82,0xe7,0xa1,0xae,0xe5,0xae,0x9a,0xe3,0x80,0x82,0xe5,0x8f,0x96, -0xe6,0xb6,0x88,0xe3,0x80,0x82,0xe4,0xb8,0xad,0xe6,0x96,0x87,0xe5,0xad,0x97,0xe7,0xac,0xa6,0xe6,0xb5, -0x8b,0xe8,0xaf,0x95,0xe3,0x80,0x82,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x22,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,0x19,0x00, -0x00,0x00,0x28,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,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31, -0x30,0x2c,0x77,0x3d,0x32,0x35,0x25,0x2c,0x68,0x3d,0x34,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63, -0x6c,0x6f,0x73,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x43,0x6c,0x6f,0x73,0x65,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,};/*1283*/ +0x63,0x68,0x2e,0x20,0x0d,0x0a,0x20,0x68,0x65,0x6c,0x6c,0x6f,0x20,0x77,0x6f,0x72,0x6c,0x64,0x21,0x0d, +0x0a,0x20,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x3c,0x66,0x6f,0x6e,0x74,0x20,0x63,0x6f,0x6c,0x6f,0x72, +0x3d,0x22,0x72,0x65,0x64,0x22,0x20,0x73,0x69,0x7a,0x65,0x3d,0x22,0x32,0x30,0x22,0x3e,0xe7,0xa1,0xae, +0xe5,0xae,0x9a,0xe5,0x8f,0x96,0xe6,0xb6,0x88,0xe4,0xb8,0xad,0xe6,0x96,0x87,0xe5,0xad,0x97,0xe7,0xac, +0xa6,0xe6,0xb5,0x8b,0xe8,0xaf,0x95,0xe3,0x80,0x82,0xe7,0xa1,0xae,0xe5,0xae,0x9a,0xe3,0x80,0x82,0xe5, +0x8f,0x96,0xe6,0xb6,0x88,0xe3,0x80,0x82,0xe4,0xb8,0xad,0xe6,0x96,0x87,0xe5,0xad,0x97,0xe7,0xac,0xa6, +0xe6,0xb5,0x8b,0xe8,0xaf,0x95,0xe3,0x80,0x82,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x22,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, +0x19,0x00,0x00,0x00,0x28,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,0x62,0x6f,0x74,0x74,0x6f,0x6d, +0x3a,0x31,0x30,0x2c,0x77,0x3d,0x32,0x35,0x25,0x2c,0x68,0x3d,0x34,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65, +0x00,0x63,0x6c,0x6f,0x73,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x43,0x6c,0x6f,0x73,0x65,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,};/*1285*/ diff --git a/demos/assets/default/inc/ui/system_bar_bottom.data b/demos/assets/default/inc/ui/system_bar_bottom.data new file mode 100644 index 0000000000..ab8efb83fa --- /dev/null +++ b/demos/assets/default/inc/ui/system_bar_bottom.data @@ -0,0 +1,28 @@ +TK_CONST_DATA_ALIGN(const unsigned char ui_system_bar_bottom[]) = { +0x04,0x00,0x01,0x01,0xec,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x62, +0x61,0x72,0x5f,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x00,0x64,0x61,0x74,0x61,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x12,0x12,0x22,0x11,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x62,0x61,0x72,0x5f,0x62, +0x6f,0x74,0x74,0x6f,0x6d,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,0x1e,0x00,0x00,0x00,0x00,0x63,0x6f,0x6c, +0x75,0x6d,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,0xd8,0xff,0xff, +0xff,0x64,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,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x2d,0x34,0x30,0x2c,0x68, +0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,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, +0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x64,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,0x6d,0x2c,0x77,0x3d,0x35,0x35,0x25,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x73, +0x74,0x79,0x6c,0x65,0x00,0x74,0x69,0x74,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x74,0x69,0x74,0x6c, +0x65,0x00,0x00,0x00,0x64,0x69,0x67,0x69,0x74,0x5f,0x63,0x6c,0x6f,0x63,0x6b,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,0x64,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,0x2c,0x79,0x3d,0x6d,0x2c, +0x77,0x3d,0x34,0x30,0x25,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00, +0x74,0x69,0x6d,0x65,0x00,0x66,0x6f,0x72,0x6d,0x61,0x74,0x00,0x68,0x68,0x3a,0x6d,0x6d,0x00,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,0x1a,0x00,0x00,0x00,0x1a,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,0x3a,0x35,0x2c,0x79,0x3d,0x6d,0x2c,0x77, +0x3d,0x32,0x36,0x2c,0x68,0x3d,0x32,0x36,0x29,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x63,0x6c,0x6f,0x73, +0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,0x6c,0x6f,0x73,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*540*/ diff --git a/demos/assets/default/inc/xml/test.data b/demos/assets/default/inc/xml/test.data index 00b089671f..da332ca1b5 100644 --- a/demos/assets/default/inc/xml/test.data +++ b/demos/assets/default/inc/xml/test.data @@ -1,10 +1,10 @@ TK_CONST_DATA_ALIGN(const unsigned char xml_test[]) = { -0x05,0x00,0x00,0x01,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x00,0x64,0x61,0x74, +0x05,0x00,0x00,0x01,0x7b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x65,0x73,0x74,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,0x00,0x00,0x00,0x3c,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x61,0x6e,0x69,0x6d,0x5f,0x68,0x69,0x6e, -0x74,0x3d,0x22,0x68,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x22,0x3e,0x0a,0x20,0x20,0x3c,0x62, -0x75,0x74,0x74,0x6f,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x22,0x20,0x78, -0x3d,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x20,0x79,0x3d,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a, -0x31,0x30,0x22,0x20,0x77,0x3d,0x22,0x32,0x35,0x25,0x22,0x20,0x68,0x3d,0x22,0x33,0x30,0x22,0x20,0x74, -0x65,0x78,0x74,0x3d,0x22,0x43,0x6c,0x6f,0x73,0x65,0x22,0x2f,0x3e,0x0a,0x3c,0x2f,0x77,0x69,0x6e,0x64, -0x6f,0x77,0x3e,0x0a,0x00,0x00,0x00,0x00,};/*168*/ +0x74,0x3d,0x22,0x68,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x22,0x3e,0x0d,0x0a,0x20,0x20,0x3c, +0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x22,0x20, +0x78,0x3d,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x20,0x79,0x3d,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d, +0x3a,0x31,0x30,0x22,0x20,0x77,0x3d,0x22,0x32,0x35,0x25,0x22,0x20,0x68,0x3d,0x22,0x33,0x30,0x22,0x20, +0x74,0x65,0x78,0x74,0x3d,0x22,0x43,0x6c,0x6f,0x73,0x65,0x22,0x2f,0x3e,0x0d,0x0a,0x3c,0x2f,0x77,0x69, +0x6e,0x64,0x6f,0x77,0x3e,0x0d,0x0a,0x00,0x00,0x00,0x00,};/*171*/ diff --git a/demos/assets/default/raw/strings/en_US.bin b/demos/assets/default/raw/strings/en_US.bin index 2e3086906d..f631b7888e 100644 Binary files a/demos/assets/default/raw/strings/en_US.bin and b/demos/assets/default/raw/strings/en_US.bin differ diff --git a/demos/assets/default/raw/strings/zh_CN.bin b/demos/assets/default/raw/strings/zh_CN.bin index 20230b40b8..e138a1cb55 100644 Binary files a/demos/assets/default/raw/strings/zh_CN.bin and b/demos/assets/default/raw/strings/zh_CN.bin differ diff --git a/demos/assets/default/raw/styles/system_bar_bottom.bin b/demos/assets/default/raw/styles/system_bar_bottom.bin new file mode 100644 index 0000000000..b3f7a6a5ea Binary files /dev/null and b/demos/assets/default/raw/styles/system_bar_bottom.bin differ diff --git a/demos/assets/default/raw/styles/system_bar_bottom.xml b/demos/assets/default/raw/styles/system_bar_bottom.xml new file mode 100644 index 0000000000..9cd0fa9970 --- /dev/null +++ b/demos/assets/default/raw/styles/system_bar_bottom.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + diff --git a/demos/assets/default/raw/ui/basic.bin b/demos/assets/default/raw/ui/basic.bin index 54d7a62db5..ac0b0220ce 100644 Binary files a/demos/assets/default/raw/ui/basic.bin and b/demos/assets/default/raw/ui/basic.bin differ diff --git a/demos/assets/default/raw/ui/basic.xml b/demos/assets/default/raw/ui/basic.xml index 4171603bf1..11af351f77 100644 --- a/demos/assets/default/raw/ui/basic.xml +++ b/demos/assets/default/raw/ui/basic.xml @@ -1,6 +1,6 @@ - + - diff --git a/demos/assets/default/raw/ui/dialog1.bin b/demos/assets/default/raw/ui/dialog1.bin index 6da52ff31b..774e14854c 100644 Binary files a/demos/assets/default/raw/ui/dialog1.bin and b/demos/assets/default/raw/ui/dialog1.bin differ diff --git a/demos/assets/default/raw/ui/dialog1.xml b/demos/assets/default/raw/ui/dialog1.xml index 49bbc18764..15e87473b7 100644 --- a/demos/assets/default/raw/ui/dialog1.xml +++ b/demos/assets/default/raw/ui/dialog1.xml @@ -1,5 +1,8 @@ - + + + + diff --git a/demos/assets/default/raw/ui/label.bin b/demos/assets/default/raw/ui/label.bin index d9b0ddcdbc..7d26626bc7 100644 Binary files a/demos/assets/default/raw/ui/label.bin and b/demos/assets/default/raw/ui/label.bin differ diff --git a/demos/assets/default/raw/ui/main.bin b/demos/assets/default/raw/ui/main.bin index 766963d7bc..ebba7190da 100644 Binary files a/demos/assets/default/raw/ui/main.bin and b/demos/assets/default/raw/ui/main.bin differ diff --git a/demos/assets/default/raw/ui/main.xml b/demos/assets/default/raw/ui/main.xml index 04f75d721e..b5de1eddc8 100644 --- a/demos/assets/default/raw/ui/main.xml +++ b/demos/assets/default/raw/ui/main.xml @@ -44,6 +44,9 @@ + ``` + + 拖动对话框标题时移动对话框: + + ```xml + + + + ``` + + > 更多用法请参考: + [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/draggable.xml) + + 在c代码中使用函数draggable\_create创建按钮控件。如: + + ```c + widget_t* draggable = draggable_create(target, 0, 0, 0, 0); + ``` + + > draggable本身不可见,故无需style。 + + +---------------------------------- +### 函数 +

+ +| 函数名称 | 说明 | +| -------- | ------------ | +| 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/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/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/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/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..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创建仪表指针控件。如: @@ -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/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 1e90471c8c..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,8 +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) ---------------------------------- @@ -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..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创建图片动画控件。如: @@ -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_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_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/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/images/app_bar_t_0.png b/docs/manual/images/app_bar_t_0.png index 43b9aaa732..de7a5c5cd0 100644 Binary files a/docs/manual/images/app_bar_t_0.png and b/docs/manual/images/app_bar_t_0.png differ diff --git a/docs/manual/images/button_group_t_0.png b/docs/manual/images/button_group_t_0.png index 3aba5f1ac1..ae70129f12 100644 Binary files a/docs/manual/images/button_group_t_0.png and b/docs/manual/images/button_group_t_0.png differ diff --git a/docs/manual/images/button_t_0.png b/docs/manual/images/button_t_0.png index ebbf2200d6..b5e1761e72 100644 Binary files a/docs/manual/images/button_t_0.png and b/docs/manual/images/button_t_0.png differ diff --git a/docs/manual/images/calibration_win_t_0.png b/docs/manual/images/calibration_win_t_0.png index aeaba33d3f..a89f9e3c64 100644 Binary files a/docs/manual/images/calibration_win_t_0.png and b/docs/manual/images/calibration_win_t_0.png differ diff --git a/docs/manual/images/candidates_t_0.png b/docs/manual/images/candidates_t_0.png index e689b0a43f..c92193b3ec 100644 Binary files a/docs/manual/images/candidates_t_0.png and b/docs/manual/images/candidates_t_0.png differ diff --git a/docs/manual/images/canvas_widget_t_0.png b/docs/manual/images/canvas_widget_t_0.png index b9959a8979..9653295ffb 100644 Binary files a/docs/manual/images/canvas_widget_t_0.png and b/docs/manual/images/canvas_widget_t_0.png differ diff --git a/docs/manual/images/check_button_t_0.png b/docs/manual/images/check_button_t_0.png index bbe606a542..528710cff0 100644 Binary files a/docs/manual/images/check_button_t_0.png and b/docs/manual/images/check_button_t_0.png differ diff --git a/docs/manual/images/children_layouter_default_t_0.png b/docs/manual/images/children_layouter_default_t_0.png index 0d9135939e..4ca1462502 100644 Binary files a/docs/manual/images/children_layouter_default_t_0.png and b/docs/manual/images/children_layouter_default_t_0.png differ 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 ab4ee7b163..4f7cda2eac 100644 Binary files a/docs/manual/images/children_layouter_list_view_t_0.png and b/docs/manual/images/children_layouter_list_view_t_0.png differ diff --git a/docs/manual/images/color_component_t_0.png b/docs/manual/images/color_component_t_0.png index f061e2aa76..e2f8bb6ef0 100644 Binary files a/docs/manual/images/color_component_t_0.png and b/docs/manual/images/color_component_t_0.png differ diff --git a/docs/manual/images/color_picker_t_0.png b/docs/manual/images/color_picker_t_0.png index e402017bac..62ad7b447b 100644 Binary files a/docs/manual/images/color_picker_t_0.png and b/docs/manual/images/color_picker_t_0.png differ diff --git a/docs/manual/images/color_tile_t_0.png b/docs/manual/images/color_tile_t_0.png index 0cce0d9369..590b2bf05d 100644 Binary files a/docs/manual/images/color_tile_t_0.png and b/docs/manual/images/color_tile_t_0.png differ diff --git a/docs/manual/images/column_t_0.png b/docs/manual/images/column_t_0.png index bb7559b657..416874e9f1 100644 Binary files a/docs/manual/images/column_t_0.png and b/docs/manual/images/column_t_0.png differ diff --git a/docs/manual/images/combo_box_ex_t_0.png b/docs/manual/images/combo_box_ex_t_0.png index 6de506166b..ba05f65872 100644 Binary files a/docs/manual/images/combo_box_ex_t_0.png and b/docs/manual/images/combo_box_ex_t_0.png differ diff --git a/docs/manual/images/combo_box_item_t_0.png b/docs/manual/images/combo_box_item_t_0.png index dbdb34a1ad..4722321d6a 100644 Binary files a/docs/manual/images/combo_box_item_t_0.png and b/docs/manual/images/combo_box_item_t_0.png differ diff --git a/docs/manual/images/combo_box_t_0.png b/docs/manual/images/combo_box_t_0.png index d3cf03550a..97ec923e96 100644 Binary files a/docs/manual/images/combo_box_t_0.png and b/docs/manual/images/combo_box_t_0.png differ diff --git a/docs/manual/images/dialog_client_t_0.png b/docs/manual/images/dialog_client_t_0.png index 89e9df969d..84bca30187 100644 Binary files a/docs/manual/images/dialog_client_t_0.png and b/docs/manual/images/dialog_client_t_0.png differ diff --git a/docs/manual/images/dialog_t_0.png b/docs/manual/images/dialog_t_0.png index 4eec96ad87..5c990f9652 100644 Binary files a/docs/manual/images/dialog_t_0.png and b/docs/manual/images/dialog_t_0.png differ diff --git a/docs/manual/images/dialog_t_1.png b/docs/manual/images/dialog_t_1.png index de40f3cf96..f5406e2949 100644 Binary files a/docs/manual/images/dialog_t_1.png and b/docs/manual/images/dialog_t_1.png differ diff --git a/docs/manual/images/dialog_title_t_0.png b/docs/manual/images/dialog_title_t_0.png index 0a72485244..d389d4a9e9 100644 Binary files a/docs/manual/images/dialog_title_t_0.png and b/docs/manual/images/dialog_title_t_0.png differ diff --git a/docs/manual/images/digit_clock_t_0.png b/docs/manual/images/digit_clock_t_0.png index f15590bbbc..861737c91e 100644 Binary files a/docs/manual/images/digit_clock_t_0.png and b/docs/manual/images/digit_clock_t_0.png differ diff --git a/docs/manual/images/draggable_t_0.png b/docs/manual/images/draggable_t_0.png new file mode 100644 index 0000000000..12ca048ec6 Binary files /dev/null and b/docs/manual/images/draggable_t_0.png differ diff --git a/docs/manual/images/dragger_t_0.png b/docs/manual/images/dragger_t_0.png index 0867a29227..571b68e834 100644 Binary files a/docs/manual/images/dragger_t_0.png and b/docs/manual/images/dragger_t_0.png differ diff --git a/docs/manual/images/edit_t_0.png b/docs/manual/images/edit_t_0.png index 6fdf1a583b..44a9b11914 100644 Binary files a/docs/manual/images/edit_t_0.png and b/docs/manual/images/edit_t_0.png differ diff --git a/docs/manual/images/event_source_fd_t_0.png b/docs/manual/images/event_source_fd_t_0.png index 872761782e..6a851735f3 100644 Binary files a/docs/manual/images/event_source_fd_t_0.png and b/docs/manual/images/event_source_fd_t_0.png differ diff --git a/docs/manual/images/event_source_idle_t_0.png b/docs/manual/images/event_source_idle_t_0.png index 209952869e..e5c11c83d0 100644 Binary files a/docs/manual/images/event_source_idle_t_0.png and b/docs/manual/images/event_source_idle_t_0.png differ diff --git a/docs/manual/images/event_source_t_0.png b/docs/manual/images/event_source_t_0.png index 817831e261..ab8e81e935 100644 Binary files a/docs/manual/images/event_source_t_0.png and b/docs/manual/images/event_source_t_0.png differ diff --git a/docs/manual/images/event_source_timer_t_0.png b/docs/manual/images/event_source_timer_t_0.png index 5ac7cf1c95..592e47475d 100644 Binary files a/docs/manual/images/event_source_timer_t_0.png and b/docs/manual/images/event_source_timer_t_0.png differ diff --git a/docs/manual/images/font_loader_bitmap_t_0.png b/docs/manual/images/font_loader_bitmap_t_0.png index 37622cb093..1c084b7b1f 100644 Binary files a/docs/manual/images/font_loader_bitmap_t_0.png and b/docs/manual/images/font_loader_bitmap_t_0.png differ diff --git a/docs/manual/images/font_loader_ft_t_0.png b/docs/manual/images/font_loader_ft_t_0.png index 1675a9dd20..0acb8944d1 100644 Binary files a/docs/manual/images/font_loader_ft_t_0.png and b/docs/manual/images/font_loader_ft_t_0.png differ diff --git a/docs/manual/images/font_loader_stb_t_0.png b/docs/manual/images/font_loader_stb_t_0.png index f96dd67d31..3db7b93399 100644 Binary files a/docs/manual/images/font_loader_stb_t_0.png and b/docs/manual/images/font_loader_stb_t_0.png differ diff --git a/docs/manual/images/gif_image_t_0.png b/docs/manual/images/gif_image_t_0.png index 1777db38f5..b84ce669fb 100644 Binary files a/docs/manual/images/gif_image_t_0.png and b/docs/manual/images/gif_image_t_0.png differ diff --git a/docs/manual/images/grid_item_t_0.png b/docs/manual/images/grid_item_t_0.png index 3a5ca0cec8..879ad6d800 100644 Binary files a/docs/manual/images/grid_item_t_0.png and b/docs/manual/images/grid_item_t_0.png differ diff --git a/docs/manual/images/grid_t_0.png b/docs/manual/images/grid_t_0.png index b6a12b485d..07cc9f93b7 100644 Binary files a/docs/manual/images/grid_t_0.png and b/docs/manual/images/grid_t_0.png differ diff --git a/docs/manual/images/group_box_t_0.png b/docs/manual/images/group_box_t_0.png index 6cab70e24d..3ab5b695d2 100644 Binary files a/docs/manual/images/group_box_t_0.png and b/docs/manual/images/group_box_t_0.png differ diff --git a/docs/manual/images/guage_pointer_t_0.png b/docs/manual/images/guage_pointer_t_0.png index 9396510d1e..a0c6049b2a 100644 Binary files a/docs/manual/images/guage_pointer_t_0.png and b/docs/manual/images/guage_pointer_t_0.png differ diff --git a/docs/manual/images/guage_t_0.png b/docs/manual/images/guage_t_0.png index b28551e7d3..1af7cdd848 100644 Binary files a/docs/manual/images/guage_t_0.png and b/docs/manual/images/guage_t_0.png differ diff --git a/docs/manual/images/hscroll_label_t_0.png b/docs/manual/images/hscroll_label_t_0.png index d4c410a33e..44e270359d 100644 Binary files a/docs/manual/images/hscroll_label_t_0.png and b/docs/manual/images/hscroll_label_t_0.png differ diff --git a/docs/manual/images/idle_info_t_0.png b/docs/manual/images/idle_info_t_0.png index b03f6fb3af..e418e572dd 100644 Binary files a/docs/manual/images/idle_info_t_0.png and b/docs/manual/images/idle_info_t_0.png differ diff --git a/docs/manual/images/im_action_button_info_event_t_0.png b/docs/manual/images/im_action_button_info_event_t_0.png index adfe314986..2d6a2f739b 100644 Binary files a/docs/manual/images/im_action_button_info_event_t_0.png and b/docs/manual/images/im_action_button_info_event_t_0.png differ diff --git a/docs/manual/images/im_candidates_event_t_0.png b/docs/manual/images/im_candidates_event_t_0.png index 223cd16194..3f55d20ea8 100644 Binary files a/docs/manual/images/im_candidates_event_t_0.png and b/docs/manual/images/im_candidates_event_t_0.png differ diff --git a/docs/manual/images/im_commit_event_t_0.png b/docs/manual/images/im_commit_event_t_0.png index 305dc233e9..ac7fb6c811 100644 Binary files a/docs/manual/images/im_commit_event_t_0.png and b/docs/manual/images/im_commit_event_t_0.png differ diff --git a/docs/manual/images/image_animation_t_0.png b/docs/manual/images/image_animation_t_0.png index 8acb1f5134..514ab84dc2 100644 Binary files a/docs/manual/images/image_animation_t_0.png and b/docs/manual/images/image_animation_t_0.png differ diff --git a/docs/manual/images/image_base_t_0.png b/docs/manual/images/image_base_t_0.png index d0bbe4a45c..2b8e74cd69 100644 Binary files a/docs/manual/images/image_base_t_0.png and b/docs/manual/images/image_base_t_0.png differ diff --git a/docs/manual/images/image_base_t_1.png b/docs/manual/images/image_base_t_1.png index f6430582a7..986c788246 100644 Binary files a/docs/manual/images/image_base_t_1.png and b/docs/manual/images/image_base_t_1.png differ diff --git a/docs/manual/images/image_loader_stb_t_0.png b/docs/manual/images/image_loader_stb_t_0.png index eebbf81250..fc6e8a0e3f 100644 Binary files a/docs/manual/images/image_loader_stb_t_0.png and b/docs/manual/images/image_loader_stb_t_0.png differ diff --git a/docs/manual/images/image_t_0.png b/docs/manual/images/image_t_0.png index f338b83a29..f490d9251c 100644 Binary files a/docs/manual/images/image_t_0.png and b/docs/manual/images/image_t_0.png differ diff --git a/docs/manual/images/image_value_t_0.png b/docs/manual/images/image_value_t_0.png index 38a337cc1f..5380787cf1 100644 Binary files a/docs/manual/images/image_value_t_0.png and b/docs/manual/images/image_value_t_0.png differ diff --git a/docs/manual/images/input_engine_null_t_0.png b/docs/manual/images/input_engine_null_t_0.png index 752691fe47..de0ee20a61 100644 Binary files a/docs/manual/images/input_engine_null_t_0.png and b/docs/manual/images/input_engine_null_t_0.png differ diff --git a/docs/manual/images/input_engine_pinyin_t_0.png b/docs/manual/images/input_engine_pinyin_t_0.png index 1aab67ab6f..d37c80f417 100644 Binary files a/docs/manual/images/input_engine_pinyin_t_0.png and b/docs/manual/images/input_engine_pinyin_t_0.png differ diff --git a/docs/manual/images/input_engine_t_0.png b/docs/manual/images/input_engine_t_0.png index 209dedbc34..0caa5e0ccb 100644 Binary files a/docs/manual/images/input_engine_t_0.png and b/docs/manual/images/input_engine_t_0.png differ diff --git a/docs/manual/images/input_method_default_t_0.png b/docs/manual/images/input_method_default_t_0.png index 56eb7a23d6..0c36f48541 100644 Binary files a/docs/manual/images/input_method_default_t_0.png and b/docs/manual/images/input_method_default_t_0.png differ diff --git a/docs/manual/images/input_method_null_t_0.png b/docs/manual/images/input_method_null_t_0.png index 3f25cf47b7..98dd274547 100644 Binary files a/docs/manual/images/input_method_null_t_0.png and b/docs/manual/images/input_method_null_t_0.png differ diff --git a/docs/manual/images/input_method_sdl_t_0.png b/docs/manual/images/input_method_sdl_t_0.png index 353c73cbb3..fc480a5d60 100644 Binary files a/docs/manual/images/input_method_sdl_t_0.png and b/docs/manual/images/input_method_sdl_t_0.png differ diff --git a/docs/manual/images/input_method_t_0.png b/docs/manual/images/input_method_t_0.png index 821d47f5a3..b60ce58ca5 100644 Binary files a/docs/manual/images/input_method_t_0.png and b/docs/manual/images/input_method_t_0.png differ diff --git a/docs/manual/images/key_event_t_0.png b/docs/manual/images/key_event_t_0.png index 86789f681b..d5576cd888 100644 Binary files a/docs/manual/images/key_event_t_0.png and b/docs/manual/images/key_event_t_0.png differ diff --git a/docs/manual/images/keyboard_t_0.png b/docs/manual/images/keyboard_t_0.png index 0c55124318..a96f1f85b3 100644 Binary files a/docs/manual/images/keyboard_t_0.png and b/docs/manual/images/keyboard_t_0.png differ diff --git a/docs/manual/images/label_t_0.png b/docs/manual/images/label_t_0.png index 022a3b19b2..835fd8accd 100644 Binary files a/docs/manual/images/label_t_0.png and b/docs/manual/images/label_t_0.png differ diff --git a/docs/manual/images/lcd_mono_t_0.png b/docs/manual/images/lcd_mono_t_0.png index f9cf46b28f..d0c0f01a0c 100644 Binary files a/docs/manual/images/lcd_mono_t_0.png and b/docs/manual/images/lcd_mono_t_0.png differ diff --git a/docs/manual/images/lcd_profile_t_0.png b/docs/manual/images/lcd_profile_t_0.png index 4966bf3bd3..c16881c286 100644 Binary files a/docs/manual/images/lcd_profile_t_0.png and b/docs/manual/images/lcd_profile_t_0.png differ diff --git a/docs/manual/images/line_number_t_0.png b/docs/manual/images/line_number_t_0.png index 65ed6be80e..51cc00b6d9 100644 Binary files a/docs/manual/images/line_number_t_0.png and b/docs/manual/images/line_number_t_0.png differ diff --git a/docs/manual/images/list_item_t_0.png b/docs/manual/images/list_item_t_0.png index ffae910dfc..fc202adbab 100644 Binary files a/docs/manual/images/list_item_t_0.png and b/docs/manual/images/list_item_t_0.png differ diff --git a/docs/manual/images/list_view_h_t_0.png b/docs/manual/images/list_view_h_t_0.png index 45a3001176..9eb733e7e3 100644 Binary files a/docs/manual/images/list_view_h_t_0.png and b/docs/manual/images/list_view_h_t_0.png differ diff --git a/docs/manual/images/list_view_t_0.png b/docs/manual/images/list_view_t_0.png index fcace9401f..d603b76c65 100644 Binary files a/docs/manual/images/list_view_t_0.png and b/docs/manual/images/list_view_t_0.png differ diff --git a/docs/manual/images/mledit_t_0.png b/docs/manual/images/mledit_t_0.png index 8b8df46742..2c748ffd02 100644 Binary files a/docs/manual/images/mledit_t_0.png and b/docs/manual/images/mledit_t_0.png differ diff --git a/docs/manual/images/mutable_image_t_0.png b/docs/manual/images/mutable_image_t_0.png index b2cfc03ff7..4cf8c8a4a5 100644 Binary files a/docs/manual/images/mutable_image_t_0.png and b/docs/manual/images/mutable_image_t_0.png differ diff --git a/docs/manual/images/native_window_t_0.png b/docs/manual/images/native_window_t_0.png index d5e2ff883b..847f493c10 100644 Binary files a/docs/manual/images/native_window_t_0.png and b/docs/manual/images/native_window_t_0.png differ diff --git a/docs/manual/images/object_array_t_0.png b/docs/manual/images/object_array_t_0.png index fc6b329923..a2a9e90a0a 100644 Binary files a/docs/manual/images/object_array_t_0.png and b/docs/manual/images/object_array_t_0.png differ diff --git a/docs/manual/images/object_default_t_0.png b/docs/manual/images/object_default_t_0.png index 578896521b..781428cd1f 100644 Binary files a/docs/manual/images/object_default_t_0.png and b/docs/manual/images/object_default_t_0.png differ diff --git a/docs/manual/images/object_t_0.png b/docs/manual/images/object_t_0.png index 992c32901b..e2e0356be4 100644 Binary files a/docs/manual/images/object_t_0.png and b/docs/manual/images/object_t_0.png differ diff --git a/docs/manual/images/orientation_event_t_0.png b/docs/manual/images/orientation_event_t_0.png index 311c270ce3..df5b6d3b1f 100644 Binary files a/docs/manual/images/orientation_event_t_0.png and b/docs/manual/images/orientation_event_t_0.png differ diff --git a/docs/manual/images/overlay_t_0.png b/docs/manual/images/overlay_t_0.png index 2e0b9789a5..221cdebf3e 100644 Binary files a/docs/manual/images/overlay_t_0.png and b/docs/manual/images/overlay_t_0.png differ diff --git a/docs/manual/images/pages_t_0.png b/docs/manual/images/pages_t_0.png index bc9b63fba4..43de0a0628 100644 Binary files a/docs/manual/images/pages_t_0.png and b/docs/manual/images/pages_t_0.png differ diff --git a/docs/manual/images/paint_event_t_0.png b/docs/manual/images/paint_event_t_0.png index fd39ad39d4..eb3ddcd871 100644 Binary files a/docs/manual/images/paint_event_t_0.png and b/docs/manual/images/paint_event_t_0.png differ diff --git a/docs/manual/images/pointer_event_t_0.png b/docs/manual/images/pointer_event_t_0.png index 081e0024d5..a198e57d58 100644 Binary files a/docs/manual/images/pointer_event_t_0.png and b/docs/manual/images/pointer_event_t_0.png differ diff --git a/docs/manual/images/popup_t_0.png b/docs/manual/images/popup_t_0.png index 6095cdc519..f2dda08c85 100644 Binary files a/docs/manual/images/popup_t_0.png and b/docs/manual/images/popup_t_0.png differ diff --git a/docs/manual/images/progress_bar_t_0.png b/docs/manual/images/progress_bar_t_0.png index bb9fdeed1f..d420a303fb 100644 Binary files a/docs/manual/images/progress_bar_t_0.png and b/docs/manual/images/progress_bar_t_0.png differ diff --git a/docs/manual/images/progress_circle_t_0.png b/docs/manual/images/progress_circle_t_0.png index e69593d6de..8e0917f13f 100644 Binary files a/docs/manual/images/progress_circle_t_0.png and b/docs/manual/images/progress_circle_t_0.png differ diff --git a/docs/manual/images/prop_change_event_t_0.png b/docs/manual/images/prop_change_event_t_0.png index 15528114b5..63ebe1094f 100644 Binary files a/docs/manual/images/prop_change_event_t_0.png and b/docs/manual/images/prop_change_event_t_0.png differ diff --git a/docs/manual/images/rich_text_t_0.png b/docs/manual/images/rich_text_t_0.png index fff1326954..816837982e 100644 Binary files a/docs/manual/images/rich_text_t_0.png and b/docs/manual/images/rich_text_t_0.png differ diff --git a/docs/manual/images/row_t_0.png b/docs/manual/images/row_t_0.png index fc1cad0809..aaa77efbf2 100644 Binary files a/docs/manual/images/row_t_0.png and b/docs/manual/images/row_t_0.png differ diff --git a/docs/manual/images/scroll_bar_t_0.png b/docs/manual/images/scroll_bar_t_0.png index 22310f566d..cf5f55b694 100644 Binary files a/docs/manual/images/scroll_bar_t_0.png and b/docs/manual/images/scroll_bar_t_0.png differ diff --git a/docs/manual/images/scroll_view_t_0.png b/docs/manual/images/scroll_view_t_0.png index 53f84021d6..b4e30591f5 100644 Binary files a/docs/manual/images/scroll_view_t_0.png and b/docs/manual/images/scroll_view_t_0.png differ diff --git a/docs/manual/images/self_layouter_default_t_0.png b/docs/manual/images/self_layouter_default_t_0.png index 3256c2f5bb..03a1564fda 100644 Binary files a/docs/manual/images/self_layouter_default_t_0.png and b/docs/manual/images/self_layouter_default_t_0.png differ diff --git a/docs/manual/images/self_layouter_menu_t_0.png b/docs/manual/images/self_layouter_menu_t_0.png index 895f79e462..0e9f6ce2e3 100644 Binary files a/docs/manual/images/self_layouter_menu_t_0.png and b/docs/manual/images/self_layouter_menu_t_0.png differ diff --git a/docs/manual/images/slide_indicator_t_0.png b/docs/manual/images/slide_indicator_t_0.png index e9a88fbccb..b353dba9a1 100644 Binary files a/docs/manual/images/slide_indicator_t_0.png and b/docs/manual/images/slide_indicator_t_0.png differ diff --git a/docs/manual/images/slide_menu_t_0.png b/docs/manual/images/slide_menu_t_0.png index d14ebe588f..3a58d89318 100644 Binary files a/docs/manual/images/slide_menu_t_0.png and b/docs/manual/images/slide_menu_t_0.png differ diff --git a/docs/manual/images/slide_view_t_0.png b/docs/manual/images/slide_view_t_0.png index 0cf388ccbf..a327509761 100644 Binary files a/docs/manual/images/slide_view_t_0.png and b/docs/manual/images/slide_view_t_0.png differ diff --git a/docs/manual/images/slider_t_0.png b/docs/manual/images/slider_t_0.png index bc8903acae..e4f0eeb48b 100644 Binary files a/docs/manual/images/slider_t_0.png and b/docs/manual/images/slider_t_0.png differ diff --git a/docs/manual/images/spin_box_t_0.png b/docs/manual/images/spin_box_t_0.png index eb063038b4..ec27ce57c3 100644 Binary files a/docs/manual/images/spin_box_t_0.png and b/docs/manual/images/spin_box_t_0.png differ diff --git a/docs/manual/images/style_const_t_0.png b/docs/manual/images/style_const_t_0.png index 818d4327f0..f2e7d10312 100644 Binary files a/docs/manual/images/style_const_t_0.png and b/docs/manual/images/style_const_t_0.png differ diff --git a/docs/manual/images/style_mutable_t_0.png b/docs/manual/images/style_mutable_t_0.png index 1017ff31c9..73d7787cfb 100644 Binary files a/docs/manual/images/style_mutable_t_0.png and b/docs/manual/images/style_mutable_t_0.png differ diff --git a/docs/manual/images/svg_image_t_0.png b/docs/manual/images/svg_image_t_0.png index 79733b4a40..f691cd4eec 100644 Binary files a/docs/manual/images/svg_image_t_0.png and b/docs/manual/images/svg_image_t_0.png differ diff --git a/docs/manual/images/switch_t_0.png b/docs/manual/images/switch_t_0.png index fd3bb11cee..88b99df8f2 100644 Binary files a/docs/manual/images/switch_t_0.png and b/docs/manual/images/switch_t_0.png differ diff --git a/docs/manual/images/system_bar_t_0.png b/docs/manual/images/system_bar_t_0.png index 7152961706..7f38e645ab 100644 Binary files a/docs/manual/images/system_bar_t_0.png and b/docs/manual/images/system_bar_t_0.png differ diff --git a/docs/manual/images/system_info_t_0.png b/docs/manual/images/system_info_t_0.png index 86df3f49b6..dd26179c8a 100644 Binary files a/docs/manual/images/system_info_t_0.png and b/docs/manual/images/system_info_t_0.png differ diff --git a/docs/manual/images/tab_button_group_t_0.png b/docs/manual/images/tab_button_group_t_0.png index 6ddb86d389..8a91ac5009 100644 Binary files a/docs/manual/images/tab_button_group_t_0.png and b/docs/manual/images/tab_button_group_t_0.png differ diff --git a/docs/manual/images/tab_button_t_0.png b/docs/manual/images/tab_button_t_0.png index f0fbe7d115..8653711830 100644 Binary files a/docs/manual/images/tab_button_t_0.png and b/docs/manual/images/tab_button_t_0.png differ diff --git a/docs/manual/images/tab_control_t_0.png b/docs/manual/images/tab_control_t_0.png index 58f6398807..63e470e941 100644 Binary files a/docs/manual/images/tab_control_t_0.png and b/docs/manual/images/tab_control_t_0.png differ diff --git a/docs/manual/images/tab_control_t_1.png b/docs/manual/images/tab_control_t_1.png index 18f483aa52..fe2276ffee 100644 Binary files a/docs/manual/images/tab_control_t_1.png and b/docs/manual/images/tab_control_t_1.png differ diff --git a/docs/manual/images/text_selector_t_0.png b/docs/manual/images/text_selector_t_0.png index 101c0d3032..10096da02f 100644 Binary files a/docs/manual/images/text_selector_t_0.png and b/docs/manual/images/text_selector_t_0.png differ diff --git a/docs/manual/images/time_clock_t_0.png b/docs/manual/images/time_clock_t_0.png index 7908424868..6103d39b01 100644 Binary files a/docs/manual/images/time_clock_t_0.png and b/docs/manual/images/time_clock_t_0.png differ diff --git a/docs/manual/images/timer_info_t_0.png b/docs/manual/images/timer_info_t_0.png index 77f65b6614..9f8476b464 100644 Binary files a/docs/manual/images/timer_info_t_0.png and b/docs/manual/images/timer_info_t_0.png differ diff --git a/docs/manual/images/tk_iostream_mem_t_0.png b/docs/manual/images/tk_iostream_mem_t_0.png index 7a3cfc63ae..e5bd5a2abb 100644 Binary files a/docs/manual/images/tk_iostream_mem_t_0.png and b/docs/manual/images/tk_iostream_mem_t_0.png differ diff --git a/docs/manual/images/tk_iostream_noisy_t_0.png b/docs/manual/images/tk_iostream_noisy_t_0.png index 750389bfbd..5fee414d78 100644 Binary files a/docs/manual/images/tk_iostream_noisy_t_0.png and b/docs/manual/images/tk_iostream_noisy_t_0.png differ diff --git a/docs/manual/images/tk_iostream_serial_t_0.png b/docs/manual/images/tk_iostream_serial_t_0.png index 6ac13f9802..3715d47283 100644 Binary files a/docs/manual/images/tk_iostream_serial_t_0.png and b/docs/manual/images/tk_iostream_serial_t_0.png differ diff --git a/docs/manual/images/tk_iostream_shdlc_t_0.png b/docs/manual/images/tk_iostream_shdlc_t_0.png index 783dddecca..8cc8f49b09 100644 Binary files a/docs/manual/images/tk_iostream_shdlc_t_0.png and b/docs/manual/images/tk_iostream_shdlc_t_0.png differ diff --git a/docs/manual/images/tk_iostream_t_0.png b/docs/manual/images/tk_iostream_t_0.png index ad3c2c3fb0..56382de8e8 100644 Binary files a/docs/manual/images/tk_iostream_t_0.png and b/docs/manual/images/tk_iostream_t_0.png differ diff --git a/docs/manual/images/tk_iostream_tcp_t_0.png b/docs/manual/images/tk_iostream_tcp_t_0.png index 8d902f6188..34d520b5ef 100644 Binary files a/docs/manual/images/tk_iostream_tcp_t_0.png and b/docs/manual/images/tk_iostream_tcp_t_0.png differ diff --git a/docs/manual/images/tk_iostream_udp_t_0.png b/docs/manual/images/tk_iostream_udp_t_0.png index 326f241563..1116281a13 100644 Binary files a/docs/manual/images/tk_iostream_udp_t_0.png and b/docs/manual/images/tk_iostream_udp_t_0.png differ diff --git a/docs/manual/images/tk_istream_buffered_t_0.png b/docs/manual/images/tk_istream_buffered_t_0.png index 51559a2a4c..23eb86bd81 100644 Binary files a/docs/manual/images/tk_istream_buffered_t_0.png and b/docs/manual/images/tk_istream_buffered_t_0.png differ diff --git a/docs/manual/images/tk_istream_file_t_0.png b/docs/manual/images/tk_istream_file_t_0.png index e8087bc73a..19cc69317d 100644 Binary files a/docs/manual/images/tk_istream_file_t_0.png and b/docs/manual/images/tk_istream_file_t_0.png differ diff --git a/docs/manual/images/tk_istream_mem_t_0.png b/docs/manual/images/tk_istream_mem_t_0.png index aafff9f093..0447cf6e9e 100644 Binary files a/docs/manual/images/tk_istream_mem_t_0.png and b/docs/manual/images/tk_istream_mem_t_0.png differ diff --git a/docs/manual/images/tk_istream_serial_t_0.png b/docs/manual/images/tk_istream_serial_t_0.png index 4984e4bfd9..7e626e15ef 100644 Binary files a/docs/manual/images/tk_istream_serial_t_0.png and b/docs/manual/images/tk_istream_serial_t_0.png differ diff --git a/docs/manual/images/tk_istream_shdlc_t_0.png b/docs/manual/images/tk_istream_shdlc_t_0.png index 5147bfde3a..c5cd27c0e8 100644 Binary files a/docs/manual/images/tk_istream_shdlc_t_0.png and b/docs/manual/images/tk_istream_shdlc_t_0.png differ diff --git a/docs/manual/images/tk_istream_t_0.png b/docs/manual/images/tk_istream_t_0.png index d878b68cd3..28f56ba252 100644 Binary files a/docs/manual/images/tk_istream_t_0.png and b/docs/manual/images/tk_istream_t_0.png differ diff --git a/docs/manual/images/tk_istream_tcp_t_0.png b/docs/manual/images/tk_istream_tcp_t_0.png index 7545c3b425..d7fb605ced 100644 Binary files a/docs/manual/images/tk_istream_tcp_t_0.png and b/docs/manual/images/tk_istream_tcp_t_0.png differ diff --git a/docs/manual/images/tk_istream_udp_t_0.png b/docs/manual/images/tk_istream_udp_t_0.png index fb86762927..8cf76599e6 100644 Binary files a/docs/manual/images/tk_istream_udp_t_0.png and b/docs/manual/images/tk_istream_udp_t_0.png differ diff --git a/docs/manual/images/tk_ostream_buffered_t_0.png b/docs/manual/images/tk_ostream_buffered_t_0.png index 02ecfac707..14c4053a1a 100644 Binary files a/docs/manual/images/tk_ostream_buffered_t_0.png and b/docs/manual/images/tk_ostream_buffered_t_0.png differ diff --git a/docs/manual/images/tk_ostream_file_t_0.png b/docs/manual/images/tk_ostream_file_t_0.png index 714a342b11..0278ecaca5 100644 Binary files a/docs/manual/images/tk_ostream_file_t_0.png and b/docs/manual/images/tk_ostream_file_t_0.png differ diff --git a/docs/manual/images/tk_ostream_mem_t_0.png b/docs/manual/images/tk_ostream_mem_t_0.png index 3a62f98a2f..fc0ec9b1d5 100644 Binary files a/docs/manual/images/tk_ostream_mem_t_0.png and b/docs/manual/images/tk_ostream_mem_t_0.png differ diff --git a/docs/manual/images/tk_ostream_noisy_t_0.png b/docs/manual/images/tk_ostream_noisy_t_0.png index 51297d4674..f1a5b511e3 100644 Binary files a/docs/manual/images/tk_ostream_noisy_t_0.png and b/docs/manual/images/tk_ostream_noisy_t_0.png differ diff --git a/docs/manual/images/tk_ostream_serial_t_0.png b/docs/manual/images/tk_ostream_serial_t_0.png index e8e664b20f..cb4be38548 100644 Binary files a/docs/manual/images/tk_ostream_serial_t_0.png and b/docs/manual/images/tk_ostream_serial_t_0.png differ diff --git a/docs/manual/images/tk_ostream_shdlc_t_0.png b/docs/manual/images/tk_ostream_shdlc_t_0.png index afc3c73445..538f09830b 100644 Binary files a/docs/manual/images/tk_ostream_shdlc_t_0.png and b/docs/manual/images/tk_ostream_shdlc_t_0.png differ diff --git a/docs/manual/images/tk_ostream_t_0.png b/docs/manual/images/tk_ostream_t_0.png index 4e7c1d5895..88efb7a706 100644 Binary files a/docs/manual/images/tk_ostream_t_0.png and b/docs/manual/images/tk_ostream_t_0.png differ diff --git a/docs/manual/images/tk_ostream_tcp_t_0.png b/docs/manual/images/tk_ostream_tcp_t_0.png index d34a04f104..b4a919dee6 100644 Binary files a/docs/manual/images/tk_ostream_tcp_t_0.png and b/docs/manual/images/tk_ostream_tcp_t_0.png differ diff --git a/docs/manual/images/tk_ostream_udp_t_0.png b/docs/manual/images/tk_ostream_udp_t_0.png index faa8f555f2..513c33ad94 100644 Binary files a/docs/manual/images/tk_ostream_udp_t_0.png and b/docs/manual/images/tk_ostream_udp_t_0.png differ diff --git a/docs/manual/images/ui_binary_writer_t_0.png b/docs/manual/images/ui_binary_writer_t_0.png index 006af099e9..fa5d845154 100644 Binary files a/docs/manual/images/ui_binary_writer_t_0.png and b/docs/manual/images/ui_binary_writer_t_0.png differ diff --git a/docs/manual/images/ui_builder_default_t_0.png b/docs/manual/images/ui_builder_default_t_0.png index 88c528a46c..1623100c53 100644 Binary files a/docs/manual/images/ui_builder_default_t_0.png and b/docs/manual/images/ui_builder_default_t_0.png differ diff --git a/docs/manual/images/ui_builder_t_0.png b/docs/manual/images/ui_builder_t_0.png index e5de585911..9097d246dd 100644 Binary files a/docs/manual/images/ui_builder_t_0.png and b/docs/manual/images/ui_builder_t_0.png differ diff --git a/docs/manual/images/ui_loader_default_t_0.png b/docs/manual/images/ui_loader_default_t_0.png index a36740b7fc..eb680f7ae5 100644 Binary files a/docs/manual/images/ui_loader_default_t_0.png and b/docs/manual/images/ui_loader_default_t_0.png differ diff --git a/docs/manual/images/ui_loader_t_0.png b/docs/manual/images/ui_loader_t_0.png index f2dc1d51f9..cfd9f418f4 100644 Binary files a/docs/manual/images/ui_loader_t_0.png and b/docs/manual/images/ui_loader_t_0.png differ diff --git a/docs/manual/images/ui_loader_xml_t_0.png b/docs/manual/images/ui_loader_xml_t_0.png index 5f6ff95a44..3f4c103c5a 100644 Binary files a/docs/manual/images/ui_loader_xml_t_0.png and b/docs/manual/images/ui_loader_xml_t_0.png differ diff --git a/docs/manual/images/ui_xml_writer_t_0.png b/docs/manual/images/ui_xml_writer_t_0.png index a38b4e0829..ca1ec311d3 100644 Binary files a/docs/manual/images/ui_xml_writer_t_0.png and b/docs/manual/images/ui_xml_writer_t_0.png differ diff --git a/docs/manual/images/value_desc_binary_t_0.png b/docs/manual/images/value_desc_binary_t_0.png index 4ad5612221..8137d88b35 100644 Binary files a/docs/manual/images/value_desc_binary_t_0.png and b/docs/manual/images/value_desc_binary_t_0.png differ diff --git a/docs/manual/images/value_desc_bool_t_0.png b/docs/manual/images/value_desc_bool_t_0.png index 0d8039f072..061f0092e4 100644 Binary files a/docs/manual/images/value_desc_bool_t_0.png and b/docs/manual/images/value_desc_bool_t_0.png differ diff --git a/docs/manual/images/value_desc_double_t_0.png b/docs/manual/images/value_desc_double_t_0.png index 959b48e7cd..b85bc0cc2d 100644 Binary files a/docs/manual/images/value_desc_double_t_0.png and b/docs/manual/images/value_desc_double_t_0.png differ diff --git a/docs/manual/images/value_desc_float_t_0.png b/docs/manual/images/value_desc_float_t_0.png index b3b6f92756..af5da46e04 100644 Binary files a/docs/manual/images/value_desc_float_t_0.png and b/docs/manual/images/value_desc_float_t_0.png differ diff --git a/docs/manual/images/value_desc_int16_t_0.png b/docs/manual/images/value_desc_int16_t_0.png index 171c347bb2..4d79688526 100644 Binary files a/docs/manual/images/value_desc_int16_t_0.png and b/docs/manual/images/value_desc_int16_t_0.png differ diff --git a/docs/manual/images/value_desc_int32_t_0.png b/docs/manual/images/value_desc_int32_t_0.png index cf3f10b11e..7aca4f3635 100644 Binary files a/docs/manual/images/value_desc_int32_t_0.png and b/docs/manual/images/value_desc_int32_t_0.png differ diff --git a/docs/manual/images/value_desc_int64_t_0.png b/docs/manual/images/value_desc_int64_t_0.png index 9f39c93e9a..54c680c86d 100644 Binary files a/docs/manual/images/value_desc_int64_t_0.png and b/docs/manual/images/value_desc_int64_t_0.png differ diff --git a/docs/manual/images/value_desc_int8_t_0.png b/docs/manual/images/value_desc_int8_t_0.png index 0ede582a81..c9cb4d164a 100644 Binary files a/docs/manual/images/value_desc_int8_t_0.png and b/docs/manual/images/value_desc_int8_t_0.png differ 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 e5809b8db5..fa64034b35 100644 Binary files a/docs/manual/images/value_desc_int_enums_t_0.png and b/docs/manual/images/value_desc_int_enums_t_0.png differ diff --git a/docs/manual/images/value_desc_string_t_0.png b/docs/manual/images/value_desc_string_t_0.png index 3dc4dd3a68..c3fb83eed5 100644 Binary files a/docs/manual/images/value_desc_string_t_0.png and b/docs/manual/images/value_desc_string_t_0.png differ diff --git a/docs/manual/images/value_desc_uint16_t_0.png b/docs/manual/images/value_desc_uint16_t_0.png index d3c859db96..42fa9753be 100644 Binary files a/docs/manual/images/value_desc_uint16_t_0.png and b/docs/manual/images/value_desc_uint16_t_0.png differ diff --git a/docs/manual/images/value_desc_uint32_t_0.png b/docs/manual/images/value_desc_uint32_t_0.png index 687f099a66..3eca64bea6 100644 Binary files a/docs/manual/images/value_desc_uint32_t_0.png and b/docs/manual/images/value_desc_uint32_t_0.png differ diff --git a/docs/manual/images/value_desc_uint64_t_0.png b/docs/manual/images/value_desc_uint64_t_0.png index ebc9c971a3..ec3a441d6a 100644 Binary files a/docs/manual/images/value_desc_uint64_t_0.png and b/docs/manual/images/value_desc_uint64_t_0.png differ diff --git a/docs/manual/images/value_desc_uint8_t_0.png b/docs/manual/images/value_desc_uint8_t_0.png index 61eadef94c..49368b915b 100644 Binary files a/docs/manual/images/value_desc_uint8_t_0.png and b/docs/manual/images/value_desc_uint8_t_0.png differ diff --git a/docs/manual/images/vgcanvas_t_0.png b/docs/manual/images/vgcanvas_t_0.png index 03c350fae9..6ea88fcc71 100644 Binary files a/docs/manual/images/vgcanvas_t_0.png and b/docs/manual/images/vgcanvas_t_0.png differ diff --git a/docs/manual/images/view_t_0.png b/docs/manual/images/view_t_0.png index 7baecc9060..39a425dd21 100644 Binary files a/docs/manual/images/view_t_0.png and b/docs/manual/images/view_t_0.png differ diff --git a/docs/manual/images/wheel_event_t_0.png b/docs/manual/images/wheel_event_t_0.png index d19dd3449e..306a645673 100644 Binary files a/docs/manual/images/wheel_event_t_0.png and b/docs/manual/images/wheel_event_t_0.png differ diff --git a/docs/manual/images/widget_factory_t_0.png b/docs/manual/images/widget_factory_t_0.png index 85ba84442f..4badc09273 100644 Binary files a/docs/manual/images/widget_factory_t_0.png and b/docs/manual/images/widget_factory_t_0.png differ diff --git a/docs/manual/images/widget_t_0.png b/docs/manual/images/widget_t_0.png index e9f08abe42..5883b24160 100644 Binary files a/docs/manual/images/widget_t_0.png and b/docs/manual/images/widget_t_0.png differ diff --git a/docs/manual/images/widget_t_1.png b/docs/manual/images/widget_t_1.png index 7f92c3d649..2d1c6a2b79 100644 Binary files a/docs/manual/images/widget_t_1.png and b/docs/manual/images/widget_t_1.png differ diff --git a/docs/manual/images/widget_t_2.png b/docs/manual/images/widget_t_2.png index 4711a5756a..c93eaf6cd4 100644 Binary files a/docs/manual/images/widget_t_2.png and b/docs/manual/images/widget_t_2.png differ diff --git a/docs/manual/images/window_base_t_0.png b/docs/manual/images/window_base_t_0.png index 82a745df7f..f4547f2ee5 100644 Binary files a/docs/manual/images/window_base_t_0.png and b/docs/manual/images/window_base_t_0.png differ diff --git a/docs/manual/images/window_base_t_1.png b/docs/manual/images/window_base_t_1.png index f12210f72c..34fcfdf4c0 100644 Binary files a/docs/manual/images/window_base_t_1.png and b/docs/manual/images/window_base_t_1.png differ diff --git a/docs/manual/images/window_event_t_0.png b/docs/manual/images/window_event_t_0.png index 8053d612df..7d5065c2f1 100644 Binary files a/docs/manual/images/window_event_t_0.png and b/docs/manual/images/window_event_t_0.png differ diff --git a/docs/manual/images/window_manager_default_t_0.png b/docs/manual/images/window_manager_default_t_0.png index 899d646253..e11a30a2a2 100644 Binary files a/docs/manual/images/window_manager_default_t_0.png and b/docs/manual/images/window_manager_default_t_0.png differ diff --git a/docs/manual/images/window_manager_simple_t_0.png b/docs/manual/images/window_manager_simple_t_0.png index e84b244f23..45f0ef9e49 100644 Binary files a/docs/manual/images/window_manager_simple_t_0.png and b/docs/manual/images/window_manager_simple_t_0.png differ diff --git a/docs/manual/images/window_manager_t_0.png b/docs/manual/images/window_manager_t_0.png index 0bbde4c50b..d6f99fd805 100644 Binary files a/docs/manual/images/window_manager_t_0.png and b/docs/manual/images/window_manager_t_0.png differ diff --git a/docs/manual/images/window_t_0.png b/docs/manual/images/window_t_0.png index cbd8a257ed..2814e22586 100644 Binary files a/docs/manual/images/window_t_0.png and b/docs/manual/images/window_t_0.png differ 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/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 6c02229a07..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,8 +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) ---------------------------------- @@ -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/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/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 @@ 本地化信息。提供字符串翻译数据管理,当前语言改变的事件通知等等。 - ---------------------------------- ### 函数

@@ -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 函数 +----------------------- + +* 函数功能: + +>

重新加载字符串资源。 + + + + +* 函数原型: + +``` +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..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创建多行编辑器控件。如: @@ -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/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/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..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,8 +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) ---------------------------------- ### 函数 @@ -59,7 +58,6 @@ - * 函数原型: ``` @@ -81,7 +79,6 @@ widget_t* overlay_cast (widget_t* widget); - * 函数原型: ``` 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/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/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/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/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/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..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创建图文混排控件。如: @@ -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/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/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..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,8 +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) ---------------------------------- @@ -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/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/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/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/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/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/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/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_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/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/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_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/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..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,8 +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) ---------------------------------- ### 函数 @@ -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/docs/porting_common.md b/docs/porting_common.md index c7223c666e..d5396e2dac 100644 --- a/docs/porting_common.md +++ b/docs/porting_common.md @@ -10,7 +10,7 @@ */ /** - * 如果需要支持预先解码的图片,请定义本宏。一般只在RAM极小时,才启用本宏。 + * 如果需要支持预先解码的位图字体,请定义本宏。一般只在RAM极小时,才启用本宏。 * #define WITH_BITMAP_FONT 1 */ @@ -21,11 +21,17 @@ */ /** - * 如果支持Truetype字体,请定义本宏 + * 如果用stb支持Truetype字体,请定义本宏 * * #define WITH_STB_FONT 1 */ +/** + * 如果用freetype支持Truetype字体,请定义本宏。 + * + * #define WITH_FT_FONT 1 + */ + /** * 如果支持从文件系统加载资源,请定义本宏 * @@ -37,15 +43,17 @@ * * #define WITH_UNICODE_BREAK 1 */ - - /** + +/** * 如果定义本宏,将图片解码成BGRA8888格式,否则解码成RGBA8888的格式。 + * 当硬件的2D加速需要BGRA格式时,请启用本宏。 * * #define WITH_BITMAP_BGRA 1 */ /** * 如果定义本宏,将不透明的PNG图片解码成BGR565格式,建议定义。 + * 另外和LCD的格式保存一致,可以大幅度提高性能。 * * #define WITH_BITMAP_BGR565 1 */ @@ -57,15 +65,21 @@ */ /** - * 如果支持极速模式,请定义本宏。极速模式不支持控件透明半透明效果,只有在CPU配置极低时启用。 + * 如果有标准的malloc/free/calloc等函数,请定义本宏 * - * #define USE_FAST_MODE 1 + * #define HAS_STD_MALLOC 1 */ /** - * 如果有标准的malloc/free/calloc等函数,请定义本宏 + * 如果有标准的fopen/fclose等函数,请定义本宏 * - * #define HAS_STD_MALLOC 1 + * #define HAS_STDIO 1 + */ + +/** + * 如果有标准的pthread等函数,请定义本宏 + * + * #define HAS_PTHREAD 1 */ /** @@ -73,8 +87,8 @@ * * #define HAS_FAST_MEMCPY 1 */ - - /** + +/** * 如果出现wcsxxx之类的函数没有定义时,请定义该宏 * * #define WITH_WCSXXX 1 @@ -93,17 +107,53 @@ */ /** - * 如果启用VGCANVAS,而且没有OpenGL硬件加速,请定义本宏 + * 在没有GPU时,如果启用agge作为nanovg的后端(较agg作为后端:小,快,图形质量稍差),请定义本宏。 * * #define WITH_NANOVG_AGGE 1 */ /** - * 如果启用VGCANVAS,请定义本宏 + * 在没有GPU时,如果启用agg作为nanovg的后端(较agge作为后端:大,慢,图形质量好),请定义本宏。 + * 注意:agg是以GPL协议开源。 + * + * #define WITH_NANOVG_AGG 1 + */ + +/** + * 如果启用鼠标指针,请定义本宏 * - * #define WITH_VGCANVAS 1 + * #define ENABLE_CURSOR 1 */ +/** + * 对于低端平台,如果不使用控件动画,请定义本宏。 + * + * #define WITHOUT_WIDGET_ANIMATORS 1 + */ + +/** + * 对于低端平台,如果不使用窗口动画,请定义本宏。 + * + * #define WITHOUT_WINDOW_ANIMATORS 1 + */ + +/** + * 对于低端平台,如果不使用对话框高亮策略,请定义本宏。 + * + * #define WITHOUT_DIALOG_HIGHLIGHTER 1 + */ + +/** + * 对于低端平台,如果不使用扩展控件,请定义本宏。 + * + * #define WITHOUT_EXT_WIDGETS 1 + */ + +/** + * 对于低端平台,如果内存不足以提供完整的FrameBuffer,请定义本宏启用局部FrameBuffer,可大幅度提高渲染性能。 + * + * #define FRAGMENT_FRAME_BUFFER_SIZE 32 * 1024 + */ ``` > 请参考:src/base/awtk\_config\_sample.h diff --git a/src/awtk_ext_widgets.h b/src/awtk_ext_widgets.h index 5c2473a564..0f6f5dc353 100644 --- a/src/awtk_ext_widgets.h +++ b/src/awtk_ext_widgets.h @@ -51,6 +51,7 @@ #include "combo_box_ex/combo_box_ex.h" #include "mledit/line_number.h" #include "mledit/mledit.h" +#include "features/draggable.h" #include "ext_widgets/ext_widgets.h" diff --git a/src/base/assets_manager.c b/src/base/assets_manager.c index cf4ae9ce7c..1fdf8ba1a3 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,103 @@ 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(am->custom_build_asset_dir_ctx, 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_OK; + } + + 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 RET_OK; +} + +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 +236,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 +257,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 +276,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 +696,15 @@ 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, void* ctx) { + return_value_if_fail(am != NULL, RET_BAD_PARAMS); + am->custom_build_asset_dir_ctx = ctx; + 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..dd4d3591b1 100644 --- a/src/base/assets_manager.h +++ b/src/base/assets_manager.h @@ -28,6 +28,10 @@ BEGIN_C_DECLS +typedef ret_t (*assets_manager_build_asset_dir_t)(void* ctx, char* path, uint32_t size, + const char* theme, const char* ratio, + const char* subpath); + /** * @class assets_manager_t * @annotation ["scriptable"] @@ -66,10 +70,12 @@ 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; + void* custom_build_asset_dir_ctx; + assets_manager_build_asset_dir_t custom_build_asset_dir; }; /** @@ -219,6 +225,22 @@ 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 回调函数。 + * @param {void*} ctx 回调函数的上下文。 + * + * @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, void* ctx); + /** * @method assets_manager_clear_cache * 清除指定类型的缓存。 diff --git a/src/base/awtk_config_sample.h b/src/base/awtk_config_sample.h index 682cdf6c11..7dea46b360 100644 --- a/src/base/awtk_config_sample.h +++ b/src/base/awtk_config_sample.h @@ -30,7 +30,7 @@ */ /** - * 如果需要支持预先解码的图片,请定义本宏。一般只在RAM极小时,才启用本宏。 + * 如果需要支持预先解码的位图字体,请定义本宏。一般只在RAM极小时,才启用本宏。 * #define WITH_BITMAP_FONT 1 */ @@ -66,12 +66,14 @@ /** * 如果定义本宏,将图片解码成BGRA8888格式,否则解码成RGBA8888的格式。 + * 当硬件的2D加速需要BGRA格式时,请启用本宏。 * * #define WITH_BITMAP_BGRA 1 */ /** * 如果定义本宏,将不透明的PNG图片解码成BGR565格式,建议定义。 + * 另外和LCD的格式保存一致,可以大幅度提高性能。 * * #define WITH_BITMAP_BGR565 1 */ @@ -82,12 +84,6 @@ * #define WITH_NULL_IM 1 */ -/** - * 如果支持极速模式,请定义本宏。极速模式不支持控件透明半透明效果,只有在CPU配置极低时启用。 - * - * #define USE_FAST_MODE 1 - */ - /** * 如果有标准的malloc/free/calloc等函数,请定义本宏 * @@ -144,24 +140,39 @@ */ /** - * 如果启用内存泄露检查(内存小余1M慎用),请定义本宏。 - * 可以重新定义MEM_MAX_RECORDS限制最大记录数量。 + * 如果启用鼠标指针,请定义本宏 * - * #define ENABLE_MEM_LEAK_CHECK 1 - * #define MEM_MAX_RECORDS 4 * 1024 + * #define ENABLE_CURSOR 1 */ /** - * 如果启用鼠标指针,请定义本宏 + * 对于低端平台,如果不使用控件动画,请定义本宏。 * - * #define ENABLE_CURSOR 1 + * #define WITHOUT_WIDGET_ANIMATORS 1 + */ + +/** + * 对于低端平台,如果不使用窗口动画,请定义本宏。 + * + * #define WITHOUT_WINDOW_ANIMATORS 1 + */ + +/** + * 对于低端平台,如果不使用对话框高亮策略,请定义本宏。 + * + * #define WITHOUT_DIALOG_HIGHLIGHTER 1 + */ + +/** + * 对于低端平台,如果不使用扩展控件,请定义本宏。 + * + * #define WITHOUT_EXT_WIDGETS 1 */ /** - * 如果启用控件缓存,请定义本宏 - * 缓存内存占用约:200 * WITH_WIDGET_POOL + * 对于低端平台,如果内存不足以提供完整的FrameBuffer,请定义本宏启用局部FrameBuffer,可大幅度提高渲染性能。 * - * #define WITH_WIDGET_POOL 1000 + * #define FRAGMENT_FRAME_BUFFER_SIZE 32 * 1024 */ #endif /*AWTK_CONFIG_H*/ 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/font.h b/src/base/font.h index 296630b542..088b7b7819 100644 --- a/src/base/font.h +++ b/src/base/font.h @@ -156,6 +156,7 @@ struct _font_t { font_get_baseline_t get_baseline; font_get_glyph_t get_glyph; font_destroy_t destroy; + const char* desc; }; /** 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/input_method.h b/src/base/input_method.h index f1c72f33dc..7e193cfe91 100644 --- a/src/base/input_method.h +++ b/src/base/input_method.h @@ -212,6 +212,13 @@ struct _input_method_t { */ int32_t win_delta_y; + /** + * @property {int32_t} win_old_y + * @annotation ["private"] + * 窗口原来的位置。 + */ + int32_t win_old_y; + /** * @property {bool_t} action_button_enable * @annotation ["readable"] diff --git a/src/base/lcd.c b/src/base/lcd.c index 5ce1d80ea5..17d47ef0db 100755 --- a/src/base/lcd.c +++ b/src/base/lcd.c @@ -266,9 +266,13 @@ ret_t lcd_destroy(lcd_t* lcd) { } vgcanvas_t* lcd_get_vgcanvas(lcd_t* lcd) { - return_value_if_fail(lcd != NULL && lcd->get_vgcanvas != NULL, NULL); + return_value_if_fail(lcd != NULL, NULL); - return lcd->get_vgcanvas(lcd); + if (lcd->get_vgcanvas != NULL) { + return lcd->get_vgcanvas(lcd); + } + + return NULL; } ret_t lcd_take_snapshot(lcd_t* lcd, bitmap_t* img, bool_t auto_rotate) { diff --git a/src/base/line_break.c b/src/base/line_break.c index 6a083cbabb..94bd1cd112 100644 --- a/src/base/line_break.c +++ b/src/base/line_break.c @@ -1,4 +1,4 @@ -/** +/** * File: line_break.c * Author: AWTK Develop Team * Brief: line break and work break algorithm. @@ -23,8 +23,8 @@ #ifdef WITH_UNICODE_BREAK -#include "linebreak.h" -#include "wordbreak.h" +#include "libunibreak/linebreak.h" +#include "libunibreak/wordbreak.h" break_type_t line_break_check(wchar_t c1, wchar_t c2) { int ret = 0; diff --git a/src/base/pixel.h b/src/base/pixel.h index deeaac8bab..b52c865b29 100644 --- a/src/base/pixel.h +++ b/src/base/pixel.h @@ -287,7 +287,7 @@ static inline void pixel_argb8888_blend_rgba_premulti(void* pixel, rgba_t rgba) p[3] = ((p[3] * a) >> 8) + rgba.b; } -#define color_to_mono(c) (((c).rgba.r) & 0x01) +#define color_to_mono(c) (((c).rgba.r)) #define color_from_mono(p) color_init(p, 0, 0, 0xff) #pragma pack(pop) diff --git a/src/base/types_def.h b/src/base/types_def.h index ca27f549c5..a399aa9608 100644 --- a/src/base/types_def.h +++ b/src/base/types_def.h @@ -320,10 +320,7 @@ typedef struct _system_info_t system_info_t; #endif /*WITH_STB_FONT or WITH_FT_FONT*/ #if defined(WITH_LCD_MONO) -#undef WITH_FS_RES #undef WITH_VGCANVAS -#undef WITH_STB_IMAGE -#undef WITH_TRUETYPE_FONT #undef WITH_WINDOW_ANIMATORS #define WITH_BITMAP_FONT 1 #endif /*WITH_LCD_MONO*/ diff --git a/src/base/widget.c b/src/base/widget.c index f9443cce55..50de5c294a 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); @@ -675,6 +675,10 @@ ret_t widget_add_child(widget_t* widget, widget_t* child) { } } + if (child->vt->on_attach_parent) { + child->vt->on_attach_parent(child, widget); + } + ENSURE(darray_push(widget->children, child) == RET_OK); if (!(child->initializing) && widget_get_window(child) != NULL) { @@ -712,6 +716,10 @@ ret_t widget_remove_child(widget_t* widget, widget_t* child) { } } + if (child->vt->on_detach_parent) { + child->vt->on_detach_parent(child, widget); + } + child->parent = NULL; return darray_remove(widget->children, child); } @@ -932,13 +940,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 +966,20 @@ 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, uint32_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_ctx(widget_t* widget, void* ctx) { + return_value_if_fail(widget != NULL, RET_BAD_PARAMS); + return_value_if_fail(widget->emitter != NULL, RET_BAD_PARAMS); + + return emitter_off_by_ctx(widget->emitter, ctx); +} + 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); @@ -3159,7 +3186,8 @@ canvas_t* widget_get_canvas(widget_t* widget) { } bool_t widget_is_system_bar(widget_t* widget) { - return tk_str_eq(widget->vt->type, WIDGET_TYPE_SYSTEM_BAR); + return tk_str_eq(widget->vt->type, WIDGET_TYPE_SYSTEM_BAR) || + tk_str_eq(widget->vt->type, WIDGET_TYPE_SYSTEM_BAR_BOTTOM); } bool_t widget_is_normal_window(widget_t* widget) { @@ -3177,7 +3205,7 @@ bool_t widget_is_popup(widget_t* widget) { ret_t widget_reset_canvas(widget_t* widget) { widget_t* win = widget_get_window(widget); return_value_if_fail(win != NULL, RET_BAD_PARAMS); + canvas_t* c = widget_get_canvas(win); - return object_exec(OBJECT(widget_get_prop_pointer(win, WIDGET_PROP_NATIVE_WINDOW)), - "reset_canvas", ""); + return vgcanvas_reset(canvas_get_vgcanvas(c)); } diff --git a/src/base/widget.h b/src/base/widget.h index 58ebef854f..19b0391fa0 100644 --- a/src/base/widget.h +++ b/src/base/widget.h @@ -66,6 +66,8 @@ typedef ret_t (*widget_on_pointer_move_t)(widget_t* widget, pointer_event_t* e); typedef ret_t (*widget_on_pointer_up_t)(widget_t* widget, pointer_event_t* e); typedef ret_t (*widget_on_add_child_t)(widget_t* widget, widget_t* child); typedef ret_t (*widget_on_remove_child_t)(widget_t* widget, widget_t* child); +typedef ret_t (*widget_on_attach_parent)(widget_t* widget, widget_t* parent); +typedef ret_t (*widget_on_detach_parent)(widget_t* widget, widget_t* parent); typedef ret_t (*widget_on_layout_children_t)(widget_t* widget); typedef ret_t (*widget_get_prop_t)(widget_t* widget, const char* name, value_t* v); typedef ret_t (*widget_get_prop_default_value_t)(widget_t* widget, const char* name, value_t* v); @@ -157,6 +159,8 @@ struct _widget_vtable_t { widget_invalidate_t invalidate; widget_on_add_child_t on_add_child; widget_on_remove_child_t on_remove_child; + widget_on_attach_parent on_attach_parent; + widget_on_detach_parent on_detach_parent; widget_on_event_t on_event; widget_on_event_before_children_t on_event_before_children; widget_find_target_t find_target; @@ -1143,6 +1147,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 +1193,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 +1203,26 @@ 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_ctx + * 注销指定ctx的事件处理函数。 + * @param {widget_t*} widget 控件对象。 + * @param {void*} ctx 事件处理函数上下文。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t widget_off_by_ctx(widget_t* widget, 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/src/base/widget_consts.h b/src/base/widget_consts.h index 9569a06557..155b250790 100644 --- a/src/base/widget_consts.h +++ b/src/base/widget_consts.h @@ -786,6 +786,12 @@ BEGIN_C_DECLS */ #define WIDGET_TYPE_SYSTEM_BAR "system_bar" +/** + * @const WIDGET_TYPE_SYSTEM_BAR_BOTTOM + * system bar window ato bottom + */ +#define WIDGET_TYPE_SYSTEM_BAR_BOTTOM "system_bar_bottom" + /** * @const WIDGET_TYPE_SPRITE * 精灵窗口。 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/ext_widgets.c b/src/ext_widgets/ext_widgets.c index f39a314cfd..55aa23e8f0 100644 --- a/src/ext_widgets/ext_widgets.c +++ b/src/ext_widgets/ext_widgets.c @@ -23,6 +23,7 @@ #include "switch/switch.h" #include "guage/guage.h" #include "mledit/mledit.h" +#include "features/draggable.h" #include "mledit/line_number.h" #include "guage/guage_pointer.h" #include "gif_image/gif_image.h" @@ -99,6 +100,7 @@ ret_t tk_ext_widgets_init() { widget_factory_register(f, WIDGET_TYPE_LINE_NUMBER, line_number_create); widget_factory_register(f, WIDGET_TYPE_HSCROLL_LABEL, hscroll_label_create); widget_factory_register(f, WIDGET_TYPE_COMBO_BOX_EX, combo_box_ex_create); + widget_factory_register(f, WIDGET_TYPE_DRAGGABLE, draggable_create); children_layouter_register_ext_builtins(); diff --git a/src/ext_widgets/features/README.md b/src/ext_widgets/features/README.md new file mode 100644 index 0000000000..4448b0fae1 --- /dev/null +++ b/src/ext_widgets/features/README.md @@ -0,0 +1,4 @@ +# 特性类控件 + +特性类控件一般是给所在的容器控件加上指定的特性。比如可拖动、可点击、可选择、可调整大小和上下文帮助等。 + diff --git a/src/ext_widgets/features/draggable.c b/src/ext_widgets/features/draggable.c new file mode 100644 index 0000000000..9438b06a79 --- /dev/null +++ b/src/ext_widgets/features/draggable.c @@ -0,0 +1,312 @@ +/** + * File: draggable.c + * Author: AWTK Develop Team + * Brief: make parent widget or window draggable + * + * Copyright (c) 2019 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-25 Li XianJing created + * + */ + +#include "tkc/mem.h" +#include "tkc/utils.h" +#include "draggable.h" + +ret_t draggable_set_top(widget_t* widget, int32_t top) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL, RET_BAD_PARAMS); + + draggable->top = top; + + return RET_OK; +} + +ret_t draggable_set_bottom(widget_t* widget, int32_t bottom) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL, RET_BAD_PARAMS); + + draggable->bottom = bottom; + + return RET_OK; +} + +ret_t draggable_set_left(widget_t* widget, int32_t left) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL, RET_BAD_PARAMS); + + draggable->left = left; + + return RET_OK; +} + +ret_t draggable_set_right(widget_t* widget, int32_t right) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL, RET_BAD_PARAMS); + + draggable->right = right; + + return RET_OK; +} + +ret_t draggable_set_vertical_only(widget_t* widget, bool_t vertical_only) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL, RET_BAD_PARAMS); + + draggable->vertical_only = vertical_only; + + return RET_OK; +} + +ret_t draggable_set_horizontal_only(widget_t* widget, bool_t horizontal_only) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL, RET_BAD_PARAMS); + + draggable->horizontal_only = horizontal_only; + + return RET_OK; +} + +ret_t draggable_set_drag_window(widget_t* widget, bool_t drag_window) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL, RET_BAD_PARAMS); + + draggable->drag_window = drag_window; + + return RET_OK; +} + +static ret_t draggable_get_prop(widget_t* widget, const char* name, value_t* v) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL && name != NULL && v != NULL, RET_BAD_PARAMS); + + if (tk_str_eq(DRAGGABLE_PROP_TOP, name)) { + value_set_int32(v, draggable->top); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_BOTTOM, name)) { + value_set_int32(v, draggable->bottom); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_LEFT, name)) { + value_set_int32(v, draggable->left); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_RIGHT, name)) { + value_set_int32(v, draggable->right); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_VERTICAL_ONLY, name)) { + value_set_bool(v, draggable->vertical_only); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_HORIZONTAL_ONLY, name)) { + value_set_bool(v, draggable->horizontal_only); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_DRAG_WINDOW, name)) { + value_set_bool(v, draggable->drag_window); + return RET_OK; + } + + return RET_NOT_FOUND; +} + +static ret_t draggable_set_prop(widget_t* widget, const char* name, const value_t* v) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(widget != NULL && name != NULL && v != NULL, RET_BAD_PARAMS); + + if (tk_str_eq(DRAGGABLE_PROP_TOP, name)) { + draggable_set_top(widget, value_int32(v)); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_BOTTOM, name)) { + draggable_set_bottom(widget, value_int32(v)); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_LEFT, name)) { + draggable_set_left(widget, value_int32(v)); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_RIGHT, name)) { + draggable_set_right(widget, value_int32(v)); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_VERTICAL_ONLY, name)) { + draggable_set_vertical_only(widget, value_bool(v)); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_HORIZONTAL_ONLY, name)) { + draggable_set_horizontal_only(widget, value_bool(v)); + return RET_OK; + } else if (tk_str_eq(DRAGGABLE_PROP_DRAG_WINDOW, name)) { + draggable_set_drag_window(widget, value_bool(v)); + return RET_OK; + } + + return RET_NOT_FOUND; +} + +static ret_t draggable_on_destroy(widget_t* widget) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(widget != NULL && draggable != NULL, RET_BAD_PARAMS); + + (void)draggable; + + return RET_OK; +} + +static ret_t draggable_on_paint_self(widget_t* widget, canvas_t* c) { + return RET_OK; +} + +static ret_t draggable_on_parent_pointer_down(void* ctx, event_t* e) { + widget_t* widget = WIDGET(ctx); + pointer_event_t* evt = (pointer_event_t*)e; + draggable_t* draggable = DRAGGABLE(widget); + widget_t* target = draggable->drag_window ? widget_get_window(widget) : widget->parent; + + draggable->down.x = evt->x; + draggable->down.y = evt->y; + draggable->saved_position.x = target->x; + draggable->saved_position.y = target->y; + + widget_grab(widget->parent->parent, widget->parent); + + return RET_OK; +} + +static ret_t draggable_move_target(widget_t* widget, xy_t x, xy_t y) { + draggable_t* draggable = DRAGGABLE(widget); + widget_t* target = draggable->drag_window ? widget_get_window(widget) : widget->parent; + + xy_t min_x = draggable->left != DRAGGABLE_UNSPECIFIED_NUM ? draggable->left : 0; + xy_t min_y = draggable->top != DRAGGABLE_UNSPECIFIED_NUM ? draggable->top : 0; + xy_t max_x = + (draggable->right != DRAGGABLE_UNSPECIFIED_NUM ? draggable->right : target->parent->w) - + target->w; + xy_t max_y = + (draggable->bottom != DRAGGABLE_UNSPECIFIED_NUM ? draggable->bottom : target->parent->h) - + target->h; + + x = tk_clampi(x, min_x, max_x); + y = tk_clampi(y, min_y, max_y); + + widget_move(target, x, y); + + return RET_OK; +} + +static ret_t draggable_on_parent_pointer_move(void* ctx, event_t* e) { + xy_t x = 0; + xy_t y = 0; + widget_t* widget = WIDGET(ctx); + pointer_event_t* evt = (pointer_event_t*)e; + draggable_t* draggable = DRAGGABLE(widget); + xy_t dx = evt->x - draggable->down.x; + xy_t dy = evt->y - draggable->down.y; + + x = draggable->saved_position.x + (draggable->vertical_only ? 0 : dx); + y = draggable->saved_position.y + (draggable->horizontal_only ? 0 : dy); + + if (!evt->pressed) { + return RET_OK; + } + + draggable_move_target(widget, x, y); + + return RET_OK; +} + +static ret_t draggable_on_parent_pointer_up(void* ctx, event_t* e) { + widget_t* widget = WIDGET(ctx); + draggable_t* draggable = DRAGGABLE(widget); + widget_t* target = draggable->drag_window ? widget_get_window(widget) : widget->parent; + int32_t dx = target->x - draggable->saved_position.x; + int32_t dy = target->y - draggable->saved_position.y; + + if (tk_abs(dx) > 5 || tk_abs(dy) > 5) { + pointer_event_t abort; + pointer_event_init(&abort, EVT_POINTER_DOWN_ABORT, NULL, 0, 0); + widget_dispatch(widget->parent, (event_t*)&abort); + } + + widget_ungrab(widget->parent->parent, widget->parent); + + return RET_OK; +} + +static ret_t draggable_on_attach_parent(widget_t* widget, widget_t* parent) { + draggable_t* draggable = DRAGGABLE(widget); + + widget_on(parent, EVT_POINTER_DOWN_BEFORE_CHILDREN, draggable_on_parent_pointer_down, draggable); + widget_on(parent, EVT_POINTER_MOVE_BEFORE_CHILDREN, draggable_on_parent_pointer_move, draggable); + widget_on(parent, EVT_POINTER_UP_BEFORE_CHILDREN, draggable_on_parent_pointer_up, draggable); + + return RET_OK; +} + +static ret_t draggable_on_detach_parent(widget_t* widget, widget_t* parent) { + draggable_t* draggable = DRAGGABLE(widget); + + widget_off_by_ctx(parent, widget); + + return RET_OK; +} + +static ret_t draggable_on_event(widget_t* widget, event_t* e) { + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(widget != NULL && draggable != NULL, RET_BAD_PARAMS); + + (void)draggable; + + return RET_OK; +} + +const char* s_draggable_properties[] = { + DRAGGABLE_PROP_TOP, DRAGGABLE_PROP_BOTTOM, + DRAGGABLE_PROP_LEFT, DRAGGABLE_PROP_RIGHT, + DRAGGABLE_PROP_VERTICAL_ONLY, DRAGGABLE_PROP_HORIZONTAL_ONLY, + DRAGGABLE_PROP_DRAG_WINDOW, NULL}; + +TK_DECL_VTABLE(draggable) = {.size = sizeof(draggable_t), + .type = WIDGET_TYPE_DRAGGABLE, + .clone_properties = s_draggable_properties, + .persistent_properties = s_draggable_properties, + .parent = TK_PARENT_VTABLE(widget), + .create = draggable_create, + .on_paint_self = draggable_on_paint_self, + .set_prop = draggable_set_prop, + .get_prop = draggable_get_prop, + .on_event = draggable_on_event, + .on_attach_parent = draggable_on_attach_parent, + .on_detach_parent = draggable_on_detach_parent, + .on_destroy = draggable_on_destroy}; + +widget_t* draggable_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h) { + widget_t* widget = widget_create(parent, TK_REF_VTABLE(draggable), x, y, w, h); + draggable_t* draggable = DRAGGABLE(widget); + return_value_if_fail(draggable != NULL, NULL); + + draggable->top = DRAGGABLE_UNSPECIFIED_NUM; + draggable->bottom = DRAGGABLE_UNSPECIFIED_NUM; + draggable->left = DRAGGABLE_UNSPECIFIED_NUM; + draggable->right = DRAGGABLE_UNSPECIFIED_NUM; + draggable->vertical_only = FALSE; + draggable->horizontal_only = FALSE; + draggable->drag_window = FALSE; + widget_set_sensitive(widget, FALSE); + + return widget; +} + +widget_t* draggable_cast(widget_t* widget) { + return_value_if_fail(WIDGET_IS_INSTANCE_OF(widget, draggable), NULL); + + return widget; +} + +#include "base/widget_factory.h" + +ret_t draggable_register(void) { + return widget_factory_register(widget_factory(), WIDGET_TYPE_DRAGGABLE, draggable_create); +} diff --git a/src/ext_widgets/features/draggable.h b/src/ext_widgets/features/draggable.h new file mode 100644 index 0000000000..aa3155878e --- /dev/null +++ b/src/ext_widgets/features/draggable.h @@ -0,0 +1,244 @@ +/** + * File: draggable.h + * Author: AWTK Develop Team + * Brief: make parent widget or window draggable + * + * Copyright (c) 2019 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-25 Li XianJing created + * + */ + +#ifndef TK_DRAGGABLE_H +#define TK_DRAGGABLE_H + +#include "base/widget.h" + +BEGIN_C_DECLS +/** + * @class draggable_t + * @parent widget_t + * @annotation ["scriptable","design","widget"] + * + * 将draggable放入目标控件,即可让目标控件或当前窗口可以被拖动。 + * + * draggable\_t是[widget\_t](widget_t.md)的子类控件,widget\_t的函数均适用于draggable\_t控件。 + * + * 在xml中使用"draggable"标签创建draggable控件。如: + * + * ```xml + * + * ``` + * + * 拖动对话框标题时移动对话框: + * + * ```xml + * + * + * + * ``` + * + * > 更多用法请参考: + * [draggable.xml](https://github.com/zlgopen/awtk/blob/master/demos/assets/default/raw/ui/draggable.xml) + * + * 在c代码中使用函数draggable\_create创建按钮控件。如: + * + * ```c + * widget_t* draggable = draggable_create(target, 0, 0, 0, 0); + * ``` + * + * > draggable本身不可见,故无需style。 + * + */ +typedef struct _draggable_t { + widget_t widget; + + /** + * @property {int32_t} top + * @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"] + * 拖动范围的顶部限制。缺省为父控件的顶部。 + */ + int32_t top; + + /** + * @property {int32_t} bottom + * @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"] + * 拖动范围的底部限制。缺省为父控件的底部。 + */ + int32_t bottom; + + /** + * @property {int32_t} left + * @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"] + * 拖动范围的左边限制。缺省为父控件的左边。 + */ + int32_t left; + + /** + * @property {int32_t} right + * @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"] + * 拖动范围的右边限制。缺省为父控件的右边边。 + */ + int32_t right; + + /** + * @property {bool_t} vertical_only + * @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"] + * 只允许垂直拖动。 + */ + bool_t vertical_only; + + /** + * @property {bool_t} horizontal_only + * @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"] + * 只允许水平拖动。 + */ + bool_t horizontal_only; + + /** + * @property {bool_t} drag_window + * @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"] + * 拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。 + */ + bool_t drag_window; + + /*private*/ + point_t down; + point_t saved_position; +} draggable_t; + +/** + * @method draggable_create + * @annotation ["constructor", "scriptable"] + * 创建draggable对象 + * @param {widget_t*} parent 父控件 + * @param {xy_t} x x坐标 + * @param {xy_t} y y坐标 + * @param {wh_t} w 宽度 + * @param {wh_t} h 高度 + * + * @return {widget_t*} 对象。 + */ +widget_t* draggable_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); + +/** + * @method draggable_cast + * 转换为draggable对象(供脚本语言使用)。 + * @annotation ["cast", "scriptable"] + * @param {widget_t*} widget draggable对象。 + * + * @return {widget_t*} draggable对象。 + */ +widget_t* draggable_cast(widget_t* widget); + +/** + * @method draggable_set_top + * 设置top。 + * @annotation ["scriptable"] + * @param {widget_t*} widget widget对象。 + * @param {uint32_t} top 拖动范围的顶部限制。缺省为父控件的顶部。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t draggable_set_top(widget_t* widget, int32_t top); + +/** + * @method draggable_set_bottom + * 设置bottom。 + * @annotation ["scriptable"] + * @param {widget_t*} widget widget对象。 + * @param {uint32_t} bottom 拖动范围的底部限制。缺省为父控件的底部。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t draggable_set_bottom(widget_t* widget, int32_t bottom); + +/** + * @method draggable_set_left + * 设置left。 + * @annotation ["scriptable"] + * @param {widget_t*} widget widget对象。 + * @param {uint32_t} left 拖动范围的左边限制。缺省为父控件的左边。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t draggable_set_left(widget_t* widget, int32_t left); + +/** + * @method draggable_set_right + * 设置right。 + * @annotation ["scriptable"] + * @param {widget_t*} widget widget对象。 + * @param {uint32_t} right 拖动范围的右边限制。缺省为父控件的右边边。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t draggable_set_right(widget_t* widget, int32_t right); + +/** + * @method draggable_set_vertical_only + * 设置vertical_only。 + * @annotation ["scriptable"] + * @param {widget_t*} widget widget对象。 + * @param {uint32_t} vertical_only 只允许垂直拖动。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t draggable_set_vertical_only(widget_t* widget, bool_t vertical_only); + +/** + * @method draggable_set_horizontal_only + * 设置horizontal_only。 + * @annotation ["scriptable"] + * @param {widget_t*} widget widget对象。 + * @param {uint32_t} horizontal_only 只允许水平拖动。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t draggable_set_horizontal_only(widget_t* widget, bool_t horizontal_only); + +/** + * @method draggable_set_drag_window + * 设置drag_window。 + * @annotation ["scriptable"] + * @param {widget_t*} widget widget对象。 + * @param {uint32_t} drag_window + * 拖动窗口而不是父控件。比如放在对话框的titlebar上,拖动titlebar其实是希望拖动对话框。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t draggable_set_drag_window(widget_t* widget, bool_t drag_window); + +#define DRAGGABLE_PROP_TOP "top" +#define DRAGGABLE_PROP_BOTTOM "bottom" +#define DRAGGABLE_PROP_LEFT "left" +#define DRAGGABLE_PROP_RIGHT "right" +#define DRAGGABLE_PROP_DRAG_WINDOW "drag_window" +#define DRAGGABLE_PROP_VERTICAL_ONLY "vertical_only" +#define DRAGGABLE_PROP_HORIZONTAL_ONLY "horizontal_only" + +#define WIDGET_TYPE_DRAGGABLE "draggable" +#define DRAGGABLE_UNSPECIFIED_NUM 0x1fffffff + +#define DRAGGABLE(widget) ((draggable_t*)(draggable_cast(WIDGET(widget)))) + +ret_t draggable_register(void); + +/*public for subclass and runtime type check*/ +TK_EXTERN_VTABLE(draggable); + +END_C_DECLS + +#endif /*TK_DRAGGABLE_H*/ diff --git a/src/ext_widgets/gif_image/gif_image.h b/src/ext_widgets/gif_image/gif_image.h index 676f814394..85cfc166fb 100644 --- a/src/ext_widgets/gif_image/gif_image.h +++ b/src/ext_widgets/gif_image/gif_image.h @@ -45,7 +45,8 @@ 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 +73,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..a098ce47ba 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,8 @@ 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.c b/src/ext_widgets/image_animation/image_animation.c index 564e1a253d..a0df07274a 100644 --- a/src/ext_widgets/image_animation/image_animation.c +++ b/src/ext_widgets/image_animation/image_animation.c @@ -340,19 +340,20 @@ static ret_t image_animation_restart(image_animation_t* image_animation) { return RET_REPEAT; } -static ret_t image_animation_next(image_animation_t* image_animation) { - ret_t ret = RET_REMOVE; +ret_t image_animation_next(widget_t* widget) { + ret_t ret = RET_DONE; + image_animation_t* image_animation = IMAGE_ANIMATION(widget); return_value_if_fail(image_animation != NULL, RET_BAD_PARAMS); if (image_animation->sequence) { if (image_animation->sequence[image_animation->index + 1]) { image_animation->index++; - ret = RET_REPEAT; + ret = RET_OK; } } else { if (image_animation->index < image_animation->end_index) { image_animation->index++; - ret = RET_REPEAT; + ret = RET_OK; } } @@ -367,9 +368,9 @@ ret_t image_animation_update(widget_t* widget) { if (image_animation->index < 0) { ret = image_animation_restart(image_animation); } else { - ret = image_animation_next(image_animation); + ret = image_animation_next(widget); - if (ret == RET_REMOVE) { + if (ret == RET_DONE) { if (image_animation->loop) { event_t e = event_init(EVT_ANIM_ONCE, widget); widget_dispatch(widget, &e); @@ -381,6 +382,8 @@ ret_t image_animation_update(widget_t* widget) { widget_dispatch(widget, &e); } + } else { + ret = RET_REPEAT; } } diff --git a/src/ext_widgets/image_animation/image_animation.h b/src/ext_widgets/image_animation/image_animation.h index 0e84bb95a7..0782880de5 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创建图片动画控件。如: * @@ -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对象。 * @@ -264,6 +264,16 @@ ret_t image_animation_stop(widget_t* widget); */ ret_t image_animation_pause(widget_t* widget); +/** + * @method image_animation_next + * 手动切换到下一张图片。 + * @annotation ["scriptable"] + * @param {widget_t*} widget image_animation对象。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t image_animation_next(widget_t* widget); + /** * @method image_animation_set_format * 设置生成图片名的格式。 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.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; 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.c b/src/ext_widgets/slide_view/slide_indicator.c index e0c1e1faf3..0fd35f157c 100644 --- a/src/ext_widgets/slide_view/slide_indicator.c +++ b/src/ext_widgets/slide_view/slide_indicator.c @@ -512,8 +512,9 @@ static ret_t slide_indicator_set_indicated_widget(widget_t* widget, widget_t* ta if (widget_get_prop(target, WIDGET_PROP_MAX, &v) != RET_OK) { value_set_uint32(&v, widget_count_children(target)); + slide_indicator->chilren_indicated = TRUE; } - slide_indicator_set_max(widget, value_uint32(&v)); + slide_indicator->max = value_uint32(&v); if (widget_get_prop(target, WIDGET_PROP_ACTIVE, &v) != RET_OK) { widget_get_prop(target, WIDGET_PROP_VALUE, &v); @@ -555,6 +556,17 @@ static ret_t slide_indicator_init_if_not_inited(widget_t* widget) { return RET_OK; } +ret_t slide_indicator_on_paint_begin(widget_t* widget, canvas_t* c) { + slide_indicator_t* slide_indicator = SLIDE_INDICATOR(widget); + return_value_if_fail(widget != NULL && slide_indicator != NULL, RET_BAD_PARAMS); + + if (slide_indicator->chilren_indicated) { + slide_indicator->max = widget_count_children(slide_indicator->indicated_widget); + } + + return RET_OK; +} + static ret_t slide_indicator_on_paint_self(widget_t* widget, canvas_t* c) { slide_indicator_t* slide_indicator = SLIDE_INDICATOR(widget); return_value_if_fail(widget != NULL && slide_indicator != NULL, RET_BAD_PARAMS); @@ -604,6 +616,7 @@ TK_DECL_VTABLE(slide_indicator_linear) = {.size = sizeof(slide_indicator_t), .get_prop = slide_indicator_get_prop, .set_prop = slide_indicator_set_prop, .on_layout_children = slide_indicator_on_layout_children, + .on_paint_begin = slide_indicator_on_paint_begin, .on_paint_self = slide_indicator_on_paint_self, .on_destroy = slide_indicator_on_destroy}; @@ -616,6 +629,7 @@ TK_DECL_VTABLE(slide_indicator_arc) = {.size = sizeof(slide_indicator_t), .get_prop = slide_indicator_get_prop, .set_prop = slide_indicator_set_prop, .on_layout_children = slide_indicator_on_layout_children, + .on_paint_begin = slide_indicator_on_paint_begin, .on_paint_self = slide_indicator_arc_on_paint_self, .on_destroy = slide_indicator_on_destroy}; @@ -638,6 +652,7 @@ widget_t* slide_indicator_create_internal(widget_t* parent, xy_t x, xy_t y, wh_t slide_indicator->wa_opactiy = NULL; slide_indicator->anchor_x_fixed = FALSE; slide_indicator->anchor_y_fixed = FALSE; + slide_indicator->chilren_indicated = FALSE; slide_indicator->indicated_widget = NULL; slide_indicator->indicated_target = tk_str_copy(slide_indicator->indicated_target, WIDGET_TYPE_SLIDE_VIEW); @@ -684,6 +699,7 @@ ret_t slide_indicator_set_max(widget_t* widget, uint32_t max) { return_value_if_fail(slide_indicator != NULL, RET_BAD_PARAMS); slide_indicator->max = max; + slide_indicator->chilren_indicated = FALSE; return widget_invalidate(widget, NULL); } diff --git a/src/ext_widgets/slide_view/slide_indicator.h b/src/ext_widgets/slide_view/slide_indicator.h index 55f4407384..ef9013950a 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 { @@ -171,9 +171,10 @@ typedef struct _slide_indicator_t { char* indicated_target; /*private*/ - bool_t inited; - bool_t anchor_x_fixed; - bool_t anchor_y_fixed; + uint8_t inited : 1; + uint8_t anchor_x_fixed : 1; + uint8_t anchor_y_fixed : 1; + uint8_t chilren_indicated : 1; widget_animator_t* wa_opactiy; widget_t* indicated_widget; } 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.c b/src/ext_widgets/svg_image/svg_image.c index 9b1eb1d782..d1763b188f 100644 --- a/src/ext_widgets/svg_image/svg_image.c +++ b/src/ext_widgets/svg_image/svg_image.c @@ -31,12 +31,8 @@ static ret_t svg_image_load_bsvg(widget_t* widget) { image_base_t* image_base = IMAGE_BASE(widget); return_value_if_fail(svg_image != NULL && image_base != NULL, RET_BAD_PARAMS); - if (svg_image->bsvg_asset != NULL && tk_str_eq(svg_image->bsvg_asset->name, image_base->image)) { - return RET_OK; - } - if (svg_image->bsvg_asset != NULL) { - widget_unload_asset(widget, svg_image->bsvg_asset); + return RET_OK; } svg_image->bsvg_asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, image_base->image); @@ -66,12 +62,13 @@ 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); - x = (widget->w - bsvg.header->w) / 2; - y = (widget->h - bsvg.header->h) / 2; + x = (widget->w - (int32_t)bsvg.header->w) / 2; + y = (widget->h - (int32_t)bsvg.header->h) / 2; vgcanvas_save(vg); @@ -90,6 +87,17 @@ static ret_t svg_image_on_paint_self(widget_t* widget, canvas_t* c) { return RET_OK; } +static ret_t svg_image_set_prop(widget_t* widget, const char* name, const value_t* v) { + return_value_if_fail(widget != NULL && name != NULL && v != NULL, RET_BAD_PARAMS); + + if (tk_str_eq(name, WIDGET_PROP_IMAGE)) { + svg_image_set_image(widget, value_str(v)); + return RET_OK; + } else { + return image_base_set_prop(widget, name, v); + } +} + static ret_t svg_image_on_destroy(widget_t* widget) { svg_image_t* svg_image = SVG_IMAGE(widget); return_value_if_fail(svg_image != NULL, RET_BAD_PARAMS); @@ -102,6 +110,19 @@ static ret_t svg_image_on_destroy(widget_t* widget) { return image_base_on_destroy(widget); } +ret_t svg_image_set_image(widget_t* widget, const char* name) { + svg_image_t* svg_image = SVG_IMAGE(widget); + return_value_if_fail(svg_image != NULL && name != NULL, RET_BAD_PARAMS); + + svg_image->image_base.image = tk_str_copy(svg_image->image_base.image, name); + if (svg_image->bsvg_asset != NULL) { + widget_unload_asset(widget, svg_image->bsvg_asset); + svg_image->bsvg_asset = NULL; + } + + return widget_invalidate(widget, NULL); +} + static const char* s_svg_image_clone_properties[] = { WIDGET_PROP_IMAGE, WIDGET_PROP_SCALE_X, WIDGET_PROP_SCALE_Y, WIDGET_PROP_ANCHOR_X, WIDGET_PROP_ANCHOR_Y, WIDGET_PROP_ROTATION, @@ -116,7 +137,7 @@ TK_DECL_VTABLE(svg_image) = {.size = sizeof(svg_image_t), .on_event = image_base_on_event, .on_paint_self = svg_image_on_paint_self, .on_paint_background = widget_on_paint_null, - .set_prop = image_base_set_prop, + .set_prop = svg_image_set_prop, .get_prop = image_base_get_prop}; widget_t* svg_image_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h) { diff --git a/src/ext_widgets/svg_image/svg_image.h b/src/ext_widgets/svg_image/svg_image.h index 668151a610..d5520a04d3 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 { @@ -91,6 +91,20 @@ typedef struct _svg_image_t { */ widget_t* svg_image_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); +/** + * @method svg_image_set_image + * 设置控件的图片名称。 + * + *> 如果需要显示文件系统中的图片,只需将图片名称换成实际的文件名,并加上"file://"前缀即可。 + * + * @annotation ["scriptable"] + * @param {widget_t*} widget image对象。 + * @param {char*} name 图片名称,该图片必须存在于资源管理器。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t svg_image_set_image(widget_t* widget, const char* name); + /** * @method svg_image_cast * 转换为svg_image对象(供脚本语言使用)。 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.c b/src/ext_widgets/text_selector/text_selector.c index a02f332c59..5e9cfb35b8 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,17 @@ 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; + + 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/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/font_loader/font_loader_bitmap.c b/src/font_loader/font_loader_bitmap.c index d4a69f94da..6fabbeb752 100644 --- a/src/font_loader/font_loader_bitmap.c +++ b/src/font_loader/font_loader_bitmap.c @@ -97,7 +97,7 @@ font_t* font_bitmap_init(font_bitmap_t* f, const char* name, const uint8_t* buff f->base.get_baseline = font_bitmap_get_baseline; f->base.get_glyph = font_bitmap_get_glyph; f->base.destroy = font_bitmap_destroy; - + f->base.desc = "bitmap font"; tk_strncpy(f->base.name, name, TK_NAME_LEN); return &(f->base); diff --git a/src/font_loader/font_loader_ft.c b/src/font_loader/font_loader_ft.c index bca9796657..ee8f271c6f 100644 --- a/src/font_loader/font_loader_ft.c +++ b/src/font_loader/font_loader_ft.c @@ -86,6 +86,7 @@ static ret_t font_ft_get_glyph(font_t* f, wchar_t c, font_size_t font_size, glyp glyf = sf->face->glyph; FT_Get_Glyph(glyf, &glyph); + g->format = GLYPH_FMT_ALPHA; g->h = glyf->bitmap.rows; g->w = glyf->bitmap.width; g->pitch = glyf->bitmap.pitch; @@ -168,6 +169,7 @@ font_t* font_ft_create_ex(const char* name, const uint8_t* buff, uint32_t size, f->base.destroy = font_ft_destroy; f->base.get_glyph = font_ft_get_glyph; f->base.get_baseline = font_ft_get_baseline; + f->base.desc = mono ? "mono(freetype)" : "truetype(freetype)"; tk_strncpy(f->base.name, name, TK_NAME_LEN); @@ -181,14 +183,18 @@ font_t* font_ft_mono_create(const char* name, const uint8_t* buff, uint32_t size } font_t* font_ft_create(const char* name, const uint8_t* buff, uint32_t size) { +#ifdef WITH_LCD_MONO + return font_ft_create_ex(name, buff, size, TRUE); +#else return font_ft_create_ex(name, buff, size, FALSE); +#endif } static font_t* font_ft_load(font_loader_t* loader, const char* name, const uint8_t* buff, uint32_t buff_size) { (void)loader; - return font_ft_create_ex(name, buff, buff_size, FALSE); + return font_ft_create(name, buff, buff_size); } font_loader_t* font_loader_ft(void) { diff --git a/src/font_loader/font_loader_stb.c b/src/font_loader/font_loader_stb.c index 095875148c..11937514a9 100644 --- a/src/font_loader/font_loader_stb.c +++ b/src/font_loader/font_loader_stb.c @@ -80,6 +80,7 @@ static ret_t font_stb_get_glyph(font_t* f, wchar_t c, font_size_t font_size, gly g->y = y; g->w = w; g->h = h; + g->format = GLYPH_FMT_ALPHA; g->advance = advance * scale; if (g->data != NULL) { @@ -126,6 +127,7 @@ font_t* font_stb_create(const char* name, const uint8_t* buff, uint32_t buff_siz f->base.destroy = font_stb_destroy; f->base.get_glyph = font_stb_get_glyph; f->base.get_baseline = font_stb_get_baseline; + f->base.desc = "truetype(stb)"; tk_strncpy(f->base.name, name, TK_NAME_LEN); diff --git a/src/image_loader/image_loader_stb.c b/src/image_loader/image_loader_stb.c index 5c2d31492f..8c9d1e249a 100644 --- a/src/image_loader/image_loader_stb.c +++ b/src/image_loader/image_loader_stb.c @@ -72,7 +72,9 @@ ret_t stb_load_image(int32_t subtype, const uint8_t* buff, uint32_t buff_size, b } else { data = stb_data; } - +#ifdef WITH_LCD_MONO + ret = bitmap_init_from_rgba(image, w, h, BITMAP_FMT_MONO, data, n); +#else if (enable_bgr565 && rgba_data_is_opaque(data, w, h, n)) { ret = bitmap_init_from_rgba(image, w, h, BITMAP_FMT_BGR565, data, n); } else if (require_bgra) { @@ -80,7 +82,7 @@ ret_t stb_load_image(int32_t subtype, const uint8_t* buff, uint32_t buff_size, b } else { ret = bitmap_init_from_rgba(image, w, h, BITMAP_FMT_RGBA8888, data, n); } - +#endif /*WITH_LCD_MONO*/ stbi_image_free((uint8_t*)(stb_data)); if (stb_data != data) { TKMEM_FREE(data); @@ -94,6 +96,9 @@ ret_t stb_load_image(int32_t subtype, const uint8_t* buff, uint32_t buff_size, b return_value_if_fail(data != NULL, RET_FAIL); total_h = h * z; +#ifdef WITH_LCD_MONO + ret = bitmap_init_from_rgba(image, w, total_h, BITMAP_FMT_MONO, data, n); +#else if (enable_bgr565 && rgba_data_is_opaque(data, w, total_h, n)) { ret = bitmap_init_from_rgba(image, w, total_h, BITMAP_FMT_BGR565, data, n); } else if (require_bgra) { @@ -101,6 +106,7 @@ ret_t stb_load_image(int32_t subtype, const uint8_t* buff, uint32_t buff_size, b } else { ret = bitmap_init_from_rgba(image, w, total_h, BITMAP_FMT_RGBA8888, data, n); } +#endif /*WITH_LCD_MONO*/ image->is_gif = TRUE; image->gif_frame_h = h; diff --git a/src/input_methods/input_method_default.inc b/src/input_methods/input_method_default.inc index 683d3097fe..487905ba6c 100644 --- a/src/input_methods/input_method_default.inc +++ b/src/input_methods/input_method_default.inc @@ -85,7 +85,7 @@ static ret_t on_push_window(void* ctx, event_t* e) { static ret_t input_method_default_restore_win_position(input_method_t* im) { if (im->win != NULL) { - im->win->y += im->win_delta_y; + im->win->y = im->win_old_y; widget_invalidate_force(im->win, NULL); im->win = NULL; } @@ -141,6 +141,7 @@ static ret_t input_type_open_keyboard(input_method_t* im, int32_t input_type, bo im->busy = TRUE; widget_on(im->keyboard, EVT_WINDOW_OPEN, input_method_default_on_keyboard_open, im); + im->win_old_y = win->y; if ((p.y + widget->h) > im->keyboard->y) { close_anim_hint = "vtranslate"; open_anim_hint = close_anim_hint; diff --git a/src/lcd/fragment_frame_buffer.h b/src/lcd/fragment_frame_buffer.h index 1a143d331c..7844567346 100644 --- a/src/lcd/fragment_frame_buffer.h +++ b/src/lcd/fragment_frame_buffer.h @@ -18,6 +18,7 @@ * 2019-08-16 li xianjing created * */ +#include "tkc/utils.h" typedef struct _fragment_frame_buffer_t { uint32_t x; @@ -77,6 +78,49 @@ static inline ret_t fragment_frame_buffer_set_pixel(fragment_frame_buffer_t* ffb return RET_OK; } +static inline ret_t fragment_frame_buffer_set_pixel_fill(fragment_frame_buffer_t* ffb, uint32_t x, + uint32_t y, uint32_t size, pixel_t pixel) { + uint32_t dx = x - ffb->x; + uint32_t dy = y - ffb->y; + pixel_t* p = ffb->data + dy * ffb->w + dx; + + return_value_if_fail((ffb->w * ffb->h) >= size, RET_BAD_PARAMS); + return_value_if_fail((x >= ffb->x && y >= ffb->y), RET_BAD_PARAMS); + return_value_if_fail((x < (ffb->x + ffb->w) && y < (ffb->y + ffb->h)), RET_BAD_PARAMS); + + if (LCD_FORMAT == BITMAP_FMT_RGBA8888 || LCD_FORMAT == BITMAP_FMT_ABGR8888 || + LCD_FORMAT == BITMAP_FMT_BGRA8888 || LCD_FORMAT == BITMAP_FMT_ARGB8888) { + tk_memset32((uint32_t*)p, (uint32_t)pixel, size); + } else if (LCD_FORMAT == BITMAP_FMT_RGB565 || LCD_FORMAT == BITMAP_FMT_BGR565) { + tk_memset16((uint16_t*)p, (uint16_t)pixel, size); + } else { + assert("no support lcd type fill"); + } + + return RET_OK; +} + +static inline ret_t fragment_frame_buffer_copy_pixel(fragment_frame_buffer_t* ffb, uint32_t x, + uint32_t y, uint32_t size, + pixel_t* image_data) { + uint32_t dx = x - ffb->x; + uint32_t dy = y - ffb->y; + pixel_t* p = ffb->data + dy * ffb->w + dx; + + return_value_if_fail((ffb->w * ffb->h) >= size, RET_BAD_PARAMS); + return_value_if_fail((x >= ffb->x && y >= ffb->y), RET_BAD_PARAMS); + return_value_if_fail((x < (ffb->x + ffb->w) && y < (ffb->y + ffb->h)), RET_BAD_PARAMS); + if (LCD_FORMAT == BITMAP_FMT_RGBA8888 || LCD_FORMAT == BITMAP_FMT_ABGR8888 || + LCD_FORMAT == BITMAP_FMT_BGRA8888 || LCD_FORMAT == BITMAP_FMT_ARGB8888) { + tk_memcpy32((uint32_t*)image_data, (uint32_t*)p, size); + } else if (LCD_FORMAT == BITMAP_FMT_RGB565 || LCD_FORMAT == BITMAP_FMT_BGR565) { + tk_memcpy16((uint16_t*)image_data, (uint16_t*)p, size); + } else { + assert("no support image type"); + } + return RET_OK; +} + static inline pixel_t fragment_frame_buffer_get_pixel(fragment_frame_buffer_t* ffb, uint32_t x, uint32_t y) { uint32_t dx = x - ffb->x; @@ -113,6 +157,51 @@ static inline ret_t fragment_frame_buffer_set_window(fragment_frame_buffer_t* ff return RET_OK; } +static inline ret_t fragment_frame_buffer_image_copy(fragment_frame_buffer_t* ffb, bitmap_t* img, + rect_t* src, rect_t* dst) { + uint32_t i = 0; + uint32_t x = ffb->win.x + ffb->cursor_x; + uint32_t y = ffb->win.y + ffb->cursor_y; + pixel_t* data = (pixel_t*)img->data; + pixel_t* src_p = data + img->w * src->y + src->x; + + return_value_if_fail(src->w == dst->w && src->h == dst->h, RET_BAD_PARAMS); + + for (i = 0; i < dst->h; i++) { + fragment_frame_buffer_copy_pixel(ffb, x, y + i, img->w, src_p); + src_p += img->w; + } + + ffb->cursor_x += (src->w * src->h); + assert(ffb->cursor_y < ffb->win.h); + if (ffb->cursor_x >= ffb->win.w) { + ffb->cursor_y += (ffb->cursor_x / ffb->win.w); + ffb->cursor_x = ffb->cursor_x % ffb->win.w; + } + + return RET_OK; +} + +static inline ret_t fragment_frame_buffer_write_data_fill(fragment_frame_buffer_t* ffb, + pixel_t pixel, uint32_t size) { + uint32_t i = 0; + uint32_t x = ffb->win.x + ffb->cursor_x; + uint32_t y = ffb->win.y + ffb->cursor_y; + + for (i = 0; i < ffb->win.h; i++) { + fragment_frame_buffer_set_pixel_fill(ffb, x, y + i, ffb->win.w, pixel); + } + + ffb->cursor_x += size; + assert(ffb->cursor_y < ffb->win.h); + if (ffb->cursor_x >= ffb->win.w) { + ffb->cursor_y += (ffb->cursor_x / ffb->win.w); + ffb->cursor_x = ffb->cursor_x % ffb->win.w; + } + + return RET_OK; +} + static inline ret_t fragment_frame_buffer_write_data(fragment_frame_buffer_t* ffb, pixel_t pixel) { uint32_t x = ffb->win.x + ffb->cursor_x; uint32_t y = ffb->win.y + ffb->cursor_y; diff --git a/src/lcd/lcd_reg.inc b/src/lcd/lcd_reg.inc index 1ec50e8e69..a90932c818 100644 --- a/src/lcd/lcd_reg.inc +++ b/src/lcd/lcd_reg.inc @@ -18,14 +18,10 @@ * 2018-02-16 Li XianJing created * */ - +#include "awtk_config.h" #include "base/system_info.h" #include "fragment_frame_buffer.h" -#ifndef FRAGMENT_FRAME_BUFFER_SIZE -#define FRAGMENT_FRAME_BUFFER_SIZE 8192 -#endif /*FRAGMENT_FRAME_BUFFER_SIZE*/ - typedef struct _lcd_reg_t { lcd_t lcd; fragment_frame_buffer_t affb; @@ -57,6 +53,45 @@ static inline ret_t lcd_reg_write_data(lcd_t* lcd, pixel_t data) { return RET_OK; } +static inline ret_t lcd_reg_write_data_fill(lcd_t* lcd, pixel_t data, wh_t w, wh_t h) { + uint32_t i = 0; + uint32_t size = w * h; + lcd_reg_t* reg = (lcd_reg_t*)lcd; + + if (reg->ffb != NULL) { + fragment_frame_buffer_write_data_fill(reg->ffb, data, size); + } else { + for (i = 0; i < size; i++) { + write_data_func(data); + } + } + + return RET_OK; +} + +static inline ret_t lcd_reg_image_copy(lcd_t* lcd, bitmap_t* img, rect_t* src, rect_t* dst) { + uint32_t i = 0; + uint32_t j = 0; + lcd_reg_t* reg = (lcd_reg_t*)lcd; + const pixel_t* data = (pixel_t*)img->data; + return_value_if_fail(src->w == dst->w && src->h == dst->h, RET_BAD_PARAMS); + + if (reg->ffb != NULL) { + fragment_frame_buffer_image_copy(reg->ffb, img, src, dst); + } else { + const pixel_t* src_p = data + img->w * src->y + src->x; + + for (j = 0; j < dst->h; j++) { + for (i = 0; i < dst->w; i++) { + write_data_func(src_p[i]); + } + src_p += img->w; + } + } + + return RET_OK; +} + static ret_t lcd_reg_begin_frame(lcd_t* lcd, rect_t* dirty_rect) { lcd_reg_t* reg = (lcd_reg_t*)lcd; lcd->dirty_rect = *dirty_rect; @@ -104,15 +139,10 @@ static ret_t lcd_reg_draw_points(lcd_t* lcd, point_t* points, uint32_t nr) { } static ret_t lcd_reg_fill_rect(lcd_t* lcd, xy_t x, xy_t y, wh_t w, wh_t h) { - uint32_t i = 0; - uint32_t size = w * h; pixel_t color = color_to_pixel(lcd->fill_color); lcd_reg_set_window(lcd, x, y, x + w - 1, y + h - 1); - - for (i = 0; i < size; i++) { - lcd_reg_write_data(lcd, color); - } + lcd_reg_write_data_fill(lcd, color, w, h); return RET_OK; } @@ -160,14 +190,7 @@ static ret_t lcd_reg_draw_image_bgr565(lcd_t* lcd, bitmap_t* img, rect_t* src, r lcd_reg_set_window(lcd, x, y, x + dw - 1, y + dh - 1); if (src->w == dst->w && src->h == dst->h) { - const uint16_t* src_p = data + img->w * src->y + src->x; - - for (j = 0; j < dh; j++) { - for (i = 0; i < dw; i++) { - lcd_reg_write_data(lcd, src_p[i]); - } - src_p += img->w; - } + lcd_reg_image_copy(lcd, img, src, dst); } else { xy_t sx = src->x; xy_t sy = src->y; @@ -191,7 +214,7 @@ static ret_t lcd_reg_draw_image_bgr565(lcd_t* lcd, bitmap_t* img, rect_t* src, r return RET_OK; } -static ret_t lcd_reg_8888(lcd_t* lcd, bitmap_t* img, rect_t* src, rect_t* dst) { +static ret_t lcd_reg_draw_image_8888(lcd_t* lcd, bitmap_t* img, rect_t* src, rect_t* dst) { wh_t i = 0; wh_t j = 0; uint8_t a = 0; @@ -270,7 +293,7 @@ static ret_t lcd_reg_draw_image(lcd_t* lcd, bitmap_t* img, rect_t* src, rect_t* if (img->format == BITMAP_FMT_BGR565) { return lcd_reg_draw_image_bgr565(lcd, img, src, dst); } else if (img->format == BITMAP_FMT_RGBA8888 || img->format == BITMAP_FMT_BGRA8888) { - return lcd_reg_8888(lcd, img, src, dst); + return lcd_reg_draw_image_8888(lcd, img, src, dst); } else { assert(!"not supported format"); return RET_FAIL; diff --git a/src/misc/new.cpp b/src/misc/new.cpp index 0dce0b468d..612c096eef 100755 --- a/src/misc/new.cpp +++ b/src/misc/new.cpp @@ -4,7 +4,7 @@ #ifndef HAS_STD_MALLOC -void* operator new(std::size_t size) throw(std::bad_alloc) { +void* operator new(std::size_t size) __TK_THROW_BAD_ALLOC { if (size >= MAX_SIZE) { log_debug("size is too large\n"); } @@ -12,7 +12,7 @@ void* operator new(std::size_t size) throw(std::bad_alloc) { return TKMEM_ALLOC(size); } -void* operator new[](std::size_t size) throw(std::bad_alloc) { +void* operator new[](std::size_t size) __TK_THROW_BAD_ALLOC { if (size >= MAX_SIZE) { log_debug("size is too large\n"); } diff --git a/src/misc/new.hpp b/src/misc/new.hpp index 09fea6723a..dbe8be90e1 100755 --- a/src/misc/new.hpp +++ b/src/misc/new.hpp @@ -7,9 +7,15 @@ #ifndef HAS_STD_MALLOC -void* operator new(std::size_t size) throw(std::bad_alloc); +#if __cplusplus < 201103L || defined(__ARMCC_VERSION) +#define __TK_THROW_BAD_ALLOC throw(std::bad_alloc) +#else +#define __TK_THROW_BAD_ALLOC +#endif -void* operator new[](std::size_t size) throw(std::bad_alloc); +void* operator new(std::size_t size) __TK_THROW_BAD_ALLOC; + +void* operator new[](std::size_t size) __TK_THROW_BAD_ALLOC; void operator delete(void* obj) throw(); diff --git a/src/native_window/native_window_sdl.c b/src/native_window/native_window_sdl.c index 2e634b2a6f..635016d6e1 100644 --- a/src/native_window/native_window_sdl.c +++ b/src/native_window/native_window_sdl.c @@ -272,8 +272,9 @@ static ret_t native_window_sdl_exec(object_t* obj, const char* cmd, const char* #ifdef WITH_NANOVG_GPU if (tk_str_eq(cmd, "reset_canvas")) { canvas_t* c = &(sdl->canvas); - lcd_destroy(c->lcd); - c->lcd = lcd_nanovg_init(NATIVE_WINDOW(sdl)); + vgcanvas_t* vg = canvas_get_vgcanvas(c); + + vgcanvas_reset(vg); return RET_OK; } diff --git a/src/platforms/cmsis_os/mutex.c b/src/platforms/cmsis_os/mutex.c new file mode 100644 index 0000000000..801976be43 --- /dev/null +++ b/src/platforms/cmsis_os/mutex.c @@ -0,0 +1,70 @@ +/** + * File: mutex.c + * Author: AWTK Develop Team + * Brief: mutex base on tos_mutex + * + * Copyright (c) 2018 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-20 Li XianJing created + * + */ + +#include "tkc/mem.h" +#include "tkc/mutex.h" +#include "cmsis_os.h" + +struct _tk_mutex_t { + osMutexId mutex; +}; + +tk_mutex_t* tk_mutex_create() { + osMutexDef_t def; + tk_mutex_t* mutex = TKMEM_ZALLOC(tk_mutex_t); + return_value_if_fail(mutex != NULL, NULL); + + memset(&def, 0x00, sizeof(def)); + mutex->mutex = osMutexCreate(&(def)); + + if (mutex->mutex == NULL) { + TKMEM_FREE(mutex); + } + + return mutex; +} + +ret_t tk_mutex_lock(tk_mutex_t* mutex) { + return_value_if_fail(mutex != NULL && mutex->mutex != NULL, RET_BAD_PARAMS); + + return_value_if_fail(osMutexWait(mutex->mutex, 0xffffffff) == osOK, RET_FAIL); + + return RET_OK; +} + +ret_t tk_mutex_unlock(tk_mutex_t* mutex) { + return_value_if_fail(mutex != NULL && mutex->mutex != NULL, RET_BAD_PARAMS); + + return_value_if_fail(osMutexRelease(mutex->mutex) == osOK, RET_FAIL); + + return RET_OK; +} + +ret_t tk_mutex_destroy(tk_mutex_t* mutex) { + return_value_if_fail(mutex != NULL && mutex->mutex != NULL, RET_BAD_PARAMS); + + osMutexDelete(mutex->mutex); + memset(mutex, 0x00, sizeof(tk_mutex_t)); + + TKMEM_FREE(mutex); + + return RET_OK; +} diff --git a/src/platforms/cmsis_os/semaphore.c b/src/platforms/cmsis_os/semaphore.c new file mode 100644 index 0000000000..0f64a76552 --- /dev/null +++ b/src/platforms/cmsis_os/semaphore.c @@ -0,0 +1,77 @@ +/** + * File: semaphore.c + * Author: AWTK Develop Team + * Brief: semaphore + * + * Copyright (c) 2018 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-27 Li XianJing created + * + */ + +#include "cmsis_os.h" + +#include "tkc/mem.h" +#include "tkc/time_now.h" +#include "tkc/platform.h" +#include "tkc/semaphore.h" + +struct _tk_semaphore_t { + osSemaphoreId sem; +}; + +tk_semaphore_t* tk_semaphore_create(uint32_t value, const char* name) { + osSemaphoreDef_t def; + tk_semaphore_t* semaphore = TKMEM_ZALLOC(tk_semaphore_t); + return_value_if_fail(semaphore != NULL, NULL); + + memset(&def, 0x00, sizeof(def)); +#ifdef __RTTHREAD_CFG_H__ + def.name = name; +#endif + semaphore->sem = osSemaphoreCreate(&(def), value); + + if (semaphore->sem == NULL) { + TKMEM_FREE(semaphore); + } + + return semaphore; +} + +ret_t tk_semaphore_wait(tk_semaphore_t* semaphore, uint32_t timeout_ms) { + return_value_if_fail(semaphore != NULL, RET_BAD_PARAMS); + + if (osSemaphoreWait(semaphore->sem, timeout_ms) < 0) { + return RET_TIMEOUT; + } + + return RET_OK; +} + +ret_t tk_semaphore_post(tk_semaphore_t* semaphore) { + return_value_if_fail(semaphore != NULL, RET_BAD_PARAMS); + + return_value_if_fail(osSemaphoreRelease(semaphore->sem) == osOK, RET_FAIL); + + return RET_OK; +} + +ret_t tk_semaphore_destroy(tk_semaphore_t* semaphore) { + return_value_if_fail(semaphore != NULL, RET_BAD_PARAMS); + + osSemaphoreDelete(semaphore->sem); + memset(&semaphore, 0x00, sizeof(tk_semaphore_t)); + TKMEM_FREE(semaphore); + + return RET_OK; +} diff --git a/src/platforms/cmsis_os/sys_tick.c b/src/platforms/cmsis_os/sys_tick.c new file mode 100644 index 0000000000..b2e340196d --- /dev/null +++ b/src/platforms/cmsis_os/sys_tick.c @@ -0,0 +1,70 @@ +/** + * File: sys_tick.c + * Author: AWTK Develop Team + * Brief: use sys tick to implement sleep/get_time_ms64. + * + * Copyright (c) 2018 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2018-10-20 Li XianJing created + * + */ + +#include "cmsis_os.h" +#include "tkc/types_def.h" + +static volatile uint64_t g_sys_tick; + +#ifdef _TOS_CONFIG_H_ +#include "tos.h" +void rtos_tick(void) { + if (tos_knl_is_running()) { + tos_knl_irq_enter(); + tos_tick_handler(); + tos_knl_irq_leave(); + } +} +#endif /*_TOS_CONFIG_H_*/ + +void SysTick_Handler(void) { + g_sys_tick++; + rtos_tick(); +} + +uint64_t get_time_ms64() { + return g_sys_tick; +} + +static void sleep_ms_raw(uint32_t ms) { + uint32_t count = 0; + uint64_t start = get_time_ms64(); + + while (get_time_ms64() < (start + ms)) { + count++; + } +} + +void sleep_ms(uint32_t ms) { + if (tos_knl_is_running()) { + tos_task_delay(ms); + } else { + sleep_ms_raw(ms); + } +} + +void delay_ms(uint32_t ms) { + sleep_ms(ms); +} + +void delay_us(uint32_t us) { + sleep_ms(1); +} diff --git a/src/platforms/cmsis_os/thread.c b/src/platforms/cmsis_os/thread.c new file mode 100644 index 0000000000..4ca43a0129 --- /dev/null +++ b/src/platforms/cmsis_os/thread.c @@ -0,0 +1,149 @@ +/** + * File: thread.c + * Author: AWTK Develop Team + * Brief: thread on cmsis_os + * + * Copyright (c) 2018 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-27 Li XianJing created + * + */ + +#include "tkc/mem.h" +#include "tkc/utils.h" +#include "tkc/thread.h" +#include "tkc/mutex.h" +#include "cmsis_os.h" + +struct _tk_thread_t { + void* args; + tk_thread_entry_t entry; + + osThreadId id; + bool_t running; + + const char* name; + uint32_t stack_size; + uint32_t priority; + void* stackbase; + tk_mutex_t* mutex; +}; + +ret_t tk_thread_set_name(tk_thread_t* thread, const char* name) { + return_value_if_fail(thread != NULL && name != NULL, RET_BAD_PARAMS); + + thread->name = name; + + return RET_OK; +} + +ret_t tk_thread_set_stack_size(tk_thread_t* thread, uint32_t stack_size) { + return_value_if_fail(thread != NULL, RET_BAD_PARAMS); + + thread->stack_size = stack_size; + + return RET_OK; +} + +ret_t tk_thread_set_priority(tk_thread_t* thread, uint32_t priority) { + return_value_if_fail(thread != NULL, RET_BAD_PARAMS); + + thread->priority = priority; + + if (thread->id) { + osThreadSetPriority(thread->id, (osPriority)priority); + } + + return RET_OK; +} + +void* tk_thread_get_args(tk_thread_t* thread) { + return_value_if_fail(thread != NULL, NULL); + + return thread->args; +} + +static void cmsis_os_thread_entry(const void* arg) { + tk_thread_t* thread = (tk_thread_t*)arg; + + thread->running = TRUE; + thread->entry(thread->args); + thread->running = FALSE; + tk_mutex_unlock(thread->mutex); +} + +tk_thread_t* tk_thread_create(tk_thread_entry_t entry, void* args) { + tk_thread_t* thread = NULL; + return_value_if_fail(entry != NULL, NULL); + + thread = (tk_thread_t*)TKMEM_ZALLOC(tk_thread_t); + return_value_if_fail(thread != NULL, NULL); + + thread->args = args; + thread->entry = entry; + thread->mutex = tk_mutex_create(); + + return thread; +} + +ret_t tk_thread_start(tk_thread_t* thread) { + osThreadDef_t def; + return_value_if_fail(thread != NULL && !(thread->id), RET_BAD_PARAMS); + + memset(&def, 0x00, sizeof(def)); + +#ifdef _TOS_CONFIG_H_ + def.timeslice = 20; + def.name = (char*)(thread->name); + def.stacksize = thread->stack_size; + def.tpriority = (osPriority)(thread->priority); + def.pthread = cmsis_os_thread_entry; + def.stackbase = TKMEM_ALLOC(def.stacksize + 4); + return_value_if_fail(def.stackbase != NULL, RET_OOM); + thread->stackbase = def.stackbase; +#endif + + thread->id = osThreadCreate(&(def), thread->args); + if (thread->id != NULL) { + tk_mutex_lock(thread->mutex); + } + + return thread->id != NULL ? RET_OK : RET_FAIL; +} + +ret_t tk_thread_join(tk_thread_t* thread) { + return_value_if_fail(thread != NULL, RET_BAD_PARAMS); + + return_value_if_fail(tk_mutex_lock(thread->mutex) == RET_OK, RET_FAIL); + tk_mutex_unlock(thread->mutex); + + return RET_OK; +} + +ret_t tk_thread_destroy(tk_thread_t* thread) { + return_value_if_fail(thread != NULL && thread->id, RET_BAD_PARAMS); + + if (thread->stackbase != NULL) { + TKMEM_FREE(thread->stackbase); + } + + if (thread->mutex != NULL) { + tk_mutex_destroy(thread->mutex); + } + + osThreadTerminate(thread->id); + memset(thread, 0x00, sizeof(tk_thread_t)); + TKMEM_FREE(thread); + + return RET_OK; +} diff --git a/src/platforms/freertos/README.md b/src/platforms/freertos/README.md new file mode 100644 index 0000000000..761d61d93b --- /dev/null +++ b/src/platforms/freertos/README.md @@ -0,0 +1 @@ +# To Support FreeRTOS diff --git a/src/platforms/freertos/cond_var.c b/src/platforms/freertos/cond_var.c new file mode 100644 index 0000000000..b540a64854 --- /dev/null +++ b/src/platforms/freertos/cond_var.c @@ -0,0 +1,51 @@ +#include "freertos/FreeRTOS.h" +#include "freertos/semphr.h" +#include "freertos/task.h" +#include "freertos/event_groups.h" +#include "tkc/mem.h" +#include "tkc/cond_var.h" + +struct _tk_cond_var_t { + EventGroupHandle_t event; +}; + +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); + cond_var->event = xEventGroupCreate(); + if (cond_var->event == NULL) { + TKMEM_FREE(cond_var); + } + + return cond_var; +} + +ret_t tk_cond_var_wait(tk_cond_var_t* cond_var, uint32_t timeout_ms) { + return_value_if_fail(cond_var != NULL, RET_BAD_PARAMS); + EventBits_t uxBits = xEventGroupWaitBits(cond_var->event, BIT(0), pdTRUE, pdFALSE, timeout_ms); + if ((uxBits & BIT0) == BIT0) { + return RET_OK; + } else { + return RET_FAIL; + } +} + +ret_t tk_cond_var_awake(tk_cond_var_t* cond_var) { + return_value_if_fail(cond_var != NULL, RET_BAD_PARAMS); + EventBits_t uxBits = xEventGroupSetBits(cond_var->event, BIT(0)); + if ((uxBits & BIT0) == BIT0) { + return RET_OK; + } else { + return RET_FAIL; + } +} + +ret_t tk_cond_var_destroy(tk_cond_var_t* cond_var) { + return_value_if_fail(cond_var != NULL, RET_BAD_PARAMS); + + vEventGroupDelete(cond_var->event); + memset(cond_var, 0x00, sizeof(tk_cond_var_t)); + TKMEM_FREE(cond_var); + + return RET_OK; +} diff --git a/src/platforms/freertos/mutex.c b/src/platforms/freertos/mutex.c new file mode 100644 index 0000000000..82cd8af00b --- /dev/null +++ b/src/platforms/freertos/mutex.c @@ -0,0 +1,42 @@ +#include "freertos/FreeRTOS.h" +#include "freertos/semphr.h" +#include "freertos/task.h" +#include "tkc/mem.h" +#include "tkc/mutex.h" + +struct _tk_mutex_t { + SemaphoreHandle_t mutex; +}; + +tk_mutex_t* tk_mutex_create() { + tk_mutex_t* mutex = TKMEM_ZALLOC(tk_mutex_t); + return_value_if_fail(mutex != NULL, NULL); + + mutex->mutex = xSemaphoreCreateMutex(); + if (mutex->mutex == NULL) + { + return NULL; + } + return mutex; +} + +ret_t tk_mutex_lock(tk_mutex_t* mutex) { + return_value_if_fail(mutex != NULL, RET_BAD_PARAMS); + + return_value_if_fail(xSemaphoreTake(mutex->mutex, portMAX_DELAY) == pdPASS, RET_FAIL); + return RET_OK; +} + +ret_t tk_mutex_unlock(tk_mutex_t* mutex) { + return_value_if_fail(mutex != NULL, RET_BAD_PARAMS); + return_value_if_fail(xSemaphoreGive(mutex->mutex) == pdPASS, RET_FAIL); + + return RET_OK; +} + +ret_t tk_mutex_destroy(tk_mutex_t* mutex) { + return_value_if_fail(mutex != NULL, RET_BAD_PARAMS); + + vSemaphoreDelete(mutex->mutex); + return RET_OK; +} diff --git a/src/platforms/freertos/sys_tick.c b/src/platforms/freertos/sys_tick.c new file mode 100644 index 0000000000..a2ef1e80e4 --- /dev/null +++ b/src/platforms/freertos/sys_tick.c @@ -0,0 +1,33 @@ +#include "freertos/FreeRTOS.h" +#include "freertos/semphr.h" +#include "freertos/task.h" +#include +#include "tkc/types_def.h" + +uint64_t get_time_ms64() { + struct timeval te; + gettimeofday(&te, NULL); + uint64_t milliseconds = te.tv_sec * 1000LL + te.tv_usec / 1000; + return milliseconds; +} + +static void sleep_ms_raw(uint32_t ms) { + uint32_t count = 0; + uint64_t start = get_time_ms64(); + + while (get_time_ms64() < (start + ms)) { + count++; + } +} + +void sleep_ms(uint32_t ms) { + vTaskDelay(1 / portTICK_PERIOD_MS); +} + +void delay_ms(uint32_t ms) { + sleep_ms(ms); +} + +void delay_us(uint32_t us) { + sleep_ms(1); +} diff --git a/src/platforms/freertos/thread.c b/src/platforms/freertos/thread.c new file mode 100644 index 0000000000..f8a81add77 --- /dev/null +++ b/src/platforms/freertos/thread.c @@ -0,0 +1,108 @@ +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/event_groups.h" +#include "tkc/mem.h" +#include "tkc/utils.h" +#include "tkc/thread.h" + +struct _tk_thread_t { + void* args; + TaskHandle_t task; + bool_t running; + tk_thread_entry_t entry; + char name[TK_NAME_LEN + 1]; + uint32_t stack_size; + uint32_t priority; + EventGroupHandle_t event_sync; +}; +const static int TASK_CREATED_BIT = BIT0; + +ret_t tk_thread_set_name(tk_thread_t* thread, const char* name) { + return_value_if_fail(thread != NULL && name != NULL, RET_BAD_PARAMS); + + tk_strncpy(thread->name, name, TK_NAME_LEN); + + return RET_OK; +} + +ret_t tk_thread_set_stack_size(tk_thread_t* thread, uint32_t stack_size) { + return_value_if_fail(thread != NULL, RET_BAD_PARAMS); + + thread->stack_size = stack_size; + + return RET_OK; +} + +ret_t tk_thread_set_priority(tk_thread_t* thread, uint32_t priority) { + return_value_if_fail(thread != NULL, RET_BAD_PARAMS); + + thread->priority = priority; + + return RET_OK; +} + +void* tk_thread_get_args(tk_thread_t* thread) { + return_value_if_fail(thread != NULL, NULL); + + return thread->args; +} + +tk_thread_t* tk_thread_create(tk_thread_entry_t entry, void* args) { + tk_thread_t* thread = NULL; + return_value_if_fail(entry != NULL, NULL); + + thread = (tk_thread_t*)TKMEM_ZALLOC(tk_thread_t); + return_value_if_fail(thread != NULL, NULL); + + thread->args = args; + thread->entry = entry; + thread->stack_size = 2048; + + return thread; +} + +static void entry(void* arg) { + tk_thread_t* thread = (tk_thread_t*)arg; + xEventGroupSetBits(thread->event_sync, TASK_CREATED_BIT); + thread->entry(thread->args); + thread->running = FALSE; + vTaskDelete(thread->task); +} + +ret_t tk_thread_start(tk_thread_t* thread) { + uint32_t priority = 0; + uint32_t stack_size = 0; + BaseType_t err = pdPASS; + return_value_if_fail(thread != NULL, RET_BAD_PARAMS); + thread->event_sync = xEventGroupCreate(); + return_value_if_fail(thread->event_sync != NULL, RET_OOM); + priority = tk_min(thread->priority, 10); + stack_size = tk_max(thread->stack_size, 4096); + err = xTaskCreate( + entry, + thread->name, + stack_size, + thread, + priority, + &(thread->task)); + + thread->running = err == pdPASS; + xEventGroupWaitBits(thread->event_sync, TASK_CREATED_BIT, pdTRUE, pdFALSE, portMAX_DELAY); + return thread->running ? RET_OK : RET_FAIL; +} + +ret_t tk_thread_join(tk_thread_t* thread) { + return_value_if_fail(thread != NULL, RET_BAD_PARAMS); + if (thread->running) { + } + + return RET_OK; +} + +ret_t tk_thread_destroy(tk_thread_t* thread) { + return_value_if_fail(thread != NULL, RET_BAD_PARAMS); + vEventGroupDelete(thread->event_sync); + memset(thread, 0x00, sizeof(tk_thread_t)); + TKMEM_FREE(thread); + return RET_OK; +} \ No newline at end of file diff --git a/src/platforms/pc/dirent.inc b/src/platforms/pc/dirent.inc index 09fac155be..dfd74542b0 100644 --- a/src/platforms/pc/dirent.inc +++ b/src/platforms/pc/dirent.inc @@ -29,27 +29,27 @@ struct dirent { uint8_t d_type; unsigned short d_reclen; unsigned short d_namlen; - char d_name[MAX_PATH]; + wchar_t d_name[MAX_PATH]; }; typedef struct DIR DIR; -DIR* opendir(const char*); +DIR* opendir(const wchar_t*); struct dirent* readdir(DIR*); int closedir(DIR*); struct DIR { - char* dirname; + wchar_t* dirname; struct dirent ret; /* Used to return to caller */ HANDLE handle; }; -DIR* opendir(const char* dirname) { +DIR* opendir(const wchar_t* dirname) { DWORD attr; DIR* d; /* Make sure it is a directory */ - attr = GetFileAttributes(dirname); + attr = GetFileAttributesW(dirname); if (attr == INVALID_FILE_ATTRIBUTES) { errno = ENOENT; return NULL; @@ -64,17 +64,17 @@ DIR* opendir(const char* dirname) { errno = ENOMEM; return NULL; } - d->dirname = malloc(strlen(dirname) + 4); + d->dirname = malloc(wcslen(dirname) * sizeof(wchar_t) + 4); if (!d->dirname) { errno = ENOMEM; free(d); return NULL; } - strcpy(d->dirname, dirname); - if (d->dirname[strlen(d->dirname) - 1] != '/' && d->dirname[strlen(d->dirname) - 1] != '\\') - strcat(d->dirname, "\\"); /* Append backslash if not already - * there */ - strcat(d->dirname, "*"); /* Search for entries named anything */ + wcscpy(d->dirname, dirname); + if (d->dirname[wcslen(d->dirname) - 1] != '/' && d->dirname[wcslen(d->dirname) - 1] != '\\') + wcscat(d->dirname, L"\\"); /* Append backslash if not already + * there */ + wcscat(d->dirname, L"*"); /* Search for entries named anything */ d->handle = INVALID_HANDLE_VALUE; d->ret.d_ino = 0; /* no inodes on win32 */ d->ret.d_reclen = 0; /* not used on win32 */ @@ -86,16 +86,16 @@ void rewinddir(DIR* d) { } struct dirent* readdir(DIR* d) { - WIN32_FIND_DATA fd; + WIN32_FIND_DATAW fd; if (d->handle == INVALID_HANDLE_VALUE) { - d->handle = FindFirstFile(d->dirname, &fd); + d->handle = FindFirstFileW(d->dirname, &fd); if (d->handle == INVALID_HANDLE_VALUE) { errno = ENOENT; return NULL; } } else { - if (!FindNextFile(d->handle, &fd)) { + if (!FindNextFileW(d->handle, &fd)) { if (GetLastError() == ERROR_NO_MORE_FILES) { /* No more files, force errno=0 (unlike mingw) */ errno = 0; @@ -104,9 +104,9 @@ struct dirent* readdir(DIR* d) { return NULL; } } - strcpy(d->ret.d_name, fd.cFileName); /* Both strings are MAX_PATH + wcscpy(d->ret.d_name, fd.cFileName); /* Both strings are MAX_PATH * long */ - d->ret.d_namlen = strlen(d->ret.d_name); + d->ret.d_namlen = wcslen(d->ret.d_name); d->ret.d_type = 0; if (fd.dwFileAttributes & FILE_ATTRIBUTE_NORMAL) { diff --git a/src/platforms/pc/fs_os.c b/src/platforms/pc/fs_os.c index e425d45416..e96a9ad311 100644 --- a/src/platforms/pc/fs_os.c +++ b/src/platforms/pc/fs_os.c @@ -8,6 +8,8 @@ #define rename MoveFileA #define ftruncate _chsize #include "./dirent.inc" +#include "tkc/utf8.h" +#include "tkc/mem.h" #endif #if defined(__APPLE__) @@ -77,8 +79,18 @@ ret_t fs_os_dir_read(fs_dir_t* dir, fs_item_t* item) { uint8_t type = ent->d_type; item->is_dir = type & DT_DIR; item->is_file = type & DT_REG; +#ifdef WIN32 + int16_t len = 0; + char* name = NULL; + + len = wcslen(ent->d_name) * 2 + 1; + name = (char*)TKMEM_ALLOC(len); + utf8_from_utf16(ent->d_name, name, len); + tk_strncpy(item->name, name, MAX_PATH); + TKMEM_FREE(name); +#else tk_strncpy(item->name, ent->d_name, MAX_PATH); - +#endif return RET_OK; } else { return RET_FAIL; @@ -115,27 +127,98 @@ static fs_file_t* fs_file_create(FILE* fp) { fs_file_t* fs_os_open_file(fs_t* fs, const char* name, const char* mode) { (void)fs; + return_value_if_fail(name != NULL && mode != NULL, NULL); +#ifdef WIN32 + int16_t len = 0; + fs_file_t* file = NULL; + wchar_t* w_name = NULL; + wchar_t* w_mode = NULL; + + len = strlen(name) + 1; + w_name = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(name, w_name, len); + + len = strlen(mode) + 1; + w_mode = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(mode, w_mode, len); + + file = fs_file_create(_wfopen(w_name, w_mode)); + TKMEM_FREE(w_name); + TKMEM_FREE(w_mode); + return file; +#else return fs_file_create(fopen(name, mode)); +#endif } ret_t fs_os_remove_file(fs_t* fs, const char* name) { (void)fs; + return_value_if_fail(name != NULL, FALSE); - unlink(name); +#ifdef WIN32 + int16_t len = 0; + wchar_t* w_name = NULL; + len = strlen(name) + 1; + w_name = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(name, w_name, len); + + _wunlink(w_name); + TKMEM_FREE(w_name); +#else + unlink(name); +#endif return RET_OK; } bool_t fs_os_file_exist(fs_t* fs, const char* name) { - struct stat st; + (void)fs; + return_value_if_fail(name != NULL, FALSE); +#ifdef WIN32 + bool_t rtn = FALSE; + int16_t len = 0; + wchar_t* w_name = NULL; + struct _stat64i32 st; + + len = strlen(name) + 1; + w_name = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(name, w_name, len); + + rtn = (_wstat(w_name, &st) == 0 && st.st_mode & S_IFREG); + TKMEM_FREE(w_name); + return rtn; +#else + struct stat st; return (stat(name, &st) == 0 && st.st_mode & S_IFREG); +#endif } bool_t fs_os_file_rename(fs_t* fs, const char* name, const char* new_name) { (void)fs; - + return_value_if_fail(name != NULL && new_name != NULL, FALSE); + +#ifdef WIN32 + bool_t rtn = FALSE; + int16_t len = 0; + wchar_t* w_name = NULL; + wchar_t* w_new_name = NULL; + + len = strlen(name) + 1; + w_name = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(name, w_name, len); + + len = strlen(new_name) + 1; + w_new_name = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(new_name, w_new_name, len); + + rtn = _wrename(w_name, w_new_name) == 0; + TKMEM_FREE(w_name); + TKMEM_FREE(w_new_name); + return rtn; +#else return rename(name, new_name) == 0; +#endif } fs_dir_t* fs_dir_create(DIR* dir) { @@ -156,7 +239,23 @@ fs_dir_t* fs_dir_create(DIR* dir) { } fs_dir_t* fs_os_open_dir(fs_t* fs, const char* name) { + (void)fs; + return_value_if_fail(name != NULL, NULL); +#ifdef WIN32 + int16_t len = 0; + wchar_t* w_name = NULL; + fs_dir_t* pDir = NULL; + + len = strlen(name) + 1; + w_name = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(name, w_name, len); + + pDir = fs_dir_create(opendir(w_name)); + TKMEM_FREE(w_name); + return pDir; +#else return fs_dir_create(opendir(name)); +#endif } ret_t fs_os_remove_dir(fs_t* fs, const char* name) { @@ -165,9 +264,25 @@ ret_t fs_os_remove_dir(fs_t* fs, const char* name) { } bool_t fs_os_dir_exist(fs_t* fs, const char* name) { + (void)fs; + return_value_if_fail(name != NULL, FALSE); +#ifdef WIN32 + struct _stat64i32 st; + bool_t rtn = FALSE; + int16_t len = 0; + wchar_t* w_name = NULL; + + len = strlen(name) + 1; + w_name = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(name, w_name, len); + + rtn = (_wstat(w_name, &st) == 0 && st.st_mode & S_IFDIR); + TKMEM_FREE(w_name); + return rtn; +#else struct stat st; - return (stat(name, &st) == 0 && st.st_mode & S_IFDIR); +#endif } bool_t fs_os_dir_rename(fs_t* fs, const char* name, const char* new_name) { @@ -180,10 +295,30 @@ bool_t fs_os_dir_rename(fs_t* fs, const char* name, const char* new_name) { } int32_t fs_os_get_file_size(fs_t* fs, const char* name) { + (void)fs; + return_value_if_fail(name != NULL, -1); +#ifdef WIN32 + struct _stat64i32 st; + bool_t rtn = FALSE; + int16_t len = 0; + wchar_t* w_name = NULL; + + len = strlen(name) + 1; + w_name = (wchar_t*)TKMEM_ALLOC(len * 2); + utf8_to_utf16(name, w_name, len); + + int n = _wstat(w_name, &st); + rtn = n == 0; + TKMEM_FREE(w_name); + if (!rtn) { + return -1; + } + return st.st_size; +#else struct stat st; return_value_if_fail(stat(name, &st) == 0, -1); - return st.st_size; +#endif } ret_t fs_os_get_disk_info(fs_t* fs, const char* volume, int32_t* free_kb, int32_t* total_kb) { diff --git a/src/platforms/pc/semaphore.c b/src/platforms/pc/semaphore.c new file mode 100644 index 0000000000..676cc57113 --- /dev/null +++ b/src/platforms/pc/semaphore.c @@ -0,0 +1,114 @@ +/** + * File: semaphore.c + * Author: AWTK Develop Team + * Brief: semaphore + * + * Copyright (c) 2018 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-27 Li XianJing created + * + */ + +#ifdef WIN32 +#include +#include +struct _tk_semaphore_t { + HANDLE sem; +}; +#elif defined(HAS_PTHREAD) +#include +#include +#include +#include +struct _tk_semaphore_t { + sem_t* sem; +}; +#endif + +#include "tkc/mem.h" +#include "tkc/time_now.h" +#include "tkc/platform.h" +#include "tkc/semaphore.h" + +tk_semaphore_t* tk_semaphore_create(uint32_t value, const char* name) { + tk_semaphore_t* semaphore = TKMEM_ZALLOC(tk_semaphore_t); + return_value_if_fail(semaphore != NULL, NULL); + +#ifdef HAS_PTHREAD + semaphore->sem = sem_open(name, O_CREAT, S_IRUSR | S_IWUSR, value); + if (semaphore->sem == NULL) { + TKMEM_FREE(semaphore); + semaphore = NULL; + } +#elif defined(WIN32) + semaphore->sem = CreateSemaphore(NULL, value, INT_MAX, name); + if (semaphore->sem == NULL) { + TKMEM_FREE(semaphore); + semaphore = NULL; + } +#endif /*HAS_PTHREAD*/ + + return semaphore; +} + +ret_t tk_semaphore_wait(tk_semaphore_t* semaphore, uint32_t timeout_ms) { + uint32_t start = time_now_ms(); + return_value_if_fail(semaphore != NULL, RET_BAD_PARAMS); + +#ifdef HAS_PTHREAD + do { + if (sem_trywait(semaphore->sem) == 0) { + return RET_OK; + } + + if ((time_now_ms() - start) >= timeout_ms) { + return RET_TIMEOUT; + } + + sleep_ms(10); + } while (TRUE); +#elif defined(WIN32) + if (WaitForSingleObject(semaphore->sem, timeout_ms) == WAIT_TIMEOUT) { + return RET_TIMEOUT; + } + + return RET_OK; +#endif /*HAS_PTHREAD*/ +} + +ret_t tk_semaphore_post(tk_semaphore_t* semaphore) { + return_value_if_fail(semaphore != NULL, RET_BAD_PARAMS); + +#ifdef HAS_PTHREAD + return_value_if_fail(sem_post(semaphore->sem) == 0, RET_FAIL); +#elif defined(WIN32) + return_value_if_fail(ReleaseSemaphore(semaphore->sem, 1, NULL), RET_FAIL); +#endif /*HAS_PTHREAD*/ + + return RET_OK; +} + +ret_t tk_semaphore_destroy(tk_semaphore_t* semaphore) { + return_value_if_fail(semaphore != NULL, RET_BAD_PARAMS); + +#ifdef HAS_PTHREAD + sem_close(semaphore->sem); +#elif defined(WIN32) + CloseHandle(semaphore->sem); +#endif /*HAS_PTHREAD*/ + + memset(&semaphore, 0x00, sizeof(tk_semaphore_t)); + TKMEM_FREE(semaphore); + + return RET_OK; +} 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); } diff --git a/src/streams/README.md b/src/streams/README.md new file mode 100644 index 0000000000..54a4b90af6 --- /dev/null +++ b/src/streams/README.md @@ -0,0 +1,11 @@ +# 各种stream的实现 + +* file 文件流 +* mem 内存流 +* noisy 故障注入流 +* shdlc 点对点可靠传输流 +* buffered 缓存流 +* inet tcp/udp 流 +* serial 串口流 +* misc 其它流 + diff --git a/src/streams/SConscript b/src/streams/SConscript index e426c1cf90..4293f8adfa 100644 --- a/src/streams/SConscript +++ b/src/streams/SConscript @@ -4,8 +4,9 @@ import copy BIN_DIR=os.environ['BIN_DIR']; LIB_DIR=os.environ['LIB_DIR']; -sources = Glob('buffered/*.c') + Glob('file/*.c') + Glob('inet/*.c') + Glob('mem/*.c') + Glob('serial/*.c') \ - + Glob('shdlc/*.c') + Glob('noisy/*.c') +sources = Glob('buffered/*.c') + Glob('file/*.c') \ + + Glob('inet/*.c') + Glob('mem/*.c') + Glob('serial/*.c') \ + + Glob('shdlc/*.c') + Glob('noisy/*.c') + Glob('misc/*.c') env=DefaultEnvironment().Clone() diff --git a/src/streams/misc/ostream_retry.c b/src/streams/misc/ostream_retry.c new file mode 100644 index 0000000000..15ac1bf1b9 --- /dev/null +++ b/src/streams/misc/ostream_retry.c @@ -0,0 +1,211 @@ +/** + * File: ostream_retry.c + * Author: AWTK Develop Team + * Brief: retry ostream: if write fail retry write later. + * + * Copyright (c) 2019 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-26 Li XianJing created + * + */ + +#include "tkc/buffer.h" +#include "streams/misc/ostream_retry.h" + +static ret_t tk_ostream_retry_write_to_buffer(tk_ostream_retry_t* ostream_retry, + const uint8_t* buff, uint32_t max_size) { + ring_buffer_t* rb = ostream_retry->rb; + uint32_t size = max_size + sizeof(max_size); + data_discard_policy_t policy = ostream_retry->discard_policy; + + if (ring_buffer_ensure_write_space(rb, size) != RET_OK) { + if (policy == DATA_DISCARD_NEW) { + ostream_retry->discard_packets++; + ostream_retry->discard_bytes += max_size; + return RET_OK; + } else { + tk_ostream_retry_clear_buffer(TK_OSTREAM(ostream_retry)); + } + } + + return_value_if_fail(ring_buffer_write_len(rb, &max_size, sizeof(max_size)) == RET_OK, RET_FAIL); + return_value_if_fail(ring_buffer_write_len(rb, buff, max_size) == RET_OK, RET_FAIL); + ostream_retry->pending_bytes += max_size; + ostream_retry->pending_packets++; + + return RET_OK; +} + +static int32_t tk_ostream_retry_write(tk_ostream_t* stream, const uint8_t* buff, + uint32_t max_size) { + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(stream); + tk_ostream_t* ostream = ostream_retry->real_ostream; + uint32_t timeout = ostream_retry->timeout; + ring_buffer_t* rb = ostream_retry->rb; + + if (ring_buffer_size(rb) > 0) { + tk_ostream_flush(stream); + } + + if (ring_buffer_size(rb) > 0) { + tk_ostream_retry_write_to_buffer(ostream_retry, buff, max_size); + tk_ostream_flush(stream); + } else { + int32_t ret = tk_ostream_write_len(ostream, buff, max_size, timeout); + if (ret <= 0) { + tk_ostream_retry_write_to_buffer(ostream_retry, buff, max_size); + } else if (ret < max_size) { + tk_ostream_retry_write_to_buffer(ostream_retry, buff + ret, max_size - ret); + } + } + + return max_size; +} + +static ret_t tk_ostream_retry_flush(tk_ostream_t* stream) { + uint32_t size = 0; + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(stream); + uint32_t timeout = ostream_retry->timeout; + ring_buffer_t* rb = ostream_retry->rb; + + if (!ring_buffer_is_empty(rb)) { + wbuffer_t* wb = &(ostream_retry->wb); + tk_ostream_t* ostream = ostream_retry->real_ostream; + + do { + uint32_t packet_size = 0; + ostream_retry->retried_times++; + if (ring_buffer_peek(rb, &size, sizeof(size)) != sizeof(size)) { + break; + } + wb->cursor = 0; + packet_size = size + sizeof(size); + + return_value_if_fail(wbuffer_extend_capacity(wb, size) == RET_OK, RET_OOM); + if (ring_buffer_peek(rb, wb->data, packet_size) != packet_size) { + break; + } + + if (tk_ostream_write_len(ostream, wb->data + sizeof(size), size, timeout) == size) { + ostream_retry->retried_times = 0; + ostream_retry->pending_packets--; + ostream_retry->pending_bytes -= size; + ring_buffer_skip(rb, packet_size); + } else { + if (ostream_retry->retried_times == ostream_retry->max_retry_times) { + tk_ostream_retry_clear_buffer(stream); + } + break; + } + } while (TRUE); + } + + return RET_OK; +} + +static ret_t tk_ostream_retry_set_prop(object_t* obj, const char* name, const value_t* v) { + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(obj); + tk_ostream_t* real_ostream = ostream_retry->real_ostream; + + return object_set_prop(OBJECT(real_ostream), name, v); +} + +static ret_t tk_ostream_retry_get_prop(object_t* obj, const char* name, value_t* v) { + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(obj); + tk_ostream_t* real_ostream = ostream_retry->real_ostream; + + return object_get_prop(OBJECT(real_ostream), name, v); +} + +static ret_t tk_ostream_retry_on_destroy(object_t* obj) { + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(obj); + + wbuffer_deinit(&(ostream_retry->wb)); + ring_buffer_destroy(ostream_retry->rb); + OBJECT_UNREF(ostream_retry->real_ostream); + + return RET_OK; +} + +static const object_vtable_t s_tk_ostream_retry_vtable = {.type = "tk_ostream_retry", + .desc = "tk_ostream_retry", + .size = sizeof(tk_ostream_retry_t), + .on_destroy = tk_ostream_retry_on_destroy, + .get_prop = tk_ostream_retry_get_prop, + .set_prop = tk_ostream_retry_set_prop}; + +tk_ostream_t* tk_ostream_retry_create(tk_ostream_t* real_ostream) { + object_t* obj = NULL; + tk_ostream_retry_t* ostream_retry = NULL; + return_value_if_fail(real_ostream != NULL, NULL); + + obj = object_create(&s_tk_ostream_retry_vtable); + ostream_retry = TK_OSTREAM_RETRY(obj); + return_value_if_fail(ostream_retry != NULL, NULL); + + OBJECT_REF(real_ostream); + ostream_retry->timeout = 3000; + ostream_retry->max_retry_times = 10; + ostream_retry->real_ostream = real_ostream; + ostream_retry->rb = ring_buffer_create(1024, 4096); + wbuffer_init_extendable(&(ostream_retry->wb)); + TK_OSTREAM(obj)->write = tk_ostream_retry_write; + TK_OSTREAM(obj)->flush = tk_ostream_retry_flush; + + return TK_OSTREAM(obj); +} + +ret_t tk_ostream_retry_set_max_retry_times(tk_ostream_t* ostream, uint32_t max_retry_times) { + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(ostream); + return_value_if_fail(ostream_retry != NULL, RET_BAD_PARAMS); + + ostream_retry->max_retry_times = max_retry_times; + + return RET_OK; +} + +ret_t tk_ostream_retry_set_max_buffer_size(tk_ostream_t* ostream, uint32_t max_buffer_size) { + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(ostream); + ring_buffer_t* rb = ostream_retry->rb; + return_value_if_fail(ostream_retry != NULL, RET_BAD_PARAMS); + + rb->max_capacity = tk_max(rb->max_capacity, max_buffer_size); + + return RET_OK; +} + +ret_t tk_ostream_retry_clear_buffer(tk_ostream_t* ostream) { + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(ostream); + ring_buffer_t* rb = ostream_retry->rb; + return_value_if_fail(ostream_retry != NULL, RET_BAD_PARAMS); + + ostream_retry->retried_times = 0; + ostream_retry->discard_bytes += ostream_retry->pending_bytes; + ostream_retry->discard_packets += ostream_retry->pending_packets; + + ring_buffer_reset(rb); + ostream_retry->pending_bytes = 0; + ostream_retry->pending_packets = 0; + + return RET_OK; +} + +ret_t tk_ostream_retry_set_discard_policy(tk_ostream_t* ostream, + data_discard_policy_t discard_policy) { + tk_ostream_retry_t* ostream_retry = TK_OSTREAM_RETRY(ostream); + return_value_if_fail(ostream_retry != NULL, RET_BAD_PARAMS); + + ostream_retry->discard_policy = discard_policy; + + return RET_OK; +} diff --git a/src/streams/misc/ostream_retry.h b/src/streams/misc/ostream_retry.h new file mode 100644 index 0000000000..21433120ef --- /dev/null +++ b/src/streams/misc/ostream_retry.h @@ -0,0 +1,187 @@ +/** + * File: ostream_retry.h + * Author: AWTK Develop Team + * Brief: retry ostream: if write fail retry write later. + * + * + * Copyright (c) 2019 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-26 Li XianJing created + * + */ + +#ifndef TK_OSTREAM_RETRY_H +#define TK_OSTREAM_RETRY_H + +#include "tkc/buffer.h" +#include "tkc/ostream.h" +#include "tkc/ring_buffer.h" + +BEGIN_C_DECLS + +struct _tk_ostream_retry_t; +typedef struct _tk_ostream_retry_t tk_ostream_retry_t; + +/** + * @enum data_discard_policy_t + * @annotation ["scriptable"] + * @prefix DATA_DISCARD_ + * + * 缓存不够时丢弃数据的策略。 + */ +typedef enum _data_discard_policy_t { + /** + * @const DATA_DISCARD_OLD + * 丢弃旧的数据。 + */ + DATA_DISCARD_OLD = 0, + /** + * @const DATA_DISCARD_NEW + * 丢弃新的数据。 + */ + DATA_DISCARD_NEW +} data_discard_policy_t; + +/** + * @class tk_ostream_retry_t + * @parent tk_ostream_t + * + * 如果写数据失败,将数据放入ring_buffer,后面再重试(flush)。 + * + * 如果重试次数超出最大值,则丢掉数据。 + * + */ +struct _tk_ostream_retry_t { + tk_ostream_t ostream; + + /** + * @property {uint32_t} pending_bytes + * @annotation ["readable"] + * 待重写的数据大小。 + */ + uint32_t pending_bytes; + /** + * @property {uint32_t} pending_packets + * @annotation ["readable"] + * 待重写的数据包的个数。 + */ + uint32_t pending_packets; + /** + * @property {uint32_t} discard_bytes + * @annotation ["readable"] + * 总共丢弃数据的字节数。 + */ + uint32_t discard_bytes; + /** + * @property {uint32_t} discard_packets + * @annotation ["readable"] + * 总共丢弃数据包的个数。 + */ + uint32_t discard_packets; + /** + * @property {uint32_t} max_retry_times + * @annotation ["readable"] + * 尝试次数超过指定的值时丢弃该数据包。 + */ + uint32_t max_retry_times; + /** + * @property {uint32_t} timeout + * @annotation ["readable"] + * 写超时时间(ms)。 + */ + uint32_t timeout; + /** + * @property {data_discard_policy_t} discard_policy + * @annotation ["readable"] + * 缓存不够时,丢弃数据包的策略。 + */ + data_discard_policy_t discard_policy; + + /*private*/ + wbuffer_t wb; + ring_buffer_t* rb; + uint32_t retried_times; + tk_ostream_t* real_ostream; +}; + +/** + * @method tk_ostream_retry_create + * + * 创建ostream对象。 + * + * 本函数自动增加real_ostream的引用计数。 + * + * @param {tk_ostream_t*} real_ostream 实际的ostream对象。 + * + * @return {tk_ostream_t*} 返回ostream对象。 + * + */ +tk_ostream_t* tk_ostream_retry_create(tk_ostream_t* real_ostream); + +/** + * @method tk_ostream_retry_set_max_retry_times + * + * 设置最大尝试次数。 + * + * @param {tk_ostream_t*} ostream ostream对象。 + * @param {uint32_t} max_retry_times 最大尝试次数。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + * + */ +ret_t tk_ostream_retry_set_max_retry_times(tk_ostream_t* ostream, uint32_t max_retry_times); + +/** + * @method tk_ostream_retry_set_max_buffer_size + * + * 设置最大缓存大小。 + * + * @param {tk_ostream_t*} ostream ostream对象。 + * @param {uint32_t} max_buffer_size 缓存大小。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + * + */ +ret_t tk_ostream_retry_set_max_buffer_size(tk_ostream_t* ostream, uint32_t max_buffer_size); + +/** + * @method tk_ostream_retry_clear_buffer + * + * 清除缓存的数据。 + * + * @param {tk_ostream_t*} ostream ostream对象。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + * + */ +ret_t tk_ostream_retry_clear_buffer(tk_ostream_t* ostream); + +/** + * @method tk_ostream_retry_set_discard_policy + * + * 设置数据丢弃策略。 + * + * @param {tk_ostream_t*} ostream ostream对象。 + * @param {data_discard_policy_t} discard_policy 丢弃策略。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + * + */ +ret_t tk_ostream_retry_set_discard_policy(tk_ostream_t* ostream, + data_discard_policy_t discard_policy); + +#define TK_OSTREAM_RETRY(obj) ((tk_ostream_retry_t*)(obj)) + +END_C_DECLS + +#endif /*TK_OSTREAM_RETRY_H*/ diff --git a/src/tkc/color_parser.c b/src/tkc/color_parser.c index b94a883133..143a1fb987 100644 --- a/src/tkc/color_parser.c +++ b/src/tkc/color_parser.c @@ -8,146 +8,146 @@ typedef struct _color_map_t { const char* value; } color_map_t; -static color_map_t colors_map[] = {{"aliceblue", "#f0f8ff"}, - {"antiquewhite", "#faebd7"}, - {"aqua", "#00ffff"}, - {"aquamarine", "#7fffd4"}, - {"azure", "#f0ffff"}, - {"beige", "#f5f5dc"}, - {"bisque", "#ffe4c4"}, - {"black", "#000000"}, - {"blanchedalmond", "#ffebcd"}, - {"blue", "#0000ff"}, - {"blueviolet", "#8a2be2"}, - {"brown", "#a52a2a"}, - {"burlywood", "#deb887"}, - {"cadetblue", "#5f9ea0"}, - {"chartreuse", "#7fff00"}, - {"chocolate", "#d2691e"}, - {"coral", "#ff7f50"}, - {"cornflowerblue", "#6495ed"}, - {"cornsilk", "#fff8dc"}, - {"crimson", "#dc143c"}, - {"cyan", "#00ffff"}, - {"darkblue", "#00008b"}, - {"darkcyan", "#008b8b"}, - {"darkgoldenrod", "#b8860b"}, - {"darkgray", "#a9a9a9"}, - {"darkgreen", "#006400"}, - {"darkkhaki", "#bdb76b"}, - {"darkmagenta", "#8b008b"}, - {"darkolivegreen", "#556b2f"}, - {"darkorange", "#ff8c00"}, - {"darkorchid", "#9932cc"}, - {"darkred", "#8b0000"}, - {"darksalmon", "#e9967a"}, - {"darkseagreen", "#8fbc8f"}, - {"darkslateblue", "#483d8b"}, - {"darkslategray", "#2f4f4f"}, - {"darkturquoise", "#00ced1"}, - {"darkviolet", "#9400d3"}, - {"deeppink", "#ff1493"}, - {"deepskyblue", "#00bfff"}, - {"dimgray", "#696969"}, - {"dodgerblue", "#1e90ff"}, - {"firebrick", "#b22222"}, - {"floralwhite", "#fffaf0"}, - {"forestgreen", "#228b22"}, - {"fuchsia", "#ff00ff"}, - {"gainsboro", "#dcdcdc"}, - {"ghostwhite", "#f8f8ff"}, - {"gold", "#ffd700"}, - {"goldenrod", "#daa520"}, - {"gray", "#bebebe"}, - {"green", "#008000"}, - {"greenyellow", "#adff2f"}, - {"honeydew", "#f0fff0"}, - {"hotpink", "#ff69b4"}, - {"indianred", "#cd5c5c"}, - {"indigo", "#4b0082"}, - {"ivory", "#fffff0"}, - {"khaki", "#f0d58c"}, - {"lavender", "#e6e6fa"}, - {"lavenderblush", "#fff0f5"}, - {"lawngreen", "#7cfc00"}, - {"lemonchiffon", "#fffacd"}, - {"lightblue", "#add8e6"}, - {"lightcoral", "#f08080"}, - {"lightcyan", "#e0ffff"}, - {"lightgoldenrodyellow", "#fafad2"}, - {"lightgreen", "#90ee90"}, - {"lightgrey", "#d3d3d3"}, - {"lightpink", "#ffb6c1"}, - {"lightsalmon", "#ffa07a"}, - {"lightseagreen", "#20b2aa"}, - {"lightskyblue", "#87cefa"}, - {"lightslategray", "#778899"}, - {"lightsteelblue", "#b0c4de"}, - {"lightyellow", "#ffffe0"}, - {"lime", "#00ff00"}, - {"limegreen", "#32cd32"}, - {"linen", "#faf0e6"}, - {"magenta", "#ff00ff"}, - {"maroon", "#800000"}, - {"mediumaquamarine", "#66cdaa"}, - {"mediumblue", "#0000cd"}, - {"mediumorchid", "#ba55d3"}, - {"mediumpurple", "#9370db"}, - {"mediumseagreen", "#3cb371"}, - {"mediumslateblue", "#7b68ee"}, - {"mediumspringgreen", "#00fa9a"}, - {"mediumturquoise", "#48d1cc"}, - {"mediumvioletred", "#c71585"}, - {"midnightblue", "#191970"}, - {"mintcream", "#f5fffa"}, - {"mistyrose", "#ffe4e1"}, - {"moccasin", "#ffe4b5"}, - {"navajowhite", "#ffdead"}, - {"navy", "#000080"}, - {"oldlace", "#fdf5e6"}, - {"olive", "#808000"}, - {"olivedrab", "#6b8e23"}, - {"orange", "#ffa500"}, - {"orangered", "#ff4500"}, - {"orchid", "#da70d6"}, - {"palegoldenrod", "#eee8aa"}, - {"palegreen", "#98fb98"}, - {"paleturquoise", "#afeeee"}, - {"palevioletred", "#db7093"}, - {"papayawhip", "#ffefd5"}, - {"peachpuff", "#ffdab9"}, - {"peru", "#cd853f"}, - {"pink", "#ffc0cb"}, - {"plum", "#dda0dd"}, - {"powderblue", "#b0e0e6"}, - {"purple", "#800080"}, - {"red", "#ff0000"}, - {"rosybrown", "#bc8f8f"}, - {"royalblue", "#4169e1"}, - {"saddlebrown", "#8b4513"}, - {"salmon", "#fa8072"}, - {"sandybrown", "#f4a460"}, - {"seagreen", "#2e8b57"}, - {"seashell", "#fff5ee"}, - {"sienna", "#a0522d"}, - {"silver", "#c0c0c0"}, - {"skyblue", "#87ceeb"}, - {"slateblue", "#6a5acd"}, - {"slategray", "#708090"}, - {"snow", "#fffafa"}, - {"springgreen", "#00ff7f"}, - {"steelblue", "#4682b4"}, - {"tan", "#d2b48c"}, - {"teal", "#008080"}, - {"thistle", "#d8bfd8"}, - {"tomato", "#ff6347"}, - {"turquoise", "#40e0d0"}, - {"violet", "#ee82ee"}, - {"wheat", "#f5deb3"}, - {"white", "#ffffff"}, - {"whitesmoke", "#f5f5f5"}, - {"yellow", "#ffff00"}, - {"yellowgreen", "#9acd32"}}; +static color_map_t const colors_map[] = {{"aliceblue", "#f0f8ff"}, + {"antiquewhite", "#faebd7"}, + {"aqua", "#00ffff"}, + {"aquamarine", "#7fffd4"}, + {"azure", "#f0ffff"}, + {"beige", "#f5f5dc"}, + {"bisque", "#ffe4c4"}, + {"black", "#000000"}, + {"blanchedalmond", "#ffebcd"}, + {"blue", "#0000ff"}, + {"blueviolet", "#8a2be2"}, + {"brown", "#a52a2a"}, + {"burlywood", "#deb887"}, + {"cadetblue", "#5f9ea0"}, + {"chartreuse", "#7fff00"}, + {"chocolate", "#d2691e"}, + {"coral", "#ff7f50"}, + {"cornflowerblue", "#6495ed"}, + {"cornsilk", "#fff8dc"}, + {"crimson", "#dc143c"}, + {"cyan", "#00ffff"}, + {"darkblue", "#00008b"}, + {"darkcyan", "#008b8b"}, + {"darkgoldenrod", "#b8860b"}, + {"darkgray", "#a9a9a9"}, + {"darkgreen", "#006400"}, + {"darkkhaki", "#bdb76b"}, + {"darkmagenta", "#8b008b"}, + {"darkolivegreen", "#556b2f"}, + {"darkorange", "#ff8c00"}, + {"darkorchid", "#9932cc"}, + {"darkred", "#8b0000"}, + {"darksalmon", "#e9967a"}, + {"darkseagreen", "#8fbc8f"}, + {"darkslateblue", "#483d8b"}, + {"darkslategray", "#2f4f4f"}, + {"darkturquoise", "#00ced1"}, + {"darkviolet", "#9400d3"}, + {"deeppink", "#ff1493"}, + {"deepskyblue", "#00bfff"}, + {"dimgray", "#696969"}, + {"dodgerblue", "#1e90ff"}, + {"firebrick", "#b22222"}, + {"floralwhite", "#fffaf0"}, + {"forestgreen", "#228b22"}, + {"fuchsia", "#ff00ff"}, + {"gainsboro", "#dcdcdc"}, + {"ghostwhite", "#f8f8ff"}, + {"gold", "#ffd700"}, + {"goldenrod", "#daa520"}, + {"gray", "#bebebe"}, + {"green", "#008000"}, + {"greenyellow", "#adff2f"}, + {"honeydew", "#f0fff0"}, + {"hotpink", "#ff69b4"}, + {"indianred", "#cd5c5c"}, + {"indigo", "#4b0082"}, + {"ivory", "#fffff0"}, + {"khaki", "#f0d58c"}, + {"lavender", "#e6e6fa"}, + {"lavenderblush", "#fff0f5"}, + {"lawngreen", "#7cfc00"}, + {"lemonchiffon", "#fffacd"}, + {"lightblue", "#add8e6"}, + {"lightcoral", "#f08080"}, + {"lightcyan", "#e0ffff"}, + {"lightgoldenrodyellow", "#fafad2"}, + {"lightgreen", "#90ee90"}, + {"lightgrey", "#d3d3d3"}, + {"lightpink", "#ffb6c1"}, + {"lightsalmon", "#ffa07a"}, + {"lightseagreen", "#20b2aa"}, + {"lightskyblue", "#87cefa"}, + {"lightslategray", "#778899"}, + {"lightsteelblue", "#b0c4de"}, + {"lightyellow", "#ffffe0"}, + {"lime", "#00ff00"}, + {"limegreen", "#32cd32"}, + {"linen", "#faf0e6"}, + {"magenta", "#ff00ff"}, + {"maroon", "#800000"}, + {"mediumaquamarine", "#66cdaa"}, + {"mediumblue", "#0000cd"}, + {"mediumorchid", "#ba55d3"}, + {"mediumpurple", "#9370db"}, + {"mediumseagreen", "#3cb371"}, + {"mediumslateblue", "#7b68ee"}, + {"mediumspringgreen", "#00fa9a"}, + {"mediumturquoise", "#48d1cc"}, + {"mediumvioletred", "#c71585"}, + {"midnightblue", "#191970"}, + {"mintcream", "#f5fffa"}, + {"mistyrose", "#ffe4e1"}, + {"moccasin", "#ffe4b5"}, + {"navajowhite", "#ffdead"}, + {"navy", "#000080"}, + {"oldlace", "#fdf5e6"}, + {"olive", "#808000"}, + {"olivedrab", "#6b8e23"}, + {"orange", "#ffa500"}, + {"orangered", "#ff4500"}, + {"orchid", "#da70d6"}, + {"palegoldenrod", "#eee8aa"}, + {"palegreen", "#98fb98"}, + {"paleturquoise", "#afeeee"}, + {"palevioletred", "#db7093"}, + {"papayawhip", "#ffefd5"}, + {"peachpuff", "#ffdab9"}, + {"peru", "#cd853f"}, + {"pink", "#ffc0cb"}, + {"plum", "#dda0dd"}, + {"powderblue", "#b0e0e6"}, + {"purple", "#800080"}, + {"red", "#ff0000"}, + {"rosybrown", "#bc8f8f"}, + {"royalblue", "#4169e1"}, + {"saddlebrown", "#8b4513"}, + {"salmon", "#fa8072"}, + {"sandybrown", "#f4a460"}, + {"seagreen", "#2e8b57"}, + {"seashell", "#fff5ee"}, + {"sienna", "#a0522d"}, + {"silver", "#c0c0c0"}, + {"skyblue", "#87ceeb"}, + {"slateblue", "#6a5acd"}, + {"slategray", "#708090"}, + {"snow", "#fffafa"}, + {"springgreen", "#00ff7f"}, + {"steelblue", "#4682b4"}, + {"tan", "#d2b48c"}, + {"teal", "#008080"}, + {"thistle", "#d8bfd8"}, + {"tomato", "#ff6347"}, + {"turquoise", "#40e0d0"}, + {"violet", "#ee82ee"}, + {"wheat", "#f5deb3"}, + {"white", "#ffffff"}, + {"whitesmoke", "#f5f5f5"}, + {"yellow", "#ffff00"}, + {"yellowgreen", "#9acd32"}}; static int compare_color(const color_map_t* a, const color_map_t* b) { return strcmp(a->name, b->name); 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被销毁时调用(方便脚本语言去释放回调函数)。 diff --git a/src/tkc/ring_buffer.c b/src/tkc/ring_buffer.c index c8bc55661b..8bc739dc57 100644 --- a/src/tkc/ring_buffer.c +++ b/src/tkc/ring_buffer.c @@ -22,8 +22,6 @@ #include "tkc/mem.h" #include "tkc/ring_buffer.h" -static ret_t ring_buffer_extend(ring_buffer_t* ring_buffer, uint32_t size); - ring_buffer_t* ring_buffer_create(uint32_t init_capacity, uint32_t max_capacity) { ring_buffer_t* ring_buffer = NULL; return_value_if_fail(init_capacity >= 32, NULL); @@ -181,7 +179,7 @@ uint32_t ring_buffer_peek(ring_buffer_t* ring_buffer, void* buff, uint32_t size) uint32_t ring_buffer_write(ring_buffer_t* ring_buffer, const void* buff, uint32_t size) { return_value_if_fail(ring_buffer != NULL && buff != NULL, 0); - ring_buffer_extend(ring_buffer, size); + ring_buffer_ensure_write_space(ring_buffer, size); if (size == 0 || ring_buffer_free_size(ring_buffer) == 0) { return 0; } @@ -238,7 +236,19 @@ ret_t ring_buffer_read_len(ring_buffer_t* ring_buffer, void* buff, uint32_t size } } -static ret_t ring_buffer_extend(ring_buffer_t* ring_buffer, uint32_t size) { +ret_t ring_buffer_skip(ring_buffer_t* ring_buffer, uint32_t size) { + return_value_if_fail(ring_buffer != NULL, RET_BAD_PARAMS); + + if (ring_buffer_size(ring_buffer) >= size) { + ring_buffer->r = (ring_buffer->r + size) % ring_buffer->capacity; + + return RET_OK; + } else { + return RET_FAIL; + } +} + +ret_t ring_buffer_ensure_write_space(ring_buffer_t* ring_buffer, uint32_t size) { uint32_t free_size = ring_buffer_free_size(ring_buffer); if (free_size >= size) { return RET_OK; @@ -267,7 +277,7 @@ static ret_t ring_buffer_extend(ring_buffer_t* ring_buffer, uint32_t size) { ret_t ring_buffer_write_len(ring_buffer_t* ring_buffer, const void* buff, uint32_t size) { return_value_if_fail(ring_buffer != NULL && buff != NULL, RET_BAD_PARAMS); - if (ring_buffer_extend(ring_buffer, size) == RET_OK) { + if (ring_buffer_ensure_write_space(ring_buffer, size) == RET_OK) { return ring_buffer_write(ring_buffer, buff, size) == size ? RET_OK : RET_FAIL; } else { return RET_FAIL; diff --git a/src/tkc/ring_buffer.h b/src/tkc/ring_buffer.h index 1fceb21ae0..64bada5b87 100644 --- a/src/tkc/ring_buffer.h +++ b/src/tkc/ring_buffer.h @@ -181,6 +181,17 @@ uint32_t ring_buffer_write(ring_buffer_t* ring_buffer, const void* buff, uint32_ */ ret_t ring_buffer_read_len(ring_buffer_t* ring_buffer, void* buff, uint32_t size); +/** + * @method ring_buffer_skip + * 跳过指定长度数据,要么成功要么失败。 + * + * @param {ring_buffer_t*} ring_buffer ring_buffer对象。 + * @param {uint32_t} size 长度。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t ring_buffer_skip(ring_buffer_t* ring_buffer, uint32_t size); + /** * @method ring_buffer_write_len * 写入指定长度数据,要么成功要么失败。 @@ -247,6 +258,17 @@ ret_t ring_buffer_set_write_cursor(ring_buffer_t* ring_buffer, uint32_t w); */ ret_t ring_buffer_set_write_cursor_delta(ring_buffer_t* ring_buffer, uint32_t w_delta); +/** + * @method ring_buffer_ensure_write_space + * 扩展buffer。 + * + * @param {ring_buffer_t*} ring_buffer ring_buffer对象。 + * @param {uint32_t} size 需要的大小。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t ring_buffer_ensure_write_space(ring_buffer_t* ring_buffer, uint32_t size); + /** * @method ring_buffer_destroy * 销毁ring_buffer。 diff --git a/src/tkc/semaphore.h b/src/tkc/semaphore.h new file mode 100755 index 0000000000..37d12045ff --- /dev/null +++ b/src/tkc/semaphore.h @@ -0,0 +1,76 @@ +/** + * File: semaphore.h + * Author: AWTK Develop Team + * Brief: semaphore + * + * Copyright (c) 2018 - 2019 Guangzhou ZHIYUAN Electronics Co.,Ltd. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * License file for more details. + * + */ + +/** + * History: + * ================================================================ + * 2019-10-27 Li XianJing created + * + */ + +#ifndef TK_SEMAPHORE_H +#define TK_SEMAPHORE_H + +#include "tkc/types_def.h" + +BEGIN_C_DECLS + +/** + * @class tk_semaphore_t + * 信号量。 + */ +struct _tk_semaphore_t; +typedef struct _tk_semaphore_t tk_semaphore_t; + +/** + * @method tk_semaphore_create + * 创建信号量对象。 + * @param {uint32_t} value 初始值。 + * @param {const char*} name 名称。 + * + * @return {tk_semaphore_t*} semaphore对象。 + */ +tk_semaphore_t* tk_semaphore_create(uint32_t value, const char* name); + +/** + * @method tk_semaphore_wait + * 获取资源。 + * @param {tk_semaphore_t*} semaphore 信号量对象。 + * @param {uint32_t} timeout_ms 超时时间。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t tk_semaphore_wait(tk_semaphore_t* semaphore, uint32_t timeout_ms); + +/** + * @method tk_semaphore_post + * 释放资源。 + * @param {tk_semaphore_t*} semaphore 信号量对象。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t tk_semaphore_post(tk_semaphore_t* semaphore); + +/** + * @method tk_semaphore_destroy + * 销毁信号量对象。 + * @param {tk_semaphore_t*} semaphore 信号量对象。 + * + * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 + */ +ret_t tk_semaphore_destroy(tk_semaphore_t* semaphore); + +END_C_DECLS + +#endif /*TK_SEMAPHORE_H*/ diff --git a/src/vgcanvas/vgcanvas_nanovg.inc b/src/vgcanvas/vgcanvas_nanovg.inc index 6043477df8..307a23b597 100644 --- a/src/vgcanvas/vgcanvas_nanovg.inc +++ b/src/vgcanvas/vgcanvas_nanovg.inc @@ -4,11 +4,13 @@ #include "base/vgcanvas.h" #include "base/system_info.h" #include "base/image_manager.h" +#include "base/font_manager.h" #include "base/assets_manager.h" static ret_t vgcanvas_nanovg_reset(vgcanvas_t* vgcanvas) { /*TODO: unload fonts*/ - + NVGcontext* vg = ((vgcanvas_nanovg_t*)vgcanvas)->vg; + nvgDeleteFontByName(vg, NULL); return RET_OK; } @@ -245,7 +247,12 @@ static ret_t vgcanvas_nanovg_set_font(vgcanvas_t* vgcanvas, const char* name) { return RET_OK; } - r = assets_manager_ref(am, ASSET_TYPE_FONT, name); + if (r == NULL) { + font_t* font = font_manager_get_font(font_manager(), NULL, TK_DEFAULT_FONT_SIZE); + if (font != NULL) { + r = assets_manager_ref(assets_manager(), ASSET_TYPE_FONT, font->name); + } + } } if (r != NULL && r->subtype == ASSET_TYPE_FONT_TTF) { diff --git a/src/vgcanvas/vgcanvas_nanovg_soft.inc b/src/vgcanvas/vgcanvas_nanovg_soft.inc index 732b4dcf35..dcf278cca3 100644 --- a/src/vgcanvas/vgcanvas_nanovg_soft.inc +++ b/src/vgcanvas/vgcanvas_nanovg_soft.inc @@ -120,7 +120,7 @@ static int vgcanvas_nanovg_ensure_image(vgcanvas_nanovg_t* canvas, bitmap_t* img } if (bpp * img->w == img->line_length) { - data = img->data; + data = (uint8_t*)img->data; } else { size = bpp * img->w * img->h; size = TK_ROUND_TO(size, BITMAP_ALIGN_SIZE) + BITMAP_ALIGN_SIZE; 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.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/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.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/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.c b/src/widgets/popup.c index 831b712ac6..19379593f1 100644 --- a/src/widgets/popup.c +++ b/src/widgets/popup.c @@ -71,6 +71,12 @@ static ret_t popup_on_event(widget_t* widget, event_t* e) { break; } case EVT_POINTER_DOWN: { + popup->is_outside = FALSE; + if (popup->close_when_click_outside) { + pointer_event_t* evt = (pointer_event_t*)e; + rect_t r = rect_init(widget->x, widget->y, widget->w, widget->h); + popup->is_outside = !rect_contains(&r, evt->x, evt->y); + } break; } case EVT_POINTER_UP: { @@ -79,7 +85,7 @@ static ret_t popup_on_event(widget_t* widget, event_t* e) { if (popup->close_when_click) { close_window = TRUE; - } else if (popup->close_when_click_outside) { + } else if (popup->close_when_click_outside && popup->is_outside) { rect_t r = rect_init(widget->x, widget->y, widget->w, widget->h); if (!rect_contains(&r, evt->x, evt->y)) { close_window = TRUE; diff --git a/src/widgets/popup.h b/src/widgets/popup.h index 260e695afe..03036662bb 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,11 +75,13 @@ 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; + bool_t is_outside; + /** * @property {bool_t} close_when_click * @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"] 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.c b/src/widgets/system_bar.c index af9140f76d..8be6d989c9 100644 --- a/src/widgets/system_bar.c +++ b/src/widgets/system_bar.c @@ -119,6 +119,30 @@ widget_t* system_bar_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h) { return widget; } +TK_DECL_VTABLE(system_bar_bottom) = {.size = sizeof(system_bar_t), + .type = WIDGET_TYPE_SYSTEM_BAR_BOTTOM, + .is_window = TRUE, + .clone_properties = s_system_bar_properties, + .persistent_properties = s_system_bar_properties, + .parent = TK_PARENT_VTABLE(window_base), + .create = system_bar_create, + .on_event = system_bar_on_event, + .set_prop = window_base_set_prop, + .get_prop = window_base_get_prop, + .on_paint_self = window_base_on_paint_self, + .on_paint_begin = window_base_on_paint_begin, + .on_paint_end = window_base_on_paint_end, + .on_destroy = system_bar_on_destroy}; + +widget_t* system_bar_bottom_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h) { + widget_t* widget = window_base_create(parent, TK_REF_VTABLE(system_bar_bottom), x, y, w, h); + return_value_if_fail(widget != NULL, NULL); + + widget_on(widget->parent, EVT_TOP_WINDOW_CHANGED, system_bar_on_top_window_changed, widget); + + return widget; +} + widget_t* system_bar_cast(widget_t* widget) { return_value_if_fail(WIDGET_IS_INSTANCE_OF(widget, system_bar), NULL); diff --git a/src/widgets/system_bar.h b/src/widgets/system_bar.h index 726516e292..c2a9e86948 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 { @@ -99,6 +99,8 @@ typedef struct _system_bar_t { */ widget_t* system_bar_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); +widget_t* system_bar_bottom_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); + /** * @method system_bar_cast * 转换为system_bar对象(供脚本语言使用)。 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/src/widgets/widgets.c b/src/widgets/widgets.c index 1660944692..966f590558 100644 --- a/src/widgets/widgets.c +++ b/src/widgets/widgets.c @@ -79,6 +79,7 @@ ret_t tk_widgets_init(void) { widget_factory_register(f, WIDGET_TYPE_GROUP_BOX, group_box_create); #ifndef AWTK_LITE widget_factory_register(f, WIDGET_TYPE_SYSTEM_BAR, system_bar_create); + widget_factory_register(f, WIDGET_TYPE_SYSTEM_BAR_BOTTOM, system_bar_bottom_create); widget_factory_register(f, WIDGET_TYPE_CALIBRATION_WIN, calibration_win_create); widget_factory_register(f, WIDGET_TYPE_VIEW, view_create); widget_factory_register(f, WIDGET_TYPE_OVERLAY, overlay_create); diff --git a/src/window_animators/window_animator_common.c b/src/window_animators/window_animator_common.c index 6862130563..64971fefcf 100644 --- a/src/window_animators/window_animator_common.c +++ b/src/window_animators/window_animator_common.c @@ -26,7 +26,7 @@ #include "base/window_manager.h" #include "base/window_animator.h" #include "base/dialog_highlighter_factory.h" - +#include "window_manager/window_manager_default.h" #include "window_animators/window_animator_common.h" ret_t window_animator_to_bottom_draw_curr(window_animator_t* wa) { @@ -173,6 +173,9 @@ ret_t window_animator_destroy(window_animator_t* wa) { static ret_t window_animator_paint_system_bar(window_animator_t* wa) { widget_t* wm = wa->curr_win->parent; widget_t* system_bar = widget_lookup_by_type(wm, WIDGET_TYPE_SYSTEM_BAR, TRUE); + if (system_bar == NULL) { + system_bar = widget_lookup_by_type(wm, WIDGET_TYPE_SYSTEM_BAR_BOTTOM, TRUE); + } if (system_bar != NULL) { #ifdef AWTK_WEB @@ -180,7 +183,7 @@ static ret_t window_animator_paint_system_bar(window_animator_t* wa) { rect_t dst = rect_init(system_bar->x, system_bar->y, system_bar->w, system_bar->h); canvas_draw_image(wa->canvas, &(wa->prev_img), rect_scale(&src, wa->ratio), &dst); #else - widget_paint(system_bar, wa->canvas); + window_manager_paint_system_bar(wm, wa->canvas); #endif /*AWTK_WEB*/ } diff --git a/src/window_manager/window_manager_default.c b/src/window_manager/window_manager_default.c index 4ff19626f3..b83dae26b5 100644 --- a/src/window_manager/window_manager_default.c +++ b/src/window_manager/window_manager_default.c @@ -33,12 +33,16 @@ #include "base/dialog_highlighter_factory.h" #include "window_manager/window_manager_default.h" +static ret_t window_manager_invalidate_system_bar(widget_t* widget); static ret_t window_manager_default_inc_fps(widget_t* widget); static ret_t window_manager_default_update_fps(widget_t* widget); static ret_t window_manager_default_invalidate(widget_t* widget, rect_t* r); +static ret_t window_manager_default_get_client_r(widget_t* widget, rect_t* r); static ret_t window_manager_default_do_open_window(widget_t* wm, widget_t* window); static ret_t window_manager_default_layout_child(widget_t* widget, widget_t* window); +static ret_t window_manager_default_layout_system_bar(widget_t* widget, widget_t* window); static ret_t window_manager_default_create_dialog_highlighter(widget_t* widget, widget_t* curr_win); +static ret_t window_manager_default_layout_not_system_bar(widget_t* widget, widget_t* window, rect_t client_r); static bool_t window_is_fullscreen(widget_t* widget) { value_t v; @@ -129,6 +133,16 @@ static widget_t* window_manager_find_prev_window(widget_t* widget) { return NULL; } +static widget_t* window_manager_find_prev_any_window(widget_t* widget) { + return_value_if_fail(widget != NULL, NULL); + + if (widget->children != NULL && widget->children->size >= 2) { + return (widget_t*)(widget->children->elms[widget->children->size - 2]); + } + + return NULL; +} + ret_t window_manager_default_snap_curr_window(widget_t* widget, widget_t* curr_win, bitmap_t* img, framebuffer_object_t* fbo, bool_t auto_rotate) { canvas_t* c = NULL; @@ -191,10 +205,6 @@ ret_t window_manager_default_snap_prev_window(widget_t* widget, widget_t* prev_w ENSURE(vgcanvas_bind_fbo(vg, fbo) == RET_OK); ENSURE(canvas_begin_frame(c, NULL, LCD_DRAW_OFFLINE) == RET_OK); ENSURE(widget_on_paint_background(widget, c) == RET_OK); - if (wm->system_bar) { - widget_paint(wm->system_bar, c); - } - window_manager_paint_system_bar(widget, c); ENSURE(widget_paint(prev_win, c) == RET_OK); @@ -285,7 +295,7 @@ static ret_t window_manager_create_animator(window_manager_default_t* wm, widget bool_t open) { value_t v; const char* anim_hint = NULL; - widget_t* prev_win = window_manager_find_prev_window(WIDGET(wm)); + widget_t* prev_win = window_manager_find_prev_any_window(WIDGET(wm)); const char* key = open ? WIDGET_PROP_OPEN_ANIM_HINT : WIDGET_PROP_CLOSE_ANIM_HINT; if (prev_win == curr_win || prev_win == NULL || !widget_is_normal_window(prev_win)) { @@ -399,10 +409,6 @@ static ret_t window_manager_default_open_window(widget_t* widget, widget_t* wind window_manager_default_t* wm = WINDOW_MANAGER_DEFAULT(widget); return_value_if_fail(widget != NULL && window != NULL, RET_BAD_PARAMS); - if (widget_is_system_bar(window)) { - return_value_if_fail(wm->system_bar == NULL, RET_BAD_PARAMS); - } - wm->prev_win = window_manager_get_top_window(widget); if (wm->animator != NULL) { @@ -423,10 +429,6 @@ static ret_t window_manager_default_open_window(widget_t* widget, widget_t* wind } widget_invalidate(window, NULL); - if (widget_is_system_bar(window)) { - wm->system_bar = window; - } - widget_set_prop_pointer(window, WIDGET_PROP_NATIVE_WINDOW, wm->native_window); widget_on(window, EVT_DESTROY, wm_on_destroy_child, widget); widget_update_style(widget); @@ -446,7 +448,6 @@ static ret_t window_manager_idle_destroy_window(const idle_info_t* info) { } static ret_t window_manager_prepare_close_window(widget_t* widget, widget_t* window) { - window_manager_default_t* wm = WINDOW_MANAGER_DEFAULT(widget); return_value_if_fail(widget != NULL && window != NULL, RET_BAD_PARAMS); if (widget->target == window) { @@ -463,10 +464,6 @@ static ret_t window_manager_prepare_close_window(widget_t* widget, widget_t* win } } - if (wm->system_bar == window) { - wm->system_bar = NULL; - } - return RET_OK; } @@ -561,6 +558,14 @@ static ret_t window_manager_update_cursor(widget_t* widget, int32_t x, int32_t y } static ret_t window_manager_paint_normal(widget_t* widget, canvas_t* c) { +#ifdef FRAGMENT_FRAME_BUFFER_SIZE + uint32_t i = 0; + uint32_t y = 0; + uint32_t h = 0; + uint32_t tmp_h = 0; + uint32_t number = 0; +#endif + uint64_t start_time = time_now_ms(); window_manager_default_t* wm = WINDOW_MANAGER_DEFAULT(widget); @@ -570,12 +575,42 @@ static ret_t window_manager_paint_normal(widget_t* widget, canvas_t* c) { rect_t fps_rect = rect_init(0, 0, 60, 30); window_manager_default_invalidate(widget, &fps_rect); } +#ifdef FRAGMENT_FRAME_BUFFER_SIZE + if (wm->native_window->dirty_rect.w > 0 && wm->native_window->dirty_rect.h > 0) { + rect_t r = native_window_calc_dirty_rect(wm->native_window); + if (r.w > 0 && r.h > 0) { + assert(r.w <= FRAGMENT_FRAME_BUFFER_SIZE); + y = r.y; + h = r.h; + tmp_h = FRAGMENT_FRAME_BUFFER_SIZE / r.w; + number = r.h / tmp_h; + + for (i = 0; i <= number; i++) { + r.y = y + i * tmp_h; + if (i == number) { + tmp_h = h % tmp_h; + } + r.h = tmp_h; + + canvas_t* c = native_window_get_canvas(wm->native_window); + canvas_begin_frame(c, &r, LCD_DRAW_NORMAL); + wm->native_window->dirty = TRUE; + ENSURE(widget_paint(WIDGET(wm), c) == RET_OK); + window_manager_paint_cursor(widget, c); + canvas_end_frame(c); + } + native_window_update_last_dirty_rect(wm->native_window); + } + native_window_clear_dirty_rect(wm->native_window); + } +#else if (native_window_begin_frame(wm->native_window, LCD_DRAW_NORMAL) == RET_OK) { ENSURE(widget_paint(WIDGET(wm), c) == RET_OK); window_manager_paint_cursor(widget, c); native_window_end_frame(wm->native_window); } +#endif wm->last_paint_cost = time_now_ms() - start_time; return RET_OK; @@ -632,9 +667,7 @@ static ret_t window_manager_paint_animation(widget_t* widget, canvas_t* c) { window_manager_default_do_open_window(widget, window); } - if (wm->system_bar != NULL) { - widget_invalidate_force(wm->system_bar, NULL); - } + window_manager_invalidate_system_bar(widget); } return RET_OK; @@ -745,7 +778,7 @@ static ret_t window_manager_default_on_paint_children(widget_t* widget, canvas_t /*paint dialog and other*/ WIDGET_FOR_EACH_CHILD_BEGIN(widget, iter, i) if (i >= start && iter->visible) { - if (wm->system_bar != iter && !widget_is_normal_window(iter)) { + if (!widget_is_system_bar(iter) && !widget_is_normal_window(iter)) { widget_paint(iter, c); } } @@ -801,10 +834,21 @@ static ret_t window_manager_default_on_destroy(widget_t* widget) { } static ret_t window_manager_default_on_layout_children(widget_t* widget) { + rect_t client_r = rect_init(0, 0, widget->w, widget->h); return_value_if_fail(widget != NULL, RET_BAD_PARAMS); WIDGET_FOR_EACH_CHILD_BEGIN(widget, iter, i) - window_manager_default_layout_child(widget, iter); + if (widget_is_system_bar(iter)) { + window_manager_default_layout_system_bar(widget, iter); + } + WIDGET_FOR_EACH_CHILD_END(); + + window_manager_default_get_client_r(widget, &client_r); + + WIDGET_FOR_EACH_CHILD_BEGIN(widget, iter, i) + if (!widget_is_system_bar(iter)) { + window_manager_default_layout_not_system_bar(widget, iter, client_r); + } WIDGET_FOR_EACH_CHILD_END(); return RET_OK; @@ -862,18 +906,50 @@ ret_t window_manager_default_on_event(widget_t* widget, event_t* e) { return RET_OK; } -static ret_t window_manager_default_layout_child(widget_t* widget, widget_t* window) { +static bool_t widget_is_system_bar_top(widget_t* window) { + return tk_str_eq(window->vt->type, WIDGET_TYPE_SYSTEM_BAR); +} + +static bool_t widget_is_system_bar_bottom(widget_t* window) { + return tk_str_eq(window->vt->type, WIDGET_TYPE_SYSTEM_BAR_BOTTOM); +} + +static ret_t window_manager_default_get_client_r(widget_t* widget, rect_t* r) { + *r = rect_init(0, 0, widget->w, widget->h); + + WIDGET_FOR_EACH_CHILD_BEGIN(widget, iter, i) + if (widget_is_system_bar_top(iter)) { + r->y = iter->h; + r->h -= iter->h; + } + + if (widget_is_system_bar_bottom(iter)) { + r->h -= iter->h; + } + WIDGET_FOR_EACH_CHILD_END(); + + return RET_OK; +} + +static ret_t window_manager_default_layout_system_bar(widget_t* widget, widget_t* window) { + window->x = 0; + window->w = widget->w; + + if (widget_is_system_bar_bottom(window)) { + window->y = widget->h - window->h; + } + + widget_layout(window); + + return RET_OK; +} + +static ret_t window_manager_default_layout_not_system_bar(widget_t* widget, widget_t* window, + rect_t client_r) { xy_t x = window->x; xy_t y = window->y; wh_t w = window->w; wh_t h = window->h; - window_manager_default_t* wm = WINDOW_MANAGER_DEFAULT(widget); - rect_t client_r = rect_init(0, 0, widget->w, widget->h); - - if (wm->system_bar != NULL) { - widget_t* bar = wm->system_bar; - client_r = rect_init(0, bar->h, widget->w, widget->h - bar->h); - } if (widget_is_normal_window(window)) { if (window_is_fullscreen(window)) { @@ -887,10 +963,6 @@ static ret_t window_manager_default_layout_child(widget_t* widget, widget_t* win w = client_r.w; h = client_r.h; } - } else if (widget_is_system_bar(window)) { - x = 0; - y = 0; - w = widget->w; } else if (widget_is_dialog(window)) { x = (widget->w - window->w) >> 1; y = (widget->h - window->h) >> 1; @@ -907,6 +979,16 @@ static ret_t window_manager_default_layout_child(widget_t* widget, widget_t* win return RET_OK; } +static ret_t window_manager_default_layout_child(widget_t* widget, widget_t* window) { + if (widget_is_system_bar(window)) { + return window_manager_default_layout_system_bar(widget, window); + } else { + rect_t client_r = rect_init(0, 0, widget->w, widget->h); + window_manager_default_get_client_r(widget, &client_r); + return window_manager_default_layout_not_system_bar(widget, window, client_r); + } +} + static ret_t window_manager_default_resize(widget_t* widget, wh_t w, wh_t h) { rect_t r = rect_init(0, 0, w, h); window_manager_default_t* wm = WINDOW_MANAGER_DEFAULT(widget); @@ -1006,9 +1088,24 @@ ret_t window_manager_paint_system_bar(widget_t* widget, canvas_t* c) { window_manager_default_t* wm = WINDOW_MANAGER_DEFAULT(widget); return_value_if_fail(wm != NULL && c != NULL, RET_BAD_PARAMS); - if (wm->system_bar != NULL && wm->system_bar->visible) { - widget_paint(wm->system_bar, c); + WIDGET_FOR_EACH_CHILD_BEGIN_R(widget, iter, i) + if (widget_is_system_bar(iter)) { + widget_paint(iter, c); } + WIDGET_FOR_EACH_CHILD_END() + + return RET_OK; +} + +static ret_t window_manager_invalidate_system_bar(widget_t* widget) { + window_manager_default_t* wm = WINDOW_MANAGER_DEFAULT(widget); + return_value_if_fail(wm != NULL, RET_BAD_PARAMS); + + WIDGET_FOR_EACH_CHILD_BEGIN_R(widget, iter, i) + if (widget_is_system_bar(iter)) { + widget_invalidate_force(iter, NULL); + } + WIDGET_FOR_EACH_CHILD_END() return RET_OK; } diff --git a/src/window_manager/window_manager_default.h b/src/window_manager/window_manager_default.h index 5b56b51a91..cf6897b354 100644 --- a/src/window_manager/window_manager_default.h +++ b/src/window_manager/window_manager_default.h @@ -52,7 +52,6 @@ typedef struct _window_manager_default_t { char* cursor; rect_t r_cursor; - widget_t* system_bar; input_device_status_t input_device_status; uint32_t screen_saver_timer_id; uint32_t screen_saver_time; diff --git a/tests/combo_box_test.cc b/tests/combo_box_test.cc index d2e99ce732..4a962812fb 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); +} diff --git a/tests/draggable_test.cc b/tests/draggable_test.cc new file mode 100644 index 0000000000..6a331d7682 --- /dev/null +++ b/tests/draggable_test.cc @@ -0,0 +1,47 @@ +#include "widgets/view.h" +#include "features/draggable.h" +#include "gtest/gtest.h" + +TEST(Draggable, basic) { + widget_t* w = view_create(NULL, 10, 20, 30, 40); + widget_t* d = draggable_create(w, 0, 0, 0, 0); + draggable_t* draggable = DRAGGABLE(d); + + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_VERTICAL_ONLY, FALSE), FALSE); + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_HORIZONTAL_ONLY, FALSE), FALSE); + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_DRAG_WINDOW, FALSE), FALSE); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_LEFT, 0), DRAGGABLE_UNSPECIFIED_NUM); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_TOP, 0), DRAGGABLE_UNSPECIFIED_NUM); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_RIGHT, 0), DRAGGABLE_UNSPECIFIED_NUM); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_BOTTOM, 0), DRAGGABLE_UNSPECIFIED_NUM); + + ASSERT_EQ(widget_set_prop_bool(d, DRAGGABLE_PROP_VERTICAL_ONLY, TRUE), RET_OK); + ASSERT_EQ(widget_set_prop_bool(d, DRAGGABLE_PROP_HORIZONTAL_ONLY, TRUE), RET_OK); + ASSERT_EQ(widget_set_prop_bool(d, DRAGGABLE_PROP_DRAG_WINDOW, TRUE), RET_OK); + + ASSERT_EQ(widget_set_prop_int(d, DRAGGABLE_PROP_LEFT, 1), RET_OK); + ASSERT_EQ(widget_set_prop_int(d, DRAGGABLE_PROP_TOP, 2), RET_OK); + ASSERT_EQ(widget_set_prop_int(d, DRAGGABLE_PROP_RIGHT, 3), RET_OK); + ASSERT_EQ(widget_set_prop_int(d, DRAGGABLE_PROP_BOTTOM, 4), RET_OK); + + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_VERTICAL_ONLY, FALSE), TRUE); + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_HORIZONTAL_ONLY, FALSE), TRUE); + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_DRAG_WINDOW, FALSE), TRUE); + + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_LEFT, 0), 1); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_TOP, 0), 2); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_RIGHT, 0), 3); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_BOTTOM, 9), 4); + + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_VERTICAL_ONLY, FALSE), draggable->vertical_only); + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_HORIZONTAL_ONLY, FALSE), + draggable->horizontal_only); + ASSERT_EQ(widget_get_prop_bool(d, DRAGGABLE_PROP_DRAG_WINDOW, FALSE), draggable->drag_window); + + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_LEFT, 0), draggable->left); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_TOP, 0), draggable->top); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_RIGHT, 0), draggable->right); + ASSERT_EQ(widget_get_prop_int(d, DRAGGABLE_PROP_BOTTOM, 0), draggable->bottom); + + widget_destroy(w); +} 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); +} diff --git a/tests/emitter_test.cc b/tests/emitter_test.cc index 55d23c93c6..2fece9e9c7 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/fragment_frame_buffer_test.cc b/tests/fragment_frame_buffer_test.cc index 999771051a..8ac1b3d97e 100644 --- a/tests/fragment_frame_buffer_test.cc +++ b/tests/fragment_frame_buffer_test.cc @@ -20,6 +20,14 @@ static void write_data_func(pixel_t pixel) { s_log += buff; } +typedef uint16_t pixel_t; +#define LCD_FORMAT BITMAP_FMT_BGR565 +#define pixel_from_rgb(r, g, b) ((((r) >> 3) << 11) | (((g) >> 2) << 5) | ((b) >> 3)) +#define pixel_to_rgba(p) \ + { (0xff & ((p >> 11) << 3)), (0xff & ((p >> 5) << 2)), (0xff & (p << 3)) } + +#include "base/pixel.h" +#include "base/bitmap.h" #include "lcd/fragment_frame_buffer.h" TEST(FragmentFrameBuffer, basic) { diff --git a/tests/image_animation_test.cc b/tests/image_animation_test.cc index 2ebb75079e..43c7276e3b 100644 --- a/tests/image_animation_test.cc +++ b/tests/image_animation_test.cc @@ -89,6 +89,8 @@ TEST(ImageAnimation, range) { ASSERT_EQ(ia->index, 101); image_animation_update(w); ASSERT_EQ(ia->index, 102); + ASSERT_EQ(image_animation_next(w), RET_OK); + ASSERT_EQ(ia->index, 103); widget_destroy(w); } diff --git a/tests/mutex_test.cc b/tests/mutex_test.cc new file mode 100644 index 0000000000..c4dee08779 --- /dev/null +++ b/tests/mutex_test.cc @@ -0,0 +1,25 @@ +#include "gtest/gtest.h" +#include "tkc/mutex.h" +#include "tkc/thread.h" +#include "tkc/platform.h" + +static void* thread_entry(void* args) { + tk_mutex_t* mutex = (tk_mutex_t*)args; + + sleep_ms(100); + tk_mutex_lock(mutex); + + return NULL; +} + +TEST(Mutex, basic) { + tk_mutex_t* mutex = tk_mutex_create(); + tk_thread_t* thread = tk_thread_create(thread_entry, mutex); + + tk_thread_start(thread); + ASSERT_EQ(tk_mutex_unlock(mutex), RET_OK); + tk_thread_join(thread); + + tk_thread_destroy(thread); + tk_mutex_destroy(mutex); +} diff --git a/tests/ostream_retry_test.cc b/tests/ostream_retry_test.cc new file mode 100644 index 0000000000..9be9d96334 --- /dev/null +++ b/tests/ostream_retry_test.cc @@ -0,0 +1,83 @@ +#include "gtest/gtest.h" +#include "streams/mem/ostream_mem.h" +#include "streams/misc/ostream_retry.h" + +TEST(OStreamRetry, basic) { + uint8_t buff[13]; + + tk_ostream_t* osmem = tk_ostream_mem_create(buff, sizeof(buff) - 1, 0, FALSE); + tk_ostream_mem_t* mem = TK_OSTREAM_MEM(osmem); + tk_ostream_t* osretry = tk_ostream_retry_create(osmem); + tk_ostream_retry_t* retry = TK_OSTREAM_RETRY(osretry); + + memset(buff, 0x00, sizeof(buff)); + + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"1234", 4), 4); + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"1234", 4), 4); + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"1234", 4), 4); + ASSERT_EQ(retry->pending_bytes, 0); + ASSERT_EQ(retry->pending_packets, 0); + ASSERT_STREQ((char*)buff, "123412341234"); + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"abcd", 4), 4); + ASSERT_EQ(retry->pending_bytes, 4); + ASSERT_EQ(retry->pending_packets, 1); + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"ABCD", 4), 4); + ASSERT_EQ(retry->pending_bytes, 8); + ASSERT_EQ(retry->pending_packets, 2); + + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"1234", 4), 4); + ASSERT_EQ(retry->pending_bytes, 12); + ASSERT_EQ(retry->pending_packets, 3); + mem->cursor = 0; + tk_ostream_flush(osretry); + ASSERT_EQ(retry->pending_bytes, 0); + ASSERT_EQ(retry->pending_packets, 0); + ASSERT_STREQ((char*)buff, "abcdABCD1234"); + + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"1234", 4), 4); + ASSERT_EQ(retry->pending_bytes, 4); + ASSERT_EQ(retry->pending_packets, 1); + mem->cursor = 0; + memset(buff, 0x00, sizeof(buff)); + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"abcd", 4), 4); + ASSERT_EQ(retry->pending_bytes, 0); + ASSERT_EQ(retry->pending_packets, 0); + ASSERT_STREQ((char*)buff, "1234abcd"); + + OBJECT_UNREF(osmem); + OBJECT_UNREF(osretry); +} + +TEST(OStreamRetry, max_retry) { + uint8_t buff[13]; + + tk_ostream_t* osmem = tk_ostream_mem_create(buff, sizeof(buff) - 1, 0, FALSE); + tk_ostream_t* osretry = tk_ostream_retry_create(osmem); + tk_ostream_retry_t* retry = TK_OSTREAM_RETRY(osretry); + tk_ostream_retry_set_max_retry_times(osretry, 1); + ASSERT_EQ(retry->max_retry_times, 1); + + memset(buff, 0x00, sizeof(buff)); + + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"1234", 4), 4); + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"1234", 4), 4); + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"1234", 4), 4); + ASSERT_EQ(retry->pending_bytes, 0); + ASSERT_EQ(retry->pending_packets, 0); + ASSERT_STREQ((char*)buff, "123412341234"); + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"abcd", 4), 4); + ASSERT_EQ(retry->pending_bytes, 4); + ASSERT_EQ(retry->pending_packets, 1); + + ASSERT_EQ(tk_ostream_flush(osretry), RET_OK); + ASSERT_EQ(retry->discard_bytes, 4); + ASSERT_EQ(retry->discard_packets, 1); + + ASSERT_EQ(tk_ostream_write(osretry, (const uint8_t*)"abcd", 4), 4); + ASSERT_EQ(tk_ostream_flush(osretry), RET_OK); + ASSERT_EQ(retry->discard_bytes, 8); + ASSERT_EQ(retry->discard_packets, 2); + + OBJECT_UNREF(osmem); + OBJECT_UNREF(osretry); +} diff --git a/tests/ring_buffer_test.cc b/tests/ring_buffer_test.cc index 787e5591aa..b5ca8464c2 100644 --- a/tests/ring_buffer_test.cc +++ b/tests/ring_buffer_test.cc @@ -170,3 +170,34 @@ TEST(RingBuffer, extendable) { ring_buffer_destroy(rb); } + +TEST(RingBuffer, write_skip_read) { + char buff[32]; + ring_buffer_t* rb = ring_buffer_create(32, 32); + + memset(buff, 0x00, sizeof(buff)); + ASSERT_EQ(ring_buffer_write(rb, "1234567890", 10), 10); + ASSERT_EQ(ring_buffer_skip(rb, 4), RET_OK); + ASSERT_EQ(ring_buffer_size(rb), 6); + ASSERT_EQ(ring_buffer_read(rb, buff, 4), 4); + ASSERT_STREQ(buff, "5678"); + ASSERT_EQ(ring_buffer_size(rb), 2); + + ASSERT_EQ(ring_buffer_write(rb, "1234567890", 10), 10); + ASSERT_EQ(ring_buffer_size(rb), 12); + ASSERT_EQ(ring_buffer_write(rb, "1234567890", 10), 10); + ASSERT_EQ(ring_buffer_size(rb), 22); + ASSERT_EQ(ring_buffer_write(rb, "abcdABCD", 8), 8); + ASSERT_EQ(ring_buffer_size(rb), 30); + ASSERT_EQ(ring_buffer_skip(rb, 22), RET_OK); + ASSERT_EQ(ring_buffer_size(rb), 8); + + ASSERT_EQ(ring_buffer_read(rb, buff, 4), 4); + ASSERT_STREQ(buff, "abcd"); + ASSERT_EQ(ring_buffer_size(rb), 4); + ASSERT_EQ(ring_buffer_read(rb, buff, 4), 4); + ASSERT_STREQ(buff, "ABCD"); + ASSERT_EQ(ring_buffer_size(rb), 0); + + ring_buffer_destroy(rb); +} diff --git a/tests/semaphore_test.cc b/tests/semaphore_test.cc new file mode 100644 index 0000000000..a745d271e1 --- /dev/null +++ b/tests/semaphore_test.cc @@ -0,0 +1,25 @@ +#include "gtest/gtest.h" +#include "tkc/semaphore.h" +#include "tkc/thread.h" +#include "tkc/platform.h" + +static void* thread_entry(void* args) { + tk_semaphore_t* sem = (tk_semaphore_t*)args; + + sleep_ms(100); + tk_semaphore_post(sem); + + return NULL; +} + +TEST(Semaphore, basic) { + tk_semaphore_t* sem = tk_semaphore_create(0, "hello"); + tk_thread_t* thread = tk_thread_create(thread_entry, sem); + + tk_thread_start(thread); + ASSERT_EQ(tk_semaphore_wait(sem, 2000), RET_OK); + tk_thread_join(thread); + + tk_thread_destroy(thread); + tk_semaphore_destroy(sem); +} diff --git a/tests/shdlc_test.cc b/tests/shdlc_test.cc index 16e3d37d42..b6bfd9a0d8 100644 --- a/tests/shdlc_test.cc +++ b/tests/shdlc_test.cc @@ -200,7 +200,7 @@ TEST(SHDLC, data_error) { wb->data[7] = 'd'; istream = tk_istream_mem_create(wb->data, wb->cursor, 0, FALSE); - ASSERT_EQ(shdlc_read_data(istream, wb_r, 1000), RET_IO); + ASSERT_EQ(shdlc_read_data(istream, wb_r, 1000), RET_TIMEOUT); OBJECT_UNREF(istream); wbuffer_deinit(wb); 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); +} diff --git a/tools/idl_gen/idl.json b/tools/idl_gen/idl.json index 7e96a12d63..852c3c474e 100644 --- a/tools/idl_gen/idl.json +++ b/tools/idl_gen/idl.json @@ -1,86 +1,86 @@ [ { "type": "enum", - "desc": " 控件状态常量定义。\n\n 这里指定常用的状态值,扩展控件可以在自己的头文件中定义私有的状态。\n\n", + "desc": " 控件状态常量定义。\r\n\r\n 这里指定常用的状态值,扩展控件可以在自己的头文件中定义私有的状态。\r\n", "consts": [ { - "desc": " 无效状态。\n\n", + "desc": " 无效状态。\r\n", "name": "WIDGET_STATE_NONE" }, { - "desc": " 正常状态。\n\n", + "desc": " 正常状态。\r\n", "name": "WIDGET_STATE_NORMAL" }, { - "desc": " 指针按下状态。\n\n", + "desc": " 指针按下状态。\r\n", "name": "WIDGET_STATE_PRESSED" }, { - "desc": " 指针悬浮状态。\n\n", + "desc": " 指针悬浮状态。\r\n", "name": "WIDGET_STATE_OVER" }, { - "desc": " 禁用状态。\n\n", + "desc": " 禁用状态。\r\n", "name": "WIDGET_STATE_DISABLE" }, { - "desc": " 聚焦状态。\n\n", + "desc": " 聚焦状态。\r\n", "name": "WIDGET_STATE_FOCUSED" }, { - "desc": " 勾选状态。\n\n", + "desc": " 勾选状态。\r\n", "name": "WIDGET_STATE_CHECKED" }, { - "desc": " 没勾选状态。\n\n", + "desc": " 没勾选状态。\r\n", "name": "WIDGET_STATE_UNCHECKED" }, { - "desc": " 编辑器无内容状态。\n\n", + "desc": " 编辑器无内容状态。\r\n", "name": "WIDGET_STATE_EMPTY" }, { - "desc": " 编辑器无内容同时聚焦的状态。\n\n", + "desc": " 编辑器无内容同时聚焦的状态。\r\n", "name": "WIDGET_STATE_EMPTY_FOCUS" }, { - "desc": " 输入错误状态。\n\n", + "desc": " 输入错误状态。\r\n", "name": "WIDGET_STATE_ERROR" }, { - "desc": " 选中状态。\n\n", + "desc": " 选中状态。\r\n", "name": "WIDGET_STATE_SELECTED" }, { - "desc": " 正常状态(选中项)。\n\n", + "desc": " 正常状态(选中项)。\r\n", "name": "WIDGET_STATE_NORMAL_OF_CHECKED" }, { - "desc": " 指针按下状态(选中项)。\n\n", + "desc": " 指针按下状态(选中项)。\r\n", "name": "WIDGET_STATE_PRESSED_OF_CHECKED" }, { - "desc": " 指针悬浮状态(选中项)。\n\n", + "desc": " 指针悬浮状态(选中项)。\r\n", "name": "WIDGET_STATE_OVER_OF_CHECKED" }, { - "desc": " 焦点状态(选中项)。\n\n", + "desc": " 焦点状态(选中项)。\r\n", "name": "WIDGET_STATE_FOCUSED_OF_CHECKED" }, { - "desc": " 正常状态(当前项)。\n\n", + "desc": " 正常状态(当前项)。\r\n", "name": "WIDGET_STATE_NORMAL_OF_ACTIVE" }, { - "desc": " 指针按下状态(当前项)。\n\n", + "desc": " 指针按下状态(当前项)。\r\n", "name": "WIDGET_STATE_PRESSED_OF_ACTIVE" }, { - "desc": " 指针悬浮状态(当前项)。\n\n", + "desc": " 指针悬浮状态(当前项)。\r\n", "name": "WIDGET_STATE_OVER_OF_ACTIVE" }, { - "desc": " 焦点状态(当前项)。\n\n", + "desc": " 焦点状态(当前项)。\r\n", "name": "WIDGET_STATE_FOCUSED_OF_ACTIVE" } ], @@ -125,7 +125,7 @@ } ], "annotation": {}, - "desc": " 初始化TK。\n\n\n", + "desc": " 初始化TK。\r\n\r\n", "name": "tk_init", "return": { "type": "ret_t", @@ -135,7 +135,7 @@ { "params": [], "annotation": {}, - "desc": " 进入TK事件主循环。\n\n\n", + "desc": " 进入TK事件主循环。\r\n\r\n", "name": "tk_run", "return": { "type": "ret_t", @@ -148,7 +148,7 @@ "static": true, "scriptable": true }, - "desc": " 退出TK事件主循环。\n\n\n", + "desc": " 退出TK事件主循环。\r\n\r\n", "name": "tk_quit", "alias": "global_quit", "return": { @@ -162,7 +162,7 @@ "static": true, "scriptable": true }, - "desc": " 获取全局指针的X坐标。\n\n\n", + "desc": " 获取全局指针的X坐标。\r\n\r\n", "name": "tk_get_pointer_x", "alias": "global_get_pointer_x", "return": { @@ -176,7 +176,7 @@ "static": true, "scriptable": true }, - "desc": " 获取全局指针的Y坐标。\n\n\n", + "desc": " 获取全局指针的Y坐标。\r\n\r\n", "name": "tk_get_pointer_y", "alias": "global_get_pointer_y", "return": { @@ -190,7 +190,7 @@ "static": true, "scriptable": true }, - "desc": " 获取全局指针是否按下。\n\n\n", + "desc": " 获取全局指针是否按下。\r\n\r\n", "name": "tk_is_pointer_pressed", "alias": "global_is_pointer_pressed", "return": { @@ -207,7 +207,7 @@ } ], "annotation": {}, - "desc": " 设置屏幕的旋转方向(XXX:目前仅支持0度和90度)。\n\n\n", + "desc": " 设置屏幕的旋转方向(XXX:目前仅支持0度和90度)。\r\n\r\n", "name": "tk_set_lcd_orientation", "return": { "type": "ret_t", @@ -219,7 +219,7 @@ "annotation": { "private": true }, - "desc": " 初始化资源。\n\n\n", + "desc": " 初始化资源。\r\n\r\n", "name": "tk_init_assets", "return": { "type": "ret_t", @@ -230,7 +230,7 @@ "events": [], "properties": [], "header": "src/awtk_global.h", - "desc": " TK全局对象。\n\n", + "desc": " TK全局对象。\r\n", "name": "global_t", "annotation": { "scriptable": true, @@ -248,7 +248,7 @@ "scriptable": true, "gc": true }, - "desc": " 创建图片对象(一般供脚本语言中使用)。\n\n", + "desc": " 创建图片对象(一般供脚本语言中使用)。\r\n", "name": "bitmap_create", "return": { "type": "bitmap_t*", @@ -283,7 +283,7 @@ "scriptable": true, "gc": true }, - "desc": " 创建图片对象。\n\n\n", + "desc": " 创建图片对象。\r\n\r\n", "name": "bitmap_create_ex", "return": { "type": "bitmap_t*", @@ -301,7 +301,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取图片一个像素占用的字节数。\n\n\n", + "desc": " 获取图片一个像素占用的字节数。\r\n\r\n", "name": "bitmap_get_bpp", "return": { "type": "uint32_t", @@ -332,7 +332,7 @@ } ], "annotation": {}, - "desc": " 获取图片指定像素的rgba颜色值(主要用于测试程序)。\n\n\n", + "desc": " 获取图片指定像素的rgba颜色值(主要用于测试程序)。\r\n\r\n", "name": "bitmap_get_pixel", "return": { "type": "ret_t", @@ -353,7 +353,7 @@ } ], "annotation": {}, - "desc": " 设置line_length。\n\n\n", + "desc": " 设置line_length。\r\n\r\n", "name": "bitmap_set_line_length", "return": { "type": "ret_t", @@ -369,7 +369,7 @@ } ], "annotation": {}, - "desc": " 获取每一行占用内存的字节数。\n\n\n", + "desc": " 获取每一行占用内存的字节数。\r\n\r\n", "name": "bitmap_get_line_length", "return": { "type": "ret_t", @@ -410,7 +410,7 @@ } ], "annotation": {}, - "desc": " 初始化图片。\n 数据。3通道时为RGB888格式,4通道时为RGBA888格式(内部拷贝该数据,不会引用,调用者自行释放)。\n\n\n", + "desc": " 初始化图片。\r\n 数据。3通道时为RGB888格式,4通道时为RGBA888格式(内部拷贝该数据,不会引用,调用者自行释放)。\r\n\r\n", "name": "bitmap_init_from_rgba", "return": { "type": "ret_t", @@ -446,7 +446,7 @@ } ], "annotation": {}, - "desc": " 初始化图片。\n\n\n", + "desc": " 初始化图片。\r\n\r\n", "name": "bitmap_init", "return": { "type": "ret_t", @@ -466,7 +466,7 @@ "scriptable": true, "gc": true }, - "desc": " 销毁图片。\n\n", + "desc": " 销毁图片。\r\n", "name": "bitmap_destroy", "return": { "type": "ret_t", @@ -478,7 +478,7 @@ "properties": [ { "name": "w", - "desc": " 宽度。\n\n", + "desc": " 宽度。\r\n", "type": "wh_t", "annotation": { "readable": true, @@ -487,7 +487,7 @@ }, { "name": "h", - "desc": " 高度。\n\n", + "desc": " 高度。\r\n", "type": "wh_t", "annotation": { "readable": true, @@ -496,7 +496,7 @@ }, { "name": "line_length", - "desc": " 每一行实际占用的内存(也称为stride或pitch),一般情况下为w*bpp。\n\n", + "desc": " 每一行实际占用的内存(也称为stride或pitch),一般情况下为w*bpp。\r\n", "type": "uint32_t", "annotation": { "readable": true, @@ -505,7 +505,7 @@ }, { "name": "flags", - "desc": " 标志。请参考{bitmap_flag_t}。\n\n", + "desc": " 标志。请参考{bitmap_flag_t}。\r\n", "type": "uint16_t", "annotation": { "readable": true, @@ -514,7 +514,7 @@ }, { "name": "format", - "desc": " 格式。请参考{bitmap_format_t}。\n\n", + "desc": " 格式。请参考{bitmap_format_t}。\r\n", "type": "uint16_t", "annotation": { "readable": true, @@ -523,7 +523,7 @@ }, { "name": "name", - "desc": " 名称。\n\n", + "desc": " 名称。\r\n", "type": "const char*", "annotation": { "readable": true, @@ -532,7 +532,7 @@ }, { "name": "data", - "desc": " 图片数据。\n\n", + "desc": " 图片数据。\r\n", "type": "uint8_t*", "annotation": { "readable": true @@ -540,7 +540,7 @@ } ], "header": "base/bitmap.h", - "desc": " 位图。\n\n", + "desc": " 位图。\r\n", "name": "bitmap_t", "annotation": { "scriptable": true @@ -549,74 +549,74 @@ }, { "type": "enum", - "desc": " 图片绘制方法常量定义。\n\n", + "desc": " 图片绘制方法常量定义。\r\n", "consts": [ { - "desc": " 缺省显示。将图片按原大小显示在目标矩形的左上角。\n\n", + "desc": " 缺省显示。将图片按原大小显示在目标矩形的左上角。\r\n", "name": "IMAGE_DRAW_DEFAULT" }, { - "desc": " 居中显示。将图片按原大小显示在目标矩形的中央。\n\n", + "desc": " 居中显示。将图片按原大小显示在目标矩形的中央。\r\n", "name": "IMAGE_DRAW_CENTER" }, { - "desc": " 图标显示。同居中显示,但会根据屏幕密度调整大小。\n\n", + "desc": " 图标显示。同居中显示,但会根据屏幕密度调整大小。\r\n", "name": "IMAGE_DRAW_ICON" }, { - "desc": " 缩放显示。将图片缩放至目标矩形的大小(不保证宽高成比例)。\n\n", + "desc": " 缩放显示。将图片缩放至目标矩形的大小(不保证宽高成比例)。\r\n", "name": "IMAGE_DRAW_SCALE" }, { - "desc": " 自动缩放显示。将图片缩放至目标矩形的宽度或高度(选取最小的比例),并居中显示。\n\n", + "desc": " 自动缩放显示。将图片缩放至目标矩形的宽度或高度(选取最小的比例),并居中显示。\r\n", "name": "IMAGE_DRAW_SCALE_AUTO" }, { - "desc": " 如果图片比目标矩形大,自动缩小显示,否则居中显示。\n\n", + "desc": " 如果图片比目标矩形大,自动缩小显示,否则居中显示。\r\n", "name": "IMAGE_DRAW_SCALE_DOWN" }, { - "desc": " 宽度缩放显示。 将图片缩放至目标矩形的宽度,高度按此比例进行缩放,超出不部分不显示。\n\n", + "desc": " 宽度缩放显示。 将图片缩放至目标矩形的宽度,高度按此比例进行缩放,超出不部分不显示。\r\n", "name": "IMAGE_DRAW_SCALE_W" }, { - "desc": " 高度缩放显示。将图片缩放至目标矩形的高度,宽度按此比例进行缩放,超出不部分不显示。\n\n", + "desc": " 高度缩放显示。将图片缩放至目标矩形的高度,宽度按此比例进行缩放,超出不部分不显示。\r\n", "name": "IMAGE_DRAW_SCALE_H" }, { - "desc": " 平铺显示。\n\n", + "desc": " 平铺显示。\r\n", "name": "IMAGE_DRAW_REPEAT" }, { - "desc": " 水平方向平铺显示,垂直方向缩放。\n\n", + "desc": " 水平方向平铺显示,垂直方向缩放。\r\n", "name": "IMAGE_DRAW_REPEAT_X" }, { - "desc": " 垂直方向平铺显示,水平方向缩放。\n\n", + "desc": " 垂直方向平铺显示,水平方向缩放。\r\n", "name": "IMAGE_DRAW_REPEAT_Y" }, { - "desc": " 垂直方向平铺显示,水平方向缩放(从底部到顶部)。\n\n", + "desc": " 垂直方向平铺显示,水平方向缩放(从底部到顶部)。\r\n", "name": "IMAGE_DRAW_REPEAT_Y_INVERSE" }, { - "desc": " 9宫格显示。\n 将图片分成等大小的9块,4个角按原大小显示在目标矩形的4个角,左右上下和中间5块分别缩放显示在对应的目标区域。\n\n", + "desc": " 9宫格显示。\r\n 将图片分成等大小的9块,4个角按原大小显示在目标矩形的4个角,左右上下和中间5块分别缩放显示在对应的目标区域。\r\n", "name": "IMAGE_DRAW_PATCH9" }, { - "desc": " 水平方向3宫格显示,垂直方向居中显示。\n 将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。\n\n", + "desc": " 水平方向3宫格显示,垂直方向居中显示。\r\n 将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。\r\n", "name": "IMAGE_DRAW_PATCH3_X" }, { - "desc": " 垂直方向3宫格显示,水平方向居中显示。\n 将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。\n\n", + "desc": " 垂直方向3宫格显示,水平方向居中显示。\r\n 将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。\r\n", "name": "IMAGE_DRAW_PATCH3_Y" }, { - "desc": " 水平方向3宫格显示,垂直方向缩放显示。\n 将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。\n\n", + "desc": " 水平方向3宫格显示,垂直方向缩放显示。\r\n 将图片在水平方向上分成等大小的3块,左右两块按原大小显示在目标矩形的左右,中间一块缩放显示在目标区域中间剩余部分。\r\n", "name": "IMAGE_DRAW_PATCH3_X_SCALE_Y" }, { - "desc": " 垂直方向3宫格显示,水平方向缩放显示。\n 将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。\n\n", + "desc": " 垂直方向3宫格显示,水平方向缩放显示。\r\n 将图片在垂直方向上分成等大小的3块,上下两块按原大小显示在目标矩形的上下,中间一块缩放显示在目标区域中间剩余部分。\r\n", "name": "IMAGE_DRAW_PATCH3_Y_SCALE_X" } ], @@ -1542,7 +1542,7 @@ "annotation": { "constructor": true }, - "desc": " 获取缺省的子控件布局算法工厂对象。\n\n", + "desc": " 获取缺省的子控件布局算法工厂对象。\r\n", "name": "children_layouter_factory", "return": { "type": "children_layouter_factory_t*", @@ -1558,7 +1558,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的子控件布局算法工厂对象。\n\n\n", + "desc": " 设置缺省的子控件布局算法工厂对象。\r\n\r\n", "name": "children_layouter_factory_set", "return": { "type": "ret_t", @@ -1570,7 +1570,7 @@ "annotation": { "constructor": true }, - "desc": " 创建子控件布局算法工厂对象。\n\n\n", + "desc": " 创建子控件布局算法工厂对象。\r\n\r\n", "name": "children_layouter_factory_create", "return": { "type": "children_layouter_factory_t*", @@ -1596,7 +1596,7 @@ } ], "annotation": {}, - "desc": " 注册子控件布局算法创建函数。\n\n\n", + "desc": " 注册子控件布局算法创建函数。\r\n\r\n", "name": "children_layouter_factory_register", "return": { "type": "ret_t", @@ -1619,7 +1619,7 @@ "annotation": { "constructor": true }, - "desc": " 创建指定类型的子控件布局算法对象。\n\n\n", + "desc": " 创建指定类型的子控件布局算法对象。\r\n\r\n", "name": "children_layouter_factory_create_layouter", "return": { "type": "children_layouter_t*", @@ -1635,7 +1635,7 @@ } ], "annotation": {}, - "desc": " 析构并释放子控件布局算法工厂对象。\n\n\n", + "desc": " 析构并释放子控件布局算法工厂对象。\r\n\r\n", "name": "children_layouter_factory_destroy", "return": { "type": "ret_t", @@ -1646,7 +1646,7 @@ "events": [], "properties": [], "header": "base/children_layouter_factory.h", - "desc": " 子控件布局算法工厂。\n\n\n", + "desc": " 子控件布局算法工厂。\r\n\r\n", "name": "children_layouter_factory_t", "level": 1 }, @@ -1662,7 +1662,7 @@ } ], "annotation": {}, - "desc": " 获取全部参数。\n\n\n", + "desc": " 获取全部参数。\r\n\r\n", "name": "children_layouter_to_string", "return": { "type": "ret_t", @@ -1683,7 +1683,7 @@ } ], "annotation": {}, - "desc": " 对控件的子控件进行布局。\n\n\n\n", + "desc": " 对控件的子控件进行布局。\r\n\r\n\r\n", "name": "children_layouter_layout", "return": { "type": "ret_t", @@ -1709,7 +1709,7 @@ } ], "annotation": {}, - "desc": " 获取指定的参数。\n\n\n\n", + "desc": " 获取指定的参数。\r\n\r\n\r\n", "name": "children_layouter_get_param", "return": { "type": "ret_t", @@ -1735,7 +1735,7 @@ } ], "annotation": {}, - "desc": " 获取指定的参数。\n\n\n\n", + "desc": " 获取指定的参数。\r\n\r\n\r\n", "name": "children_layouter_set_param", "return": { "type": "ret_t", @@ -1761,7 +1761,7 @@ } ], "annotation": {}, - "desc": " 设置字符串格式的参数。\n\n\n\n", + "desc": " 设置字符串格式的参数。\r\n\r\n\r\n", "name": "children_layouter_set_param_str", "return": { "type": "ret_t", @@ -1787,7 +1787,7 @@ } ], "annotation": {}, - "desc": " 获取指定的浮点格式的参数。\n\n\n\n", + "desc": " 获取指定的浮点格式的参数。\r\n\r\n\r\n", "name": "children_layouter_get_param_float", "return": { "type": "ret_t", @@ -1813,7 +1813,7 @@ } ], "annotation": {}, - "desc": " 获取指定的整数格式的参数。\n\n\n\n", + "desc": " 获取指定的整数格式的参数。\r\n\r\n\r\n", "name": "children_layouter_get_param_int", "return": { "type": "ret_t", @@ -1829,7 +1829,7 @@ } ], "annotation": {}, - "desc": " 判断layouter对象是否有效。\n\n\n\n", + "desc": " 判断layouter对象是否有效。\r\n\r\n\r\n", "name": "children_layouter_is_valid", "return": { "type": "bool_t", @@ -1845,7 +1845,7 @@ } ], "annotation": {}, - "desc": " 销毁layouter对象。\n\n\n\n", + "desc": " 销毁layouter对象。\r\n\r\n\r\n", "name": "children_layouter_destroy", "return": { "type": "ret_t", @@ -1861,7 +1861,7 @@ } ], "annotation": {}, - "desc": " 创建layouter对象。\n\n\n", + "desc": " 创建layouter对象。\r\n\r\n", "name": "children_layouter_create", "return": { "type": "children_layouter_t*", @@ -1872,20 +1872,20 @@ "events": [], "properties": [], "header": "base/children_layouter.h", - "desc": " 子控件排版布局器的接口。\n\n 按特定算法对子控件进行排版布局,子类需要实现vtable中的函数。\n\n\n", + "desc": " 子控件排版布局器的接口。\r\n\r\n 按特定算法对子控件进行排版布局,子类需要实现vtable中的函数。\r\n\r\n", "name": "children_layouter_t", "level": 1 }, { "type": "enum", - "desc": " 剪切板数据类型定义。\n\n", + "desc": " 剪切板数据类型定义。\r\n", "consts": [ { - "desc": " 无数据。\n\n", + "desc": " 无数据。\r\n", "name": "CLIP_BOARD_DATA_TYPE_NONE" }, { - "desc": " UTF8文本。\n\n", + "desc": " UTF8文本。\r\n", "name": "CLIP_BOARD_DATA_TYPE_TEXT" } ], @@ -1905,7 +1905,7 @@ "annotation": { "constructor": true }, - "desc": " 获取缺省的剪切板对象。\n\n\n", + "desc": " 获取缺省的剪切板对象。\r\n\r\n", "name": "clip_board", "alias": "clip_board_instance", "return": { @@ -1922,7 +1922,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的剪切板对象。\n\n\n", + "desc": " 设置缺省的剪切板对象。\r\n\r\n", "name": "clip_board_set", "return": { "type": "ret_t", @@ -1938,7 +1938,7 @@ } ], "annotation": {}, - "desc": " 清空剪切板中的数据。\n\n\n", + "desc": " 清空剪切板中的数据。\r\n\r\n", "name": "clip_board_clear", "return": { "type": "ret_t", @@ -1969,7 +1969,7 @@ } ], "annotation": {}, - "desc": " 设置数据到剪切板中。\n\n\n", + "desc": " 设置数据到剪切板中。\r\n\r\n", "name": "clip_board_set_data", "return": { "type": "ret_t", @@ -2000,7 +2000,7 @@ } ], "annotation": {}, - "desc": " 从剪切板中获取数据。\n\n\n", + "desc": " 从剪切板中获取数据。\r\n\r\n", "name": "clip_board_get_data", "return": { "type": "ret_t", @@ -2016,7 +2016,7 @@ } ], "annotation": {}, - "desc": " 销毁剪切板对象。\n\n\n", + "desc": " 销毁剪切板对象。\r\n\r\n", "name": "clip_board_destroy", "return": { "type": "ret_t", @@ -2035,7 +2035,7 @@ "static": true, "scriptable": true }, - "desc": " 设置文本(UTF8)数据到剪切板。\n\n\n", + "desc": " 设置文本(UTF8)数据到剪切板。\r\n\r\n", "name": "clip_board_set_text", "return": { "type": "ret_t", @@ -2048,7 +2048,7 @@ "static": true, "scriptable": true }, - "desc": " 从剪切板中获取文本(UTF8)数据。\n\n\n", + "desc": " 从剪切板中获取文本(UTF8)数据。\r\n\r\n", "name": "clip_board_get_text", "return": { "type": "const char*", @@ -2059,7 +2059,7 @@ "events": [], "properties": [], "header": "base/clip_board.h", - "desc": " 剪切板接口。\n\n", + "desc": " 剪切板接口。\r\n", "name": "clip_board_t", "annotation": { "scriptable": true @@ -2074,7 +2074,7 @@ "annotation": { "constructor": true }, - "desc": " 获取缺省的对话框高亮策略工厂对象。\n\n", + "desc": " 获取缺省的对话框高亮策略工厂对象。\r\n", "name": "dialog_highlighter_factory", "return": { "type": "dialog_highlighter_factory_t*", @@ -2090,7 +2090,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的对话框高亮策略工厂对象。\n\n\n", + "desc": " 设置缺省的对话框高亮策略工厂对象。\r\n\r\n", "name": "dialog_highlighter_factory_set", "return": { "type": "ret_t", @@ -2102,7 +2102,7 @@ "annotation": { "constructor": true }, - "desc": " 创建对话框高亮策略工厂对象。\n\n\n", + "desc": " 创建对话框高亮策略工厂对象。\r\n\r\n", "name": "dialog_highlighter_factory_create", "return": { "type": "dialog_highlighter_factory_t*", @@ -2128,7 +2128,7 @@ } ], "annotation": {}, - "desc": " 注册对话框高亮策略创建函数。\n\n\n", + "desc": " 注册对话框高亮策略创建函数。\r\n\r\n", "name": "dialog_highlighter_factory_register", "return": { "type": "ret_t", @@ -2156,7 +2156,7 @@ "annotation": { "constructor": true }, - "desc": " 创建指定类型的对话框高亮策略对象。\n\n\n", + "desc": " 创建指定类型的对话框高亮策略对象。\r\n\r\n", "name": "dialog_highlighter_factory_create_highlighter", "return": { "type": "dialog_highlighter_t*", @@ -2172,7 +2172,7 @@ } ], "annotation": {}, - "desc": " 析构并释放对话框高亮策略工厂对象。\n\n\n", + "desc": " 析构并释放对话框高亮策略工厂对象。\r\n\r\n", "name": "dialog_highlighter_factory_destroy", "return": { "type": "ret_t", @@ -2183,16 +2183,16 @@ "events": [], "properties": [], "header": "base/dialog_highlighter_factory.h", - "desc": " 对话框高亮策略工厂。\n\n\n", + "desc": " 对话框高亮策略工厂。\r\n\r\n", "name": "dialog_highlighter_factory_t", "level": 1 }, { "type": "enum", - "desc": " @type string\n 内置的对话框高亮策略。\n\n", + "desc": " @type string\r\n 内置的对话框高亮策略。\r\n", "consts": [ { - "desc": " 缺省的对话框高亮策略。\n\n", + "desc": " 缺省的对话框高亮策略。\r\n", "name": "DIALOG_HIGHLIGHTER_DEFAULT" } ], @@ -2213,7 +2213,7 @@ } ], "annotation": {}, - "desc": " 创建对话框高亮策略对象。\n\n>供子类构造函数用。\n\n\n", + "desc": " 创建对话框高亮策略对象。\r\n\r\n>供子类构造函数用。\r\n\r\n", "name": "dialog_highlighter_create", "return": { "type": "dialog_highlighter_t*", @@ -2239,7 +2239,7 @@ } ], "annotation": {}, - "desc": " 设置背景图片。\n\n\n", + "desc": " 设置背景图片。\r\n\r\n", "name": "dialog_highlighter_set_bg", "return": { "type": "ret_t", @@ -2260,7 +2260,7 @@ } ], "annotation": {}, - "desc": " 初始化。在绘制完背景,在截图前调用。\n\n\n", + "desc": " 初始化。在绘制完背景,在截图前调用。\r\n\r\n", "name": "dialog_highlighter_prepare", "return": { "type": "ret_t", @@ -2281,7 +2281,7 @@ } ], "annotation": {}, - "desc": " 绘制背景。\n\n\n", + "desc": " 绘制背景。\r\n\r\n", "name": "dialog_highlighter_draw", "return": { "type": "ret_t", @@ -2297,7 +2297,7 @@ } ], "annotation": {}, - "desc": " 是否是动态绘制(方便外层优化)。\n\n\n", + "desc": " 是否是动态绘制(方便外层优化)。\r\n\r\n", "name": "dialog_highlighter_is_dynamic", "return": { "type": "bool_t", @@ -2313,7 +2313,7 @@ } ], "annotation": {}, - "desc": " 销毁对话框高亮策略对象。\n\n\n", + "desc": " 销毁对话框高亮策略对象。\r\n\r\n", "name": "dialog_highlighter_destroy", "return": { "type": "ret_t", @@ -2325,283 +2325,287 @@ "properties": [ { "name": "img", - "desc": " 底层窗口的截图。\n\n", + "desc": " 底层窗口的截图。\r\n", "type": "bitmap_t" }, { "name": "canvas", - "desc": " 画布。\n\n", + "desc": " 画布。\r\n", "type": "canvas_t*" }, { "name": "dialog", - "desc": " 对应的对话框。\n\n", + "desc": " 对应的对话框。\r\n", "type": "widget_t*" } ], "header": "base/dialog_highlighter.h", - "desc": " 对话框高亮策略。\n\n> 高亮策略的基本思路是对背景进行处理,比如将背景变暗或变模糊。\n\n\n", + "desc": " 对话框高亮策略。\r\n\r\n> 高亮策略的基本思路是对背景进行处理,比如将背景变暗或变模糊。\r\n\r\n", "name": "dialog_highlighter_t", "level": 1 }, { "type": "enum", - "desc": " 类型常量定义。\n\n", + "desc": " 类型常量定义。\r\n", "consts": [ { - "desc": " 指针按下事件名(pointer_event_t)。\n\n", + "desc": " 指针按下事件名(pointer_event_t)。\r\n", "name": "EVT_POINTER_DOWN" }, { - "desc": " 指针按下事件名,在子控件处理之前触发(pointer_event_t)。\n\n", + "desc": " 指针按下事件名,在子控件处理之前触发(pointer_event_t)。\r\n", "name": "EVT_POINTER_DOWN_BEFORE_CHILDREN" }, { - "desc": " 指针移动事件名(pointer_event_t)。\n\n", + "desc": " 指针移动事件名(pointer_event_t)。\r\n", "name": "EVT_POINTER_MOVE" }, { - "desc": " 指针移动事件名,在子控件处理之前触发(pointer_event_t)。\n\n", + "desc": " 指针移动事件名,在子控件处理之前触发(pointer_event_t)。\r\n", "name": "EVT_POINTER_MOVE_BEFORE_CHILDREN" }, { - "desc": " 指针抬起事件名(pointer_event_t)。\n\n", + "desc": " 指针抬起事件名(pointer_event_t)。\r\n", "name": "EVT_POINTER_UP" }, { - "desc": " 指针抬起事件名,在子控件处理之前触发(pointer_event_t)。\n\n", + "desc": " 指针抬起事件名,在子控件处理之前触发(pointer_event_t)。\r\n", "name": "EVT_POINTER_UP_BEFORE_CHILDREN" }, { - "desc": " 滚轮事件名(pointer_event_t)。\n\n", + "desc": " 滚轮事件名(pointer_event_t)。\r\n", "name": "EVT_WHEEL" }, { - "desc": " 取消前一个指针按下事件名(pointer_event_t)。\n\n", + "desc": " 鼠标滚轮事件名,在子控件处理之前触发(key_event_t)。\r\n", + "name": "EVT_WHEEL_BEFORE_CHILDREN" + }, + { + "desc": " 取消前一个指针按下事件名(pointer_event_t)。\r\n", "name": "EVT_POINTER_DOWN_ABORT" }, { - "desc": " 右键/长按弹出上下文菜单的事件名(pointer_event_t)。\n\n", + "desc": " 右键/长按弹出上下文菜单的事件名(pointer_event_t)。\r\n", "name": "EVT_CONTEXT_MENU" }, { - "desc": " 指针进入事件名(pointer_event_t)。\n\n", + "desc": " 指针进入事件名(pointer_event_t)。\r\n", "name": "EVT_POINTER_ENTER" }, { - "desc": " 指针离开事件名(pointer_event_t)。\n\n", + "desc": " 指针离开事件名(pointer_event_t)。\r\n", "name": "EVT_POINTER_LEAVE" }, { - "desc": " 长按事件名(pointer_event_t)。\n\n", + "desc": " 长按事件名(pointer_event_t)。\r\n", "name": "EVT_LONG_PRESS" }, { - "desc": " 点击事件名(pointer_event_t)。\n\n", + "desc": " 点击事件名(pointer_event_t)。\r\n", "name": "EVT_CLICK" }, { - "desc": " 得到焦点事件名(event_t)。\n\n", + "desc": " 得到焦点事件名(event_t)。\r\n", "name": "EVT_FOCUS" }, { - "desc": " 失去焦点事件名(event_t)。\n\n", + "desc": " 失去焦点事件名(event_t)。\r\n", "name": "EVT_BLUR" }, { - "desc": " 键按下事件名(key_event_t)。\n\n", + "desc": " 键按下事件名(key_event_t)。\r\n", "name": "EVT_KEY_DOWN" }, { - "desc": " 键按下事件名,在子控件处理之前触发(key_event_t)。\n\n", + "desc": " 键按下事件名,在子控件处理之前触发(key_event_t)。\r\n", "name": "EVT_KEY_DOWN_BEFORE_CHILDREN" }, { - "desc": " 按键repeat事件名(key_event_t)。\n\n", + "desc": " 按键repeat事件名(key_event_t)。\r\n", "name": "EVT_KEY_REPEAT" }, { - "desc": " 键抬起事件名(key_event_t)。\n\n", + "desc": " 键抬起事件名(key_event_t)。\r\n", "name": "EVT_KEY_UP" }, { - "desc": " 键抬起事件名,在子控件处理之前触发(key_event_t)。\n\n", + "desc": " 键抬起事件名,在子控件处理之前触发(key_event_t)。\r\n", "name": "EVT_KEY_UP_BEFORE_CHILDREN" }, { - "desc": " 即将移动Widget的事件名(event_t)。\n\n", + "desc": " 即将移动Widget的事件名(event_t)。\r\n", "name": "EVT_WILL_MOVE" }, { - "desc": " 移动Widget的事件名(event_t)。\n\n", + "desc": " 移动Widget的事件名(event_t)。\r\n", "name": "EVT_MOVE" }, { - "desc": " 即将调整Widget大小的事件名(event_t)。\n\n", + "desc": " 即将调整Widget大小的事件名(event_t)。\r\n", "name": "EVT_WILL_RESIZE" }, { - "desc": " 调整Widget大小的事件名(event_t)。\n\n", + "desc": " 调整Widget大小的事件名(event_t)。\r\n", "name": "EVT_RESIZE" }, { - "desc": " 即将调整Widget大小/位置的事件名(event_t)。\n\n", + "desc": " 即将调整Widget大小/位置的事件名(event_t)。\r\n", "name": "EVT_WILL_MOVE_RESIZE" }, { - "desc": " 调整Widget大小/位置的事件名(event_t)。\n\n", + "desc": " 调整Widget大小/位置的事件名(event_t)。\r\n", "name": "EVT_MOVE_RESIZE" }, { - "desc": " 控件的值即将改变的事件名(event_t)。\n\n", + "desc": " 控件的值即将改变的事件名(event_t)。\r\n", "name": "EVT_VALUE_WILL_CHANGE" }, { - "desc": " 控件的值改变的事件名(event_t)。\n\n", + "desc": " 控件的值改变的事件名(event_t)。\r\n", "name": "EVT_VALUE_CHANGED" }, { - "desc": " 控件的值持续改变(如编辑器正在编辑)的事件名(event_t)。\n\n", + "desc": " 控件的值持续改变(如编辑器正在编辑)的事件名(event_t)。\r\n", "name": "EVT_VALUE_CHANGING" }, { - "desc": " 绘制的事件名(paint_event_t)。\n\n", + "desc": " 绘制的事件名(paint_event_t)。\r\n", "name": "EVT_PAINT" }, { - "desc": " 即将绘制的事件名(paint_event_t)。\n\n", + "desc": " 即将绘制的事件名(paint_event_t)。\r\n", "name": "EVT_BEFORE_PAINT" }, { - "desc": " 绘制完成的事件名(paint_event_t)。\n\n", + "desc": " 绘制完成的事件名(paint_event_t)。\r\n", "name": "EVT_AFTER_PAINT" }, { - "desc": " 绘制完成(canvas状态已经恢复)的事件名(paint_event_t)。\n\n", + "desc": " 绘制完成(canvas状态已经恢复)的事件名(paint_event_t)。\r\n", "name": "EVT_PAINT_DONE" }, { - "desc": " locale改变的事件(event_t)。\n\n", + "desc": " locale改变的事件(event_t)。\r\n", "name": "EVT_LOCALE_CHANGED" }, { - "desc": " 控件动画开始事件(event_t)。\n\n", + "desc": " 控件动画开始事件(event_t)。\r\n", "name": "EVT_ANIM_START" }, { - "desc": " 控件动画被主动停止的事件(event_t)。\n\n", + "desc": " 控件动画被主动停止的事件(event_t)。\r\n", "name": "EVT_ANIM_STOP" }, { - "desc": " 控件动画被暂停的事件(event_t)。\n\n", + "desc": " 控件动画被暂停的事件(event_t)。\r\n", "name": "EVT_ANIM_PAUSE" }, { - "desc": " 控件动画yoyo/repeat时,完成一次的事件(event_t)。\n\n", + "desc": " 控件动画yoyo/repeat时,完成一次的事件(event_t)。\r\n", "name": "EVT_ANIM_ONCE" }, { - "desc": " 控件动画完成事件(event_t)。\n\n", + "desc": " 控件动画完成事件(event_t)。\r\n", "name": "EVT_ANIM_END" }, { - "desc": " 窗口加载完成事件(event_t)。\n\n", + "desc": " 窗口加载完成事件(event_t)。\r\n", "name": "EVT_WINDOW_LOAD" }, { - "desc": " 窗口即将打开事件(event_t)。\n 如果有窗口动画,在窗口动画开始前触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。\n\n", + "desc": " 窗口即将打开事件(event_t)。\r\n 如果有窗口动画,在窗口动画开始前触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。\r\n", "name": "EVT_WINDOW_WILL_OPEN" }, { - "desc": " 窗口打开事件(event_t)。\n 如果有窗口动画,在窗口动画完成时触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。\n\n", + "desc": " 窗口打开事件(event_t)。\r\n 如果有窗口动画,在窗口动画完成时触发。如果没有窗口动画,在窗口被加载后的下一次循环中触发。\r\n", "name": "EVT_WINDOW_OPEN" }, { - "desc": " 窗口被切换到后台事件(event_t)。\n 打开新窗口时,当前窗口被切换到后台时,对当前窗口触发本事件。\n\n", + "desc": " 窗口被切换到后台事件(event_t)。\r\n 打开新窗口时,当前窗口被切换到后台时,对当前窗口触发本事件。\r\n", "name": "EVT_WINDOW_TO_BACKGROUND" }, { - "desc": " 窗口被切换到前台事件(event_t)。\n 关闭当前窗口时,前一个窗口被切换到前台时,对前一个窗口触发本事件。\n\n", + "desc": " 窗口被切换到前台事件(event_t)。\r\n 关闭当前窗口时,前一个窗口被切换到前台时,对前一个窗口触发本事件。\r\n", "name": "EVT_WINDOW_TO_FOREGROUND" }, { - "desc": " 窗口关闭事件。\n\n", + "desc": " 窗口关闭事件。\r\n", "name": "EVT_WINDOW_CLOSE" }, { - "desc": " 请求关闭窗口的事件(event_t)。\n\n", + "desc": " 请求关闭窗口的事件(event_t)。\r\n", "name": "EVT_REQUEST_CLOSE_WINDOW" }, { - "desc": " 顶层窗口改变的事件(window_event_t)。\n\n", + "desc": " 顶层窗口改变的事件(window_event_t)。\r\n", "name": "EVT_TOP_WINDOW_CHANGED" }, { - "desc": " 输入法提交输入的文本事件(im_commit_event_t)。\n\n", + "desc": " 输入法提交输入的文本事件(im_commit_event_t)。\r\n", "name": "EVT_IM_COMMIT" }, { - "desc": " 输入法请求显示候选字事件(im_candidates_event_t)。\n\n", + "desc": " 输入法请求显示候选字事件(im_candidates_event_t)。\r\n", "name": "EVT_IM_SHOW_CANDIDATES" }, { - "desc": " 软键盘Action点击事件(event_t)。\n\n", + "desc": " 软键盘Action点击事件(event_t)。\r\n", "name": "EVT_IM_ACTION" }, { - "desc": " 请求更新软键盘上的Action按钮的信息(im_action_button_info_event_t)。\n\n", + "desc": " 请求更新软键盘上的Action按钮的信息(im_action_button_info_event_t)。\r\n", "name": "EVT_IM_ACTION_INFO" }, { - "desc": " 开始拖动(event_t)。\n\n", + "desc": " 开始拖动(event_t)。\r\n", "name": "EVT_DRAG_START" }, { - "desc": " 拖动(event_t)。\n\n", + "desc": " 拖动(event_t)。\r\n", "name": "EVT_DRAG" }, { - "desc": " 结束拖动(event_t)。\n\n", + "desc": " 结束拖动(event_t)。\r\n", "name": "EVT_DRAG_END" }, { - "desc": " 在指定的时间内(WITH_SCREEN_SAVER_TIME),没有用户输入事件,由窗口管理器触发。\n\n", + "desc": " 在指定的时间内(WITH_SCREEN_SAVER_TIME),没有用户输入事件,由窗口管理器触发。\r\n", "name": "EVT_SCREEN_SAVER" }, { - "desc": " 内存不足(event_t)。\n\n", + "desc": " 内存不足(event_t)。\r\n", "name": "EVT_LOW_MEMORY" }, { - "desc": " 内存耗尽(event_t)。\n\n", + "desc": " 内存耗尽(event_t)。\r\n", "name": "EVT_OUT_OF_MEMORY" }, { - "desc": " 屏幕即将旋转(event_t)。\n\n", + "desc": " 屏幕即将旋转(event_t)。\r\n", "name": "EVT_ORIENTATION_WILL_CHANGED" }, { - "desc": " 屏幕旋转(event_t)。\n\n", + "desc": " 屏幕旋转(event_t)。\r\n", "name": "EVT_ORIENTATION_CHANGED" }, { - "desc": " 控件创建事件(event_t)。\n\n", + "desc": " 控件创建事件(event_t)。\r\n", "name": "EVT_WIDGET_CREATED" }, { - "desc": " 请求退出应用程序事件。\n 点击原生窗口关闭按钮时,通过窗口管理器触发,注册该事件并返回RET_STOP,可以阻止窗口关闭。\n\n", + "desc": " 请求退出应用程序事件。\r\n 点击原生窗口关闭按钮时,通过窗口管理器触发,注册该事件并返回RET_STOP,可以阻止窗口关闭。\r\n", "name": "EVT_REQUEST_QUIT_APP" }, { - "desc": " 主题变化(event_t)。\n\n", + "desc": " 主题变化(event_t)。\r\n", "name": "EVT_THEME_CHANGED" }, { - "desc": " event queue其它请求编号起始值。\n\n", + "desc": " event queue其它请求编号起始值。\r\n", "name": "EVT_REQ_START" }, { - "desc": " 用户定义事件起始值。\n\n", + "desc": " 用户定义事件起始值。\r\n", "name": "EVT_USER_START" } ], @@ -2640,7 +2644,7 @@ } ], "annotation": {}, - "desc": " 加载字体。\n\n\n\n", + "desc": " 加载字体。\r\n\r\n\r\n", "name": "font_loader_load", "return": { "type": "font_t*", @@ -2651,7 +2655,7 @@ "events": [], "properties": [], "header": "base/font_loader.h", - "desc": " 字体加载接口。\n\n", + "desc": " 字体加载接口。\r\n", "name": "font_loader_t", "level": 1 }, @@ -2663,7 +2667,7 @@ "annotation": { "constructor": true }, - "desc": " 获取缺省的字体管理器。\n\n", + "desc": " 获取缺省的字体管理器。\r\n", "name": "font_manager", "return": { "type": "font_manager_t*", @@ -2679,7 +2683,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的字体管理器。\n\n\n", + "desc": " 设置缺省的字体管理器。\r\n\r\n", "name": "font_manager_set", "return": { "type": "ret_t", @@ -2697,7 +2701,7 @@ "annotation": { "constructor": true }, - "desc": " 创建字体管理器。\n\n\n", + "desc": " 创建字体管理器。\r\n\r\n", "name": "font_manager_create", "return": { "type": "font_manager_t*", @@ -2720,7 +2724,7 @@ "annotation": { "constructor": true }, - "desc": " 初始化字体管理器。\n\n\n", + "desc": " 初始化字体管理器。\r\n\r\n", "name": "font_manager_init", "return": { "type": "font_manager_t*", @@ -2741,7 +2745,7 @@ } ], "annotation": {}, - "desc": " 设置资源管理器对象\n\n 之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个字体管理器:\n\n * 一个用于designer本身加载字体。\n\n * 一个用于被设计的窗口加载字体。\n\n这两个字体管理器需要从不同的路径加载资源。\n\n\n", + "desc": " 设置资源管理器对象\r\n\r\n 之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个字体管理器:\r\n\r\n * 一个用于designer本身加载字体。\r\n\r\n * 一个用于被设计的窗口加载字体。\r\n\r\n这两个字体管理器需要从不同的路径加载资源。\r\n\r\n", "name": "font_manager_set_assets_manager", "return": { "type": "ret_t", @@ -2767,7 +2771,7 @@ } ], "annotation": {}, - "desc": " 向缓存中加入字体。\n\n\n", + "desc": " 向缓存中加入字体。\r\n\r\n", "name": "font_manager_add_font", "return": { "type": "ret_t", @@ -2793,7 +2797,7 @@ } ], "annotation": {}, - "desc": " 从缓存中查找字体,如果没找到,再加载字体,并缓存。\n\n\n", + "desc": " 从缓存中查找字体,如果没找到,再加载字体,并缓存。\r\n\r\n", "name": "font_manager_get_font", "return": { "type": "font_t*", @@ -2821,7 +2825,7 @@ "annotation": { "scriptable": true }, - "desc": " 卸载指定的字体。\n\n\n", + "desc": " 卸载指定的字体。\r\n\r\n", "name": "font_manager_unload_font", "return": { "type": "ret_t", @@ -2839,7 +2843,7 @@ "annotation": { "scriptable": true }, - "desc": " 卸载全部字体。\n\n\n", + "desc": " 卸载全部字体。\r\n\r\n", "name": "font_manager_unload_all", "return": { "type": "ret_t", @@ -2855,7 +2859,7 @@ } ], "annotation": {}, - "desc": " 析构字体管理器。\n\n\n", + "desc": " 析构字体管理器。\r\n\r\n", "name": "font_manager_deinit", "return": { "type": "ret_t", @@ -2871,7 +2875,7 @@ } ], "annotation": {}, - "desc": " 析构并释放字体管理器。\n\n\n", + "desc": " 析构并释放字体管理器。\r\n\r\n", "name": "font_manager_destroy", "return": { "type": "ret_t", @@ -2883,7 +2887,7 @@ "properties": [ { "name": "loader", - "desc": " 字体加载器。\n\n", + "desc": " 字体加载器。\r\n", "type": "font_loader_t*", "annotation": { "private": true @@ -2891,7 +2895,7 @@ }, { "name": "assets_manager", - "desc": " 资源管理器。\n\n", + "desc": " 资源管理器。\r\n", "type": "assets_manager_t*", "annotation": { "private": true @@ -2899,7 +2903,7 @@ } ], "header": "base/font_manager.h", - "desc": " 字体管理器,负责字体的加载和缓存管理。\n (如果使用nanovg,字体由nanovg内部管理)\n\n", + "desc": " 字体管理器,负责字体的加载和缓存管理。\r\n (如果使用nanovg,字体由nanovg内部管理)\r\n", "name": "font_manager_t", "annotation": { "scriptable": true @@ -2908,18 +2912,18 @@ }, { "type": "enum", - "desc": " 字模格式常量定义。\n\n", + "desc": " 字模格式常量定义。\r\n", "consts": [ { - "desc": " 每个像素占用1个字节(缺省)。\n\n", + "desc": " 每个像素占用1个字节(缺省)。\r\n", "name": "GLYPH_FMT_ALPHA" }, { - "desc": " 每个像素占用1个比特。\n\n", + "desc": " 每个像素占用1个比特。\r\n", "name": "GLYPH_FMT_MONO" }, { - "desc": " 每个像素占用4个字节。\n\n", + "desc": " 每个像素占用4个字节。\r\n", "name": "GLYPH_FMT_RGBA" } ], @@ -2939,7 +2943,7 @@ "annotation": { "constructor": true }, - "desc": " 创建glyph对象。\n\n\n", + "desc": " 创建glyph对象。\r\n\r\n", "name": "glyph_create", "return": { "type": "glyph_t*", @@ -2951,7 +2955,7 @@ "annotation": { "constructor": true }, - "desc": " 克隆glyph对象。\n\n\n", + "desc": " 克隆glyph对象。\r\n\r\n", "name": "glyph_clone", "return": { "type": "glyph_t*", @@ -2969,7 +2973,7 @@ "annotation": { "deconstructor": true }, - "desc": " 销毁glyph对象。\n\n\n", + "desc": " 销毁glyph对象。\r\n\r\n", "name": "glyph_destroy", "return": { "type": "ret_t", @@ -2981,7 +2985,7 @@ "properties": [ { "name": "x", - "desc": " x坐标。\n\n", + "desc": " x坐标。\r\n", "type": "int16_t", "annotation": { "readable": true @@ -2989,7 +2993,7 @@ }, { "name": "y", - "desc": " y坐标。\n\n", + "desc": " y坐标。\r\n", "type": "int16_t", "annotation": { "readable": true @@ -2997,7 +3001,7 @@ }, { "name": "w", - "desc": " 宽度。\n\n", + "desc": " 宽度。\r\n", "type": "uint16_t", "annotation": { "readable": true @@ -3005,7 +3009,7 @@ }, { "name": "h", - "desc": " 高度。\n\n", + "desc": " 高度。\r\n", "type": "uint16_t", "annotation": { "readable": true @@ -3013,7 +3017,7 @@ }, { "name": "advance", - "desc": " 占位宽度。\n\n", + "desc": " 占位宽度。\r\n", "type": "uint16_t", "annotation": { "readable": true @@ -3021,7 +3025,7 @@ }, { "name": "format", - "desc": " 格式。\n\n", + "desc": " 格式。\r\n", "type": "uint8_t", "annotation": { "readable": true @@ -3029,7 +3033,7 @@ }, { "name": "pitch", - "desc": " pitch。\n\n", + "desc": " pitch。\r\n", "type": "uint8_t", "annotation": { "readable": true @@ -3037,7 +3041,7 @@ }, { "name": "data", - "desc": " 数据。\n\n", + "desc": " 数据。\r\n", "type": "const uint8_t*", "annotation": { "readable": true @@ -3045,7 +3049,7 @@ } ], "header": "base/font.h", - "desc": " 代表一个字符的字模。\n\n\n", + "desc": " 代表一个字符的字模。\r\n\r\n", "name": "glyph_t", "level": 1 }, @@ -3066,7 +3070,7 @@ } ], "annotation": {}, - "desc": " 获取字体的基线。\n\n\n", + "desc": " 获取字体的基线。\r\n\r\n", "name": "font_get_baseline", "return": { "type": "int32_t", @@ -3092,7 +3096,7 @@ } ], "annotation": {}, - "desc": " 检查当前字体是否与指定名称和大小相匹配。\n\n\n\n", + "desc": " 检查当前字体是否与指定名称和大小相匹配。\r\n\r\n\r\n", "name": "font_match", "return": { "type": "int32_t", @@ -3123,7 +3127,7 @@ } ], "annotation": {}, - "desc": " 获取指定字符和大小的字模。\n\n\n\n", + "desc": " 获取指定字符和大小的字模。\r\n\r\n\r\n", "name": "font_get_glyph", "return": { "type": "ret_t", @@ -3141,7 +3145,7 @@ "annotation": { "deconstructor": true }, - "desc": " 销毁font对象。\n\n\n", + "desc": " 销毁font对象。\r\n\r\n", "name": "font_destroy", "return": { "type": "ret_t", @@ -3152,7 +3156,7 @@ "events": [], "properties": [], "header": "base/font.h", - "desc": " 代表一种字体。\n\n\n", + "desc": " 代表一种字体。\r\n\r\n", "name": "font_t", "level": 1 }, @@ -3302,7 +3306,7 @@ "events": [], "properties": [], "header": "base/hscrollable.h", - "desc": " 帮助实现控件左右滚动的效果。\n\n", + "desc": " 帮助实现控件左右滚动的效果。\r\n", "name": "hscrollable_t", "level": 1 }, @@ -3326,7 +3330,7 @@ "scriptable": "custom", "static": true }, - "desc": " 增加一个idle。\n\n\n", + "desc": " 增加一个idle。\r\n\r\n", "name": "idle_add", "return": { "type": "uint32_t", @@ -3349,7 +3353,7 @@ "annotation": { "static": true }, - "desc": " 用于非GUI线程增加一个idle,本函数向主循环的事件队列中发送一个增加idle的请求。\n\n\n", + "desc": " 用于非GUI线程增加一个idle,本函数向主循环的事件队列中发送一个增加idle的请求。\r\n\r\n", "name": "idle_queue", "return": { "type": "ret_t", @@ -3368,7 +3372,7 @@ "scriptable": true, "static": true }, - "desc": " 删除指定的idle。\n\n\n", + "desc": " 删除指定的idle。\r\n\r\n", "name": "idle_remove", "return": { "type": "ret_t", @@ -3380,7 +3384,7 @@ "annotation": { "private": true }, - "desc": " 查找指定ID的idle。\n\n\n", + "desc": " 查找指定ID的idle。\r\n\r\n", "name": "idle_find", "return": { "type": "idle_info_t*", @@ -3406,7 +3410,7 @@ } ], "annotation": {}, - "desc": " 设置一个回调函数,在idle被销毁时调用(方便脚本语言去释放回调函数)。\n\n\n", + "desc": " 设置一个回调函数,在idle被销毁时调用(方便脚本语言去释放回调函数)。\r\n\r\n", "name": "idle_set_on_destroy", "return": { "type": "ret_t", @@ -3418,7 +3422,7 @@ "annotation": { "private": true }, - "desc": " 调用全部idle的函数。\n\n\n", + "desc": " 调用全部idle的函数。\r\n\r\n", "name": "idle_dispatch", "return": { "type": "ret_t", @@ -3430,7 +3434,7 @@ "annotation": { "static": true }, - "desc": " 返回idle的个数。\n\n\n", + "desc": " 返回idle的个数。\r\n\r\n", "name": "idle_count", "return": { "type": "uint32_t", @@ -3441,7 +3445,7 @@ "events": [], "properties": [], "header": "base/idle.h", - "desc": "\n idle可以看作是duration为0的定时器。\n\n > idle可以用来实现一些异步处理。\n\n 示例:\n\n ```c\n static ret_t something_on_idle(const idle_info_t* info) {\n widget_t* widget = WIDGET(info->ctx);\n edit_t* edit = EDIT(widget);\n ...\n return RET_REMOVE;\n }\n\n ...\n\n idle_add(something_on_idle, edit);\n\n ```\n\n > 在非GUI线程请用idle\\_queue。\n\n\n", + "desc": "\r\n idle可以看作是duration为0的定时器。\r\n\r\n > idle可以用来实现一些异步处理。\r\n\r\n 示例:\r\n\r\n ```c\r\n static ret_t something_on_idle(const idle_info_t* info) {\r\n widget_t* widget = WIDGET(info->ctx);\r\n edit_t* edit = EDIT(widget);\r\n ...\r\n return RET_REMOVE;\r\n }\r\n\r\n ...\r\n\r\n idle_add(something_on_idle, edit);\r\n\r\n ```\r\n\r\n > 在非GUI线程请用idle\\_queue。\r\n\r\n", "name": "idle_t", "annotation": { "scriptable": true, @@ -3471,7 +3475,7 @@ } ], "annotation": {}, - "desc": " 加载图片。\n\n\n", + "desc": " 加载图片。\r\n\r\n", "name": "image_loader_load", "return": { "type": "ret_t", @@ -3489,7 +3493,7 @@ "annotation": { "static": true }, - "desc": " 注册图片加载器。\n\n\n\n", + "desc": " 注册图片加载器。\r\n\r\n\r\n", "name": "image_loader_register", "return": { "type": "ret_t", @@ -3507,7 +3511,7 @@ "annotation": { "static": true }, - "desc": " 注销图片加载器。\n\n\n\n", + "desc": " 注销图片加载器。\r\n\r\n\r\n", "name": "image_loader_unregister", "return": { "type": "ret_t", @@ -3530,7 +3534,7 @@ "annotation": { "static": true }, - "desc": " 查找满足条件加载器并加载图片。\n\n\n\n", + "desc": " 查找满足条件加载器并加载图片。\r\n\r\n\r\n", "name": "image_loader_load_image", "return": { "type": "ret_t", @@ -3541,7 +3545,7 @@ "events": [], "properties": [], "header": "base/image_loader.h", - "desc": " 图片加载接口。\n\n", + "desc": " 图片加载接口。\r\n", "name": "image_loader_t", "level": 1 }, @@ -3554,7 +3558,7 @@ "constructor": true, "scriptable": true }, - "desc": " 获取缺省的图片管理器。\n\n", + "desc": " 获取缺省的图片管理器。\r\n", "name": "image_manager", "alias": "image_manager_instance", "return": { @@ -3571,7 +3575,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的图片管理器。\n\n\n", + "desc": " 设置缺省的图片管理器。\r\n\r\n", "name": "image_manager_set", "return": { "type": "ret_t", @@ -3583,7 +3587,7 @@ "annotation": { "constructor": true }, - "desc": " 创建图片管理器。\n\n\n", + "desc": " 创建图片管理器。\r\n\r\n", "name": "image_manager_create", "return": { "type": "image_manager_t*", @@ -3601,7 +3605,7 @@ "annotation": { "constructor": true }, - "desc": " 初始化图片管理器。\n\n\n", + "desc": " 初始化图片管理器。\r\n\r\n", "name": "image_manager_init", "return": { "type": "image_manager_t*", @@ -3629,7 +3633,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定的图片。\n 先从缓存查找,如果没找到,再加载并缓存。\n\n\n\n", + "desc": " 获取指定的图片。\r\n 先从缓存查找,如果没找到,再加载并缓存。\r\n\r\n\r\n", "name": "image_manager_get_bitmap", "return": { "type": "ret_t", @@ -3650,7 +3654,7 @@ } ], "annotation": {}, - "desc": " 从图片管理器中卸载指定时间内没有使用的图片。\n\n\n", + "desc": " 从图片管理器中卸载指定时间内没有使用的图片。\r\n\r\n", "name": "image_manager_unload_unused", "return": { "type": "ret_t", @@ -3666,7 +3670,7 @@ } ], "annotation": {}, - "desc": " 从图片管理器中卸载全部图片。\n\n\n\n", + "desc": " 从图片管理器中卸载全部图片。\r\n\r\n\r\n", "name": "image_manager_unload_all", "return": { "type": "ret_t", @@ -3687,7 +3691,7 @@ } ], "annotation": {}, - "desc": " 从图片管理器中卸载指定的图片。\n\n\n", + "desc": " 从图片管理器中卸载指定的图片。\r\n\r\n", "name": "image_manager_unload_bitmap", "return": { "type": "ret_t", @@ -3708,7 +3712,7 @@ } ], "annotation": {}, - "desc": " 更新缓存中图片的specific信息。\n\n\n", + "desc": " 更新缓存中图片的specific信息。\r\n\r\n", "name": "image_manager_update_specific", "return": { "type": "ret_t", @@ -3729,7 +3733,7 @@ } ], "annotation": {}, - "desc": " 设置资源管理器对象。\n\n 之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个图片管理器:\n\n * 一个用于designer本身加载图片。\n\n * 一个用于被设计的窗口加载图片。\n\n这两个图片管理器需要从不同的路径加载资源。\n\n\n\n", + "desc": " 设置资源管理器对象。\r\n\r\n 之所以需要设置资源管理器对象,而不是使用缺省的资源管理器对象,是因为在designer中有两个图片管理器:\r\n\r\n * 一个用于designer本身加载图片。\r\n\r\n * 一个用于被设计的窗口加载图片。\r\n\r\n这两个图片管理器需要从不同的路径加载资源。\r\n\r\n\r\n", "name": "image_manager_set_assets_manager", "return": { "type": "ret_t", @@ -3745,7 +3749,7 @@ } ], "annotation": {}, - "desc": " 析构图片管理器。\n\n\n", + "desc": " 析构图片管理器。\r\n\r\n", "name": "image_manager_deinit", "return": { "type": "ret_t", @@ -3761,7 +3765,7 @@ } ], "annotation": {}, - "desc": " 析构并释放图片管理器。\n\n\n", + "desc": " 析构并释放图片管理器。\r\n\r\n", "name": "image_manager_destroy", "return": { "type": "ret_t", @@ -3773,7 +3777,7 @@ "properties": [ { "name": "images", - "desc": " 缓存的图片。\n\n", + "desc": " 缓存的图片。\r\n", "type": "darray_t", "annotation": { "private": true @@ -3781,7 +3785,7 @@ }, { "name": "assets_manager", - "desc": " 资源管理器。\n\n", + "desc": " 资源管理器。\r\n", "type": "assets_manager_t*", "annotation": { "private": true @@ -3789,7 +3793,7 @@ } ], "header": "base/image_manager.h", - "desc": " 图片管理器。负责加载,解码和缓存图片。\n\n", + "desc": " 图片管理器。负责加载,解码和缓存图片。\r\n", "name": "image_manager_t", "annotation": { "scriptable": true @@ -3859,7 +3863,7 @@ "annotation": { "constructor": true }, - "desc": " 创建输入法引擎对象。\n\n\n", + "desc": " 创建输入法引擎对象。\r\n\r\n", "name": "input_engine_create", "return": { "type": "input_engine_t*", @@ -3877,7 +3881,7 @@ "annotation": { "deconstructor": true }, - "desc": " 销毁输入法引擎对象。\n\n\n", + "desc": " 销毁输入法引擎对象。\r\n\r\n", "name": "input_engine_destroy", "return": { "type": "ret_t", @@ -3893,7 +3897,7 @@ } ], "annotation": {}, - "desc": " 清除所有输入的按键组合和候选字。\n\n\n", + "desc": " 清除所有输入的按键组合和候选字。\r\n\r\n", "name": "input_engine_reset_input", "return": { "type": "ret_t", @@ -3914,7 +3918,7 @@ } ], "annotation": {}, - "desc": " 输入新的按键,并更新候选字。\n\n\n", + "desc": " 输入新的按键,并更新候选字。\r\n\r\n", "name": "input_engine_input", "return": { "type": "ret_t", @@ -3926,7 +3930,7 @@ "properties": [ { "name": "keys", - "desc": " 当前的按键组合。\n\n", + "desc": " 当前的按键组合。\r\n", "type": "str_t", "annotation": { "private": true @@ -3934,7 +3938,7 @@ }, { "name": "candidates", - "desc": " 当前按键组合对应的候选字列表。\n\n", + "desc": " 当前按键组合对应的候选字列表。\r\n", "type": "char*", "annotation": { "private": true @@ -3942,7 +3946,7 @@ }, { "name": "candidates_nr", - "desc": " 当前按键组合对应的候选字/词个数。\n\n", + "desc": " 当前按键组合对应的候选字/词个数。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -3950,52 +3954,52 @@ } ], "header": "base/input_engine.h", - "desc": " 输入法引擎接口。\n\n 常见的实现方式有以下几种:\n\n * 空实现。用于不需要输入法的嵌入式平台。\n\n * 拼音输入法实现。用于需要输入法的嵌入式平台。\n\n ```graphviz\n [default_style]\n\n input_engine_pinyin_t -> input_engine_t[arrowhead=empty style=dashed]\n input_engine_null_t -> input_engine_t[arrowhead=empty style=dashed]\n\n ```\n\n", + "desc": " 输入法引擎接口。\r\n\r\n 常见的实现方式有以下几种:\r\n\r\n * 空实现。用于不需要输入法的嵌入式平台。\r\n\r\n * 拼音输入法实现。用于需要输入法的嵌入式平台。\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n input_engine_pinyin_t -> input_engine_t[arrowhead=empty style=dashed]\r\n input_engine_null_t -> input_engine_t[arrowhead=empty style=dashed]\r\n\r\n ```\r\n", "name": "input_engine_t", "level": 1 }, { "type": "enum", - "desc": " 输入类型常量定义。\n\n", + "desc": " 输入类型常量定义。\r\n", "consts": [ { - "desc": " 文本。\n\n", + "desc": " 文本。\r\n", "name": "INPUT_TEXT" }, { - "desc": " 整数。\n\n", + "desc": " 整数。\r\n", "name": "INPUT_INT" }, { - "desc": " 非负整数。\n\n", + "desc": " 非负整数。\r\n", "name": "INPUT_UINT" }, { - "desc": " 16进制整数。\n\n", + "desc": " 16进制整数。\r\n", "name": "INPUT_HEX" }, { - "desc": " 浮点数。\n\n", + "desc": " 浮点数。\r\n", "name": "INPUT_FLOAT" }, { - "desc": " 非负浮点数。\n\n", + "desc": " 非负浮点数。\r\n", "name": "INPUT_UFLOAT" }, { - "desc": " 邮件地址。\n\n", + "desc": " 邮件地址。\r\n", "name": "INPUT_EMAIL" }, { - "desc": " 密码。\n\n", + "desc": " 密码。\r\n", "name": "INPUT_PASSWORD" }, { - "desc": " 电话号码。\n\n", + "desc": " 电话号码。\r\n", "name": "INPUT_PHONE" }, { - "desc": " 使用自定义的软键盘(如计算器等应用不希望弹出系统软键盘)。\n\n", + "desc": " 使用自定义的软键盘(如计算器等应用不希望弹出系统软键盘)。\r\n", "name": "INPUT_CUSTOM" } ], @@ -4024,7 +4028,7 @@ } ], "annotation": {}, - "desc": " 分发一个事件。\n\n\n", + "desc": " 分发一个事件。\r\n\r\n", "name": "input_method_dispatch", "return": { "type": "ret_t", @@ -4045,7 +4049,7 @@ } ], "annotation": {}, - "desc": " 分发一个事件当前焦点控件。\n\n\n", + "desc": " 分发一个事件当前焦点控件。\r\n\r\n", "name": "input_method_dispatch_to_widget", "return": { "type": "ret_t", @@ -4076,7 +4080,7 @@ } ], "annotation": {}, - "desc": " 注册指定事件的处理函数。\n\n\n", + "desc": " 注册指定事件的处理函数。\r\n\r\n", "name": "input_method_on", "return": { "type": "uint32_t", @@ -4097,7 +4101,7 @@ } ], "annotation": {}, - "desc": " 注销指定事件的处理函数。\n\n\n", + "desc": " 注销指定事件的处理函数。\r\n\r\n", "name": "input_method_off", "return": { "type": "ret_t", @@ -4118,7 +4122,7 @@ } ], "annotation": {}, - "desc": " 打开或关闭输入法。\n\n\n", + "desc": " 打开或关闭输入法。\r\n\r\n", "name": "input_method_request", "return": { "type": "ret_t", @@ -4144,7 +4148,7 @@ } ], "annotation": {}, - "desc": " 设置软键盘上的action按钮的信息。\n\n\n", + "desc": " 设置软键盘上的action按钮的信息。\r\n\r\n", "name": "input_method_update_action_button_info", "return": { "type": "ret_t", @@ -4160,7 +4164,7 @@ } ], "annotation": {}, - "desc": " 软键盘上的action按钮被点击时,调用本函数分发EVT_IM_ACTION事件。\n\n\n", + "desc": " 软键盘上的action按钮被点击时,调用本函数分发EVT_IM_ACTION事件。\r\n\r\n", "name": "input_method_dispatch_action", "return": { "type": "ret_t", @@ -4183,7 +4187,7 @@ "annotation": { "scriptable": true }, - "desc": " 提交输入文本。\n\n\n", + "desc": " 提交输入文本。\r\n\r\n", "name": "input_method_commit_text", "return": { "type": "ret_t", @@ -4209,7 +4213,7 @@ } ], "annotation": {}, - "desc": " 提交输入文本。\n\n\n", + "desc": " 提交输入文本。\r\n\r\n", "name": "input_method_commit_text_ex", "return": { "type": "ret_t", @@ -4232,7 +4236,7 @@ "annotation": { "scriptable": true }, - "desc": " 提交按键。\n\n\n", + "desc": " 提交按键。\r\n\r\n", "name": "input_method_dispatch_key", "return": { "type": "ret_t", @@ -4258,7 +4262,7 @@ } ], "annotation": {}, - "desc": " 请求显示候选字。\n\n\n", + "desc": " 请求显示候选字。\r\n\r\n", "name": "input_method_dispatch_candidates", "return": { "type": "ret_t", @@ -4268,7 +4272,7 @@ { "params": [], "annotation": {}, - "desc": " 创建输入法对象。在具体实现中实现。\n\n\n", + "desc": " 创建输入法对象。在具体实现中实现。\r\n\r\n", "name": "input_method_create", "return": { "type": "input_method_t*", @@ -4284,7 +4288,7 @@ } ], "annotation": {}, - "desc": " 销毁输入法对象。在具体实现中实现。\n\n\n", + "desc": " 销毁输入法对象。在具体实现中实现。\r\n\r\n", "name": "input_method_destroy", "return": { "type": "ret_t", @@ -4297,7 +4301,7 @@ "constructor": true, "scriptable": true }, - "desc": " 获取全局输入法对象。\n\n\n", + "desc": " 获取全局输入法对象。\r\n\r\n", "name": "input_method", "alias": "input_method_instance", "return": { @@ -4314,7 +4318,7 @@ } ], "annotation": {}, - "desc": " 设置全局输入法对象。\n\n\n", + "desc": " 设置全局输入法对象。\r\n\r\n", "name": "input_method_set", "return": { "type": "ret_t", @@ -4326,7 +4330,7 @@ "properties": [ { "name": "widget", - "desc": " 当前的焦点控件。\n\n", + "desc": " 当前的焦点控件。\r\n", "type": "widget_t*", "annotation": { "private": true @@ -4334,7 +4338,7 @@ }, { "name": "keyboard", - "desc": " 当前的软件键盘。\n\n", + "desc": " 当前的软件键盘。\r\n", "type": "widget_t*", "annotation": { "private": true @@ -4342,7 +4346,7 @@ }, { "name": "win", - "desc": " 当前的窗口。\n\n", + "desc": " 当前的窗口。\r\n", "type": "widget_t*", "annotation": { "private": true @@ -4350,7 +4354,15 @@ }, { "name": "win_delta_y", - "desc": " 由于软键盘的弹出,可能会将窗口向上推移,win_delta_y为推移的距离。\n\n", + "desc": " 由于软键盘的弹出,可能会将窗口向上推移,win_delta_y为推移的距离。\r\n", + "type": "int32_t", + "annotation": { + "private": true + } + }, + { + "name": "win_old_y", + "desc": " 窗口原来的位置。\r\n", "type": "int32_t", "annotation": { "private": true @@ -4358,7 +4370,7 @@ }, { "name": "action_button_enable", - "desc": " 软键盘的上的action按钮是否可用。\n\n", + "desc": " 软键盘的上的action按钮是否可用。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -4366,7 +4378,7 @@ }, { "name": "action_button_enable", - "desc": " 软键盘的上的action按钮文本。\n\n", + "desc": " 软键盘的上的action按钮文本。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -4374,7 +4386,7 @@ }, { "name": "emitter", - "desc": " emitter。用于实现dispatch/on/off等功能。\n\n", + "desc": " emitter。用于实现dispatch/on/off等功能。\r\n", "type": "emitter_t", "annotation": { "private": true @@ -4382,7 +4394,7 @@ }, { "name": "input_type", - "desc": " 当前输入的类型。\n\n", + "desc": " 当前输入的类型。\r\n", "type": "input_type_t", "annotation": { "readable": true @@ -4390,7 +4402,7 @@ } ], "header": "base/input_method.h", - "desc": " 输入法接口。\n\n 常见的实现方式有以下几种:\n\n * 空实现。用于不需要输入法的嵌入式平台。\n\n * 缺省实现。用于需要输入法的嵌入式平台。\n\n * 基于SDL实现的平台原生输入法。用于桌面系统和手机系统。\n\n ```graphviz\n [default_style]\n\n input_method_default_t -> input_method_t [arrowhead=empty style=dashed]\n input_method_sdl_t -> input_method_t [arrowhead=empty style=dashed]\n input_method_null_t -> input_method_t [arrowhead=empty style=dashed]\n\n ```\n\n > 输入类型请参考:[input\\_type](input_type_t.md)\n\n\n", + "desc": " 输入法接口。\r\n\r\n 常见的实现方式有以下几种:\r\n\r\n * 空实现。用于不需要输入法的嵌入式平台。\r\n\r\n * 缺省实现。用于需要输入法的嵌入式平台。\r\n\r\n * 基于SDL实现的平台原生输入法。用于桌面系统和手机系统。\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n input_method_default_t -> input_method_t [arrowhead=empty style=dashed]\r\n input_method_sdl_t -> input_method_t [arrowhead=empty style=dashed]\r\n input_method_null_t -> input_method_t [arrowhead=empty style=dashed]\r\n\r\n ```\r\n\r\n > 输入类型请参考:[input\\_type](input_type_t.md)\r\n\r\n", "name": "input_method_t", "annotation": { "scriptable": true @@ -4399,522 +4411,522 @@ }, { "type": "enum", - "desc": " key code。\n\n", + "desc": " key code。\r\n", "consts": [ { - "desc": " TK_KEY_RETURN\n\n", + "desc": " TK_KEY_RETURN\r\n", "name": "TK_KEY_RETURN" }, { - "desc": " TK_KEY_ESCAPE\n\n", + "desc": " TK_KEY_ESCAPE\r\n", "name": "TK_KEY_ESCAPE" }, { - "desc": " TK_KEY_BACKSPACE\n\n", + "desc": " TK_KEY_BACKSPACE\r\n", "name": "TK_KEY_BACKSPACE" }, { - "desc": " TK_KEY_TAB\n\n", + "desc": " TK_KEY_TAB\r\n", "name": "TK_KEY_TAB" }, { - "desc": " TK_KEY_SPACE\n\n", + "desc": " TK_KEY_SPACE\r\n", "name": "TK_KEY_SPACE" }, { - "desc": " TK_KEY_EXCLAIM\n\n", + "desc": " TK_KEY_EXCLAIM\r\n", "name": "TK_KEY_EXCLAIM" }, { - "desc": " TK_KEY_QUOTEDBL\n\n", + "desc": " TK_KEY_QUOTEDBL\r\n", "name": "TK_KEY_QUOTEDBL" }, { - "desc": " TK_KEY_HASH\n\n", + "desc": " TK_KEY_HASH\r\n", "name": "TK_KEY_HASH" }, { - "desc": " TK_KEY_PERCENT\n\n", + "desc": " TK_KEY_PERCENT\r\n", "name": "TK_KEY_PERCENT" }, { - "desc": " TK_KEY_DOLLAR\n\n", + "desc": " TK_KEY_DOLLAR\r\n", "name": "TK_KEY_DOLLAR" }, { - "desc": " TK_KEY_AMPERSAND\n\n", + "desc": " TK_KEY_AMPERSAND\r\n", "name": "TK_KEY_AMPERSAND" }, { - "desc": " TK_KEY_QUOTE\n\n", + "desc": " TK_KEY_QUOTE\r\n", "name": "TK_KEY_QUOTE" }, { - "desc": " TK_KEY_LEFTPAREN\n\n", + "desc": " TK_KEY_LEFTPAREN\r\n", "name": "TK_KEY_LEFTPAREN" }, { - "desc": " TK_KEY_RIGHTPAREN\n\n", + "desc": " TK_KEY_RIGHTPAREN\r\n", "name": "TK_KEY_RIGHTPAREN" }, { - "desc": " TK_KEY_ASTERISK\n\n", + "desc": " TK_KEY_ASTERISK\r\n", "name": "TK_KEY_ASTERISK" }, { - "desc": " TK_KEY_PLUS\n\n", + "desc": " TK_KEY_PLUS\r\n", "name": "TK_KEY_PLUS" }, { - "desc": " TK_KEY_COMMA\n\n", + "desc": " TK_KEY_COMMA\r\n", "name": "TK_KEY_COMMA" }, { - "desc": " TK_KEY_MINUS\n\n", + "desc": " TK_KEY_MINUS\r\n", "name": "TK_KEY_MINUS" }, { - "desc": " TK_KEY_PERIOD\n\n", + "desc": " TK_KEY_PERIOD\r\n", "name": "TK_KEY_PERIOD" }, { - "desc": " TK_KEY_SLASH\n\n", + "desc": " TK_KEY_SLASH\r\n", "name": "TK_KEY_SLASH" }, { - "desc": " TK_KEY_0\n\n", + "desc": " TK_KEY_0\r\n", "name": "TK_KEY_0" }, { - "desc": " TK_KEY_1\n\n", + "desc": " TK_KEY_1\r\n", "name": "TK_KEY_1" }, { - "desc": " TK_KEY_2\n\n", + "desc": " TK_KEY_2\r\n", "name": "TK_KEY_2" }, { - "desc": " TK_KEY_3\n\n", + "desc": " TK_KEY_3\r\n", "name": "TK_KEY_3" }, { - "desc": " TK_KEY_4\n\n", + "desc": " TK_KEY_4\r\n", "name": "TK_KEY_4" }, { - "desc": " TK_KEY_5\n\n", + "desc": " TK_KEY_5\r\n", "name": "TK_KEY_5" }, { - "desc": " TK_KEY_6\n\n", + "desc": " TK_KEY_6\r\n", "name": "TK_KEY_6" }, { - "desc": " TK_KEY_7\n\n", + "desc": " TK_KEY_7\r\n", "name": "TK_KEY_7" }, { - "desc": " TK_KEY_8\n\n", + "desc": " TK_KEY_8\r\n", "name": "TK_KEY_8" }, { - "desc": " TK_KEY_9\n\n", + "desc": " TK_KEY_9\r\n", "name": "TK_KEY_9" }, { - "desc": " TK_KEY_COLON\n\n", + "desc": " TK_KEY_COLON\r\n", "name": "TK_KEY_COLON" }, { - "desc": " TK_KEY_SEMICOLON\n\n", + "desc": " TK_KEY_SEMICOLON\r\n", "name": "TK_KEY_SEMICOLON" }, { - "desc": " TK_KEY_LESS\n\n", + "desc": " TK_KEY_LESS\r\n", "name": "TK_KEY_LESS" }, { - "desc": " TK_KEY_EQUAL\n\n", + "desc": " TK_KEY_EQUAL\r\n", "name": "TK_KEY_EQUAL" }, { - "desc": " TK_KEY_GREATER\n\n", + "desc": " TK_KEY_GREATER\r\n", "name": "TK_KEY_GREATER" }, { - "desc": " TK_KEY_QUESTION\n\n", + "desc": " TK_KEY_QUESTION\r\n", "name": "TK_KEY_QUESTION" }, { - "desc": " TK_KEY_AT\n\n", + "desc": " TK_KEY_AT\r\n", "name": "TK_KEY_AT" }, { - "desc": " TK_KEY_LEFTBRACKET\n\n", + "desc": " TK_KEY_LEFTBRACKET\r\n", "name": "TK_KEY_LEFTBRACKET" }, { - "desc": " TK_KEY_BACKSLASH\n\n", + "desc": " TK_KEY_BACKSLASH\r\n", "name": "TK_KEY_BACKSLASH" }, { - "desc": " TK_KEY_RIGHTBRACKET\n\n", + "desc": " TK_KEY_RIGHTBRACKET\r\n", "name": "TK_KEY_RIGHTBRACKET" }, { - "desc": " TK_KEY_CARET\n\n", + "desc": " TK_KEY_CARET\r\n", "name": "TK_KEY_CARET" }, { - "desc": " TK_KEY_UNDERSCORE\n\n", + "desc": " TK_KEY_UNDERSCORE\r\n", "name": "TK_KEY_UNDERSCORE" }, { - "desc": " TK_KEY_BACKQUOTE\n\n", + "desc": " TK_KEY_BACKQUOTE\r\n", "name": "TK_KEY_BACKQUOTE" }, { - "desc": " TK_KEY_a\n\n", + "desc": " TK_KEY_a\r\n", "name": "TK_KEY_a" }, { - "desc": " TK_KEY_b\n\n", + "desc": " TK_KEY_b\r\n", "name": "TK_KEY_b" }, { - "desc": " TK_KEY_c\n\n", + "desc": " TK_KEY_c\r\n", "name": "TK_KEY_c" }, { - "desc": " TK_KEY_d\n\n", + "desc": " TK_KEY_d\r\n", "name": "TK_KEY_d" }, { - "desc": " TK_KEY_e\n\n", + "desc": " TK_KEY_e\r\n", "name": "TK_KEY_e" }, { - "desc": " TK_KEY_f\n\n", + "desc": " TK_KEY_f\r\n", "name": "TK_KEY_f" }, { - "desc": " TK_KEY_g\n\n", + "desc": " TK_KEY_g\r\n", "name": "TK_KEY_g" }, { - "desc": " TK_KEY_h\n\n", + "desc": " TK_KEY_h\r\n", "name": "TK_KEY_h" }, { - "desc": " TK_KEY_i\n\n", + "desc": " TK_KEY_i\r\n", "name": "TK_KEY_i" }, { - "desc": " TK_KEY_j\n\n", + "desc": " TK_KEY_j\r\n", "name": "TK_KEY_j" }, { - "desc": " TK_KEY_k\n\n", + "desc": " TK_KEY_k\r\n", "name": "TK_KEY_k" }, { - "desc": " TK_KEY_l\n\n", + "desc": " TK_KEY_l\r\n", "name": "TK_KEY_l" }, { - "desc": " TK_KEY_m\n\n", + "desc": " TK_KEY_m\r\n", "name": "TK_KEY_m" }, { - "desc": " TK_KEY_n\n\n", + "desc": " TK_KEY_n\r\n", "name": "TK_KEY_n" }, { - "desc": " TK_KEY_o\n\n", + "desc": " TK_KEY_o\r\n", "name": "TK_KEY_o" }, { - "desc": " TK_KEY_p\n\n", + "desc": " TK_KEY_p\r\n", "name": "TK_KEY_p" }, { - "desc": " TK_KEY_q\n\n", + "desc": " TK_KEY_q\r\n", "name": "TK_KEY_q" }, { - "desc": " TK_KEY_r\n\n", + "desc": " TK_KEY_r\r\n", "name": "TK_KEY_r" }, { - "desc": " TK_KEY_s\n\n", + "desc": " TK_KEY_s\r\n", "name": "TK_KEY_s" }, { - "desc": " TK_KEY_t\n\n", + "desc": " TK_KEY_t\r\n", "name": "TK_KEY_t" }, { - "desc": " TK_KEY_u\n\n", + "desc": " TK_KEY_u\r\n", "name": "TK_KEY_u" }, { - "desc": " TK_KEY_v\n\n", + "desc": " TK_KEY_v\r\n", "name": "TK_KEY_v" }, { - "desc": " TK_KEY_w\n\n", + "desc": " TK_KEY_w\r\n", "name": "TK_KEY_w" }, { - "desc": " TK_KEY_x\n\n", + "desc": " TK_KEY_x\r\n", "name": "TK_KEY_x" }, { - "desc": " TK_KEY_y\n\n", + "desc": " TK_KEY_y\r\n", "name": "TK_KEY_y" }, { - "desc": " TK_KEY_z\n\n", + "desc": " TK_KEY_z\r\n", "name": "TK_KEY_z" }, { - "desc": " TK_KEY_A\n\n", + "desc": " TK_KEY_A\r\n", "name": "TK_KEY_A" }, { - "desc": " TK_KEY_B\n\n", + "desc": " TK_KEY_B\r\n", "name": "TK_KEY_B" }, { - "desc": " TK_KEY_C\n\n", + "desc": " TK_KEY_C\r\n", "name": "TK_KEY_C" }, { - "desc": " TK_KEY_D\n\n", + "desc": " TK_KEY_D\r\n", "name": "TK_KEY_D" }, { - "desc": " TK_KEY_E\n\n", + "desc": " TK_KEY_E\r\n", "name": "TK_KEY_E" }, { - "desc": " TK_KEY_F\n\n", + "desc": " TK_KEY_F\r\n", "name": "TK_KEY_F" }, { - "desc": " TK_KEY_G\n\n", + "desc": " TK_KEY_G\r\n", "name": "TK_KEY_G" }, { - "desc": " TK_KEY_H\n\n", + "desc": " TK_KEY_H\r\n", "name": "TK_KEY_H" }, { - "desc": " TK_KEY_I\n\n", + "desc": " TK_KEY_I\r\n", "name": "TK_KEY_I" }, { - "desc": " TK_KEY_J\n\n", + "desc": " TK_KEY_J\r\n", "name": "TK_KEY_J" }, { - "desc": " TK_KEY_K\n\n", + "desc": " TK_KEY_K\r\n", "name": "TK_KEY_K" }, { - "desc": " TK_KEY_L\n\n", + "desc": " TK_KEY_L\r\n", "name": "TK_KEY_L" }, { - "desc": " TK_KEY_M\n\n", + "desc": " TK_KEY_M\r\n", "name": "TK_KEY_M" }, { - "desc": " TK_KEY_N\n\n", + "desc": " TK_KEY_N\r\n", "name": "TK_KEY_N" }, { - "desc": " TK_KEY_O\n\n", + "desc": " TK_KEY_O\r\n", "name": "TK_KEY_O" }, { - "desc": " TK_KEY_P\n\n", + "desc": " TK_KEY_P\r\n", "name": "TK_KEY_P" }, { - "desc": " TK_KEY_Q\n\n", + "desc": " TK_KEY_Q\r\n", "name": "TK_KEY_Q" }, { - "desc": " TK_KEY_R\n\n", + "desc": " TK_KEY_R\r\n", "name": "TK_KEY_R" }, { - "desc": " TK_KEY_S\n\n", + "desc": " TK_KEY_S\r\n", "name": "TK_KEY_S" }, { - "desc": " TK_KEY_T\n\n", + "desc": " TK_KEY_T\r\n", "name": "TK_KEY_T" }, { - "desc": " TK_KEY_U\n\n", + "desc": " TK_KEY_U\r\n", "name": "TK_KEY_U" }, { - "desc": " TK_KEY_V\n\n", + "desc": " TK_KEY_V\r\n", "name": "TK_KEY_V" }, { - "desc": " TK_KEY_W\n\n", + "desc": " TK_KEY_W\r\n", "name": "TK_KEY_W" }, { - "desc": " TK_KEY_X\n\n", + "desc": " TK_KEY_X\r\n", "name": "TK_KEY_X" }, { - "desc": " TK_KEY_Y\n\n", + "desc": " TK_KEY_Y\r\n", "name": "TK_KEY_Y" }, { - "desc": " TK_KEY_Z\n\n", + "desc": " TK_KEY_Z\r\n", "name": "TK_KEY_Z" }, { - "desc": " TK_KEY_DOT\n\n", + "desc": " TK_KEY_DOT\r\n", "name": "TK_KEY_DOT" }, { - "desc": " TK_KEY_DELETE\n\n", + "desc": " TK_KEY_DELETE\r\n", "name": "TK_KEY_DELETE" }, { - "desc": " TK_KEY_LEFTBRACE\n\n", + "desc": " TK_KEY_LEFTBRACE\r\n", "name": "TK_KEY_LEFTBRACE" }, { - "desc": " TK_KEY_RIGHTBRACE\n\n", + "desc": " TK_KEY_RIGHTBRACE\r\n", "name": "TK_KEY_RIGHTBRACE" }, { - "desc": " TK_KEY_LSHIFT\n\n", + "desc": " TK_KEY_LSHIFT\r\n", "name": "TK_KEY_LSHIFT" }, { - "desc": " TK_KEY_RSHIFT\n\n", + "desc": " TK_KEY_RSHIFT\r\n", "name": "TK_KEY_RSHIFT" }, { - "desc": " TK_KEY_LCTRL\n\n", + "desc": " TK_KEY_LCTRL\r\n", "name": "TK_KEY_LCTRL" }, { - "desc": " TK_KEY_RCTRL\n\n", + "desc": " TK_KEY_RCTRL\r\n", "name": "TK_KEY_RCTRL" }, { - "desc": " TK_KEY_LALT\n\n", + "desc": " TK_KEY_LALT\r\n", "name": "TK_KEY_LALT" }, { - "desc": " TK_KEY_RALT\n\n", + "desc": " TK_KEY_RALT\r\n", "name": "TK_KEY_RALT" }, { - "desc": " TK_KEY_CAPSLOCK\n\n", + "desc": " TK_KEY_CAPSLOCK\r\n", "name": "TK_KEY_CAPSLOCK" }, { - "desc": " TK_KEY_HOME\n\n", + "desc": " TK_KEY_HOME\r\n", "name": "TK_KEY_HOME" }, { - "desc": " TK_KEY_END\n\n", + "desc": " TK_KEY_END\r\n", "name": "TK_KEY_END" }, { - "desc": " TK_KEY_INSERT\n\n", + "desc": " TK_KEY_INSERT\r\n", "name": "TK_KEY_INSERT" }, { - "desc": " TK_KEY_UP\n\n", + "desc": " TK_KEY_UP\r\n", "name": "TK_KEY_UP" }, { - "desc": " TK_KEY_DOWN\n\n", + "desc": " TK_KEY_DOWN\r\n", "name": "TK_KEY_DOWN" }, { - "desc": " TK_KEY_LEFT\n\n", + "desc": " TK_KEY_LEFT\r\n", "name": "TK_KEY_LEFT" }, { - "desc": " TK_KEY_RIGHT\n\n", + "desc": " TK_KEY_RIGHT\r\n", "name": "TK_KEY_RIGHT" }, { - "desc": " TK_KEY_PAGEUP\n\n", + "desc": " TK_KEY_PAGEUP\r\n", "name": "TK_KEY_PAGEUP" }, { - "desc": " TK_KEY_PAGEDOWN\n\n", + "desc": " TK_KEY_PAGEDOWN\r\n", "name": "TK_KEY_PAGEDOWN" }, { - "desc": " TK_KEY_F1\n\n", + "desc": " TK_KEY_F1\r\n", "name": "TK_KEY_F1" }, { - "desc": " TK_KEY_F2\n\n", + "desc": " TK_KEY_F2\r\n", "name": "TK_KEY_F2" }, { - "desc": " TK_KEY_F3\n\n", + "desc": " TK_KEY_F3\r\n", "name": "TK_KEY_F3" }, { - "desc": " TK_KEY_F4\n\n", + "desc": " TK_KEY_F4\r\n", "name": "TK_KEY_F4" }, { - "desc": " TK_KEY_F5\n\n", + "desc": " TK_KEY_F5\r\n", "name": "TK_KEY_F5" }, { - "desc": " TK_KEY_F6\n\n", + "desc": " TK_KEY_F6\r\n", "name": "TK_KEY_F6" }, { - "desc": " TK_KEY_F7\n\n", + "desc": " TK_KEY_F7\r\n", "name": "TK_KEY_F7" }, { - "desc": " TK_KEY_F8\n\n", + "desc": " TK_KEY_F8\r\n", "name": "TK_KEY_F8" }, { - "desc": " TK_KEY_F9\n\n", + "desc": " TK_KEY_F9\r\n", "name": "TK_KEY_F9" }, { - "desc": " TK_KEY_F10\n\n", + "desc": " TK_KEY_F10\r\n", "name": "TK_KEY_F10" }, { - "desc": " TK_KEY_F11\n\n", + "desc": " TK_KEY_F11\r\n", "name": "TK_KEY_F11" }, { - "desc": " TK_KEY_F12\n\n", + "desc": " TK_KEY_F12\r\n", "name": "TK_KEY_F12" }, { - "desc": " TK_KEY_MENU\n\n", + "desc": " TK_KEY_MENU\r\n", "name": "TK_KEY_MENU" }, { - "desc": " TK_KEY_COMMAND\n\n", + "desc": " TK_KEY_COMMAND\r\n", "name": "TK_KEY_COMMAND" } ], @@ -5836,7 +5848,7 @@ "constructor": true, "scriptable": true }, - "desc": " 获取缺省locale_info。\n\n\n", + "desc": " 获取缺省locale_info。\r\n\r\n", "name": "locale_info", "alias": "locale_info_instance", "return": { @@ -5853,7 +5865,7 @@ } ], "annotation": {}, - "desc": " 设置缺省locale_info。\n\n\n", + "desc": " 设置缺省locale_info。\r\n\r\n", "name": "locale_info_set", "return": { "type": "ret_t", @@ -5876,7 +5888,7 @@ "annotation": { "constructor": true }, - "desc": " 创建locale_info。\n\n\n", + "desc": " 创建locale_info。\r\n\r\n", "name": "locale_info_create", "return": { "type": "locale_info_t*", @@ -5899,7 +5911,7 @@ "annotation": { "scriptable": true }, - "desc": " 翻译字符串。\n\n\n", + "desc": " 翻译字符串。\r\n\r\n", "name": "locale_info_tr", "return": { "type": "char*", @@ -5927,7 +5939,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置当前的国家和语言。\n\n\n", + "desc": " 设置当前的国家和语言。\r\n\r\n", "name": "locale_info_change", "return": { "type": "ret_t", @@ -5939,7 +5951,7 @@ { "type": "locale_info_t*", "name": "locale_info", - "desc": "控件对象。" + "desc": "locale_info对象。" }, { "type": "event_type_t", @@ -5960,7 +5972,7 @@ "annotation": { "scriptable": "custom" }, - "desc": " 注册指定事件的处理函数。\n\n\n", + "desc": " 注册指定事件的处理函数。\r\n\r\n", "name": "locale_info_on", "return": { "type": "uint32_t", @@ -5972,7 +5984,7 @@ { "type": "locale_info_t*", "name": "locale_info", - "desc": "控件对象。" + "desc": "locale_info对象。" }, { "type": "uint32_t", @@ -5983,7 +5995,7 @@ "annotation": { "scriptable": true }, - "desc": " 注销指定事件的处理函数。\n\n\n", + "desc": " 注销指定事件的处理函数。\r\n\r\n", "name": "locale_info_off", "return": { "type": "ret_t", @@ -5995,7 +6007,7 @@ { "type": "locale_info_t*", "name": "locale_info", - "desc": "图片管理器对象。" + "desc": "locale_info对象。" }, { "type": "assets_manager_t*", @@ -6004,7 +6016,7 @@ } ], "annotation": {}, - "desc": " 设置资源管理器对象。\n\n\n\n", + "desc": " 设置资源管理器对象。\r\n\r\n\r\n", "name": "locale_info_set_assets_manager", "return": { "type": "ret_t", @@ -6020,7 +6032,23 @@ } ], "annotation": {}, - "desc": " 释放全部资源并销毁locale_info对象。\n\n\n", + "desc": " 重新加载字符串资源。\r\n\r\n\r\n", + "name": "locale_info_reload", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "locale_info_t*", + "name": "locale_info", + "desc": "locale_info对象。" + } + ], + "annotation": {}, + "desc": " 释放全部资源并销毁locale_info对象。\r\n\r\n", "name": "locale_info_destroy", "return": { "type": "ret_t", @@ -6032,7 +6060,7 @@ "properties": [ { "name": "country;", - "desc": " 国家或地区。如:CN\n\n", + "desc": " 国家或地区。如:CN\r\n", "type": "char*", "annotation": { "readable": true @@ -6040,7 +6068,7 @@ }, { "name": "language", - "desc": " 语言。如:zh\n\n", + "desc": " 语言。如:zh\r\n", "type": "char*", "annotation": { "readable": true @@ -6048,7 +6076,7 @@ }, { "name": "assets_manager", - "desc": " 资源管理器。\n\n", + "desc": " 资源管理器。\r\n", "type": "assets_manager_t*", "annotation": { "private": true @@ -6056,7 +6084,7 @@ } ], "header": "base/locale_info.h", - "desc": " 本地化信息。提供字符串翻译数据管理,当前语言改变的事件通知等等。\n\n\n", + "desc": " 本地化信息。提供字符串翻译数据管理,当前语言改变的事件通知等等。\r\n\r\n", "name": "locale_info_t", "annotation": { "scriptable": true @@ -6071,7 +6099,7 @@ "annotation": { "constructor": true }, - "desc": " 获取缺省的控件自身布局算法工厂对象。\n\n", + "desc": " 获取缺省的控件自身布局算法工厂对象。\r\n", "name": "self_layouter_factory", "return": { "type": "self_layouter_factory_t*", @@ -6087,7 +6115,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的控件自身布局算法工厂对象。\n\n\n", + "desc": " 设置缺省的控件自身布局算法工厂对象。\r\n\r\n", "name": "self_layouter_factory_set", "return": { "type": "ret_t", @@ -6099,7 +6127,7 @@ "annotation": { "constructor": true }, - "desc": " 创建控件自身布局算法工厂对象。\n\n\n", + "desc": " 创建控件自身布局算法工厂对象。\r\n\r\n", "name": "self_layouter_factory_create", "return": { "type": "self_layouter_factory_t*", @@ -6125,7 +6153,7 @@ } ], "annotation": {}, - "desc": " 注册控件自身布局算法创建函数。\n\n\n", + "desc": " 注册控件自身布局算法创建函数。\r\n\r\n", "name": "self_layouter_factory_register", "return": { "type": "ret_t", @@ -6148,7 +6176,7 @@ "annotation": { "constructor": true }, - "desc": " 创建指定类型的控件自身布局算法对象。\n\n\n", + "desc": " 创建指定类型的控件自身布局算法对象。\r\n\r\n", "name": "self_layouter_factory_create_layouter", "return": { "type": "self_layouter_t*", @@ -6164,7 +6192,7 @@ } ], "annotation": {}, - "desc": " 析构并释放控件自身布局算法工厂对象。\n\n\n", + "desc": " 析构并释放控件自身布局算法工厂对象。\r\n\r\n", "name": "self_layouter_factory_destroy", "return": { "type": "ret_t", @@ -6175,7 +6203,7 @@ "events": [], "properties": [], "header": "base/self_layouter_factory.h", - "desc": " 控件自身布局算法工厂。\n\n\n", + "desc": " 控件自身布局算法工厂。\r\n\r\n", "name": "self_layouter_factory_t", "level": 1 }, @@ -6191,7 +6219,7 @@ } ], "annotation": {}, - "desc": " 获取全部参数。\n\n\n", + "desc": " 获取全部参数。\r\n\r\n", "name": "self_layouter_to_string", "return": { "type": "ret_t", @@ -6217,7 +6245,7 @@ } ], "annotation": {}, - "desc": " 对控件自身进行布局。\n\n\n", + "desc": " 对控件自身进行布局。\r\n\r\n", "name": "self_layouter_layout", "return": { "type": "ret_t", @@ -6243,7 +6271,7 @@ } ], "annotation": {}, - "desc": " 获取指定的参数。\n\n\n", + "desc": " 获取指定的参数。\r\n\r\n", "name": "self_layouter_get_param", "return": { "type": "ret_t", @@ -6269,7 +6297,7 @@ } ], "annotation": {}, - "desc": " 获取指定的参数。\n\n\n", + "desc": " 获取指定的参数。\r\n\r\n", "name": "self_layouter_set_param", "return": { "type": "ret_t", @@ -6295,7 +6323,7 @@ } ], "annotation": {}, - "desc": " 设置字符串格式的参数。\n\n\n", + "desc": " 设置字符串格式的参数。\r\n\r\n", "name": "self_layouter_set_param_str", "return": { "type": "ret_t", @@ -6321,7 +6349,7 @@ } ], "annotation": {}, - "desc": " 获取指定的浮点格式的参数。\n\n\n", + "desc": " 获取指定的浮点格式的参数。\r\n\r\n", "name": "self_layouter_get_param_float", "return": { "type": "ret_t", @@ -6347,7 +6375,7 @@ } ], "annotation": {}, - "desc": " 获取指定的整数格式的参数。\n\n\n", + "desc": " 获取指定的整数格式的参数。\r\n\r\n", "name": "self_layouter_get_param_int", "return": { "type": "ret_t", @@ -6363,7 +6391,7 @@ } ], "annotation": {}, - "desc": " 销毁layouter对象。\n\n\n", + "desc": " 销毁layouter对象。\r\n\r\n", "name": "self_layouter_destroy", "return": { "type": "ret_t", @@ -6379,7 +6407,7 @@ } ], "annotation": {}, - "desc": " 创建layouter对象。\n\n\n", + "desc": " 创建layouter对象。\r\n\r\n", "name": "self_layouter_create", "return": { "type": "self_layouter_t*", @@ -6390,7 +6418,7 @@ "events": [], "properties": [], "header": "base/self_layouter.h", - "desc": " 控件自身排版布局器的接口。\n\n 按特定算法对控件进行排版布局,子类需要实现vtable中的函数。\n\n", + "desc": " 控件自身排版布局器的接口。\r\n\r\n 按特定算法对控件进行排版布局,子类需要实现vtable中的函数。\r\n", "name": "self_layouter_t", "level": 1 }, @@ -6402,7 +6430,7 @@ "annotation": { "constructor": true }, - "desc": " 初始化快捷键对象。\n\n\n", + "desc": " 初始化快捷键对象。\r\n\r\n", "name": "shortcut_init", "return": { "type": "shortcut_t*", @@ -6420,7 +6448,7 @@ "annotation": { "constructor": true }, - "desc": " 初始化快捷键对象。\n\n\n", + "desc": " 初始化快捷键对象。\r\n\r\n", "name": "shortcut_init_with_str", "return": { "type": "shortcut_t*", @@ -6441,7 +6469,7 @@ } ], "annotation": {}, - "desc": " 比较两个快捷键对象。\n\n\n", + "desc": " 比较两个快捷键对象。\r\n\r\n", "name": "shortcut_equal", "return": { "type": "bool_t", @@ -6462,7 +6490,7 @@ } ], "annotation": {}, - "desc": " 检查事件与快捷键是否匹配。\n\n\n", + "desc": " 检查事件与快捷键是否匹配。\r\n\r\n", "name": "shortcut_match", "return": { "type": "bool_t", @@ -6474,7 +6502,7 @@ "properties": [ { "name": "is_valid", - "desc": " 是否有效。\n\n", + "desc": " 是否有效。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6482,7 +6510,7 @@ }, { "name": "key", - "desc": " 键值。\n\n", + "desc": " 键值。\r\n", "type": "uint32_t", "annotation": { "readable": true @@ -6490,7 +6518,7 @@ }, { "name": "alt", - "desc": " alt键是否按下。\n\n", + "desc": " alt键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6498,7 +6526,7 @@ }, { "name": "lalt", - "desc": " left alt键是否按下。\n\n", + "desc": " left alt键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6506,7 +6534,7 @@ }, { "name": "ralt", - "desc": " right alt键是否按下。\n\n", + "desc": " right alt键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6514,7 +6542,7 @@ }, { "name": "ctrl", - "desc": " ctrl键是否按下。\n\n", + "desc": " ctrl键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6522,7 +6550,7 @@ }, { "name": "lctrl", - "desc": " left ctrl键是否按下。\n\n", + "desc": " left ctrl键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6530,7 +6558,7 @@ }, { "name": "rctrl", - "desc": " right ctrl键是否按下。\n\n", + "desc": " right ctrl键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6538,7 +6566,7 @@ }, { "name": "shift", - "desc": " shift键是否按下。\n\n", + "desc": " shift键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6546,7 +6574,7 @@ }, { "name": "lshift", - "desc": " left shift键是否按下。\n\n", + "desc": " left shift键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6554,7 +6582,7 @@ }, { "name": "rshift", - "desc": " right shift键是否按下。\n\n", + "desc": " right shift键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6562,7 +6590,7 @@ }, { "name": "cmd", - "desc": " cmd/win键是否按下。\n\n", + "desc": " cmd/win键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6570,7 +6598,7 @@ }, { "name": "menu", - "desc": " menu键是否按下。\n\n", + "desc": " menu键是否按下。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -6578,7 +6606,7 @@ } ], "header": "base/shortcut.h", - "desc": " 快捷键。\n\n", + "desc": " 快捷键。\r\n", "name": "shortcut_t", "level": 1 }, @@ -6599,7 +6627,7 @@ } ], "annotation": {}, - "desc": " 创建style。\n\n\n", + "desc": " 创建style。\r\n\r\n", "name": "style_factory_create_style", "return": { "type": "style_t*", @@ -6611,7 +6639,7 @@ "annotation": { "constructor": true }, - "desc": " 获取缺省的style factory。\n\n", + "desc": " 获取缺省的style factory。\r\n", "name": "style_factory", "alias": "style_factory_instance", "return": { @@ -6628,7 +6656,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的style factory(需要自定义的style factory才设置)。\n\n\n", + "desc": " 设置缺省的style factory(需要自定义的style factory才设置)。\r\n\r\n", "name": "style_factory_set", "return": { "type": "ret_t", @@ -6639,140 +6667,140 @@ "events": [], "properties": [], "header": "base/style_factory.h", - "desc": " style工厂接口,主要用于创建style。\n\n> 在特殊情况下,可以实现自己的style工厂,比如支持CSS和可实时修改的style。\n\n\n", + "desc": " style工厂接口,主要用于创建style。\r\n\r\n> 在特殊情况下,可以实现自己的style工厂,比如支持CSS和可实时修改的style。\r\n\r\n", "name": "style_factory_t", "level": 1 }, { "type": "enum", - "desc": " style常量定义。\n\n", + "desc": " style常量定义。\r\n", "consts": [ { - "desc": " 背景颜色。\n\n", + "desc": " 背景颜色。\r\n", "name": "STYLE_ID_BG_COLOR" }, { - "desc": " 前景颜色。\n\n", + "desc": " 前景颜色。\r\n", "name": "STYLE_ID_FG_COLOR" }, { - "desc": " 蒙版颜色。\n\n", + "desc": " 蒙版颜色。\r\n", "name": "STYLE_ID_MASK_COLOR" }, { - "desc": " 字体名称。\n\n", + "desc": " 字体名称。\r\n", "name": "STYLE_ID_FONT_NAME" }, { - "desc": " 字体大小。\n\n", + "desc": " 字体大小。\r\n", "name": "STYLE_ID_FONT_SIZE" }, { - "desc": " 字体风格(粗体、斜体等)。\n\n", + "desc": " 字体风格(粗体、斜体等)。\r\n", "name": "STYLE_ID_FONT_STYLE" }, { - "desc": " 文本颜色。\n\n", + "desc": " 文本颜色。\r\n", "name": "STYLE_ID_TEXT_COLOR" }, { - "desc": " 提示文本颜色。\n\n", + "desc": " 提示文本颜色。\r\n", "name": "STYLE_ID_TIPS_TEXT_COLOR" }, { - "desc": " 文本水平对齐的方式。\n\n", + "desc": " 文本水平对齐的方式。\r\n", "name": "STYLE_ID_TEXT_ALIGN_H" }, { - "desc": " 文本垂直对齐的方式。\n\n", + "desc": " 文本垂直对齐的方式。\r\n", "name": "STYLE_ID_TEXT_ALIGN_V" }, { - "desc": " 边框颜色。\n\n", + "desc": " 边框颜色。\r\n", "name": "STYLE_ID_BORDER_COLOR" }, { - "desc": " 边框线宽。\n\n", + "desc": " 边框线宽。\r\n", "name": "STYLE_ID_BORDER_WIDTH" }, { - "desc": " 边框类型。\n\n", + "desc": " 边框类型。\r\n", "name": "STYLE_ID_BORDER" }, { - "desc": " 图片的名称。\n\n", + "desc": " 图片的名称。\r\n", "name": "STYLE_ID_BG_IMAGE" }, { - "desc": " 图片的显示方式。\n\n", + "desc": " 图片的显示方式。\r\n", "name": "STYLE_ID_BG_IMAGE_DRAW_TYPE" }, { - "desc": " 图标的名称。\n\n", + "desc": " 图标的名称。\r\n", "name": "STYLE_ID_ICON" }, { - "desc": " 图片的名称。\n\n", + "desc": " 图片的名称。\r\n", "name": "STYLE_ID_FG_IMAGE" }, { - "desc": " 图片的显示方式。\n\n", + "desc": " 图片的显示方式。\r\n", "name": "STYLE_ID_FG_IMAGE_DRAW_TYPE" }, { - "desc": " 间距。\n\n", + "desc": " 间距。\r\n", "name": "STYLE_ID_SPACER" }, { - "desc": " 边距。\n\n", + "desc": " 边距。\r\n", "name": "STYLE_ID_MARGIN" }, { - "desc": " 左边距。\n\n", + "desc": " 左边距。\r\n", "name": "STYLE_ID_MARGIN_LEFT" }, { - "desc": " 右边距。\n\n", + "desc": " 右边距。\r\n", "name": "STYLE_ID_MARGIN_RIGHT" }, { - "desc": " 顶边距。\n\n", + "desc": " 顶边距。\r\n", "name": "STYLE_ID_MARGIN_TOP" }, { - "desc": " 底边距。\n\n", + "desc": " 底边距。\r\n", "name": "STYLE_ID_MARGIN_BOTTOM" }, { - "desc": " 图标的位置。\n\n", + "desc": " 图标的位置。\r\n", "name": "STYLE_ID_ICON_AT" }, { - "desc": " Active图标的名称。\n\n", + "desc": " Active图标的名称。\r\n", "name": "STYLE_ID_ACTIVE_ICON" }, { - "desc": " X方向的偏移,方便实现按下的效果。\n\n", + "desc": " X方向的偏移,方便实现按下的效果。\r\n", "name": "STYLE_ID_X_OFFSET" }, { - "desc": " Y方向的偏移,方便实现按下的效果。\n\n", + "desc": " Y方向的偏移,方便实现按下的效果。\r\n", "name": "STYLE_ID_Y_OFFSET" }, { - "desc": " 编辑器中选中区域的背景颜色。\n\n", + "desc": " 编辑器中选中区域的背景颜色。\r\n", "name": "STYLE_ID_SELECTED_BG_COLOR" }, { - "desc": " 编辑器中选中区域的前景颜色。\n\n", + "desc": " 编辑器中选中区域的前景颜色。\r\n", "name": "STYLE_ID_SELECTED_FG_COLOR" }, { - "desc": " 编辑器中选中区域的文本颜色。\n\n", + "desc": " 编辑器中选中区域的文本颜色。\r\n", "name": "STYLE_ID_SELECTED_TEXT_COLOR" }, { - "desc": " 圆角半径(仅在WITH_VGCANVAS定义时生效)。\n\n", + "desc": " 圆角半径(仅在WITH_VGCANVAS定义时生效)。\r\n", "name": "STYLE_ID_ROUND_RADIUS" } ], @@ -6804,7 +6832,7 @@ "annotation": { "scriptable": true }, - "desc": " widget状态改变时,通知style更新数据。\n\n\n", + "desc": " widget状态改变时,通知style更新数据。\r\n\r\n", "name": "style_notify_widget_state_changed", "return": { "type": "ret_t", @@ -6822,7 +6850,7 @@ "annotation": { "scriptable": true }, - "desc": " 检查style对象是否有效\n\n\n", + "desc": " 检查style对象是否有效\r\n\r\n", "name": "style_is_valid", "return": { "type": "bool_t", @@ -6850,7 +6878,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定name的整数格式的值。\n\n\n", + "desc": " 获取指定name的整数格式的值。\r\n\r\n", "name": "style_get_int", "return": { "type": "int32_t", @@ -6876,7 +6904,7 @@ } ], "annotation": {}, - "desc": " 获取指定name的颜色值。\n\n\n", + "desc": " 获取指定name的颜色值。\r\n\r\n", "name": "style_get_color", "return": { "type": "color_t", @@ -6904,7 +6932,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定name的字符串格式的值。\n\n\n", + "desc": " 获取指定name的字符串格式的值。\r\n\r\n", "name": "style_get_str", "return": { "type": "const char*", @@ -6937,7 +6965,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置指定状态的指定属性的值(仅仅对mutable的style有效)。\n\n\n", + "desc": " 设置指定状态的指定属性的值(仅仅对mutable的style有效)。\r\n\r\n", "name": "style_set", "return": { "type": "ret_t", @@ -6955,7 +6983,7 @@ "annotation": { "scriptable": true }, - "desc": " 检查style是否是mutable的。\n\n\n", + "desc": " 检查style是否是mutable的。\r\n\r\n", "name": "style_is_mutable", "return": { "type": "bool_t", @@ -6971,7 +6999,7 @@ } ], "annotation": {}, - "desc": " 销毁style对象\n\n\n", + "desc": " 销毁style对象\r\n\r\n", "name": "style_destroy", "return": { "type": "ret_t", @@ -6982,7 +7010,7 @@ "events": [], "properties": [], "header": "base/style.h", - "desc": " 控件风格。\n\n widget从style对象中,获取诸如字体、颜色和图片相关的参数,根据这些参数来绘制界面。\n\n ```c\n style_t* style = widget->astyle;\n int32_t margin = style_get_int(style, STYLE_ID_MARGIN, 2);\n int32_t icon_at = style_get_int(style, STYLE_ID_ICON_AT, ICON_AT_AUTO);\n uint16_t font_size = style_get_int(style, STYLE_ID_FONT_SIZE, TK_DEFAULT_FONT_SIZE);\n ```\n\n 属性名称的请参考[style\\_id](style_id_t.md)\n\n\n", + "desc": " 控件风格。\r\n\r\n widget从style对象中,获取诸如字体、颜色和图片相关的参数,根据这些参数来绘制界面。\r\n\r\n ```c\r\n style_t* style = widget->astyle;\r\n int32_t margin = style_get_int(style, STYLE_ID_MARGIN, 2);\r\n int32_t icon_at = style_get_int(style, STYLE_ID_ICON_AT, ICON_AT_AUTO);\r\n uint16_t font_size = style_get_int(style, STYLE_ID_FONT_SIZE, TK_DEFAULT_FONT_SIZE);\r\n ```\r\n\r\n 属性名称的请参考[style\\_id](style_id_t.md)\r\n\r\n", "name": "style_t", "annotation": { "scriptable": true @@ -7003,7 +7031,7 @@ "annotation": { "constructor": true }, - "desc": " 创建联想字对象。\n\n\n", + "desc": " 创建联想字对象。\r\n\r\n", "name": "suggest_words_create", "return": { "type": "suggest_words_t*", @@ -7024,7 +7052,7 @@ } ], "annotation": {}, - "desc": " 查找prefix对应的联想字列表,成功后会更新words/words_nr。\n\n\n", + "desc": " 查找prefix对应的联想字列表,成功后会更新words/words_nr。\r\n\r\n", "name": "suggest_words_find", "return": { "type": "ret_t", @@ -7040,7 +7068,7 @@ } ], "annotation": {}, - "desc": " @deconstructor\n 销毁联想字对象。\n\n\n", + "desc": " @deconstructor\r\n 销毁联想字对象。\r\n\r\n", "name": "suggest_words_destroy", "return": { "type": "ret_t", @@ -7052,7 +7080,7 @@ "properties": [ { "name": "words", - "desc": " 联想字列表。find函数执行成功后会更新。\n\n", + "desc": " 联想字列表。find函数执行成功后会更新。\r\n", "type": "char*", "annotation": { "private": true @@ -7060,7 +7088,7 @@ }, { "name": "words_nr", - "desc": " 联想字/词个数。find函数执行成功后会更新。\n\n", + "desc": " 联想字/词个数。find函数执行成功后会更新。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -7068,7 +7096,7 @@ } ], "header": "base/suggest_words.h", - "desc": " 输入法联想字词。\n\n", + "desc": " 输入法联想字词。\r\n", "name": "suggest_words_t", "level": 1 }, @@ -7078,7 +7106,7 @@ "events": [], "properties": [], "header": "base/text_edit.h", - "desc": "\n", + "desc": "", "name": "text_edit_state_t", "level": 1 }, @@ -7099,7 +7127,7 @@ } ], "annotation": {}, - "desc": " 创建text_edit对象\n\n\n", + "desc": " 创建text_edit对象\r\n\r\n", "name": "text_edit_create", "return": { "type": "widget_t*", @@ -7120,7 +7148,7 @@ } ], "annotation": {}, - "desc": " 设置canvas对象。\n\n\n", + "desc": " 设置canvas对象。\r\n\r\n", "name": "text_edit_set_canvas", "return": { "type": "ret_t", @@ -7146,7 +7174,7 @@ } ], "annotation": {}, - "desc": " 处理点击事件。\n\n\n", + "desc": " 处理点击事件。\r\n\r\n", "name": "text_edit_click", "return": { "type": "ret_t", @@ -7172,7 +7200,7 @@ } ], "annotation": {}, - "desc": " 处理拖动事件。\n\n\n", + "desc": " 处理拖动事件。\r\n\r\n", "name": "text_edit_drag", "return": { "type": "ret_t", @@ -7198,7 +7226,7 @@ } ], "annotation": {}, - "desc": " 粘贴文本。\n\n\n", + "desc": " 粘贴文本。\r\n\r\n", "name": "text_edit_paste", "return": { "type": "ret_t", @@ -7214,7 +7242,7 @@ } ], "annotation": {}, - "desc": " 剪切文本。\n\n\n", + "desc": " 剪切文本。\r\n\r\n", "name": "text_edit_cut", "return": { "type": "ret_t", @@ -7230,7 +7258,7 @@ } ], "annotation": {}, - "desc": " 拷贝文本。\n\n\n", + "desc": " 拷贝文本。\r\n\r\n", "name": "text_edit_copy", "return": { "type": "ret_t", @@ -7251,7 +7279,7 @@ } ], "annotation": {}, - "desc": " 处理按键事件。\n\n\n", + "desc": " 处理按键事件。\r\n\r\n", "name": "text_edit_key_down", "return": { "type": "ret_t", @@ -7277,7 +7305,7 @@ } ], "annotation": {}, - "desc": " 选择指定范围的文本。\n\n\n", + "desc": " 选择指定范围的文本。\r\n\r\n", "name": "text_edit_set_select", "return": { "type": "ret_t", @@ -7293,7 +7321,7 @@ } ], "annotation": {}, - "desc": " 全选。\n\n\n", + "desc": " 全选。\r\n\r\n", "name": "text_edit_select_all", "return": { "type": "ret_t", @@ -7309,7 +7337,7 @@ } ], "annotation": {}, - "desc": " 取消选择。\n\n\n", + "desc": " 取消选择。\r\n\r\n", "name": "text_edit_unselect", "return": { "type": "ret_t", @@ -7330,7 +7358,7 @@ } ], "annotation": {}, - "desc": " 设置光标位置。\n\n\n", + "desc": " 设置光标位置。\r\n\r\n", "name": "text_edit_set_cursor", "return": { "type": "ret_t", @@ -7346,7 +7374,7 @@ } ], "annotation": {}, - "desc": " 获取光标位置。\n\n\n", + "desc": " 获取光标位置。\r\n\r\n", "name": "text_edit_get_cursor", "return": { "type": "uin32_t", @@ -7367,7 +7395,7 @@ } ], "annotation": {}, - "desc": " 获取编辑器的状态。\n\n\n", + "desc": " 获取编辑器的状态。\r\n\r\n", "name": "text_edit_get_state", "return": { "type": "ret_t", @@ -7388,7 +7416,7 @@ } ], "annotation": {}, - "desc": " 设置是否自动折行。\n\n\n", + "desc": " 设置是否自动折行。\r\n\r\n", "name": "text_edit_set_wrap_word", "return": { "type": "ret_t", @@ -7404,7 +7432,7 @@ } ], "annotation": {}, - "desc": " 如果caret可见,将其设置为不可见。 如果caret不可见,将其设置为可见。\n\n\n", + "desc": " 如果caret可见,将其设置为不可见。 如果caret不可见,将其设置为可见。\r\n\r\n", "name": "text_edit_invert_caret_visible", "return": { "type": "ret_t", @@ -7425,7 +7453,7 @@ } ], "annotation": {}, - "desc": " 设置光标的看见性。\n\n\n", + "desc": " 设置光标的看见性。\r\n\r\n", "name": "text_edit_set_caret_visible", "return": { "type": "ret_t", @@ -7446,7 +7474,7 @@ } ], "annotation": {}, - "desc": " 设置最大行数。\n\n\n", + "desc": " 设置最大行数。\r\n\r\n", "name": "text_edit_set_max_rows", "return": { "type": "ret_t", @@ -7467,7 +7495,7 @@ } ], "annotation": {}, - "desc": " 设置是否马赛克字符(用于密码)。\n\n\n", + "desc": " 设置是否马赛克字符(用于密码)。\r\n\r\n", "name": "text_edit_set_mask", "return": { "type": "ret_t", @@ -7488,7 +7516,7 @@ } ], "annotation": {}, - "desc": " 设置提示信息。\n\n\n", + "desc": " 设置提示信息。\r\n\r\n", "name": "text_edit_set_tips", "return": { "type": "ret_t", @@ -7509,7 +7537,7 @@ } ], "annotation": {}, - "desc": " 设置马赛克字符。\n\n\n", + "desc": " 设置马赛克字符。\r\n\r\n", "name": "text_edit_set_mask_char", "return": { "type": "ret_t", @@ -7530,7 +7558,7 @@ } ], "annotation": {}, - "desc": " 绘制文本。\n\n\n", + "desc": " 绘制文本。\r\n\r\n", "name": "text_edit_paint", "return": { "type": "ret_t", @@ -7546,7 +7574,7 @@ } ], "annotation": {}, - "desc": " 重新排版。\n\n\n", + "desc": " 重新排版。\r\n\r\n", "name": "text_edit_layout", "return": { "type": "ret_t", @@ -7572,7 +7600,7 @@ } ], "annotation": {}, - "desc": " 设置滚动偏移。\n\n\n", + "desc": " 设置滚动偏移。\r\n\r\n", "name": "text_edit_set_offset", "return": { "type": "ret_t", @@ -7598,7 +7626,7 @@ } ], "annotation": {}, - "desc": " 设置状态改变回调函数。\n\n\n", + "desc": " 设置状态改变回调函数。\r\n\r\n", "name": "text_edit_set_on_state_changed", "return": { "type": "ret_t", @@ -7614,7 +7642,7 @@ } ], "annotation": {}, - "desc": " 销毁text_edit对象。\n\n\n", + "desc": " 销毁text_edit对象。\r\n\r\n", "name": "text_edit_destroy", "return": { "type": "ret_t", @@ -7625,7 +7653,7 @@ "events": [], "properties": [], "header": "base/text_edit.h", - "desc": "\n", + "desc": "", "name": "text_edit_t", "level": 1 }, @@ -7638,7 +7666,7 @@ "constructor": true, "scriptable": true }, - "desc": " 获取缺省的主题对象。\n\n", + "desc": " 获取缺省的主题对象。\r\n", "name": "theme", "alias": "theme_instance", "return": { @@ -7655,7 +7683,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的主题对象。\n\n\n", + "desc": " 设置缺省的主题对象。\r\n\r\n", "name": "theme_set", "return": { "type": "ret_t", @@ -7673,7 +7701,7 @@ "annotation": { "constructor": true }, - "desc": " 创建主题对象。\n\n\n", + "desc": " 创建主题对象。\r\n\r\n", "name": "theme_create", "return": { "type": "theme_t*", @@ -7696,7 +7724,7 @@ "annotation": { "constructor": true }, - "desc": " 初始化主题对象。\n\n\n", + "desc": " 初始化主题对象。\r\n\r\n", "name": "theme_init", "return": { "type": "theme_t*", @@ -7727,7 +7755,7 @@ } ], "annotation": {}, - "desc": " 查找满足条件的style。\n\n\n", + "desc": " 查找满足条件的style。\r\n\r\n", "name": "theme_find_style", "return": { "type": "theme_t*", @@ -7743,7 +7771,7 @@ } ], "annotation": {}, - "desc": " 析构主题对象。\n\n\n", + "desc": " 析构主题对象。\r\n\r\n", "name": "theme_deinit", "return": { "type": "ret_t", @@ -7759,7 +7787,7 @@ } ], "annotation": {}, - "desc": " 析构并释放主题对象。\n\n\n", + "desc": " 析构并释放主题对象。\r\n\r\n", "name": "theme_destroy", "return": { "type": "ret_t", @@ -7770,7 +7798,7 @@ "events": [], "properties": [], "header": "base/theme.h", - "desc": " 主题。\n\n 负责管理缺省的主题数据,方便实现style\\_const。\n\n\n", + "desc": " 主题。\r\n\r\n 负责管理缺省的主题数据,方便实现style\\_const。\r\n\r\n", "name": "theme_t", "annotation": { "scriptable": true @@ -7792,8 +7820,8 @@ "private": true, "static": true }, - "desc": " 初始化定时器系统。\n\n\n", - "name": "timer_init", + "desc": " 初始化定时器系统。\r\n\r\n", + "name": "timer_prepare", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" @@ -7821,7 +7849,7 @@ "scriptable": "custom", "static": true }, - "desc": " 增加一个timer。\n\n\n", + "desc": " 增加一个timer。\r\n\r\n", "name": "timer_add", "return": { "type": "uint32_t", @@ -7849,7 +7877,7 @@ "annotation": { "static": true }, - "desc": " 用于非GUI线程增加一个timer,本函数向主循环的事件队列中发送一个增加timer的请求。\n timer回调函数,回调函数返回RET_REPEAT,则下次继续执行,否则自动移出。\n\n\n", + "desc": " 用于非GUI线程增加一个timer,本函数向主循环的事件队列中发送一个增加timer的请求。\r\n timer回调函数,回调函数返回RET_REPEAT,则下次继续执行,否则自动移出。\r\n\r\n", "name": "timer_queue", "return": { "type": "ret_t", @@ -7868,7 +7896,7 @@ "scriptable": true, "static": true }, - "desc": " 删除指定的timer。\n\n\n", + "desc": " 删除指定的timer。\r\n\r\n", "name": "timer_remove", "return": { "type": "ret_t", @@ -7887,7 +7915,7 @@ "scriptable": true, "static": true }, - "desc": " 重置指定的timer,重置之后定时器重新开始计时。\n\n\n", + "desc": " 重置指定的timer,重置之后定时器重新开始计时。\r\n\r\n", "name": "timer_reset", "return": { "type": "ret_t", @@ -7911,7 +7939,7 @@ "scriptable": true, "static": true }, - "desc": " 修改指定的timer的duration,修改之后定时器重新开始计时。\n\n\n", + "desc": " 修改指定的timer的duration,修改之后定时器重新开始计时。\r\n\r\n", "name": "timer_modify", "return": { "type": "ret_t", @@ -7937,7 +7965,7 @@ } ], "annotation": {}, - "desc": " 设置一个回调函数,在timer被销毁时调用(方便脚本语言去释放回调函数)。\n\n\n", + "desc": " 设置一个回调函数,在timer被销毁时调用(方便脚本语言去释放回调函数)。\r\n\r\n", "name": "timer_set_on_destroy", "return": { "type": "ret_t", @@ -7949,7 +7977,7 @@ "annotation": { "private": true }, - "desc": " 查找指定ID的timer。\n\n\n", + "desc": " 查找指定ID的timer。\r\n\r\n", "name": "timer_find", "return": { "type": "timer_info_t*", @@ -7961,7 +7989,7 @@ "annotation": { "private": true }, - "desc": " 检查全部timer的函数,如果时间到期,调用相应的timer函数。\n\n\n", + "desc": " 检查全部timer的函数,如果时间到期,调用相应的timer函数。\r\n\r\n", "name": "timer_dispatch", "return": { "type": "ret_t", @@ -7973,7 +8001,7 @@ "annotation": { "static": true }, - "desc": " 返回timer的个数。\n\n\n", + "desc": " 返回timer的个数。\r\n\r\n", "name": "timer_count", "return": { "type": "uint32_t", @@ -7985,7 +8013,7 @@ "annotation": { "static": true }, - "desc": " 返回最近的timer到期时间。\n\n\n", + "desc": " 返回最近的timer到期时间。\r\n\r\n", "name": "timer_next_time", "return": { "type": "uint32_t", @@ -7996,7 +8024,7 @@ "events": [], "properties": [], "header": "base/timer.h", - "desc": " 定时器系统。\n\n > 本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。\n\n 示例:\n\n ```c\n static ret_t my_on_timer(const timer_info_t* info) {\n widget_t* widget = WIDGET(info->ctx);\n ...\n return RET_REPEAT;\n }\n\n ...\n\n timer_add(my_on_timer, widget, 1000);\n ```\n > 在非GUI线程请用timer\\_queue。\n\n\n", + "desc": " 定时器系统。\r\n\r\n > 本定时器精度较低,最高精度为1000/FPS,如果需要高精度的定时器,请用OS提供的定时器。\r\n\r\n 示例:\r\n\r\n ```c\r\n static ret_t my_on_timer(const timer_info_t* info) {\r\n widget_t* widget = WIDGET(info->ctx);\r\n ...\r\n return RET_REPEAT;\r\n }\r\n\r\n ...\r\n\r\n timer_add(my_on_timer, widget, 1000);\r\n ```\r\n > 在非GUI线程请用timer\\_queue。\r\n\r\n", "name": "timer_t", "annotation": { "scriptable": true, @@ -8191,7 +8219,7 @@ } ], "annotation": {}, - "desc": " ui\\_loader在解析到widget时,调用本函数进一步处理。\n\n\n\n\n", + "desc": " ui\\_loader在解析到widget时,调用本函数进一步处理。\r\n\r\n\r\n\r\n", "name": "ui_builder_on_widget_start", "return": { "type": "ret_t", @@ -8217,7 +8245,7 @@ } ], "annotation": {}, - "desc": " ui\\_loader在解析到widget的属性时,调用本函数进一步处理。\n\n\n\n\n", + "desc": " ui\\_loader在解析到widget的属性时,调用本函数进一步处理。\r\n\r\n\r\n\r\n", "name": "ui_builder_on_widget_prop", "return": { "type": "ret_t", @@ -8233,7 +8261,7 @@ } ], "annotation": {}, - "desc": " ui\\_loader在解析到widget全部属性结束时,调用本函数进一步处理。\n\n\n\n\n", + "desc": " ui\\_loader在解析到widget全部属性结束时,调用本函数进一步处理。\r\n\r\n\r\n\r\n", "name": "ui_builder_on_widget_prop", "return": { "type": "ret_t", @@ -8249,7 +8277,7 @@ } ], "annotation": {}, - "desc": " ui\\_loader在解析到widget结束时,调用本函数进一步处理。\n\n\n\n\n", + "desc": " ui\\_loader在解析到widget结束时,调用本函数进一步处理。\r\n\r\n\r\n\r\n", "name": "ui_builder_on_widget_end", "return": { "type": "ret_t", @@ -8265,7 +8293,7 @@ } ], "annotation": {}, - "desc": " ui\\_loader在解析开始时,调用本函数做些准备工作。\n\n\n\n\n", + "desc": " ui\\_loader在解析开始时,调用本函数做些准备工作。\r\n\r\n\r\n\r\n", "name": "ui_builder_on_start", "return": { "type": "ret_t", @@ -8281,7 +8309,7 @@ } ], "annotation": {}, - "desc": " ui\\_loader在解析结束时,调用本函数做些收尾工作。\n\n\n\n\n", + "desc": " ui\\_loader在解析结束时,调用本函数做些收尾工作。\r\n\r\n\r\n\r\n", "name": "ui_builder_on_end", "return": { "type": "ret_t", @@ -8292,7 +8320,7 @@ "events": [], "properties": [], "header": "base/ui_builder.h", - "desc": "\n 界面构造器接口。\n\n 负责把ui\\_loader解析的数据进一步处理,至于具体做什么,由具体实现决定。常见的实现有:\n\n * 构建widget对象树。\n\n * 生成二进制的UI描述数据。\n\n * 生成XML格式的UI描述数据。\n\n ```graphviz\n [default_style]\n\n ui_builder_defualt_t -> ui_builder_t[arrowhead = \"empty\"]\n ui_xml_writer_t -> ui_builder_t[arrowhead = \"empty\"]\n ui_binary_writer_t -> ui_builder_t[arrowhead = \"empty\"]\n ```\n\n", + "desc": "\r\n 界面构造器接口。\r\n\r\n 负责把ui\\_loader解析的数据进一步处理,至于具体做什么,由具体实现决定。常见的实现有:\r\n\r\n * 构建widget对象树。\r\n\r\n * 生成二进制的UI描述数据。\r\n\r\n * 生成XML格式的UI描述数据。\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n ui_builder_defualt_t -> ui_builder_t[arrowhead = \"empty\"]\r\n ui_xml_writer_t -> ui_builder_t[arrowhead = \"empty\"]\r\n ui_binary_writer_t -> ui_builder_t[arrowhead = \"empty\"]\r\n ```\r\n", "name": "ui_builder_t", "level": 1 }, @@ -8315,7 +8343,7 @@ "annotation": { "static": true }, - "desc": " 请求反馈。\n\n\n\n", + "desc": " 请求反馈。\r\n\r\n\r\n", "name": "ui_feedback_request", "return": { "type": "ret_t", @@ -8338,7 +8366,7 @@ "annotation": { "static": true }, - "desc": " 初始化。\n 设置实际的处理函数。\n\n\n\n", + "desc": " 初始化。\r\n 设置实际的处理函数。\r\n\r\n\r\n", "name": "ui_feedback_init", "return": { "type": "ret_t", @@ -8349,7 +8377,7 @@ "events": [], "properties": [], "header": "base/ui_feedback.h", - "desc": "\n 提供按键音、触屏音和震动等反馈。\n\n", + "desc": "\r\n 提供按键音、触屏音和震动等反馈。\r\n", "name": "ui_feedback_t", "annotation": { "fake": true @@ -8383,7 +8411,7 @@ } ], "annotation": {}, - "desc": " 加载界面描述数据,然后分发给ui\\_builder,由ui\\_builder进一步处理。\n\n\n\n\n", + "desc": " 加载界面描述数据,然后分发给ui\\_builder,由ui\\_builder进一步处理。\r\n\r\n\r\n\r\n", "name": "ui_loader_load", "return": { "type": "ret_t", @@ -8399,7 +8427,7 @@ } ], "annotation": {}, - "desc": "\n 从指定的资源加载widget对象,通常用于加载非窗口的widget。\n\n>需要自己将widget加入窗口后,再调用widget\\_layout。\n\n\n\n\n", + "desc": "\r\n 从指定的资源加载widget对象,通常用于加载非窗口的widget。\r\n\r\n>需要自己将widget加入窗口后,再调用widget\\_layout。\r\n\r\n\r\n\r\n", "name": "ui_loader_load_widget", "return": { "type": "widget_t*", @@ -8410,7 +8438,7 @@ "events": [], "properties": [], "header": "base/ui_loader.h", - "desc": "\n UI加载器。\n\n 负责从资源加载界面描述数据,然后分发给ui\\_builder,由ui\\_builder进一步处理。\n\n 常见的实现有两种:\n\n * XML格式的加载器。\n\n * 二进制格式的加载器。\n\n ```graphviz\n [default_style]\n\n ui_loader_defualt_t -> ui_loader_t[arrowhead = \"empty\"]\n ui_loader_xml_t -> ui_loader_t[arrowhead = \"empty\"]\n\n ```\n\n\n", + "desc": "\r\n UI加载器。\r\n\r\n 负责从资源加载界面描述数据,然后分发给ui\\_builder,由ui\\_builder进一步处理。\r\n\r\n 常见的实现有两种:\r\n\r\n * XML格式的加载器。\r\n\r\n * 二进制格式的加载器。\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n ui_loader_defualt_t -> ui_loader_t[arrowhead = \"empty\"]\r\n ui_loader_xml_t -> ui_loader_t[arrowhead = \"empty\"]\r\n\r\n ```\r\n\r\n", "name": "ui_loader_t", "level": 1 }, @@ -8458,7 +8486,7 @@ "annotation": { "constructor": true }, - "desc": " 创建vgcanvas。\n\n\n", + "desc": " 创建vgcanvas。\r\n\r\n", "name": "vgcanvas_create", "return": { "type": "vgcanvas_t", @@ -8477,7 +8505,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为vgcanvas对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为vgcanvas对象(供脚本语言使用)。\r\n\r\n", "name": "vgcanvas_cast", "return": { "type": "vgcanvas_t*", @@ -8518,7 +8546,7 @@ } ], "annotation": {}, - "desc": " 重新初始化,系统内部调用。\n\n\n\n", + "desc": " 重新初始化,系统内部调用。\r\n\r\n\r\n", "name": "vgcanvas_reinit", "return": { "type": "ret_t", @@ -8534,7 +8562,7 @@ } ], "annotation": {}, - "desc": " 重置状态。\n\n\n\n", + "desc": " 重置状态。\r\n\r\n\r\n", "name": "vgcanvas_reset", "return": { "type": "ret_t", @@ -8552,7 +8580,7 @@ "annotation": { "scriptable": true }, - "desc": " flush\n\n\n\n", + "desc": " flush\r\n\r\n\r\n", "name": "vgcanvas_flush", "return": { "type": "ret_t", @@ -8573,7 +8601,7 @@ } ], "annotation": {}, - "desc": " 开始绘制,系统内部调用。\n\n\n\n", + "desc": " 开始绘制,系统内部调用。\r\n\r\n\r\n", "name": "vgcanvas_begin_frame", "return": { "type": "ret_t", @@ -8614,7 +8642,7 @@ } ], "annotation": {}, - "desc": " 用颜色清除指定矩形区域。\n\n\n\n", + "desc": " 用颜色清除指定矩形区域。\r\n\r\n\r\n", "name": "vgcanvas_clear_rect", "return": { "type": "ret_t", @@ -8632,7 +8660,7 @@ "annotation": { "scriptable": true }, - "desc": " 清除之前的路径,并重新开始一条路径。\n\n\n\n", + "desc": " 清除之前的路径,并重新开始一条路径。\r\n\r\n\r\n", "name": "vgcanvas_begin_path", "return": { "type": "ret_t", @@ -8660,7 +8688,7 @@ "annotation": { "scriptable": true }, - "desc": " 移动当前点到指定点。\n\n\n\n", + "desc": " 移动当前点到指定点。\r\n\r\n\r\n", "name": "vgcanvas_move_to", "return": { "type": "ret_t", @@ -8688,7 +8716,7 @@ "annotation": { "scriptable": true }, - "desc": " 生成一条线段(从当前点到目标点)。\n\n\n\n", + "desc": " 生成一条线段(从当前点到目标点)。\r\n\r\n\r\n", "name": "vgcanvas_line_to", "return": { "type": "ret_t", @@ -8726,7 +8754,7 @@ "annotation": { "scriptable": true }, - "desc": " 生成一条二次贝塞尔曲线。\n\n\n\n", + "desc": " 生成一条二次贝塞尔曲线。\r\n\r\n\r\n", "name": "vgcanvas_quad_to", "return": { "type": "ret_t", @@ -8774,7 +8802,7 @@ "annotation": { "scriptable": true }, - "desc": " 生成一条三次贝塞尔曲线。\n\n\n\n", + "desc": " 生成一条三次贝塞尔曲线。\r\n\r\n\r\n", "name": "vgcanvas_bezier_to", "return": { "type": "ret_t", @@ -8817,7 +8845,7 @@ "annotation": { "scriptable": true }, - "desc": " 生成一条圆弧路径到指定点。\n\n\n\n", + "desc": " 生成一条圆弧路径到指定点。\r\n\r\n\r\n", "name": "vgcanvas_arc_to", "return": { "type": "ret_t", @@ -8865,7 +8893,7 @@ "annotation": { "scriptable": true }, - "desc": " 生成一条圆弧。\n\n\n\n", + "desc": " 生成一条圆弧。\r\n\r\n\r\n", "name": "vgcanvas_arc", "return": { "type": "ret_t", @@ -8893,7 +8921,7 @@ "annotation": { "scriptable": true }, - "desc": " 检查点是否在当前路径中。\n\n\n\n", + "desc": " 检查点是否在当前路径中。\r\n\r\n\r\n", "name": "vgcanvas_is_point_in_path", "return": { "type": "bool_t", @@ -8931,7 +8959,7 @@ "annotation": { "scriptable": true }, - "desc": " 生成一个矩形路径。\n\n\n\n", + "desc": " 生成一个矩形路径。\r\n\r\n\r\n", "name": "vgcanvas_rect", "return": { "type": "ret_t", @@ -8974,7 +9002,7 @@ "annotation": { "scriptable": true }, - "desc": " 生成一个圆角矩形路径。\n\n\n\n", + "desc": " 生成一个圆角矩形路径。\r\n\r\n\r\n", "name": "vgcanvas_rounded_rect", "return": { "type": "ret_t", @@ -9012,7 +9040,7 @@ "annotation": { "scriptable": true }, - "desc": " 生成一个椭圆路径。\n\n\n\n", + "desc": " 生成一个椭圆路径。\r\n\r\n\r\n", "name": "vgcanvas_ellipse", "return": { "type": "ret_t", @@ -9030,7 +9058,7 @@ "annotation": { "scriptable": true }, - "desc": " 闭合路径。\n\n >闭合路径是指把起点和终点连接起来,形成一个封闭的多边形。\n\n\n\n", + "desc": " 闭合路径。\r\n\r\n >闭合路径是指把起点和终点连接起来,形成一个封闭的多边形。\r\n\r\n\r\n", "name": "vgcanvas_close_path", "return": { "type": "ret_t", @@ -9053,7 +9081,7 @@ "annotation": { "scriptable": true }, - "desc": " 旋转。\n\n\n\n", + "desc": " 旋转。\r\n\r\n\r\n", "name": "vgcanvas_rotate", "return": { "type": "ret_t", @@ -9081,7 +9109,7 @@ "annotation": { "scriptable": true }, - "desc": " 缩放。\n\n\n\n", + "desc": " 缩放。\r\n\r\n\r\n", "name": "vgcanvas_scale", "return": { "type": "ret_t", @@ -9109,7 +9137,7 @@ "annotation": { "scriptable": true }, - "desc": " 平移。\n\n\n\n", + "desc": " 平移。\r\n\r\n\r\n", "name": "vgcanvas_translate", "return": { "type": "ret_t", @@ -9157,7 +9185,7 @@ "annotation": { "scriptable": true }, - "desc": " 变换矩阵。\n\n\n\n", + "desc": " 变换矩阵。\r\n\r\n\r\n", "name": "vgcanvas_transform", "return": { "type": "ret_t", @@ -9205,7 +9233,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置变换矩阵。\n\n\n\n", + "desc": " 设置变换矩阵。\r\n\r\n\r\n", "name": "vgcanvas_set_transform", "return": { "type": "ret_t", @@ -9243,7 +9271,7 @@ "annotation": { "scriptable": true }, - "desc": " 矩形裁剪。\n\n\n\n", + "desc": " 矩形裁剪。\r\n\r\n\r\n", "name": "vgcanvas_clip_rect", "return": { "type": "ret_t", @@ -9261,7 +9289,7 @@ "annotation": { "scriptable": true }, - "desc": " 填充多边形。\n\n\n\n", + "desc": " 填充多边形。\r\n\r\n\r\n", "name": "vgcanvas_fill", "return": { "type": "ret_t", @@ -9279,7 +9307,7 @@ "annotation": { "scriptable": true }, - "desc": " 画线。\n\n\n\n", + "desc": " 画线。\r\n\r\n\r\n", "name": "vgcanvas_stroke", "return": { "type": "ret_t", @@ -9307,7 +9335,7 @@ "annotation": { "scriptable": true }, - "desc": " 用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。\n 多边形的顶点必须在图片范围内,可以通过矩阵变化画到不同的位置。\n\n\n\n", + "desc": " 用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。\r\n 多边形的顶点必须在图片范围内,可以通过矩阵变化画到不同的位置。\r\n\r\n\r\n", "name": "vgcanvas_paint", "return": { "type": "ret_t", @@ -9330,7 +9358,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置字体的名称。\n\n\n\n", + "desc": " 设置字体的名称。\r\n\r\n\r\n", "name": "vgcanvas_set_font", "return": { "type": "ret_t", @@ -9353,7 +9381,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置字体的大小。\n\n\n\n", + "desc": " 设置字体的大小。\r\n\r\n\r\n", "name": "vgcanvas_set_font_size", "return": { "type": "ret_t", @@ -9376,7 +9404,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置文本水平对齐的方式。\n\n\n\n", + "desc": " 设置文本水平对齐的方式。\r\n\r\n\r\n", "name": "vgcanvas_set_text_align", "return": { "type": "ret_t", @@ -9399,7 +9427,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置文本垂直对齐的方式。\n\n\n\n", + "desc": " 设置文本垂直对齐的方式。\r\n\r\n\r\n", "name": "vgcanvas_set_text_baseline", "return": { "type": "ret_t", @@ -9437,7 +9465,7 @@ "annotation": { "scriptable": true }, - "desc": " 绘制文本。\n\n\n\n", + "desc": " 绘制文本。\r\n\r\n\r\n", "name": "vgcanvas_fill_text", "return": { "type": "ret_t", @@ -9460,7 +9488,7 @@ "annotation": { "scriptable": true }, - "desc": " 测量文本的宽度。\n\n\n\n", + "desc": " 测量文本的宽度。\r\n\r\n\r\n", "name": "vgcanvas_measure_text", "return": { "type": "float_t", @@ -9523,7 +9551,7 @@ "annotation": { "scriptable": true }, - "desc": " 绘制图片。\n\n\n\n", + "desc": " 绘制图片。\r\n\r\n\r\n", "name": "vgcanvas_draw_image", "return": { "type": "ret_t", @@ -9586,7 +9614,7 @@ "annotation": { "scriptable": true }, - "desc": " 绘制图标。\n\n 绘制图标时会根据屏幕密度进行自动缩放,而绘制普通图片时不会。\n\n\n\n", + "desc": " 绘制图标。\r\n\r\n 绘制图标时会根据屏幕密度进行自动缩放,而绘制普通图片时不会。\r\n\r\n\r\n", "name": "vgcanvas_draw_icon", "return": { "type": "ret_t", @@ -9609,7 +9637,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置是否启用反走样。\n\n\n\n", + "desc": " 设置是否启用反走样。\r\n\r\n\r\n", "name": "vgcanvas_set_antialias", "return": { "type": "ret_t", @@ -9632,7 +9660,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置全局透明度。\n\n\n\n", + "desc": " 设置全局透明度。\r\n\r\n\r\n", "name": "vgcanvas_set_global_alpha", "return": { "type": "ret_t", @@ -9655,7 +9683,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置线条的宽度。\n\n\n\n", + "desc": " 设置线条的宽度。\r\n\r\n\r\n", "name": "vgcanvas_set_line_width", "return": { "type": "ret_t", @@ -9676,7 +9704,7 @@ } ], "annotation": {}, - "desc": " 设置填充颜色。\n\n\n\n", + "desc": " 设置填充颜色。\r\n\r\n\r\n", "name": "vgcanvas_set_fill_color", "return": { "type": "ret_t", @@ -9699,7 +9727,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置填充颜色。\n\n\n\n", + "desc": " 设置填充颜色。\r\n\r\n\r\n", "name": "vgcanvas_set_fill_color_str", "alias": "vgcanvas_set_fill_color", "return": { @@ -9746,7 +9774,7 @@ } ], "annotation": {}, - "desc": " 设置填充颜色为线性渐变色。\n\n\n\n", + "desc": " 设置填充颜色为线性渐变色。\r\n\r\n\r\n", "name": "vgcanvas_set_fill_linear_gradient", "return": { "type": "ret_t", @@ -9792,7 +9820,7 @@ } ], "annotation": {}, - "desc": " 设置填充颜色为径向渐变色。\n\n\n\n", + "desc": " 设置填充颜色为径向渐变色。\r\n\r\n\r\n", "name": "vgcanvas_set_fill_radial_gradient", "return": { "type": "ret_t", @@ -9813,7 +9841,7 @@ } ], "annotation": {}, - "desc": " 设置线条颜色。\n\n\n\n", + "desc": " 设置线条颜色。\r\n\r\n\r\n", "name": "vgcanvas_set_stroke_color", "return": { "type": "ret_t", @@ -9836,7 +9864,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置线条颜色。\n\n\n\n", + "desc": " 设置线条颜色。\r\n\r\n\r\n", "name": "vgcanvas_set_stroke_color_str", "alias": "vgcanvas_set_stroke_color", "return": { @@ -9883,7 +9911,7 @@ } ], "annotation": {}, - "desc": " 设置线条颜色为线性渐变色。\n\n\n\n", + "desc": " 设置线条颜色为线性渐变色。\r\n\r\n\r\n", "name": "vgcanvas_set_stroke_linear_gradient", "return": { "type": "ret_t", @@ -9929,7 +9957,7 @@ } ], "annotation": {}, - "desc": " 设置线条颜色为径向渐变色。\n\n\n\n", + "desc": " 设置线条颜色为径向渐变色。\r\n\r\n\r\n", "name": "vgcanvas_set_stroke_radial_gradient", "return": { "type": "ret_t", @@ -9952,7 +9980,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置line cap。\n\n\n\n", + "desc": " 设置line cap。\r\n\r\n\r\n", "name": "vgcanvas_set_line_cap", "return": { "type": "ret_t", @@ -9975,7 +10003,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置line join。\n\n\n\n", + "desc": " 设置line join。\r\n\r\n\r\n", "name": "vgcanvas_set_line_join", "return": { "type": "ret_t", @@ -9998,7 +10026,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置miter limit。\n\n\n\n", + "desc": " 设置miter limit。\r\n\r\n\r\n", "name": "vgcanvas_set_miter_limit", "return": { "type": "ret_t", @@ -10016,7 +10044,7 @@ "annotation": { "scriptable": true }, - "desc": " 保存当前的状态。如颜色和矩阵等信息。\n\n > save/restore必须配套使用,否则可能导致状态混乱。\n\n\n\n", + "desc": " 保存当前的状态。如颜色和矩阵等信息。\r\n\r\n > save/restore必须配套使用,否则可能导致状态混乱。\r\n\r\n\r\n", "name": "vgcanvas_save", "return": { "type": "ret_t", @@ -10034,7 +10062,7 @@ "annotation": { "scriptable": true }, - "desc": " 恢复上次save的状态。\n\n> save/restore必须配套使用,否则可能导致状态混乱。\n\n\n\n", + "desc": " 恢复上次save的状态。\r\n\r\n> save/restore必须配套使用,否则可能导致状态混乱。\r\n\r\n\r\n", "name": "vgcanvas_restore", "return": { "type": "ret_t", @@ -10050,7 +10078,7 @@ } ], "annotation": {}, - "desc": " 结束绘制。系统内部调用。\n\n\n", + "desc": " 结束绘制。系统内部调用。\r\n\r\n", "name": "vgcanvas_end_frame", "return": { "type": "ret_t", @@ -10066,7 +10094,7 @@ } ], "annotation": {}, - "desc": " 获取宽度。\n\n\n", + "desc": " 获取宽度。\r\n\r\n", "name": "vgcanvas_get_width", "return": { "type": "wh_t", @@ -10082,7 +10110,7 @@ } ], "annotation": {}, - "desc": " 获取高度。\n\n\n", + "desc": " 获取高度。\r\n\r\n", "name": "vgcanvas_get_height", "return": { "type": "wh_t", @@ -10098,7 +10126,7 @@ } ], "annotation": {}, - "desc": " 销毁vgcanvas对象。\n\n\n", + "desc": " 销毁vgcanvas对象。\r\n\r\n", "name": "vgcanvas_destroy", "return": { "type": "ret_t", @@ -10110,7 +10138,7 @@ "properties": [ { "name": "w", - "desc": " canvas的宽度\n\n", + "desc": " canvas的宽度\r\n", "type": "wh_t", "annotation": { "readable": true, @@ -10119,7 +10147,7 @@ }, { "name": "h", - "desc": " canvas的高度\n\n", + "desc": " canvas的高度\r\n", "type": "wh_t", "annotation": { "readable": true, @@ -10128,7 +10156,7 @@ }, { "name": "ratio", - "desc": " 显示比例。\n\n", + "desc": " 显示比例。\r\n", "type": "float_t", "annotation": { "readable": true, @@ -10137,7 +10165,7 @@ }, { "name": "anti_alias", - "desc": " 是否启用反走样功能。\n\n", + "desc": " 是否启用反走样功能。\r\n", "type": "bool_t", "annotation": { "readable": true, @@ -10146,7 +10174,7 @@ }, { "name": "line_width", - "desc": " 线宽。\n\n", + "desc": " 线宽。\r\n", "type": "float_t", "annotation": { "readable": true, @@ -10155,7 +10183,7 @@ }, { "name": "global_alpha", - "desc": " 全局alpha。\n\n", + "desc": " 全局alpha。\r\n", "type": "float_t", "annotation": { "readable": true, @@ -10164,7 +10192,7 @@ }, { "name": "miter_limit", - "desc": " miter\\_limit。\n @see http://www.w3school.com.cn/tags/canvas_miterlimit.asp\n\n", + "desc": " miter\\_limit。\r\n @see http://www.w3school.com.cn/tags/canvas_miterlimit.asp\r\n", "type": "float_t", "annotation": { "readable": true, @@ -10173,7 +10201,7 @@ }, { "name": "line_cap", - "desc": " line\\_cap。\n @see http://www.w3school.com.cn/tags/canvas_linecap.asp\n\n", + "desc": " line\\_cap。\r\n @see http://www.w3school.com.cn/tags/canvas_linecap.asp\r\n", "type": "const char*", "annotation": { "readable": true, @@ -10182,7 +10210,7 @@ }, { "name": "line_join", - "desc": " line\\_join。\n @see http://www.w3school.com.cn/tags/canvas_linejoin.asp\n\n", + "desc": " line\\_join。\r\n @see http://www.w3school.com.cn/tags/canvas_linejoin.asp\r\n", "type": "const char*", "annotation": { "readable": true, @@ -10191,7 +10219,7 @@ }, { "name": "font", - "desc": " 字体。\n\n", + "desc": " 字体。\r\n", "type": "char*", "annotation": { "readable": true, @@ -10200,7 +10228,7 @@ }, { "name": "font_size", - "desc": " 字体大小。\n\n", + "desc": " 字体大小。\r\n", "type": "float_t", "annotation": { "readable": true, @@ -10209,7 +10237,7 @@ }, { "name": "text_align", - "desc": " 文本对齐方式。\n\n @see http://www.w3school.com.cn/tags/canvas_textalign.asp\n\n", + "desc": " 文本对齐方式。\r\n\r\n @see http://www.w3school.com.cn/tags/canvas_textalign.asp\r\n", "type": "const char*", "annotation": { "readable": true, @@ -10218,7 +10246,7 @@ }, { "name": "text_baseline", - "desc": " 文本基线。\n\n @see http://www.w3school.com.cn/tags/canvas_textbaseline.asp\n\n", + "desc": " 文本基线。\r\n\r\n @see http://www.w3school.com.cn/tags/canvas_textbaseline.asp\r\n", "type": "const char*", "annotation": { "readable": true, @@ -10227,7 +10255,7 @@ }, { "name": "fill_color", - "desc": " 填充颜色\n\n", + "desc": " 填充颜色\r\n", "type": "color_t", "annotation": { "readable": true @@ -10235,7 +10263,7 @@ }, { "name": "stroke_color", - "desc": " 线条颜色\n\n", + "desc": " 线条颜色\r\n", "type": "color_t", "annotation": { "readable": true @@ -10243,7 +10271,7 @@ }, { "name": "buff;", - "desc": " frame buffer\n\n", + "desc": " frame buffer\r\n", "type": "uint32_t*", "annotation": { "private": true @@ -10251,7 +10279,7 @@ }, { "name": "format;", - "desc": " frame buffer format\n\n", + "desc": " frame buffer format\r\n", "type": "bitmap_format_t", "annotation": { "private": true @@ -10259,7 +10287,7 @@ } ], "header": "base/vgcanvas.h", - "desc": " 矢量图画布抽象基类。\n\n 具体实现时可以使用agg,nanovg, cairo和skia等方式。\n\n cairo和skia体积太大,不适合嵌入式平台,但在PC平台也是一种选择。\n\n 目前我们只提供了基于nanovg的实现,支持软件渲染和硬件渲染。\n\n 我们对nanovg进行了一些改进:\n\n * 可以用agg/agge实现软件渲染(暂时不支持文本绘制)。\n\n * 可以用bgfx使用DirectX(Windows平台)和Metal(iOS)平台硬件加速。\n\n ```graphviz\n [default_style]\n\n vgcanvas_cairo_t -> vgcanvas_t[arrowhead = \"empty\"]\n vgcanvas_nanovg_t -> vgcanvas_t[arrowhead = \"empty\"]\n opengl -> vgcanvas_nanovg_t[arrowhead = \"none\"]\n bgfx -> vgcanvas_nanovg_t[arrowhead = \"none\"]\n agg -> vgcanvas_nanovg_t[arrowhead = \"none\"]\n agge -> vgcanvas_nanovg_t[arrowhead = \"none\"]\n vgcanvas_skia_t -> vgcanvas_t[arrowhead = \"empty\"]\n vgcanvas_agge_t -> vgcanvas_t[arrowhead = \"empty\"]\n ```\n\n 示例:\n\n ```c\n vgcanvas_t* vg = canvas_get_vgcanvas(c);\n vgcanvas_save(vg);\n vgcanvas_translate(vg, 0, 100);\n\n vgcanvas_set_line_width(vg, 1);\n vgcanvas_set_fill_color(vg, color_init(0xff, 0, 0, 0xff));\n vgcanvas_rect(vg, 5, 5, 100, 100);\n vgcanvas_fill(vg);\n vgcanvas_restore(vg);\n ```\n\n >请参考:https://www.w3schools.com/tags/ref_canvas.asp\n\n\n", + "desc": " 矢量图画布抽象基类。\r\n\r\n 具体实现时可以使用agg,nanovg, cairo和skia等方式。\r\n\r\n cairo和skia体积太大,不适合嵌入式平台,但在PC平台也是一种选择。\r\n\r\n 目前我们只提供了基于nanovg的实现,支持软件渲染和硬件渲染。\r\n\r\n 我们对nanovg进行了一些改进:\r\n\r\n * 可以用agg/agge实现软件渲染(暂时不支持文本绘制)。\r\n\r\n * 可以用bgfx使用DirectX(Windows平台)和Metal(iOS)平台硬件加速。\r\n\r\n ```graphviz\r\n [default_style]\r\n\r\n vgcanvas_cairo_t -> vgcanvas_t[arrowhead = \"empty\"]\r\n vgcanvas_nanovg_t -> vgcanvas_t[arrowhead = \"empty\"]\r\n opengl -> vgcanvas_nanovg_t[arrowhead = \"none\"]\r\n bgfx -> vgcanvas_nanovg_t[arrowhead = \"none\"]\r\n agg -> vgcanvas_nanovg_t[arrowhead = \"none\"]\r\n agge -> vgcanvas_nanovg_t[arrowhead = \"none\"]\r\n vgcanvas_skia_t -> vgcanvas_t[arrowhead = \"empty\"]\r\n vgcanvas_agge_t -> vgcanvas_t[arrowhead = \"empty\"]\r\n ```\r\n\r\n 示例:\r\n\r\n ```c\r\n vgcanvas_t* vg = canvas_get_vgcanvas(c);\r\n vgcanvas_save(vg);\r\n vgcanvas_translate(vg, 0, 100);\r\n\r\n vgcanvas_set_line_width(vg, 1);\r\n vgcanvas_set_fill_color(vg, color_init(0xff, 0, 0, 0xff));\r\n vgcanvas_rect(vg, 5, 5, 100, 100);\r\n vgcanvas_fill(vg);\r\n vgcanvas_restore(vg);\r\n ```\r\n\r\n >请参考:https://www.w3schools.com/tags/ref_canvas.asp\r\n\r\n", "name": "vgcanvas_t", "annotation": { "scriptable": true @@ -10282,7 +10310,7 @@ "annotation": { "global": true }, - "desc": " 创建animator对象。\n\n\n", + "desc": " 创建animator对象。\r\n\r\n", "name": "widget_animator_create", "return": { "type": "widget_animator_t*", @@ -10300,7 +10328,7 @@ "annotation": { "constructor": true }, - "desc": " 获取缺省的控件动画管理器。\n\n", + "desc": " 获取缺省的控件动画管理器。\r\n", "name": "widget_animator_manager", "alias": "widget_animator_manager_instance", "return": { @@ -10317,7 +10345,7 @@ } ], "annotation": {}, - "desc": " 设置缺省的控件动画管理器。\n\n\n", + "desc": " 设置缺省的控件动画管理器。\r\n\r\n", "name": "widget_animator_manager_set", "return": { "type": "ret_t", @@ -10329,7 +10357,7 @@ "annotation": { "constructor": true }, - "desc": " 创建控件动画管理器。\n\n\n", + "desc": " 创建控件动画管理器。\r\n\r\n", "name": "widget_animator_manager_create", "return": { "type": "widget_animator_manager_t*", @@ -10347,7 +10375,7 @@ "annotation": { "constructor": true }, - "desc": " 初始化控件动画管理器。\n\n\n", + "desc": " 初始化控件动画管理器。\r\n\r\n", "name": "widget_animator_manager_init", "return": { "type": "widget_animator_manager_t*", @@ -10363,7 +10391,7 @@ } ], "annotation": {}, - "desc": " 析构控件动画管理器。\n\n\n", + "desc": " 析构控件动画管理器。\r\n\r\n", "name": "widget_animator_manager_deinit", "return": { "type": "ret_t", @@ -10379,7 +10407,7 @@ } ], "annotation": {}, - "desc": " 析构并释放控件动画管理器。\n\n\n", + "desc": " 析构并释放控件动画管理器。\r\n\r\n", "name": "widget_animator_manager_destroy", "return": { "type": "ret_t", @@ -10400,7 +10428,7 @@ } ], "annotation": {}, - "desc": " 添加指定的动画,动画在创建时调用本函数。\n\n\n", + "desc": " 添加指定的动画,动画在创建时调用本函数。\r\n\r\n", "name": "widget_animator_manager_add", "return": { "type": "ret_t", @@ -10421,7 +10449,7 @@ } ], "annotation": {}, - "desc": " 移出指定的动画,动画在销毁时调用本函数。。\n\n\n", + "desc": " 移出指定的动画,动画在销毁时调用本函数。。\r\n\r\n", "name": "widget_animator_manager_remove", "return": { "type": "ret_t", @@ -10437,7 +10465,7 @@ } ], "annotation": {}, - "desc": " 获取动画个数。\n\n\n", + "desc": " 获取动画个数。\r\n\r\n", "name": "widget_animator_manager_count", "return": { "type": "ret_t", @@ -10463,7 +10491,7 @@ } ], "annotation": {}, - "desc": " 播放满足条件的动画。\n 1.widget为NULL时,播放所有名称为name的动画。\n 2.name为NULL时,播放所有widget相关的动画。\n 3.widget和name均为NULL,播放所有动画。\n\n\n", + "desc": " 播放满足条件的动画。\r\n 1.widget为NULL时,播放所有名称为name的动画。\r\n 2.name为NULL时,播放所有widget相关的动画。\r\n 3.widget和name均为NULL,播放所有动画。\r\n\r\n", "name": "widget_animator_manager_start", "return": { "type": "ret_t", @@ -10489,7 +10517,7 @@ } ], "annotation": {}, - "desc": " 停止满足条件的动画。\n 1.widget为NULL时,停止所有名称为name的动画。\n 2.name为NULL时,停止所有widget相关的动画。\n 3.widget和name均为NULL,停止所有动画。\n\n\n", + "desc": " 停止满足条件的动画。\r\n 1.widget为NULL时,停止所有名称为name的动画。\r\n 2.name为NULL时,停止所有widget相关的动画。\r\n 3.widget和name均为NULL,停止所有动画。\r\n\r\n", "name": "widget_animator_manager_stop", "return": { "type": "ret_t", @@ -10515,7 +10543,7 @@ } ], "annotation": {}, - "desc": " 暂停满足条件的动画。\n 1.widget为NULL时,暂停所有名称为name的动画。\n 2.name为NULL时,暂停所有widget相关的动画。\n 3.widget和name均为NULL,暂停所有动画。\n\n\n", + "desc": " 暂停满足条件的动画。\r\n 1.widget为NULL时,暂停所有名称为name的动画。\r\n 2.name为NULL时,暂停所有widget相关的动画。\r\n 3.widget和name均为NULL,暂停所有动画。\r\n\r\n", "name": "widget_animator_manager_pause", "return": { "type": "ret_t", @@ -10541,7 +10569,7 @@ } ], "annotation": {}, - "desc": " 查找满足条件的动画。\n\n\n", + "desc": " 查找满足条件的动画。\r\n\r\n", "name": "widget_animator_manager_find", "return": { "type": "widget_animator_t*", @@ -10567,7 +10595,7 @@ } ], "annotation": {}, - "desc": " 销毁满足条件的动画。\n\n\n", + "desc": " 销毁满足条件的动画。\r\n\r\n", "name": "widget_animator_manager_remove_all", "return": { "type": "ret_t", @@ -10598,7 +10626,7 @@ } ], "annotation": {}, - "desc": " 设置时间倍率。\n 设置动画的时间倍率,<0: 时间倒退,<1: 时间变慢,>1 时间变快。\n\n\n", + "desc": " 设置时间倍率。\r\n 设置动画的时间倍率,<0: 时间倒退,<1: 时间变慢,>1 时间变快。\r\n\r\n", "name": "widget_animator_manager_set_time_scale", "return": { "type": "ret_t", @@ -10619,7 +10647,7 @@ } ], "annotation": {}, - "desc": " 时间流失,调用本函数更新动画(public for test)。\n\n\n\n", + "desc": " 时间流失,调用本函数更新动画(public for test)。\r\n\r\n\r\n", "name": "widget_animator_manager_time_elapse", "return": { "type": "ret_t", @@ -10631,12 +10659,12 @@ "properties": [ { "name": "time_scale", - "desc": " 时间倍率,可以让时间变快或变慢。\n\n", + "desc": " 时间倍率,可以让时间变快或变慢。\r\n", "type": "float_t" } ], "header": "base/widget_animator_manager.h", - "desc": " 控件动画管理器。\n\n", + "desc": " 控件动画管理器。\r\n", "name": "widget_animator_t", "level": 1 }, @@ -10672,7 +10700,7 @@ } ], "annotation": {}, - "desc": " 初始化。仅供子类内部使用。\n\n\n", + "desc": " 初始化。仅供子类内部使用。\r\n\r\n", "name": "widget_animator_init", "return": { "type": "ret_t", @@ -10693,7 +10721,7 @@ } ], "annotation": {}, - "desc": " 设置名称。\n\n\n", + "desc": " 设置名称。\r\n\r\n", "name": "widget_animator_set_name", "return": { "type": "ret_t", @@ -10714,7 +10742,7 @@ } ], "annotation": {}, - "desc": " 设置为yoyo模式。\n\n\n", + "desc": " 设置为yoyo模式。\r\n\r\n", "name": "widget_animator_set_yoyo", "return": { "type": "ret_t", @@ -10735,7 +10763,7 @@ } ], "annotation": {}, - "desc": " 设置为重复模式。\n\n\n", + "desc": " 设置为重复模式。\r\n\r\n", "name": "widget_animator_set_repeat", "return": { "type": "ret_t", @@ -10756,7 +10784,7 @@ } ], "annotation": {}, - "desc": " 设置为逆向模式。\n\n\n", + "desc": " 设置为逆向模式。\r\n\r\n", "name": "widget_animator_set_reversed", "return": { "type": "ret_t", @@ -10777,7 +10805,7 @@ } ], "annotation": {}, - "desc": " 设置时间倍率,用于实现时间加速减速和停滞的功能。\n\n\n", + "desc": " 设置时间倍率,用于实现时间加速减速和停滞的功能。\r\n\r\n", "name": "widget_animator_set_time_scale", "return": { "type": "ret_t", @@ -10810,7 +10838,7 @@ "annotation": { "scriptable": "custom" }, - "desc": " 注册指定事件的处理函数。\n 事件类型。目前支持:EVT_ANIM_START,EVT_ANIM_STOP,EVT_ANIM_PAUSE,EVT_ANIM_ONCE和EVT_ANIM_END。\n\n\n", + "desc": " 注册指定事件的处理函数。\r\n 事件类型。目前支持:EVT_ANIM_START,EVT_ANIM_STOP,EVT_ANIM_PAUSE,EVT_ANIM_ONCE和EVT_ANIM_END。\r\n\r\n", "name": "widget_animator_on", "return": { "type": "uint32_t", @@ -10833,7 +10861,7 @@ "annotation": { "scriptable": "custom" }, - "desc": " 注销指定事件的处理函数。\n\n\n", + "desc": " 注销指定事件的处理函数。\r\n\r\n", "name": "widget_animator_off", "return": { "type": "ret_t", @@ -10849,7 +10877,7 @@ } ], "annotation": {}, - "desc": " 启动动画。\n\n\n", + "desc": " 启动动画。\r\n\r\n", "name": "widget_animator_start", "return": { "type": "ret_t", @@ -10865,7 +10893,7 @@ } ], "annotation": {}, - "desc": " 停止动画。\n\n\n", + "desc": " 停止动画。\r\n\r\n", "name": "widget_animator_stop", "return": { "type": "ret_t", @@ -10881,7 +10909,7 @@ } ], "annotation": {}, - "desc": " 暂停动画。\n\n\n", + "desc": " 暂停动画。\r\n\r\n", "name": "widget_animator_pause", "return": { "type": "ret_t", @@ -10902,7 +10930,7 @@ } ], "annotation": {}, - "desc": " 设置完成时是否自动销毁动画对象(缺省销毁)。\n\n\n", + "desc": " 设置完成时是否自动销毁动画对象(缺省销毁)。\r\n\r\n", "name": "widget_animator_set_destroy_when_done", "return": { "type": "ret_t", @@ -10925,7 +10953,7 @@ "annotation": { "private": true }, - "desc": " 时间流失,更新动画(由动画管理器调用)。\n\n\n", + "desc": " 时间流失,更新动画(由动画管理器调用)。\r\n\r\n", "name": "widget_animator_time_elapse", "return": { "type": "ret_t", @@ -10941,7 +10969,7 @@ } ], "annotation": {}, - "desc": " 销毁animator对象。\n\n\n", + "desc": " 销毁animator对象。\r\n\r\n", "name": "widget_animator_destroy", "return": { "type": "ret_t", @@ -10953,12 +10981,12 @@ "properties": [ { "name": "name", - "desc": " 名称。\n\n", + "desc": " 名称。\r\n", "type": "char*" }, { "name": "widget", - "desc": " 控件对象。\n\n", + "desc": " 控件对象。\r\n", "type": "widget_t*", "annotation": { "private": true @@ -10966,7 +10994,7 @@ }, { "name": "reversed", - "desc": " 逆向运行,在yoyo模式下自动设置。\n\n", + "desc": " 逆向运行,在yoyo模式下自动设置。\r\n", "type": "bool_t", "annotation": { "private": true @@ -10974,7 +11002,7 @@ }, { "name": "yoyo_times", - "desc": " yoyo剩余次数。\n\n", + "desc": " yoyo剩余次数。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -10982,7 +11010,7 @@ }, { "name": "repeat_times", - "desc": " 重复剩余次数。\n\n", + "desc": " 重复剩余次数。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -10990,7 +11018,7 @@ }, { "name": "now", - "desc": " 当前时间(毫秒)。\n\n", + "desc": " 当前时间(毫秒)。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -10998,7 +11026,7 @@ }, { "name": "time_scale", - "desc": " 时间倍率。\n\n", + "desc": " 时间倍率。\r\n", "type": "float_t", "annotation": { "private": true @@ -11006,7 +11034,7 @@ }, { "name": "start_time", - "desc": " 起始时间(毫秒)。\n\n", + "desc": " 起始时间(毫秒)。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -11014,7 +11042,7 @@ }, { "name": "delay", - "desc": " 延迟执行时间(毫秒)。\n\n", + "desc": " 延迟执行时间(毫秒)。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -11022,7 +11050,7 @@ }, { "name": "duration", - "desc": " 单次动画执行时间(毫秒)。\n\n", + "desc": " 单次动画执行时间(毫秒)。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -11030,7 +11058,7 @@ }, { "name": "state", - "desc": " 动画的状态。\n\n", + "desc": " 动画的状态。\r\n", "type": "animator_state_t", "annotation": { "private": true @@ -11038,7 +11066,7 @@ }, { "name": "emitter", - "desc": " emitter\n\n", + "desc": " emitter\r\n", "type": "uint32_t", "annotation": { "private": true @@ -11046,7 +11074,7 @@ }, { "name": "destroy_when_done;", - "desc": " 播放完成时是否自动销毁(缺省销毁)。\n\n", + "desc": " 播放完成时是否自动销毁(缺省销毁)。\r\n", "type": "bool_t", "annotation": { "private": true @@ -11054,7 +11082,7 @@ }, { "name": "forever", - "desc": " 是否永远播放(yoyo_times/repeat_times为0时,自动设置此标志)。\n\n", + "desc": " 是否永远播放(yoyo_times/repeat_times为0时,自动设置此标志)。\r\n", "type": "bool_t", "annotation": { "private": true @@ -11062,7 +11090,7 @@ }, { "name": "widget_destroy_id", - "desc": " widget_destroy_id。\n\n", + "desc": " widget_destroy_id。\r\n", "type": "uint32_t", "annotation": { "private": true @@ -11070,7 +11098,7 @@ }, { "name": "easing", - "desc": " 插值函数。\n\n", + "desc": " 插值函数。\r\n", "type": "easing_func_t", "annotation": { "private": true @@ -11078,7 +11106,7 @@ }, { "name": "update", - "desc": " update函数,子类需要实现。\n\n", + "desc": " update函数,子类需要实现。\r\n", "type": "widget_animator_update_t", "annotation": { "private": true @@ -11086,7 +11114,7 @@ }, { "name": "destroy", - "desc": " destroy函数,子类需要实现。\n\n", + "desc": " destroy函数,子类需要实现。\r\n", "type": "widget_animator_destroy_t", "annotation": { "private": true @@ -11094,476 +11122,476 @@ } ], "header": "base/widget_animator.h", - "desc": " 控件动画接口。\n\n", + "desc": " 控件动画接口。\r\n", "name": "widget_animator_t", "level": 1 }, { "type": "enum", - "desc": " 控件的属性。\n\n", + "desc": " 控件的属性。\r\n", "consts": [ { - "desc": " X坐标。\n\n", + "desc": " X坐标。\r\n", "name": "WIDGET_PROP_X" }, { - "desc": " Y坐标。\n\n", + "desc": " Y坐标。\r\n", "name": "WIDGET_PROP_Y" }, { - "desc": " 宽度。\n\n", + "desc": " 宽度。\r\n", "name": "WIDGET_PROP_W" }, { - "desc": " 高度。\n\n", + "desc": " 高度。\r\n", "name": "WIDGET_PROP_H" }, { - "desc": " Canvas。\n\n", + "desc": " Canvas。\r\n", "name": "WIDGET_PROP_CANVAS" }, { - "desc": " Canvas。\n\n", + "desc": " Canvas。\r\n", "name": "WIDGET_PROP_LOCALIZE_OPTIONS" }, { - "desc": " Native Window。\n\n", + "desc": " Native Window。\r\n", "name": "WIDGET_PROP_NATIVE_WINDOW" }, { - "desc": " dialog highlight。\n\n", + "desc": " dialog highlight。\r\n", "name": "WIDGET_PROP_HIGHLIGHT" }, { - "desc": " slider中的bar的的宽度或高度。\n\n", + "desc": " slider中的bar的的宽度或高度。\r\n", "name": "WIDGET_PROP_BAR_SIZE" }, { - "desc": " 不透明度。\n\n", + "desc": " 不透明度。\r\n", "name": "WIDGET_PROP_OPACITY" }, { - "desc": " 最小宽度。\n\n", + "desc": " 最小宽度。\r\n", "name": "WIDGET_PROP_MIN_W" }, { - "desc": " 最大宽度。\n\n", + "desc": " 最大宽度。\r\n", "name": "WIDGET_PROP_MAX_W" }, { - "desc": " 子控件布局参数。\n\n", + "desc": " 子控件布局参数。\r\n", "name": "WIDGET_PROP_CHILDREN_LAYOUT" }, { - "desc": " 子控件布局参数(过时)。\n\n", + "desc": " 子控件布局参数(过时)。\r\n", "name": "WIDGET_PROP_LAYOUT" }, { - "desc": " 控件布局参数。\n\n", + "desc": " 控件布局参数。\r\n", "name": "WIDGET_PROP_SELF_LAYOUT" }, { - "desc": " layout宽度。\n\n", + "desc": " layout宽度。\r\n", "name": "WIDGET_PROP_LAYOUT_W" }, { - "desc": " layout高度。\n\n", + "desc": " layout高度。\r\n", "name": "WIDGET_PROP_LAYOUT_H" }, { - "desc": " 虚拟宽度。\n\n", + "desc": " 虚拟宽度。\r\n", "name": "WIDGET_PROP_VIRTUAL_W" }, { - "desc": " 虚拟高度。\n\n", + "desc": " 虚拟高度。\r\n", "name": "WIDGET_PROP_VIRTUAL_H" }, { - "desc": " 名称。\n\n", + "desc": " 名称。\r\n", "name": "WIDGET_PROP_NAME" }, { - "desc": " 类型。\n\n", + "desc": " 类型。\r\n", "name": "WIDGET_PROP_TYPE" }, { - "desc": " 是否可以关闭。\n\n", + "desc": " 是否可以关闭。\r\n", "name": "WIDGET_PROP_CLOSABLE" }, { - "desc": " 鼠标指针。\n\n", + "desc": " 鼠标指针。\r\n", "name": "WIDGET_PROP_CURSOR" }, { - "desc": " 值。\n\n", + "desc": " 值。\r\n", "name": "WIDGET_PROP_VALUE" }, { - "desc": " 长度。\n\n", + "desc": " 长度。\r\n", "name": "WIDGET_PROP_LENGTH" }, { - "desc": " 文本。\n\n", + "desc": " 文本。\r\n", "name": "WIDGET_PROP_TEXT" }, { - "desc": " 待翻译文本。\n\n", + "desc": " 待翻译文本。\r\n", "name": "WIDGET_PROP_TR_TEXT" }, { - "desc": " style。\n\n", + "desc": " style。\r\n", "name": "WIDGET_PROP_STYLE" }, { - "desc": " 是否启用。\n\n", + "desc": " 是否启用。\r\n", "name": "WIDGET_PROP_ENABLE" }, { - "desc": " 是否启用按键音等反馈。\n\n", + "desc": " 是否启用按键音等反馈。\r\n", "name": "WIDGET_PROP_FEEDBACK" }, { - "desc": " 是否启用floating布局。\n\n", + "desc": " 是否启用floating布局。\r\n", "name": "WIDGET_PROP_FLOATING" }, { - "desc": " 边距。\n\n", + "desc": " 边距。\r\n", "name": "WIDGET_PROP_MARGIN" }, { - "desc": " 间距。\n\n", + "desc": " 间距。\r\n", "name": "WIDGET_PROP_SPACING" }, { - "desc": " 左边距。\n\n", + "desc": " 左边距。\r\n", "name": "WIDGET_PROP_LEFT_MARGIN" }, { - "desc": " 右边距。\n\n", + "desc": " 右边距。\r\n", "name": "WIDGET_PROP_RIGHT_MARGIN" }, { - "desc": " 顶边距。\n\n", + "desc": " 顶边距。\r\n", "name": "WIDGET_PROP_TOP_MARGIN" }, { - "desc": " 底边距。\n\n", + "desc": " 底边距。\r\n", "name": "WIDGET_PROP_BOTTOM_MARGIN" }, { - "desc": " 步长。\n\n", + "desc": " 步长。\r\n", "name": "WIDGET_PROP_STEP" }, { - "desc": " 是否可见。\n\n", + "desc": " 是否可见。\r\n", "name": "WIDGET_PROP_VISIBLE" }, { - "desc": " 是否接受用户事件。\n\n", + "desc": " 是否接受用户事件。\r\n", "name": "WIDGET_PROP_SENSITIVE" }, { - "desc": " 控件动画。\n\n", + "desc": " 控件动画。\r\n", "name": "WIDGET_PROP_ANIMATION" }, { - "desc": " 窗口动画。\n\n", + "desc": " 窗口动画。\r\n", "name": "WIDGET_PROP_ANIM_HINT" }, { - "desc": " 窗口设置为全部大小。\n\n", + "desc": " 窗口设置为全部大小。\r\n", "name": "WIDGET_PROP_FULLSCREEN" }, { - "desc": " 打开窗口动画。\n\n", + "desc": " 打开窗口动画。\r\n", "name": "WIDGET_PROP_OPEN_ANIM_HINT" }, { - "desc": " 关闭窗口动画。\n\n", + "desc": " 关闭窗口动画。\r\n", "name": "WIDGET_PROP_CLOSE_ANIM_HINT" }, { - "desc": " 最小值。\n\n", + "desc": " 最小值。\r\n", "name": "WIDGET_PROP_MIN" }, { - "desc": " 提示信息。\n\n", + "desc": " 提示信息。\r\n", "name": "WIDGET_PROP_TIPS" }, { - "desc": " 输入类型。\n\n", + "desc": " 输入类型。\r\n", "name": "WIDGET_PROP_INPUT_TYPE" }, { - "desc": " 只读模式。\n\n", + "desc": " 只读模式。\r\n", "name": "WIDGET_PROP_READONLY" }, { - "desc": " 密码是否可见。\n\n", + "desc": " 密码是否可见。\r\n", "name": "WIDGET_PROP_PASSWORD_VISIBLE" }, { - "desc": " 是否处于active状态。\n\n", + "desc": " 是否处于active状态。\r\n", "name": "WIDGET_PROP_ACTIVE" }, { - "desc": " 是否为垂直模式。\n\n", + "desc": " 是否为垂直模式。\r\n", "name": "WIDGET_PROP_VERTICAL" }, { - "desc": " 是否显示文本。\n\n", + "desc": " 是否显示文本。\r\n", "name": "WIDGET_PROP_SHOW_TEXT" }, { - "desc": " X方向的偏移。\n\n", + "desc": " X方向的偏移。\r\n", "name": "WIDGET_PROP_XOFFSET" }, { - "desc": " Y方向的偏移。\n\n", + "desc": " Y方向的偏移。\r\n", "name": "WIDGET_PROP_YOFFSET" }, { - "desc": " 垂直对齐模式。\n\n", + "desc": " 垂直对齐模式。\r\n", "name": "WIDGET_PROP_ALIGN_V" }, { - "desc": " 水平对齐模式。\n\n", + "desc": " 水平对齐模式。\r\n", "name": "WIDGET_PROP_ALIGN_H" }, { - "desc": " 是否自动播放或指定播放的时间。\n\n", + "desc": " 是否自动播放或指定播放的时间。\r\n", "name": "WIDGET_PROP_AUTO_PLAY" }, { - "desc": " 是否循环播放或循环播放的次数。\n\n", + "desc": " 是否循环播放或循环播放的次数。\r\n", "name": "WIDGET_PROP_LOOP" }, { - "desc": " 是否启用自动更正功能。\n\n", + "desc": " 是否启用自动更正功能。\r\n", "name": "WIDGET_PROP_AUTO_FIX" }, { - "desc": " X最小值。\n\n", + "desc": " X最小值。\r\n", "name": "WIDGET_PROP_X_MIN" }, { - "desc": " X最大值。\n\n", + "desc": " X最大值。\r\n", "name": "WIDGET_PROP_X_MAX" }, { - "desc": " Y最小值。\n\n", + "desc": " Y最小值。\r\n", "name": "WIDGET_PROP_Y_MIN" }, { - "desc": " Y最大值。\n\n", + "desc": " Y最大值。\r\n", "name": "WIDGET_PROP_Y_MAX" }, { - "desc": " 最大值。\n\n", + "desc": " 最大值。\r\n", "name": "WIDGET_PROP_MAX" }, { - "desc": " 行数或每行的高度。\n\n", + "desc": " 行数或每行的高度。\r\n", "name": "WIDGET_PROP_ROW" }, { - "desc": " 控件状态。\n\n", + "desc": " 控件状态。\r\n", "name": "WIDGET_PROP_STATE_FOR_STYLE" }, { - "desc": " 窗口主题名称。\n\n", + "desc": " 窗口主题名称。\r\n", "name": "WIDGET_PROP_THEME" }, { - "desc": " window stage\n\n", + "desc": " window stage\r\n", "name": "WIDGET_PROP_STAGE" }, { - "desc": " 图片管理器。\n\n", + "desc": " 图片管理器。\r\n", "name": "WIDGET_PROP_IMAGE_MANAGER" }, { - "desc": " 资源管理器。\n\n", + "desc": " 资源管理器。\r\n", "name": "WIDGET_PROP_ASSETS_MANAGER" }, { - "desc": " locale_info。\n\n", + "desc": " locale_info。\r\n", "name": "WIDGET_PROP_LOCALE_INFO" }, { - "desc": " 字体管理器。\n\n", + "desc": " 字体管理器。\r\n", "name": "WIDGET_PROP_FONT_MANAGER" }, { - "desc": " 窗口的主题对象。\n\n", + "desc": " 窗口的主题对象。\r\n", "name": "WIDGET_PROP_THEME_OBJ" }, { - "desc": " 缺省的主题对象。\n\n", + "desc": " 缺省的主题对象。\r\n", "name": "WIDGET_PROP_DEFAULT_THEME_OBJ" }, { - "desc": " 项的宽度。\n\n", + "desc": " 项的宽度。\r\n", "name": "WIDGET_PROP_ITEM_WIDTH" }, { - "desc": " 项的高度。\n\n", + "desc": " 项的高度。\r\n", "name": "WIDGET_PROP_ITEM_HEIGHT" }, { - "desc": " 项的缺省高度。\n\n", + "desc": " 项的缺省高度。\r\n", "name": "WIDGET_PROP_DEFAULT_ITEM_HEIGHT" }, { - "desc": " X方向是否可拖动。\n\n", + "desc": " X方向是否可拖动。\r\n", "name": "WIDGET_PROP_XSLIDABLE" }, { - "desc": " Y方向是否可拖动。\n\n", + "desc": " Y方向是否可拖动。\r\n", "name": "WIDGET_PROP_YSLIDABLE" }, { - "desc": " 重复次数。\n\n", + "desc": " 重复次数。\r\n", "name": "WIDGET_PROP_REPEAT" }, { - "desc": " 是否启用长按。\n\n", + "desc": " 是否启用长按。\r\n", "name": "WIDGET_PROP_ENABLE_LONG_PRESS" }, { - "desc": " 是否启用动画。\n\n", + "desc": " 是否启用动画。\r\n", "name": "WIDGET_PROP_ANIMATABLE" }, { - "desc": " 是否自动隐藏滚动条。\n\n", + "desc": " 是否自动隐藏滚动条。\r\n", "name": "WIDGET_PROP_AUTO_HIDE_SCROLL_BAR" }, { - "desc": " 图片名称。\n\n", + "desc": " 图片名称。\r\n", "name": "WIDGET_PROP_IMAGE" }, { - "desc": " 显示格式。\n\n", + "desc": " 显示格式。\r\n", "name": "WIDGET_PROP_FORMAT" }, { - "desc": " 图片绘制类型。\n\n", + "desc": " 图片绘制类型。\r\n", "name": "WIDGET_PROP_DRAW_TYPE" }, { - "desc": " 是否可选择。\n\n", + "desc": " 是否可选择。\r\n", "name": "WIDGET_PROP_SELECTABLE" }, { - "desc": " 是否可点击。\n\n", + "desc": " 是否可点击。\r\n", "name": "WIDGET_PROP_CLICKABLE" }, { - "desc": " X方向缩放比例。\n\n", + "desc": " X方向缩放比例。\r\n", "name": "WIDGET_PROP_SCALE_X" }, { - "desc": " Y方向缩放比例。\n\n", + "desc": " Y方向缩放比例。\r\n", "name": "WIDGET_PROP_SCALE_Y" }, { - "desc": " x锚点。\n\n", + "desc": " x锚点。\r\n", "name": "WIDGET_PROP_ANCHOR_X" }, { - "desc": " y锚点。\n\n", + "desc": " y锚点。\r\n", "name": "WIDGET_PROP_ANCHOR_Y" }, { - "desc": " 选中角度(幅度)\n\n", + "desc": " 选中角度(幅度)\r\n", "name": "WIDGET_PROP_ROTATION" }, { - "desc": " 紧凑模式。\n\n", + "desc": " 紧凑模式。\r\n", "name": "WIDGET_PROP_COMPACT" }, { - "desc": " 是否支持滚动。\n\n", + "desc": " 是否支持滚动。\r\n", "name": "WIDGET_PROP_SCROLLABLE" }, { - "desc": " 图标名称。\n\n", + "desc": " 图标名称。\r\n", "name": "WIDGET_PROP_ICON" }, { - "desc": " 选项集合。\n\n", + "desc": " 选项集合。\r\n", "name": "WIDGET_PROP_OPTIONS" }, { - "desc": " 是否被选中。\n\n", + "desc": " 是否被选中。\r\n", "name": "WIDGET_PROP_SELECTED" }, { - "desc": " 是否被勾选。\n\n", + "desc": " 是否被勾选。\r\n", "name": "WIDGET_PROP_CHECKED" }, { - "desc": " active状态下的图标。\n\n", + "desc": " active状态下的图标。\r\n", "name": "WIDGET_PROP_ACTIVE_ICON" }, { - "desc": " 要打开窗口的名称。\n\n", + "desc": " 要打开窗口的名称。\r\n", "name": "WIDGET_PROP_OPEN_WINDOW" }, { - "desc": " 被选中项的索引。\n\n", + "desc": " 被选中项的索引。\r\n", "name": "WIDGET_PROP_SELECTED_INDEX" }, { - "desc": " 点击窗口时关闭窗口。\n\n", + "desc": " 点击窗口时关闭窗口。\r\n", "name": "WIDGET_PROP_CLOSE_WHEN_CLICK" }, { - "desc": " 点击窗口外部时关闭窗口。\n\n", + "desc": " 点击窗口外部时关闭窗口。\r\n", "name": "WIDGET_PROP_CLOSE_WHEN_CLICK_OUTSIDE" }, { - "desc": " 行间距。\n\n", + "desc": " 行间距。\r\n", "name": "WIDGET_PROP_LINE_GAP" }, { - "desc": " 背景颜色(仅仅使用于color tile)。\n\n", + "desc": " 背景颜色(仅仅使用于color tile)。\r\n", "name": "WIDGET_PROP_BG_COLOR" }, { - "desc": " 边框颜色(仅仅使用于color tile)。\n\n", + "desc": " 边框颜色(仅仅使用于color tile)。\r\n", "name": "WIDGET_PROP_BORDER_COLOR" }, { - "desc": " 延迟时间(毫秒)\n\n", + "desc": " 延迟时间(毫秒)\r\n", "name": "WIDGET_PROP_DELAY" }, { - "desc": " 是否为键盘。\n\n", + "desc": " 是否为键盘。\r\n", "name": "WIDGET_PROP_IS_KEYBOARD" }, { - "desc": " 是否为焦点控件。\n\n", + "desc": " 是否为焦点控件。\r\n", "name": "WIDGET_PROP_FOCUSED" }, { - "desc": " (过时请用focused)。\n\n", + "desc": " (过时请用focused)。\r\n", "name": "WIDGET_PROP_FOCUS" }, { - "desc": " 是否支持焦点停留。\n\n", + "desc": " 是否支持焦点停留。\r\n", "name": "WIDGET_PROP_FOCUSABLE" }, { - "desc": " 是否支持焦点状态(如果希望style支持焦点状态,但有不希望焦点停留,可用本属性)。\n\n", + "desc": " 是否支持焦点状态(如果希望style支持焦点状态,但有不希望焦点停留,可用本属性)。\r\n", "name": "WIDGET_PROP_WITH_FOCUS_STATE" }, { - "desc": " 将焦点移到下一个的键值。\n\n", + "desc": " 将焦点移到下一个的键值。\r\n", "name": "WIDGET_PROP_MOVE_FOCUS_NEXT_KEY" }, { - "desc": " 将焦点移到下一个的键值。\n\n", + "desc": " 将焦点移到下一个的键值。\r\n", "name": "WIDGET_PROP_MOVE_FOCUS_PREV_KEY" } ], @@ -11578,218 +11606,218 @@ }, { "type": "enum", - "desc": " 控件的类型。\n\n", + "desc": " 控件的类型。\r\n", "consts": [ { - "desc": " 无特殊类型。\n\n", + "desc": " 无特殊类型。\r\n", "name": "WIDGET_TYPE_NONE" }, { - "desc": " 窗口管理器。\n\n", + "desc": " 窗口管理器。\r\n", "name": "WIDGET_TYPE_WINDOW_MANAGER" }, { - "desc": " 普通窗口。\n\n", + "desc": " 普通窗口。\r\n", "name": "WIDGET_TYPE_NORMAL_WINDOW" }, { - "desc": " overlay窗口。\n\n", + "desc": " overlay窗口。\r\n", "name": "WIDGET_TYPE_OVERLAY" }, { - "desc": " 工具条。\n\n", + "desc": " 工具条。\r\n", "name": "WIDGET_TYPE_TOOL_BAR" }, { - "desc": " 对话框。\n\n", + "desc": " 对话框。\r\n", "name": "WIDGET_TYPE_DIALOG" }, { - "desc": " 弹出窗口。\n\n", + "desc": " 弹出窗口。\r\n", "name": "WIDGET_TYPE_POPUP" }, { - "desc": " system bar window\n\n", + "desc": " system bar window\r\n", "name": "WIDGET_TYPE_SYSTEM_BAR" }, { - "desc": " 精灵窗口。\n\n", + "desc": " 精灵窗口。\r\n", "name": "WIDGET_TYPE_SPRITE" }, { - "desc": " 键盘窗口。\n\n", + "desc": " 键盘窗口。\r\n", "name": "WIDGET_TYPE_KEYBOARD" }, { - "desc": " 拖放状态窗口。\n\n", + "desc": " 拖放状态窗口。\r\n", "name": "WIDGET_TYPE_DND" }, { - "desc": " 文本控件。\n\n", + "desc": " 文本控件。\r\n", "name": "WIDGET_TYPE_LABEL" }, { - "desc": " 按钮控件。\n\n", + "desc": " 按钮控件。\r\n", "name": "WIDGET_TYPE_BUTTON" }, { - "desc": " 图片控件。\n\n", + "desc": " 图片控件。\r\n", "name": "WIDGET_TYPE_IMAGE" }, { - "desc": " 文本编辑控件。\n\n", + "desc": " 文本编辑控件。\r\n", "name": "WIDGET_TYPE_EDIT" }, { - "desc": " 进度条控件。\n\n", + "desc": " 进度条控件。\r\n", "name": "WIDGET_TYPE_PROGRESS_BAR" }, { - "desc": " 分组控件。\n\n", + "desc": " 分组控件。\r\n", "name": "WIDGET_TYPE_GROUP_BOX" }, { - "desc": " 多选按钮控件。\n\n", + "desc": " 多选按钮控件。\r\n", "name": "WIDGET_TYPE_CHECK_BUTTON" }, { - "desc": " 单选按钮控件。\n\n", + "desc": " 单选按钮控件。\r\n", "name": "WIDGET_TYPE_RADIO_BUTTON" }, { - "desc": " 对话框标题。\n\n", + "desc": " 对话框标题。\r\n", "name": "WIDGET_TYPE_DIALOG_TITLE" }, { - "desc": " 对话框客户区域。\n\n", + "desc": " 对话框客户区域。\r\n", "name": "WIDGET_TYPE_DIALOG_CLIENT" }, { - "desc": " 滑块控件。\n\n", + "desc": " 滑块控件。\r\n", "name": "WIDGET_TYPE_SLIDER" }, { - "desc": " 视图控件。\n\n", + "desc": " 视图控件。\r\n", "name": "WIDGET_TYPE_VIEW" }, { - "desc": " 下拉选择框控件。\n\n", + "desc": " 下拉选择框控件。\r\n", "name": "WIDGET_TYPE_COMBO_BOX" }, { - "desc": " 下拉选择框的列表项控件。\n\n", + "desc": " 下拉选择框的列表项控件。\r\n", "name": "WIDGET_TYPE_COMBO_BOX_ITEM" }, { - "desc": " 滑动视图控件。\n\n", + "desc": " 滑动视图控件。\r\n", "name": "WIDGET_TYPE_SLIDE_VIEW" }, { - "desc": " 滑动视图的指示器控件。\n\n", + "desc": " 滑动视图的指示器控件。\r\n", "name": "WIDGET_TYPE_SLIDE_INDICATOR" }, { - "desc": " 滑动视图的指示器控件(圆弧显示)。\n\n", + "desc": " 滑动视图的指示器控件(圆弧显示)。\r\n", "name": "WIDGET_TYPE_SLIDE_INDICATOR_ARC" }, { - "desc": " 多页控件。\n\n", + "desc": " 多页控件。\r\n", "name": "WIDGET_TYPE_PAGES" }, { - "desc": " 标签按钮控件。\n\n", + "desc": " 标签按钮控件。\r\n", "name": "WIDGET_TYPE_TAB_BUTTON" }, { - "desc": " 标签控件。\n\n", + "desc": " 标签控件。\r\n", "name": "WIDGET_TYPE_TAB_CONTROL" }, { - "desc": " 标签按钮分组控件。\n\n", + "desc": " 标签按钮分组控件。\r\n", "name": "WIDGET_TYPE_TAB_BUTTON_GROUP" }, { - "desc": " 按钮分组控件。\n\n", + "desc": " 按钮分组控件。\r\n", "name": "WIDGET_TYPE_BUTTON_GROUP" }, { - "desc": " 候选字控件。\n\n", + "desc": " 候选字控件。\r\n", "name": "WIDGET_TYPE_CANDIDATES" }, { - "desc": " 数值编辑控件。\n\n", + "desc": " 数值编辑控件。\r\n", "name": "WIDGET_TYPE_SPIN_BOX" }, { - "desc": " 拖动块控件。\n\n", + "desc": " 拖动块控件。\r\n", "name": "WIDGET_TYPE_DRAGGER" }, { - "desc": " 滚动条控件。\n\n", + "desc": " 滚动条控件。\r\n", "name": "WIDGET_TYPE_SCROLL_BAR" }, { - "desc": " 桌面版滚动条控件。\n\n", + "desc": " 桌面版滚动条控件。\r\n", "name": "WIDGET_TYPE_SCROLL_BAR_DESKTOP" }, { - "desc": " 移动版滚动条控件。\n\n", + "desc": " 移动版滚动条控件。\r\n", "name": "WIDGET_TYPE_SCROLL_BAR_MOBILE" }, { - "desc": " 滚动视图控件。\n\n", + "desc": " 滚动视图控件。\r\n", "name": "WIDGET_TYPE_SCROLL_VIEW" }, { - "desc": " 列表视图控件。\n\n", + "desc": " 列表视图控件。\r\n", "name": "WIDGET_TYPE_LIST_VIEW" }, { - "desc": " 水平列表视图控件。\n\n", + "desc": " 水平列表视图控件。\r\n", "name": "WIDGET_TYPE_LIST_VIEW_H" }, { - "desc": " 列表项控件。\n\n", + "desc": " 列表项控件。\r\n", "name": "WIDGET_TYPE_LIST_ITEM" }, { - "desc": " 颜色选择器控件。\n\n", + "desc": " 颜色选择器控件。\r\n", "name": "WIDGET_TYPE_COLOR_PICKER" }, { - "desc": " 颜色选择器组件控件。\n\n", + "desc": " 颜色选择器组件控件。\r\n", "name": "WIDGET_TYPE_COLOR_COMPONENT" }, { - "desc": " 颜色块控件。\n\n", + "desc": " 颜色块控件。\r\n", "name": "WIDGET_TYPE_COLOR_TILE" }, { - "desc": " 富文本控件。\n\n", + "desc": " 富文本控件。\r\n", "name": "WIDGET_TYPE_RICH_TEXT" }, { - "desc": " AppBar控件。\n\n", + "desc": " AppBar控件。\r\n", "name": "WIDGET_TYPE_APP_BAR" }, { - "desc": " 网格控件。\n\n", + "desc": " 网格控件。\r\n", "name": "WIDGET_TYPE_GRID" }, { - "desc": " 网格项目控件。\n\n", + "desc": " 网格项目控件。\r\n", "name": "WIDGET_TYPE_GRID_ITEM" }, { - "desc": " 行控件。\n\n", + "desc": " 行控件。\r\n", "name": "WIDGET_TYPE_ROW" }, { - "desc": " 列控件。\n\n", + "desc": " 列控件。\r\n", "name": "WIDGET_TYPE_COLUMN" }, { - "desc": " 电阻屏校准窗口。\n\n", + "desc": " 电阻屏校准窗口。\r\n", "name": "WIDGET_TYPE_CALIBRATION_WIN" } ], @@ -11804,22 +11832,22 @@ }, { "type": "enum", - "desc": " 窗口的生命周期常量定义。\n\n", + "desc": " 窗口的生命周期常量定义。\r\n", "consts": [ { - "desc": " 初始状态。\n\n", + "desc": " 初始状态。\r\n", "name": "WINDOW_STAGE_NONE" }, { - "desc": " 创建完成。\n\n", + "desc": " 创建完成。\r\n", "name": "WINDOW_STAGE_CREATED" }, { - "desc": " 窗口已经打开(窗口打开动画完成后,处于该状态,直到窗口被关闭)\n\n", + "desc": " 窗口已经打开(窗口打开动画完成后,处于该状态,直到窗口被关闭)\r\n", "name": "WINDOW_STAGE_OPENED" }, { - "desc": " 窗口已关闭。\n\n", + "desc": " 窗口已关闭。\r\n", "name": "WINDOW_STAGE_CLOSED" } ], @@ -11833,18 +11861,18 @@ }, { "type": "enum", - "desc": " 窗口的closable常量定义。\n\n", + "desc": " 窗口的closable常量定义。\r\n", "consts": [ { - "desc": " 窗口可关闭。\n\n", + "desc": " 窗口可关闭。\r\n", "name": "WINDOW_CLOSABLE_YES" }, { - "desc": " 窗口不可关闭。\n\n", + "desc": " 窗口不可关闭。\r\n", "name": "WINDOW_CLOSABLE_NO" }, { - "desc": " 窗口需要确认后才能关闭。\n\n", + "desc": " 窗口需要确认后才能关闭。\r\n", "name": "WINDOW_CLOSABLE_CONFIRM" } ], @@ -11858,30 +11886,30 @@ }, { "type": "enum", - "desc": " 位图标志常量定义。\n\n", + "desc": " 位图标志常量定义。\r\n", "consts": [ { - "desc": " 无特殊标志。\n\n", + "desc": " 无特殊标志。\r\n", "name": "BITMAP_FLAG_NONE" }, { - "desc": " 不透明图片。\n\n", + "desc": " 不透明图片。\r\n", "name": "BITMAP_FLAG_OPAQUE" }, { - "desc": " 图片内容不会变化。\n\n", + "desc": " 图片内容不会变化。\r\n", "name": "BITMAP_FLAG_IMMUTABLE" }, { - "desc": " OpenGL Texture, bitmap的id是有效的texture id。\n\n", + "desc": " OpenGL Texture, bitmap的id是有效的texture id。\r\n", "name": "BITMAP_FLAG_TEXTURE" }, { - "desc": " 如果是MUTABLE的图片,更新时需要设置此标志,底层可能会做特殊处理,比如更新图片到GPU。\n\n", + "desc": " 如果是MUTABLE的图片,更新时需要设置此标志,底层可能会做特殊处理,比如更新图片到GPU。\r\n", "name": "BITMAP_FLAG_CHANGED" }, { - "desc": " 预乘alpha。\n\n", + "desc": " 预乘alpha。\r\n", "name": "BITMAP_FLAG_PREMULTI_ALPHA" } ], @@ -11907,7 +11935,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取子控件的个数。\n\n\n", + "desc": " 获取子控件的个数。\r\n\r\n", "name": "widget_count_children", "return": { "type": "int32_t", @@ -11930,7 +11958,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取指定索引的子控件。\n\n\n", + "desc": " 获取指定索引的子控件。\r\n\r\n", "name": "widget_get_child", "return": { "type": "widget_t*", @@ -11948,7 +11976,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取控件在父控件中的索引编号。\n\n\n", + "desc": " 获取控件在父控件中的索引编号。\r\n\r\n", "name": "widget_index_of", "return": { "type": "int32_t", @@ -11976,7 +12004,7 @@ "annotation": { "scriptable": true }, - "desc": " 移动控件。\n\n\n", + "desc": " 移动控件。\r\n\r\n", "name": "widget_move", "return": { "type": "ret_t", @@ -12004,7 +12032,7 @@ "annotation": { "scriptable": true }, - "desc": " 调整控件的大小。\n\n\n", + "desc": " 调整控件的大小。\r\n\r\n", "name": "widget_resize", "return": { "type": "ret_t", @@ -12042,7 +12070,7 @@ "annotation": { "scriptable": true }, - "desc": " 移动控件并调整控件的大小。\n\n\n", + "desc": " 移动控件并调整控件的大小。\r\n\r\n", "name": "widget_move_resize", "return": { "type": "ret_t", @@ -12065,7 +12093,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的值。\n 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。\n\n\n", + "desc": " 设置控件的值。\r\n 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。\r\n\r\n", "name": "widget_set_value", "return": { "type": "ret_t", @@ -12093,7 +12121,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的值(以动画形式变化到指定的值)。\n 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。\n\n\n", + "desc": " 设置控件的值(以动画形式变化到指定的值)。\r\n 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。\r\n\r\n", "name": "widget_animate_value_to", "return": { "type": "ret_t", @@ -12116,7 +12144,7 @@ "annotation": { "scriptable": true }, - "desc": " 增加控件的值。\n 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。\n\n\n", + "desc": " 增加控件的值。\r\n 只是对widget\\_set\\_prop的包装,值的意义由子类控件决定。\r\n\r\n", "name": "widget_add_value", "return": { "type": "ret_t", @@ -12137,7 +12165,7 @@ } ], "annotation": {}, - "desc": " 设置控件的文本。\n 只是对widget\\_set\\_prop的包装,文本的意义由子类控件决定。\n\n\n", + "desc": " 设置控件的文本。\r\n 只是对widget\\_set\\_prop的包装,文本的意义由子类控件决定。\r\n\r\n", "name": "widget_set_text", "return": { "type": "ret_t", @@ -12160,7 +12188,7 @@ "annotation": { "scriptable": true }, - "desc": " 启用指定的主题。\n\n\n", + "desc": " 启用指定的主题。\r\n\r\n", "name": "widget_use_style", "return": { "type": "ret_t", @@ -12183,7 +12211,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的文本。\n 只是对widget\\_set\\_prop的包装,文本的意义由子类控件决定。\n\n\n", + "desc": " 设置控件的文本。\r\n 只是对widget\\_set\\_prop的包装,文本的意义由子类控件决定。\r\n\r\n", "name": "widget_set_text_utf8", "alias": "set_text", "return": { @@ -12207,7 +12235,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取翻译之后的文本,然后调用widget_set_text。\n\n\n", + "desc": " 获取翻译之后的文本,然后调用widget_set_text。\r\n\r\n", "name": "widget_set_tr_text", "return": { "type": "ret_t", @@ -12225,7 +12253,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取控件的值。只是对widget\\_get\\_prop的包装,值的意义由子类控件决定。\n\n\n", + "desc": " 获取控件的值。只是对widget\\_get\\_prop的包装,值的意义由子类控件决定。\r\n\r\n", "name": "widget_get_value", "return": { "type": "int32_t", @@ -12243,7 +12271,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取控件的文本。\n 只是对widget\\_get\\_prop的包装,文本的意义由子类控件决定。\n\n\n", + "desc": " 获取控件的文本。\r\n 只是对widget\\_get\\_prop的包装,文本的意义由子类控件决定。\r\n\r\n", "name": "widget_get_text", "return": { "type": "wchar_t*", @@ -12264,7 +12292,7 @@ } ], "annotation": {}, - "desc": " 将屏幕坐标转换成控件内的本地坐标,即相对于控件左上角的坐标。\n\n\n", + "desc": " 将屏幕坐标转换成控件内的本地坐标,即相对于控件左上角的坐标。\r\n\r\n", "name": "widget_to_local", "return": { "type": "ret_t", @@ -12285,7 +12313,7 @@ } ], "annotation": {}, - "desc": " 将控件内的本地坐标转换成全局坐标。\n\n\n", + "desc": " 将控件内的本地坐标转换成全局坐标。\r\n\r\n", "name": "widget_to_global", "return": { "type": "ret_t", @@ -12306,7 +12334,7 @@ } ], "annotation": {}, - "desc": " 将控件内的本地坐标转换成屏幕上的坐标。\n\n\n", + "desc": " 将控件内的本地坐标转换成屏幕上的坐标。\r\n\r\n", "name": "widget_to_screen", "return": { "type": "ret_t", @@ -12329,7 +12357,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的名称。\n\n\n", + "desc": " 设置控件的名称。\r\n\r\n", "name": "widget_set_name", "return": { "type": "ret_t", @@ -12352,7 +12380,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置theme的名称,用于动态切换主题。名称与当前主题名称相同,则重新加载全部资源。\n\n > 目前只支持带有文件系统的平台。\n\n\n\n", + "desc": " 设置theme的名称,用于动态切换主题。名称与当前主题名称相同,则重新加载全部资源。\r\n\r\n > 目前只支持带有文件系统的平台。\r\n\r\n\r\n", "name": "widget_set_theme", "return": { "type": "ret_t", @@ -12375,7 +12403,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置鼠标指针的图片名。\n\n\n", + "desc": " 设置鼠标指针的图片名。\r\n\r\n", "name": "widget_set_cursor", "return": { "type": "ret_t", @@ -12398,7 +12426,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的动画参数(仅用于在UI文件使用)。\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\n\n\n\n", + "desc": " 设置控件的动画参数(仅用于在UI文件使用)。\r\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\n\r\n\r\n", "name": "widget_set_animation", "return": { "type": "ret_t", @@ -12421,7 +12449,7 @@ "annotation": { "scriptable": true }, - "desc": " 创建动画。\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\n\n * 除非指定auto_start=false,动画创建后自动启动。\n * 除非指定auto_destroy=false,动画播放完成后自动销毁。\n\n\n\n", + "desc": " 创建动画。\r\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\n\r\n * 除非指定auto_start=false,动画创建后自动启动。\r\n * 除非指定auto_destroy=false,动画播放完成后自动销毁。\r\n\r\n\r\n", "name": "widget_create_animator", "return": { "type": "ret_t", @@ -12444,7 +12472,7 @@ "annotation": { "scriptable": true }, - "desc": " 播放动画。\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\n\n * 1.widget为NULL时,播放所有名称为name的动画。\n * 2.name为NULL时,播放所有widget相关的动画。\n * 3.widget和name均为NULL,播放所有动画。\n\n\n\n", + "desc": " 播放动画。\r\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\n\r\n * 1.widget为NULL时,播放所有名称为name的动画。\r\n * 2.name为NULL时,播放所有widget相关的动画。\r\n * 3.widget和name均为NULL,播放所有动画。\r\n\r\n\r\n", "name": "widget_start_animator", "return": { "type": "ret_t", @@ -12472,7 +12500,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置动画的时间倍率,<0: 时间倒退,<1: 时间变慢,>1 时间变快。\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\n\n * 1.widget为NULL时,设置所有名称为name的动画的时间倍率。\n * 2.name为NULL时,设置所有widget相关的动画的时间倍率。\n * 3.widget和name均为NULL,设置所有动画的时间倍率。\n\n\n\n", + "desc": " 设置动画的时间倍率,<0: 时间倒退,<1: 时间变慢,>1 时间变快。\r\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\n\r\n * 1.widget为NULL时,设置所有名称为name的动画的时间倍率。\r\n * 2.name为NULL时,设置所有widget相关的动画的时间倍率。\r\n * 3.widget和name均为NULL,设置所有动画的时间倍率。\r\n\r\n\r\n", "name": "widget_set_animator_time_scale", "return": { "type": "ret_t", @@ -12495,7 +12523,7 @@ "annotation": { "scriptable": true }, - "desc": " 暂停动画。\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\n\n * 1.widget为NULL时,暂停所有名称为name的动画。\n * 2.name为NULL时,暂停所有widget相关的动画。\n * 3.widget和name均为NULL,暂停所有动画。\n\n\n\n", + "desc": " 暂停动画。\r\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\n\r\n * 1.widget为NULL时,暂停所有名称为name的动画。\r\n * 2.name为NULL时,暂停所有widget相关的动画。\r\n * 3.widget和name均为NULL,暂停所有动画。\r\n\r\n\r\n", "name": "widget_pause_animator", "return": { "type": "ret_t", @@ -12518,7 +12546,7 @@ "annotation": { "scriptable": true }, - "desc": " 查找指定名称的动画。\n\n\n\n", + "desc": " 查找指定名称的动画。\r\n\r\n\r\n", "name": "widget_find_animator", "return": { "type": "widget_animator_t*", @@ -12541,7 +12569,7 @@ "annotation": { "scriptable": true }, - "desc": " 停止动画(控件的相应属性回归原位)。\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\n\n * 1.widget为NULL时,停止所有名称为name的动画。\n * 2.name为NULL时,停止所有widget相关的动画。\n * 3.widget和name均为NULL,停止所有动画。\n\n\n\n", + "desc": " 停止动画(控件的相应属性回归原位)。\r\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\n\r\n * 1.widget为NULL时,停止所有名称为name的动画。\r\n * 2.name为NULL时,停止所有widget相关的动画。\r\n * 3.widget和name均为NULL,停止所有动画。\r\n\r\n\r\n", "name": "widget_stop_animator", "return": { "type": "ret_t", @@ -12564,7 +12592,7 @@ "annotation": { "scriptable": true }, - "desc": " 销毁动画。\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\n\n * 1.widget为NULL时,销毁所有名称为name的动画。\n * 2.name为NULL时,销毁所有widget相关的动画。\n * 3.widget和name均为NULL,销毁所有动画。\n\n\n\n", + "desc": " 销毁动画。\r\n 请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\n\r\n * 1.widget为NULL时,销毁所有名称为name的动画。\r\n * 2.name为NULL时,销毁所有widget相关的动画。\r\n * 3.widget和name均为NULL,销毁所有动画。\r\n\r\n\r\n", "name": "widget_destroy_animator", "return": { "type": "ret_t", @@ -12587,7 +12615,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的可用性。\n\n\n", + "desc": " 设置控件的可用性。\r\n\r\n", "name": "widget_set_enable", "return": { "type": "ret_t", @@ -12610,7 +12638,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件是否启用反馈。\n\n\n", + "desc": " 设置控件是否启用反馈。\r\n\r\n", "name": "widget_set_feedback", "return": { "type": "ret_t", @@ -12633,7 +12661,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的floating标志。\n\n\n", + "desc": " 设置控件的floating标志。\r\n\r\n", "name": "widget_set_floating", "return": { "type": "ret_t", @@ -12656,7 +12684,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的是否聚焦。\n\n\n", + "desc": " 设置控件的是否聚焦。\r\n\r\n", "name": "widget_set_focused", "return": { "type": "ret_t", @@ -12677,7 +12705,7 @@ } ], "annotation": {}, - "desc": " 设置控件的状态。\n\n\n", + "desc": " 设置控件的状态。\r\n\r\n", "name": "widget_set_state", "return": { "type": "ret_t", @@ -12698,7 +12726,7 @@ } ], "annotation": {}, - "desc": " 设置控件的不透明度。\n\n>在嵌入式平台,半透明效果会使性能大幅下降,请谨慎使用。\n\n\n\n", + "desc": " 设置控件的不透明度。\r\n\r\n>在嵌入式平台,半透明效果会使性能大幅下降,请谨慎使用。\r\n\r\n\r\n", "name": "widget_set_opacity", "return": { "type": "ret_t", @@ -12714,7 +12742,7 @@ } ], "annotation": {}, - "desc": " 销毁全部子控件。\n\n\n", + "desc": " 销毁全部子控件。\r\n\r\n", "name": "widget_destroy_children", "return": { "type": "ret_t", @@ -12735,7 +12763,7 @@ } ], "annotation": {}, - "desc": " 加入一个子控件。\n\n\n", + "desc": " 加入一个子控件。\r\n\r\n", "name": "widget_add_child", "return": { "type": "ret_t", @@ -12756,7 +12784,7 @@ } ], "annotation": {}, - "desc": " 移出指定的子控件(并不销毁)。\n\n\n", + "desc": " 移出指定的子控件(并不销毁)。\r\n\r\n", "name": "widget_remove_child", "return": { "type": "ret_t", @@ -12782,7 +12810,7 @@ } ], "annotation": {}, - "desc": " 插入子控件到指定的位置。\n\n\n", + "desc": " 插入子控件到指定的位置。\r\n\r\n", "name": "widget_insert_child", "return": { "type": "ret_t", @@ -12803,7 +12831,7 @@ } ], "annotation": {}, - "desc": " 调整控件在父控件中的位置序数。\n\n\n", + "desc": " 调整控件在父控件中的位置序数。\r\n\r\n", "name": "widget_restack", "return": { "type": "ret_t", @@ -12826,7 +12854,7 @@ "annotation": { "scriptable": true }, - "desc": " 查找指定名称的子控件(同widget_lookup(widget, name, FALSE))。\n\n\n", + "desc": " 查找指定名称的子控件(同widget_lookup(widget, name, FALSE))。\r\n\r\n", "name": "widget_child", "return": { "type": "widget_t*", @@ -12854,7 +12882,7 @@ "annotation": { "scriptable": true }, - "desc": " 查找指定名称的子控件(返回第一个)。\n\n\n", + "desc": " 查找指定名称的子控件(返回第一个)。\r\n\r\n", "name": "widget_lookup", "return": { "type": "widget_t*", @@ -12882,7 +12910,7 @@ "annotation": { "scriptable": true }, - "desc": " 查找指定类型的子控件(返回第一个)。\n\n\n", + "desc": " 查找指定类型的子控件(返回第一个)。\r\n\r\n", "name": "widget_lookup_by_type", "return": { "type": "widget_t*", @@ -12910,7 +12938,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的可见性。\n\n\n", + "desc": " 设置控件的可见性。\r\n\r\n", "name": "widget_set_visible", "return": { "type": "ret_t", @@ -12933,7 +12961,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件的可见性(不触发repaint和relayout)。\n\n\n", + "desc": " 设置控件的可见性(不触发repaint和relayout)。\r\n\r\n", "name": "widget_set_visible_only", "return": { "type": "ret_t", @@ -12956,7 +12984,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件是否接受用户事件。\n\n\n", + "desc": " 设置控件是否接受用户事件。\r\n\r\n", "name": "widget_set_sensitive", "return": { "type": "ret_t", @@ -12989,13 +13017,51 @@ "annotation": { "scriptable": "custom" }, - "desc": " 注册指定事件的处理函数。\n 使用示例:\n\n ```c\n widget_t* ok = button_create(win, 10, 10, 80, 30);\n widget_on(ok, EVT_CLICK, on_click, NULL);\n\n ```\n\n\n", + "desc": " 注册指定事件的处理函数。\r\n 使用示例:\r\n\r\n ```c\r\n widget_t* ok = button_create(win, 10, 10, 80, 30);\r\n widget_on(ok, EVT_CLICK, on_click, NULL);\r\n\r\n ```\r\n\r\n", "name": "widget_on", "return": { "type": "int32_t", "desc": "返回id,用于widget_off。" } }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "控件对象。" + }, + { + "type": "uint32_t", + "name": "type", + "desc": "事件类型。" + }, + { + "type": "event_func_t", + "name": "on_event", + "desc": "事件处理函数。" + }, + { + "type": "void*", + "name": "ctx", + "desc": "事件处理函数上下文。" + }, + { + "type": "uint32_t", + "name": "tag", + "desc": "tag。" + } + ], + "annotation": { + "scriptable": "custom" + }, + "desc": " 注册指定tag的事件处理函数。\r\n\r\n > 注册时指定一个tag,可用widget\\_off\\_by\\_tag注销相同tag的事件处理函数。\r\n\r\n\r\n", + "name": "widget_on_with_tag", + "return": { + "type": "int32_t", + "desc": "返回id,用于widget_off。" + } + }, { "params": [ { @@ -13012,7 +13078,7 @@ "annotation": { "scriptable": true }, - "desc": " 注销指定事件的处理函数。\n\n\n", + "desc": " 注销指定事件的处理函数。\r\n\r\n", "name": "widget_off", "return": { "type": "ret_t", @@ -13048,7 +13114,7 @@ } ], "annotation": {}, - "desc": " 为指定名称的子控件注册指定事件的处理函数。\n 递归查找指定名称的子控件,然后为其注册指定事件的处理函数。\n\n\n", + "desc": " 为指定名称的子控件注册指定事件的处理函数。\r\n 递归查找指定名称的子控件,然后为其注册指定事件的处理函数。\r\n\r\n", "name": "widget_child_on", "return": { "type": "int32_t", @@ -13079,13 +13145,55 @@ } ], "annotation": {}, - "desc": " 注销指定事件的处理函数。\n 仅用于辅助实现脚本绑定。\n\n\n", + "desc": " 注销指定函数的事件处理函数。\r\n\r\n", "name": "widget_off_by_func", "return": { "type": "ret_t", "desc": "返回RET_OK表示成功,否则表示失败。" } }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "控件对象。" + }, + { + "type": "void*", + "name": "ctx", + "desc": "事件处理函数上下文。" + } + ], + "annotation": {}, + "desc": " 注销指定ctx的事件处理函数。\r\n\r\n", + "name": "widget_off_by_ctx", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "控件对象。" + }, + { + "type": "uint32_t", + "name": "tag", + "desc": "tag。" + } + ], + "annotation": {}, + "desc": " 注销指定tag的事件处理函数。\r\n\r\n", + "name": "widget_off_by_tag", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, { "params": [ { @@ -13100,7 +13208,7 @@ } ], "annotation": {}, - "desc": " 请求重绘指定的区域,如果widget->dirty已经为TRUE,直接返回。\n\n\n", + "desc": " 请求重绘指定的区域,如果widget->dirty已经为TRUE,直接返回。\r\n\r\n", "name": "widget_invalidate", "return": { "type": "ret_t", @@ -13123,7 +13231,7 @@ "annotation": { "scriptable": true }, - "desc": " 请求强制重绘控件。\n\n\n", + "desc": " 请求强制重绘控件。\r\n\r\n", "name": "widget_invalidate_force", "return": { "type": "ret_t", @@ -13146,7 +13254,7 @@ "annotation": { "private": true }, - "desc": " 绘制控件到一个canvas上。\n\n\n", + "desc": " 绘制控件到一个canvas上。\r\n\r\n", "name": "widget_paint", "return": { "type": "ret_t", @@ -13167,7 +13275,7 @@ } ], "annotation": {}, - "desc": " 分发一个事件。\n\n\n", + "desc": " 分发一个事件。\r\n\r\n", "name": "widget_dispatch", "return": { "type": "ret_t", @@ -13193,7 +13301,7 @@ } ], "annotation": {}, - "desc": " 获取控件指定属性的值。\n\n\n", + "desc": " 获取控件指定属性的值。\r\n\r\n", "name": "widget_get_prop", "return": { "type": "ret_t", @@ -13219,7 +13327,7 @@ } ], "annotation": {}, - "desc": " 获取控件指定属性的缺省值(在持久化控件时,无需保存缺省值)。\n\n\n", + "desc": " 获取控件指定属性的缺省值(在持久化控件时,无需保存缺省值)。\r\n\r\n", "name": "widget_get_prop_default_value", "return": { "type": "ret_t", @@ -13245,7 +13353,7 @@ } ], "annotation": {}, - "desc": " 设置控件指定属性的值。\n\n\n", + "desc": " 设置控件指定属性的值。\r\n\r\n", "name": "widget_set_prop", "return": { "type": "ret_t", @@ -13273,7 +13381,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置字符串格式的属性。\n\n\n", + "desc": " 设置字符串格式的属性。\r\n\r\n", "name": "widget_set_prop_str", "return": { "type": "ret_t", @@ -13301,7 +13409,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取字符串格式的属性。\n\n\n", + "desc": " 获取字符串格式的属性。\r\n\r\n", "name": "widget_get_prop_str", "return": { "type": "const char*", @@ -13327,7 +13435,7 @@ } ], "annotation": {}, - "desc": " 设置指针格式的属性。\n\n\n", + "desc": " 设置指针格式的属性。\r\n\r\n", "name": "widget_set_prop_pointer", "return": { "type": "ret_t", @@ -13348,7 +13456,7 @@ } ], "annotation": {}, - "desc": " 获取指针格式的属性。\n\n\n", + "desc": " 获取指针格式的属性。\r\n\r\n", "name": "widget_get_prop_pointer", "return": { "type": "void*", @@ -13376,7 +13484,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置整数格式的属性。\n\n\n", + "desc": " 设置整数格式的属性。\r\n\r\n", "name": "widget_set_prop_int", "return": { "type": "ret_t", @@ -13404,7 +13512,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取整数格式的属性。\n\n\n", + "desc": " 获取整数格式的属性。\r\n\r\n", "name": "widget_get_prop_int", "return": { "type": "int32_t", @@ -13432,7 +13540,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置布尔格式的属性。\n\n\n", + "desc": " 设置布尔格式的属性。\r\n\r\n", "name": "widget_set_prop_bool", "return": { "type": "ret_t", @@ -13460,7 +13568,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取布尔格式的属性。\n\n\n", + "desc": " 获取布尔格式的属性。\r\n\r\n", "name": "widget_get_prop_bool", "return": { "type": "bool_t", @@ -13478,7 +13586,7 @@ "annotation": { "scriptable": true }, - "desc": " 判断当前控件所在的窗口是否已经打开。\n\n\n", + "desc": " 判断当前控件所在的窗口是否已经打开。\r\n\r\n", "name": "widget_is_window_opened", "return": { "type": "bool_t", @@ -13496,7 +13604,7 @@ "annotation": { "scriptable": true }, - "desc": " 判断当前控件是否是窗口。\n\n\n", + "desc": " 判断当前控件是否是窗口。\r\n\r\n", "name": "widget_is_window", "return": { "type": "bool_t", @@ -13514,7 +13622,7 @@ "annotation": { "scriptable": true }, - "desc": " 判断当前控件是否是设计窗口。\n\n\n", + "desc": " 判断当前控件是否是设计窗口。\r\n\r\n", "name": "widget_is_designing_window", "return": { "type": "bool_t", @@ -13532,7 +13640,7 @@ "annotation": { "scriptable": true }, - "desc": " 判断当前控件是否是窗口管理器。\n\n\n", + "desc": " 判断当前控件是否是窗口管理器。\r\n\r\n", "name": "widget_is_window_manager", "return": { "type": "bool_t", @@ -13553,7 +13661,7 @@ } ], "annotation": {}, - "desc": " 让指定子控件抓住事件。\n 控件抓住之后,事件直接分发给该控件。\n\n\n", + "desc": " 让指定子控件抓住事件。\r\n 控件抓住之后,事件直接分发给该控件。\r\n\r\n", "name": "widget_grab", "return": { "type": "ret_t", @@ -13574,7 +13682,7 @@ } ], "annotation": {}, - "desc": " 让指定子控件放弃抓住事件。\n\n\n", + "desc": " 让指定子控件放弃抓住事件。\r\n\r\n", "name": "widget_ungrab", "return": { "type": "ret_t", @@ -13602,7 +13710,7 @@ "annotation": { "scriptable": "custom" }, - "desc": " 遍历当前控件及子控件。\n\n\n", + "desc": " 遍历当前控件及子控件。\r\n\r\n", "name": "widget_foreach", "return": { "type": "ret_t", @@ -13620,7 +13728,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取当前控件所在的窗口。\n\n\n", + "desc": " 获取当前控件所在的窗口。\r\n\r\n", "name": "widget_get_window", "return": { "type": "widget_t*", @@ -13638,7 +13746,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取当前的窗口管理器。\n\n\n", + "desc": " 获取当前的窗口管理器。\r\n\r\n", "name": "widget_get_window_manager", "return": { "type": "widget_t*", @@ -13656,7 +13764,7 @@ "annotation": { "scriptable": true }, - "desc": " 获取当前控件的类型名称。\n\n\n", + "desc": " 获取当前控件的类型名称。\r\n\r\n", "name": "widget_get_type", "return": { "type": "char*", @@ -13679,7 +13787,7 @@ "annotation": { "scriptable": true }, - "desc": " clone。\n\n\n", + "desc": " clone。\r\n\r\n", "name": "widget_clone", "return": { "type": "widget_t*", @@ -13702,7 +13810,7 @@ "annotation": { "scriptable": true }, - "desc": " 判断两个widget是否相同。\n\n\n", + "desc": " 判断两个widget是否相同。\r\n\r\n", "name": "widget_equal", "return": { "type": "bool_t", @@ -13728,7 +13836,7 @@ } ], "annotation": {}, - "desc": " 创建定时器。\n 该定时器在控件销毁时自动销毁,**timer\\_info\\_t**的ctx为widget。\n 如果定时器的生命周期与控件无关,请直接调用**timer_add**,以避免不必要的内存开销。\n\n 使用示例:\n\n ```c\n static ret_t digit_clock_on_timer(const timer_info_t* info) {\n widget_t* widget = WIDGET(info->ctx);\n\n return RET_REPEAT;\n }\n ...\n widget_add_timer(widget, digit_clock_on_timer, 1000);\n\n ```\n\n\n", + "desc": " 创建定时器。\r\n 该定时器在控件销毁时自动销毁,**timer\\_info\\_t**的ctx为widget。\r\n 如果定时器的生命周期与控件无关,请直接调用**timer_add**,以避免不必要的内存开销。\r\n\r\n 使用示例:\r\n\r\n ```c\r\n static ret_t digit_clock_on_timer(const timer_info_t* info) {\r\n widget_t* widget = WIDGET(info->ctx);\r\n\r\n return RET_REPEAT;\r\n }\r\n ...\r\n widget_add_timer(widget, digit_clock_on_timer, 1000);\r\n\r\n ```\r\n\r\n", "name": "widget_add_timer", "return": { "type": "uint32_t", @@ -13749,7 +13857,7 @@ } ], "annotation": {}, - "desc": " 创建idle。\n 该idle在控件销毁时自动销毁,**idle\\_info\\_t**的ctx为widget。\n 如果idle的生命周期与控件无关,请直接调用**idle_add**,以避免不必要的内存开销。\n\n\n", + "desc": " 创建idle。\r\n 该idle在控件销毁时自动销毁,**idle\\_info\\_t**的ctx为widget。\r\n 如果idle的生命周期与控件无关,请直接调用**idle_add**,以避免不必要的内存开销。\r\n\r\n", "name": "widget_add_idle", "return": { "type": "uint32_t", @@ -13775,7 +13883,7 @@ } ], "annotation": {}, - "desc": " 加载图片。\n 返回的bitmap对象只在当前调用有效,请不保存对bitmap对象的引用。\n\n\n 使用示例:\n\n ```c\n bitmap_t bitmap;\n widget_load_image(widget, \"myimage\", &bitmap);\n\n ```\n\n\n", + "desc": " 加载图片。\r\n 返回的bitmap对象只在当前调用有效,请不保存对bitmap对象的引用。\r\n\r\n\r\n 使用示例:\r\n\r\n ```c\r\n bitmap_t bitmap;\r\n widget_load_image(widget, \"myimage\", &bitmap);\r\n\r\n ```\r\n\r\n", "name": "widget_load_image", "return": { "type": "ret_t", @@ -13796,7 +13904,7 @@ } ], "annotation": {}, - "desc": " 卸载图片。\n\n> 一般不需要调用,只有确认在图片不再需要时才调用本函数卸载。\n\n\n\n", + "desc": " 卸载图片。\r\n\r\n> 一般不需要调用,只有确认在图片不再需要时才调用本函数卸载。\r\n\r\n\r\n", "name": "widget_unload_image", "return": { "type": "ret_t", @@ -13822,7 +13930,7 @@ } ], "annotation": {}, - "desc": " 加载资源。\n\n 使用示例:\n\n ```c\n const asset_info_t* asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, \"mysvg\");\n ...\n widget_unload_asset(widget, asset);\n ```\n\n\n", + "desc": " 加载资源。\r\n\r\n 使用示例:\r\n\r\n ```c\r\n const asset_info_t* asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, \"mysvg\");\r\n ...\r\n widget_unload_asset(widget, asset);\r\n ```\r\n\r\n", "name": "widget_load_asset", "return": { "type": "const asset_info_t*", @@ -13843,7 +13951,7 @@ } ], "annotation": {}, - "desc": " 卸载资源。\n\n 使用示例:\n\n ```c\n const asset_info_t* asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, \"mysvg\");\n ...\n widget_unload_asset(widget, asset);\n ```\n\n\n", + "desc": " 卸载资源。\r\n\r\n 使用示例:\r\n\r\n ```c\r\n const asset_info_t* asset = widget_load_asset(widget, ASSET_TYPE_IMAGE, \"mysvg\");\r\n ...\r\n widget_unload_asset(widget, asset);\r\n ```\r\n\r\n", "name": "widget_unload_asset", "return": { "type": "ret_t", @@ -13862,7 +13970,7 @@ "cast": true, "scriptable": true }, - "desc": " 转换为widget对象(供脚本语言使用)。\n\n\n", + "desc": " 转换为widget对象(供脚本语言使用)。\r\n\r\n", "name": "widget_cast", "return": { "type": "widget_t*", @@ -13880,7 +13988,7 @@ "annotation": { "scriptable": true }, - "desc": " 销毁控件。\n 一般无需直接调用,关闭窗口时,自动销毁相关控件。\n\n\n", + "desc": " 销毁控件。\r\n 一般无需直接调用,关闭窗口时,自动销毁相关控件。\r\n\r\n", "name": "widget_destroy", "return": { "type": "ret_t", @@ -13898,7 +14006,7 @@ "annotation": { "private": true }, - "desc": " 判断当前控件是否是keyboard。\n\n> keyboard收到pointer事件时,不会让当前控件失去焦点。\n\n 在自定义软键盘时,将所有按钮放到一个容器当中,并设置为is_keyboard。\n\n ```c\n widget_set_prop_bool(group, WIDGET_PROP_IS_KEYBOARD, TRUE);\n ```\n\n\n\n", + "desc": " 判断当前控件是否是keyboard。\r\n\r\n> keyboard收到pointer事件时,不会让当前控件失去焦点。\r\n\r\n 在自定义软键盘时,将所有按钮放到一个容器当中,并设置为is_keyboard。\r\n\r\n ```c\r\n widget_set_prop_bool(group, WIDGET_PROP_IS_KEYBOARD, TRUE);\r\n ```\r\n\r\n\r\n", "name": "widget_is_keyboard", "return": { "type": "ret_t", @@ -13931,7 +14039,7 @@ "annotation": { "private": true }, - "desc": " 帮助子控件实现自己的绘制函数。\n\n\n", + "desc": " 帮助子控件实现自己的绘制函数。\r\n\r\n", "name": "widget_paint_helper", "return": { "type": "ret_t", @@ -13959,7 +14067,7 @@ "annotation": { "private": true }, - "desc": " 根据控件的style绘制边框矩形。\n\n\n", + "desc": " 根据控件的style绘制边框矩形。\r\n\r\n", "name": "widget_stroke_border_rect", "return": { "type": "ret_t", @@ -13992,7 +14100,7 @@ "annotation": { "private": true }, - "desc": " 根据控件的style绘制背景矩形。\n\n\n", + "desc": " 根据控件的style绘制背景矩形。\r\n\r\n", "name": "widget_fill_bg_rect", "return": { "type": "ret_t", @@ -14025,7 +14133,7 @@ "annotation": { "private": true }, - "desc": " 根据控件的style绘制前景矩形。\n\n\n", + "desc": " 根据控件的style绘制前景矩形。\r\n\r\n", "name": "widget_fill_fg_rect", "return": { "type": "ret_t", @@ -14048,7 +14156,7 @@ "annotation": { "private": true }, - "desc": " 从widget的style中取出字体名称、大小和颜色数据,设置到canvas中。\n\n\n\n", + "desc": " 从widget的style中取出字体名称、大小和颜色数据,设置到canvas中。\r\n\r\n\r\n", "name": "widget_prepare_text_style", "return": { "type": "ret_t", @@ -14071,7 +14179,7 @@ "annotation": { "private": true }, - "desc": " 计算文本的宽度。\n 字体由控件当前的状态和style决定。\n\n\n", + "desc": " 计算文本的宽度。\r\n 字体由控件当前的状态和style决定。\r\n\r\n", "name": "widget_measure_text", "return": { "type": "float_t", @@ -14094,7 +14202,7 @@ "annotation": { "private": true }, - "desc": " 递归分发事件到targe控件。\n\n\n", + "desc": " 递归分发事件到targe控件。\r\n\r\n", "name": "widget_dispatch_event_to_target_recursive", "return": { "type": "ret_t", @@ -14127,7 +14235,7 @@ "annotation": { "private": true }, - "desc": " 判断一个点是否在控件内。\n\n\n", + "desc": " 判断一个点是否在控件内。\r\n\r\n", "name": "widget_is_point_in", "return": { "type": "bool_t", @@ -14150,7 +14258,7 @@ "annotation": { "private": true }, - "desc": " 递归的分发一个事件到所有target子控件。\n\n\n", + "desc": " 递归的分发一个事件到所有target子控件。\r\n\r\n", "name": "widget_dispatch_to_target", "return": { "type": "ret_t", @@ -14173,7 +14281,7 @@ "annotation": { "private": true }, - "desc": " 递归的分发一个事件到所有key_target子控件。\n\n\n", + "desc": " 递归的分发一个事件到所有key_target子控件。\r\n\r\n", "name": "widget_dispatch_to_key_target", "return": { "type": "ret_t", @@ -14201,7 +14309,7 @@ "annotation": { "private": true }, - "desc": " 查找x/y坐标对应的子控件。\n\n\n", + "desc": " 查找x/y坐标对应的子控件。\r\n\r\n", "name": "widget_find_target", "return": { "type": "widget*", @@ -14219,7 +14327,7 @@ "annotation": { "private": true }, - "desc": " 语言改变后,重新翻译控件上的文本(包括子控件)。\n\n\n", + "desc": " 语言改变后,重新翻译控件上的文本(包括子控件)。\r\n\r\n", "name": "widget_re_translate_text", "return": { "type": "ret_t", @@ -14267,7 +14375,7 @@ "annotation": { "private": true }, - "desc": " 初始化控件。仅在子类控件构造函数中使用。\n\n > 请用widget\\_create代替本函数。\n\n @depreated\n\n\n", + "desc": " 初始化控件。仅在子类控件构造函数中使用。\r\n\r\n > 请用widget\\_create代替本函数。\r\n\r\n @depreated\r\n\r\n", "name": "widget_init", "return": { "type": "widget_t*", @@ -14310,7 +14418,7 @@ "annotation": { "private": true }, - "desc": " 创建控件。仅在子类控件构造函数中使用。\n\n\n", + "desc": " 创建控件。仅在子类控件构造函数中使用。\r\n\r\n", "name": "widget_create", "return": { "type": "widget_t*", @@ -14328,7 +14436,7 @@ "annotation": { "private": true }, - "desc": " 让控件根据自己当前状态更新style。\n\n\n", + "desc": " 让控件根据自己当前状态更新style。\r\n\r\n", "name": "widget_update_style", "return": { "type": "ret_t", @@ -14346,7 +14454,7 @@ "annotation": { "private": true }, - "desc": " 递归的把父控件的key_target设置为自己。\n\n\n\n", + "desc": " 递归的把父控件的key_target设置为自己。\r\n\r\n\r\n", "name": "widget_set_as_key_target", "return": { "type": "ret_t", @@ -14364,7 +14472,7 @@ "annotation": { "private": true }, - "desc": " 把焦点移动下一个控件。\n\n>widget必须是当前焦点控件。\n\n\n", + "desc": " 把焦点移动下一个控件。\r\n\r\n>widget必须是当前焦点控件。\r\n\r\n", "name": "widget_focus_next", "return": { "type": "ret_t", @@ -14382,7 +14490,7 @@ "annotation": { "private": true }, - "desc": " 把焦点移动前一个控件。\n\n>widget必须是当前焦点控件。\n\n\n", + "desc": " 把焦点移动前一个控件。\r\n\r\n>widget必须是当前焦点控件。\r\n\r\n", "name": "widget_focus_prev", "return": { "type": "ret_t", @@ -14410,7 +14518,7 @@ "annotation": { "private": true }, - "desc": " 把控件的状态转成获取style选要的状态,一般只在子类中使用。\n\n\n", + "desc": " 把控件的状态转成获取style选要的状态,一般只在子类中使用。\r\n\r\n", "name": "widget_get_state_for_style", "return": { "type": "const char*", @@ -14428,7 +14536,7 @@ "annotation": { "scriptable": true }, - "desc": " 布局当前控件及子控件。\n\n\n", + "desc": " 布局当前控件及子控件。\r\n\r\n", "name": "widget_layout", "return": { "type": "ret_t", @@ -14444,7 +14552,7 @@ } ], "annotation": {}, - "desc": " layout子控件。\n\n\n", + "desc": " layout子控件。\r\n\r\n", "name": "widget_layout_children", "return": { "type": "ret_t", @@ -14467,7 +14575,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件自己的布局参数。\n\n\n", + "desc": " 设置控件自己的布局参数。\r\n\r\n", "name": "widget_set_self_layout", "return": { "type": "ret_t", @@ -14490,7 +14598,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置子控件的布局参数。\n\n\n", + "desc": " 设置子控件的布局参数。\r\n\r\n", "name": "widget_set_children_layout", "return": { "type": "ret_t", @@ -14528,7 +14636,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置控件自己的布局(缺省布局器)参数(过时,请用widget\\_set\\_self\\_layout)。\n\n\n", + "desc": " 设置控件自己的布局(缺省布局器)参数(过时,请用widget\\_set\\_self\\_layout)。\r\n\r\n", "name": "widget_set_self_layout_params", "return": { "type": "ret_t", @@ -14556,7 +14664,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置整数类型的style。\n\n\n", + "desc": " 设置整数类型的style。\r\n\r\n", "name": "widget_set_style_int", "return": { "type": "ret_t", @@ -14584,7 +14692,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置字符串类型的style。\n\n\n", + "desc": " 设置字符串类型的style。\r\n\r\n", "name": "widget_set_style_str", "return": { "type": "ret_t", @@ -14612,7 +14720,7 @@ "annotation": { "scriptable": true }, - "desc": " 设置颜色类型的style。\n\n\n", + "desc": " 设置颜色类型的style。\r\n\r\n", "name": "widget_set_style_color", "return": { "type": "ret_t", @@ -14622,7 +14730,7 @@ { "params": [], "annotation": {}, - "desc": " 获取canvas对象。\n\n\n", + "desc": " 获取canvas对象。\r\n\r\n", "name": "widget_get_canvas", "return": { "type": "canvas_t*", @@ -14633,119 +14741,119 @@ "events": [ { "name": "EVT_WILL_MOVE", - "desc": " 控件移动前触发。\n\n", + "desc": " 控件移动前触发。\r\n", "type": "event_t" }, { "name": "EVT_MOVE", - "desc": " 控件移动后触发。\n\n", + "desc": " 控件移动后触发。\r\n", "type": "event_t" }, { "name": "EVT_WILL_RESIZE", - "desc": " 控件调整大小前触发。\n\n", + "desc": " 控件调整大小前触发。\r\n", "type": "event_t" }, { "name": "EVT_RESIZE", - "desc": " 控件调整大小后触发。\n\n", + "desc": " 控件调整大小后触发。\r\n", "type": "event_t" }, { "name": "EVT_WILL_MOVE_RESIZE", - "desc": " 控件移动并调整大小前触发。\n\n", + "desc": " 控件移动并调整大小前触发。\r\n", "type": "event_t" }, { "name": "EVT_MOVE_RESIZE", - "desc": " 控件移动并调整大小后触发。\n\n", + "desc": " 控件移动并调整大小后触发。\r\n", "type": "event_t" }, { "name": "EVT_PROP_WILL_CHANGE", - "desc": " 控件属性改变前触发(通过set_prop设置属性,才会触发)。\n\n", + "desc": " 控件属性改变前触发(通过set_prop设置属性,才会触发)。\r\n", "type": "prop_change_event_t" }, { "name": "EVT_PROP_CHANGED", - "desc": " 控件属性改变后触发(通过set_prop设置属性,才会触发)。\n\n", + "desc": " 控件属性改变后触发(通过set_prop设置属性,才会触发)。\r\n", "type": "prop_change_event_t" }, { "name": "EVT_BEFORE_PAINT", - "desc": " 控件绘制前触发。\n\n", + "desc": " 控件绘制前触发。\r\n", "type": "paint_event_t" }, { "name": "EVT_AFTER_PAINT", - "desc": " 控件绘制完成时触发。\n\n", + "desc": " 控件绘制完成时触发。\r\n", "type": "paint_event_t" }, { "name": "EVT_FOCUS", - "desc": " 控件得到焦点时触发。\n\n", + "desc": " 控件得到焦点时触发。\r\n", "type": "event_t" }, { "name": "EVT_BLUR", - "desc": " 控件失去焦点时触发。\n\n", + "desc": " 控件失去焦点时触发。\r\n", "type": "event_t" }, { "name": "EVT_WHEEL", - "desc": " 鼠标滚轮事件。\n\n", + "desc": " 鼠标滚轮事件。\r\n", "type": "wheel_event_t" }, { "name": "EVT_POINTER_LEAVE", - "desc": " 鼠标指针离开控件时触发。\n\n", + "desc": " 鼠标指针离开控件时触发。\r\n", "type": "pointer_event_t" }, { "name": "EVT_POINTER_ENTER", - "desc": " 鼠标指针进入控件时触发。\n\n", + "desc": " 鼠标指针进入控件时触发。\r\n", "type": "pointer_event_t" }, { "name": "EVT_KEY_DOWN", - "desc": " 键按下事件。\n\n", + "desc": " 键按下事件。\r\n", "type": "pointer_event_t" }, { "name": "EVT_KEY_UP", - "desc": " 键释放事件。\n\n", + "desc": " 键释放事件。\r\n", "type": "pointer_event_t" }, { "name": "EVT_POINTER_DOWN", - "desc": " 指针设备按下事件。\n\n", + "desc": " 指针设备按下事件。\r\n", "type": "pointer_event_t" }, { "name": "EVT_POINTER_DOWN_ABORT", - "desc": " 取消指针设备按下事件。\n\n", + "desc": " 取消指针设备按下事件。\r\n", "type": "pointer_event_t" }, { "name": "EVT_POINTER_MOVE", - "desc": " 指针设备移动事件。\n\n", + "desc": " 指针设备移动事件。\r\n", "type": "pointer_event_t" }, { "name": "EVT_POINTER_UP", - "desc": " 指针设备释放事件。\n\n", + "desc": " 指针设备释放事件。\r\n", "type": "pointer_event_t" }, { "name": "EVT_DESTROY", - "desc": " 控件销毁时触发。\n\n", + "desc": " 控件销毁时触发。\r\n", "type": "event_t" } ], "properties": [ { "name": "x", - "desc": " x坐标(相对于父控件的x坐标)。\n\n", + "desc": " x坐标(相对于父控件的x坐标)。\r\n", "type": "xy_t", "annotation": { "set_prop": true, @@ -14758,7 +14866,7 @@ }, { "name": "y", - "desc": " y坐标(相对于父控件的y坐标)。\n\n", + "desc": " y坐标(相对于父控件的y坐标)。\r\n", "type": "xy_t", "annotation": { "set_prop": true, @@ -14771,7 +14879,7 @@ }, { "name": "w", - "desc": " 宽度。\n\n", + "desc": " 宽度。\r\n", "type": "wh_t", "annotation": { "set_prop": true, @@ -14784,7 +14892,7 @@ }, { "name": "h", - "desc": " 高度。\n\n", + "desc": " 高度。\r\n", "type": "wh_t", "annotation": { "set_prop": true, @@ -14797,7 +14905,7 @@ }, { "name": "name", - "desc": " 控件名字。\n\n", + "desc": " 控件名字。\r\n", "type": "char*", "annotation": { "set_prop": true, @@ -14810,7 +14918,7 @@ }, { "name": "tr_text", - "desc": " 保存用于翻译的字符串。\n\n", + "desc": " 保存用于翻译的字符串。\r\n", "type": "char*", "annotation": { "set_prop": true, @@ -14823,7 +14931,7 @@ }, { "name": "style", - "desc": " style的名称。\n\n", + "desc": " style的名称。\r\n", "type": "char*", "annotation": { "set_prop": true, @@ -14836,7 +14944,7 @@ }, { "name": "animation", - "desc": " 动画参数。请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\n\n", + "desc": " 动画参数。请参考[控件动画](https://github.com/zlgopen/awtk/blob/master/docs/widget_animator.md)\r\n", "type": "char*", "annotation": { "set_prop": true, @@ -14849,7 +14957,7 @@ }, { "name": "enable", - "desc": " 启用/禁用状态。\n\n", + "desc": " 启用/禁用状态。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -14862,7 +14970,7 @@ }, { "name": "feedback", - "desc": " 是否启用按键音、触屏音和震动等反馈。\n\n", + "desc": " 是否启用按键音、触屏音和震动等反馈。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -14875,7 +14983,7 @@ }, { "name": "visible", - "desc": " 是否可见。\n\n", + "desc": " 是否可见。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -14889,7 +14997,7 @@ }, { "name": "sensitive", - "desc": " 是否接受用户事件。\n\n", + "desc": " 是否接受用户事件。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -14903,7 +15011,7 @@ }, { "name": "focusable", - "desc": " 是否支持焦点停留。\n\n", + "desc": " 是否支持焦点停留。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -14917,7 +15025,7 @@ }, { "name": "with_focus_state", - "desc": " 是否支持焦点状态。\n > 如果希望style支持焦点状态,但有不希望焦点停留,可用本属性。\n\n", + "desc": " 是否支持焦点状态。\r\n > 如果希望style支持焦点状态,但有不希望焦点停留,可用本属性。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -14931,7 +15039,7 @@ }, { "name": "focused", - "desc": " 是否得到焦点。\n\n", + "desc": " 是否得到焦点。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -14939,7 +15047,7 @@ }, { "name": "auto_created", - "desc": " 是否由父控件自动创建。\n\n", + "desc": " 是否由父控件自动创建。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -14947,7 +15055,7 @@ }, { "name": "dirty", - "desc": " 标识控件是否需要重绘。\n\n", + "desc": " 标识控件是否需要重绘。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -14955,7 +15063,7 @@ }, { "name": "floating", - "desc": " 标识控件是否启用浮动布局,不受父控件的children_layout的控制。\n\n", + "desc": " 标识控件是否启用浮动布局,不受父控件的children_layout的控制。\r\n", "type": "bool_t", "annotation": { "set_prop": true, @@ -14968,7 +15076,7 @@ }, { "name": "need_relayout_children", - "desc": " 标识控件是否需要重新layout子控件。\n\n", + "desc": " 标识控件是否需要重新layout子控件。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -14976,7 +15084,7 @@ }, { "name": "need_update_style", - "desc": " 标识控件是否需要update style。\n\n", + "desc": " 标识控件是否需要update style。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -14984,7 +15092,7 @@ }, { "name": "can_not_destroy", - "desc": " 标识控件目前不能被销毁(比如正在分发事件),如果此时调用widget\\_destroy,自动异步处理。\n\n", + "desc": " 标识控件目前不能被销毁(比如正在分发事件),如果此时调用widget\\_destroy,自动异步处理。\r\n", "type": "uint16_t", "annotation": { "readable": true @@ -14992,7 +15100,7 @@ }, { "name": "initializing", - "desc": " 标识控件正在初始化。\n\n", + "desc": " 标识控件正在初始化。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -15000,7 +15108,7 @@ }, { "name": "destroying", - "desc": " 标识控件正在被销毁。\n\n", + "desc": " 标识控件正在被销毁。\r\n", "type": "bool_t", "annotation": { "readable": true @@ -15008,7 +15116,7 @@ }, { "name": "state", - "desc": " 控件的状态(取值参考widget_state_t)。\n\n", + "desc": " 控件的状态(取值参考widget_state_t)。\r\n", "type": "uint8_t", "annotation": { "readable": true @@ -15016,7 +15124,7 @@ }, { "name": "opacity", - "desc": " 不透明度(0-255),0完全透明,255完全不透明。\n\n", + "desc": " 不透明度(0-255),0完全透明,255完全不透明。\r\n", "type": "uint8_t", "annotation": { "readable": true @@ -15024,7 +15132,7 @@ }, { "name": "text", - "desc": " 文本。用途视具体情况而定。\n\n", + "desc": " 文本。用途视具体情况而定。\r\n", "type": "wstr_t", "annotation": { "readable": true @@ -15032,7 +15140,7 @@ }, { "name": "parent", - "desc": " 父控件\n\n", + "desc": " 父控件\r\n", "type": "widget_t*", "annotation": { "readable": true @@ -15040,7 +15148,7 @@ }, { "name": "target", - "desc": " 接收事件的子控件。\n\n", + "desc": " 接收事件的子控件。\r\n", "type": "widget_t*", "annotation": { "private": true @@ -15048,7 +15156,7 @@ }, { "name": "grab_widget", - "desc": " grab事件的子控件。\n\n", + "desc": " grab事件的子控件。\r\n", "type": "widget_t*", "annotation": { "private": true @@ -15056,7 +15164,7 @@ }, { "name": "grab_widget_count", - "desc": " 有时子控件和控件自己都会grab widget,所需要grab的计数。\n\n", + "desc": " 有时子控件和控件自己都会grab widget,所需要grab的计数。\r\n", "type": "int32_t", "annotation": { "private": true @@ -15064,7 +15172,7 @@ }, { "name": "key_target", - "desc": " 接收按键事件的子控件。\n\n", + "desc": " 接收按键事件的子控件。\r\n", "type": "widget_t*", "annotation": { "private": true @@ -15072,7 +15180,7 @@ }, { "name": "children", - "desc": " 全部子控件。\n\n", + "desc": " 全部子控件。\r\n", "type": "darray_t*", "annotation": { "readable": true @@ -15080,7 +15188,7 @@ }, { "name": "emitter", - "desc": " 事件发射器。\n\n", + "desc": " 事件发射器。\r\n", "type": "emitter_t*", "annotation": { "readable": true @@ -15088,7 +15196,7 @@ }, { "name": "astyle", - "desc": " Style对象。\n\n", + "desc": " Style对象。\r\n", "type": "style_t*", "annotation": { "readable": true @@ -15096,7 +15204,7 @@ }, { "name": "children_layout", - "desc": " 子控件布局器。请参考[控件布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)\n\n", + "desc": " 子控件布局器。请参考[控件布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)\r\n", "type": "children_layouter_t*", "annotation": { "readable": true, @@ -15106,7 +15214,7 @@ }, { "name": "self_layout", - "desc": " 控件布局器。请参考[控件布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)\n\n", + "desc": " 控件布局器。请参考[控件布局参数](https://github.com/zlgopen/awtk/blob/master/docs/layout.md)\r\n", "type": "self_layouter_t*", "annotation": { "readable": true, @@ -15116,7 +15224,7 @@ }, { "name": "custom_props", - "desc": " 自定义属性。\n\n", + "desc": " 自定义属性。\r\n", "type": "object_t*", "annotation": { "readable": true @@ -15124,7 +15232,7 @@ }, { "name": "vt", - "desc": " 虚函数表。\n\n", + "desc": " 虚函数表。\r\n", "type": "widget_vtable_t", "annotation": { "readable": true @@ -15132,7 +15240,7 @@ } ], "header": "base/widget.h", - "desc": " **widget_t** 是所有控件、窗口和窗口管理器的基类。\n **widget_t**也是一个容器,可放其它**widget_t**到它的内部,形成一个树形结构。\n\n ```graphviz\n [default_style]\n\n widget_t -> widget_t[arrowhead = \"diamond\"]\n window_t -> widget_t[arrowhead = \"empty\"]\n window_manager_t -> widget_t[arrowhead = \"empty\"]\n button_t -> widget_t[arrowhead = \"empty\"]\n label_t -> widget_t[arrowhead = \"empty\"]\n xxx_widget_t -> widget_t[arrowhead = \"empty\"]\n ```\n\n 通常**widget_t**通过一个矩形区域向用户呈现一些信息,接受用户的输入,并据此做出适当的反应。\n 它负责控件的生命周期、通用状态、事件分发和Style的管理。\n 本类提供的接口(函数和属性)除非特别说明,一般都适用于子类控件。\n\n 为了便于解释,这里特别说明一下几个术语:\n\n * **父控件与子控件**:父控件与子控件指的两个控件的组合关系(这是在运行时决定的)。\n 比如:在窗口中放一个按钮,此时,我们称按钮是窗口的子控件,窗口是按钮的父控件。\n\n ```graphviz\n [default_style]\n\n 子控件 -> 父控件[arrowhead = \"ediamond\"]\n ```\n\n * **子类控件与父类控件**:子类控件与父类控件指的两类控件的继承关系(这是在设计时决定的)。\n 比如:我们称**button_t**是**widget_t**的子类控件,**widget_t**是**button_t**的父类控件。\n\n ```graphviz\n [default_style]\n\n 子类控件 -> 父类控件[arrowhead = \"empty\"]\n\n ```\n\n widget相关的函数都只能在GUI线程中执行,如果需在非GUI线程中想调用widget相关函数,\n 请用idle\\_queue或timer\\_queue进行串行化。\n 请参考[demo thread](https://github.com/zlgopen/awtk/blob/master/demos/demo_thread_app.c)\n\n **widget\\_t**是抽象类,不要直接创建**widget\\_t**的实例。控件支持两种创建方式:\n\n * 通过XML创建。如:\n\n ```xml\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": { "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/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": { "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/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": { + "scriptable": true, + "design": true, + "widget": true + }, + "level": 2 + }, { "type": "class", "methods": [ @@ -30025,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", @@ -30250,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": { @@ -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": [ @@ -30434,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": { @@ -30450,122 +31125,69 @@ { "params": [ { - "type": "event_t*", - "name": "event", - "desc": "event对象。" + "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": { - "cast": true, - "scriptable": true + "constructor": true }, - "desc": " 把event对象转prop_change_event_t对象,主要给脚本语言使用。\n\n\n", - "name": "prop_change_event_cast", + "desc": " 创建candidates对象\r\n\r\n", + "name": "candidates_create", "return": { - "type": "prop_change_event_t*", + "type": "widget_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*", + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "candidates对象。" + } + ], "annotation": { - "readable": true, + "cast": true, "scriptable": true + }, + "desc": " 转换为candidates对象(供脚本语言使用)。\r\n\r\n", + "name": "candidates_cast", + "return": { + "type": "widget_t*", + "desc": "candidates对象。" } } ], - "header": "tkc/event.h", - "desc": " 对象属性变化事件。\n\n", - "name": "prop_change_event_t", + "events": [], + "properties": [], + "header": "keyboard/candidates.h", + "desc": " 输入法候选字词控件。\r\n", + "name": "candidates_t", + "parent": "widget_t", "annotation": { - "scriptable": true - }, - "parent": "event_t", - "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 - }, - "desc": " 创建candidates对象\r\n\r\n", - "name": "candidates_create", - "return": { - "type": "widget_t*", - "desc": "对象。" - } - }, - { - "params": [ - { - "type": "widget_t*", - "name": "widget", - "desc": "candidates对象。" - } - ], - "annotation": { - "cast": true, - "scriptable": true - }, - "desc": " 转换为candidates对象(供脚本语言使用)。\r\n\r\n", - "name": "candidates_cast", - "return": { - "type": "widget_t*", - "desc": "candidates对象。" - } - } - ], - "events": [], - "properties": [], - "header": "keyboard/candidates.h", - "desc": " 输入法候选字词控件。\r\n", - "name": "candidates_t", - "parent": "widget_t", - "annotation": { - "widget": true + "widget": true }, "level": 2 }, @@ -30652,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": { @@ -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/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": { @@ -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/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": { @@ -31453,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": { @@ -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/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": { @@ -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/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": { @@ -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": { @@ -32942,75 +33540,24 @@ "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": " 创建list_item对象\r\n\r\n", - "name": "list_item_create", - "return": { - "type": "widget_t*", - "desc": "对象。" - } - }, - { - "params": [ - { - "type": "widget_t*", - "name": "widget", - "desc": "list_item对象。" - } - ], + "params": [], "annotation": { - "cast": true, - "scriptable": true + "constructor": true }, - "desc": " 转换为list_item对象(供脚本语言使用)。\r\n\r\n", - "name": "list_item_cast", + "desc": "\r\n 创建子控件布局对象。\r\n\r\n\r\n", + "name": "children_layouter_list_view_create", "return": { - "type": "widget_t*", - "desc": "list_item对象。" + "type": "children_layouter_t*", + "desc": "返回创建子控件布局对象。" } } ], "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", - "name": "list_item_t", - "parent": "widget_t", - "annotation": { - "scriptable": true, - "design": true, - "widget": true - }, + "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 }, { @@ -33048,8 +33595,8 @@ "constructor": true, "scriptable": true }, - "desc": " 创建list_view_h对象\r\n\r\n", - "name": "list_view_h_create", + "desc": " 创建list_item对象\r\n\r\n", + "name": "list_item_create", "return": { "type": "widget_t*", "desc": "对象。" @@ -33060,99 +33607,174 @@ { "type": "widget_t*", "name": "widget", - "desc": "控件对象。" - }, - { - "type": "int32_t", - "name": "item_width", - "desc": "列表项的宽度。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": " 设置列表项的宽度。\r\n\r\n", - "name": "list_view_h_set_item_width", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "widget_t*", - "name": "widget", - "desc": "控件对象。" - }, - { - "type": "int32_t", - "name": "spacing", - "desc": "列表项的间距。" - } - ], - "annotation": { - "scriptable": true - }, - "desc": " 设置列表项的间距。\r\n\r\n", - "name": "list_view_h_set_spacing", - "return": { - "type": "ret_t", - "desc": "返回RET_OK表示成功,否则表示失败。" - } - }, - { - "params": [ - { - "type": "widget_t*", - "name": "widget", - "desc": "list_view_h对象。" + "desc": "list_item对象。" } ], "annotation": { "cast": true, "scriptable": true }, - "desc": " 转换为list_view_h对象(供脚本语言使用)。\r\n\r\n", - "name": "list_view_h_cast", + "desc": " 转换为list_item对象(供脚本语言使用)。\r\n\r\n", + "name": "list_item_cast", "return": { "type": "widget_t*", - "desc": "list_view_h对象。" + "desc": "list_item对象。" } } ], "events": [], - "properties": [ - { - "name": "item_width", - "desc": " 列表项的宽度。\r\n", - "type": "int32_t", - "annotation": { - "set_prop": true, - "get_prop": true, - "readable": true, - "persitent": true, - "design": true, - "scriptable": true - } - }, - { - "name": "spacing", - "desc": " 间距。\r\n", - "type": "int32_t", - "annotation": { - "set_prop": true, - "get_prop": true, - "readable": true, - "persitent": true, - "design": true, - "scriptable": true - } - } - ], - "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", - "name": "list_view_h_t", + "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/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": { + "scriptable": true, + "design": true, + "widget": true + }, + "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": " 创建list_view_h对象\r\n\r\n", + "name": "list_view_h_create", + "return": { + "type": "widget_t*", + "desc": "对象。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "控件对象。" + }, + { + "type": "int32_t", + "name": "item_width", + "desc": "列表项的宽度。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置列表项的宽度。\r\n\r\n", + "name": "list_view_h_set_item_width", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "控件对象。" + }, + { + "type": "int32_t", + "name": "spacing", + "desc": "列表项的间距。" + } + ], + "annotation": { + "scriptable": true + }, + "desc": " 设置列表项的间距。\r\n\r\n", + "name": "list_view_h_set_spacing", + "return": { + "type": "ret_t", + "desc": "返回RET_OK表示成功,否则表示失败。" + } + }, + { + "params": [ + { + "type": "widget_t*", + "name": "widget", + "desc": "list_view_h对象。" + } + ], + "annotation": { + "cast": true, + "scriptable": true + }, + "desc": " 转换为list_view_h对象(供脚本语言使用)。\r\n\r\n", + "name": "list_view_h_cast", + "return": { + "type": "widget_t*", + "desc": "list_view_h对象。" + } + } + ], + "events": [], + "properties": [ + { + "name": "item_width", + "desc": " 列表项的宽度。\r\n", + "type": "int32_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + }, + { + "name": "spacing", + "desc": " 间距。\r\n", + "type": "int32_t", + "annotation": { + "set_prop": true, + "get_prop": true, + "readable": true, + "persitent": true, + "design": true, + "scriptable": true + } + } + ], + "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/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": { "scriptable": true, @@ -33335,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": { @@ -33707,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": { @@ -34010,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": { @@ -34205,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