1 #include "../lv_examples.h"
2 #if LV_BUILD_EXAMPLES && LV_USE_SWITCH
3 
anim_x_cb(void * var,int32_t v)4 static void anim_x_cb(void * var, int32_t v)
5 {
6     lv_obj_set_x(var, v);
7 }
8 
sw_event_cb(lv_event_t * e)9 static void sw_event_cb(lv_event_t * e)
10 {
11     lv_obj_t * sw = lv_event_get_target(e);
12     lv_obj_t * label = lv_event_get_user_data(e);
13 
14     if(lv_obj_has_state(sw, LV_STATE_CHECKED)) {
15         lv_anim_t a;
16         lv_anim_init(&a);
17         lv_anim_set_var(&a, label);
18         lv_anim_set_values(&a, lv_obj_get_x(label), 100);
19         lv_anim_set_duration(&a, 500);
20         lv_anim_set_exec_cb(&a, anim_x_cb);
21         lv_anim_set_path_cb(&a, lv_anim_path_overshoot);
22         lv_anim_start(&a);
23     }
24     else {
25         lv_anim_t a;
26         lv_anim_init(&a);
27         lv_anim_set_var(&a, label);
28         lv_anim_set_values(&a, lv_obj_get_x(label), -lv_obj_get_width(label));
29         lv_anim_set_duration(&a, 500);
30         lv_anim_set_exec_cb(&a, anim_x_cb);
31         lv_anim_set_path_cb(&a, lv_anim_path_ease_in);
32         lv_anim_start(&a);
33     }
34 
35 }
36 
37 /**
38  * Start animation on an event
39  */
lv_example_anim_1(void)40 void lv_example_anim_1(void)
41 {
42     lv_obj_t * label = lv_label_create(lv_screen_active());
43     lv_label_set_text(label, "Hello animations!");
44     lv_obj_set_pos(label, 100, 10);
45 
46     lv_obj_t * sw = lv_switch_create(lv_screen_active());
47     lv_obj_center(sw);
48     lv_obj_add_state(sw, LV_STATE_CHECKED);
49     lv_obj_add_event_cb(sw, sw_event_cb, LV_EVENT_VALUE_CHANGED, label);
50 }
51 
52 #endif
53