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_theme_mono.c (18632B)

      1 /**
      2  * @file lv_theme_mono.c
      3  *
      4  */
      5 
      6 /*********************
      7  *      INCLUDES
      8  *********************/
      9 #include "../../../lvgl.h"
     10 
     11 #if LV_USE_THEME_MONO
     12 
     13 #include "lv_theme_mono.h"
     14 #include "../../../misc/lv_gc.h"
     15 
     16 /*********************
     17  *      DEFINES
     18  *********************/
     19 
     20 #define COLOR_FG      dark_bg ? lv_color_white() : lv_color_black()
     21 #define COLOR_BG      dark_bg ? lv_color_black() : lv_color_white()
     22 
     23 #define BORDER_W_NORMAL  1
     24 #define BORDER_W_PR      3
     25 #define BORDER_W_DIS     0
     26 #define BORDER_W_FOCUS   1
     27 #define BORDER_W_EDIT    2
     28 #define PAD_DEF          4
     29 
     30 /**********************
     31  *      TYPEDEFS
     32  **********************/
     33 typedef struct {
     34     lv_style_t scr;
     35     lv_style_t card;
     36     lv_style_t scrollbar;
     37     lv_style_t btn;
     38     lv_style_t pr;
     39     lv_style_t inv;
     40     lv_style_t disabled;
     41     lv_style_t focus;
     42     lv_style_t edit;
     43     lv_style_t pad_gap;
     44     lv_style_t pad_zero;
     45     lv_style_t no_radius;
     46     lv_style_t radius_circle;
     47     lv_style_t large_border;
     48     lv_style_t large_line_space;
     49     lv_style_t underline;
     50 #if LV_USE_TEXTAREA
     51     lv_style_t ta_cursor;
     52 #endif
     53 } my_theme_styles_t;
     54 
     55 
     56 /**********************
     57  *  STATIC PROTOTYPES
     58  **********************/
     59 static void style_init_reset(lv_style_t * style);
     60 static void theme_apply(lv_theme_t * th, lv_obj_t * obj);
     61 
     62 /**********************
     63  *  STATIC VARIABLES
     64  **********************/
     65 static my_theme_styles_t * styles;
     66 static lv_theme_t theme;
     67 static bool inited;
     68 
     69 /**********************
     70  *      MACROS
     71  **********************/
     72 
     73 /**********************
     74  *   STATIC FUNCTIONS
     75  **********************/
     76 
     77 static void style_init(bool dark_bg, const lv_font_t * font)
     78 {
     79     style_init_reset(&styles->scrollbar);
     80     lv_style_set_bg_opa(&styles->scrollbar, LV_OPA_COVER);
     81     lv_style_set_bg_color(&styles->scrollbar, COLOR_FG);
     82     lv_style_set_width(&styles->scrollbar,  PAD_DEF);
     83 
     84     style_init_reset(&styles->scr);
     85     lv_style_set_bg_opa(&styles->scr, LV_OPA_COVER);
     86     lv_style_set_bg_color(&styles->scr, COLOR_BG);
     87     lv_style_set_text_color(&styles->scr, COLOR_FG);
     88     lv_style_set_pad_row(&styles->scr, PAD_DEF);
     89     lv_style_set_pad_column(&styles->scr, PAD_DEF);
     90     lv_style_set_text_font(&styles->scr, font);
     91 
     92     style_init_reset(&styles->card);
     93     lv_style_set_bg_opa(&styles->card, LV_OPA_COVER);
     94     lv_style_set_bg_color(&styles->card, COLOR_BG);
     95     lv_style_set_border_color(&styles->card, COLOR_FG);
     96     lv_style_set_radius(&styles->card, 2);
     97     lv_style_set_border_width(&styles->card, BORDER_W_NORMAL);
     98     lv_style_set_pad_all(&styles->card, PAD_DEF);
     99     lv_style_set_pad_gap(&styles->card, PAD_DEF);
    100     lv_style_set_text_color(&styles->card, COLOR_FG);
    101     lv_style_set_line_width(&styles->card, 2);
    102     lv_style_set_line_color(&styles->card, COLOR_FG);
    103     lv_style_set_arc_width(&styles->card, 2);
    104     lv_style_set_arc_color(&styles->card, COLOR_FG);
    105     lv_style_set_outline_color(&styles->card, COLOR_FG);
    106     lv_style_set_anim_time(&styles->card, 300);
    107 
    108     style_init_reset(&styles->pr);
    109     lv_style_set_border_width(&styles->pr, BORDER_W_PR);
    110 
    111     style_init_reset(&styles->inv);
    112     lv_style_set_bg_opa(&styles->inv, LV_OPA_COVER);
    113     lv_style_set_bg_color(&styles->inv, COLOR_FG);
    114     lv_style_set_border_color(&styles->inv, COLOR_BG);
    115     lv_style_set_line_color(&styles->inv, COLOR_BG);
    116     lv_style_set_arc_color(&styles->inv, COLOR_BG);
    117     lv_style_set_text_color(&styles->inv, COLOR_BG);
    118     lv_style_set_outline_color(&styles->inv, COLOR_BG);
    119 
    120     style_init_reset(&styles->disabled);
    121     lv_style_set_border_width(&styles->disabled, BORDER_W_DIS);
    122 
    123     style_init_reset(&styles->focus);
    124     lv_style_set_outline_width(&styles->focus, 1);
    125     lv_style_set_outline_pad(&styles->focus, BORDER_W_FOCUS);
    126 
    127     style_init_reset(&styles->edit);
    128     lv_style_set_outline_width(&styles->edit, BORDER_W_EDIT);
    129 
    130     style_init_reset(&styles->large_border);
    131     lv_style_set_border_width(&styles->large_border, BORDER_W_EDIT);
    132 
    133     style_init_reset(&styles->pad_gap);
    134     lv_style_set_pad_gap(&styles->pad_gap, PAD_DEF);
    135 
    136     style_init_reset(&styles->pad_zero);
    137     lv_style_set_pad_all(&styles->pad_zero, 0);
    138     lv_style_set_pad_gap(&styles->pad_zero, 0);
    139 
    140     style_init_reset(&styles->no_radius);
    141     lv_style_set_radius(&styles->no_radius, 0);
    142 
    143     style_init_reset(&styles->radius_circle);
    144     lv_style_set_radius(&styles->radius_circle, LV_RADIUS_CIRCLE);
    145 
    146     style_init_reset(&styles->large_line_space);
    147     lv_style_set_text_line_space(&styles->large_line_space, 6);
    148 
    149     style_init_reset(&styles->underline);
    150     lv_style_set_text_decor(&styles->underline, LV_TEXT_DECOR_UNDERLINE);
    151 
    152 #if LV_USE_TEXTAREA
    153     style_init_reset(&styles->ta_cursor);
    154     lv_style_set_border_side(&styles->ta_cursor, LV_BORDER_SIDE_LEFT);
    155     lv_style_set_border_color(&styles->ta_cursor, COLOR_FG);
    156     lv_style_set_border_width(&styles->ta_cursor, 2);
    157     lv_style_set_bg_opa(&styles->ta_cursor, LV_OPA_TRANSP);
    158     lv_style_set_anim_time(&styles->ta_cursor, 500);
    159 #endif
    160 }
    161 
    162 
    163 /**********************
    164  *   GLOBAL FUNCTIONS
    165  **********************/
    166 
    167 bool lv_theme_mono_is_inited(void)
    168 {
    169     return  LV_GC_ROOT(_lv_theme_default_styles) == NULL ? false : true;
    170 }
    171 
    172 lv_theme_t * lv_theme_mono_init(lv_disp_t * disp, bool dark_bg, const lv_font_t * font)
    173 {
    174 
    175     /*This trick is required only to avoid the garbage collection of
    176      *styles' data if LVGL is used in a binding (e.g. Micropython)
    177      *In a general case styles could be in simple `static lv_style_t my_style...` variables*/
    178     if(!inited) {
    179         inited = false;
    180         LV_GC_ROOT(_lv_theme_default_styles) = lv_mem_alloc(sizeof(my_theme_styles_t));
    181         styles = (my_theme_styles_t *)LV_GC_ROOT(_lv_theme_default_styles);
    182     }
    183 
    184     theme.disp = disp;
    185     theme.font_small = LV_FONT_DEFAULT;
    186     theme.font_normal = LV_FONT_DEFAULT;
    187     theme.font_large = LV_FONT_DEFAULT;
    188     theme.apply_cb = theme_apply;
    189 
    190     style_init(dark_bg, font);
    191 
    192     if(disp == NULL || lv_disp_get_theme(disp) == &theme) lv_obj_report_style_change(NULL);
    193 
    194     inited = true;
    195 
    196     return (lv_theme_t *)&theme;
    197 }
    198 
    199 
    200 static void theme_apply(lv_theme_t * th, lv_obj_t * obj)
    201 {
    202     LV_UNUSED(th);
    203 
    204     if(lv_obj_get_parent(obj) == NULL) {
    205         lv_obj_add_style(obj, &styles->scr, 0);
    206         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    207         return;
    208     }
    209 
    210     if(lv_obj_check_type(obj, &lv_obj_class)) {
    211 #if LV_USE_TABVIEW
    212         lv_obj_t * parent = lv_obj_get_parent(obj);
    213         /*Tabview content area*/
    214         if(lv_obj_check_type(parent, &lv_tabview_class)) {
    215             return;
    216         }
    217         /*Tabview pages*/
    218         else if(lv_obj_check_type(lv_obj_get_parent(parent), &lv_tabview_class)) {
    219             lv_obj_add_style(obj, &styles->card, 0);
    220             lv_obj_add_style(obj, &styles->no_radius, 0);
    221             lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    222             return;
    223         }
    224 #endif
    225 
    226 #if LV_USE_WIN
    227         /*Header*/
    228         if(lv_obj_get_index(obj) == 0 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) {
    229             lv_obj_add_style(obj, &styles->card, 0);
    230             lv_obj_add_style(obj, &styles->no_radius, 0);
    231             return;
    232         }
    233         /*Content*/
    234         else if(lv_obj_get_index(obj) == 1 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) {
    235             lv_obj_add_style(obj, &styles->card, 0);
    236             lv_obj_add_style(obj, &styles->no_radius, 0);
    237             lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    238             return;
    239         }
    240 #endif
    241         lv_obj_add_style(obj, &styles->card, 0);
    242         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    243     }
    244 #if LV_USE_BTN
    245     else if(lv_obj_check_type(obj, &lv_btn_class)) {
    246         lv_obj_add_style(obj, &styles->card, 0);
    247         lv_obj_add_style(obj, &styles->pr, LV_STATE_PRESSED);
    248         lv_obj_add_style(obj, &styles->inv, LV_STATE_CHECKED);
    249         lv_obj_add_style(obj, &styles->disabled, LV_STATE_DISABLED);
    250         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    251         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    252     }
    253 #endif
    254 
    255 #if LV_USE_BTNMATRIX
    256     else if(lv_obj_check_type(obj, &lv_btnmatrix_class)) {
    257 #if LV_USE_MSGBOX
    258         if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_class)) {
    259             lv_obj_add_style(obj, &styles->pad_gap, 0);
    260             lv_obj_add_style(obj, &styles->card, LV_PART_ITEMS);
    261             lv_obj_add_style(obj, &styles->pr, LV_PART_ITEMS | LV_STATE_PRESSED);
    262             lv_obj_add_style(obj, &styles->disabled, LV_PART_ITEMS | LV_STATE_DISABLED);
    263             lv_obj_add_style(obj, &styles->underline, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
    264             lv_obj_add_style(obj, &styles->large_border, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
    265             return;
    266         }
    267 #endif
    268 #if LV_USE_TABVIEW
    269         if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_tabview_class)) {
    270             lv_obj_add_style(obj, &styles->pad_gap, 0);
    271             lv_obj_add_style(obj, &styles->card, LV_PART_ITEMS);
    272             lv_obj_add_style(obj, &styles->pr, LV_PART_ITEMS | LV_STATE_PRESSED);
    273             lv_obj_add_style(obj, &styles->inv, LV_PART_ITEMS | LV_STATE_CHECKED);
    274             lv_obj_add_style(obj, &styles->disabled, LV_PART_ITEMS | LV_STATE_DISABLED);
    275             lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    276             lv_obj_add_style(obj, &styles->underline, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
    277             lv_obj_add_style(obj, &styles->large_border, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
    278             return;
    279         }
    280 #endif
    281         lv_obj_add_style(obj, &styles->card, 0);
    282         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    283         lv_obj_add_style(obj, &styles->card, LV_PART_ITEMS);
    284         lv_obj_add_style(obj, &styles->pr, LV_PART_ITEMS | LV_STATE_PRESSED);
    285         lv_obj_add_style(obj, &styles->inv, LV_PART_ITEMS | LV_STATE_CHECKED);
    286         lv_obj_add_style(obj, &styles->disabled, LV_PART_ITEMS | LV_STATE_DISABLED);
    287         lv_obj_add_style(obj, &styles->underline, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
    288         lv_obj_add_style(obj, &styles->large_border, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
    289     }
    290 #endif
    291 
    292 #if LV_USE_BAR
    293     else if(lv_obj_check_type(obj, &lv_bar_class)) {
    294         lv_obj_add_style(obj, &styles->card, 0);
    295         lv_obj_add_style(obj, &styles->pad_zero, 0);
    296         lv_obj_add_style(obj, &styles->inv, LV_PART_INDICATOR);
    297         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    298     }
    299 #endif
    300 
    301 #if LV_USE_SLIDER
    302     else if(lv_obj_check_type(obj, &lv_slider_class)) {
    303         lv_obj_add_style(obj, &styles->card, 0);
    304         lv_obj_add_style(obj, &styles->pad_zero, 0);
    305         lv_obj_add_style(obj, &styles->inv, LV_PART_INDICATOR);
    306         lv_obj_add_style(obj, &styles->card, LV_PART_KNOB);
    307         lv_obj_add_style(obj, &styles->radius_circle, LV_PART_KNOB);
    308         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    309         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    310     }
    311 #endif
    312 
    313 #if LV_USE_TABLE
    314     else if(lv_obj_check_type(obj, &lv_table_class)) {
    315         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    316         lv_obj_add_style(obj, &styles->card, LV_PART_ITEMS);
    317         lv_obj_add_style(obj, &styles->no_radius, LV_PART_ITEMS);
    318         lv_obj_add_style(obj, &styles->pr, LV_PART_ITEMS | LV_STATE_PRESSED);
    319         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    320         lv_obj_add_style(obj, &styles->inv, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
    321         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    322     }
    323 #endif
    324 
    325 #if LV_USE_CHECKBOX
    326     else if(lv_obj_check_type(obj, &lv_checkbox_class)) {
    327         lv_obj_add_style(obj, &styles->pad_gap, LV_PART_MAIN);
    328         lv_obj_add_style(obj, &styles->card, LV_PART_INDICATOR);
    329         lv_obj_add_style(obj, &styles->disabled, LV_PART_INDICATOR | LV_STATE_DISABLED);
    330         lv_obj_add_style(obj, &styles->inv, LV_PART_INDICATOR | LV_STATE_CHECKED);
    331         lv_obj_add_style(obj, &styles->pr, LV_PART_INDICATOR | LV_STATE_PRESSED);
    332         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    333         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    334     }
    335 #endif
    336 
    337 #if LV_USE_SWITCH
    338     else if(lv_obj_check_type(obj, &lv_switch_class)) {
    339         lv_obj_add_style(obj, &styles->card, 0);
    340         lv_obj_add_style(obj, &styles->radius_circle, 0);
    341         lv_obj_add_style(obj, &styles->pad_zero, 0);
    342         lv_obj_add_style(obj, &styles->inv, LV_PART_INDICATOR);
    343         lv_obj_add_style(obj, &styles->radius_circle, LV_PART_INDICATOR);
    344         lv_obj_add_style(obj, &styles->card, LV_PART_KNOB);
    345         lv_obj_add_style(obj, &styles->radius_circle, LV_PART_KNOB);
    346         lv_obj_add_style(obj, &styles->pad_zero, LV_PART_KNOB);
    347         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    348         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    349     }
    350 #endif
    351 
    352 #if LV_USE_CHART
    353     else if(lv_obj_check_type(obj, &lv_chart_class)) {
    354         lv_obj_add_style(obj, &styles->card, 0);
    355         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    356         lv_obj_add_style(obj, &styles->card, LV_PART_ITEMS);
    357         lv_obj_add_style(obj, &styles->card, LV_PART_TICKS);
    358         lv_obj_add_style(obj, &styles->card, LV_PART_CURSOR);
    359         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    360     }
    361 #endif
    362 
    363 #if LV_USE_ROLLER
    364     else if(lv_obj_check_type(obj, &lv_roller_class)) {
    365         lv_obj_add_style(obj, &styles->card, 0);
    366         lv_obj_add_style(obj, &styles->large_line_space, 0);
    367         lv_obj_add_style(obj, &styles->inv, LV_PART_SELECTED);
    368         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    369         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    370     }
    371 #endif
    372 
    373 #if LV_USE_DROPDOWN
    374     else if(lv_obj_check_type(obj, &lv_dropdown_class)) {
    375         lv_obj_add_style(obj, &styles->card, 0);
    376         lv_obj_add_style(obj, &styles->pr, LV_STATE_PRESSED);
    377         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    378         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    379     }
    380     else if(lv_obj_check_type(obj, &lv_dropdownlist_class)) {
    381         lv_obj_add_style(obj, &styles->card, 0);
    382         lv_obj_add_style(obj, &styles->large_line_space, 0);
    383         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    384         lv_obj_add_style(obj, &styles->inv, LV_PART_SELECTED | LV_STATE_CHECKED);
    385         lv_obj_add_style(obj, &styles->pr, LV_PART_SELECTED | LV_STATE_PRESSED);
    386         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    387         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    388     }
    389 #endif
    390 
    391 #if LV_USE_ARC
    392     else if(lv_obj_check_type(obj, &lv_arc_class)) {
    393         lv_obj_add_style(obj, &styles->card, 0);
    394         lv_obj_add_style(obj, &styles->inv, LV_PART_INDICATOR);
    395         lv_obj_add_style(obj, &styles->pad_zero, LV_PART_INDICATOR);
    396         lv_obj_add_style(obj, &styles->card, LV_PART_KNOB);
    397         lv_obj_add_style(obj, &styles->radius_circle, LV_PART_KNOB);
    398         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    399         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    400     }
    401 #endif
    402 
    403 #if LV_USE_METER
    404     else if(lv_obj_check_type(obj, &lv_meter_class)) {
    405         lv_obj_add_style(obj, &styles->card, 0);
    406     }
    407 #endif
    408 
    409 #if LV_USE_TEXTAREA
    410     else if(lv_obj_check_type(obj, &lv_textarea_class)) {
    411         lv_obj_add_style(obj, &styles->card, 0);
    412         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    413         lv_obj_add_style(obj, &styles->ta_cursor, LV_PART_CURSOR | LV_STATE_FOCUSED);
    414         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUSED);
    415         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    416     }
    417 #endif
    418 
    419 #if LV_USE_CALENDAR
    420     else if(lv_obj_check_type(obj, &lv_calendar_class)) {
    421         lv_obj_add_style(obj, &styles->card, 0);
    422         lv_obj_add_style(obj, &styles->no_radius, 0);
    423         lv_obj_add_style(obj, &styles->pr, LV_PART_ITEMS | LV_STATE_PRESSED);
    424         lv_obj_add_style(obj, &styles->disabled, LV_PART_ITEMS | LV_STATE_DISABLED);
    425         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    426         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    427         lv_obj_add_style(obj, &styles->large_border, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
    428     }
    429 #endif
    430 
    431 #if LV_USE_KEYBOARD
    432     else if(lv_obj_check_type(obj, &lv_keyboard_class)) {
    433         lv_obj_add_style(obj, &styles->card, 0);
    434         lv_obj_add_style(obj, &styles->card, LV_PART_ITEMS);
    435         lv_obj_add_style(obj, &styles->pr, LV_PART_ITEMS | LV_STATE_PRESSED);
    436         lv_obj_add_style(obj, &styles->inv, LV_PART_ITEMS | LV_STATE_CHECKED);
    437         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    438         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    439         lv_obj_add_style(obj, &styles->large_border, LV_PART_ITEMS | LV_STATE_EDITED);
    440     }
    441 #endif
    442 #if LV_USE_LIST
    443     else if(lv_obj_check_type(obj, &lv_list_class)) {
    444         lv_obj_add_style(obj, &styles->card, 0);
    445         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    446         return;
    447     }
    448     else if(lv_obj_check_type(obj, &lv_list_text_class)) {
    449 
    450     }
    451     else if(lv_obj_check_type(obj, &lv_list_btn_class)) {
    452         lv_obj_add_style(obj, &styles->card, 0);
    453         lv_obj_add_style(obj, &styles->pr, LV_STATE_PRESSED);
    454         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    455         lv_obj_add_style(obj, &styles->large_border, LV_STATE_EDITED);
    456 
    457     }
    458 #endif
    459 #if LV_USE_MSGBOX
    460     else if(lv_obj_check_type(obj, &lv_msgbox_class)) {
    461         lv_obj_add_style(obj, &styles->card, 0);
    462         return;
    463     }
    464 #endif
    465 #if LV_USE_SPINBOX
    466     else if(lv_obj_check_type(obj, &lv_spinbox_class)) {
    467         lv_obj_add_style(obj, &styles->card, 0);
    468         lv_obj_add_style(obj, &styles->inv, LV_PART_CURSOR);
    469         lv_obj_add_style(obj, &styles->focus, LV_STATE_FOCUS_KEY);
    470         lv_obj_add_style(obj, &styles->edit, LV_STATE_EDITED);
    471     }
    472 #endif
    473 #if LV_USE_TILEVIEW
    474     else if(lv_obj_check_type(obj, &lv_tileview_class)) {
    475         lv_obj_add_style(obj, &styles->scr, 0);
    476         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    477     }
    478     else if(lv_obj_check_type(obj, &lv_tileview_tile_class)) {
    479         lv_obj_add_style(obj, &styles->scrollbar, LV_PART_SCROLLBAR);
    480     }
    481 #endif
    482 
    483 #if LV_USE_LED
    484     else if(lv_obj_check_type(obj, &lv_led_class)) {
    485         lv_obj_add_style(obj, &styles->card, 0);
    486     }
    487 #endif
    488 }
    489 
    490 /**********************
    491  *   STATIC FUNCTIONS
    492  **********************/
    493 
    494 static void style_init_reset(lv_style_t * style)
    495 {
    496     if(inited) {
    497         lv_style_reset(style);
    498     }
    499     else {
    500         lv_style_init(style);
    501     }
    502 }
    503 
    504 #endif