improve slide view

This commit is contained in:
lixianjing 2023-04-28 17:30:31 +08:00
parent 2fde66b67e
commit e6f6cefa3e
17 changed files with 181 additions and 32 deletions

View File

@ -597,6 +597,7 @@ static ret_t on_clone_self(void* ctx, event_t* e) {
static ret_t on_clone_view(void* ctx, event_t* e) {
widget_t* widget = WIDGET(ctx);
widget_t* iter = widget;
widget_t* native_window = widget_get_window(widget);
while (iter != NULL) {
if (tk_str_eq(widget_get_type(iter), WIDGET_TYPE_VIEW)) {
@ -609,7 +610,7 @@ static ret_t on_clone_view(void* ctx, event_t* e) {
widget_set_text_utf8(lb_view_index, text);
}
install_click_hander(clone);
return RET_OK;
return widget_invalidate(native_window, NULL);
}
iter = iter->parent;
}
@ -1012,6 +1013,23 @@ static ret_t on_click_scroll(void* ctx, event_t* e) {
return RET_OK;
}
static ret_t on_click_slide_view_appoint_remove_evt(void* ctx, event_t* e) {
widget_t* widget = WIDGET(ctx);
return_value_if_fail(widget != NULL, RET_BAD_PARAMS);
widget_t* native_window = widget_get_window(widget);
widget_t* slide_view = widget_lookup(widget->parent, "appoint_view", TRUE);
return_value_if_fail(slide_view != NULL, RET_BAD_PARAMS);
widget_t* spin_box = widget_lookup(widget->parent, "spin_appoint_index", TRUE);
return_value_if_fail(spin_box != NULL, RET_BAD_PARAMS);
int32_t val = edit_get_int(WIDGET(&SPIN_BOX(spin_box)->edit));
slide_view_remove_index(slide_view, val - 1);
return widget_invalidate(native_window, NULL);
}
static ret_t install_one(void* ctx, const void* iter) {
widget_t* widget = WIDGET(iter);
widget_t* win = widget_get_window(widget);
@ -1132,6 +1150,8 @@ static ret_t install_one(void* ctx, const void* iter) {
widget_on(widget, EVT_CLICK, on_click_clone_combo_box_ex, win);
} else if (strstr(name, "combo_box_ex_for_clone") == name) {
combo_box_set_on_item_click(widget, on_combo_box_ex_item_click, win);
} else if (tk_str_eq(name, "remove_appoint_index")) {
widget_on(widget, EVT_CLICK, on_click_slide_view_appoint_remove_evt, widget);
} else if (strstr(name, "scroll:") == name) {
widget_on(widget, EVT_CLICK, on_click_scroll, (void*)(name + strlen("scroll:")));
}

View File

@ -14,6 +14,7 @@
<button name="open:slide_view_remove" h="30" text="remove"/>
<button name="open:slide_view_remove_loop" h="30" text="remove loop"/>
<button name="open:slide_view_animating_time" h="30" text="animating time"/>
<button name="open:slide_view_appoint_remove" h="30" text="remove appoint index"/>
<button name="close" h="30" text="Close"/>
</scroll_view>
</window>

View File

@ -0,0 +1,20 @@
<window anim_hint="htranslate">
<slide_view x="0" y="0" w="100%" h="100%" name="appoint_view" style="dot" child_number="1">
<view x="0" y="0" w="100%" h="80%" children_layout="default(c=1,r=2)">
<label name="view_index" text="0"/>
<button x="c" w="50%" h="40" name="clone_view" text="clone"/>
</view>
<view x="0" y="0" w="100%" h="100%" children_layout="default(c=1,r=2)">
<label name="view_index" x="c" text="1"/>
<button x="c" w="50%" h="40" name="clone_view" text="clone"/>
</view>
<view x="0" y="0" w="100%" h="100%" children_layout="default(c=1,r=2)">
<label name="view_index" x="c" text="2"/>
<button x="c" w="50%" h="40" name="clone_view" text="clone"/>
</view>
</slide_view>
<spin_box x="c" y="b:90" w="50%" h="30" name="spin_appoint_index" min="1" max="99" step="1"
input_type="int" auto_fix="true"/>
<button x="c" y="b:40" w="50%" h="30" name="remove_appoint_index" text="remove"/>
<slide_indicator_arc x="0" y="b" w="100%" h="20" default_paint="stroke_dot"/>
</window>

View File

@ -2,6 +2,9 @@
2023/04/28
* 修复由于未初始化预留空间而导致的bsvg打包频繁更新问题(感谢高源提供补丁)。
* 修复slide\_view删除元素与实际页面元素不对问题(感谢高源提供补丁)。
* 修复slide\_view删除后当前选中下标元素错乱问题(感谢高源提供补丁)。
* 新增 demouiold slide\_view删除指定下标页面的测试用例(感谢高源提供补丁)。
2023/04/27
* 修复scroll\_bar滑块位置没有正确更新(感谢煜楷提供补丁)

View File

@ -188,6 +188,7 @@ extern TK_CONST_DATA_ALIGN(const unsigned char ui_text_selector_fscript[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_button_fscript[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_file_chooser_for_save[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_system_bar[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_slide_view_appoint_remove[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_accordion1[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_menu_right_bottom[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_list_view_d[]);
@ -1104,6 +1105,7 @@ ret_t assets_init_dark(void) {
assets_manager_add(am, ui_button_fscript);
assets_manager_add(am, ui_file_chooser_for_save);
assets_manager_add(am, ui_system_bar);
assets_manager_add(am, ui_slide_view_appoint_remove);
assets_manager_add(am, ui_accordion1);
assets_manager_add(am, ui_menu_right_bottom);
assets_manager_add(am, ui_list_view_d);

View File

@ -188,6 +188,7 @@
#include "default/inc/ui/button_fscript.data"
#include "default/inc/ui/file_chooser_for_save.data"
#include "default/inc/ui/system_bar.data"
#include "default/inc/ui/slide_view_appoint_remove.data"
#include "default/inc/ui/accordion1.data"
#include "default/inc/ui/menu_right_bottom.data"
#include "default/inc/ui/list_view_d.data"
@ -1104,6 +1105,7 @@ ret_t assets_init_default(void) {
assets_manager_add(am, ui_button_fscript);
assets_manager_add(am, ui_file_chooser_for_save);
assets_manager_add(am, ui_system_bar);
assets_manager_add(am, ui_slide_view_appoint_remove);
assets_manager_add(am, ui_accordion1);
assets_manager_add(am, ui_menu_right_bottom);
assets_manager_add(am, ui_list_view_d);

View File

@ -183,6 +183,7 @@ extern TK_CONST_DATA_ALIGN(const unsigned char ui_text_selector_fscript[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_button_fscript[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_file_chooser_for_save[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_system_bar[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_slide_view_appoint_remove[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_accordion1[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_menu_right_bottom[]);
extern TK_CONST_DATA_ALIGN(const unsigned char ui_list_view_d[]);
@ -720,6 +721,7 @@ ret_t assets_init_dark(void) {
assets_manager_add(am, ui_button_fscript);
assets_manager_add(am, ui_file_chooser_for_save);
assets_manager_add(am, ui_system_bar);
assets_manager_add(am, ui_slide_view_appoint_remove);
assets_manager_add(am, ui_accordion1);
assets_manager_add(am, ui_menu_right_bottom);
assets_manager_add(am, ui_list_view_d);

View File

@ -183,6 +183,7 @@
#include "default/inc/ui/button_fscript.data"
#include "default/inc/ui/file_chooser_for_save.data"
#include "default/inc/ui/system_bar.data"
#include "default/inc/ui/slide_view_appoint_remove.data"
#include "default/inc/ui/accordion1.data"
#include "default/inc/ui/menu_right_bottom.data"
#include "default/inc/ui/list_view_d.data"
@ -720,6 +721,7 @@ ret_t assets_init_default(void) {
assets_manager_add(am, ui_button_fscript);
assets_manager_add(am, ui_file_chooser_for_save);
assets_manager_add(am, ui_system_bar);
assets_manager_add(am, ui_slide_view_appoint_remove);
assets_manager_add(am, ui_accordion1);
assets_manager_add(am, ui_menu_right_bottom);
assets_manager_add(am, ui_list_view_d);

View File

@ -1,5 +1,5 @@
TK_CONST_DATA_ALIGN(const unsigned char ui_slide_view[]) = {
0x04,0x00,0x01,0x01,0x99,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6c,0x69,0x64,0x65,0x5f,0x76,0x69,
0x04,0x00,0x01,0x01,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6c,0x69,0x64,0x65,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,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,
@ -84,5 +84,11 @@ TK_CONST_DATA_ALIGN(const unsigned char ui_slide_view[]) = {
0x74,0x00,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6e,0x67,0x20,0x74,0x69,0x6d,0x65,0x00,0x00,0x00,0x62,
0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1e,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,0x00,};/*1737*/
0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x6f,0x70,0x65,0x6e,0x3a,0x73,0x6c,0x69,
0x64,0x65,0x5f,0x76,0x69,0x65,0x77,0x5f,0x61,0x70,0x70,0x6f,0x69,0x6e,0x74,0x5f,0x72,0x65,0x6d,0x6f,
0x76,0x65,0x00,0x74,0x65,0x78,0x74,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x61,0x70,0x70,0x6f,0x69,
0x6e,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,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,0x1e,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,0x00,};/*1849*/

View File

@ -0,0 +1,84 @@
TK_CONST_DATA_ALIGN(const unsigned char ui_slide_view_appoint_remove[]) = {
0x04,0x00,0x01,0x01,0x49,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6c,0x69,0x64,0x65,0x5f,0x76,0x69,
0x65,0x77,0x5f,0x61,0x70,0x70,0x6f,0x69,0x6e,0x74,0x5f,0x72,0x65,0x6d,0x6f,0x76,0x65,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,0x73,0x6c,
0x69,0x64,0x65,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,0x64,0x00,
0x00,0x00,0x64,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,
0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,
0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x61,0x70,0x70,0x6f,0x69,0x6e,
0x74,0x5f,0x76,0x69,0x65,0x77,0x00,0x73,0x74,0x79,0x6c,0x65,0x00,0x64,0x6f,0x74,0x00,0x63,0x68,0x69,
0x6c,0x64,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x00,0x31,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,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,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x38,0x30,
0x25,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,
0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x63,0x3d,0x31,0x2c,0x72,0x3d,0x32,0x29,0x00,0x00,0x6c,0x61,0x62,
0x65,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x6e,0x61,0x6d,0x65,0x00,0x76,0x69,0x65,0x77,0x5f,0x69,0x6e,0x64,0x65,0x78,
0x00,0x74,0x65,0x78,0x74,0x00,0x30,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,0x28,0x00,0x00,0x00,0x73,0x65,
0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,
0x63,0x2c,0x77,0x3d,0x35,0x30,0x25,0x2c,0x68,0x3d,0x34,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,
0x6c,0x6f,0x6e,0x65,0x5f,0x76,0x69,0x65,0x77,0x00,0x74,0x65,0x78,0x74,0x00,0x63,0x6c,0x6f,0x6e,0x65,
0x00,0x00,0x00,0x00,0x76,0x69,0x65,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,
0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x30,0x2c,0x79,0x3d,0x30,0x2c,
0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,
0x72,0x65,0x6e,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x63,
0x3d,0x31,0x2c,0x72,0x3d,0x32,0x29,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,
0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x63,
0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x76,0x69,0x65,0x77,0x5f,0x69,0x6e,0x64,0x65,0x78,0x00,0x74,0x65,
0x78,0x74,0x00,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,0x32,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,
0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x63,0x2c,0x77,
0x3d,0x35,0x30,0x25,0x2c,0x68,0x3d,0x34,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,0x6c,0x6f,0x6e,
0x65,0x5f,0x76,0x69,0x65,0x77,0x00,0x74,0x65,0x78,0x74,0x00,0x63,0x6c,0x6f,0x6e,0x65,0x00,0x00,0x00,
0x00,0x76,0x69,0x65,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,
0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x30,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x31,
0x30,0x30,0x25,0x2c,0x68,0x3d,0x31,0x30,0x30,0x25,0x29,0x00,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,
0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x63,0x3d,0x31,0x2c,
0x72,0x3d,0x32,0x29,0x00,0x00,0x6c,0x61,0x62,0x65,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,
0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x63,0x29,0x00,0x6e,
0x61,0x6d,0x65,0x00,0x76,0x69,0x65,0x77,0x5f,0x69,0x6e,0x64,0x65,0x78,0x00,0x74,0x65,0x78,0x74,0x00,
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,0x32,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,
0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x78,0x3d,0x63,0x2c,0x77,0x3d,0x35,0x30,
0x25,0x2c,0x68,0x3d,0x34,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,0x00,0x63,0x6c,0x6f,0x6e,0x65,0x5f,0x76,
0x69,0x65,0x77,0x00,0x74,0x65,0x78,0x74,0x00,0x63,0x6c,0x6f,0x6e,0x65,0x00,0x00,0x00,0x00,0x00,0x73,
0x70,0x69,0x6e,0x5f,0x62,0x6f,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x2c,0x79,0x3d,0x62,0x3a,0x39,0x30,0x2c,0x77,0x3d,
0x35,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x69,0x6e,0x70,0x75,0x74,0x5f,0x74,0x79,0x70,0x65,
0x00,0x69,0x6e,0x74,0x00,0x6e,0x61,0x6d,0x65,0x00,0x73,0x70,0x69,0x6e,0x5f,0x61,0x70,0x70,0x6f,0x69,
0x6e,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x00,0x6d,0x69,0x6e,0x00,0x31,0x00,0x6d,0x61,0x78,0x00,0x39,
0x39,0x00,0x73,0x74,0x65,0x70,0x00,0x31,0x00,0x61,0x75,0x74,0x6f,0x5f,0x66,0x69,0x78,0x00,0x74,0x72,
0x75,0x65,0x00,0x00,0x00,0x62,0x75,0x74,0x74,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,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,0x2c,0x79,0x3d,0x62,
0x3a,0x34,0x30,0x2c,0x77,0x3d,0x35,0x30,0x25,0x2c,0x68,0x3d,0x33,0x30,0x29,0x00,0x6e,0x61,0x6d,0x65,
0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5f,0x61,0x70,0x70,0x6f,0x69,0x6e,0x74,0x5f,0x69,0x6e,0x64,0x65,
0x78,0x00,0x74,0x65,0x78,0x74,0x00,0x72,0x65,0x6d,0x6f,0x76,0x65,0x00,0x00,0x00,0x73,0x6c,0x69,0x64,
0x65,0x5f,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x5f,0x61,0x72,0x63,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,
0x14,0x00,0x00,0x00,0x73,0x65,0x6c,0x66,0x5f,0x6c,0x61,0x79,0x6f,0x75,0x74,0x00,0x64,0x65,0x66,0x61,
0x75,0x6c,0x74,0x28,0x78,0x3d,0x30,0x2c,0x79,0x3d,0x62,0x2c,0x77,0x3d,0x31,0x30,0x30,0x25,0x2c,0x68,
0x3d,0x32,0x30,0x29,0x00,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x70,0x61,0x69,0x6e,0x74,0x00,0x73,
0x74,0x72,0x6f,0x6b,0x65,0x5f,0x64,0x6f,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*1657*/

View File

@ -188,6 +188,7 @@
#include "assets/default/inc/ui/button_fscript.data"
#include "assets/default/inc/ui/file_chooser_for_save.data"
#include "assets/default/inc/ui/system_bar.data"
#include "assets/default/inc/ui/slide_view_appoint_remove.data"
#include "assets/default/inc/ui/accordion1.data"
#include "assets/default/inc/ui/menu_right_bottom.data"
#include "assets/default/inc/ui/list_view_d.data"
@ -1104,6 +1105,7 @@ ret_t assets_init(void) {
assets_manager_add(am, ui_button_fscript);
assets_manager_add(am, ui_file_chooser_for_save);
assets_manager_add(am, ui_system_bar);
assets_manager_add(am, ui_slide_view_appoint_remove);
assets_manager_add(am, ui_accordion1);
assets_manager_add(am, ui_menu_right_bottom);
assets_manager_add(am, ui_list_view_d);

View File

@ -188,6 +188,7 @@
#include "assets/default/inc/ui/button_fscript.data"
#include "assets/default/inc/ui/file_chooser_for_save.data"
#include "assets/default/inc/ui/system_bar.data"
#include "assets/default/inc/ui/slide_view_appoint_remove.data"
#include "assets/default/inc/ui/accordion1.data"
#include "assets/default/inc/ui/menu_right_bottom.data"
#include "assets/default/inc/ui/list_view_d.data"
@ -1104,6 +1105,7 @@ ret_t assets_init(void) {
assets_manager_add(am, ui_button_fscript);
assets_manager_add(am, ui_file_chooser_for_save);
assets_manager_add(am, ui_system_bar);
assets_manager_add(am, ui_slide_view_appoint_remove);
assets_manager_add(am, ui_accordion1);
assets_manager_add(am, ui_menu_right_bottom);
assets_manager_add(am, ui_list_view_d);

View File

@ -183,6 +183,7 @@
#include "assets/default/inc/ui/button_fscript.data"
#include "assets/default/inc/ui/file_chooser_for_save.data"
#include "assets/default/inc/ui/system_bar.data"
#include "assets/default/inc/ui/slide_view_appoint_remove.data"
#include "assets/default/inc/ui/accordion1.data"
#include "assets/default/inc/ui/menu_right_bottom.data"
#include "assets/default/inc/ui/list_view_d.data"
@ -720,6 +721,7 @@ ret_t assets_init(void) {
assets_manager_add(am, ui_button_fscript);
assets_manager_add(am, ui_file_chooser_for_save);
assets_manager_add(am, ui_system_bar);
assets_manager_add(am, ui_slide_view_appoint_remove);
assets_manager_add(am, ui_accordion1);
assets_manager_add(am, ui_menu_right_bottom);
assets_manager_add(am, ui_list_view_d);

View File

@ -183,6 +183,7 @@
#include "assets/default/inc/ui/button_fscript.data"
#include "assets/default/inc/ui/file_chooser_for_save.data"
#include "assets/default/inc/ui/system_bar.data"
#include "assets/default/inc/ui/slide_view_appoint_remove.data"
#include "assets/default/inc/ui/accordion1.data"
#include "assets/default/inc/ui/menu_right_bottom.data"
#include "assets/default/inc/ui/list_view_d.data"
@ -720,6 +721,7 @@ ret_t assets_init(void) {
assets_manager_add(am, ui_button_fscript);
assets_manager_add(am, ui_file_chooser_for_save);
assets_manager_add(am, ui_system_bar);
assets_manager_add(am, ui_slide_view_appoint_remove);
assets_manager_add(am, ui_accordion1);
assets_manager_add(am, ui_menu_right_bottom);
assets_manager_add(am, ui_list_view_d);

View File

@ -174,8 +174,8 @@ static ret_t slide_view_on_scroll_done(void* ctx, event_t* e) {
active = active == slide_view->last_active ? active : slide_view->last_active;
}
if (slide_view->remove_when_anim_done) {
/* because of array, so do not need move item */
widget_destroy(slide_view->prev);
slide_view_set_active_no_animate_impl(widget, active, TRUE);
} else {
slide_view_set_active_no_animate(widget, active);
}
@ -950,8 +950,8 @@ static ret_t slide_view_set_active_animate(widget_t* widget, uint32_t active) {
old_active = slide_view->active;
if ((old_active < active &&
!(slide_view->loop && old_active == 0 && active == widget->children->size - 1)) ||
(slide_view->loop && active == 0 && old_active == widget->children->size - 1)) {
!(slide_view->loop && old_active == 0 && active == widget->children->size)) ||
(slide_view->loop && active == 0 && old_active == widget->children->size)) {
slide_view->prev = widget_get_child(widget, old_active);
slide_view->next = widget_get_child(widget, active);
xoffset_end = slide_view->vertical ? 0 : widget->w;
@ -1088,41 +1088,40 @@ ret_t slide_view_set_auto_play(widget_t* widget, uint16_t auto_play) {
ret_t slide_view_remove_index(widget_t* widget, uint32_t index) {
ret_t ret = RET_FAIL;
int32_t active = -1;
int32_t remove_index = -1;
int32_t current_index = -1;
slide_view_t* slide_view = SLIDE_VIEW(widget);
return_value_if_fail(widget != NULL && slide_view != NULL && widget->children != NULL,
RET_BAD_PARAMS);
return_value_if_fail(index < widget->children->size, RET_BAD_PARAMS);
active = (int32_t)slide_view->active;
return_value_if_fail(widget->children->size > 0 && index < widget->children->size,
RET_BAD_PARAMS);
if (widget->children->size > 1) {
if (index < active) {
ret = widget_destroy(widget_get_child(widget, index));
remove_index = (int32_t)index;
current_index = (int32_t)slide_view->active;
if (RET_OK == ret) {
active = tk_max(active - 1, 0);
slide_view_set_active_no_animate(widget, active);
}
} else if (index == active) {
if (index == widget->children->size - 1) {
active = slide_view->loop ? 0 : tk_max(active - 1, 0);
} else {
active++;
}
slide_view->remove_when_anim_done = TRUE;
ret = slide_view_set_active_animate(widget, active);
if (RET_OK != ret) {
slide_view->remove_when_anim_done = FALSE;
}
if (widget->children->size != 1 && remove_index == current_index) {
if (remove_index == widget->children->size - 1) {
current_index = slide_view->loop ? 0 : remove_index - 1;
} else {
ret = widget_destroy(widget_get_child(widget, active));
current_index = remove_index + 1;
}
slide_view->remove_when_anim_done = TRUE;
ret = slide_view_set_active_animate(widget, current_index);
if (ret != RET_OK) {
slide_view->remove_when_anim_done = FALSE;
}
} else {
ret = widget_destroy(widget_get_child(widget, active));
ret = remove_index < current_index ?
slide_view_set_active_no_animate(widget, current_index - 1) :
RET_OK;
if (ret == RET_OK) {
ret = widget_destroy(widget_get_child(widget, remove_index));
}
}
return ret;