qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

lvgl_helpers.c (4435B)


      1 // Copyright 2023 zzeneg (@zzeneg)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #include "lvgl_helpers.h"
      5 
      6 lv_obj_t *create_button(lv_obj_t *parent, const char *text, lv_style_t *style, lv_style_t *style_pressed) {
      7     lv_obj_t *label = lv_label_create(parent);
      8     lv_label_set_text(label, text);
      9     lv_obj_add_style(label, style, 0);
     10     lv_obj_add_style(label, style_pressed, LV_STATE_PRESSED);
     11     return label;
     12 }
     13 
     14 void use_flex_row(void *obj) {
     15     lv_obj_set_layout(obj, LV_LAYOUT_FLEX);
     16     lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW);
     17     lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_SPACE_AROUND, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
     18 }
     19 
     20 void use_flex_column(void *obj) {
     21     lv_obj_set_layout(obj, LV_LAYOUT_FLEX);
     22     lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN);
     23     lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_SPACE_AROUND, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
     24 }
     25 
     26 void toggle_state(void *obj, lv_state_t state, bool enabled) {
     27     if (enabled) {
     28         lv_obj_add_state(obj, state);
     29     } else {
     30         lv_obj_clear_state(obj, state);
     31     }
     32 }
     33 
     34 void toggle_hidden(void *obj, bool visible) {
     35     if (visible) {
     36         lv_obj_clear_flag(obj, LV_OBJ_FLAG_HIDDEN);
     37     } else {
     38         lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
     39     }
     40 }
     41 
     42 void resize_font(void *label, int32_t font_size) {
     43     dprintf("font size %ld\n", font_size);
     44 #if LV_FONT_MONTSERRAT_8
     45     if (font_size == 8) return lv_obj_set_style_text_font(label, &lv_font_montserrat_8, LV_PART_MAIN);
     46 #endif
     47 #if LV_FONT_MONTSERRAT_10
     48     if (font_size <= 10) return lv_obj_set_style_text_font(label, &lv_font_montserrat_8, LV_PART_MAIN);
     49 #endif
     50 #if LV_FONT_MONTSERRAT_12
     51     if (font_size <= 12) return lv_obj_set_style_text_font(label, &lv_font_montserrat_12, LV_PART_MAIN);
     52 #endif
     53 #if LV_FONT_MONTSERRAT_14
     54     if (font_size <= 14) return lv_obj_set_style_text_font(label, &lv_font_montserrat_14, LV_PART_MAIN);
     55 #endif
     56 #if LV_FONT_MONTSERRAT_16
     57     if (font_size <= 16) return lv_obj_set_style_text_font(label, &lv_font_montserrat_16, LV_PART_MAIN);
     58 #endif
     59 #if LV_FONT_MONTSERRAT_18
     60     if (font_size <= 18) return lv_obj_set_style_text_font(label, &lv_font_montserrat_18, LV_PART_MAIN);
     61 #endif
     62 #if LV_FONT_MONTSERRAT_20
     63     if (font_size <= 20) return lv_obj_set_style_text_font(label, &lv_font_montserrat_20, LV_PART_MAIN);
     64 #endif
     65 #if LV_FONT_MONTSERRAT_22
     66     if (font_size <= 22) return lv_obj_set_style_text_font(label, &lv_font_montserrat_22, LV_PART_MAIN);
     67 #endif
     68 #if LV_FONT_MONTSERRAT_24
     69     if (font_size <= 24) return lv_obj_set_style_text_font(label, &lv_font_montserrat_24, LV_PART_MAIN);
     70 #endif
     71 #if LV_FONT_MONTSERRAT_26
     72     if (font_size <= 26) return lv_obj_set_style_text_font(label, &lv_font_montserrat_26, LV_PART_MAIN);
     73 #endif
     74 #if LV_FONT_MONTSERRAT_28
     75     if (font_size <= 28) return lv_obj_set_style_text_font(label, &lv_font_montserrat_28, LV_PART_MAIN);
     76 #endif
     77 #if LV_FONT_MONTSERRAT_30
     78     if (font_size <= 30) return lv_obj_set_style_text_font(label, &lv_font_montserrat_30, LV_PART_MAIN);
     79 #endif
     80 #if LV_FONT_MONTSERRAT_32
     81     if (font_size <= 32) return lv_obj_set_style_text_font(label, &lv_font_montserrat_32, LV_PART_MAIN);
     82 #endif
     83 #if LV_FONT_MONTSERRAT_34
     84     if (font_size <= 34) return lv_obj_set_style_text_font(label, &lv_font_montserrat_34, LV_PART_MAIN);
     85 #endif
     86 #if LV_FONT_MONTSERRAT_36
     87     if (font_size <= 36) return lv_obj_set_style_text_font(label, &lv_font_montserrat_36, LV_PART_MAIN);
     88 #endif
     89 #if LV_FONT_MONTSERRAT_38
     90     if (font_size <= 38) return lv_obj_set_style_text_font(label, &lv_font_montserrat_38, LV_PART_MAIN);
     91 #endif
     92 #if LV_FONT_MONTSERRAT_40
     93     if (font_size <= 40) return lv_obj_set_style_text_font(label, &lv_font_montserrat_40, LV_PART_MAIN);
     94 #endif
     95 #if LV_FONT_MONTSERRAT_42
     96     if (font_size <= 42) return lv_obj_set_style_text_font(label, &lv_font_montserrat_42, LV_PART_MAIN);
     97 #endif
     98 #if LV_FONT_MONTSERRAT_44
     99     if (font_size <= 44) return lv_obj_set_style_text_font(label, &lv_font_montserrat_44, LV_PART_MAIN);
    100 #endif
    101 #if LV_FONT_MONTSERRAT_46
    102     if (font_size <= 46) return lv_obj_set_style_text_font(label, &lv_font_montserrat_46, LV_PART_MAIN);
    103 #endif
    104 #if LV_FONT_MONTSERRAT_48
    105     if (font_size <= 48) return lv_obj_set_style_text_font(label, &lv_font_montserrat_48, LV_PART_MAIN);
    106 #endif
    107 }
    108 
    109 void debug_set_obj_border(lv_obj_t *obj) {
    110     lv_color_t red = lv_color_hex(0xFF0000);
    111     lv_obj_set_style_border_color(obj, red, 0);
    112     lv_obj_set_style_border_width(obj, 1, 0);
    113 }