Skip to content

Commit bf03470

Browse files
committed
add widget_animate_position_to/widget_animate_size_to
1 parent 770c5ec commit bf03470

27 files changed

+317
-10
lines changed

demos/demo_ui_old_app.c

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -836,6 +836,60 @@ static ret_t progress_bar_animate_delta(widget_t* win, const char* name, int32_t
836836
return RET_OK;
837837
}
838838

839+
static ret_t on_move_forward(void* ctx, event_t* e) {
840+
widget_t* win = WIDGET(ctx);
841+
widget_t* value = widget_lookup(win, "value", TRUE);
842+
widget_animate_position_to(value, value->x + 100, value->y + 100, 500);
843+
844+
(void)e;
845+
return RET_OK;
846+
}
847+
848+
static ret_t on_move_backward(void* ctx, event_t* e) {
849+
widget_t* win = WIDGET(ctx);
850+
widget_t* value = widget_lookup(win, "value", TRUE);
851+
widget_animate_position_to(value, value->x - 100, value->y - 100, 500);
852+
(void)e;
853+
854+
return RET_OK;
855+
}
856+
857+
static ret_t on_resize_inc(void* ctx, event_t* e) {
858+
widget_t* win = WIDGET(ctx);
859+
widget_t* value = widget_lookup(win, "value", TRUE);
860+
widget_animate_size_to(value, value->w + 100, value->h + 100, 500);
861+
862+
(void)e;
863+
return RET_OK;
864+
}
865+
866+
static ret_t on_resize_dec(void* ctx, event_t* e) {
867+
widget_t* win = WIDGET(ctx);
868+
widget_t* value = widget_lookup(win, "value", TRUE);
869+
widget_animate_size_to(value, value->w - 100, value->h - 100, 500);
870+
(void)e;
871+
872+
return RET_OK;
873+
}
874+
875+
static ret_t on_value_inc(void* ctx, event_t* e) {
876+
widget_t* win = WIDGET(ctx);
877+
widget_t* value = widget_lookup(win, "value", TRUE);
878+
widget_animate_value_to(value, PROGRESS_BAR(value)->value + 30, 500);
879+
880+
(void)e;
881+
return RET_OK;
882+
}
883+
884+
static ret_t on_value_dec(void* ctx, event_t* e) {
885+
widget_t* win = WIDGET(ctx);
886+
widget_t* value = widget_lookup(win, "value", TRUE);
887+
widget_animate_value_to(value, PROGRESS_BAR(value)->value - 30, 500);
888+
(void)e;
889+
890+
return RET_OK;
891+
}
892+
839893
static ret_t on_inc(void* ctx, event_t* e) {
840894
widget_t* win = WIDGET(ctx);
841895
progress_bar_animate_delta(win, "bar1", 10);
@@ -1242,6 +1296,24 @@ static ret_t install_one(void* ctx, const void* iter) {
12421296
} else if (strstr(name, "dec_value") != NULL) {
12431297
widget_t* win = widget_get_window(widget);
12441298
widget_on(widget, EVT_CLICK, on_dec, win);
1299+
} else if (tk_str_eq(name, "move_forward")) {
1300+
widget_t* win = widget_get_window(widget);
1301+
widget_on(widget, EVT_CLICK, on_move_forward, win);
1302+
} else if (tk_str_eq(name, "move_backward")) {
1303+
widget_t* win = widget_get_window(widget);
1304+
widget_on(widget, EVT_CLICK, on_move_backward, win);
1305+
} else if (tk_str_eq(name, "resize_inc")) {
1306+
widget_t* win = widget_get_window(widget);
1307+
widget_on(widget, EVT_CLICK, on_resize_inc, win);
1308+
} else if (tk_str_eq(name, "resize_dec")) {
1309+
widget_t* win = widget_get_window(widget);
1310+
widget_on(widget, EVT_CLICK, on_resize_dec, win);
1311+
} else if (tk_str_eq(name, "value_inc")) {
1312+
widget_t* win = widget_get_window(widget);
1313+
widget_on(widget, EVT_CLICK, on_value_inc, win);
1314+
} else if (tk_str_eq(name, "value_dec")) {
1315+
widget_t* win = widget_get_window(widget);
1316+
widget_on(widget, EVT_CLICK, on_value_dec, win);
12451317
} else if (tk_str_eq(name, "close")) {
12461318
widget_on(widget, EVT_CLICK, on_close, win);
12471319
} else if (tk_str_eq(name, "widget_layout")) {

design/default/ui/animate_widget.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,8 @@
22
<button name="open:animator" text="Animate"/>
33
<button name="open:value_anim" text="Value Change Animate"/>
44
<button name="open:animator_layout" text="layout"/>
5+
<button name="open:animator_move" text="Animate Move"/>
6+
<button name="open:animator_resize" text="Animate Resize"/>
7+
<button name="open:animator_value" text="Animate Value"/>
58
<button name="close" text="Close"/>
69
</window>

design/default/ui/animator_move.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<window>
2+
<progress_bar name="value" x="0" y="0" w="100" h="30" />
3+
4+
<button name="move_forward" x="10" y="bottom:10" w="25%" h="30" text="+"/>
5+
<button name="move_backward" x="center" y="bottom:10" w="25%" h="30" text="-"/>
6+
<button name="close" x="r:10" y="bottom:10" w="25%" h="30" text="Close"/>
7+
</window>

design/default/ui/animator_resize.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<window>
2+
<progress_bar name="value" x="0" y="0" w="100" h="30" />
3+
4+
<button name="resize_inc" x="10" y="bottom:10" w="25%" h="30" text="+"/>
5+
<button name="resize_dec" x="center" y="bottom:10" w="25%" h="30" text="-"/>
6+
<button name="close" x="r:10" y="bottom:10" w="25%" h="30" text="Close"/>
7+
</window>

design/default/ui/animator_value.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<window>
2+
<progress_bar name="value" x="center" y="m" w="90%" h="30" />
3+
4+
<button name="value_inc" x="10" y="bottom:10" w="25%" h="30" text="+"/>
5+
<button name="value_dec" x="center" y="bottom:10" w="25%" h="30" text="-"/>
6+
<button name="close" x="r:10" y="bottom:10" w="25%" h="30" text="Close"/>
7+
</window>

docs/changes.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
2025/07/24
33
* 删除多余的path_extname_is原型声明(感谢兆坤发现问题)
44
* 修复api comment
5+
* 增加 widget_animate_position_to/widget_animate_size_to
6+
* 公开 widget_animate_prop_float_to
57

68
2025/07/23
79
* 优化了linux和macos系统中awtk程序搜索动态库的路径,程序加载时会自动搜索同目录的动态库文件 (感谢陈谭提供补丁)

res/assets.inc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ static ret_t assets_init_internal(const char* theme) {
3838
#if !defined(WITH_FS_RES) || defined(AWTK_WEB)
3939
static ret_t widget_set_theme_without_file_system(widget_t* widget, const char* name) {
4040
const asset_info_t* info = NULL;
41-
event_t e = event_init(EVT_THEME_CHANGED, NULL);
41+
theme_change_event_t event;
42+
event_t* e = theme_change_event_init(&event, EVT_THEME_CHANGED, name);
4243
widget_t* wm = widget_get_window_manager(widget);
4344
font_manager_t* fm = widget_get_font_manager(widget);
4445
image_manager_t* imm = widget_get_image_manager(widget);
@@ -60,7 +61,7 @@ static ret_t widget_set_theme_without_file_system(widget_t* widget, const char*
6061
theme_set_theme_data(theme(), info->data);
6162
assets_manager_unref(assets_manager(), info);
6263

63-
widget_dispatch(wm, &e);
64+
widget_dispatch(wm, e);
6465
widget_invalidate_force(wm, NULL);
6566

6667
log_debug("theme changed: %s\n", name);

res/assets/__assets_all_dark.inc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ extern TK_CONST_DATA_ALIGN(const unsigned char ui_kb_phone_default[]);
6161
extern TK_CONST_DATA_ALIGN(const unsigned char ui_tab_scrollable_default[]);
6262
extern TK_CONST_DATA_ALIGN(const unsigned char ui_main_default[]);
6363
extern TK_CONST_DATA_ALIGN(const unsigned char ui_image_anchor_default[]);
64+
extern TK_CONST_DATA_ALIGN(const unsigned char ui_animator_move_default[]);
6465
extern TK_CONST_DATA_ALIGN(const unsigned char ui_tab_button_view_page1_default[]);
6566
extern TK_CONST_DATA_ALIGN(const unsigned char ui_digit_clock_default[]);
6667
extern TK_CONST_DATA_ALIGN(const unsigned char ui_scroll_bar_default[]);
@@ -89,6 +90,7 @@ extern TK_CONST_DATA_ALIGN(const unsigned char ui_basic_fscript_default[]);
8990
extern TK_CONST_DATA_ALIGN(const unsigned char ui_kb_int_floating_default[]);
9091
extern TK_CONST_DATA_ALIGN(const unsigned char ui_keyboard_default[]);
9192
extern TK_CONST_DATA_ALIGN(const unsigned char ui_kb_hex_default[]);
93+
extern TK_CONST_DATA_ALIGN(const unsigned char ui_animator_value_default[]);
9294
extern TK_CONST_DATA_ALIGN(const unsigned char ui_gauge_h_default[]);
9395
extern TK_CONST_DATA_ALIGN(const unsigned char ui_popdown_default[]);
9496
extern TK_CONST_DATA_ALIGN(const unsigned char ui_svg_test_default[]);
@@ -218,6 +220,7 @@ extern TK_CONST_DATA_ALIGN(const unsigned char ui_kb_default_default[]);
218220
extern TK_CONST_DATA_ALIGN(const unsigned char ui_tab_button_view_page2_default[]);
219221
extern TK_CONST_DATA_ALIGN(const unsigned char ui_slide_view_remove_loop_default[]);
220222
extern TK_CONST_DATA_ALIGN(const unsigned char ui_slide_up_default[]);
223+
extern TK_CONST_DATA_ALIGN(const unsigned char ui_animator_resize_default[]);
221224
extern TK_CONST_DATA_ALIGN(const unsigned char ui_rich_text2_default[]);
222225
extern TK_CONST_DATA_ALIGN(const unsigned char ui_list_view_h_default[]);
223226
extern TK_CONST_DATA_ALIGN(const unsigned char ui_floating_keyboard_default[]);
@@ -1003,6 +1006,7 @@ ret_t assets_init_dark(void) {
10031006
assets_manager_add(am, ui_tab_scrollable_default);
10041007
assets_manager_add(am, ui_main_default);
10051008
assets_manager_add(am, ui_image_anchor_default);
1009+
assets_manager_add(am, ui_animator_move_default);
10061010
assets_manager_add(am, ui_tab_button_view_page1_default);
10071011
assets_manager_add(am, ui_digit_clock_default);
10081012
assets_manager_add(am, ui_scroll_bar_default);
@@ -1031,6 +1035,7 @@ ret_t assets_init_dark(void) {
10311035
assets_manager_add(am, ui_kb_int_floating_default);
10321036
assets_manager_add(am, ui_keyboard_default);
10331037
assets_manager_add(am, ui_kb_hex_default);
1038+
assets_manager_add(am, ui_animator_value_default);
10341039
assets_manager_add(am, ui_gauge_h_default);
10351040
assets_manager_add(am, ui_popdown_default);
10361041
assets_manager_add(am, ui_svg_test_default);
@@ -1160,6 +1165,7 @@ ret_t assets_init_dark(void) {
11601165
assets_manager_add(am, ui_tab_button_view_page2_default);
11611166
assets_manager_add(am, ui_slide_view_remove_loop_default);
11621167
assets_manager_add(am, ui_slide_up_default);
1168+
assets_manager_add(am, ui_animator_resize_default);
11631169
assets_manager_add(am, ui_rich_text2_default);
11641170
assets_manager_add(am, ui_list_view_h_default);
11651171
assets_manager_add(am, ui_floating_keyboard_default);

res/assets/__assets_all_default.inc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
#include "default/inc/ui/tab_scrollable.data"
6262
#include "default/inc/ui/main.data"
6363
#include "default/inc/ui/image_anchor.data"
64+
#include "default/inc/ui/animator_move.data"
6465
#include "default/inc/ui/tab_button_view_page1.data"
6566
#include "default/inc/ui/digit_clock.data"
6667
#include "default/inc/ui/scroll_bar.data"
@@ -89,6 +90,7 @@
8990
#include "default/inc/ui/kb_int_floating.data"
9091
#include "default/inc/ui/keyboard.data"
9192
#include "default/inc/ui/kb_hex.data"
93+
#include "default/inc/ui/animator_value.data"
9294
#include "default/inc/ui/gauge_h.data"
9395
#include "default/inc/ui/popdown.data"
9496
#include "default/inc/ui/svg_test.data"
@@ -218,6 +220,7 @@
218220
#include "default/inc/ui/tab_button_view_page2.data"
219221
#include "default/inc/ui/slide_view_remove_loop.data"
220222
#include "default/inc/ui/slide_up.data"
223+
#include "default/inc/ui/animator_resize.data"
221224
#include "default/inc/ui/rich_text2.data"
222225
#include "default/inc/ui/list_view_h.data"
223226
#include "default/inc/ui/floating_keyboard.data"
@@ -1003,6 +1006,7 @@ ret_t assets_init_default(void) {
10031006
assets_manager_add(am, ui_tab_scrollable_default);
10041007
assets_manager_add(am, ui_main_default);
10051008
assets_manager_add(am, ui_image_anchor_default);
1009+
assets_manager_add(am, ui_animator_move_default);
10061010
assets_manager_add(am, ui_tab_button_view_page1_default);
10071011
assets_manager_add(am, ui_digit_clock_default);
10081012
assets_manager_add(am, ui_scroll_bar_default);
@@ -1031,6 +1035,7 @@ ret_t assets_init_default(void) {
10311035
assets_manager_add(am, ui_kb_int_floating_default);
10321036
assets_manager_add(am, ui_keyboard_default);
10331037
assets_manager_add(am, ui_kb_hex_default);
1038+
assets_manager_add(am, ui_animator_value_default);
10341039
assets_manager_add(am, ui_gauge_h_default);
10351040
assets_manager_add(am, ui_popdown_default);
10361041
assets_manager_add(am, ui_svg_test_default);
@@ -1160,6 +1165,7 @@ ret_t assets_init_default(void) {
11601165
assets_manager_add(am, ui_tab_button_view_page2_default);
11611166
assets_manager_add(am, ui_slide_view_remove_loop_default);
11621167
assets_manager_add(am, ui_slide_up_default);
1168+
assets_manager_add(am, ui_animator_resize_default);
11631169
assets_manager_add(am, ui_rich_text2_default);
11641170
assets_manager_add(am, ui_list_view_h_default);
11651171
assets_manager_add(am, ui_floating_keyboard_default);

res/assets/__assets_old_dark.inc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ extern TK_CONST_DATA_ALIGN(const unsigned char ui_kb_phone_default[]);
5858
extern TK_CONST_DATA_ALIGN(const unsigned char ui_tab_scrollable_default[]);
5959
extern TK_CONST_DATA_ALIGN(const unsigned char ui_main_default[]);
6060
extern TK_CONST_DATA_ALIGN(const unsigned char ui_image_anchor_default[]);
61+
extern TK_CONST_DATA_ALIGN(const unsigned char ui_animator_move_default[]);
6162
extern TK_CONST_DATA_ALIGN(const unsigned char ui_tab_button_view_page1_default[]);
6263
extern TK_CONST_DATA_ALIGN(const unsigned char ui_digit_clock_default[]);
6364
extern TK_CONST_DATA_ALIGN(const unsigned char ui_scroll_bar_default[]);
@@ -86,6 +87,7 @@ extern TK_CONST_DATA_ALIGN(const unsigned char ui_basic_fscript_default[]);
8687
extern TK_CONST_DATA_ALIGN(const unsigned char ui_kb_int_floating_default[]);
8788
extern TK_CONST_DATA_ALIGN(const unsigned char ui_keyboard_default[]);
8889
extern TK_CONST_DATA_ALIGN(const unsigned char ui_kb_hex_default[]);
90+
extern TK_CONST_DATA_ALIGN(const unsigned char ui_animator_value_default[]);
8991
extern TK_CONST_DATA_ALIGN(const unsigned char ui_gauge_h_default[]);
9092
extern TK_CONST_DATA_ALIGN(const unsigned char ui_popdown_default[]);
9193
extern TK_CONST_DATA_ALIGN(const unsigned char ui_svg_test_default[]);
@@ -215,6 +217,7 @@ extern TK_CONST_DATA_ALIGN(const unsigned char ui_kb_default_default[]);
215217
extern TK_CONST_DATA_ALIGN(const unsigned char ui_tab_button_view_page2_default[]);
216218
extern TK_CONST_DATA_ALIGN(const unsigned char ui_slide_view_remove_loop_default[]);
217219
extern TK_CONST_DATA_ALIGN(const unsigned char ui_slide_up_default[]);
220+
extern TK_CONST_DATA_ALIGN(const unsigned char ui_animator_resize_default[]);
218221
extern TK_CONST_DATA_ALIGN(const unsigned char ui_rich_text2_default[]);
219222
extern TK_CONST_DATA_ALIGN(const unsigned char ui_list_view_h_default[]);
220223
extern TK_CONST_DATA_ALIGN(const unsigned char ui_floating_keyboard_default[]);
@@ -623,6 +626,7 @@ ret_t assets_init_dark(void) {
623626
assets_manager_add(am, ui_tab_scrollable_default);
624627
assets_manager_add(am, ui_main_default);
625628
assets_manager_add(am, ui_image_anchor_default);
629+
assets_manager_add(am, ui_animator_move_default);
626630
assets_manager_add(am, ui_tab_button_view_page1_default);
627631
assets_manager_add(am, ui_digit_clock_default);
628632
assets_manager_add(am, ui_scroll_bar_default);
@@ -651,6 +655,7 @@ ret_t assets_init_dark(void) {
651655
assets_manager_add(am, ui_kb_int_floating_default);
652656
assets_manager_add(am, ui_keyboard_default);
653657
assets_manager_add(am, ui_kb_hex_default);
658+
assets_manager_add(am, ui_animator_value_default);
654659
assets_manager_add(am, ui_gauge_h_default);
655660
assets_manager_add(am, ui_popdown_default);
656661
assets_manager_add(am, ui_svg_test_default);
@@ -780,6 +785,7 @@ ret_t assets_init_dark(void) {
780785
assets_manager_add(am, ui_tab_button_view_page2_default);
781786
assets_manager_add(am, ui_slide_view_remove_loop_default);
782787
assets_manager_add(am, ui_slide_up_default);
788+
assets_manager_add(am, ui_animator_resize_default);
783789
assets_manager_add(am, ui_rich_text2_default);
784790
assets_manager_add(am, ui_list_view_h_default);
785791
assets_manager_add(am, ui_floating_keyboard_default);

0 commit comments

Comments
 (0)