acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

lv_example_anim_1.c (1399B)

      1 #include "../lv_examples.h"
      2 #if LV_BUILD_EXAMPLES && LV_USE_SWITCH
      3 
      4 static void anim_x_cb(void * var, int32_t v)
      5 {
      6     lv_obj_set_x(var, v);
      7 }
      8 
      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_time(&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_time(&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  */
     40 void lv_example_anim_1(void)
     41 {
     42     lv_obj_t * label = lv_label_create(lv_scr_act());
     43     lv_label_set_text(label, "Hello animations!");
     44     lv_obj_set_pos(label, 100, 10);
     45 
     46 
     47     lv_obj_t * sw = lv_switch_create(lv_scr_act());
     48     lv_obj_center(sw);
     49     lv_obj_add_state(sw, LV_STATE_CHECKED);
     50     lv_obj_add_event_cb(sw, sw_event_cb, LV_EVENT_VALUE_CHANGED, label);
     51 }
     52 
     53 #endif