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 }