mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-29 22:56:58 +08:00
fix(anim) fix anim_exec_cb casts
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
#include "../../../lvgl.h"
|
#include "../../../lvgl.h"
|
||||||
#if LV_USE_FLEX && LV_BUILD_EXAMPLES
|
#if LV_USE_FLEX && LV_BUILD_EXAMPLES
|
||||||
|
|
||||||
static void row_gap_anim(lv_obj_t * obj, int32_t v)
|
static void row_gap_anim(void * obj, int32_t v)
|
||||||
{
|
{
|
||||||
lv_obj_set_style_pad_row(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
lv_obj_set_style_pad_row(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void column_gap_anim(lv_obj_t * obj, int32_t v)
|
static void column_gap_anim(void * obj, int32_t v)
|
||||||
{
|
{
|
||||||
lv_obj_set_style_pad_column(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
lv_obj_set_style_pad_column(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
||||||
}
|
}
|
||||||
@@ -37,12 +37,12 @@ void lv_example_flex_5(void)
|
|||||||
lv_anim_set_values(&a, 0, 10);
|
lv_anim_set_values(&a, 0, 10);
|
||||||
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
||||||
|
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) row_gap_anim);
|
lv_anim_set_exec_cb(&a, row_gap_anim);
|
||||||
lv_anim_set_time(&a, 500);
|
lv_anim_set_time(&a, 500);
|
||||||
lv_anim_set_playback_time(&a, 500);
|
lv_anim_set_playback_time(&a, 500);
|
||||||
lv_anim_start(&a);
|
lv_anim_start(&a);
|
||||||
|
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) column_gap_anim);
|
lv_anim_set_exec_cb(&a, column_gap_anim);
|
||||||
lv_anim_set_time(&a, 3000);
|
lv_anim_set_time(&a, 3000);
|
||||||
lv_anim_set_playback_time(&a, 3000);
|
lv_anim_set_playback_time(&a, 3000);
|
||||||
lv_anim_start(&a);
|
lv_anim_start(&a);
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
#include "../../../lvgl.h"
|
#include "../../../lvgl.h"
|
||||||
#if LV_USE_GRID && LV_BUILD_EXAMPLES
|
#if LV_USE_GRID && LV_BUILD_EXAMPLES
|
||||||
|
|
||||||
static void row_gap_anim(lv_obj_t * obj, int32_t v)
|
static void row_gap_anim(void * obj, int32_t v)
|
||||||
{
|
{
|
||||||
lv_obj_set_style_pad_row(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
lv_obj_set_style_pad_row(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void column_gap_anim(lv_obj_t * obj, int32_t v)
|
static void column_gap_anim(void * obj, int32_t v)
|
||||||
{
|
{
|
||||||
lv_obj_set_style_pad_column(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
lv_obj_set_style_pad_column(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
||||||
}
|
}
|
||||||
@@ -51,12 +51,12 @@ void lv_example_grid_5(void)
|
|||||||
lv_anim_set_values(&a, 0, 10);
|
lv_anim_set_values(&a, 0, 10);
|
||||||
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
||||||
|
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) row_gap_anim);
|
lv_anim_set_exec_cb(&a, row_gap_anim);
|
||||||
lv_anim_set_time(&a, 500);
|
lv_anim_set_time(&a, 500);
|
||||||
lv_anim_set_playback_time(&a, 500);
|
lv_anim_set_playback_time(&a, 500);
|
||||||
lv_anim_start(&a);
|
lv_anim_start(&a);
|
||||||
|
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) column_gap_anim);
|
lv_anim_set_exec_cb(&a, column_gap_anim);
|
||||||
lv_anim_set_time(&a, 3000);
|
lv_anim_set_time(&a, 3000);
|
||||||
lv_anim_set_playback_time(&a, 3000);
|
lv_anim_set_playback_time(&a, 3000);
|
||||||
lv_anim_start(&a);
|
lv_anim_start(&a);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "../../../lvgl.h"
|
#include "../../../lvgl.h"
|
||||||
#if LV_USE_BAR && LV_BUILD_EXAMPLES
|
#if LV_USE_BAR && LV_BUILD_EXAMPLES
|
||||||
|
|
||||||
static void set_value(lv_obj_t *bar, int32_t v)
|
static void set_value(void *bar, int32_t v)
|
||||||
{
|
{
|
||||||
lv_bar_set_value(bar, v, LV_ANIM_OFF);
|
lv_bar_set_value(bar, v, LV_ANIM_OFF);
|
||||||
}
|
}
|
||||||
@@ -62,7 +62,7 @@ void lv_example_bar_6(void)
|
|||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, bar);
|
lv_anim_set_var(&a, bar);
|
||||||
lv_anim_set_values(&a, 0, 100);
|
lv_anim_set_values(&a, 0, 100);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) set_value);
|
lv_anim_set_exec_cb(&a, set_value);
|
||||||
lv_anim_set_time(&a, 2000);
|
lv_anim_set_time(&a, 2000);
|
||||||
lv_anim_set_playback_time(&a, 2000);
|
lv_anim_set_playback_time(&a, 2000);
|
||||||
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
#include "../../../lvgl.h"
|
#include "../../../lvgl.h"
|
||||||
#if LV_USE_IMG && LV_BUILD_EXAMPLES
|
#if LV_USE_IMG && LV_BUILD_EXAMPLES
|
||||||
|
|
||||||
|
static void ofs_y_anim(void * img, int32_t v)
|
||||||
|
{
|
||||||
|
lv_img_set_offset_y(img, v);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image styling and offset
|
* Image styling and offset
|
||||||
*/
|
*/
|
||||||
@@ -24,7 +29,7 @@ void lv_example_img_4(void)
|
|||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, img);
|
lv_anim_set_var(&a, img);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)lv_img_set_offset_y);
|
lv_anim_set_exec_cb(&a, ofs_y_anim);
|
||||||
lv_anim_set_values(&a, 0, 100);
|
lv_anim_set_values(&a, 0, 100);
|
||||||
lv_anim_set_time(&a, 3000);
|
lv_anim_set_time(&a, 3000);
|
||||||
lv_anim_set_playback_time(&a, 500);
|
lv_anim_set_playback_time(&a, 500);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
static lv_obj_t * meter;
|
static lv_obj_t * meter;
|
||||||
|
|
||||||
static void set_value(lv_meter_indicator_t * indic, int32_t v)
|
static void set_value(void * indic, int32_t v)
|
||||||
{
|
{
|
||||||
lv_meter_set_indicator_value(meter, indic, v);
|
lv_meter_set_indicator_value(meter, indic, v);
|
||||||
}
|
}
|
||||||
@@ -39,7 +39,7 @@ void lv_example_meter_1(void)
|
|||||||
/*Create an animation to set the value*/
|
/*Create an animation to set the value*/
|
||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) set_value);
|
lv_anim_set_exec_cb(&a, set_value);
|
||||||
lv_anim_set_var(&a, indic);
|
lv_anim_set_var(&a, indic);
|
||||||
lv_anim_set_values(&a, 0, 100);
|
lv_anim_set_values(&a, 0, 100);
|
||||||
lv_anim_set_time(&a, 2000);
|
lv_anim_set_time(&a, 2000);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
static lv_obj_t * meter;
|
static lv_obj_t * meter;
|
||||||
|
|
||||||
static void set_value(lv_meter_indicator_t * indic, int32_t v)
|
static void set_value(void * indic, int32_t v)
|
||||||
{
|
{
|
||||||
lv_meter_set_indicator_end_value(meter, indic, v);
|
lv_meter_set_indicator_end_value(meter, indic, v);
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ void lv_example_meter_2(void)
|
|||||||
/*Create an animation to set the value*/
|
/*Create an animation to set the value*/
|
||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) set_value);
|
lv_anim_set_exec_cb(&a, set_value);
|
||||||
lv_anim_set_values(&a, 0, 100);
|
lv_anim_set_values(&a, 0, 100);
|
||||||
lv_anim_set_repeat_delay(&a, 100);
|
lv_anim_set_repeat_delay(&a, 100);
|
||||||
lv_anim_set_playback_delay(&a, 100);
|
lv_anim_set_playback_delay(&a, 100);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
static lv_obj_t * meter;
|
static lv_obj_t * meter;
|
||||||
|
|
||||||
static void set_value(lv_meter_indicator_t * indic, int32_t v)
|
static void set_value(void * indic, int32_t v)
|
||||||
{
|
{
|
||||||
lv_meter_set_indicator_end_value(meter, indic, v);
|
lv_meter_set_indicator_end_value(meter, indic, v);
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,7 @@ void lv_example_meter_3(void)
|
|||||||
/*Create an animation to set the value*/
|
/*Create an animation to set the value*/
|
||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) set_value);
|
lv_anim_set_exec_cb(&a, set_value);
|
||||||
lv_anim_set_values(&a, 0, 60);
|
lv_anim_set_values(&a, 0, 60);
|
||||||
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
||||||
lv_anim_set_time(&a, 2000); /*2 sec for 1 turn of the minute hand (1 hour)*/
|
lv_anim_set_time(&a, 2000); /*2 sec for 1 turn of the minute hand (1 hour)*/
|
||||||
|
|||||||
+28
-16
@@ -23,7 +23,9 @@
|
|||||||
**********************/
|
**********************/
|
||||||
|
|
||||||
static void scr_load_anim_start(lv_anim_t * a);
|
static void scr_load_anim_start(lv_anim_t * a);
|
||||||
static void opa_scale_anim(lv_obj_t * obj, int32_t v);
|
static void opa_scale_anim(void * obj, int32_t v);
|
||||||
|
static void set_x_anim(void * obj, int32_t v);
|
||||||
|
static void set_y_anim(void * obj, int32_t v);
|
||||||
static void scr_anim_ready(lv_anim_t * a);
|
static void scr_anim_ready(lv_anim_t * a);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
@@ -238,56 +240,56 @@ void lv_scr_load_anim(lv_obj_t * new_scr, lv_scr_load_anim_t anim_type, uint32_t
|
|||||||
switch(anim_type) {
|
switch(anim_type) {
|
||||||
case LV_SCR_LOAD_ANIM_NONE:
|
case LV_SCR_LOAD_ANIM_NONE:
|
||||||
/* Create a dummy animation to apply the delay*/
|
/* Create a dummy animation to apply the delay*/
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_x);
|
lv_anim_set_exec_cb(&a_new, set_x_anim);
|
||||||
lv_anim_set_values(&a_new, 0, 0);
|
lv_anim_set_values(&a_new, 0, 0);
|
||||||
break;
|
break;
|
||||||
case LV_SCR_LOAD_ANIM_OVER_LEFT:
|
case LV_SCR_LOAD_ANIM_OVER_LEFT:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_x);
|
lv_anim_set_exec_cb(&a_new, set_x_anim);
|
||||||
lv_anim_set_values(&a_new, lv_disp_get_hor_res(d), 0);
|
lv_anim_set_values(&a_new, lv_disp_get_hor_res(d), 0);
|
||||||
break;
|
break;
|
||||||
case LV_SCR_LOAD_ANIM_OVER_RIGHT:
|
case LV_SCR_LOAD_ANIM_OVER_RIGHT:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_x);
|
lv_anim_set_exec_cb(&a_new, set_x_anim);
|
||||||
lv_anim_set_values(&a_new, -lv_disp_get_hor_res(d), 0);
|
lv_anim_set_values(&a_new, -lv_disp_get_hor_res(d), 0);
|
||||||
break;
|
break;
|
||||||
case LV_SCR_LOAD_ANIM_OVER_TOP:
|
case LV_SCR_LOAD_ANIM_OVER_TOP:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_y);
|
lv_anim_set_exec_cb(&a_new, set_y_anim);
|
||||||
lv_anim_set_values(&a_new, lv_disp_get_ver_res(d), 0);
|
lv_anim_set_values(&a_new, lv_disp_get_ver_res(d), 0);
|
||||||
break;
|
break;
|
||||||
case LV_SCR_LOAD_ANIM_OVER_BOTTOM:
|
case LV_SCR_LOAD_ANIM_OVER_BOTTOM:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_y);
|
lv_anim_set_exec_cb(&a_new, set_y_anim);
|
||||||
lv_anim_set_values(&a_new, -lv_disp_get_ver_res(d), 0);
|
lv_anim_set_values(&a_new, -lv_disp_get_ver_res(d), 0);
|
||||||
break;
|
break;
|
||||||
case LV_SCR_LOAD_ANIM_MOVE_LEFT:
|
case LV_SCR_LOAD_ANIM_MOVE_LEFT:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_x);
|
lv_anim_set_exec_cb(&a_new, set_x_anim);
|
||||||
lv_anim_set_values(&a_new, lv_disp_get_hor_res(d), 0);
|
lv_anim_set_values(&a_new, lv_disp_get_hor_res(d), 0);
|
||||||
|
|
||||||
lv_anim_set_exec_cb(&a_old, (lv_anim_exec_xcb_t) lv_obj_set_x);
|
lv_anim_set_exec_cb(&a_old, set_x_anim);
|
||||||
lv_anim_set_values(&a_old, 0, -lv_disp_get_hor_res(d));
|
lv_anim_set_values(&a_old, 0, -lv_disp_get_hor_res(d));
|
||||||
break;
|
break;
|
||||||
case LV_SCR_LOAD_ANIM_MOVE_RIGHT:
|
case LV_SCR_LOAD_ANIM_MOVE_RIGHT:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_x);
|
lv_anim_set_exec_cb(&a_new, set_x_anim);
|
||||||
lv_anim_set_values(&a_new, -lv_disp_get_hor_res(d), 0);
|
lv_anim_set_values(&a_new, -lv_disp_get_hor_res(d), 0);
|
||||||
|
|
||||||
lv_anim_set_exec_cb(&a_old, (lv_anim_exec_xcb_t) lv_obj_set_x);
|
lv_anim_set_exec_cb(&a_old, set_x_anim);
|
||||||
lv_anim_set_values(&a_old, 0, lv_disp_get_hor_res(d));
|
lv_anim_set_values(&a_old, 0, lv_disp_get_hor_res(d));
|
||||||
break;
|
break;
|
||||||
case LV_SCR_LOAD_ANIM_MOVE_TOP:
|
case LV_SCR_LOAD_ANIM_MOVE_TOP:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_y);
|
lv_anim_set_exec_cb(&a_new, set_y_anim);
|
||||||
lv_anim_set_values(&a_new, lv_disp_get_ver_res(d), 0);
|
lv_anim_set_values(&a_new, lv_disp_get_ver_res(d), 0);
|
||||||
|
|
||||||
lv_anim_set_exec_cb(&a_old, (lv_anim_exec_xcb_t) lv_obj_set_y);
|
lv_anim_set_exec_cb(&a_old, set_y_anim);
|
||||||
lv_anim_set_values(&a_old, 0, -lv_disp_get_ver_res(d));
|
lv_anim_set_values(&a_old, 0, -lv_disp_get_ver_res(d));
|
||||||
break;
|
break;
|
||||||
case LV_SCR_LOAD_ANIM_MOVE_BOTTOM:
|
case LV_SCR_LOAD_ANIM_MOVE_BOTTOM:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) lv_obj_set_y);
|
lv_anim_set_exec_cb(&a_new, set_y_anim);
|
||||||
lv_anim_set_values(&a_new, -lv_disp_get_ver_res(d), 0);
|
lv_anim_set_values(&a_new, -lv_disp_get_ver_res(d), 0);
|
||||||
|
|
||||||
lv_anim_set_exec_cb(&a_old, (lv_anim_exec_xcb_t) lv_obj_set_y);
|
lv_anim_set_exec_cb(&a_old, set_y_anim);
|
||||||
lv_anim_set_values(&a_old, 0, lv_disp_get_ver_res(d));
|
lv_anim_set_values(&a_old, 0, lv_disp_get_ver_res(d));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LV_SCR_LOAD_ANIM_FADE_ON:
|
case LV_SCR_LOAD_ANIM_FADE_ON:
|
||||||
lv_anim_set_exec_cb(&a_new, (lv_anim_exec_xcb_t) opa_scale_anim);
|
lv_anim_set_exec_cb(&a_new, opa_scale_anim);
|
||||||
lv_anim_set_values(&a_new, LV_OPA_TRANSP, LV_OPA_COVER);
|
lv_anim_set_values(&a_new, LV_OPA_TRANSP, LV_OPA_COVER);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -377,11 +379,21 @@ static void scr_load_anim_start(lv_anim_t * a)
|
|||||||
lv_disp_load_scr(a->var);
|
lv_disp_load_scr(a->var);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void opa_scale_anim(lv_obj_t * obj, int32_t v)
|
static void opa_scale_anim(void * obj, int32_t v)
|
||||||
{
|
{
|
||||||
lv_obj_set_style_opa(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
lv_obj_set_style_opa(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void set_x_anim(void * obj, int32_t v)
|
||||||
|
{
|
||||||
|
lv_obj_set_x(obj, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void set_y_anim(void * obj, int32_t v)
|
||||||
|
{
|
||||||
|
lv_obj_set_y(obj, v);
|
||||||
|
}
|
||||||
|
|
||||||
static void scr_anim_ready(lv_anim_t * a)
|
static void scr_anim_ready(lv_anim_t * a)
|
||||||
{
|
{
|
||||||
lv_disp_t * d = lv_obj_get_disp(a->var);
|
lv_disp_t * d = lv_obj_get_disp(a->var);
|
||||||
|
|||||||
+14
-14
@@ -28,8 +28,8 @@ void lv_obj_move_children_by(lv_obj_t * obj, lv_coord_t x_diff, lv_coord_t y_dif
|
|||||||
/**********************
|
/**********************
|
||||||
* STATIC PROTOTYPES
|
* STATIC PROTOTYPES
|
||||||
**********************/
|
**********************/
|
||||||
static void scroll_anim_x_cb(lv_obj_t * obj, int32_t v);
|
static void scroll_x_anim(void * obj, int32_t v);
|
||||||
static void scroll_anim_y_cb(lv_obj_t * obj, int32_t v);
|
static void scroll_y_anim(void * obj, int32_t v);
|
||||||
static void scroll_anim_ready_cb(lv_anim_t * a);
|
static void scroll_anim_ready_cb(lv_anim_t * a);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
@@ -219,10 +219,10 @@ lv_coord_t lv_obj_get_scroll_right(lv_obj_t * obj)
|
|||||||
void lv_obj_get_scroll_end(struct _lv_obj_t * obj, lv_point_t * end)
|
void lv_obj_get_scroll_end(struct _lv_obj_t * obj, lv_point_t * end)
|
||||||
{
|
{
|
||||||
lv_anim_t * a;
|
lv_anim_t * a;
|
||||||
a = lv_anim_get(obj, (lv_anim_exec_xcb_t)scroll_anim_x_cb);
|
a = lv_anim_get(obj, scroll_x_anim);
|
||||||
end->x = a ? -a->end : lv_obj_get_scroll_x(obj);
|
end->x = a ? -a->end : lv_obj_get_scroll_x(obj);
|
||||||
|
|
||||||
a = lv_anim_get(obj, (lv_anim_exec_xcb_t)scroll_anim_y_cb);
|
a = lv_anim_get(obj, scroll_y_anim);
|
||||||
end->y = a ? -a->end : lv_obj_get_scroll_y(obj);
|
end->y = a ? -a->end : lv_obj_get_scroll_y(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,7 +273,7 @@ void lv_obj_scroll_by(lv_obj_t * obj, lv_coord_t x, lv_coord_t y, lv_anim_enable
|
|||||||
lv_anim_set_time(&a, t);
|
lv_anim_set_time(&a, t);
|
||||||
lv_coord_t sx = lv_obj_get_scroll_x(obj);
|
lv_coord_t sx = lv_obj_get_scroll_x(obj);
|
||||||
lv_anim_set_values(&a, -sx, -sx + x);
|
lv_anim_set_values(&a, -sx, -sx + x);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) scroll_anim_x_cb);
|
lv_anim_set_exec_cb(&a, scroll_x_anim);
|
||||||
lv_anim_set_path(&a, &path);
|
lv_anim_set_path(&a, &path);
|
||||||
lv_anim_start(&a);
|
lv_anim_start(&a);
|
||||||
}
|
}
|
||||||
@@ -292,14 +292,14 @@ void lv_obj_scroll_by(lv_obj_t * obj, lv_coord_t x, lv_coord_t y, lv_anim_enable
|
|||||||
lv_anim_set_time(&a, t);
|
lv_anim_set_time(&a, t);
|
||||||
lv_coord_t sy = lv_obj_get_scroll_y(obj);
|
lv_coord_t sy = lv_obj_get_scroll_y(obj);
|
||||||
lv_anim_set_values(&a, -sy, -sy + y);
|
lv_anim_set_values(&a, -sy, -sy + y);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t) scroll_anim_y_cb);
|
lv_anim_set_exec_cb(&a, scroll_y_anim);
|
||||||
lv_anim_set_path(&a, &path);
|
lv_anim_set_path(&a, &path);
|
||||||
lv_anim_start(&a);
|
lv_anim_start(&a);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/*Remove pending animations*/
|
/*Remove pending animations*/
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t) scroll_anim_y_cb);
|
lv_anim_del(obj, scroll_y_anim);
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t) scroll_anim_x_cb);
|
lv_anim_del(obj, scroll_x_anim);
|
||||||
_lv_obj_scroll_by_raw(obj, x, y);
|
_lv_obj_scroll_by_raw(obj, x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -312,7 +312,7 @@ void lv_obj_scroll_to(lv_obj_t * obj, lv_coord_t x, lv_coord_t y, lv_anim_enable
|
|||||||
|
|
||||||
void lv_obj_scroll_to_x(lv_obj_t * obj, lv_coord_t x, lv_anim_enable_t anim_en)
|
void lv_obj_scroll_to_x(lv_obj_t * obj, lv_coord_t x, lv_anim_enable_t anim_en)
|
||||||
{
|
{
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t) scroll_anim_x_cb);
|
lv_anim_del(obj, scroll_x_anim);
|
||||||
|
|
||||||
/*Don't let scroll more then naturally possible by the size of the content*/
|
/*Don't let scroll more then naturally possible by the size of the content*/
|
||||||
if(x < 0) x = 0;
|
if(x < 0) x = 0;
|
||||||
@@ -329,7 +329,7 @@ void lv_obj_scroll_to_x(lv_obj_t * obj, lv_coord_t x, lv_anim_enable_t anim_en)
|
|||||||
|
|
||||||
void lv_obj_scroll_to_y(lv_obj_t * obj, lv_coord_t y, lv_anim_enable_t anim_en)
|
void lv_obj_scroll_to_y(lv_obj_t * obj, lv_coord_t y, lv_anim_enable_t anim_en)
|
||||||
{
|
{
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t) scroll_anim_y_cb);
|
lv_anim_del(obj, scroll_y_anim);
|
||||||
|
|
||||||
/*Don't let scroll more then naturally possible by the size of the content*/
|
/*Don't let scroll more then naturally possible by the size of the content*/
|
||||||
if(y < 0) y = 0;
|
if(y < 0) y = 0;
|
||||||
@@ -370,8 +370,8 @@ void lv_obj_scroll_to_view(lv_obj_t * obj, lv_anim_enable_t anim_en)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Remove any pending scroll animations.*/
|
/* Remove any pending scroll animations.*/
|
||||||
lv_anim_del(parent, (lv_anim_exec_xcb_t)scroll_anim_x_cb);
|
lv_anim_del(parent, scroll_x_anim);
|
||||||
lv_anim_del(parent, (lv_anim_exec_xcb_t)scroll_anim_y_cb);
|
lv_anim_del(parent, scroll_y_anim);
|
||||||
|
|
||||||
lv_obj_scroll_by(parent, x_scroll, y_scroll, anim_en);
|
lv_obj_scroll_by(parent, x_scroll, y_scroll, anim_en);
|
||||||
}
|
}
|
||||||
@@ -390,12 +390,12 @@ void lv_obj_scroll_to_view_recursive(lv_obj_t * obj, lv_anim_enable_t anim_en)
|
|||||||
* STATIC FUNCTIONS
|
* STATIC FUNCTIONS
|
||||||
**********************/
|
**********************/
|
||||||
|
|
||||||
static void scroll_anim_x_cb(lv_obj_t * obj, int32_t v)
|
static void scroll_x_anim(void * obj, int32_t v)
|
||||||
{
|
{
|
||||||
_lv_obj_scroll_by_raw(obj, v + lv_obj_get_scroll_x(obj), 0);
|
_lv_obj_scroll_by_raw(obj, v + lv_obj_get_scroll_x(obj), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void scroll_anim_y_cb(lv_obj_t * obj, int32_t v)
|
static void scroll_y_anim(void * obj, int32_t v)
|
||||||
{
|
{
|
||||||
_lv_obj_scroll_by_raw(obj, 0, v + lv_obj_get_scroll_y(obj));
|
_lv_obj_scroll_by_raw(obj, 0, v + lv_obj_get_scroll_y(obj));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,10 +55,10 @@ static cache_t read_cache(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t
|
|||||||
static void report_style_change_core(void * style, lv_obj_t * obj);
|
static void report_style_change_core(void * style, lv_obj_t * obj);
|
||||||
static void refresh_children_style(lv_obj_t * obj);
|
static void refresh_children_style(lv_obj_t * obj);
|
||||||
static bool trans_del(lv_obj_t * obj, uint8_t part, lv_style_prop_t prop, trans_t * tr_limit);
|
static bool trans_del(lv_obj_t * obj, uint8_t part, lv_style_prop_t prop, trans_t * tr_limit);
|
||||||
static void trans_anim_cb(trans_t * tr, int32_t v);
|
static void trans_anim_cb(void * _tr, int32_t v);
|
||||||
static void trans_anim_start_cb(lv_anim_t * a);
|
static void trans_anim_start_cb(lv_anim_t * a);
|
||||||
static void trans_anim_ready_cb(lv_anim_t * a);
|
static void trans_anim_ready_cb(lv_anim_t * a);
|
||||||
static void fade_anim_cb(lv_obj_t * obj, int32_t v);
|
static void fade_anim_cb(void * obj, int32_t v);
|
||||||
static void fade_in_anim_ready(lv_anim_t * a);
|
static void fade_in_anim_ready(lv_anim_t * a);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
@@ -293,7 +293,7 @@ void _lv_obj_style_create_transition(lv_obj_t * obj, lv_style_prop_t prop, uint8
|
|||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, tr);
|
lv_anim_set_var(&a, tr);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)trans_anim_cb);
|
lv_anim_set_exec_cb(&a, trans_anim_cb);
|
||||||
lv_anim_set_start_cb(&a, trans_anim_start_cb);
|
lv_anim_set_start_cb(&a, trans_anim_start_cb);
|
||||||
lv_anim_set_ready_cb(&a, trans_anim_ready_cb);
|
lv_anim_set_ready_cb(&a, trans_anim_ready_cb);
|
||||||
lv_anim_set_values(&a, 0x00, 0xFF);
|
lv_anim_set_values(&a, 0x00, 0xFF);
|
||||||
@@ -374,7 +374,7 @@ void lv_obj_fade_in(lv_obj_t * obj, uint32_t time, uint32_t delay)
|
|||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, obj);
|
lv_anim_set_var(&a, obj);
|
||||||
lv_anim_set_values(&a, LV_OPA_TRANSP, LV_OPA_COVER);
|
lv_anim_set_values(&a, LV_OPA_TRANSP, LV_OPA_COVER);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)fade_anim_cb);
|
lv_anim_set_exec_cb(&a, fade_anim_cb);
|
||||||
lv_anim_set_ready_cb(&a, fade_in_anim_ready);
|
lv_anim_set_ready_cb(&a, fade_in_anim_ready);
|
||||||
lv_anim_set_time(&a, time);
|
lv_anim_set_time(&a, time);
|
||||||
lv_anim_set_delay(&a, delay);
|
lv_anim_set_delay(&a, delay);
|
||||||
@@ -387,7 +387,7 @@ void lv_obj_fade_out(lv_obj_t * obj, uint32_t time, uint32_t delay)
|
|||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, obj);
|
lv_anim_set_var(&a, obj);
|
||||||
lv_anim_set_values(&a, LV_OPA_COVER, LV_OPA_TRANSP);
|
lv_anim_set_values(&a, LV_OPA_COVER, LV_OPA_TRANSP);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)fade_anim_cb);
|
lv_anim_set_exec_cb(&a, fade_anim_cb);
|
||||||
lv_anim_set_time(&a, time);
|
lv_anim_set_time(&a, time);
|
||||||
lv_anim_set_delay(&a, delay);
|
lv_anim_set_delay(&a, delay);
|
||||||
lv_anim_start(&a);
|
lv_anim_start(&a);
|
||||||
@@ -848,8 +848,9 @@ static bool trans_del(lv_obj_t * obj, uint8_t part, lv_style_prop_t prop, trans_
|
|||||||
return removed;
|
return removed;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void trans_anim_cb(trans_t * tr, int32_t v)
|
static void trans_anim_cb(void * _tr, int32_t v)
|
||||||
{
|
{
|
||||||
|
trans_t * tr = _tr;
|
||||||
lv_obj_style_list_t * list = &tr->obj->style_list;
|
lv_obj_style_list_t * list = &tr->obj->style_list;
|
||||||
|
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
@@ -968,7 +969,7 @@ static void trans_anim_ready_cb(lv_anim_t * a)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fade_anim_cb(lv_obj_t * obj, int32_t v)
|
static void fade_anim_cb(void * obj, int32_t v)
|
||||||
{
|
{
|
||||||
lv_obj_set_style_opa(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
lv_obj_set_style_opa(obj, LV_PART_MAIN, LV_STATE_DEFAULT, v);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area);
|
|||||||
static void lv_bar_set_value_with_anim(lv_obj_t * obj, int16_t new_value, int16_t * value_ptr,
|
static void lv_bar_set_value_with_anim(lv_obj_t * obj, int16_t new_value, int16_t * value_ptr,
|
||||||
lv_bar_anim_t * anim_info, lv_anim_enable_t en);
|
lv_bar_anim_t * anim_info, lv_anim_enable_t en);
|
||||||
static void lv_bar_init_anim(lv_obj_t * bar, lv_bar_anim_t * bar_anim);
|
static void lv_bar_init_anim(lv_obj_t * bar, lv_bar_anim_t * bar_anim);
|
||||||
static void lv_bar_anim(lv_bar_anim_t * bar, int32_t value);
|
static void lv_bar_anim(void * bar, int32_t value);
|
||||||
static void lv_bar_anim_ready(lv_anim_t * a);
|
static void lv_bar_anim_ready(lv_anim_t * a);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
@@ -497,10 +497,11 @@ static lv_res_t lv_bar_signal(lv_obj_t * obj, lv_signal_t sign, void * param)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lv_bar_anim(lv_bar_anim_t * var, int32_t value)
|
static void lv_bar_anim(void * var, int32_t value)
|
||||||
{
|
{
|
||||||
var->anim_state = value;
|
lv_bar_anim_t * bar_anim = var;
|
||||||
lv_obj_invalidate(var->bar);
|
bar_anim->anim_state = value;
|
||||||
|
lv_obj_invalidate(bar_anim->bar);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lv_bar_anim_ready(lv_anim_t * a)
|
static void lv_bar_anim_ready(lv_anim_t * a)
|
||||||
@@ -542,7 +543,7 @@ static void lv_bar_set_value_with_anim(lv_obj_t * obj, int16_t new_value, int16_
|
|||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, anim_info);
|
lv_anim_set_var(&a, anim_info);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)lv_bar_anim);
|
lv_anim_set_exec_cb(&a, lv_bar_anim);
|
||||||
lv_anim_set_values(&a, LV_BAR_ANIM_STATE_START, LV_BAR_ANIM_STATE_END);
|
lv_anim_set_values(&a, LV_BAR_ANIM_STATE_START, LV_BAR_ANIM_STATE_END);
|
||||||
lv_anim_set_ready_cb(&a, lv_bar_anim_ready);
|
lv_anim_set_ready_cb(&a, lv_bar_anim_ready);
|
||||||
lv_anim_set_time(&a, lv_obj_get_style_anim_time(obj, LV_PART_MAIN));
|
lv_anim_set_time(&a, lv_obj_get_style_anim_time(obj, LV_PART_MAIN));
|
||||||
|
|||||||
+32
-33
@@ -42,13 +42,12 @@ static lv_draw_res_t lv_label_draw(lv_obj_t * label, const lv_area_t * clip_area
|
|||||||
static void lv_label_refr_text(lv_obj_t * obj);
|
static void lv_label_refr_text(lv_obj_t * obj);
|
||||||
static void lv_label_revert_dots(lv_obj_t * label);
|
static void lv_label_revert_dots(lv_obj_t * label);
|
||||||
|
|
||||||
static void lv_label_set_offset_x(lv_obj_t * label, lv_coord_t x);
|
|
||||||
static void lv_label_set_offset_y(lv_obj_t * label, lv_coord_t y);
|
|
||||||
|
|
||||||
static bool lv_label_set_dot_tmp(lv_obj_t * label, char * data, uint32_t len);
|
static bool lv_label_set_dot_tmp(lv_obj_t * label, char * data, uint32_t len);
|
||||||
static char * lv_label_get_dot_tmp(lv_obj_t * label);
|
static char * lv_label_get_dot_tmp(lv_obj_t * label);
|
||||||
static void lv_label_dot_tmp_free(lv_obj_t * label);
|
static void lv_label_dot_tmp_free(lv_obj_t * label);
|
||||||
static void get_txt_coords(const lv_obj_t * label, lv_area_t * area);
|
static void get_txt_coords(const lv_obj_t * label, lv_area_t * area);
|
||||||
|
static void set_ofs_x_anim(void * obj, int32_t v);
|
||||||
|
static void set_ofs_y_anim(void * obj, int32_t v);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* STATIC VARIABLES
|
* STATIC VARIABLES
|
||||||
@@ -194,10 +193,8 @@ void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode)
|
|||||||
lv_label_t * label = (lv_label_t *)obj;
|
lv_label_t * label = (lv_label_t *)obj;
|
||||||
|
|
||||||
/*Delete the old animation (if exists)*/
|
/*Delete the old animation (if exists)*/
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)lv_obj_set_x);
|
lv_anim_del(obj, set_ofs_x_anim);
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)lv_obj_set_y);
|
lv_anim_del(obj, set_ofs_y_anim);
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
|
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
|
|
||||||
label->offset.x = 0;
|
label->offset.x = 0;
|
||||||
label->offset.y = 0;
|
label->offset.y = 0;
|
||||||
|
|
||||||
@@ -917,11 +914,11 @@ static void lv_label_refr_text(lv_obj_t * obj)
|
|||||||
bool hor_anim = false;
|
bool hor_anim = false;
|
||||||
if(size.x > lv_area_get_width(&txt_coords)) {
|
if(size.x > lv_area_get_width(&txt_coords)) {
|
||||||
lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x);
|
lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
|
lv_anim_set_exec_cb(&a, set_ofs_x_anim);
|
||||||
lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start, a.end));
|
lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start, a.end));
|
||||||
lv_anim_set_playback_time(&a, a.time);
|
lv_anim_set_playback_time(&a, a.time);
|
||||||
|
|
||||||
lv_anim_t * anim_cur = lv_anim_get(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
|
lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_x_anim);
|
||||||
int32_t act_time = 0;
|
int32_t act_time = 0;
|
||||||
bool playback_now = false;
|
bool playback_now = false;
|
||||||
if(anim_cur) {
|
if(anim_cur) {
|
||||||
@@ -946,17 +943,17 @@ static void lv_label_refr_text(lv_obj_t * obj)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/*Delete the offset animation if not required*/
|
/*Delete the offset animation if not required*/
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
|
lv_anim_del(obj, set_ofs_x_anim);
|
||||||
label->offset.x = 0;
|
label->offset.x = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
|
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
|
||||||
lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font)));
|
lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font)));
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
|
lv_anim_set_exec_cb(&a, set_ofs_y_anim);
|
||||||
lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start, a.end));
|
lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start, a.end));
|
||||||
lv_anim_set_playback_time(&a, a.time);
|
lv_anim_set_playback_time(&a, a.time);
|
||||||
|
|
||||||
lv_anim_t * anim_cur = lv_anim_get(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
|
lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_y_anim);
|
||||||
int32_t act_time = 0;
|
int32_t act_time = 0;
|
||||||
bool playback_now = false;
|
bool playback_now = false;
|
||||||
if(anim_cur) {
|
if(anim_cur) {
|
||||||
@@ -980,7 +977,7 @@ static void lv_label_refr_text(lv_obj_t * obj)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/*Delete the offset animation if not required*/
|
/*Delete the offset animation if not required*/
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
|
lv_anim_del(obj, set_ofs_y_anim);
|
||||||
label->offset.y = 0;
|
label->offset.y = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -996,10 +993,10 @@ static void lv_label_refr_text(lv_obj_t * obj)
|
|||||||
bool hor_anim = false;
|
bool hor_anim = false;
|
||||||
if(size.x > lv_area_get_width(&txt_coords)) {
|
if(size.x > lv_area_get_width(&txt_coords)) {
|
||||||
lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT);
|
lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
|
lv_anim_set_exec_cb(&a, set_ofs_x_anim);
|
||||||
lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start, a.end));
|
lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start, a.end));
|
||||||
|
|
||||||
lv_anim_t * anim_cur = lv_anim_get(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
|
lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_x_anim);
|
||||||
int32_t act_time = anim_cur ? anim_cur->act_time : 0;
|
int32_t act_time = anim_cur ? anim_cur->act_time : 0;
|
||||||
if(act_time < a.time) {
|
if(act_time < a.time) {
|
||||||
a.act_time = act_time; /*To keep the old position*/
|
a.act_time = act_time; /*To keep the old position*/
|
||||||
@@ -1011,16 +1008,16 @@ static void lv_label_refr_text(lv_obj_t * obj)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/*Delete the offset animation if not required*/
|
/*Delete the offset animation if not required*/
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
|
lv_anim_del(obj, set_ofs_x_anim);
|
||||||
label->offset.x = 0;
|
label->offset.x = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
|
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
|
||||||
lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font)));
|
lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font)));
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
|
lv_anim_set_exec_cb(&a, set_ofs_y_anim);
|
||||||
lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start, a.end));
|
lv_anim_set_time(&a, lv_anim_speed_to_time(anim_speed, a.start, a.end));
|
||||||
|
|
||||||
lv_anim_t * anim_cur = lv_anim_get(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
|
lv_anim_t * anim_cur = lv_anim_get(obj, set_ofs_y_anim);
|
||||||
int32_t act_time = anim_cur ? anim_cur->act_time : 0;
|
int32_t act_time = anim_cur ? anim_cur->act_time : 0;
|
||||||
if(act_time < a.time) {
|
if(act_time < a.time) {
|
||||||
a.act_time = act_time; /*To keep the old position*/
|
a.act_time = act_time; /*To keep the old position*/
|
||||||
@@ -1031,7 +1028,7 @@ static void lv_label_refr_text(lv_obj_t * obj)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/*Delete the offset animation if not required*/
|
/*Delete the offset animation if not required*/
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
|
lv_anim_del(obj, set_ofs_y_anim);
|
||||||
label->offset.y = 0;
|
label->offset.y = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1125,20 +1122,6 @@ static void lv_label_revert_dots(lv_obj_t * obj)
|
|||||||
label->dot_end = LV_LABEL_DOT_END_INV;
|
label->dot_end = LV_LABEL_DOT_END_INV;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lv_label_set_offset_x(lv_obj_t * obj, lv_coord_t x)
|
|
||||||
{
|
|
||||||
lv_label_t * label = (lv_label_t *)obj;
|
|
||||||
label->offset.x = x;
|
|
||||||
lv_obj_invalidate(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void lv_label_set_offset_y(lv_obj_t * obj, lv_coord_t y)
|
|
||||||
{
|
|
||||||
lv_label_t * label = (lv_label_t *)obj;
|
|
||||||
label->offset.y = y;
|
|
||||||
lv_obj_invalidate(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store `len` characters from `data`. Allocates space if necessary.
|
* Store `len` characters from `data`. Allocates space if necessary.
|
||||||
*
|
*
|
||||||
@@ -1216,4 +1199,20 @@ static void get_txt_coords(const lv_obj_t * obj, lv_area_t * area)
|
|||||||
area->y2 -= bottom;
|
area->y2 -= bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void set_ofs_x_anim(void * obj, int32_t v)
|
||||||
|
{
|
||||||
|
lv_label_t * label = (lv_label_t *)obj;
|
||||||
|
label->offset.x = v;
|
||||||
|
lv_obj_invalidate(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void set_ofs_y_anim(void * obj, int32_t v)
|
||||||
|
{
|
||||||
|
lv_label_t * label = (lv_label_t *)obj;
|
||||||
|
label->offset.y = v;
|
||||||
|
lv_obj_invalidate(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ static void inf_normalize(lv_obj_t * obj_scrl);
|
|||||||
static lv_obj_t * get_label(const lv_obj_t * obj);
|
static lv_obj_t * get_label(const lv_obj_t * obj);
|
||||||
static lv_coord_t get_selected_label_width(const lv_obj_t * obj);
|
static lv_coord_t get_selected_label_width(const lv_obj_t * obj);
|
||||||
static void scroll_anim_ready_cb(lv_anim_t * a);
|
static void scroll_anim_ready_cb(lv_anim_t * a);
|
||||||
|
static void set_y_anim(void * obj, int32_t v);
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* STATIC VARIABLES
|
* STATIC VARIABLES
|
||||||
@@ -476,7 +477,7 @@ static lv_res_t lv_roller_signal(lv_obj_t * obj, lv_signal_t sign, void * param)
|
|||||||
}
|
}
|
||||||
else if(sign == LV_SIGNAL_PRESSED) {
|
else if(sign == LV_SIGNAL_PRESSED) {
|
||||||
roller->moved = 0;
|
roller->moved = 0;
|
||||||
lv_anim_del(get_label(obj), (lv_anim_exec_xcb_t)lv_obj_set_y);
|
lv_anim_del(get_label(obj), set_y_anim);
|
||||||
}
|
}
|
||||||
else if(sign == LV_SIGNAL_PRESSING) {
|
else if(sign == LV_SIGNAL_PRESSING) {
|
||||||
lv_indev_t * indev = lv_indev_get_act();
|
lv_indev_t * indev = lv_indev_get_act();
|
||||||
@@ -616,7 +617,7 @@ static void refr_position(lv_obj_t * obj, lv_anim_enable_t anim_en)
|
|||||||
lv_coord_t new_y = mid_y1 - sel_y1;
|
lv_coord_t new_y = mid_y1 - sel_y1;
|
||||||
|
|
||||||
if(anim_en == LV_ANIM_OFF || anim_time == 0) {
|
if(anim_en == LV_ANIM_OFF || anim_time == 0) {
|
||||||
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_y);
|
lv_anim_del(label, set_y_anim);
|
||||||
lv_obj_set_y(label, new_y);
|
lv_obj_set_y(label, new_y);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -626,7 +627,7 @@ static void refr_position(lv_obj_t * obj, lv_anim_enable_t anim_en)
|
|||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, label);
|
lv_anim_set_var(&a, label);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)lv_obj_set_y);
|
lv_anim_set_exec_cb(&a, set_y_anim);
|
||||||
lv_anim_set_values(&a, lv_obj_get_y(label), new_y);
|
lv_anim_set_values(&a, lv_obj_get_y(label), new_y);
|
||||||
lv_anim_set_time(&a, anim_time);
|
lv_anim_set_time(&a, anim_time);
|
||||||
lv_anim_set_ready_cb(&a, scroll_anim_ready_cb);
|
lv_anim_set_ready_cb(&a, scroll_anim_ready_cb);
|
||||||
@@ -764,4 +765,11 @@ static void scroll_anim_ready_cb(lv_anim_t * a)
|
|||||||
lv_obj_t * obj = lv_obj_get_parent(a->var); /*The label is animated*/
|
lv_obj_t * obj = lv_obj_get_parent(a->var); /*The label is animated*/
|
||||||
inf_normalize(obj);
|
inf_normalize(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void set_y_anim(void * obj, int32_t v)
|
||||||
|
{
|
||||||
|
lv_obj_set_y(obj, v);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -49,8 +49,8 @@ static void lv_textarea_constructor(lv_obj_t * obj, const lv_obj_t * copy);
|
|||||||
static void lv_textarea_destructor(lv_obj_t * obj);
|
static void lv_textarea_destructor(lv_obj_t * obj);
|
||||||
static lv_draw_res_t lv_textarea_draw(lv_obj_t * obj, const lv_area_t * clip_area, lv_draw_mode_t mode);
|
static lv_draw_res_t lv_textarea_draw(lv_obj_t * obj, const lv_area_t * clip_area, lv_draw_mode_t mode);
|
||||||
static lv_res_t lv_textarea_signal(lv_obj_t * obj, lv_signal_t sign, void * param);
|
static lv_res_t lv_textarea_signal(lv_obj_t * obj, lv_signal_t sign, void * param);
|
||||||
static void cursor_blink_anim_cb(lv_obj_t * obj, int32_t show);
|
static void cursor_blink_anim_cb(void * obj, int32_t show);
|
||||||
static void pwd_char_hider_anim(lv_obj_t * obj, int32_t x);
|
static void pwd_char_hider_anim(void * obj, int32_t x);
|
||||||
static void pwd_char_hider_anim_ready(lv_anim_t * a);
|
static void pwd_char_hider_anim_ready(lv_anim_t * a);
|
||||||
static void pwd_char_hider(lv_obj_t * obj);
|
static void pwd_char_hider(lv_obj_t * obj);
|
||||||
static bool char_is_accepted(lv_obj_t * obj, uint32_t c);
|
static bool char_is_accepted(lv_obj_t * obj, uint32_t c);
|
||||||
@@ -168,7 +168,7 @@ void lv_textarea_add_char(lv_obj_t * obj, uint32_t c)
|
|||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, ta);
|
lv_anim_set_var(&a, ta);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)pwd_char_hider_anim);
|
lv_anim_set_exec_cb(&a, pwd_char_hider_anim);
|
||||||
lv_anim_set_time(&a, ta->pwd_show_time);
|
lv_anim_set_time(&a, ta->pwd_show_time);
|
||||||
lv_anim_set_values(&a, 0, 1);
|
lv_anim_set_values(&a, 0, 1);
|
||||||
lv_anim_set_path(&a, &path);
|
lv_anim_set_path(&a, &path);
|
||||||
@@ -239,7 +239,7 @@ void lv_textarea_add_text(lv_obj_t * obj, const char * txt)
|
|||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, ta);
|
lv_anim_set_var(&a, ta);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)pwd_char_hider_anim);
|
lv_anim_set_exec_cb(&a, pwd_char_hider_anim);
|
||||||
lv_anim_set_time(&a, ta->pwd_show_time);
|
lv_anim_set_time(&a, ta->pwd_show_time);
|
||||||
lv_anim_set_values(&a, 0, 1);
|
lv_anim_set_values(&a, 0, 1);
|
||||||
lv_anim_set_path(&a, &path);
|
lv_anim_set_path(&a, &path);
|
||||||
@@ -376,7 +376,7 @@ void lv_textarea_set_text(lv_obj_t * obj, const char * txt)
|
|||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, ta);
|
lv_anim_set_var(&a, ta);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)pwd_char_hider_anim);
|
lv_anim_set_exec_cb(&a, pwd_char_hider_anim);
|
||||||
lv_anim_set_time(&a, ta->pwd_show_time);
|
lv_anim_set_time(&a, ta->pwd_show_time);
|
||||||
lv_anim_set_values(&a, 0, 1);
|
lv_anim_set_values(&a, 0, 1);
|
||||||
lv_anim_set_path(&a, &path);
|
lv_anim_set_path(&a, &path);
|
||||||
@@ -1130,7 +1130,7 @@ static lv_res_t lv_textarea_signal(lv_obj_t * obj, lv_signal_t sign, void * para
|
|||||||
* @param ta pointer to a text area
|
* @param ta pointer to a text area
|
||||||
* @param hide 1: hide the cursor, 0: show it
|
* @param hide 1: hide the cursor, 0: show it
|
||||||
*/
|
*/
|
||||||
static void cursor_blink_anim_cb(lv_obj_t * obj, int32_t show)
|
static void cursor_blink_anim_cb(void * obj, int32_t show)
|
||||||
{
|
{
|
||||||
lv_textarea_t * ta = (lv_textarea_t *) obj;
|
lv_textarea_t * ta = (lv_textarea_t *) obj;
|
||||||
if(show != ta->cursor.show) {
|
if(show != ta->cursor.show) {
|
||||||
@@ -1152,7 +1152,7 @@ static void cursor_blink_anim_cb(lv_obj_t * obj, int32_t show)
|
|||||||
* @param ta unused
|
* @param ta unused
|
||||||
* @param x unused
|
* @param x unused
|
||||||
*/
|
*/
|
||||||
static void pwd_char_hider_anim(lv_obj_t * obj, int32_t x)
|
static void pwd_char_hider_anim(void * obj, int32_t x)
|
||||||
{
|
{
|
||||||
LV_UNUSED(obj);
|
LV_UNUSED(obj);
|
||||||
LV_UNUSED(x);
|
LV_UNUSED(x);
|
||||||
@@ -1243,7 +1243,7 @@ static void start_cursor_blink(lv_obj_t * obj)
|
|||||||
lv_textarea_t * ta = (lv_textarea_t *) obj;
|
lv_textarea_t * ta = (lv_textarea_t *) obj;
|
||||||
uint32_t blink_time = lv_obj_get_style_anim_time(obj, LV_PART_MARKER);
|
uint32_t blink_time = lv_obj_get_style_anim_time(obj, LV_PART_MARKER);
|
||||||
if(blink_time == 0) {
|
if(blink_time == 0) {
|
||||||
lv_anim_del(obj, (lv_anim_exec_xcb_t)cursor_blink_anim_cb);
|
lv_anim_del(obj, cursor_blink_anim_cb);
|
||||||
ta->cursor.show = 1;
|
ta->cursor.show = 1;
|
||||||
} else {
|
} else {
|
||||||
lv_anim_path_t path;
|
lv_anim_path_t path;
|
||||||
@@ -1253,7 +1253,7 @@ static void start_cursor_blink(lv_obj_t * obj)
|
|||||||
lv_anim_t a;
|
lv_anim_t a;
|
||||||
lv_anim_init(&a);
|
lv_anim_init(&a);
|
||||||
lv_anim_set_var(&a, ta);
|
lv_anim_set_var(&a, ta);
|
||||||
lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)cursor_blink_anim_cb);
|
lv_anim_set_exec_cb(&a, cursor_blink_anim_cb);
|
||||||
lv_anim_set_time(&a, blink_time);
|
lv_anim_set_time(&a, blink_time);
|
||||||
lv_anim_set_playback_time(&a, blink_time);
|
lv_anim_set_playback_time(&a, blink_time);
|
||||||
lv_anim_set_values(&a, 1, 0);
|
lv_anim_set_values(&a, 1, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user