improve list view and scroll view

This commit is contained in:
lixianjing 2021-01-25 09:54:04 +08:00
parent 8042567320
commit 867801cc3d
32 changed files with 3019 additions and 1950 deletions

View File

@ -16,6 +16,7 @@ env.Program(os.path.join(BIN_DIR, 'demotr'), ['demo_tr_app.c']);
env.Program(os.path.join(BIN_DIR, 'demo_basic'), ['demo_basic.c']);
env.Program(os.path.join(BIN_DIR, 'demo_thread'), ['demo_thread_app.c']);
env.Program(os.path.join(BIN_DIR, 'demo_animator'), ['demo_animator_app.c']);
env.Program(os.path.join(BIN_DIR, 'demo_scroll_view'), ['demo_scroll_view.c']);
env.Program(os.path.join(BIN_DIR, 'preview_ui'), ['preview_ui.c']);
env.Program(os.path.join(BIN_DIR, 'demo_desktop'), ['demo_desktop.c']);

151
demos/demo_scroll_view.c Normal file
View File

@ -0,0 +1,151 @@
/**
* File: demo_scroll_view.c
* Author: AWTK Develop Team
* Brief: test scroll view
*
* Copyright (c) 2018 - 2021 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:
* ================================================================
* 2021-01-22 Luo ZhiMing <luozhiming@zlg.cn> created
*
*/
#include "awtk.h"
#include "ext_widgets.h"
widget_t* bar_h = NULL;
widget_t* bar_v = NULL;
widget_t* scroll_view = NULL;
#define SCROLL_BAR_H_WIDGT_NAME "bar_h"
#define SCROLL_BAR_V_WIDGT_NAME "bar_v"
#define BUTTON_SET_FOCUSE_STRING "focused:"
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 int32_t scroll_bar_value_from_scroll_view_offset_y(scroll_bar_t* scroll_bar, scroll_view_t* sv) {
int32_t range = 0;
float_t percent = 0;
range = sv->virtual_h - sv->widget.h;
percent = range > 0 ? (float_t)sv->yoffset / (float_t)range : 0;
return percent * scroll_bar->virtual_size;
}
static int32_t scroll_bar_value_from_scroll_view_offset_x(scroll_bar_t* scroll_bar, scroll_view_t* sv) {
int32_t range = 0;
float_t percent = 0;
range = sv->virtual_w - sv->widget.w;
percent = range > 0 ? (float_t)sv->xoffset / (float_t)range : 0;
return percent * scroll_bar->virtual_size;
}
static ret_t scroll_bar_value_changed(void* ctx, event_t* e) {
scroll_view_t* sv = SCROLL_VIEW(scroll_view);
scroll_bar_t* scroll_bar_h = SCROLL_BAR(bar_h);
scroll_bar_t* scroll_bar_v = SCROLL_BAR(bar_v);
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(scroll_view, offset_x, offset_y);
return RET_OK;
}
static ret_t on_set_focuse_item(void* ctx, event_t* e) {
const char* name = (const char*)ctx;
if (name != NULL) {
widget_t* item = widget_lookup(scroll_view, name, TRUE);
widget_set_focused(item, TRUE);
}
return RET_OK;
}
static ret_t scroll_view_offset_changed(void* ctx, event_t* e) {
scroll_view_t* sv = SCROLL_VIEW(scroll_view);
scroll_bar_t* scroll_bar_h = SCROLL_BAR(bar_h);
scroll_bar_t* scroll_bar_v = SCROLL_BAR(bar_v);
int32_t value_x = scroll_bar_value_from_scroll_view_offset_x(scroll_bar_h, sv);
int32_t value_y = scroll_bar_value_from_scroll_view_offset_y(scroll_bar_v, sv);
scroll_bar_set_value_only(bar_h, value_x);
scroll_bar_set_value_only(bar_v, value_y);
return RET_OK;
}
static ret_t install_one(void* ctx, const void* iter) {
widget_t* widget = WIDGET(iter);
widget_t* win = widget_get_window(ctx);
if (widget->name != NULL) {
const char* name = widget->name;
if (strstr(name, BUTTON_SET_FOCUSE_STRING) != NULL) {
widget_on(widget, EVT_CLICK, on_set_focuse_item, (void*)(name + tk_strlen(BUTTON_SET_FOCUSE_STRING)));
} else if (tk_str_eq(name, SCROLL_BAR_H_WIDGT_NAME)) {
bar_h = widget;
widget_on(widget, EVT_VALUE_CHANGED, scroll_bar_value_changed, widget);
} else if (tk_str_eq(name, SCROLL_BAR_V_WIDGT_NAME)) {
bar_v = widget;
widget_on(widget, EVT_VALUE_CHANGED, scroll_bar_value_changed, widget);
}
} else if (tk_str_eq(widget->vt->type, "scroll_view")) {
scroll_view = widget;
widget_on(widget, EVT_SCROLL, scroll_view_offset_changed, widget);
}
return RET_OK;
}
ret_t on_idle_scroll_view_set_virtual_wh(const idle_info_t* idle) {
scroll_view_t* sv = SCROLL_VIEW(scroll_view);
scroll_bar_set_params(bar_h, sv->virtual_w, 10);
scroll_bar_set_params(bar_v, sv->virtual_h, 10);
return RET_OK;
}
ret_t application_init() {
widget_t* win = window_open("scroll_view");
widget_foreach(win, install_one, win);
idle_add(on_idle_scroll_view_set_virtual_wh, win);
return RET_OK;
}
ret_t application_exit() {
return RET_OK;
}
#ifdef WITH_FS_RES
#define APP_DEFAULT_FONT "default_full"
#endif /*WITH_FS_RES*/
#include "awtk_main.inc"

View File

@ -89,12 +89,14 @@
<style name="scroll_down" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" icon="arrow_down_n"/>
<pressed bg_color="#c0c0c0" icon="arrow_down_p"/>
<disable bg_color="gray" icon="arrow_down_p"/>
<over bg_color="#e0e0e0" icon="arrow_down_o"/>
</style>
<style name="scroll_up" border_color="#a0a0a0">
<normal bg_color="#f0f0f0" icon="arrow_up_n"/>
<pressed bg_color="#c0c0c0" icon="arrow_up_p"/>
<disable bg_color="gray" icon="arrow_up_p"/>
<over bg_color="#e0e0e0" icon="arrow_up_o"/>
</style>
@ -404,6 +406,7 @@
<style name="default" border_color="gray">
<normal bg_color="#f0f0f0"/>
<over bg_color="#f0f0f0" />
<disable bg_color="gray" />
<pressed bg_color="#f0f0f0" />
</style>
</scroll_bar_d>
@ -447,6 +450,11 @@
<pressed />
<over />
</style>
<style name="border" border_color="#a0a0a0">
<normal />
<pressed />
<over />
</style>
</list_item>
<tab_button>

View File

@ -1,253 +1,253 @@
<window anim_hint="htranslate">
<list_view x="0" y="0" w="100%" h="-50">
<list_view x="0" y="0" w="100%" h="-50" default_item_height="128" >
<scroll_view name="view" x="0" y="0" w="-12" h="100%"
children_layout="list_view(item_height=128,cols=3,spacing=2)">
children_layout="list_view(cols=3,spacing=2)">
<list_item style="empty">
<list_item style="border" h="150">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border" h="100" >
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="1" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="0" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="2" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="1" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"
text="2" />
</list_item>
<list_item style="empty">
<list_item style="border">
<image selectable="true" x="0" y="0" w="100%" h="-30"
style="selectable" draw_type="auto" image="3" />
<label selectable="true" x="0" y="bottom:0" w="100%" h="30"

View File

@ -1,5 +1,6 @@
<window anim_hint="htranslate" children_layout="default(c=1,h=30,m=5,s=5)">
<button name="open:list_view_d" text="Desktop Style"/>
<button name="open:list_view_d_f" text="Desktop Floating Style"/>
<button name="open:list_view_m" text="Mobile Style"/>
<button name="open:list_view_vh" text="Variable Height"/>
<button name="open:list_view_h" text="Horizontal"/>

View File

@ -0,0 +1,92 @@
<window anim_hint="htranslate" >
<list_view x="0" y="0" w="100%" h="200" item_height="60" floating_scroll_bar="true" auto_hide_scroll_bar="true" style:normal:border_color="#ff0000" >
<scroll_view name="view" x="0" y="0" w="-12" h="100%" children_layout="list_view(x_margin=5,spacing=10)">
<list_item style="odd_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="1.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="2.Hello AWTK !"/>
</list_item>
<list_item style="odd_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="3.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="4.Hello AWTK !"/>
</list_item>
<list_item style="odd_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="5.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="6.Hello AWTK !"/>
</list_item>
<list_item style="odd_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="7.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="8.Hello AWTK !"/>
</list_item>
<list_item style="odd_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="9.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="10.Hello AWTK !"/>
</list_item>
<list_item style="odd_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="11.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="12.Hello AWTK !"/>
</list_item>
<list_item style="odd_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="13.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="14.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" name="clone_self" text="Clone Self" />
<list_item style="odd_clickable" name="clone_self" text="Clone Self" />
<list_item style="even_clickable" name="remove_self" text="Remove Self" />
<list_item style="odd_clickable" name="remove_self" text="Remove Self" />
</scroll_view>
<scroll_bar_d name="bar" x="right" y="0" w="12" h="100%" value="0"/>
</list_view>
<list_view x="0" y="210" w="100%" h="200" item_height="60" floating_scroll_bar="true" auto_hide_scroll_bar="true" style:normal:border_color="#ff0000" >
<scroll_view name="view" x="0" y="0" w="-12" h="100%" children_layout="list_view(x_margin=5,spacing=10)">
<list_item style="odd_clickable" children_layout="default(r=1,c=0)">
<image draw_type="icon" w="30" image="earth"/>
<label w="-30" text="1.Hello AWTK !"/>
</list_item>
<list_item style="even_clickable" name="clone_self" text="Clone Self" />
<list_item style="even_clickable" name="remove_self" text="Remove Self1" />
<list_item style="even_clickable" name="remove_self" text="Remove Self2" />
<list_item style="even_clickable" name="remove_self" text="Remove Self3" />
<list_item style="even_clickable" name="remove_self" text="Remove Self4" />
<list_item style="even_clickable" name="remove_self" text="Remove Self5" />
<list_item style="even_clickable" name="remove_self" text="Remove Self6" />
<list_item style="even_clickable" name="remove_self" text="Remove Self7" />
<list_item style="even_clickable" name="remove_self" text="Remove Self8" />
<list_item style="even_clickable" name="remove_self" text="Remove Self9" />
<list_item style="even_clickable" name="remove_self" text="Remove Self10" />
<list_item style="even_clickable" name="remove_self" text="Remove Self11" />
<list_item style="even_clickable" name="remove_self" text="Remove Self12" />
<list_item style="even_clickable" name="remove_self" text="Remove Self13" />
<list_item style="even_clickable" name="remove_self" text="Remove Self14" />
</scroll_view>
<scroll_bar_d name="bar" x="right" y="0" w="12" h="100%" value="0"/>
</list_view>
<button name="close" x="center" y="bottom:5" w="50%" h="30" text="close"/>
</window>

View File

@ -1,16 +1,49 @@
<window anim_hint="htranslate">
<button x="0" y="0" w="20" h="20" />
<scroll_view x="20" y="20" w="200" h="200" virtual_w="400" virtual_h="400" xoffset="10" yoffset="10">
<image image="earth" x="1" y="1" w="30" h="30" text="1"/>
<image image="earth" x="1" y="100" w="30" h="30" text="2"/>
<image image="earth" x="1" y="200" w="30" h="30" text="3"/>
<image image="earth" x="1" y="300" w="30" h="30" text="4"/>
<image image="earth" x="1" y="400" w="30" h="30" text="4"/>
<image image="earth" x="1" y="1" w="30" h="30" text="1"/>
<image image="earth" x="100" y="100" w="30" h="30" text="2"/>
<image image="earth" x="200" y="200" w="30" h="30" text="3"/>
<image image="earth" x="300" y="300" w="30" h="30" text="4"/>
<image image="earth" x="370" y="370" w="30" h="30" text="4"/>
<image image="earth" x="400" y="400" w="30" h="30" text="4"/>
</scroll_view>
<view x="0" y="0" w="100%" h="70%">
<scroll_view x="10%" y="10%" w="80%" h="80%" xoffset="0" yoffset="0" recursive="true" style:normal:border_color="#ff0000" >
<view x="1" y="1" w="30" h="30" style:normal:border_color="#0000ff" >
<image image="earth" name="earth1" x="0" y="0" w="24" h="24"/>
</view>
<view x="1" y="100" w="30" h="30" style:normal:border_color="#0000ff">
<image image="earth" x="0" y="0" w="24" h="24"/>
</view>
<view x="1" y="200" w="30" h="30" style:normal:border_color="#0000ff">
<image image="earth" x="0" y="0" w="24" h="24"/>
</view>
<view x="1" y="300" w="30" h="30" style:normal:border_color="#0000ff">
<image image="earth" x="0" y="0" w="24" h="24"/>
</view>
<view x="1" y="400" w="60" h="60" style:normal:border_color="#0000ff">
<view x="0" y="5" w="50" h="50" style:normal:border_color="#ff00ff">
<image image="earth" name="earth2" x="0" y="b" w="24" h="24"/>
</view>
</view>
<view x="100" y="100" w="30" h="30" style:normal:border_color="#0000ff">
<image image="earth" x="0" y="0" w="24" h="24"/>
</view>
<view x="200" y="200" w="30" h="30" style:normal:border_color="#0000ff">
<image image="earth" x="0" y="0" w="24" h="24"/>
</view>
<view x="300" y="300" w="30" h="30" style:normal:border_color="#0000ff">
<image image="earth" x="0" y="0" w="24" h="24"/>
</view>
<view x="370" y="370" w="30" h="30" style:normal:border_color="#0000ff">
<image image="earth" x="0" y="0" w="24" h="24"/>
</view>
<view x="400" y="400" w="60" h="60" style:normal:border_color="#0000ff">
<image image="earth" name="earth3" x="0" y="0" w="24" h="24"/>
</view>
<view x="200" y="400" w="30" h="30" style:normal:border_color="#0000ff">
<image image="earth" name="earth4" x="60" y="60" w="24" h="24"/>
</view>
</scroll_view>
<scroll_bar_d name="bar_h" x="10%" y="b" w="80%" h="10%" value="0"/>
<scroll_bar_d name="bar_v" x="r" y="10%" w="10%" h="80%" value="0"/>
</view>
<view x="0" y="b" w="100%" h="30%" children_layout="default(c=2,r=4,m=5,s=5)" >
<button name="focused:earth1" text="earth1" />
<button name="focused:earth2" text="earth2" />
<button name="focused:earth3" text="earth3" />
<button name="focused:earth4" text="earth4" />
</view>
</window>

View File

@ -1,5 +1,17 @@
# 最新动态
2021/01/25
* 感谢智明提供以下补丁:
* 重构 list\_view 的布局代码
* 完善原来的 auto\_hide\_scroll\_bar 属性的显示效果
* 完善支持多个列时候,每一项高度不一样显示不正常的问题
* 修复 widget\_ensure\_visible\_in\_scroll\_view 滚动不正常的问题。
* 增加 floating\_scroll\_bar 属性list\_view 支持滚动条悬浮效果(类似 vscode 中的滚动条效果,鼠标悬停在哪个 list\_view 上面,鼠标滚动既可以滚动 list\_view 不需要点击鼠标确定焦点)
* scroll\_view 增加 recursive 属性可以遍历子控后计算最终的虚拟宽高的功能,由于 scroll\_view 的孙控件不在子控件的区域中也可以通过滚动条找到其孙控件。
2021/01/24
* 修改android全屏的问题。
2021/01/22
* 修改pages崩溃的问题。

View File

@ -137,6 +137,7 @@
#include "default/inc/ui/dialog1.data"
#include "default/inc/ui/fade.data"
#include "default/inc/ui/menu_right_top.data"
#include "default/inc/ui/list_view_d_f.data"
#include "default/inc/ui/image_list.data"
#include "default/inc/ui/slide_view_v1.data"
#include "default/inc/ui/test_fscript.data"
@ -610,6 +611,7 @@ ret_t assets_init_default(void) {
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_list_view_d_f);
assets_manager_add(am, ui_image_list);
assets_manager_add(am, ui_slide_view_v1);
assets_manager_add(am, ui_test_fscript);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
TK_CONST_DATA_ALIGN(const unsigned char ui_list_view[]) = {
0x04,0x00,0x01,0x01,0xfb,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,
0x04,0x00,0x01,0x01,0x61,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,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,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,
@ -14,42 +14,47 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_list_view[]) = {
0x6f,0x70,0x20,0x53,0x74,0x79,0x6c,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,0x6f,0x70,0x65,0x6e,0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x5f,0x6d,
0x00,0x74,0x65,0x78,0x74,0x00,0x4d,0x6f,0x62,0x69,0x6c,0x65,0x20,0x53,0x74,0x79,0x6c,0x65,0x00,0x00,
0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x5f,0x64,
0x5f,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x44,0x65,0x73,0x6b,0x74,0x6f,0x70,0x20,0x46,0x6c,0x6f,0x61,
0x74,0x69,0x6e,0x67,0x20,0x53,0x74,0x79,0x6c,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,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x6c,
0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x5f,0x76,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x56,0x61,0x72,
0x69,0x61,0x62,0x6c,0x65,0x20,0x48,0x65,0x69,0x67,0x68,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,0x00,0x00,0x00,
0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,
0x65,0x77,0x5f,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x48,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,
0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,
0x5f,0x6d,0x00,0x74,0x65,0x78,0x74,0x00,0x4d,0x6f,0x62,0x69,0x6c,0x65,0x20,0x53,0x74,0x79,0x6c,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,0x6f,0x70,0x65,0x6e,
0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x5f,0x68,0x31,0x00,0x74,0x65,0x78,0x74,0x00,0x48,
0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x20,0x46,0x6f,0x72,0x20,0x4c,0x61,0x79,0x6f,0x75,0x74,
0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x5f,0x76,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x56,
0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x20,0x48,0x65,0x69,0x67,0x68,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,0x00,
0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x6c,0x69,0x73,0x74,0x5f,
0x76,0x69,0x65,0x77,0x5f,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x48,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,
0x61,0x6c,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,0x6f,0x70,
0x65,0x6e,0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x5f,0x68,0x31,0x00,0x74,0x65,0x78,0x74,
0x00,0x48,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x20,0x46,0x6f,0x72,0x20,0x4c,0x61,0x79,0x6f,
0x75,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,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,
0x65,0x6e,0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x5f,0x61,0x75,0x74,0x6f,0x5f,0x72,0x65,
0x73,0x69,0x7a,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x41,0x75,0x74,0x6f,0x20,0x41,0x64,0x6a,0x75,0x73,
0x74,0x20,0x53,0x69,0x7a,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,0x6f,0x70,0x65,0x6e,0x3a,0x69,0x6d,0x61,0x67,0x65,0x5f,0x6c,0x69,0x73,0x74,0x00,0x74,0x65,
0x78,0x74,0x00,0x49,0x6d,0x61,0x67,0x65,0x20,0x4c,0x69,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,0x00,0x00,
0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x73,0x65,0x6c,0x65,0x63,0x74,
0x31,0x00,0x74,0x65,0x78,0x74,0x00,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x43,0x68,0x6f,0x6f,0x73,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,0x6f,0x70,0x65,0x6e,
0x3a,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x5f,0x61,0x75,0x74,0x6f,0x5f,0x72,0x65,0x73,0x69,
0x7a,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x41,0x75,0x74,0x6f,0x20,0x41,0x64,0x6a,0x75,0x73,0x74,0x20,
0x53,0x69,0x7a,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,
0x6f,0x70,0x65,0x6e,0x3a,0x69,0x6d,0x61,0x67,0x65,0x5f,0x6c,0x69,0x73,0x74,0x00,0x74,0x65,0x78,0x74,
0x00,0x49,0x6d,0x61,0x67,0x65,0x20,0x4c,0x69,0x73,0x74,0x00,0x00,0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,
0x3a,0x73,0x65,0x6c,0x65,0x63,0x74,0x6d,0x00,0x74,0x65,0x78,0x74,0x00,0x4d,0x75,0x6c,0x74,0x69,0x70,
0x6c,0x65,0x20,0x43,0x68,0x6f,0x6f,0x73,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,
0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x73,0x65,0x6c,0x65,0x63,0x74,0x31,0x00,
0x74,0x65,0x78,0x74,0x00,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x43,0x68,0x6f,0x6f,0x73,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,0x6f,0x70,0x65,0x6e,0x3a,0x73,
0x65,0x6c,0x65,0x63,0x74,0x6d,0x00,0x74,0x65,0x78,0x74,0x00,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,
0x20,0x43,0x68,0x6f,0x6f,0x73,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,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*1067*/
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,};/*1169*/

View File

@ -0,0 +1,368 @@
TK_CONST_DATA_ALIGN(const unsigned char ui_list_view_d_f[]) = {
0x04,0x00,0x01,0x01,0x74,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,
0x77,0x5f,0x64,0x5f,0x66,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,0x61,0x6e,0x69,0x6d,
0x5f,0x68,0x69,0x6e,0x74,0x00,0x68,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x00,0x00,0x6c,0x69,
0x73,0x74,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,
0x00,0x00,0xc8,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,0x32,0x30,0x30,0x29,0x00,0x69,0x74,0x65,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x00,
0x36,0x30,0x00,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x5f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x62,
0x61,0x72,0x00,0x74,0x72,0x75,0x65,0x00,0x61,0x75,0x74,0x6f,0x5f,0x68,0x69,0x64,0x65,0x5f,0x73,0x63,
0x72,0x6f,0x6c,0x6c,0x5f,0x62,0x61,0x72,0x00,0x74,0x72,0x75,0x65,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,
0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,
0x23,0x66,0x66,0x30,0x30,0x30,0x30,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,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,0x31,0x32,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x6e,
0x61,0x6d,0x65,0x00,0x76,0x69,0x65,0x77,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,
0x79,0x6f,0x75,0x74,0x00,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x28,0x78,0x5f,0x6d,0x61,0x72,
0x67,0x69,0x6e,0x3d,0x35,0x2c,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x3d,0x31,0x30,0x29,0x00,0x00,0x6c,
0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,0x69,
0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,
0xff,0xff,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,
0x66,0x61,0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x31,0x2e,
0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,
0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,
0x61,0x62,0x6c,0x65,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,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,0x1e,
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,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,0xe2,0xff,0xff,0xff,
0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,
0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x32,0x2e,0x48,0x65,
0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,
0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,
0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,
0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,
0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x33,0x2e,0x48,0x65,0x6c,0x6c,0x6f,
0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,
0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x73,
0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x77,
0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x34,0x2e,0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,
0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,
0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,
0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,
0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x35,0x2e,0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,
0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,
0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,
0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,
0x00,0x74,0x65,0x78,0x74,0x00,0x36,0x2e,0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,
0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,
0x64,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,
0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,
0x78,0x74,0x00,0x37,0x2e,0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,
0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,
0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,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,
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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,
0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,
0x00,0x38,0x2e,0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,
0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,0x69,
0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,
0xff,0xff,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,
0x66,0x61,0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x39,0x2e,
0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,
0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,
0x61,0x62,0x6c,0x65,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,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,0x1e,
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,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,0xe2,0xff,0xff,0xff,
0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,
0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x31,0x30,0x2e,0x48,
0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,
0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,
0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,
0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,
0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x31,0x31,0x2e,0x48,0x65,0x6c,
0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,
0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,
0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,
0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,
0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x31,0x32,0x2e,0x48,0x65,0x6c,0x6c,
0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,
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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x73,
0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x77,
0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x31,0x33,0x2e,0x48,0x65,0x6c,0x6c,0x6f,0x20,
0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,
0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x73,0x65,
0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x77,0x3d,
0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x31,0x34,0x2e,0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,
0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,
0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,
0x6d,0x65,0x00,0x63,0x6c,0x6f,0x6e,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x43,
0x6c,0x6f,0x6e,0x65,0x20,0x53,0x65,0x6c,0x66,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,
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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,
0x6e,0x61,0x6d,0x65,0x00,0x63,0x6c,0x6f,0x6e,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,
0x00,0x43,0x6c,0x6f,0x6e,0x65,0x20,0x53,0x65,0x6c,0x66,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,
0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,
0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,
0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x00,0x00,0x00,0x6c,
0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,0x69,
0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,
0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,
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,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0c,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,0x69,0x67,0x68,0x74,0x2c,
0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x32,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x6e,0x61,0x6d,
0x65,0x00,0x62,0x61,0x72,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x30,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,
0x74,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,0x00,0x00,0x00,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x64,0x00,0x00,
0x00,0xc8,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,0x32,0x31,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,
0x25,0x2c,0x68,0x3d,0x32,0x30,0x30,0x29,0x00,0x69,0x74,0x65,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,
0x00,0x36,0x30,0x00,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x5f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,
0x62,0x61,0x72,0x00,0x74,0x72,0x75,0x65,0x00,0x61,0x75,0x74,0x6f,0x5f,0x68,0x69,0x64,0x65,0x5f,0x73,
0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x62,0x61,0x72,0x00,0x74,0x72,0x75,0x65,0x00,0x73,0x74,0x79,0x6c,0x65,
0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,
0x00,0x23,0x66,0x66,0x30,0x30,0x30,0x30,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,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,0x31,0x32,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,
0x6e,0x61,0x6d,0x65,0x00,0x76,0x69,0x65,0x77,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,
0x61,0x79,0x6f,0x75,0x74,0x00,0x6c,0x69,0x73,0x74,0x5f,0x76,0x69,0x65,0x77,0x28,0x78,0x5f,0x6d,0x61,
0x72,0x67,0x69,0x6e,0x3d,0x35,0x2c,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x3d,0x31,0x30,0x29,0x00,0x00,
0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x6f,0x64,0x64,0x5f,0x63,0x6c,
0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,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,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,0x1e,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,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,0xe2,
0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,
0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x77,0x3d,0x2d,0x33,0x30,0x29,0x00,0x74,0x65,0x78,0x74,0x00,0x31,
0x2e,0x48,0x65,0x6c,0x6c,0x6f,0x20,0x41,0x57,0x54,0x4b,0x20,0x21,0x00,0x00,0x00,0x00,0x6c,0x69,0x73,
0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,
0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,0x6c,0x6f,0x6e,0x65,0x5f,0x73,0x65,0x6c,
0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x43,0x6c,0x6f,0x6e,0x65,0x20,0x53,0x65,0x6c,0x66,0x00,0x00,0x00,
0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,
0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,
0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,
0x6c,0x66,0x31,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,
0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,
0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,
0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x32,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,
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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,
0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,
0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x33,0x00,0x00,0x00,0x6c,0x69,
0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,
0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,
0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,
0x34,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,
0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,
0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,
0x65,0x20,0x53,0x65,0x6c,0x66,0x35,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,
0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,
0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,
0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x36,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,
0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,
0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,
0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x37,0x00,
0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,
0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,
0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,
0x53,0x65,0x6c,0x66,0x38,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,
0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,
0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,
0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x39,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,
0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,
0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,
0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x31,0x30,0x00,0x00,
0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,
0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,
0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,
0x65,0x6c,0x66,0x31,0x31,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,
0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,
0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,
0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x31,0x32,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,
0x69,0x74,0x65,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,
0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,
0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x53,0x65,0x6c,0x66,0x31,0x33,0x00,
0x00,0x00,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,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,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x65,0x76,0x65,0x6e,
0x5f,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x00,0x6e,0x61,0x6d,0x65,0x00,0x72,0x65,0x6d,0x6f,
0x76,0x65,0x5f,0x73,0x65,0x6c,0x66,0x00,0x74,0x65,0x78,0x74,0x00,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,
0x53,0x65,0x6c,0x66,0x31,0x34,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,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,0x69,0x67,0x68,0x74,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x32,0x2c,0x68,0x3d,0x31,0x30,0x30,
0x25,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61,0x72,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x30,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,0x32,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,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x35,0x2c,0x77,0x3d,0x35,0x30,0x25,0x2c,0x68,0x3d,0x33,
0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,0x6c,0x6f,0x73,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x63,
0x6c,0x6f,0x73,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*7332*/

View File

@ -1,53 +1,144 @@
TK_CONST_DATA_ALIGN(const unsigned char ui_scroll_view[]) = {
0x04,0x00,0x01,0x01,0xd8,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x76,
0x04,0x00,0x01,0x01,0xe9,0x0a,0x00,0x00,0x00,0x00,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,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,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,0x14,0x00,
0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x76,0x69,0x65,0x77,0x00,
0x5f,0x68,0x69,0x6e,0x74,0x00,0x68,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,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,0x46,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,0x37,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,
0x14,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x76,0x69,0x72,0x74,
0x75,0x61,0x6c,0x5f,0x77,0x00,0x34,0x30,0x30,0x00,0x76,0x69,0x72,0x74,0x75,0x61,0x6c,0x5f,0x68,0x00,
0x34,0x30,0x30,0x00,0x78,0x6f,0x66,0x66,0x73,0x65,0x74,0x00,0x31,0x30,0x00,0x79,0x6f,0x66,0x66,0x73,
0x65,0x74,0x00,0x31,0x30,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,0x01,
0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,
0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x31,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,0x01,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
0x1e,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x74,0x65,0x78,0x74,
0x00,0x32,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,0x01,0x00,0x00,
0x00,0xc8,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,
0x61,0x72,0x74,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x33,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,0x01,0x00,0x00,0x00,0x2c,0x01,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,
0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x34,
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,0x01,0x00,0x00,0x00,0x90,
0x01,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,
0x74,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x34,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x00,0x00,
0x00,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x50,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,0x25,0x2c,0x79,0x3d,0x31,0x30,0x25,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x38,0x30,0x25,
0x29,0x00,0x78,0x6f,0x66,0x66,0x73,0x65,0x74,0x00,0x30,0x00,0x79,0x6f,0x66,0x66,0x73,0x65,0x74,0x00,
0x30,0x00,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x00,0x74,0x72,0x75,0x65,0x00,0x73,0x74,0x79,
0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,
0x6f,0x72,0x00,0x23,0x66,0x66,0x30,0x30,0x30,0x30,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,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x31,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,0x64,0x00,0x00,0x00,0x64,0x00,0x00,
0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,
0x00,0x74,0x65,0x78,0x74,0x00,0x32,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x00,0x00,0x00,0x00,
0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,
0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0xc8,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x69,0x6d,
0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x33,0x00,0x00,0x00,0x69,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,
0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x6e,0x61,0x6d,0x65,0x00,
0x65,0x61,0x72,0x74,0x68,0x31,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,0x01,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x74,
0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,
0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0x18,0x00,0x00,0x00,0x18,0x00,0x00,
0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,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,0x01,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,
0x1e,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,
0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0x2c,0x01,0x00,0x00,0x2c,0x01,0x00,0x00,0x1e,
0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x74,
0x65,0x78,0x74,0x00,0x34,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,0x18,
0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,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,0x01,0x00,0x00,0x00,0x2c,0x01,
0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,
0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,
0x30,0x66,0x66,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,
0x72,0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,
0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x74,0x65,0x78,0x74,0x00,0x34,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,0x90,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x1e,0x00,0x00,
0x00,0x1e,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x74,0x65,0x78,
0x74,0x00,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*1032*/
0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,
0x61,0x72,0x74,0x68,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,
0x01,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,
0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,
0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0x05,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x73,
0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,
0x6f,0x6c,0x6f,0x72,0x00,0x23,0x66,0x66,0x30,0x30,0x66,0x66,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,0x18,0x00,0x00,0x00,0x18,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,0x32,0x34,0x2c,0x68,0x3d,0x32,0x34,0x29,
0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x6e,0x61,0x6d,0x65,0x00,0x65,0x61,
0x72,0x74,0x68,0x32,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,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x74,0x79,
0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,
0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,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,0xc8,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,
0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,
0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0x18,0x00,
0x00,0x00,0x18,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,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,0x2c,0x01,0x00,0x00,0x2c,0x01,0x00,
0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,
0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,
0x66,0x66,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,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,
0x72,0x74,0x68,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,0x72,
0x01,0x00,0x00,0x72,0x01,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,0x74,0x79,0x6c,0x65,
0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x72,
0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x69,0x6d,
0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,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,0x90,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x00,
0x00,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,
0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0x18,0x00,0x00,0x00,
0x18,0x00,0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x6e,0x61,0x6d,0x65,
0x00,0x65,0x61,0x72,0x74,0x68,0x33,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,0xc8,0x00,0x00,0x00,0x90,0x01,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x73,
0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x5f,0x63,
0x6f,0x6c,0x6f,0x72,0x00,0x23,0x30,0x30,0x30,0x30,0x66,0x66,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,0x3c,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,
0x00,0x00,0x69,0x6d,0x61,0x67,0x65,0x00,0x65,0x61,0x72,0x74,0x68,0x00,0x6e,0x61,0x6d,0x65,0x00,0x65,
0x61,0x72,0x74,0x68,0x34,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,0x50,0x00,0x00,0x00,0x0a,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,0x25,0x2c,0x79,0x3d,0x62,0x2c,0x77,0x3d,0x38,0x30,0x25,0x2c,0x68,0x3d,0x31,0x30,0x25,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,0x0a,0x00,0x00,0x00,0x50,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,0x31,0x30,0x25,0x2c,
0x77,0x3d,0x31,0x30,0x25,0x2c,0x68,0x3d,0x38,0x30,0x25,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x62,0x61,
0x72,0x5f,0x76,0x00,0x76,0x61,0x6c,0x75,0x65,0x00,0x30,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,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,0x62,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,
0x33,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,0x32,0x2c,0x72,0x3d,0x34,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,
0x66,0x6f,0x63,0x75,0x73,0x65,0x64,0x3a,0x65,0x61,0x72,0x74,0x68,0x31,0x00,0x74,0x65,0x78,0x74,0x00,
0x65,0x61,0x72,0x74,0x68,0x31,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,0x66,0x6f,0x63,0x75,0x73,0x65,0x64,0x3a,0x65,0x61,0x72,0x74,0x68,0x32,0x00,0x74,0x65,0x78,
0x74,0x00,0x65,0x61,0x72,0x74,0x68,0x32,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,0x66,0x6f,0x63,0x75,0x73,0x65,0x64,0x3a,0x65,0x61,0x72,0x74,0x68,0x33,0x00,0x74,
0x65,0x78,0x74,0x00,0x65,0x61,0x72,0x74,0x68,0x33,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,0x66,0x6f,0x63,0x75,0x73,0x65,0x64,0x3a,0x65,0x61,0x72,0x74,0x68,0x34,
0x00,0x74,0x65,0x78,0x74,0x00,0x65,0x61,0x72,0x74,0x68,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,};/*2841*/

Binary file not shown.

View File

@ -137,6 +137,7 @@
#include "assets/default/inc/ui/dialog1.data"
#include "assets/default/inc/ui/fade.data"
#include "assets/default/inc/ui/menu_right_top.data"
#include "assets/default/inc/ui/list_view_d_f.data"
#include "assets/default/inc/ui/image_list.data"
#include "assets/default/inc/ui/slide_view_v1.data"
#include "assets/default/inc/ui/test_fscript.data"
@ -610,6 +611,7 @@ ret_t assets_init(void) {
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_list_view_d_f);
assets_manager_add(am, ui_image_list);
assets_manager_add(am, ui_slide_view_v1);
assets_manager_add(am, ui_test_fscript);

View File

@ -25,12 +25,14 @@
#include "base/self_layouter_factory.h"
#include "base/children_layouter_factory.h"
static ret_t widget_auto_adjust_size(widget_t* widget) {
int32_t margin = 0;
ret_t widget_auto_adjust_size(widget_t* widget) {
int32_t w = 0;
int32_t h = 0;
style_t* style = widget->astyle;
int32_t margin = 0;
style_t* style = NULL;
event_t e = event_init(EVT_WILL_RESIZE, widget);
return_value_if_fail(widget != NULL, RET_BAD_PARAMS);
style = widget->astyle;
widget_dispatch(widget, &e);
widget_invalidate_force(widget, NULL);

View File

@ -36,7 +36,6 @@ BEGIN_C_DECLS
* @return {ret_t} RET_OK表示成功
*/
ret_t widget_layout_self(widget_t* widget);
ret_t widget_layout_children(widget_t* widget);
/**
* @method widget_layout_children_default
@ -72,6 +71,10 @@ ret_t widget_layout_floating_children(widget_t* widget);
ret_t widget_get_children_for_layout(widget_t* widget, darray_t* result, bool_t keep_disable,
bool_t keep_invisible);
/* private */
ret_t widget_layout_children(widget_t* widget);
ret_t widget_auto_adjust_size(widget_t* widget);
END_C_DECLS
#endif /*TK_LAYOUT_H*/

View File

@ -3222,11 +3222,11 @@ ret_t widget_get_prop_default_value(widget_t* widget, const char* name, value_t*
return ret;
}
ret_t widget_to_screen(widget_t* widget, point_t* p) {
ret_t widget_to_screen_ex(widget_t* widget, widget_t* parent, point_t* p) {
widget_t* iter = widget;
return_value_if_fail(widget != NULL && p != NULL, RET_BAD_PARAMS);
while (iter != NULL) {
while (iter != NULL && iter != parent) {
if (widget_is_scrollable(iter)) {
p->x -= widget_get_prop_int(iter, WIDGET_PROP_XOFFSET, 0);
p->y -= widget_get_prop_int(iter, WIDGET_PROP_YOFFSET, 0);
@ -3241,6 +3241,10 @@ ret_t widget_to_screen(widget_t* widget, point_t* p) {
return RET_OK;
}
ret_t widget_to_screen(widget_t* widget, point_t* p) {
return widget_to_screen_ex(widget, NULL, p);
}
ret_t widget_to_local(widget_t* widget, point_t* p) {
widget_t* iter = widget;
return_value_if_fail(widget != NULL && p != NULL, RET_BAD_PARAMS);
@ -3617,40 +3621,46 @@ bool_t widget_is_instance_of(widget_t* widget, const widget_vtable_t* vt) {
#endif /*WITH_WIDGET_TYPE_CHECK*/
}
static ret_t widget_ensure_visible_in_scroll_view(widget_t* widget, widget_t* parent) {
static ret_t widget_ensure_visible_in_scroll_view(widget_t* scroll_view, widget_t* widget) {
rect_t r;
point_t p;
int32_t ox = 0;
int32_t oy = 0;
int32_t old_ox = 0;
int32_t old_oy = 0;
return_value_if_fail(widget != NULL && parent != NULL, RET_BAD_PARAMS);
return_value_if_fail(widget != NULL && scroll_view != NULL, RET_BAD_PARAMS);
ox = widget_get_prop_int(parent, WIDGET_PROP_XOFFSET, 0);
oy = widget_get_prop_int(parent, WIDGET_PROP_YOFFSET, 0);
memset(&p, 0x0, sizeof(point_t));
widget_to_screen_ex(widget, scroll_view, &p);
r = rect_init(p.x, p.y, widget->w, widget->h);
ox = widget_get_prop_int(scroll_view, WIDGET_PROP_XOFFSET, 0);
oy = widget_get_prop_int(scroll_view, WIDGET_PROP_YOFFSET, 0);
old_ox = ox;
old_oy = oy;
if (oy > widget->y) {
oy = widget->y;
if (oy > r.y) {
oy = r.y;
}
if (ox > widget->x) {
ox = widget->x;
if (ox > r.x) {
ox = r.x;
}
if ((widget->y + widget->h) > (oy + parent->h)) {
oy = widget->y + widget->h - parent->h;
if ((r.y + r.h) > (oy + scroll_view->h)) {
oy = r.y + r.h - scroll_view->h;
}
if ((widget->x + widget->w) > (ox + parent->w)) {
ox = widget->x + widget->w - parent->w;
if ((r.x + r.w) > (ox + scroll_view->w)) {
ox = r.x + r.w - scroll_view->w;
}
if (ox != old_ox) {
widget_set_prop_int(parent, WIDGET_PROP_XOFFSET, ox);
widget_set_prop_int(scroll_view, WIDGET_PROP_XOFFSET, ox);
}
if (oy != old_oy) {
widget_set_prop_int(parent, WIDGET_PROP_YOFFSET, oy);
widget_set_prop_int(scroll_view, WIDGET_PROP_YOFFSET, oy);
}
return RET_OK;
@ -3663,11 +3673,11 @@ ret_t widget_ensure_visible_in_viewport(widget_t* widget) {
parent = widget->parent;
while (parent != NULL) {
if (widget_is_scrollable(parent)) {
widget_ensure_visible_in_scroll_view(widget, parent);
widget_ensure_visible_in_scroll_view(parent, widget);
break;
}
widget = parent;
parent = widget->parent;
parent = parent->parent;
}
return RET_OK;

View File

@ -927,6 +927,18 @@ ret_t widget_to_local(widget_t* widget, point_t* p);
*/
ret_t widget_to_global(widget_t* widget, point_t* p);
/**
* @method widget_to_screen_ex
*
* parent widget 退 widget_to_screen
* @param {widget_t*} widget
* @param {widget_t*} parent
* @param {point_t*} p
*
* @return {ret_t} RET_OK表示成功
*/
ret_t widget_to_screen_ex(widget_t* widget, widget_t* parent, point_t* p);
/**
* @method widget_to_screen
*

View File

@ -202,41 +202,186 @@ static ret_t children_layouter_list_view_get_param(children_layouter_t* layouter
return RET_FAIL;
}
static ret_t children_layouter_for_list_view_layout(children_layouter_t* layouter,
widget_t* widget) {
int32_t spacing = 0;
int32_t x_margin = 0;
int32_t y_margin = 0;
static ret_t children_layouter_list_view_for_list_view_children_layout_h(darray_t* children_for_layout, int32_t item_height, int32_t default_item_height) {
int32_t i = 0;
int32_t h = 0;
int32_t n = 0;
widget_t** children = NULL;
return_value_if_fail(children_for_layout != NULL, RET_BAD_PARAMS);
n = children_for_layout->size;
children = (widget_t**)children_for_layout->elms;
for (i = 0; i < n; i++) {
widget_t* iter = children[i];
if (iter->self_layout != NULL) {
widget_layout_self(iter);
}
if (iter->auto_adjust_size) {
widget_auto_adjust_size(iter);
}
h = item_height;
if (h <= 0) {
h = iter->h;
}
if (h <= 0) {
h = default_item_height;
}
widget_resize(iter, iter->w, h);
}
return RET_OK;
}
static ret_t children_layouter_list_view_for_list_view_children_layout_w(darray_t* children_for_layout, uint32_t cols, int32_t x_margin, int32_t y_margin, int32_t spacing, int32_t scroll_view_w) {
int32_t i = 0;
int32_t w = 0;
int32_t x = x_margin;
int32_t y = y_margin;
widget_t** children = NULL;
return_value_if_fail(children_for_layout != NULL, RET_BAD_PARAMS);
w = scroll_view_w - 2 * x_margin;
children = (widget_t**)children_for_layout->elms;
if (cols <= 1) {
for (i = 0; i < children_for_layout->size; i++) {
widget_t* iter = children[i];
widget_move_resize(iter, x, y, w, iter->h);
widget_layout_children(iter);
y += (iter->h + spacing);
}
} else {
int32_t j = 0;
int32_t n = 0;
int32_t h = 0;
int32_t size = children_for_layout->size;
uint32_t rows = (size % cols) ? (size / cols) + 1 : (size / cols);
w = (w - (cols - 1) * spacing) / cols;
for (i = 0; i < rows && n < size; i++) {
h = 0;
for (j = 0; j < cols && n < size; j++, n++) {
widget_t* iter = children[n];
int32_t tmp_x = x + j * (w + spacing);
widget_move_resize(iter, tmp_x, y, w, iter->h);
widget_layout_children(iter);
h = tk_max(h, iter->h);
}
y += (h + spacing);
}
}
return RET_OK;
}
static int32_t children_layouter_list_view_for_list_view_get_virtual_h(darray_t* children_for_layout, uint32_t cols, int32_t y_margin, int32_t spacing) {
int32_t i = 0;
widget_t** children = NULL;
int32_t virtual_h = y_margin;
return_value_if_fail(children_for_layout != NULL, 0);
children = (widget_t**)children_for_layout->elms;
if (cols <= 1) {
for (i = 0; i < children_for_layout->size; i++) {
virtual_h += (children[i]->h + spacing);
}
} else {
int32_t j = 0;
int32_t h = 0;
int32_t num = 0;
int32_t n = children_for_layout->size;
uint32_t rows = (n % cols) ? (n / cols) + 1 : (n / cols);
for (i = 0; i < rows && num < children_for_layout->size; i++) {
for (j = 0, h = 0; j < cols && num < children_for_layout->size; j++, num++) {
h = tk_max(h, children[num]->h);
}
virtual_h += (h + spacing);
}
}
return virtual_h;
}
static int32_t children_layouter_list_view_for_list_view_get_scroll_view_w(list_view_t* list_view, widget_t* scroll_view, int32_t virtual_h) {
int32_t scroll_view_w = 0;
widget_t* scroll_bar = NULL;
return_value_if_fail(list_view != NULL && scroll_view != NULL, 0);
scroll_bar = list_view->scroll_bar;
if (list_view->floating_scroll_bar || scroll_bar == NULL || scroll_bar_is_mobile(scroll_bar) ||
(!scroll_bar_is_mobile(scroll_bar) && list_view->auto_hide_scroll_bar && scroll_view->h >= virtual_h)) {
scroll_view_w = list_view->widget.w;
} else {
scroll_view_w = list_view->widget.w - scroll_bar->w;
}
return scroll_view_w;
}
static ret_t children_layouter_list_view_for_list_view_set_scroll_view_info(widget_t* widget, widget_t* scroll_bar, int32_t virtual_h) {
scroll_view_t* scroll_view = SCROLL_VIEW(widget);
return_value_if_fail(scroll_view != NULL, RET_BAD_PARAMS);
if (widget->h >= virtual_h) {
scroll_view_set_offset(widget, 0, 0);
}
if (scroll_bar_is_mobile(scroll_bar)) {
scroll_view_set_yslidable(widget, TRUE);
}
scroll_view_set_xslidable(widget, FALSE);
scroll_view_set_virtual_h(widget, virtual_h);
scroll_view->xoffset = 0;
if (scroll_view->yoffset + widget->h > scroll_view->virtual_h) {
scroll_view->yoffset = scroll_view->virtual_h - widget->h;
scroll_view->yoffset = scroll_view->yoffset > 0 ? scroll_view->yoffset : 0;
}
if (scroll_view->on_scroll) {
scroll_view->on_scroll(widget, scroll_view->xoffset, scroll_view->yoffset);
}
return RET_OK;
}
static ret_t children_layouter_list_view_for_list_view_set_scroll_bar_info(widget_t* widget, list_view_t* list_view, widget_t* scroll_view, int32_t virtual_h, int32_t item_height) {
return_value_if_fail(widget != NULL && list_view != NULL, RET_BAD_PARAMS);
scroll_bar_set_params(widget, virtual_h, item_height);
if (scroll_bar_is_mobile(widget)) {
widget_set_visible_only(widget, FALSE);
} else {
if (scroll_view->h >= virtual_h) {
scroll_bar_set_value(widget, 0);
if (list_view->auto_hide_scroll_bar || list_view->floating_scroll_bar) {
widget_set_visible_only(widget, FALSE);
} else {
widget_set_enable(widget, FALSE);
widget_set_visible_only(widget, TRUE);
}
} else {
if (list_view->auto_hide_scroll_bar && list_view->floating_scroll_bar) {
widget_set_visible_only(widget, list_view->is_over);
} else {
widget_set_enable(widget, TRUE);
widget_set_visible_only(widget, TRUE);
}
}
}
return RET_OK;
}
static ret_t children_layouter_list_view_for_list_view_layout(children_layouter_t* layouter,
widget_t* widget) {
int32_t virtual_h = 0;
int32_t item_height = 0;
int32_t default_item_height = 0;
list_view_t* list_view = NULL;
widget_t* scroll_bar = NULL;
int32_t default_item_height = 0;
scroll_view_t* scroll_view = SCROLL_VIEW(widget);
children_layouter_list_view_t* l = (children_layouter_list_view_t*)layouter;
return_value_if_fail(widget != NULL && scroll_view != NULL && l != NULL, RET_BAD_PARAMS);
virtual_h = widget->h;
list_view = LIST_VIEW(widget->parent);
return_value_if_fail(list_view != NULL, RET_BAD_PARAMS);
scroll_bar = list_view->scroll_bar;
spacing = l->spacing;
x_margin = l->x_margin;
y_margin = l->y_margin;
item_height = list_view->item_height ? list_view->item_height : l->item_height;
default_item_height =
list_view->default_item_height ? list_view->default_item_height : l->default_item_height;
if (widget->children != NULL) {
int32_t i = 0;
int32_t n = 0;
int32_t x = x_margin;
int32_t y = y_margin;
int32_t h = item_height;
widget_t** children = NULL;
int32_t scroll_view_w = 0;
darray_t children_for_layout;
int32_t w = widget->w - x_margin * 2;
uint32_t cols = l->cols <= 1 ? 1 : l->cols;
widget_layout_floating_children(widget);
@ -247,132 +392,23 @@ static ret_t children_layouter_for_list_view_layout(children_layouter_t* layoute
l->keep_invisible) == RET_OK,
RET_BAD_PARAMS);
n = children_for_layout.size;
children = (widget_t**)(children_for_layout.elms);
children_layouter_list_view_for_list_view_children_layout_h(&children_for_layout, item_height, default_item_height);
virtual_h = children_layouter_list_view_for_list_view_get_virtual_h(&children_for_layout, cols, l->y_margin, l->spacing);
scroll_view_w = children_layouter_list_view_for_list_view_get_scroll_view_w(list_view, widget, virtual_h);
if (cols <= 1) {
for (i = 0; i < n; i++) {
widget_t* iter = children[i];
if (item_height <= 0) {
h = iter->h;
}
if (h <= 0) {
h = default_item_height;
}
y = y + (h > 0 ? h : iter->h) + spacing;
if (y > virtual_h) {
virtual_h = y;
}
}
} else {
uint32_t rows = (n % cols) ? (n / cols) + 1 : (n / cols);
if (item_height == 0) item_height = default_item_height;
y = (item_height + spacing) * rows;
if (y > virtual_h) {
virtual_h = y;
}
}
scroll_view->widget.w = list_view->widget.w;
if (scroll_bar != NULL) {
if (!scroll_bar_is_mobile(scroll_bar)) {
if (list_view->auto_hide_scroll_bar) {
if (virtual_h <= widget->h) {
widget_set_visible_only(scroll_bar, FALSE);
widget_set_enable(scroll_bar, FALSE);
} else {
scroll_view->widget.w = list_view->widget.w - scroll_bar->w;
widget_set_visible_only(scroll_bar, TRUE);
widget_set_enable(scroll_bar, TRUE);
}
} else {
if (!widget_get_prop_bool(scroll_bar, WIDGET_PROP_VISIBLE, FALSE)) {
widget_set_visible_only(scroll_bar, TRUE);
widget_set_enable(scroll_bar, TRUE);
}
scroll_view->widget.w = list_view->widget.w - scroll_bar->w;
}
}
}
y = y_margin;
w = scroll_view->widget.w - 2 * x_margin;
if (cols <= 1) {
for (i = 0; i < n; i++) {
widget_t* iter = children[i];
if (item_height <= 0) {
h = iter->h;
}
if (h <= 0) {
h = default_item_height;
}
widget_move_resize(iter, x, y, w, h);
widget_layout(iter);
y = iter->y + iter->h + spacing;
}
} else {
uint32_t item_w = (w - (cols - 1) * spacing) / cols;
h = item_height;
y = y_margin - item_height - spacing;
for (i = 0; i < n; i++) {
widget_t* iter = children[i];
if (i % cols == 0) {
x = x_margin;
y += item_height + spacing;
} else {
x += item_w + spacing;
}
widget_move_resize(iter, x, y, item_w, h);
widget_layout(iter);
}
}
if (scroll_bar != NULL && (SCROLL_BAR(scroll_bar)->value) >= y) {
int32_t offset = tk_max(0, (y - widget->h + item_height));
scroll_bar_set_value(scroll_bar, offset);
scroll_view_set_offset(WIDGET(scroll_view), 0, offset);
}
widget_resize(widget, scroll_view_w, widget->h);
children_layouter_list_view_for_list_view_children_layout_w(&children_for_layout, cols, l->x_margin, l->y_margin, l->spacing, scroll_view_w);
darray_deinit(&(children_for_layout));
} else {
scroll_bar_set_value(scroll_bar, 0);
scroll_view_set_offset(WIDGET(scroll_view), 0, 0);
}
scroll_view_set_virtual_h(list_view->scroll_view, virtual_h);
item_height = tk_max(item_height, default_item_height);
scroll_bar_set_params(list_view->scroll_bar, virtual_h, item_height);
scroll_view->xoffset = 0;
if (scroll_view->yoffset + widget->h > scroll_view->virtual_h) {
scroll_view->yoffset = scroll_view->virtual_h - widget->h;
scroll_view->yoffset = scroll_view->yoffset > 0 ? scroll_view->yoffset : 0;
}
if (scroll_view->on_scroll) {
scroll_view->on_scroll(widget, scroll_view->xoffset, scroll_view->yoffset);
}
scroll_view_set_xslidable(list_view->scroll_view, FALSE);
if (scroll_bar_is_mobile(list_view->scroll_bar)) {
scroll_view_set_yslidable(list_view->scroll_view, TRUE);
widget_set_visible_only(list_view->scroll_bar, FALSE);
}
children_layouter_list_view_for_list_view_set_scroll_view_info(widget, list_view->scroll_bar, virtual_h);
children_layouter_list_view_for_list_view_set_scroll_bar_info(list_view->scroll_bar, list_view, widget, virtual_h, item_height);
return RET_OK;
}
static ret_t children_layouter_for_list_view_h_layout(children_layouter_t* layouter,
widget_t* widget) {
static ret_t children_layouter_list_view_for_list_view_h_layout(children_layouter_t* layouter,
widget_t* widget) {
int32_t virtual_w = 0;
list_view_h_t* list_view_h = NULL;
scroll_view_t* scroll_view = SCROLL_VIEW(widget);
@ -436,9 +472,9 @@ static ret_t children_layouter_list_view_layout(children_layouter_t* layouter, w
children_layouter_list_view_t* l = (children_layouter_list_view_t*)layouter;
return_value_if_fail(l != NULL, RET_BAD_PARAMS);
if (l->hlayouter) {
return children_layouter_for_list_view_h_layout(layouter, widget);
return children_layouter_list_view_for_list_view_h_layout(layouter, widget);
} else {
return children_layouter_for_list_view_layout(layouter, widget);
return children_layouter_list_view_for_list_view_layout(layouter, widget);
}
}

View File

@ -103,7 +103,7 @@ static ret_t list_item_on_event(widget_t* widget, event_t* e) {
list_item_remove_timer(widget);
widget_invalidate_force(widget, NULL);
widget_set_state(widget, WIDGET_STATE_NORMAL);
widget_ungrab(widget->parent, widget);
if (!list_item->dragged && list_item->pressed) {
pointer_event_t evt = *(pointer_event_t*)e;
evt.e = event_init(EVT_CLICK, widget);
@ -113,7 +113,6 @@ static ret_t list_item_on_event(widget_t* widget, event_t* e) {
list_item->dragged = FALSE;
list_item->pressed = FALSE;
list_item->downed = FALSE;
widget_ungrab(widget->parent, widget);
break;
}
case EVT_POINTER_MOVE: {

View File

@ -27,6 +27,9 @@
#include "scroll_view/scroll_bar.h"
#include "scroll_view/scroll_view.h"
#define LIST_VIEW_FLOATING_SCROLL_BAR_HIDE_TIME 500
#define LIST_VIEW_FLOATING_SCROLL_BAR_SHOW_TIME 300
static ret_t list_view_on_add_child(widget_t* widget, widget_t* child);
static ret_t list_view_on_remove_child(widget_t* widget, widget_t* child);
@ -47,6 +50,9 @@ static ret_t list_view_get_prop(widget_t* widget, const char* name, value_t* v)
} else if (tk_str_eq(name, WIDGET_PROP_AUTO_HIDE_SCROLL_BAR)) {
value_set_bool(v, list_view->auto_hide_scroll_bar);
return RET_OK;
} else if (tk_str_eq(name, LIST_VIEW_PROP_FLOATING_SCROLL_BAR)) {
value_set_bool(v, list_view->floating_scroll_bar);
return RET_OK;
}
return RET_NOT_FOUND;
@ -54,8 +60,8 @@ static ret_t list_view_get_prop(widget_t* widget, const char* name, value_t* v)
static ret_t list_view_on_pointer_up(list_view_t* list_view, pointer_event_t* e) {
scroll_bar_t* scroll_bar = (scroll_bar_t*)list_view->scroll_bar;
if (scroll_bar != NULL && scroll_bar->wa_opactiy == NULL && list_view->scroll_bar->visible) {
scroll_bar_hide_by_opacity_animation(list_view->scroll_bar, 500);
if (scroll_bar != NULL && scroll_bar->wa_opactiy == NULL && list_view->scroll_bar->visible && scroll_bar_is_mobile(list_view->scroll_bar)) {
scroll_bar_hide_by_opacity_animation(list_view->scroll_bar, LIST_VIEW_FLOATING_SCROLL_BAR_HIDE_TIME, LIST_VIEW_FLOATING_SCROLL_BAR_HIDE_TIME);
}
return RET_OK;
}
@ -72,11 +78,66 @@ static ret_t list_view_set_prop(widget_t* widget, const char* name, const value_
} else if (tk_str_eq(name, WIDGET_PROP_AUTO_HIDE_SCROLL_BAR)) {
list_view->auto_hide_scroll_bar = value_bool(v);
return RET_OK;
} else if (tk_str_eq(name, LIST_VIEW_PROP_FLOATING_SCROLL_BAR)) {
return list_view_set_floating_scroll_bar(widget, value_bool(v));
}
return RET_NOT_FOUND;
}
static ret_t list_view_hanlde_wheel_event(list_view_t* list_view, event_t* e) {
wheel_event_t* evt = (wheel_event_t*)e;
int32_t delta = -evt->dy;
if (list_view->scroll_bar != NULL) {
scroll_bar_add_delta(list_view->scroll_bar, delta);
log_debug("wheel: %d\n", delta);
}
return RET_STOP;
}
static ret_t list_view_on_wheel_before(void* ctx, event_t* e) {
return list_view_hanlde_wheel_event(LIST_VIEW(ctx), e);
}
static bool_t list_view_is_play_floating_scroll_bar_animtion(list_view_t* list_view) {
scroll_view_t* scroll_view = NULL;
return_value_if_fail(list_view != NULL && list_view->scroll_bar != NULL && list_view->scroll_view != NULL, FALSE);
scroll_view = SCROLL_VIEW(list_view->scroll_view);
return_value_if_fail(scroll_view != NULL, FALSE);
if (list_view->floating_scroll_bar && list_view->scroll_bar->enable && scroll_view->virtual_h >= list_view->widget.h) {
return TRUE;
}
return FALSE;
}
static ret_t list_view_on_pointer_leave(list_view_t* list_view) {
return_value_if_fail(list_view != NULL, RET_BAD_PARAMS);
if (list_view_is_play_floating_scroll_bar_animtion(list_view)) {
widget_t* win = widget_get_window(WIDGET(list_view));
list_view->is_over = FALSE;
scroll_bar_hide_by_opacity_animation(list_view->scroll_bar, LIST_VIEW_FLOATING_SCROLL_BAR_HIDE_TIME, 0);
if (list_view->wheel_before_id != TK_INVALID_ID) {
widget_off(win, list_view->wheel_before_id);
list_view->wheel_before_id = TK_INVALID_ID;
}
}
return RET_OK;
}
static ret_t list_view_on_pointer_enter(list_view_t* list_view) {
return_value_if_fail(list_view != NULL, RET_BAD_PARAMS);
if (list_view_is_play_floating_scroll_bar_animtion(list_view)) {
widget_t* win = widget_get_window(WIDGET(list_view));
list_view->is_over = TRUE;
scroll_bar_show_by_opacity_animation(list_view->scroll_bar, LIST_VIEW_FLOATING_SCROLL_BAR_SHOW_TIME, 0);
if (list_view->wheel_before_id == TK_INVALID_ID) {
list_view->wheel_before_id = widget_on(win, EVT_WHEEL_BEFORE_CHILDREN, list_view_on_wheel_before, WIDGET(list_view));
}
}
return RET_OK;
}
static ret_t list_view_on_event(widget_t* widget, event_t* e) {
ret_t ret = RET_OK;
list_view_t* list_view = LIST_VIEW(widget);
@ -84,14 +145,7 @@ static ret_t list_view_on_event(widget_t* widget, event_t* e) {
switch (e->type) {
case EVT_WHEEL: {
wheel_event_t* evt = (wheel_event_t*)e;
int32_t delta = -evt->dy;
if (list_view->scroll_bar != NULL) {
scroll_bar_add_delta(list_view->scroll_bar, delta);
log_debug("wheel: %d\n", delta);
}
ret = RET_STOP;
ret = list_view_hanlde_wheel_event(list_view, e);
break;
}
case EVT_KEY_DOWN: {
@ -116,7 +170,16 @@ static ret_t list_view_on_event(widget_t* widget, event_t* e) {
case EVT_POINTER_UP: {
pointer_event_t* evt = (pointer_event_t*)e;
list_view_on_pointer_up(list_view, evt);
} break;
break;
}
case EVT_POINTER_LEAVE: {
list_view_on_pointer_leave(list_view);
break;
}
case EVT_POINTER_ENTER: {
list_view_on_pointer_enter(list_view);
break;
}
default:
break;
}
@ -287,6 +350,7 @@ static ret_t list_view_on_add_child(widget_t* widget, widget_t* child) {
scroll_view->on_scroll_to = list_view_on_scroll_view_scroll_to;
scroll_view->on_layout_children = list_view_on_scroll_view_layout_children;
scroll_view->on_paint_children = list_view_on_scroll_view_paint_children;
scroll_view_set_recursive_only(child, FALSE);
} else if (tk_str_eq(type, WIDGET_TYPE_SCROLL_BAR) ||
tk_str_eq(type, WIDGET_TYPE_SCROLL_BAR_DESKTOP) ||
@ -409,6 +473,15 @@ ret_t list_view_set_auto_hide_scroll_bar(widget_t* widget, bool_t auto_hide_scro
return RET_OK;
}
ret_t list_view_set_floating_scroll_bar(widget_t* widget, bool_t floating_scroll_bar) {
list_view_t* list_view = LIST_VIEW(widget);
return_value_if_fail(list_view != NULL, RET_BAD_PARAMS);
list_view->floating_scroll_bar = floating_scroll_bar;
return RET_OK;
}
widget_t* list_view_cast(widget_t* widget) {
return_value_if_fail(WIDGET_IS_INSTANCE_OF(widget, list_view), NULL);

View File

@ -76,6 +76,14 @@ BEGIN_C_DECLS
* 使widget\_clone来增加列表项使widget\_remove\_child来移出列表项
*
* style来设置控件的显示风格()
*
* list_view scroll_view
*
* scroll_bar_d scroll_bar_m
* floating_scroll_bar TRUE auto_hide_scroll_bar TRUEscroll_view list_view 100% list_view scroll_view scroll_view
* floating_scroll_bar TRUE auto_hide_scroll_bar FALSE scroll_view list_view 100% scroll_view scroll_view
* floating_scroll_bar FALSE auto_hide_scroll_bar FALSE scroll_view scroll_view
* floating_scroll_bar FALSE auto_hide_scroll_bar TRUE scroll_view scroll_view
*
*/
typedef struct _list_view_t {
@ -99,9 +107,18 @@ typedef struct _list_view_t {
*/
bool_t auto_hide_scroll_bar;
/**
* @property {bool_t} floating_scroll_bar
* @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"]
* scroll_view
*/
bool_t floating_scroll_bar;
/*private*/
bool_t is_over;
widget_t* scroll_view;
widget_t* scroll_bar;
uint32_t wheel_before_id;
} list_view_t;
/**
@ -151,6 +168,17 @@ ret_t list_view_set_default_item_height(widget_t* widget, int32_t default_item_h
*/
ret_t list_view_set_auto_hide_scroll_bar(widget_t* widget, bool_t auto_hide_scroll_bar);
/**
* @method list_view_set_floating_scroll_bar
* scroll_view
* @annotation ["scriptable"]
* @param {widget_t*} widget
* @param {bool_t} floating_scroll_bar scroll_view
*
* @return {ret_t} RET_OK表示成功
*/
ret_t list_view_set_floating_scroll_bar(widget_t* widget, bool_t floating_scroll_bar);
/**
* @method list_view_cast
* list_view对象(使)
@ -173,6 +201,8 @@ ret_t list_view_reinit(widget_t* widget);
#define LIST_VIEW(widget) ((list_view_t*)(list_view_cast(WIDGET(widget))))
#define LIST_VIEW_PROP_FLOATING_SCROLL_BAR "floating_scroll_bar"
/*public for subclass and runtime type check*/
TK_EXTERN_VTABLE(list_view);

View File

@ -211,11 +211,11 @@ static ret_t scroll_bar_destop_get_dragger_size(widget_t* widget, rect_t* r) {
}
if (SCROLL_BAR_UP_AND_DOWN_BUTTON_STYLE_IS_EXIST(up, down)) {
if (widget_w > widget_h) {
button_margin = widget_h;
} else {
button_margin = widget_w;
}
if (widget_w > widget_h) {
button_margin = widget_h;
} else {
button_margin = widget_w;
}
}
value = scroll_bar->value;
@ -363,8 +363,12 @@ static ret_t scroll_bar_on_layout_children(widget_t* widget) {
widget_move_resize(down, 0, widget->h - widget->w, widget->w, widget->w);
}
} else {
widget_set_visible(up, FALSE);
widget_set_visible(down, FALSE);
if (up != NULL) {
widget_set_visible(up, FALSE);
}
if (down != NULL) {
widget_set_visible(down, FALSE);
}
}
if (scroll_bar->virtual_size <= 0) {
@ -547,7 +551,9 @@ static ret_t scroll_bar_on_opactiy_animate_end(void* ctx, event_t* e) {
scroll_bar->wa_opactiy = NULL;
if (scroll_bar_is_mobile(widget)) {
if (widget->opacity == 0xff) {
widget_set_visible_only(widget, TRUE);
} else {
widget_set_visible_only(widget, FALSE);
}
@ -563,17 +569,14 @@ ret_t scroll_bar_scroll_to(widget_t* widget, int32_t value, int32_t duration) {
scroll_bar->wa_value = NULL;
}
if (scroll_bar->wa_opactiy != NULL) {
widget_animator_destroy(scroll_bar->wa_opactiy);
scroll_bar->wa_opactiy = NULL;
}
widget_set_opacity(widget, 0xff);
widget_set_visible_only(widget, TRUE);
widget_invalidate_force(widget, NULL);
if (scroll_bar->value == value) {
scroll_bar_hide_by_opacity_animation(widget, duration);
if (scroll_bar_is_mobile(widget)) {
scroll_bar_hide_by_opacity_animation(widget, duration, duration);
}
return RET_OK;
}
@ -585,7 +588,7 @@ ret_t scroll_bar_scroll_to(widget_t* widget, int32_t value, int32_t duration) {
scroll_bar);
if (scroll_bar_is_mobile(widget)) {
scroll_bar_hide_by_opacity_animation(widget, duration);
scroll_bar_hide_by_opacity_animation(widget, duration, duration);
} else {
scroll_bar->wa_opactiy = NULL;
}
@ -695,16 +698,34 @@ widget_t* scroll_bar_cast(widget_t* widget) {
return widget;
}
ret_t scroll_bar_hide_by_opacity_animation(widget_t* widget, int32_t duration) {
ret_t scroll_bar_hide_by_opacity_animation(widget_t* widget, int32_t duration, int32_t delay) {
scroll_bar_t* scroll_bar = SCROLL_BAR(widget);
return_value_if_fail(scroll_bar != NULL, RET_BAD_PARAMS);
if (scroll_bar_is_mobile(widget)) {
scroll_bar->wa_opactiy =
widget_animator_opacity_create(widget, duration, duration, EASING_SIN_INOUT);
widget_animator_on(scroll_bar->wa_opactiy, EVT_ANIM_END, scroll_bar_on_opactiy_animate_end,
scroll_bar);
widget_animator_opacity_set_params(scroll_bar->wa_opactiy, 0xff, 0);
widget_animator_start(scroll_bar->wa_opactiy);
if (scroll_bar->wa_opactiy != NULL) {
widget_animator_destroy(scroll_bar->wa_opactiy);
scroll_bar->wa_opactiy = NULL;
}
scroll_bar->wa_opactiy =
widget_animator_opacity_create(widget, duration, delay, EASING_SIN_INOUT);
widget_animator_on(scroll_bar->wa_opactiy, EVT_ANIM_END, scroll_bar_on_opactiy_animate_end,
scroll_bar);
widget_animator_opacity_set_params(scroll_bar->wa_opactiy, widget->opacity, 0);
widget_animator_start(scroll_bar->wa_opactiy);
return RET_OK;
}
ret_t scroll_bar_show_by_opacity_animation(widget_t* widget, int32_t duration, int32_t delay) {
scroll_bar_t* scroll_bar = SCROLL_BAR(widget);
return_value_if_fail(scroll_bar != NULL, RET_BAD_PARAMS);
if (scroll_bar->wa_opactiy != NULL) {
widget_animator_destroy(scroll_bar->wa_opactiy);
scroll_bar->wa_opactiy = NULL;
}
scroll_bar->wa_opactiy =
widget_animator_opacity_create(widget, duration, delay, EASING_SIN_INOUT);
widget_animator_on(scroll_bar->wa_opactiy, EVT_ANIM_END, scroll_bar_on_opactiy_animate_end,
scroll_bar);
widget_animator_opacity_set_params(scroll_bar->wa_opactiy, widget->opacity, 0xff);
widget_animator_start(scroll_bar->wa_opactiy);
return RET_OK;
}

View File

@ -235,7 +235,9 @@ ret_t scroll_bar_set_value_only(widget_t* widget, int32_t value);
*/
bool_t scroll_bar_is_mobile(widget_t* widget);
ret_t scroll_bar_hide_by_opacity_animation(widget_t* widget, int32_t duration);
/* private */
ret_t scroll_bar_hide_by_opacity_animation(widget_t* widget, int32_t duration, int32_t delay);
ret_t scroll_bar_show_by_opacity_animation(widget_t* widget, int32_t duration, int32_t delay);
#define SCROLL_BAR(widget) ((scroll_bar_t*)(scroll_bar_cast(WIDGET(widget))))

View File

@ -34,6 +34,21 @@
static uint32_t scroll_view_get_curr_page(widget_t* widget);
static ret_t scroll_view_get_item_rect(widget_t* parent, widget_t* widget, rect_t* item_rect) {
rect_t r;
point_t p;
WIDGET_FOR_EACH_CHILD_BEGIN(widget, iter, i)
memset(&p, 0x0, sizeof(point_t));
widget_to_screen_ex(iter, parent, &p);
r = rect_init(p.x, p.y, iter->w, iter->h);
rect_merge(item_rect, &r);
scroll_view_get_item_rect(parent, iter, item_rect);
WIDGET_FOR_EACH_CHILD_END();
return RET_OK;
}
static ret_t scroll_view_update_virtual_size(widget_t* widget) {
int32_t virtual_w = 0;
int32_t virtual_h = 0;
@ -44,8 +59,17 @@ static ret_t scroll_view_update_virtual_size(widget_t* widget) {
virtual_h = tk_max(scroll_view->virtual_h, widget->h);
WIDGET_FOR_EACH_CHILD_BEGIN(widget, iter, i)
int32_t r = iter->x + iter->w;
int32_t b = iter->y + iter->h;
int32_t r = 0;
int32_t b = 0;
if (scroll_view->recursive) {
rect_t rect = rect_init(0, 0, iter->w, iter->h);
scroll_view_get_item_rect(iter, iter, &rect);
r = iter->x + rect.x + rect.w;
b = iter->y + rect.y + rect.h;
} else {
r = iter->x + iter->w;
b = iter->y + iter->h;
}
if (r > virtual_w) {
virtual_w = r;
}
@ -581,6 +605,8 @@ static ret_t scroll_view_set_prop(widget_t* widget, const char* name, const valu
} else if (tk_str_eq(name, SCROLL_VIEW_Y_SPEED_SCALE)) {
scroll_view->yspeed_scale = value_float(v);
return RET_OK;
} else if (tk_str_eq(name, SCROLL_VIEW_RECURSIVE)) {
return scroll_view_set_recursive(widget, value_bool(v));
} else if (tk_str_eq(name, SCROLL_VIEW_SNAP_TO_PAGE)) {
return scroll_view_set_snap_to_page(widget, value_bool(v));
} else if (scroll_view->snap_to_page && tk_str_eq(name, WIDGET_PROP_CURR_PAGE)) {
@ -703,6 +729,21 @@ ret_t scroll_view_set_snap_to_page(widget_t* widget, bool_t snap_to_page) {
return RET_OK;
}
ret_t scroll_view_set_recursive_only(widget_t* widget, bool_t recursive) {
scroll_view_t* scroll_view = SCROLL_VIEW(widget);
return_value_if_fail(scroll_view != NULL, RET_FAIL);
scroll_view->recursive = recursive;
return RET_OK;
}
ret_t scroll_view_set_recursive(widget_t* widget, bool_t recursive) {
ret_t ret = RET_OK;
ret = scroll_view_set_recursive_only(widget, recursive);
return_value_if_fail(ret == RET_OK, ret);
return widget_layout(widget);
}
widget_t* scroll_view_cast(widget_t* widget) {
return_value_if_fail(WIDGET_IS_INSTANCE_OF(widget, scroll_view), NULL);

View File

@ -128,6 +128,12 @@ typedef struct _scroll_view_t {
* offset是否按页面对齐
*/
bool_t snap_to_page;
/**
* @property {bool_t} recursive
* @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"]
*
*/
bool_t recursive;
/*private*/
point_t down;
@ -246,6 +252,28 @@ ret_t scroll_view_set_yslidable(widget_t* widget, bool_t yslidable);
*/
ret_t scroll_view_set_snap_to_page(widget_t* widget, bool_t snap_to_page);
/**
* @method scroll_view_set_recursive
*
* @annotation ["scriptable"]
* @param {widget_t*} widget
* @param {bool_t} recursive
*
* @return {ret_t} RET_OK表示成功
*/
ret_t scroll_view_set_recursive(widget_t* widget, bool_t recursive);
/**
* @method scroll_view_set_recursive_only
* (repaint和relayout)
* @annotation ["scriptable"]
* @param {widget_t*} widget
* @param {bool_t} recursive
*
* @return {ret_t} RET_OK表示成功
*/
ret_t scroll_view_set_recursive_only(widget_t* widget, bool_t recursive);
/**
* @method scroll_view_set_offset
*
@ -300,6 +328,7 @@ ret_t scroll_view_scroll_delta_to(widget_t* widget, int32_t xoffset_delta, int32
#define SCROLL_VIEW(widget) ((scroll_view_t*)(scroll_view_cast(WIDGET(widget))))
#define SCROLL_VIEW_RECURSIVE "recursive"
#define SCROLL_VIEW_SNAP_TO_PAGE "snap_to_page"
#define SCROLL_VIEW_X_SPEED_SCALE "xspeed_scale"
#define SCROLL_VIEW_Y_SPEED_SCALE "yspeed_scale"