530 lines
20 KiB
C
530 lines
20 KiB
C
/**
|
|
* @file lv_theme_mono.c
|
|
*
|
|
*/
|
|
|
|
/*********************
|
|
* INCLUDES
|
|
*********************/
|
|
#include "../../../lvgl.h"
|
|
|
|
#if LV_USE_THEME_MONO
|
|
|
|
#include "lv_theme_mono.h"
|
|
#include "../../core/lv_global.h"
|
|
|
|
/*********************
|
|
* DEFINES
|
|
*********************/
|
|
#define theme_def (LV_GLOBAL_DEFAULT()->theme_mono)
|
|
|
|
#define COLOR_FG dark_bg ? lv_color_white() : lv_color_black()
|
|
#define COLOR_BG dark_bg ? lv_color_black() : lv_color_white()
|
|
|
|
#define BORDER_W_NORMAL 1
|
|
#define BORDER_W_PR 3
|
|
#define BORDER_W_DIS 0
|
|
#define BORDER_W_FOCUS 1
|
|
#define BORDER_W_EDIT 2
|
|
#define PAD_DEF 4
|
|
|
|
/**********************
|
|
* TYPEDEFS
|
|
**********************/
|
|
typedef struct {
|
|
lv_style_t scr;
|
|
lv_style_t card;
|
|
lv_style_t scrollbar;
|
|
lv_style_t btn;
|
|
lv_style_t pr;
|
|
lv_style_t inv;
|
|
lv_style_t disabled;
|
|
lv_style_t focus;
|
|
lv_style_t edit;
|
|
lv_style_t pad_gap;
|
|
lv_style_t pad_zero;
|
|
lv_style_t no_radius;
|
|
lv_style_t radius_circle;
|
|
lv_style_t large_border;
|
|
lv_style_t large_line_space;
|
|
lv_style_t underline;
|
|
#if LV_USE_TEXTAREA
|
|
lv_style_t ta_cursor;
|
|
#endif
|
|
#if LV_USE_CHART
|
|
lv_style_t chart_indic;
|
|
#endif
|
|
} my_theme_styles_t;
|
|
|
|
typedef struct _my_theme_t {
|
|
lv_theme_t base;
|
|
my_theme_styles_t styles;
|
|
bool inited;
|
|
} my_theme_t;
|
|
|
|
/**********************
|
|
* STATIC PROTOTYPES
|
|
**********************/
|
|
static void style_init_reset(lv_style_t * style);
|
|
static void theme_apply(lv_theme_t * th, lv_obj_t * obj);
|
|
|
|
/**********************
|
|
* STATIC VARIABLES
|
|
**********************/
|
|
|
|
/**********************
|
|
* MACROS
|
|
**********************/
|
|
|
|
/**********************
|
|
* STATIC FUNCTIONS
|
|
**********************/
|
|
|
|
static void style_init(struct _my_theme_t * theme, bool dark_bg, const lv_font_t * font)
|
|
{
|
|
style_init_reset(&theme->styles.scrollbar);
|
|
lv_style_set_bg_opa(&theme->styles.scrollbar, LV_OPA_COVER);
|
|
lv_style_set_bg_color(&theme->styles.scrollbar, COLOR_FG);
|
|
lv_style_set_width(&theme->styles.scrollbar, PAD_DEF);
|
|
|
|
style_init_reset(&theme->styles.scr);
|
|
lv_style_set_bg_opa(&theme->styles.scr, LV_OPA_COVER);
|
|
lv_style_set_bg_color(&theme->styles.scr, COLOR_BG);
|
|
lv_style_set_text_color(&theme->styles.scr, COLOR_FG);
|
|
lv_style_set_pad_row(&theme->styles.scr, PAD_DEF);
|
|
lv_style_set_pad_column(&theme->styles.scr, PAD_DEF);
|
|
lv_style_set_text_font(&theme->styles.scr, font);
|
|
|
|
style_init_reset(&theme->styles.card);
|
|
lv_style_set_bg_opa(&theme->styles.card, LV_OPA_COVER);
|
|
lv_style_set_bg_color(&theme->styles.card, COLOR_BG);
|
|
lv_style_set_border_color(&theme->styles.card, COLOR_FG);
|
|
lv_style_set_radius(&theme->styles.card, 2);
|
|
lv_style_set_border_width(&theme->styles.card, BORDER_W_NORMAL);
|
|
lv_style_set_pad_all(&theme->styles.card, PAD_DEF);
|
|
lv_style_set_pad_gap(&theme->styles.card, PAD_DEF);
|
|
lv_style_set_text_color(&theme->styles.card, COLOR_FG);
|
|
lv_style_set_line_width(&theme->styles.card, 2);
|
|
lv_style_set_line_color(&theme->styles.card, COLOR_FG);
|
|
lv_style_set_arc_width(&theme->styles.card, 2);
|
|
lv_style_set_arc_color(&theme->styles.card, COLOR_FG);
|
|
lv_style_set_outline_color(&theme->styles.card, COLOR_FG);
|
|
lv_style_set_anim_time(&theme->styles.card, 300);
|
|
|
|
style_init_reset(&theme->styles.pr);
|
|
lv_style_set_border_width(&theme->styles.pr, BORDER_W_PR);
|
|
|
|
style_init_reset(&theme->styles.inv);
|
|
lv_style_set_bg_opa(&theme->styles.inv, LV_OPA_COVER);
|
|
lv_style_set_bg_color(&theme->styles.inv, COLOR_FG);
|
|
lv_style_set_border_color(&theme->styles.inv, COLOR_BG);
|
|
lv_style_set_line_color(&theme->styles.inv, COLOR_BG);
|
|
lv_style_set_arc_color(&theme->styles.inv, COLOR_BG);
|
|
lv_style_set_text_color(&theme->styles.inv, COLOR_BG);
|
|
lv_style_set_outline_color(&theme->styles.inv, COLOR_BG);
|
|
|
|
style_init_reset(&theme->styles.disabled);
|
|
lv_style_set_border_width(&theme->styles.disabled, BORDER_W_DIS);
|
|
|
|
style_init_reset(&theme->styles.focus);
|
|
lv_style_set_outline_width(&theme->styles.focus, 1);
|
|
lv_style_set_outline_pad(&theme->styles.focus, BORDER_W_FOCUS);
|
|
|
|
style_init_reset(&theme->styles.edit);
|
|
lv_style_set_outline_width(&theme->styles.edit, BORDER_W_EDIT);
|
|
|
|
style_init_reset(&theme->styles.large_border);
|
|
lv_style_set_border_width(&theme->styles.large_border, BORDER_W_EDIT);
|
|
|
|
style_init_reset(&theme->styles.pad_gap);
|
|
lv_style_set_pad_gap(&theme->styles.pad_gap, PAD_DEF);
|
|
|
|
style_init_reset(&theme->styles.pad_zero);
|
|
lv_style_set_pad_all(&theme->styles.pad_zero, 0);
|
|
lv_style_set_pad_gap(&theme->styles.pad_zero, 0);
|
|
|
|
style_init_reset(&theme->styles.no_radius);
|
|
lv_style_set_radius(&theme->styles.no_radius, 0);
|
|
|
|
style_init_reset(&theme->styles.radius_circle);
|
|
lv_style_set_radius(&theme->styles.radius_circle, LV_RADIUS_CIRCLE);
|
|
|
|
style_init_reset(&theme->styles.large_line_space);
|
|
lv_style_set_text_line_space(&theme->styles.large_line_space, 6);
|
|
|
|
style_init_reset(&theme->styles.underline);
|
|
lv_style_set_text_decor(&theme->styles.underline, LV_TEXT_DECOR_UNDERLINE);
|
|
|
|
#if LV_USE_TEXTAREA
|
|
style_init_reset(&theme->styles.ta_cursor);
|
|
lv_style_set_border_side(&theme->styles.ta_cursor, LV_BORDER_SIDE_LEFT);
|
|
lv_style_set_border_color(&theme->styles.ta_cursor, COLOR_FG);
|
|
lv_style_set_border_width(&theme->styles.ta_cursor, 2);
|
|
lv_style_set_bg_opa(&theme->styles.ta_cursor, LV_OPA_TRANSP);
|
|
lv_style_set_anim_time(&theme->styles.ta_cursor, 500);
|
|
#endif
|
|
|
|
#if LV_USE_CHART
|
|
style_init_reset(&theme->styles.chart_indic);
|
|
lv_style_set_radius(&theme->styles.chart_indic, LV_RADIUS_CIRCLE);
|
|
lv_style_set_size(&theme->styles.chart_indic, lv_display_dpx(theme->base.disp, 8), lv_display_dpx(theme->base.disp, 8));
|
|
lv_style_set_bg_color(&theme->styles.chart_indic, COLOR_FG);
|
|
lv_style_set_bg_opa(&theme->styles.chart_indic, LV_OPA_COVER);
|
|
#endif
|
|
}
|
|
|
|
/**********************
|
|
* GLOBAL FUNCTIONS
|
|
**********************/
|
|
|
|
bool lv_theme_mono_is_inited(void)
|
|
{
|
|
struct _my_theme_t * theme = theme_def;
|
|
if(theme == NULL) return false;
|
|
return theme->inited;
|
|
}
|
|
|
|
void lv_theme_mono_deinit(void)
|
|
{
|
|
if(theme_def) {
|
|
lv_free(theme_def);
|
|
theme_def = NULL;
|
|
}
|
|
}
|
|
|
|
lv_theme_t * lv_theme_mono_init(lv_display_t * disp, bool dark_bg, const lv_font_t * font)
|
|
{
|
|
/*This trick is required only to avoid the garbage collection of
|
|
*styles' data if LVGL is used in a binding (e.g. Micropython)
|
|
*In a general case styles could be in simple `static lv_style_t my_style...` variables*/
|
|
if(!lv_theme_mono_is_inited()) {
|
|
theme_def = (my_theme_t *)lv_malloc(sizeof(my_theme_t));
|
|
lv_memzero(theme_def, sizeof(my_theme_t));
|
|
}
|
|
|
|
struct _my_theme_t * theme = theme_def;
|
|
|
|
theme->base.disp = disp;
|
|
theme->base.font_small = LV_FONT_DEFAULT;
|
|
theme->base.font_normal = LV_FONT_DEFAULT;
|
|
theme->base.font_large = LV_FONT_DEFAULT;
|
|
theme->base.apply_cb = theme_apply;
|
|
|
|
style_init(theme, dark_bg, font);
|
|
|
|
if(disp == NULL || lv_display_get_theme(disp) == (lv_theme_t *) theme) lv_obj_report_style_change(NULL);
|
|
|
|
theme->inited = true;
|
|
|
|
return (lv_theme_t *)theme_def;
|
|
}
|
|
|
|
static void theme_apply(lv_theme_t * th, lv_obj_t * obj)
|
|
{
|
|
LV_UNUSED(th);
|
|
|
|
struct _my_theme_t * theme = theme_def;
|
|
|
|
if(lv_obj_get_parent(obj) == NULL) {
|
|
lv_obj_add_style(obj, &theme->styles.scr, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
return;
|
|
}
|
|
|
|
if(lv_obj_check_type(obj, &lv_obj_class)) {
|
|
#if LV_USE_TABVIEW
|
|
lv_obj_t * parent = lv_obj_get_parent(obj);
|
|
/*Tabview content area*/
|
|
if(lv_obj_check_type(parent, &lv_tabview_class)) {
|
|
return;
|
|
}
|
|
/*Tabview pages*/
|
|
else if(lv_obj_check_type(lv_obj_get_parent(parent), &lv_tabview_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.no_radius, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_WIN
|
|
/*Header*/
|
|
if(lv_obj_get_index(obj) == 0 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.no_radius, 0);
|
|
return;
|
|
}
|
|
/*Content*/
|
|
else if(lv_obj_get_index(obj) == 1 && lv_obj_check_type(lv_obj_get_parent(obj), &lv_win_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.no_radius, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
return;
|
|
}
|
|
#endif
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
}
|
|
#if LV_USE_BTN
|
|
else if(lv_obj_check_type(obj, &lv_button_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_STATE_CHECKED);
|
|
lv_obj_add_style(obj, &theme->styles.disabled, LV_STATE_DISABLED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_BTNMATRIX
|
|
else if(lv_obj_check_type(obj, &lv_buttonmatrix_class)) {
|
|
#if LV_USE_MSGBOX
|
|
if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_msgbox_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.pad_gap, 0);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_ITEMS);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_PART_ITEMS | LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.disabled, LV_PART_ITEMS | LV_STATE_DISABLED);
|
|
lv_obj_add_style(obj, &theme->styles.underline, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.large_border, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
|
|
return;
|
|
}
|
|
#endif
|
|
#if LV_USE_TABVIEW
|
|
if(lv_obj_check_type(lv_obj_get_parent(obj), &lv_tabview_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.pad_gap, 0);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_ITEMS);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_PART_ITEMS | LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_ITEMS | LV_STATE_CHECKED);
|
|
lv_obj_add_style(obj, &theme->styles.disabled, LV_PART_ITEMS | LV_STATE_DISABLED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.underline, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.large_border, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
|
|
return;
|
|
}
|
|
#endif
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_ITEMS);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_PART_ITEMS | LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_ITEMS | LV_STATE_CHECKED);
|
|
lv_obj_add_style(obj, &theme->styles.disabled, LV_PART_ITEMS | LV_STATE_DISABLED);
|
|
lv_obj_add_style(obj, &theme->styles.underline, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.large_border, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_BAR
|
|
else if(lv_obj_check_type(obj, &lv_bar_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.pad_zero, 0);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_INDICATOR);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_SLIDER
|
|
else if(lv_obj_check_type(obj, &lv_slider_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.pad_zero, 0);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_INDICATOR);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_KNOB);
|
|
lv_obj_add_style(obj, &theme->styles.radius_circle, LV_PART_KNOB);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_TABLE
|
|
else if(lv_obj_check_type(obj, &lv_table_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_ITEMS);
|
|
lv_obj_add_style(obj, &theme->styles.no_radius, LV_PART_ITEMS);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_PART_ITEMS | LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_CHECKBOX
|
|
else if(lv_obj_check_type(obj, &lv_checkbox_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.pad_gap, LV_PART_MAIN);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_INDICATOR);
|
|
lv_obj_add_style(obj, &theme->styles.disabled, LV_PART_INDICATOR | LV_STATE_DISABLED);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_INDICATOR | LV_STATE_CHECKED);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_PART_INDICATOR | LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_SWITCH
|
|
else if(lv_obj_check_type(obj, &lv_switch_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.radius_circle, 0);
|
|
lv_obj_add_style(obj, &theme->styles.pad_zero, 0);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_INDICATOR);
|
|
lv_obj_add_style(obj, &theme->styles.radius_circle, LV_PART_INDICATOR);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_KNOB);
|
|
lv_obj_add_style(obj, &theme->styles.radius_circle, LV_PART_KNOB);
|
|
lv_obj_add_style(obj, &theme->styles.pad_zero, LV_PART_KNOB);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_CHART
|
|
else if(lv_obj_check_type(obj, &lv_chart_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
lv_obj_add_style(obj, &theme->styles.chart_indic, LV_PART_INDICATOR);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_ITEMS);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_TICKS);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_CURSOR);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_ROLLER
|
|
else if(lv_obj_check_type(obj, &lv_roller_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.large_line_space, 0);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_SELECTED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_DROPDOWN
|
|
else if(lv_obj_check_type(obj, &lv_dropdown_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
else if(lv_obj_check_type(obj, &lv_dropdownlist_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.large_line_space, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_SELECTED | LV_STATE_CHECKED);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_PART_SELECTED | LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_ARC
|
|
else if(lv_obj_check_type(obj, &lv_arc_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_INDICATOR);
|
|
lv_obj_add_style(obj, &theme->styles.pad_zero, LV_PART_INDICATOR);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_KNOB);
|
|
lv_obj_add_style(obj, &theme->styles.radius_circle, LV_PART_KNOB);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
//#if LV_USE_METER
|
|
// else if(lv_obj_check_type(obj, &lv_meter_class)) {
|
|
// lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
// }
|
|
//#endif
|
|
|
|
#if LV_USE_TEXTAREA
|
|
else if(lv_obj_check_type(obj, &lv_textarea_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
lv_obj_add_style(obj, &theme->styles.ta_cursor, LV_PART_CURSOR | LV_STATE_FOCUSED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUSED);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_CALENDAR
|
|
else if(lv_obj_check_type(obj, &lv_calendar_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.no_radius, 0);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_PART_ITEMS | LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.disabled, LV_PART_ITEMS | LV_STATE_DISABLED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
lv_obj_add_style(obj, &theme->styles.large_border, LV_PART_ITEMS | LV_STATE_FOCUS_KEY);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_KEYBOARD
|
|
else if(lv_obj_check_type(obj, &lv_keyboard_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.card, LV_PART_ITEMS);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_PART_ITEMS | LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_ITEMS | LV_STATE_CHECKED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
lv_obj_add_style(obj, &theme->styles.large_border, LV_PART_ITEMS | LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
#if LV_USE_LIST
|
|
else if(lv_obj_check_type(obj, &lv_list_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
return;
|
|
}
|
|
else if(lv_obj_check_type(obj, &lv_list_text_class)) {
|
|
|
|
}
|
|
else if(lv_obj_check_type(obj, &lv_list_button_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.pr, LV_STATE_PRESSED);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.large_border, LV_STATE_EDITED);
|
|
|
|
}
|
|
#endif
|
|
#if LV_USE_MSGBOX
|
|
else if(lv_obj_check_type(obj, &lv_msgbox_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
return;
|
|
}
|
|
#endif
|
|
#if LV_USE_SPINBOX
|
|
else if(lv_obj_check_type(obj, &lv_spinbox_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
lv_obj_add_style(obj, &theme->styles.inv, LV_PART_CURSOR);
|
|
lv_obj_add_style(obj, &theme->styles.focus, LV_STATE_FOCUS_KEY);
|
|
lv_obj_add_style(obj, &theme->styles.edit, LV_STATE_EDITED);
|
|
}
|
|
#endif
|
|
#if LV_USE_TILEVIEW
|
|
else if(lv_obj_check_type(obj, &lv_tileview_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.scr, 0);
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
}
|
|
else if(lv_obj_check_type(obj, &lv_tileview_tile_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
|
}
|
|
#endif
|
|
|
|
#if LV_USE_LED
|
|
else if(lv_obj_check_type(obj, &lv_led_class)) {
|
|
lv_obj_add_style(obj, &theme->styles.card, 0);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
/**********************
|
|
* STATIC FUNCTIONS
|
|
**********************/
|
|
|
|
static void style_init_reset(lv_style_t * style)
|
|
{
|
|
if(lv_theme_mono_is_inited()) {
|
|
lv_style_reset(style);
|
|
}
|
|
else {
|
|
lv_style_init(style);
|
|
}
|
|
}
|
|
|
|
#endif
|