mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-28 07:03:00 +08:00
Merge branch 'animated_switch' of https://github.com/embeddedt/lvgl into embeddedt-animated_switch
This commit is contained in:
commit
84d20442a4
@ -27,7 +27,7 @@ In the simplest case you need 5 things:
|
|||||||
3. Register a function which can **read an input device**. (E.g. touch pad)
|
3. Register a function which can **read an input device**. (E.g. touch pad)
|
||||||
4. Copy `lv_conf_templ.h` as `lv_conf.h` and set at least `LV_HOR_RES`, `LV_VER_RES` and `LV_COLOR_DEPTH`.
|
4. Copy `lv_conf_templ.h` as `lv_conf.h` and set at least `LV_HOR_RES`, `LV_VER_RES` and `LV_COLOR_DEPTH`.
|
||||||
5. Call `lv_task_handler()` periodically every few milliseconds.
|
5. Call `lv_task_handler()` periodically every few milliseconds.
|
||||||
For a detailed description visit https://littlevgl.com/porting
|
For a detailed description visit https://github.com/littlevgl/lvgl/wiki/Porting
|
||||||
Or check the [Porting tutorial](https://github.com/littlevgl/lv_examples/blob/master/lv_tutorial/0_porting/lv_tutorial_porting.c)
|
Or check the [Porting tutorial](https://github.com/littlevgl/lv_examples/blob/master/lv_tutorial/0_porting/lv_tutorial_porting.c)
|
||||||
|
|
||||||
## Project set-up
|
## Project set-up
|
||||||
|
@ -262,6 +262,7 @@
|
|||||||
#if USE_LV_PRELOAD != 0
|
#if USE_LV_PRELOAD != 0
|
||||||
#define LV_PRELOAD_DEF_ARC_LENGTH 60 /*[deg]*/
|
#define LV_PRELOAD_DEF_ARC_LENGTH 60 /*[deg]*/
|
||||||
#define LV_PRELOAD_DEF_SPIN_TIME 1000 /*[ms]*/
|
#define LV_PRELOAD_DEF_SPIN_TIME 1000 /*[ms]*/
|
||||||
|
#define LV_PRELOAD_DEF_ANIM LV_PRELOAD_TYPE_SPINNING_ARC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*************************
|
/*************************
|
||||||
|
@ -24,6 +24,12 @@
|
|||||||
#ifndef LV_PRELOAD_DEF_SPIN_TIME
|
#ifndef LV_PRELOAD_DEF_SPIN_TIME
|
||||||
# define LV_PRELOAD_DEF_SPIN_TIME 1000 /*[ms]*/
|
# define LV_PRELOAD_DEF_SPIN_TIME 1000 /*[ms]*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef LV_PRELOAD_DEF_ANIM
|
||||||
|
# define LV_PRELOAD_DEF_ANIM LV_PRELOAD_TYPE_SPINNING_ARC /*animation type*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**********************
|
/**********************
|
||||||
* TYPEDEFS
|
* TYPEDEFS
|
||||||
**********************/
|
**********************/
|
||||||
@ -73,26 +79,12 @@ lv_obj_t * lv_preload_create(lv_obj_t * par, const lv_obj_t * copy)
|
|||||||
|
|
||||||
/*Initialize the allocated 'ext' */
|
/*Initialize the allocated 'ext' */
|
||||||
ext->arc_length = LV_PRELOAD_DEF_ARC_LENGTH;
|
ext->arc_length = LV_PRELOAD_DEF_ARC_LENGTH;
|
||||||
|
ext->anim_type = LV_PRELOAD_DEF_ANIM;
|
||||||
|
|
||||||
/*The signal and design functions are not copied so set them here*/
|
/*The signal and design functions are not copied so set them here*/
|
||||||
lv_obj_set_signal_func(new_preload, lv_preload_signal);
|
lv_obj_set_signal_func(new_preload, lv_preload_signal);
|
||||||
lv_obj_set_design_func(new_preload, lv_preload_design);
|
lv_obj_set_design_func(new_preload, lv_preload_design);
|
||||||
#if USE_LV_ANIMATION
|
|
||||||
lv_anim_t a;
|
|
||||||
a.var = new_preload;
|
|
||||||
a.start = 0;
|
|
||||||
a.end = 360;
|
|
||||||
a.fp = (lv_anim_fp_t)lv_preload_spinner_animation;
|
|
||||||
a.path = lv_anim_path_ease_in_out;
|
|
||||||
a.end_cb = NULL;
|
|
||||||
a.act_time = 0;
|
|
||||||
a.time = LV_PRELOAD_DEF_SPIN_TIME;
|
|
||||||
a.playback = 0;
|
|
||||||
a.playback_pause = 0;
|
|
||||||
a.repeat = 1;
|
|
||||||
a.repeat_pause = 0;
|
|
||||||
lv_anim_create(&a);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*Init the new pre loader pre loader*/
|
/*Init the new pre loader pre loader*/
|
||||||
if(copy == NULL) {
|
if(copy == NULL) {
|
||||||
@ -106,6 +98,8 @@ lv_obj_t * lv_preload_create(lv_obj_t * par, const lv_obj_t * copy)
|
|||||||
lv_obj_set_style(new_preload, &lv_style_pretty_color);
|
lv_obj_set_style(new_preload, &lv_style_pretty_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ext->time = LV_PRELOAD_DEF_SPIN_TIME;
|
||||||
|
|
||||||
}
|
}
|
||||||
/*Copy an existing pre loader*/
|
/*Copy an existing pre loader*/
|
||||||
else {
|
else {
|
||||||
@ -116,6 +110,8 @@ lv_obj_t * lv_preload_create(lv_obj_t * par, const lv_obj_t * copy)
|
|||||||
lv_obj_refresh_style(new_preload);
|
lv_obj_refresh_style(new_preload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lv_preload_set_animation_type(new_preload, ext->anim_type);
|
||||||
|
|
||||||
|
|
||||||
LV_LOG_INFO("preload created");
|
LV_LOG_INFO("preload created");
|
||||||
|
|
||||||
@ -148,22 +144,7 @@ void lv_preload_set_spin_time(lv_obj_t * preload, uint16_t time)
|
|||||||
lv_preload_ext_t * ext = lv_obj_get_ext_attr(preload);
|
lv_preload_ext_t * ext = lv_obj_get_ext_attr(preload);
|
||||||
|
|
||||||
ext->time = time;
|
ext->time = time;
|
||||||
#if USE_LV_ANIMATION
|
lv_preload_set_animation_type(preload, ext->anim_type);
|
||||||
lv_anim_t a;
|
|
||||||
a.var = preload;
|
|
||||||
a.start = 0;
|
|
||||||
a.end = 360;
|
|
||||||
a.fp = (lv_anim_fp_t)lv_preload_spinner_animation;
|
|
||||||
a.path = lv_anim_path_ease_in_out;
|
|
||||||
a.end_cb = NULL;
|
|
||||||
a.act_time = 0;
|
|
||||||
a.time = time;
|
|
||||||
a.playback = 0;
|
|
||||||
a.playback_pause = 0;
|
|
||||||
a.repeat = 1;
|
|
||||||
a.repeat_pause = 0;
|
|
||||||
lv_anim_create(&a);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
/*=====================
|
/*=====================
|
||||||
* Setter functions
|
* Setter functions
|
||||||
@ -178,12 +159,85 @@ void lv_preload_set_spin_time(lv_obj_t * preload, uint16_t time)
|
|||||||
void lv_preload_set_style(lv_obj_t * preload, lv_preload_style_t type, lv_style_t * style)
|
void lv_preload_set_style(lv_obj_t * preload, lv_preload_style_t type, lv_style_t * style)
|
||||||
{
|
{
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case LV_PRELOAD_STYLE_MAIN:
|
case LV_PRELOAD_STYLE_MAIN:
|
||||||
lv_arc_set_style(preload, LV_ARC_STYLE_MAIN, style);
|
lv_arc_set_style(preload, LV_ARC_STYLE_MAIN, style);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the animation type of a preloadeer.
|
||||||
|
* @param preload pointer to pre loader object
|
||||||
|
* @param type animation type of the preload
|
||||||
|
* */
|
||||||
|
void lv_preload_set_animation_type(lv_obj_t * preload, lv_preloader_type_t type)
|
||||||
|
{
|
||||||
|
#if USE_LV_ANIMATION
|
||||||
|
lv_preload_ext_t * ext = lv_obj_get_ext_attr(preload);
|
||||||
|
|
||||||
|
/*delete previous animation*/
|
||||||
|
//lv_anim_del(preload, NULL);
|
||||||
|
switch(type)
|
||||||
|
{
|
||||||
|
case LV_PRELOAD_TYPE_FILLSPIN_ARC:
|
||||||
|
{
|
||||||
|
ext->anim_type = LV_PRELOAD_TYPE_FILLSPIN_ARC;
|
||||||
|
lv_anim_t a;
|
||||||
|
a.var = preload;
|
||||||
|
a.start = 0;
|
||||||
|
a.end = 360;
|
||||||
|
a.fp = (lv_anim_fp_t)lv_preload_spinner_animation;
|
||||||
|
a.path = lv_anim_path_ease_in_out;
|
||||||
|
a.end_cb = NULL;
|
||||||
|
a.act_time = 0;
|
||||||
|
a.time = ext->time;
|
||||||
|
a.playback = 0;
|
||||||
|
a.playback_pause = 0;
|
||||||
|
a.repeat = 1;
|
||||||
|
a.repeat_pause = 0;
|
||||||
|
lv_anim_create(&a);
|
||||||
|
|
||||||
|
lv_anim_t b;
|
||||||
|
b.var = preload;
|
||||||
|
b.start = ext->arc_length;
|
||||||
|
b.end = 360 - ext->arc_length;
|
||||||
|
b.fp = (lv_anim_fp_t)lv_preload_set_arc_length;
|
||||||
|
b.path = lv_anim_path_ease_in_out;
|
||||||
|
b.end_cb = NULL;
|
||||||
|
b.act_time = 0;
|
||||||
|
b.time = ext->time;
|
||||||
|
b.playback = 1;
|
||||||
|
b.playback_pause = 0;
|
||||||
|
b.repeat = 1;
|
||||||
|
b.repeat_pause = 0;
|
||||||
|
lv_anim_create(&b);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LV_PRELOAD_TYPE_SPINNING_ARC:
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
ext->anim_type = LV_PRELOAD_TYPE_SPINNING_ARC;
|
||||||
|
lv_anim_t a;
|
||||||
|
a.var = preload;
|
||||||
|
a.start = 0;
|
||||||
|
a.end = 360;
|
||||||
|
a.fp = (lv_anim_fp_t)lv_preload_spinner_animation;
|
||||||
|
a.path = lv_anim_path_ease_in_out;
|
||||||
|
a.end_cb = NULL;
|
||||||
|
a.act_time = 0;
|
||||||
|
a.time = ext->time;
|
||||||
|
a.playback = 0;
|
||||||
|
a.playback_pause = 0;
|
||||||
|
a.repeat = 1;
|
||||||
|
a.repeat_pause = 0;
|
||||||
|
lv_anim_create(&a);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //USE_LV_ANIMATION
|
||||||
|
}
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Getter functions
|
* Getter functions
|
||||||
*====================*/
|
*====================*/
|
||||||
@ -220,17 +274,28 @@ lv_style_t * lv_preload_get_style(const lv_obj_t * preload, lv_preload_style_t t
|
|||||||
lv_style_t * style = NULL;
|
lv_style_t * style = NULL;
|
||||||
|
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case LV_PRELOAD_STYLE_MAIN:
|
case LV_PRELOAD_STYLE_MAIN:
|
||||||
style = lv_arc_get_style(preload, LV_ARC_STYLE_MAIN);
|
style = lv_arc_get_style(preload, LV_ARC_STYLE_MAIN);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
style = NULL;
|
style = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return style;
|
return style;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the animation type of a preloadeer.
|
||||||
|
* @param preload pointer to pre loader object
|
||||||
|
* @return animation type
|
||||||
|
* */
|
||||||
|
lv_preloader_type_t lv_preload_get_animation_type(lv_obj_t * preload)
|
||||||
|
{
|
||||||
|
lv_preload_ext_t * ext = lv_obj_get_ext_attr(preload);
|
||||||
|
return ext->anim_type;
|
||||||
|
}
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Other functions
|
* Other functions
|
||||||
*====================*/
|
*====================*/
|
||||||
|
@ -43,6 +43,7 @@ extern "C" {
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
LV_PRELOAD_TYPE_SPINNING_ARC,
|
LV_PRELOAD_TYPE_SPINNING_ARC,
|
||||||
|
LV_PRELOAD_TYPE_FILLSPIN_ARC,
|
||||||
};
|
};
|
||||||
typedef uint8_t lv_preloader_type_t;
|
typedef uint8_t lv_preloader_type_t;
|
||||||
|
|
||||||
@ -52,6 +53,7 @@ typedef struct {
|
|||||||
/*New data for this type */
|
/*New data for this type */
|
||||||
uint16_t arc_length; /*Length of the spinning indicator in degree*/
|
uint16_t arc_length; /*Length of the spinning indicator in degree*/
|
||||||
uint16_t time; /*Time of one round*/
|
uint16_t time; /*Time of one round*/
|
||||||
|
lv_preloader_type_t anim_type; /*Type of the arc animation*/
|
||||||
} lv_preload_ext_t;
|
} lv_preload_ext_t;
|
||||||
|
|
||||||
|
|
||||||
@ -103,6 +105,13 @@ void lv_preload_set_spin_time(lv_obj_t * preload, uint16_t time);
|
|||||||
* */
|
* */
|
||||||
void lv_preload_set_style(lv_obj_t * preload, lv_preload_style_t type, lv_style_t *style);
|
void lv_preload_set_style(lv_obj_t * preload, lv_preload_style_t type, lv_style_t *style);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the animation type of a preloadeer.
|
||||||
|
* @param preload pointer to pre loader object
|
||||||
|
* @param type animation type of the preload
|
||||||
|
* */
|
||||||
|
void lv_preload_set_animation_type(lv_obj_t * preload, lv_preloader_type_t type);
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Getter functions
|
* Getter functions
|
||||||
*====================*/
|
*====================*/
|
||||||
@ -127,6 +136,13 @@ uint16_t lv_preload_get_spin_time(const lv_obj_t * preload);
|
|||||||
* */
|
* */
|
||||||
lv_style_t * lv_preload_get_style(const lv_obj_t * preload, lv_preload_style_t type);
|
lv_style_t * lv_preload_get_style(const lv_obj_t * preload, lv_preload_style_t type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the animation type of a preloadeer.
|
||||||
|
* @param preload pointer to pre loader object
|
||||||
|
* @return animation type
|
||||||
|
* */
|
||||||
|
lv_preloader_type_t lv_preload_get_animation_type(lv_obj_t * preload);
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Other functions
|
* Other functions
|
||||||
*====================*/
|
*====================*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user