diff --git a/demos/demo_ui_old_app.c b/demos/demo_ui_old_app.c index c65c155d5..4b00e25d7 100644 --- a/demos/demo_ui_old_app.c +++ b/demos/demo_ui_old_app.c @@ -28,6 +28,10 @@ #include "base/font_manager.h" #include "base/event_recorder_player.h" +#define SCROLL_BAR_H_WIDGT_NAME "bar_h" +#define SCROLL_BAR_V_WIDGT_NAME "bar_v" +#define SCROLL_GRID_SCROLL_WIDGT_NAME "grid_scroll_view" + static ret_t on_clone_tab(void* ctx, event_t* e); static ret_t widget_clone_tab(widget_t* widget); static void install_click_hander(widget_t* widget); @@ -830,6 +834,49 @@ static ret_t on_action_list(void* ctx, event_t* e) { return RET_OK; } +static int32_t scroll_bar_value_to_scroll_view_offset_y(scroll_bar_t* scroll_bar, + scroll_view_t* sv) { + int32_t range = 0; + float_t percent = 0; + range = scroll_bar->virtual_size; + percent = range > 0 ? (float_t)scroll_bar->value / (float_t)(range) : 0; + return percent * (sv->virtual_h - sv->widget.h); +} + +static int32_t scroll_bar_value_to_scroll_view_offset_x(scroll_bar_t* scroll_bar, + scroll_view_t* sv) { + int32_t range = 0; + float_t percent = 0; + range = scroll_bar->virtual_size; + percent = range > 0 ? (float_t)scroll_bar->value / (float_t)(range) : 0; + return percent * (sv->virtual_w - sv->widget.w); +} + +static ret_t scroll_bar_on_value_changed(void* ctx, event_t* e) { + widget_t* tmp = WIDGET(ctx); + widget_t* parent = tmp->parent; + scroll_view_t* sv = SCROLL_VIEW(widget_lookup(parent, SCROLL_GRID_SCROLL_WIDGT_NAME, FALSE)); + scroll_bar_t* scroll_bar_h = SCROLL_BAR(widget_lookup(parent, SCROLL_BAR_H_WIDGT_NAME, FALSE)); + scroll_bar_t* scroll_bar_v = SCROLL_BAR(widget_lookup(parent, SCROLL_BAR_V_WIDGT_NAME, FALSE)); + + int32_t offset_x = scroll_bar_value_to_scroll_view_offset_x(scroll_bar_h, sv); + int32_t offset_y = scroll_bar_value_to_scroll_view_offset_y(scroll_bar_v, sv); + + scroll_view_set_offset(WIDGET(sv), offset_x, offset_y); + + return RET_OK; +} + +static ret_t on_idle_scroll_view_set_virtual_wh(const idle_info_t* idle) { + scroll_view_t* sv = SCROLL_VIEW(idle->ctx); + widget_t* parent = sv->widget.parent; + widget_t* bar_h = widget_lookup(parent, SCROLL_BAR_H_WIDGT_NAME, FALSE); + widget_t* bar_v = widget_lookup(parent, SCROLL_BAR_V_WIDGT_NAME, FALSE); + scroll_bar_set_params(bar_h, sv->virtual_w, 10); + scroll_bar_set_params(bar_v, sv->virtual_h, 10); + return RET_OK; +} + static ret_t install_one(void* ctx, const void* iter) { widget_t* widget = WIDGET(iter); widget_t* win = widget_get_window(widget); @@ -936,6 +983,12 @@ static ret_t install_one(void* ctx, const void* iter) { widget_on(widget, EVT_CLICK, on_change_cursor, win); } else if (tk_str_eq(name, "ani_interval") && tk_str_eq(widget->vt->type, "image_animation")) { widget_on(widget, EVT_POINTER_DOWN, on_image_animation_set_interval, widget); + } else if (tk_str_eq(name, SCROLL_GRID_SCROLL_WIDGT_NAME)) { + widget_add_idle(widget, on_idle_scroll_view_set_virtual_wh); + } else if (tk_str_eq(name, SCROLL_BAR_H_WIDGT_NAME)) { + widget_on(widget, EVT_VALUE_CHANGED, scroll_bar_on_value_changed, widget); + } else if (tk_str_eq(name, SCROLL_BAR_V_WIDGT_NAME)) { + widget_on(widget, EVT_VALUE_CHANGED, scroll_bar_on_value_changed, widget); } } else if (tk_str_eq(widget->vt->type, "combo_box")) { widget_on(widget, EVT_VALUE_CHANGED, on_combo_box_changed, widget); diff --git a/design/default/ui/grid.xml b/design/default/ui/grid.xml index b7277ebcc..89abbd2cb 100644 --- a/design/default/ui/grid.xml +++ b/design/default/ui/grid.xml @@ -1,33 +1,59 @@ - - + + + + - - + + + + diff --git a/docs/changes.md b/docs/changes.md index 1b3197caa..1beaaa7fb 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -2,6 +2,7 @@ 2022/08/02 * 增加fscript_clean。 + * 增加滚动的grid例子(感谢智明提供补丁) 2022/08/01 * 增加fscript\_find\_func。 diff --git a/res/assets/default/inc/ui/grid.data b/res/assets/default/inc/ui/grid.data index de995d542..62d23b52a 100644 --- a/res/assets/default/inc/ui/grid.data +++ b/res/assets/default/inc/ui/grid.data @@ -1,77 +1,59 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_grid[]) = { -0x04,0x00,0x01,0x01,0xae,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x67,0x72,0x69,0x64,0x00,0x00,0x00,0x00, +0x04,0x00,0x01,0x01,0xba,0x0b,0x00,0x00,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,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,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,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0xec,0xff,0xff, -0xff,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,0x31,0x30,0x2c,0x77,0x3d,0x2d,0x32,0x30, -0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5f,0x64,0x65,0x66,0x69,0x6e, -0x69,0x74,0x69,0x6f,0x6e,0x00,0x63,0x6f,0x6c,0x28,0x77,0x3d,0x30,0x2e,0x34,0x2c,0x6d,0x3d,0x35,0x29, -0x3b,0x63,0x6f,0x6c,0x28,0x77,0x3d,0x30,0x2e,0x33,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x63,0x6f,0x6c,0x28, -0x77,0x3d,0x30,0x2e,0x33,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x00,0x72,0x6f,0x77,0x73,0x00,0x31,0x00,0x73, -0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x67,0x72,0x69,0x64,0x5f,0x63,0x6f,0x6c, -0x6f,0x72,0x00,0x67,0x72,0x61,0x79,0x00,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c, -0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x62,0x6c,0x61,0x63,0x6b,0x00, -0x73,0x68,0x6f,0x77,0x5f,0x67,0x72,0x69,0x64,0x00,0x74,0x72,0x75,0x65,0x00,0x73,0x74,0x79,0x6c,0x65, -0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x62,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x61,0x30, -0x61,0x30,0x61,0x30,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,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,0x5a,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,0x63,0x2c,0x79,0x3d,0x6d,0x2c,0x77,0x3d,0x39,0x30,0x25,0x2c,0x68, +0x3d,0x39,0x30,0x25,0x29,0x00,0x00,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,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,0x0a, +0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0xe2,0xff,0xff,0xff,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,0x31,0x30,0x2c, +0x79,0x3d,0x31,0x30,0x2c,0x77,0x3d,0x2d,0x33,0x30,0x2c,0x68,0x3d,0x2d,0x33,0x30,0x29,0x00,0x6e,0x61, +0x6d,0x65,0x00,0x67,0x72,0x69,0x64,0x5f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x76,0x69,0x65,0x77,0x00, +0x78,0x6f,0x66,0x66,0x73,0x65,0x74,0x00,0x30,0x00,0x79,0x6f,0x66,0x66,0x73,0x65,0x74,0x00,0x30,0x00, +0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f, +0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x30,0x30,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x65,0x78,0x74,0x00,0xe5, -0xa7,0x93,0xe5,0x90,0x8d,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,0x74,0x65,0x78,0x74, -0x00,0xe8,0xaf,0xad,0xe6,0x96,0x87,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,0x74,0x65, -0x78,0x74,0x00,0xe6,0x95,0xb0,0xe5,0xad,0xa6,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,0x0a,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0xec,0xff,0xff,0xff,0xb4,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,0x34,0x30,0x2c,0x77,0x3d,0x2d,0x32,0x30,0x2c,0x68,0x3d,0x31, -0x38,0x30,0x29,0x00,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5f,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69, -0x6f,0x6e,0x00,0x63,0x6f,0x6c,0x28,0x77,0x3d,0x30,0x2e,0x34,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x63,0x6f, -0x6c,0x28,0x77,0x3d,0x30,0x2e,0x33,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x63,0x6f,0x6c,0x28,0x77,0x3d,0x30, -0x2e,0x33,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x00,0x72,0x6f,0x77,0x73,0x00,0x35,0x00,0x73,0x74,0x79,0x6c, -0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x67,0x72,0x69,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00, -0x67,0x72,0x61,0x79,0x00,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x62,0x6f, -0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x62,0x6c,0x61,0x63,0x6b,0x00,0x73,0x74,0x79, -0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x6f,0x64,0x64,0x5f,0x62,0x67,0x5f,0x63,0x6f,0x6c, -0x6f,0x72,0x00,0x23,0x66,0x35,0x66,0x35,0x66,0x35,0x00,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72, -0x6d,0x61,0x6c,0x2e,0x65,0x76,0x65,0x6e,0x5f,0x62,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x65, -0x65,0x65,0x65,0x65,0x65,0x00,0x73,0x68,0x6f,0x77,0x5f,0x67,0x72,0x69,0x64,0x00,0x74,0x72,0x75,0x65, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x1e, +0x00,0x00,0x00,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5f,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f, +0x6e,0x00,0x63,0x6f,0x6c,0x28,0x77,0x3d,0x30,0x2e,0x34,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x63,0x6f,0x6c, +0x28,0x77,0x3d,0x30,0x2e,0x33,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x63,0x6f,0x6c,0x28,0x77,0x3d,0x30,0x2e, +0x33,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x00,0x72,0x6f,0x77,0x73,0x00,0x31,0x00,0x73,0x74,0x79,0x6c,0x65, +0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x67,0x72,0x69,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x67, +0x72,0x61,0x79,0x00,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x62,0x6f,0x72, +0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x62,0x6c,0x61,0x63,0x6b,0x00,0x73,0x68,0x6f,0x77, +0x5f,0x67,0x72,0x69,0x64,0x00,0x74,0x72,0x75,0x65,0x00,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72, +0x6d,0x61,0x6c,0x2e,0x62,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x61,0x30,0x61,0x30,0x61,0x30, 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,0x74,0x65,0x78,0x74,0x00,0xe5,0xbc,0xa0,0xe4,0xb8, -0x89,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,0x74,0x65,0x78,0x74,0x00,0xe5,0xa7,0x93,0xe5,0x90, +0x8d,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,0x74,0x65,0x78,0x74,0x00,0x39,0x38,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,0x74,0x65,0x78,0x74,0x00,0xe8,0xaf,0xad, +0xe6,0x96,0x87,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,0x74,0x65,0x78,0x74,0x00,0x39,0x37,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,0x74,0x65,0x78,0x74,0x00,0xe6, +0x95,0xb0,0xe5,0xad,0xa6,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x65,0x78,0x74,0x00,0xe6,0x9d,0x8e,0xe5,0x9b,0x9b,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,0x74,0x65,0x78,0x74,0x00,0x39,0x38,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,0x74,0x65,0x78,0x74,0x00,0x39,0x37,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,0x74,0x65,0x78,0x74,0x00,0xe7,0x8e,0x8b,0xe4,0xba,0x94,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,0x74,0x65,0x78,0x74,0x00,0x39,0x38,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,0x74,0x65,0x78,0x74,0x00,0x39,0x37,0x00,0x00,0x00,0x6c,0x61,0x62,0x65, +0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x63,0x6f,0x6c, +0x75,0x6d,0x6e,0x73,0x5f,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x00,0x63,0x6f,0x6c,0x28, +0x77,0x3d,0x30,0x2e,0x34,0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x63,0x6f,0x6c,0x28,0x77,0x3d,0x30,0x2e,0x33, +0x2c,0x6d,0x3d,0x35,0x29,0x3b,0x63,0x6f,0x6c,0x28,0x77,0x3d,0x30,0x2e,0x33,0x2c,0x6d,0x3d,0x35,0x29, +0x3b,0x00,0x72,0x6f,0x77,0x73,0x00,0x31,0x30,0x00,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d, +0x61,0x6c,0x2e,0x67,0x72,0x69,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x67,0x72,0x61,0x79,0x00,0x73, +0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63, +0x6f,0x6c,0x6f,0x72,0x00,0x62,0x6c,0x61,0x63,0x6b,0x00,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72, +0x6d,0x61,0x6c,0x2e,0x6f,0x64,0x64,0x5f,0x62,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x66,0x35, +0x66,0x35,0x66,0x35,0x00,0x73,0x74,0x79,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x65,0x76, +0x65,0x6e,0x5f,0x62,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x65,0x65,0x65,0x65,0x65,0x65,0x00, +0x73,0x68,0x6f,0x77,0x5f,0x67,0x72,0x69,0x64,0x00,0x74,0x72,0x75,0x65,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,0x74,0x65,0x78,0x74,0x00,0xe5,0xad,0x99,0xe5,0x85,0xad,0x00,0x00,0x00,0x6c,0x61, +0x00,0x00,0x00,0x00,0x74,0x65,0x78,0x74,0x00,0xe5,0xbc,0xa0,0xe4,0xb8,0x89,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,0x74,0x65,0x78,0x74,0x00,0x39,0x38,0x00,0x00,0x00,0x6c,0x61,0x62,0x65, @@ -80,10 +62,93 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_grid[]) = { 0x00,0x00,0x00,0x00,0x74,0x65,0x78,0x74,0x00,0x39,0x37,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,0x74,0x65,0x78,0x74,0x00,0xe8,0xb5,0xb5,0xe4,0xb8,0x83,0x00,0x00,0x00,0x6c,0x61,0x62,0x65, +0x00,0x00,0x74,0x65,0x78,0x74,0x00,0xe6,0x9d,0x8e,0xe5,0x9b,0x9b,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,0x74,0x65,0x78,0x74,0x00,0x39,0x38,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,0x74,0x65,0x78,0x74,0x00,0x39,0x37,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*1758*/ +0x00,0x00,0x74,0x65,0x78,0x74,0x00,0x39,0x37,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, +0x74,0x65,0x78,0x74,0x00,0xe7,0x8e,0x8b,0xe4,0xba,0x94,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,0x74,0x65,0x78,0x74,0x00,0x39,0x38,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, +0x74,0x65,0x78,0x74,0x00,0x39,0x37,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,0x74,0x65, +0x78,0x74,0x00,0xe5,0xad,0x99,0xe5,0x85,0xad,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, +0x74,0x65,0x78,0x74,0x00,0x39,0x38,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,0x74,0x65, +0x78,0x74,0x00,0x39,0x37,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,0x74,0x65,0x78,0x74, +0x00,0xe8,0xb5,0xb5,0xe4,0xb8,0x83,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,0x74,0x65, +0x78,0x74,0x00,0x39,0x38,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,0x74,0x65,0x78,0x74, +0x00,0x39,0x37,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,0x74,0x65,0x78,0x74,0x00,0xe8, +0xb5,0xb5,0xe5,0x85,0xab,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,0x74,0x65,0x78,0x74, +0x00,0x39,0x38,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,0x74,0x65,0x78,0x74,0x00,0x39, +0x37,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,0x74,0x65,0x78,0x74,0x00,0xe8,0xb5,0xb5, +0xe4,0xb9,0x9d,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,0x74,0x65,0x78,0x74,0x00,0x39, +0x38,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,0x74,0x65,0x78,0x74,0x00,0x39,0x37,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,0x74,0x65,0x78,0x74,0x00,0xe8,0xb5,0xb5,0xe5,0x8d, +0x81,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,0x74,0x65,0x78,0x74,0x00,0x39,0x38,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,0x74,0x65,0x78,0x74,0x00,0x39,0x37,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,0x74,0x65,0x78,0x74,0x00,0xe8,0xb5,0xb5,0xe5,0x8d,0x81,0xe4, +0xb8,0x80,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,0x74,0x65,0x78,0x74,0x00,0x39,0x38, +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,0x74,0x65,0x78,0x74,0x00,0x39,0x37,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,0x74,0x65,0x78,0x74,0x00,0xe8,0xb5,0xb5,0xe5,0x8d,0x81, +0xe4,0xba,0x8c,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,0x74,0x65,0x78,0x74,0x00,0x39, +0x38,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,0x74,0x65,0x78,0x74,0x00,0x39,0x37,0x00, +0x00,0x00,0x00,0x00,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x62,0x61,0x72,0x5f,0x64,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,0xe2,0xff,0xff,0xff,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,0x31,0x30,0x2c,0x79,0x3d,0x62, +0x2c,0x77,0x3d,0x2d,0x33,0x30,0x2c,0x68,0x3d,0x32,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61, +0x72,0x5f,0x68,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x30,0x00,0x00,0x00,0x73,0x63,0x72,0x6f,0x6c,0x6c, +0x5f,0x62,0x61,0x72,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,0x0a,0x00,0x00,0x00,0x14,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,0x72,0x2c,0x79,0x3d,0x31,0x30,0x2c,0x77,0x3d,0x32,0x30,0x2c,0x68,0x3d,0x2d,0x33, +0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61,0x72,0x5f,0x76,0x00,0x76,0x61,0x6c,0x75,0x65,0x00, +0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*3050*/ diff --git a/res/assets/default/raw/ui/grid.bin b/res/assets/default/raw/ui/grid.bin index 5c9897cf1..e30cfe263 100644 Binary files a/res/assets/default/raw/ui/grid.bin and b/res/assets/default/raw/ui/grid.bin differ