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