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_btn_3.c (1762B)

      1 #include "../../lv_examples.h"
      2 #if LV_BUILD_EXAMPLES && LV_USE_BTN
      3 
      4 /**
      5  * Create a style transition on a button to act like a gum when clicked
      6  */
      7 void lv_example_btn_3(void)
      8 {
      9     /*Properties to transition*/
     10     static lv_style_prop_t props[] = {
     11         LV_STYLE_TRANSFORM_WIDTH, LV_STYLE_TRANSFORM_HEIGHT, LV_STYLE_TEXT_LETTER_SPACE, 0
     12     };
     13 
     14     /*Transition descriptor when going back to the default state.
     15      *Add some delay to be sure the press transition is visible even if the press was very short*/
     16     static lv_style_transition_dsc_t transition_dsc_def;
     17     lv_style_transition_dsc_init(&transition_dsc_def, props, lv_anim_path_overshoot, 250, 100, NULL);
     18 
     19     /*Transition descriptor when going to pressed state.
     20      *No delay, go to presses state immediately*/
     21     static lv_style_transition_dsc_t transition_dsc_pr;
     22     lv_style_transition_dsc_init(&transition_dsc_pr, props, lv_anim_path_ease_in_out, 250, 0, NULL);
     23 
     24     /*Add only the new transition to he default state*/
     25     static lv_style_t style_def;
     26     lv_style_init(&style_def);
     27     lv_style_set_transition(&style_def, &transition_dsc_def);
     28 
     29     /*Add the transition and some transformation to the presses state.*/
     30     static lv_style_t style_pr;
     31     lv_style_init(&style_pr);
     32     lv_style_set_transform_width(&style_pr, 10);
     33     lv_style_set_transform_height(&style_pr, -10);
     34     lv_style_set_text_letter_space(&style_pr, 10);
     35     lv_style_set_transition(&style_pr, &transition_dsc_pr);
     36 
     37     lv_obj_t * btn1 = lv_btn_create(lv_scr_act());
     38     lv_obj_align(btn1, LV_ALIGN_CENTER, 0, -80);
     39     lv_obj_add_style(btn1, &style_pr, LV_STATE_PRESSED);
     40     lv_obj_add_style(btn1, &style_def, 0);
     41 
     42     lv_obj_t * label = lv_label_create(btn1);
     43     lv_label_set_text(label, "Gum");
     44 }
     45 #endif