1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-02-04 07:13:00 +08:00

add LV_NO_ANIM and LV_NO_SHADOW

This commit is contained in:
Gabor Kiss-Vamosi 2017-11-27 17:48:54 +01:00
parent 0a3ff11223
commit 83b01aa627
19 changed files with 144 additions and 22 deletions

View File

@ -60,12 +60,16 @@
#define LV_INDEV_LONG_PRESS_REP_TIME 100 /*Repeated trigger period in long press [ms] */ #define LV_INDEV_LONG_PRESS_REP_TIME 100 /*Repeated trigger period in long press [ms] */
/*Color settings*/ /*Color settings*/
#define LV_COLOR_DEPTH 24 #define LV_COLOR_DEPTH 16
#define LV_COLOR_TRANSP LV_COLOR_LIME /*Images pixels with this color will not be drawn*/ #define LV_COLOR_TRANSP LV_COLOR_LIME /*Images pixels with this color will not be drawn*/
/*Text settings*/ /*Text settings*/
#define LV_TXT_UTF8 1 #define LV_TXT_UTF8 1
#define LV_TXT_BREAK_CHARS " ,.;:-_" /*Can break texts on these chars*/ #define LV_TXT_BREAK_CHARS " ,.;:-_" /*Can break texts on these chars*/
/*Feature usage*/
#define LV_NO_ANIM 0 /*1: disable all animations*/
#define LV_NO_SHADOW 0 /*1: disable shadows*/
/*================== /*==================
* THEME USAGE * THEME USAGE

View File

@ -45,11 +45,12 @@ static void lv_draw_rect_main_mid(const lv_area_t * coords, const lv_area_t * ma
static void lv_draw_rect_main_corner(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style); static void lv_draw_rect_main_corner(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style);
static void lv_draw_rect_border_straight(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style); static void lv_draw_rect_border_straight(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style);
static void lv_draw_rect_border_corner(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style); static void lv_draw_rect_border_corner(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style);
#if LV_NO_SHADOW == 0
static void lv_draw_rect_shadow(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style); static void lv_draw_rect_shadow(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style);
static void lv_draw_cont_shadow_full(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style); static void lv_draw_cont_shadow_full(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style);
static void lv_draw_cont_shadow_bottom(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style); static void lv_draw_cont_shadow_bottom(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style);
static void lv_draw_cont_shadow_full_straight(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style, const lv_opa_t * map); static void lv_draw_cont_shadow_full_straight(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style, const lv_opa_t * map);
#endif
static uint16_t lv_draw_cont_radius_corr(uint16_t r, lv_coord_t w, lv_coord_t h); static uint16_t lv_draw_cont_radius_corr(uint16_t r, lv_coord_t w, lv_coord_t h);
@ -69,8 +70,10 @@ static void (*map_fp)(const lv_area_t * coords, const lv_area_t * mask, const lv
static void (*px_fp)(lv_coord_t x, lv_coord_t y, const lv_area_t * mask, lv_color_t color, lv_opa_t opa) = lv_rpx; static void (*px_fp)(lv_coord_t x, lv_coord_t y, const lv_area_t * mask, lv_color_t color, lv_opa_t opa) = lv_rpx;
static void (*fill_fp)(const lv_area_t * coords, const lv_area_t * mask, lv_color_t color, lv_opa_t opa) = lv_rfill; static void (*fill_fp)(const lv_area_t * coords, const lv_area_t * mask, lv_color_t color, lv_opa_t opa) = lv_rfill;
static void (*letter_fp)(const lv_point_t * pos_p, const lv_area_t * mask, const lv_font_t * font_p, uint32_t letter, lv_color_t color, lv_opa_t opa) = lv_rletter; static void (*letter_fp)(const lv_point_t * pos_p, const lv_area_t * mask, const lv_font_t * font_p, uint32_t letter, lv_color_t color, lv_opa_t opa) = lv_rletter;
#if USE_LV_IMG
static void (*map_fp)(const lv_area_t * coords, const lv_area_t * mask, const lv_color_t * map_p, lv_opa_t opa, bool transp, bool upscale, lv_color_t recolor, lv_opa_t recolor_opa) = lv_rmap; static void (*map_fp)(const lv_area_t * coords, const lv_area_t * mask, const lv_color_t * map_p, lv_opa_t opa, bool transp, bool upscale, lv_color_t recolor, lv_opa_t recolor_opa) = lv_rmap;
#endif #endif
#endif
/********************** /**********************
@ -91,10 +94,11 @@ void lv_draw_rect(const lv_area_t * coords, const lv_area_t * mask, const lv_sty
{ {
if(area_get_height(coords) < 1 || area_get_width(coords) < 1) return; if(area_get_height(coords) < 1 || area_get_width(coords) < 1) return;
#if LV_NO_SHADOW == 0
if(style->body.shadow.width != 0) { if(style->body.shadow.width != 0) {
lv_draw_rect_shadow(coords, mask, style); lv_draw_rect_shadow(coords, mask, style);
} }
#endif
if(style->body.empty == 0){ if(style->body.empty == 0){
lv_draw_rect_main_mid(coords, mask, style); lv_draw_rect_main_mid(coords, mask, style);
@ -339,6 +343,7 @@ void lv_draw_label(const lv_area_t * coords,const lv_area_t * mask, const lv_sty
} }
} }
#if USE_LV_IMG
/** /**
* Draw an image * Draw an image
* @param coords the coordinates of the image * @param coords the coordinates of the image
@ -440,6 +445,8 @@ void lv_draw_img(const lv_area_t * coords, const lv_area_t * mask,
} }
} }
} }
#endif
/** /**
* Draw a line * Draw a line
@ -1123,6 +1130,8 @@ static void lv_draw_rect_border_corner(const lv_area_t * coords, const lv_area_t
} }
} }
#if LV_NO_SHADOW == 0
/** /**
* Draw a shadow * Draw a shadow
* @param rect pointer to rectangle object * @param rect pointer to rectangle object
@ -1422,6 +1431,9 @@ static void lv_draw_cont_shadow_full_straight(const lv_area_t * coords, const lv
} }
} }
#endif
static uint16_t lv_draw_cont_radius_corr(uint16_t r, lv_coord_t w, lv_coord_t h) static uint16_t lv_draw_cont_radius_corr(uint16_t r, lv_coord_t w, lv_coord_t h)
{ {
if(r >= (w >> 1)){ if(r >= (w >> 1)){

View File

@ -72,6 +72,7 @@ void lv_draw_triangle(const lv_point_t * points, const lv_area_t * mask_p, lv_co
void lv_draw_label(const lv_area_t * cords_p,const lv_area_t * mask_p, const lv_style_t * style_p, void lv_draw_label(const lv_area_t * cords_p,const lv_area_t * mask_p, const lv_style_t * style_p,
const char * txt, lv_txt_flag_t flag, lv_point_t * offset); const char * txt, lv_txt_flag_t flag, lv_point_t * offset);
#if USE_LV_IMG
/** /**
* Draw an image * Draw an image
* @param cords_p the coordinates of the image * @param cords_p the coordinates of the image
@ -80,6 +81,7 @@ void lv_draw_label(const lv_area_t * cords_p,const lv_area_t * mask_p, const lv_
*/ */
void lv_draw_img(const lv_area_t * cords_p, const lv_area_t * mask_p, void lv_draw_img(const lv_area_t * cords_p, const lv_area_t * mask_p,
const lv_style_t * style_p, const char * fn); const lv_style_t * style_p, const char * fn);
#endif
/** /**
* Draw a line * Draw a line

View File

@ -6,12 +6,13 @@
/********************* /*********************
* INCLUDES * INCLUDES
*********************/ *********************/
#include "../../lv_conf.h" #include "lv_anim.h"
#if LV_NO_ANIM == 0
#include <stddef.h> #include <stddef.h>
#include <string.h> #include <string.h>
#include "../lv_hal/lv_hal_tick.h" #include "../lv_hal/lv_hal_tick.h"
#include "lv_task.h" #include "lv_task.h"
#include "lv_anim.h"
#include "lv_math.h" #include "lv_math.h"
/********************* /*********************
@ -261,3 +262,4 @@ static bool anim_ready_handler(lv_anim_t * a)
return invalid; return invalid;
} }
#endif

View File

@ -14,6 +14,9 @@ extern "C" {
/********************* /*********************
* INCLUDES * INCLUDES
*********************/ *********************/
#include "../../../lv_conf.h"
#if LV_NO_ANIM == 0
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
@ -113,8 +116,11 @@ lv_anim_path_t * lv_anim_get_path(lv_anim_path_name_t name);
* MACROS * MACROS
**********************/ **********************/
#endif /*LV_NO_ANIM == 0*/
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
#endif #endif
#endif #endif /*LV_ANIM_H*/

View File

@ -239,6 +239,7 @@ static void indev_proc_task(void * param)
indev_proc_point(&i->state); indev_proc_point(&i->state);
} }
else if (i->driver.type == LV_INDEV_TYPE_KEYPAD) { else if (i->driver.type == LV_INDEV_TYPE_KEYPAD) {
#if LV_OBJ_GROUP != 0
if(i->group != NULL && data.state == LV_INDEV_EVENT_PR && data.key != 0) { if(i->group != NULL && data.state == LV_INDEV_EVENT_PR && data.key != 0) {
if(data.key == LV_GROUP_KEY_NEXT) { if(data.key == LV_GROUP_KEY_NEXT) {
lv_group_focus_next(i->group); lv_group_focus_next(i->group);
@ -250,6 +251,7 @@ static void indev_proc_task(void * param)
lv_group_send_data(i->group, data.key); lv_group_send_data(i->group, data.key);
} }
} }
#endif
} }
} }

View File

@ -67,8 +67,9 @@ void lv_init(void)
lv_fs_init(); lv_fs_init();
lv_ufs_init(); lv_ufs_init();
lv_font_init(); lv_font_init();
#if LV_NO_ANIM == 0
lv_anim_init(); lv_anim_init();
#endif
/*Clear the screen*/ /*Clear the screen*/
lv_area_t scr_area; lv_area_t scr_area;
lv_area_set(&scr_area, 0, 0, LV_HOR_RES, LV_VER_RES); lv_area_set(&scr_area, 0, 0, LV_HOR_RES, LV_VER_RES);
@ -279,10 +280,10 @@ lv_res_t lv_obj_del(lv_obj_t * obj)
/*Set i to the next node*/ /*Set i to the next node*/
i = i_next; i = i_next;
} }
#if LV_NO_ANIM == 0
/*Remove the animations from this object*/ /*Remove the animations from this object*/
lv_anim_del(obj, NULL); lv_anim_del(obj, NULL);
#endif
/*Remove the object from parent's children list*/ /*Remove the object from parent's children list*/
lv_obj_t * par = lv_obj_get_parent(obj); lv_obj_t * par = lv_obj_get_parent(obj);
if(par == NULL) { /*It is a screen*/ if(par == NULL) { /*It is a screen*/
@ -909,6 +910,7 @@ void lv_obj_set_free_ptr(lv_obj_t * obj, void * free_p)
} }
#endif #endif
#if LV_NO_ANIM == 0
/** /**
* Animate an object * Animate an object
* @param obj pointer to an object to animate * @param obj pointer to an object to animate
@ -986,6 +988,9 @@ void lv_obj_animate(lv_obj_t * obj, lv_anim_builtin_t type, uint16_t time, uint1
lv_anim_create(&a); lv_anim_create(&a);
} }
#endif
/*======================= /*=======================
* Getter functions * Getter functions
*======================*/ *======================*/
@ -1529,7 +1534,9 @@ static void delete_children(lv_obj_t * obj)
} }
/*Remove the animations from this object*/ /*Remove the animations from this object*/
#if LV_NO_ANIM == 0
lv_anim_del(obj, NULL); lv_anim_del(obj, NULL);
#endif
/*Delete from the group*/ /*Delete from the group*/
#if LV_OBJ_GROUP != 0 #if LV_OBJ_GROUP != 0

View File

@ -530,6 +530,7 @@ void lv_obj_set_free_num(lv_obj_t * obj, LV_OBJ_FREE_NUM_TYPE free_num);
void lv_obj_set_free_ptr(lv_obj_t * obj, void * free_p); void lv_obj_set_free_ptr(lv_obj_t * obj, void * free_p);
#endif #endif
#if LV_NO_ANIM == 0
/** /**
* Animate an object * Animate an object
* @param obj pointer to an object to animate * @param obj pointer to an object to animate
@ -539,6 +540,7 @@ void lv_obj_set_free_ptr(lv_obj_t * obj, void * free_p);
* @param cb a function to call when the animation is ready * @param cb a function to call when the animation is ready
*/ */
void lv_obj_animate(lv_obj_t * obj, lv_anim_builtin_t type, uint16_t time, uint16_t delay, void (*cb) (lv_obj_t *)); void lv_obj_animate(lv_obj_t * obj, lv_anim_builtin_t type, uint16_t time, uint16_t delay, void (*cb) (lv_obj_t *));
#endif
/*======================= /*=======================
* Getter functions * Getter functions

View File

@ -14,25 +14,31 @@
/********************* /*********************
* DEFINES * DEFINES
*********************/ *********************/
#if LV_NO_ANIM == 0
#define LV_STYLE_ANIM_RES 256 /*Animation max in 1024 steps*/ #define LV_STYLE_ANIM_RES 256 /*Animation max in 1024 steps*/
#define LV_STYLE_ANIM_SHIFT 8 /*log2(LV_STYLE_ANIM_RES)*/ #define LV_STYLE_ANIM_SHIFT 8 /*log2(LV_STYLE_ANIM_RES)*/
#define VAL_PROP(v1, v2, r) v1 + (((v2-v1) * r) >> LV_STYLE_ANIM_SHIFT) #define VAL_PROP(v1, v2, r) v1 + (((v2-v1) * r) >> LV_STYLE_ANIM_SHIFT)
#define STYLE_ATTR_ANIM(attr, r) if(start->attr != end->attr) act->attr = VAL_PROP(start->attr, end->attr, r) #define STYLE_ATTR_ANIM(attr, r) if(start->attr != end->attr) act->attr = VAL_PROP(start->attr, end->attr, r)
#endif
/********************** /**********************
* TYPEDEFS * TYPEDEFS
**********************/ **********************/
#if LV_NO_ANIM == 0
typedef struct { typedef struct {
lv_style_t style_start; /*Save not only pointers because if same as 'style_anim' then it will be modified too*/ lv_style_t style_start; /*Save not only pointers because if same as 'style_anim' then it will be modified too*/
lv_style_t style_end; lv_style_t style_end;
lv_style_t * style_anim; lv_style_t * style_anim;
}lv_style_anim_dsc_t; }lv_style_anim_dsc_t;
#endif
/********************** /**********************
* STATIC PROTOTYPES * STATIC PROTOTYPES
**********************/ **********************/
#if LV_NO_ANIM == 0
static void lv_style_aimator(lv_style_anim_dsc_t * dsc, int32_t val); static void lv_style_aimator(lv_style_anim_dsc_t * dsc, int32_t val);
#endif
/********************** /**********************
* STATIC VARIABLES * STATIC VARIABLES
@ -208,8 +214,7 @@ void lv_style_copy(lv_style_t * dest, const lv_style_t * src)
memcpy(dest, src, sizeof(lv_style_t)); memcpy(dest, src, sizeof(lv_style_t));
} }
#if LV_NO_ANIM == 0
/** /**
* Create an animation from a pre-configured 'lv_style_anim_t' variable * Create an animation from a pre-configured 'lv_style_anim_t' variable
* @param anim pointer to a pre-configured 'lv_style_anim_t' variable (will be copied) * @param anim pointer to a pre-configured 'lv_style_anim_t' variable (will be copied)
@ -238,11 +243,11 @@ void lv_style_anim_create(lv_style_anim_t * anim)
lv_anim_create(&a); lv_anim_create(&a);
} }
#endif
/********************** /**********************
* STATIC FUNCTIONS * STATIC FUNCTIONS
**********************/ **********************/
#if LV_NO_ANIM == 0
/** /**
* Used by the style animations to set the values of a style according to start and end style. * Used by the style animations to set the values of a style according to start and end style.
* @param dsc the 'animated variable' set by lv_style_anim_create() * @param dsc the 'animated variable' set by lv_style_anim_create()
@ -295,3 +300,4 @@ static void lv_style_aimator(lv_style_anim_dsc_t * dsc, int32_t val)
lv_mem_free(dsc); lv_mem_free(dsc);
} }
} }
#endif

View File

@ -101,6 +101,7 @@ typedef struct
}line; }line;
}lv_style_t; }lv_style_t;
#if LV_NO_ANIM == 0
typedef struct { typedef struct {
const lv_style_t * style_start; /*Pointer to the starting style*/ const lv_style_t * style_start; /*Pointer to the starting style*/
const lv_style_t * style_end; /*Pointer to the destination style*/ const lv_style_t * style_end; /*Pointer to the destination style*/
@ -128,6 +129,7 @@ a.repeat_pause = 0;
a.end_cb = NULL; a.end_cb = NULL;
lv_style_anim_create(&a); lv_style_anim_create(&a);
*/ */
#endif
/********************** /**********************
* GLOBAL PROTOTYPES * GLOBAL PROTOTYPES
@ -145,11 +147,13 @@ void lv_style_init (void);
*/ */
void lv_style_copy(lv_style_t * dest, const lv_style_t * src); void lv_style_copy(lv_style_t * dest, const lv_style_t * src);
#if LV_NO_ANIM == 0
/** /**
* Create an animation from a pre-configured 'lv_style_anim_t' variable * Create an animation from a pre-configured 'lv_style_anim_t' variable
* @param anim pointer to a pre-configured 'lv_style_anim_t' variable (will be copied) * @param anim pointer to a pre-configured 'lv_style_anim_t' variable (will be copied)
*/ */
void lv_style_anim_create(lv_style_anim_t * anim); void lv_style_anim_create(lv_style_anim_t * anim);
#endif
/************************* /*************************
* GLOBAL VARIABLES * GLOBAL VARIABLES

View File

@ -115,6 +115,7 @@ void lv_bar_set_value(lv_obj_t * bar, int16_t value)
lv_obj_invalidate(bar); lv_obj_invalidate(bar);
} }
#if LV_USE_ANIM
/** /**
* Set a new value with animation on the bar * Set a new value with animation on the bar
* @param bar pointer to a bar object * @param bar pointer to a bar object
@ -144,8 +145,8 @@ void lv_bar_set_value_anim(lv_obj_t * bar, int16_t value, uint16_t anim_time)
a.repeat_pause = 0; a.repeat_pause = 0;
lv_anim_create(&a); lv_anim_create(&a);
} }
#endif
/** /**

View File

@ -21,7 +21,15 @@
/********************* /*********************
* DEFINES * DEFINES
*********************/ *********************/
#define LV_DDLIST_DEF_ANIM_TIME 200 /*ms*/
#if LV_NO_ANIM == 0
# ifndef LV_DDLIST_DEF_ANIM_TIME
# define LV_DDLIST_DEF_ANIM_TIME 200 /*ms*/
# endif
#else
# undef LV_DDLIST_DEF_ANIM_TIME
# define LV_DDLIST_DEF_ANIM_TIME 0 /*No animation*/
#endif
/********************** /**********************
* TYPEDEFS * TYPEDEFS
@ -592,6 +600,7 @@ static void lv_ddlist_refr_size(lv_obj_t * ddlist, uint16_t anim_time)
lv_obj_set_height(ddlist, new_height); lv_obj_set_height(ddlist, new_height);
lv_ddlist_pos_current_option(ddlist); lv_ddlist_pos_current_option(ddlist);
} else { } else {
#if LV_NO_ANIM == 0
lv_anim_t a; lv_anim_t a;
a.var = ddlist; a.var = ddlist;
a.start = lv_obj_get_height(ddlist); a.start = lv_obj_get_height(ddlist);
@ -607,6 +616,7 @@ static void lv_ddlist_refr_size(lv_obj_t * ddlist, uint16_t anim_time)
a.repeat_pause = 0; a.repeat_pause = 0;
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
} }

View File

@ -39,9 +39,11 @@ static lv_res_t lv_label_signal(lv_obj_t * label, lv_signal_t sign, void * param
static bool lv_label_design(lv_obj_t * label, const lv_area_t * mask, lv_design_mode_t mode); static bool lv_label_design(lv_obj_t * label, const lv_area_t * mask, lv_design_mode_t mode);
static void lv_label_refr_text(lv_obj_t * label); static void lv_label_refr_text(lv_obj_t * label);
static void lv_label_revert_dots(lv_obj_t *label); static void lv_label_revert_dots(lv_obj_t *label);
#if LV_NO_ANIM == 0
static void lv_label_set_offset_x(lv_obj_t * label, lv_coord_t x); 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 void lv_label_set_offset_y(lv_obj_t * label, lv_coord_t y);
#endif
/********************** /**********************
* STATIC VARIABLES * STATIC VARIABLES
**********************/ **********************/
@ -221,11 +223,13 @@ void lv_label_set_long_mode(lv_obj_t * label, lv_label_long_mode_t long_mode)
{ {
lv_label_ext_t * ext = lv_obj_get_ext_attr(label); lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
#if LV_NO_ANIM == 0
/*Delete the old animation (if exists)*/ /*Delete the old animation (if exists)*/
lv_anim_del(label, (lv_anim_fp_t) lv_obj_set_x); lv_anim_del(label, (lv_anim_fp_t) lv_obj_set_x);
lv_anim_del(label, (lv_anim_fp_t) lv_obj_set_y); lv_anim_del(label, (lv_anim_fp_t) lv_obj_set_y);
lv_anim_del(label, (lv_anim_fp_t) lv_label_set_offset_x); lv_anim_del(label, (lv_anim_fp_t) lv_label_set_offset_x);
lv_anim_del(label, (lv_anim_fp_t) lv_label_set_offset_y); lv_anim_del(label, (lv_anim_fp_t) lv_label_set_offset_y);
#endif
ext->offset.x = 0; ext->offset.x = 0;
ext->offset.y = 0; ext->offset.y = 0;
@ -726,6 +730,7 @@ static void lv_label_refr_text(lv_obj_t * label)
/*Start scrolling if the label is greater then its parent*/ /*Start scrolling if the label is greater then its parent*/
if(ext->long_mode == LV_LABEL_LONG_SCROLL) { if(ext->long_mode == LV_LABEL_LONG_SCROLL) {
#if LV_NO_ANIM == 0
lv_obj_t * parent = lv_obj_get_parent(label); lv_obj_t * parent = lv_obj_get_parent(label);
/*Delete the potential previous scroller animations*/ /*Delete the potential previous scroller animations*/
@ -756,10 +761,12 @@ static void lv_label_refr_text(lv_obj_t * label)
anim.time = lv_anim_speed_to_time(ext->anim_speed, anim.start, anim.end); anim.time = lv_anim_speed_to_time(ext->anim_speed, anim.start, anim.end);
lv_anim_create(&anim); lv_anim_create(&anim);
} }
#endif
} }
} }
/*In roll mode keep the size but start offset animations*/ /*In roll mode keep the size but start offset animations*/
else if(ext->long_mode == LV_LABEL_LONG_ROLL) { else if(ext->long_mode == LV_LABEL_LONG_ROLL) {
#if LV_NO_ANIM == 0
lv_anim_t anim; lv_anim_t anim;
anim.var = label; anim.var = label;
anim.repeat = 1; anim.repeat = 1;
@ -794,6 +801,7 @@ static void lv_label_refr_text(lv_obj_t * label)
lv_anim_del(label, (lv_anim_fp_t) lv_label_set_offset_y); lv_anim_del(label, (lv_anim_fp_t) lv_label_set_offset_y);
ext->offset.y = 0; ext->offset.y = 0;
} }
#endif
} }
else if(ext->long_mode == LV_LABEL_LONG_DOT) { else if(ext->long_mode == LV_LABEL_LONG_DOT) {
if(size.y <= lv_obj_get_height(label)) { /*No dots are required, the text is short enough*/ if(size.y <= lv_obj_get_height(label)) { /*No dots are required, the text is short enough*/
@ -879,6 +887,7 @@ static void lv_label_revert_dots(lv_obj_t *label)
ext->dot_end = LV_LABEL_DOT_END_INV; ext->dot_end = LV_LABEL_DOT_END_INV;
} }
#if LV_NO_ANIM == 0
static void lv_label_set_offset_x(lv_obj_t * label, lv_coord_t x) static void lv_label_set_offset_x(lv_obj_t * label, lv_coord_t x)
{ {
lv_label_ext_t * ext = lv_obj_get_ext_attr(label); lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
@ -893,3 +902,4 @@ static void lv_label_set_offset_y(lv_obj_t * label, lv_coord_t y)
lv_obj_invalidate(label); lv_obj_invalidate(label);
} }
#endif #endif
#endif

View File

@ -19,8 +19,14 @@
* DEFINES * DEFINES
*********************/ *********************/
#define LV_LIST_LAYOUT_DEF LV_LAYOUT_COL_M #define LV_LIST_LAYOUT_DEF LV_LAYOUT_COL_M
#ifndef LV_LIST_FOCUS_TIME
#define LV_LIST_FOCUS_TIME 100 /*Animation time of focusing to the a list element [ms] (0: no animation) */ #if LV_NO_ANIM == 0
# ifndef LV_LIST_FOCUS_TIME
# define LV_LIST_FOCUS_TIME 100 /*Animation time of focusing to the a list element [ms] (0: no animation) */
# endif
#else
# undef LV_LIST_FOCUS_TIME
# define LV_LIST_FOCUS_TIME 0 /*No animations*/
#endif #endif
/********************** /**********************
@ -372,6 +378,7 @@ void lv_list_up(lv_obj_t * list)
if(ext->anim_time == 0) { if(ext->anim_time == 0) {
lv_obj_set_y(scrl, new_y); lv_obj_set_y(scrl, new_y);
} else { } else {
#if LV_NO_ANIM == 0
lv_anim_t a; lv_anim_t a;
a.var = scrl; a.var = scrl;
a.start = lv_obj_get_y(scrl); a.start = lv_obj_get_y(scrl);
@ -386,6 +393,7 @@ void lv_list_up(lv_obj_t * list)
a.repeat = 0; a.repeat = 0;
a.repeat_pause = 0; a.repeat_pause = 0;
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
} }
break; break;
@ -413,6 +421,7 @@ void lv_list_down(lv_obj_t * list)
if(ext->anim_time == 0) { if(ext->anim_time == 0) {
lv_obj_set_y(scrl, new_y); lv_obj_set_y(scrl, new_y);
} else { } else {
#if LV_NO_ANIM == 0
lv_anim_t a; lv_anim_t a;
a.var = scrl; a.var = scrl;
a.start = lv_obj_get_y(scrl); a.start = lv_obj_get_y(scrl);
@ -427,6 +436,8 @@ void lv_list_down(lv_obj_t * list)
a.repeat = 0; a.repeat = 0;
a.repeat_pause = 0; a.repeat_pause = 0;
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
break; break;
} }

View File

@ -19,7 +19,15 @@
/********************* /*********************
* DEFINES * DEFINES
*********************/ *********************/
#define LV_MBOX_CLOSE_ANIM_TIME 200 /*Default close anim. time [ms]*/
#if LV_NO_ANIM == 0
# ifndef LV_MBOX_CLOSE_ANIM_TIME
# define LV_MBOX_CLOSE_ANIM_TIME 200 /*List close animation time) */
# endif
#else
# undef LV_MBOX_CLOSE_ANIM_TIME
# define LV_MBOX_CLOSE_ANIM_TIME 0 /*No animations*/
#endif
/********************** /**********************
* TYPEDEFS * TYPEDEFS
@ -192,6 +200,7 @@ void lv_mbox_start_auto_close(lv_obj_t * mbox, uint16_t delay)
{ {
lv_mbox_ext_t * ext = lv_obj_get_ext_attr(mbox); lv_mbox_ext_t * ext = lv_obj_get_ext_attr(mbox);
#if LV_NO_ANIM == 0
if(ext->anim_time != 0) { if(ext->anim_time != 0) {
/*Add shrinking animations*/ /*Add shrinking animations*/
lv_obj_animate(mbox, LV_ANIM_GROW_H| ANIM_OUT, ext->anim_time, delay, NULL); lv_obj_animate(mbox, LV_ANIM_GROW_H| ANIM_OUT, ext->anim_time, delay, NULL);
@ -202,6 +211,9 @@ void lv_mbox_start_auto_close(lv_obj_t * mbox, uint16_t delay)
} else { } else {
lv_obj_animate(mbox, LV_ANIM_NONE, ext->anim_time, delay, (void (*)(lv_obj_t*))lv_obj_del); lv_obj_animate(mbox, LV_ANIM_NONE, ext->anim_time, delay, (void (*)(lv_obj_t*))lv_obj_del);
} }
#else
lv_obj_del(mbox);
#endif
} }
/** /**
@ -210,7 +222,9 @@ void lv_mbox_start_auto_close(lv_obj_t * mbox, uint16_t delay)
*/ */
void lv_mbox_stop_auto_close(lv_obj_t * mbox) void lv_mbox_stop_auto_close(lv_obj_t * mbox)
{ {
#if LV_NO_ANIM == 0
lv_anim_del(mbox, NULL); lv_anim_del(mbox, NULL);
#endif
} }
/** /**

View File

@ -307,6 +307,7 @@ void lv_page_focus(lv_obj_t * page, lv_obj_t * obj, uint16_t anim_time)
lv_obj_set_y(ext->scrl, scrlable_y); lv_obj_set_y(ext->scrl, scrlable_y);
} }
else { else {
#if LV_NO_ANIM == 0
lv_anim_t a; lv_anim_t a;
a.act_time = 0; a.act_time = 0;
a.start = lv_obj_get_y(ext->scrl); a.start = lv_obj_get_y(ext->scrl);
@ -319,6 +320,7 @@ void lv_page_focus(lv_obj_t * page, lv_obj_t * obj, uint16_t anim_time)
a.path = lv_anim_get_path(LV_ANIM_PATH_LIN); a.path = lv_anim_get_path(LV_ANIM_PATH_LIN);
a.fp = (lv_anim_fp_t) lv_obj_set_y; a.fp = (lv_anim_fp_t) lv_obj_set_y;
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
} }

View File

@ -427,6 +427,7 @@ static void refr_position(lv_obj_t *roller, bool anim_en)
if(ext->ddlist.anim_time == 0 || anim_en == false) { if(ext->ddlist.anim_time == 0 || anim_en == false) {
lv_obj_set_y(roller_scrl, new_y); lv_obj_set_y(roller_scrl, new_y);
} else { } else {
#if LV_NO_ANIM == 0
lv_anim_t a; lv_anim_t a;
a.var = roller_scrl; a.var = roller_scrl;
a.start = lv_obj_get_y(roller_scrl); a.start = lv_obj_get_y(roller_scrl);
@ -441,6 +442,7 @@ static void refr_position(lv_obj_t *roller, bool anim_en)
a.repeat = 0; a.repeat = 0;
a.repeat_pause = 0; a.repeat_pause = 0;
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
} }

View File

@ -137,7 +137,8 @@ lv_obj_t * lv_ta_create(lv_obj_t * par, lv_obj_t * copy)
/*Refresh the style with new signal function*/ /*Refresh the style with new signal function*/
lv_obj_refresh_style(new_ta); lv_obj_refresh_style(new_ta);
} }
#if LV_NO_ANIM == 0
/*Create a cursor blinker animation*/ /*Create a cursor blinker animation*/
lv_anim_t a; lv_anim_t a;
a.var = new_ta; a.var = new_ta;
@ -153,6 +154,7 @@ lv_obj_t * lv_ta_create(lv_obj_t * par, lv_obj_t * copy)
a.playback_pause = 0; a.playback_pause = 0;
a.path = lv_anim_get_path(LV_ANIM_PATH_STEP); a.path = lv_anim_get_path(LV_ANIM_PATH_STEP);
lv_anim_create(&a); lv_anim_create(&a);
#endif
return new_ta; return new_ta;
} }
@ -183,6 +185,8 @@ void lv_ta_add_char(lv_obj_t * ta, char c)
lv_mem_assert(ext->pwd_tmp); lv_mem_assert(ext->pwd_tmp);
lv_txt_ins(ext->pwd_tmp, ext->cursor.pos, letter_buf); lv_txt_ins(ext->pwd_tmp, ext->cursor.pos, letter_buf);
#if LV_NO_ANIM == 0
/*Auto hide characters*/
lv_anim_t a; lv_anim_t a;
a.var = ta; a.var = ta;
a.fp = (lv_anim_fp_t)pwd_char_hider_anim; a.fp = (lv_anim_fp_t)pwd_char_hider_anim;
@ -197,6 +201,7 @@ void lv_ta_add_char(lv_obj_t * ta, char c)
a.playback_pause = 0; a.playback_pause = 0;
a.path = lv_anim_get_path(LV_ANIM_PATH_STEP); a.path = lv_anim_get_path(LV_ANIM_PATH_STEP);
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
/*Move the cursor after the new character*/ /*Move the cursor after the new character*/
@ -223,6 +228,8 @@ void lv_ta_add_text(lv_obj_t * ta, const char * txt)
lv_txt_ins(ext->pwd_tmp, ext->cursor.pos, txt); lv_txt_ins(ext->pwd_tmp, ext->cursor.pos, txt);
#if LV_NO_ANIM == 0
/*Auto hide characters*/
lv_anim_t a; lv_anim_t a;
a.var = ta; a.var = ta;
a.fp = (lv_anim_fp_t)pwd_char_hider_anim; a.fp = (lv_anim_fp_t)pwd_char_hider_anim;
@ -237,6 +244,7 @@ void lv_ta_add_text(lv_obj_t * ta, const char * txt)
a.playback_pause = 0; a.playback_pause = 0;
a.path = lv_anim_get_path(LV_ANIM_PATH_STEP); a.path = lv_anim_get_path(LV_ANIM_PATH_STEP);
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
/*Move the cursor after the new text*/ /*Move the cursor after the new text*/
@ -306,6 +314,8 @@ void lv_ta_set_text(lv_obj_t * ta, const char * txt)
ext->pwd_tmp = lv_mem_realloc(ext->pwd_tmp, strlen(txt) + 1); ext->pwd_tmp = lv_mem_realloc(ext->pwd_tmp, strlen(txt) + 1);
strcpy(ext->pwd_tmp, txt); strcpy(ext->pwd_tmp, txt);
#if LV_NO_ANIM == 0
/*Auto hide characters*/
lv_anim_t a; lv_anim_t a;
a.var = ta; a.var = ta;
a.fp = (lv_anim_fp_t)pwd_char_hider_anim; a.fp = (lv_anim_fp_t)pwd_char_hider_anim;
@ -320,6 +330,7 @@ void lv_ta_set_text(lv_obj_t * ta, const char * txt)
a.playback_pause = 0; a.playback_pause = 0;
a.path = lv_anim_get_path(LV_ANIM_PATH_STEP); a.path = lv_anim_get_path(LV_ANIM_PATH_STEP);
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
} }
@ -376,6 +387,7 @@ void lv_ta_set_cursor_pos(lv_obj_t * ta, int16_t pos)
ext->cursor.valid_x = cur_pos.x; ext->cursor.valid_x = cur_pos.x;
#if LV_NO_ANIM == 0
/*Reset cursor blink animation*/ /*Reset cursor blink animation*/
lv_anim_t a; lv_anim_t a;
a.var = ta; a.var = ta;
@ -391,6 +403,7 @@ void lv_ta_set_cursor_pos(lv_obj_t * ta, int16_t pos)
a.playback_pause = 0; a.playback_pause = 0;
a.path = lv_anim_get_path(LV_ANIM_PATH_STEP); a.path = lv_anim_get_path(LV_ANIM_PATH_STEP);
lv_anim_create(&a); lv_anim_create(&a);
#endif
lv_obj_invalidate(ta); lv_obj_invalidate(ta);
} }

View File

@ -17,6 +17,14 @@
/********************* /*********************
* DEFINES * DEFINES
*********************/ *********************/
#if LV_NO_ANIM == 0
# ifndef LV_TABVIEW_ANIM_TIME
# define LV_TABVIEW_ANIM_TIME 100 /*Animation time of focusing to the a list element [ms] (0: no animation) */
# endif
#else
# undef LV_TABVIEW_ANIM_TIME
# define LV_TABVIEW_ANIM_TIME 0 /*No animations*/
#endif
/********************** /**********************
* TYPEDEFS * TYPEDEFS
@ -240,6 +248,7 @@ void lv_tabview_set_current_tab(lv_obj_t * tabview, uint16_t id, bool anim_en)
if(ext->anim_time == 0 || anim_en == false) { if(ext->anim_time == 0 || anim_en == false) {
lv_obj_set_x(ext->content, cont_x); lv_obj_set_x(ext->content, cont_x);
} else { } else {
#if LV_NO_ANIM == 0
lv_anim_t a; lv_anim_t a;
a.var = ext->content; a.var = ext->content;
a.start = lv_obj_get_x(ext->content); a.start = lv_obj_get_x(ext->content);
@ -254,6 +263,7 @@ void lv_tabview_set_current_tab(lv_obj_t * tabview, uint16_t id, bool anim_en)
a.repeat = 0; a.repeat = 0;
a.repeat_pause = 0; a.repeat_pause = 0;
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
/*Move the indicator*/ /*Move the indicator*/
@ -264,6 +274,7 @@ void lv_tabview_set_current_tab(lv_obj_t * tabview, uint16_t id, bool anim_en)
if(ext->anim_time == 0 || anim_en == false ) { if(ext->anim_time == 0 || anim_en == false ) {
lv_obj_set_x(ext->indic, indic_x); lv_obj_set_x(ext->indic, indic_x);
} else { } else {
#if LV_NO_ANIM == 0
lv_anim_t a; lv_anim_t a;
a.var = ext->indic; a.var = ext->indic;
a.start = lv_obj_get_x(ext->indic); a.start = lv_obj_get_x(ext->indic);
@ -278,6 +289,7 @@ void lv_tabview_set_current_tab(lv_obj_t * tabview, uint16_t id, bool anim_en)
a.repeat = 0; a.repeat = 0;
a.repeat_pause = 0; a.repeat_pause = 0;
lv_anim_create(&a); lv_anim_create(&a);
#endif
} }
lv_btnm_set_toggle(ext->btns, true, ext->tab_cur); lv_btnm_set_toggle(ext->btns, true, ext->tab_cur);