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