54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include "../lv_examples.h"
 | 
						|
#if LV_BUILD_EXAMPLES && LV_USE_SWITCH
 | 
						|
 | 
						|
static void anim_x_cb(void * var, int32_t v)
 | 
						|
{
 | 
						|
    lv_obj_set_x(var, v);
 | 
						|
}
 | 
						|
 | 
						|
static void sw_event_cb(lv_event_t * e)
 | 
						|
{
 | 
						|
    lv_obj_t * sw = lv_event_get_target(e);
 | 
						|
    lv_obj_t * label = lv_event_get_user_data(e);
 | 
						|
 | 
						|
    if(lv_obj_has_state(sw, LV_STATE_CHECKED)) {
 | 
						|
        lv_anim_t a;
 | 
						|
        lv_anim_init(&a);
 | 
						|
        lv_anim_set_var(&a, label);
 | 
						|
        lv_anim_set_values(&a, lv_obj_get_x(label), 100);
 | 
						|
        lv_anim_set_time(&a, 500);
 | 
						|
        lv_anim_set_exec_cb(&a, anim_x_cb);
 | 
						|
        lv_anim_set_path_cb(&a, lv_anim_path_overshoot);
 | 
						|
        lv_anim_start(&a);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
        lv_anim_t a;
 | 
						|
        lv_anim_init(&a);
 | 
						|
        lv_anim_set_var(&a, label);
 | 
						|
        lv_anim_set_values(&a, lv_obj_get_x(label), -lv_obj_get_width(label));
 | 
						|
        lv_anim_set_time(&a, 500);
 | 
						|
        lv_anim_set_exec_cb(&a, anim_x_cb);
 | 
						|
        lv_anim_set_path_cb(&a, lv_anim_path_ease_in);
 | 
						|
        lv_anim_start(&a);
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Start animation on an event
 | 
						|
 */
 | 
						|
void lv_example_anim_1(void)
 | 
						|
{
 | 
						|
    lv_obj_t * label = lv_label_create(lv_scr_act());
 | 
						|
    lv_label_set_text(label, "Hello animations!");
 | 
						|
    lv_obj_set_pos(label, 100, 10);
 | 
						|
 | 
						|
 | 
						|
    lv_obj_t * sw = lv_switch_create(lv_scr_act());
 | 
						|
    lv_obj_center(sw);
 | 
						|
    lv_obj_add_state(sw, LV_STATE_CHECKED);
 | 
						|
    lv_obj_add_event_cb(sw, sw_event_cb, LV_EVENT_VALUE_CHANGED, label);
 | 
						|
}
 | 
						|
 | 
						|
#endif
 |