THEME AND FONT

Committer:
becanromain
Date:
Sun Jan 26 16:18:01 2020 +0000
Revision:
0:e82c05b4b6f9
THEME AND FONT

Who changed what in which revision?

UserRevisionLine numberNew contents of line
becanromain 0:e82c05b4b6f9 1 /**
becanromain 0:e82c05b4b6f9 2 * @file lv_theme_rb.c
becanromain 0:e82c05b4b6f9 3 *
becanromain 0:e82c05b4b6f9 4 */
becanromain 0:e82c05b4b6f9 5
becanromain 0:e82c05b4b6f9 6 /*********************
becanromain 0:e82c05b4b6f9 7 * INCLUDES
becanromain 0:e82c05b4b6f9 8 *********************/
becanromain 0:e82c05b4b6f9 9 #include "lv_theme.h"
becanromain 0:e82c05b4b6f9 10
becanromain 0:e82c05b4b6f9 11
becanromain 0:e82c05b4b6f9 12 /*********************
becanromain 0:e82c05b4b6f9 13 * DEFINES
becanromain 0:e82c05b4b6f9 14 *********************/
becanromain 0:e82c05b4b6f9 15
becanromain 0:e82c05b4b6f9 16 /**********************
becanromain 0:e82c05b4b6f9 17 * TYPEDEFS
becanromain 0:e82c05b4b6f9 18 **********************/
becanromain 0:e82c05b4b6f9 19
becanromain 0:e82c05b4b6f9 20 /**********************
becanromain 0:e82c05b4b6f9 21 * STATIC PROTOTYPES
becanromain 0:e82c05b4b6f9 22 **********************/
becanromain 0:e82c05b4b6f9 23
becanromain 0:e82c05b4b6f9 24 /**********************
becanromain 0:e82c05b4b6f9 25 * STATIC VARIABLES
becanromain 0:e82c05b4b6f9 26 **********************/
becanromain 0:e82c05b4b6f9 27 static lv_theme_t theme;
becanromain 0:e82c05b4b6f9 28 static lv_style_t def;
becanromain 0:e82c05b4b6f9 29 static lv_style_t bg;
becanromain 0:e82c05b4b6f9 30 static lv_style_t panel;
becanromain 0:e82c05b4b6f9 31 static lv_style_t scr;
becanromain 0:e82c05b4b6f9 32
becanromain 0:e82c05b4b6f9 33 /*Static style definitions*/
becanromain 0:e82c05b4b6f9 34 static lv_style_t sb;
becanromain 0:e82c05b4b6f9 35 static lv_style_t plain_bordered;
becanromain 0:e82c05b4b6f9 36 static lv_style_t label_prim;
becanromain 0:e82c05b4b6f9 37 static lv_style_t label_sec;
becanromain 0:e82c05b4b6f9 38 static lv_style_t label_hint;
becanromain 0:e82c05b4b6f9 39
becanromain 0:e82c05b4b6f9 40 /*Saved input parameters*/
becanromain 0:e82c05b4b6f9 41 static uint16_t _hue;
becanromain 0:e82c05b4b6f9 42 static lv_font_t * _font;
becanromain 0:e82c05b4b6f9 43
becanromain 0:e82c05b4b6f9 44
becanromain 0:e82c05b4b6f9 45 static lv_style_t btn_rel, btn_pr, btn_trel, btn_tpr, btn_ina;
becanromain 0:e82c05b4b6f9 46
becanromain 0:e82c05b4b6f9 47 /**********************
becanromain 0:e82c05b4b6f9 48 * MACROS
becanromain 0:e82c05b4b6f9 49 **********************/
becanromain 0:e82c05b4b6f9 50
becanromain 0:e82c05b4b6f9 51 /**********************
becanromain 0:e82c05b4b6f9 52 * STATIC FUNCTIONS
becanromain 0:e82c05b4b6f9 53 **********************/
becanromain 0:e82c05b4b6f9 54
becanromain 0:e82c05b4b6f9 55 static void basic_init(void)
becanromain 0:e82c05b4b6f9 56 {
becanromain 0:e82c05b4b6f9 57 /* lv_style_copy(&def, &lv_style_pretty); //Initialize the default style
becanromain 0:e82c05b4b6f9 58
becanromain 0:e82c05b4b6f9 59 lv_style_copy(&scr, &def);
becanromain 0:e82c05b4b6f9 60 scr.body.padding.bottom = 0;
becanromain 0:e82c05b4b6f9 61 scr.body.padding.top = 0;
becanromain 0:e82c05b4b6f9 62 scr.body.padding.left = 0;
becanromain 0:e82c05b4b6f9 63 scr.body.padding.right = 0;
becanromain 0:e82c05b4b6f9 64
becanromain 0:e82c05b4b6f9 65 lv_style_copy(&sb, &lv_style_pretty_color);
becanromain 0:e82c05b4b6f9 66 sb.body.grad_color = sb.body.main_color;
becanromain 0:e82c05b4b6f9 67 sb.body.padding.right = sb.body.padding.right / 2; //Make closer to the edges
becanromain 0:e82c05b4b6f9 68 sb.body.padding.bottom = sb.body.padding.bottom / 2;
becanromain 0:e82c05b4b6f9 69
becanromain 0:e82c05b4b6f9 70 lv_style_copy(&plain_bordered, &lv_style_plain);
becanromain 0:e82c05b4b6f9 71 plain_bordered.body.border.width = 2;
becanromain 0:e82c05b4b6f9 72 plain_bordered.body.border.color = lv_color_hex3(0xbbb);
becanromain 0:e82c05b4b6f9 73
becanromain 0:e82c05b4b6f9 74 theme.style.bg = &lv_style_plain;
becanromain 0:e82c05b4b6f9 75 theme.style.scr = &scr;
becanromain 0:e82c05b4b6f9 76 theme.style.panel = &lv_style_pretty;*/
becanromain 0:e82c05b4b6f9 77
becanromain 0:e82c05b4b6f9 78 //GABOR: I copied the lv_theme_default.c and i tried to change someting. Here i copy the basic init of night theme, but nothing change on my screen. What's wrong?
becanromain 0:e82c05b4b6f9 79
becanromain 0:e82c05b4b6f9 80 lv_style_copy(&def, &lv_style_pretty); /*Initialize the default style*/
becanromain 0:e82c05b4b6f9 81 def.text.font = _font;
becanromain 0:e82c05b4b6f9 82
becanromain 0:e82c05b4b6f9 83 lv_style_copy(&bg, &lv_style_plain);
becanromain 0:e82c05b4b6f9 84 bg.body.main_color = lv_color_hsv_to_rgb(_hue, 11, 30);
becanromain 0:e82c05b4b6f9 85 bg.body.grad_color = lv_color_hsv_to_rgb(_hue, 11, 30);
becanromain 0:e82c05b4b6f9 86 bg.text.color = lv_color_hsv_to_rgb(_hue, 5, 95);
becanromain 0:e82c05b4b6f9 87 bg.text.font = _font;
becanromain 0:e82c05b4b6f9 88 bg.image.color = lv_color_hsv_to_rgb(_hue, 5, 95);
becanromain 0:e82c05b4b6f9 89
becanromain 0:e82c05b4b6f9 90 lv_style_copy(&scr, &bg);
becanromain 0:e82c05b4b6f9 91 scr.body.padding.bottom = 0;
becanromain 0:e82c05b4b6f9 92 scr.body.padding.top = 0;
becanromain 0:e82c05b4b6f9 93 scr.body.padding.left = 0;
becanromain 0:e82c05b4b6f9 94 scr.body.padding.right = 0;
becanromain 0:e82c05b4b6f9 95
becanromain 0:e82c05b4b6f9 96 lv_style_copy(&sb, &def);
becanromain 0:e82c05b4b6f9 97 sb.body.main_color = lv_color_hsv_to_rgb(_hue, 30, 60);
becanromain 0:e82c05b4b6f9 98 sb.body.grad_color = lv_color_hsv_to_rgb(_hue, 30, 60);
becanromain 0:e82c05b4b6f9 99 sb.body.border.width = 0;
becanromain 0:e82c05b4b6f9 100 sb.body.padding.inner = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 101 sb.body.padding.left = 0;
becanromain 0:e82c05b4b6f9 102 sb.body.padding.right = 0;
becanromain 0:e82c05b4b6f9 103 sb.body.padding.top = 0;
becanromain 0:e82c05b4b6f9 104 sb.body.padding.bottom = 0;
becanromain 0:e82c05b4b6f9 105 sb.body.radius = LV_DPI / 30;
becanromain 0:e82c05b4b6f9 106 sb.body.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 107
becanromain 0:e82c05b4b6f9 108 lv_style_copy(&panel, &bg);
becanromain 0:e82c05b4b6f9 109 panel.body.main_color = lv_color_hsv_to_rgb(_hue, 11, 18);
becanromain 0:e82c05b4b6f9 110 panel.body.grad_color = lv_color_hsv_to_rgb(_hue, 11, 18);
becanromain 0:e82c05b4b6f9 111 panel.body.radius = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 112 panel.body.border.color = lv_color_hsv_to_rgb(_hue, 10, 25);
becanromain 0:e82c05b4b6f9 113 panel.body.border.width = 1;
becanromain 0:e82c05b4b6f9 114 panel.body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 115 panel.body.padding.left = LV_DPI / 10;
becanromain 0:e82c05b4b6f9 116 panel.body.padding.right = LV_DPI / 10;
becanromain 0:e82c05b4b6f9 117 panel.body.padding.top = LV_DPI / 10;
becanromain 0:e82c05b4b6f9 118 panel.body.padding.bottom = LV_DPI / 10;
becanromain 0:e82c05b4b6f9 119 panel.line.color = lv_color_hsv_to_rgb(_hue, 20, 40);
becanromain 0:e82c05b4b6f9 120 panel.line.width = 1;
becanromain 0:e82c05b4b6f9 121
becanromain 0:e82c05b4b6f9 122 theme.style.scr = &scr;
becanromain 0:e82c05b4b6f9 123 theme.style.bg = &bg;
becanromain 0:e82c05b4b6f9 124 theme.style.panel = &def;
becanromain 0:e82c05b4b6f9 125 }
becanromain 0:e82c05b4b6f9 126
becanromain 0:e82c05b4b6f9 127 static void btn_init(void)
becanromain 0:e82c05b4b6f9 128 {
becanromain 0:e82c05b4b6f9 129 #if LV_USE_BTN != 0
becanromain 0:e82c05b4b6f9 130 static lv_style_t btn_rel, btn_pr, btn_tgl_rel, btn_tgl_pr, btn_ina;
becanromain 0:e82c05b4b6f9 131
becanromain 0:e82c05b4b6f9 132 lv_style_copy(&btn_rel, &def);
becanromain 0:e82c05b4b6f9 133 btn_rel.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 40);
becanromain 0:e82c05b4b6f9 134 btn_rel.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 20);
becanromain 0:e82c05b4b6f9 135 btn_rel.body.border.color = lv_color_hex3(0x111);
becanromain 0:e82c05b4b6f9 136 btn_rel.body.border.width = 1;
becanromain 0:e82c05b4b6f9 137 btn_rel.body.border.opa = LV_OPA_70;
becanromain 0:e82c05b4b6f9 138 btn_rel.body.padding.left = LV_DPI / 4;
becanromain 0:e82c05b4b6f9 139 btn_rel.body.padding.right = LV_DPI / 4;
becanromain 0:e82c05b4b6f9 140 btn_rel.body.padding.top = LV_DPI / 8;
becanromain 0:e82c05b4b6f9 141 btn_rel.body.padding.bottom = LV_DPI / 8;
becanromain 0:e82c05b4b6f9 142 btn_rel.body.shadow.type = LV_SHADOW_BOTTOM;
becanromain 0:e82c05b4b6f9 143 btn_rel.body.shadow.color = lv_color_hex3(0x111);
becanromain 0:e82c05b4b6f9 144 btn_rel.body.shadow.width = LV_DPI / 30;
becanromain 0:e82c05b4b6f9 145 btn_rel.text.color = lv_color_hex3(0xeee);
becanromain 0:e82c05b4b6f9 146 btn_rel.image.color = lv_color_hex3(0xeee);
becanromain 0:e82c05b4b6f9 147
becanromain 0:e82c05b4b6f9 148 lv_style_copy(&btn_pr, &btn_rel);
becanromain 0:e82c05b4b6f9 149 btn_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 30);
becanromain 0:e82c05b4b6f9 150 btn_pr.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 10);
becanromain 0:e82c05b4b6f9 151
becanromain 0:e82c05b4b6f9 152 lv_style_copy(&btn_tgl_rel, &btn_rel);
becanromain 0:e82c05b4b6f9 153 btn_tgl_rel.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 20);
becanromain 0:e82c05b4b6f9 154 btn_tgl_rel.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 40);
becanromain 0:e82c05b4b6f9 155 btn_tgl_rel.body.shadow.width = LV_DPI / 40;
becanromain 0:e82c05b4b6f9 156 btn_tgl_rel.text.color = lv_color_hex3(0xddd);
becanromain 0:e82c05b4b6f9 157 btn_tgl_rel.image.color = lv_color_hex3(0xddd);
becanromain 0:e82c05b4b6f9 158
becanromain 0:e82c05b4b6f9 159 lv_style_copy(&btn_tgl_pr, &btn_rel);
becanromain 0:e82c05b4b6f9 160 btn_tgl_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 10);
becanromain 0:e82c05b4b6f9 161 btn_tgl_pr.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 30);
becanromain 0:e82c05b4b6f9 162 btn_tgl_pr.body.shadow.width = LV_DPI / 30;
becanromain 0:e82c05b4b6f9 163 btn_tgl_pr.text.color = lv_color_hex3(0xddd);
becanromain 0:e82c05b4b6f9 164 btn_tgl_pr.image.color = lv_color_hex3(0xddd);
becanromain 0:e82c05b4b6f9 165
becanromain 0:e82c05b4b6f9 166 lv_style_copy(&btn_ina, &btn_rel);
becanromain 0:e82c05b4b6f9 167 btn_ina.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 20);
becanromain 0:e82c05b4b6f9 168 btn_ina.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 20);
becanromain 0:e82c05b4b6f9 169 btn_ina.body.shadow.width = 0;
becanromain 0:e82c05b4b6f9 170 btn_ina.text.color = lv_color_hex3(0xaaa);
becanromain 0:e82c05b4b6f9 171 btn_ina.image.color = lv_color_hex3(0xaaa);
becanromain 0:e82c05b4b6f9 172
becanromain 0:e82c05b4b6f9 173 theme.style.btn.rel = &btn_rel;
becanromain 0:e82c05b4b6f9 174 theme.style.btn.pr = &btn_pr;
becanromain 0:e82c05b4b6f9 175 theme.style.btn.tgl_rel = &btn_tgl_rel;
becanromain 0:e82c05b4b6f9 176 theme.style.btn.tgl_pr = &btn_tgl_pr;
becanromain 0:e82c05b4b6f9 177 theme.style.btn.ina = &btn_ina;
becanromain 0:e82c05b4b6f9 178
becanromain 0:e82c05b4b6f9 179 /*
becanromain 0:e82c05b4b6f9 180 lv_style_copy(&btn_rel, &def);
becanromain 0:e82c05b4b6f9 181 btn_rel.glass = 0;
becanromain 0:e82c05b4b6f9 182 btn_rel.body.opa = LV_OPA_TRANSP;
becanromain 0:e82c05b4b6f9 183 btn_rel.body.radius = LV_RADIUS_CIRCLE;
becanromain 0:e82c05b4b6f9 184 btn_rel.body.border.width = 2;
becanromain 0:e82c05b4b6f9 185 btn_rel.body.border.color = lv_color_hsv_to_rgb(_hue, 70, 90);
becanromain 0:e82c05b4b6f9 186 btn_rel.body.border.opa = LV_OPA_80;
becanromain 0:e82c05b4b6f9 187 btn_rel.body.padding.left = LV_DPI / 4;
becanromain 0:e82c05b4b6f9 188 btn_rel.body.padding.right = LV_DPI / 4;
becanromain 0:e82c05b4b6f9 189 btn_rel.body.padding.top = LV_DPI / 6;
becanromain 0:e82c05b4b6f9 190 btn_rel.body.padding.bottom = LV_DPI / 6;
becanromain 0:e82c05b4b6f9 191 btn_rel.body.padding.inner = LV_DPI / 10;
becanromain 0:e82c05b4b6f9 192 btn_rel.text.color = lv_color_hsv_to_rgb(0, 0, 0);
becanromain 0:e82c05b4b6f9 193 btn_rel.text.font = _font;
becanromain 0:e82c05b4b6f9 194 btn_rel.image.color = lv_color_hsv_to_rgb(_hue, 8, 96);
becanromain 0:e82c05b4b6f9 195
becanromain 0:e82c05b4b6f9 196 // theme.style.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 197 theme.style.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 198 theme.style.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 199 theme.style.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 200 theme.style.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 201 theme.style.btn.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 202 */
becanromain 0:e82c05b4b6f9 203 #endif
becanromain 0:e82c05b4b6f9 204 }
becanromain 0:e82c05b4b6f9 205
becanromain 0:e82c05b4b6f9 206 static void label_init(void)
becanromain 0:e82c05b4b6f9 207 {
becanromain 0:e82c05b4b6f9 208 #if LV_USE_LABEL != 0
becanromain 0:e82c05b4b6f9 209
becanromain 0:e82c05b4b6f9 210 lv_style_copy(&label_prim, &lv_style_plain);
becanromain 0:e82c05b4b6f9 211 lv_style_copy(&label_sec, &lv_style_plain);
becanromain 0:e82c05b4b6f9 212 lv_style_copy(&label_hint, &lv_style_plain);
becanromain 0:e82c05b4b6f9 213
becanromain 0:e82c05b4b6f9 214 label_prim.text.color = lv_color_hex3(0x111);
becanromain 0:e82c05b4b6f9 215 label_sec.text.color = lv_color_hex3(0x888);
becanromain 0:e82c05b4b6f9 216 label_hint.text.color = lv_color_hex3(0xaaa);
becanromain 0:e82c05b4b6f9 217
becanromain 0:e82c05b4b6f9 218 theme.style.label.prim = &label_prim;
becanromain 0:e82c05b4b6f9 219 theme.style.label.sec = &label_sec;
becanromain 0:e82c05b4b6f9 220 theme.style.label.hint = &label_hint;
becanromain 0:e82c05b4b6f9 221 #endif
becanromain 0:e82c05b4b6f9 222 }
becanromain 0:e82c05b4b6f9 223
becanromain 0:e82c05b4b6f9 224 static void img_init(void)
becanromain 0:e82c05b4b6f9 225 {
becanromain 0:e82c05b4b6f9 226 #if LV_USE_IMG != 0
becanromain 0:e82c05b4b6f9 227
becanromain 0:e82c05b4b6f9 228 theme.style.img.light = &def;
becanromain 0:e82c05b4b6f9 229 theme.style.img.dark = &def;
becanromain 0:e82c05b4b6f9 230 #endif
becanromain 0:e82c05b4b6f9 231 }
becanromain 0:e82c05b4b6f9 232
becanromain 0:e82c05b4b6f9 233 static void line_init(void)
becanromain 0:e82c05b4b6f9 234 {
becanromain 0:e82c05b4b6f9 235 #if LV_USE_LINE != 0
becanromain 0:e82c05b4b6f9 236
becanromain 0:e82c05b4b6f9 237 theme.style.line.decor = &def;
becanromain 0:e82c05b4b6f9 238 #endif
becanromain 0:e82c05b4b6f9 239 }
becanromain 0:e82c05b4b6f9 240
becanromain 0:e82c05b4b6f9 241 static void led_init(void)
becanromain 0:e82c05b4b6f9 242 {
becanromain 0:e82c05b4b6f9 243 #if LV_USE_LED != 0
becanromain 0:e82c05b4b6f9 244 static lv_style_t led;
becanromain 0:e82c05b4b6f9 245
becanromain 0:e82c05b4b6f9 246 lv_style_copy(&led, &lv_style_pretty_color);
becanromain 0:e82c05b4b6f9 247 led.body.shadow.width = LV_DPI / 10;
becanromain 0:e82c05b4b6f9 248 led.body.radius = LV_RADIUS_CIRCLE;
becanromain 0:e82c05b4b6f9 249 led.body.border.width = LV_DPI / 30;
becanromain 0:e82c05b4b6f9 250 led.body.border.opa = LV_OPA_30;
becanromain 0:e82c05b4b6f9 251 led.body.shadow.color = led.body.main_color;
becanromain 0:e82c05b4b6f9 252
becanromain 0:e82c05b4b6f9 253 theme.style.led = &led;
becanromain 0:e82c05b4b6f9 254 #endif
becanromain 0:e82c05b4b6f9 255 }
becanromain 0:e82c05b4b6f9 256
becanromain 0:e82c05b4b6f9 257 static void bar_init(void)
becanromain 0:e82c05b4b6f9 258 {
becanromain 0:e82c05b4b6f9 259 #if LV_USE_BAR
becanromain 0:e82c05b4b6f9 260
becanromain 0:e82c05b4b6f9 261 theme.style.bar.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 262 theme.style.bar.indic = &lv_style_pretty_color;
becanromain 0:e82c05b4b6f9 263 #endif
becanromain 0:e82c05b4b6f9 264 }
becanromain 0:e82c05b4b6f9 265
becanromain 0:e82c05b4b6f9 266 static void slider_init(void)
becanromain 0:e82c05b4b6f9 267 {
becanromain 0:e82c05b4b6f9 268 #if LV_USE_SLIDER != 0
becanromain 0:e82c05b4b6f9 269 static lv_style_t slider_bg;
becanromain 0:e82c05b4b6f9 270 lv_style_copy(&slider_bg, &lv_style_pretty);
becanromain 0:e82c05b4b6f9 271 slider_bg.body.padding.left = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 272 slider_bg.body.padding.right = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 273 slider_bg.body.padding.top = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 274 slider_bg.body.padding.bottom = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 275
becanromain 0:e82c05b4b6f9 276 theme.style.slider.bg = &slider_bg;
becanromain 0:e82c05b4b6f9 277 theme.style.slider.indic = &lv_style_pretty_color;
becanromain 0:e82c05b4b6f9 278 theme.style.slider.knob = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 279 #endif
becanromain 0:e82c05b4b6f9 280 }
becanromain 0:e82c05b4b6f9 281
becanromain 0:e82c05b4b6f9 282 static void sw_init(void)
becanromain 0:e82c05b4b6f9 283 {
becanromain 0:e82c05b4b6f9 284 #if LV_USE_SW != 0
becanromain 0:e82c05b4b6f9 285 static lv_style_t sw_bg;
becanromain 0:e82c05b4b6f9 286 lv_style_copy(&sw_bg, &lv_style_pretty);
becanromain 0:e82c05b4b6f9 287 sw_bg.body.padding.left = 3;
becanromain 0:e82c05b4b6f9 288 sw_bg.body.padding.right = 3;
becanromain 0:e82c05b4b6f9 289 sw_bg.body.padding.top = 3;
becanromain 0:e82c05b4b6f9 290 sw_bg.body.padding.bottom = 3;
becanromain 0:e82c05b4b6f9 291
becanromain 0:e82c05b4b6f9 292 theme.style.sw.bg = &sw_bg;
becanromain 0:e82c05b4b6f9 293 theme.style.sw.indic = &lv_style_pretty_color;
becanromain 0:e82c05b4b6f9 294 theme.style.sw.knob_off = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 295 theme.style.sw.knob_on = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 296 #endif
becanromain 0:e82c05b4b6f9 297 }
becanromain 0:e82c05b4b6f9 298
becanromain 0:e82c05b4b6f9 299 static void lmeter_init(void)
becanromain 0:e82c05b4b6f9 300 {
becanromain 0:e82c05b4b6f9 301 #if LV_USE_LMETER != 0
becanromain 0:e82c05b4b6f9 302 static lv_style_t lmeter;
becanromain 0:e82c05b4b6f9 303 lv_style_copy(&lmeter, &lv_style_pretty_color);
becanromain 0:e82c05b4b6f9 304 lmeter.line.color = lv_color_hex3(0xddd);
becanromain 0:e82c05b4b6f9 305 lmeter.line.width = 2;
becanromain 0:e82c05b4b6f9 306 lmeter.body.main_color = lv_color_mix(lmeter.body.main_color, LV_COLOR_WHITE, LV_OPA_50);
becanromain 0:e82c05b4b6f9 307 lmeter.body.grad_color = lv_color_mix(lmeter.body.grad_color, LV_COLOR_BLACK, LV_OPA_50);
becanromain 0:e82c05b4b6f9 308
becanromain 0:e82c05b4b6f9 309 theme.style.lmeter = &lmeter;
becanromain 0:e82c05b4b6f9 310 #endif
becanromain 0:e82c05b4b6f9 311 }
becanromain 0:e82c05b4b6f9 312
becanromain 0:e82c05b4b6f9 313 static void gauge_init(void)
becanromain 0:e82c05b4b6f9 314 {
becanromain 0:e82c05b4b6f9 315 #if LV_USE_GAUGE != 0
becanromain 0:e82c05b4b6f9 316 static lv_style_t gauge;
becanromain 0:e82c05b4b6f9 317 lv_style_copy(&gauge, theme.style.lmeter);
becanromain 0:e82c05b4b6f9 318 gauge.line.color = theme.style.lmeter->body.grad_color;
becanromain 0:e82c05b4b6f9 319 gauge.line.width = 2;
becanromain 0:e82c05b4b6f9 320 gauge.body.main_color = lv_color_hex3(0x888);
becanromain 0:e82c05b4b6f9 321 gauge.body.grad_color = theme.style.lmeter->body.main_color;
becanromain 0:e82c05b4b6f9 322 gauge.text.color = lv_color_hex3(0x888);
becanromain 0:e82c05b4b6f9 323
becanromain 0:e82c05b4b6f9 324 theme.style.gauge = &gauge;
becanromain 0:e82c05b4b6f9 325 #endif
becanromain 0:e82c05b4b6f9 326 }
becanromain 0:e82c05b4b6f9 327
becanromain 0:e82c05b4b6f9 328 static void chart_init(void)
becanromain 0:e82c05b4b6f9 329 {
becanromain 0:e82c05b4b6f9 330 #if LV_USE_CHART
becanromain 0:e82c05b4b6f9 331
becanromain 0:e82c05b4b6f9 332 theme.style.chart = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 333 #endif
becanromain 0:e82c05b4b6f9 334 }
becanromain 0:e82c05b4b6f9 335
becanromain 0:e82c05b4b6f9 336 static void cb_init(void)
becanromain 0:e82c05b4b6f9 337 {
becanromain 0:e82c05b4b6f9 338 #if LV_USE_CB != 0
becanromain 0:e82c05b4b6f9 339
becanromain 0:e82c05b4b6f9 340 theme.style.cb.bg = &lv_style_transp;
becanromain 0:e82c05b4b6f9 341 theme.style.cb.box.rel = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 342 theme.style.cb.box.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 343 theme.style.cb.box.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 344 theme.style.cb.box.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 345 theme.style.cb.box.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 346 #endif
becanromain 0:e82c05b4b6f9 347 }
becanromain 0:e82c05b4b6f9 348
becanromain 0:e82c05b4b6f9 349 static void btnm_init(void)
becanromain 0:e82c05b4b6f9 350 {
becanromain 0:e82c05b4b6f9 351 #if LV_USE_BTNM
becanromain 0:e82c05b4b6f9 352
becanromain 0:e82c05b4b6f9 353 theme.style.btnm.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 354 theme.style.btnm.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 355 theme.style.btnm.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 356 theme.style.btnm.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 357 theme.style.btnm.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 358 theme.style.btnm.btn.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 359 #endif
becanromain 0:e82c05b4b6f9 360 }
becanromain 0:e82c05b4b6f9 361
becanromain 0:e82c05b4b6f9 362 static void kb_init(void)
becanromain 0:e82c05b4b6f9 363 {
becanromain 0:e82c05b4b6f9 364 #if LV_USE_KB
becanromain 0:e82c05b4b6f9 365
becanromain 0:e82c05b4b6f9 366 theme.style.kb.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 367 theme.style.kb.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 368 theme.style.kb.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 369 theme.style.kb.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 370 theme.style.kb.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 371 theme.style.kb.btn.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 372 #endif
becanromain 0:e82c05b4b6f9 373 }
becanromain 0:e82c05b4b6f9 374
becanromain 0:e82c05b4b6f9 375 static void mbox_init(void)
becanromain 0:e82c05b4b6f9 376 {
becanromain 0:e82c05b4b6f9 377 #if LV_USE_MBOX
becanromain 0:e82c05b4b6f9 378
becanromain 0:e82c05b4b6f9 379 theme.style.mbox.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 380 theme.style.mbox.btn.bg = &lv_style_transp;
becanromain 0:e82c05b4b6f9 381 theme.style.mbox.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 382 theme.style.mbox.btn.pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 383 #endif
becanromain 0:e82c05b4b6f9 384 }
becanromain 0:e82c05b4b6f9 385
becanromain 0:e82c05b4b6f9 386 static void page_init(void)
becanromain 0:e82c05b4b6f9 387 {
becanromain 0:e82c05b4b6f9 388 #if LV_USE_PAGE
becanromain 0:e82c05b4b6f9 389
becanromain 0:e82c05b4b6f9 390 theme.style.page.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 391 theme.style.page.scrl = &lv_style_transp_tight;
becanromain 0:e82c05b4b6f9 392 theme.style.page.sb = &sb;
becanromain 0:e82c05b4b6f9 393 #endif
becanromain 0:e82c05b4b6f9 394 }
becanromain 0:e82c05b4b6f9 395
becanromain 0:e82c05b4b6f9 396 static void ta_init(void)
becanromain 0:e82c05b4b6f9 397 {
becanromain 0:e82c05b4b6f9 398 #if LV_USE_TA
becanromain 0:e82c05b4b6f9 399
becanromain 0:e82c05b4b6f9 400 theme.style.ta.area = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 401 theme.style.ta.oneline = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 402 theme.style.ta.cursor = NULL;
becanromain 0:e82c05b4b6f9 403 theme.style.ta.sb = &sb;
becanromain 0:e82c05b4b6f9 404 #endif
becanromain 0:e82c05b4b6f9 405 }
becanromain 0:e82c05b4b6f9 406
becanromain 0:e82c05b4b6f9 407 static void list_init(void)
becanromain 0:e82c05b4b6f9 408 {
becanromain 0:e82c05b4b6f9 409 #if LV_USE_LIST != 0
becanromain 0:e82c05b4b6f9 410
becanromain 0:e82c05b4b6f9 411 theme.style.list.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 412 theme.style.list.scrl = &lv_style_transp_fit;
becanromain 0:e82c05b4b6f9 413 theme.style.list.sb = &sb;
becanromain 0:e82c05b4b6f9 414 theme.style.list.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 415 theme.style.list.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 416 theme.style.list.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 417 theme.style.list.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 418 theme.style.list.btn.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 419 #endif
becanromain 0:e82c05b4b6f9 420 }
becanromain 0:e82c05b4b6f9 421
becanromain 0:e82c05b4b6f9 422 static void ddlist_init(void)
becanromain 0:e82c05b4b6f9 423 {
becanromain 0:e82c05b4b6f9 424 #if LV_USE_DDLIST != 0
becanromain 0:e82c05b4b6f9 425
becanromain 0:e82c05b4b6f9 426 theme.style.ddlist.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 427 theme.style.ddlist.sel = &lv_style_plain_color;
becanromain 0:e82c05b4b6f9 428 theme.style.ddlist.sb = &sb;
becanromain 0:e82c05b4b6f9 429 #endif
becanromain 0:e82c05b4b6f9 430 }
becanromain 0:e82c05b4b6f9 431
becanromain 0:e82c05b4b6f9 432 static void roller_init(void)
becanromain 0:e82c05b4b6f9 433 {
becanromain 0:e82c05b4b6f9 434 #if LV_USE_ROLLER != 0
becanromain 0:e82c05b4b6f9 435
becanromain 0:e82c05b4b6f9 436 theme.style.roller.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 437 theme.style.roller.sel = &lv_style_plain_color;
becanromain 0:e82c05b4b6f9 438 #endif
becanromain 0:e82c05b4b6f9 439 }
becanromain 0:e82c05b4b6f9 440
becanromain 0:e82c05b4b6f9 441 static void tabview_init(void)
becanromain 0:e82c05b4b6f9 442 {
becanromain 0:e82c05b4b6f9 443 #if LV_USE_TABVIEW != 0
becanromain 0:e82c05b4b6f9 444
becanromain 0:e82c05b4b6f9 445 theme.style.tabview.bg = &plain_bordered;
becanromain 0:e82c05b4b6f9 446 theme.style.tabview.indic = &lv_style_plain_color;
becanromain 0:e82c05b4b6f9 447 theme.style.tabview.btn.bg = &lv_style_transp;
becanromain 0:e82c05b4b6f9 448 theme.style.tabview.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 449 theme.style.tabview.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 450 theme.style.tabview.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 451 theme.style.tabview.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 452 #endif
becanromain 0:e82c05b4b6f9 453 }
becanromain 0:e82c05b4b6f9 454
becanromain 0:e82c05b4b6f9 455 static void table_init(void)
becanromain 0:e82c05b4b6f9 456 {
becanromain 0:e82c05b4b6f9 457 #if LV_USE_TABLE != 0
becanromain 0:e82c05b4b6f9 458 theme.style.table.bg = &lv_style_transp_tight;
becanromain 0:e82c05b4b6f9 459 theme.style.table.cell = &lv_style_plain;
becanromain 0:e82c05b4b6f9 460 #endif
becanromain 0:e82c05b4b6f9 461 }
becanromain 0:e82c05b4b6f9 462
becanromain 0:e82c05b4b6f9 463 static void win_init(void)
becanromain 0:e82c05b4b6f9 464 {
becanromain 0:e82c05b4b6f9 465 #if LV_USE_WIN != 0
becanromain 0:e82c05b4b6f9 466
becanromain 0:e82c05b4b6f9 467 theme.style.win.bg = &plain_bordered;
becanromain 0:e82c05b4b6f9 468 theme.style.win.sb = &sb;
becanromain 0:e82c05b4b6f9 469 theme.style.win.header = &lv_style_plain_color;
becanromain 0:e82c05b4b6f9 470 theme.style.win.content = &lv_style_transp;
becanromain 0:e82c05b4b6f9 471 theme.style.win.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 472 theme.style.win.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 473 #endif
becanromain 0:e82c05b4b6f9 474 }
becanromain 0:e82c05b4b6f9 475
becanromain 0:e82c05b4b6f9 476 #if LV_USE_GROUP
becanromain 0:e82c05b4b6f9 477
becanromain 0:e82c05b4b6f9 478 static void style_mod(lv_group_t * group, lv_style_t * style)
becanromain 0:e82c05b4b6f9 479 {
becanromain 0:e82c05b4b6f9 480 (void)group; /*Unused*/
becanromain 0:e82c05b4b6f9 481 #if LV_COLOR_DEPTH != 1
becanromain 0:e82c05b4b6f9 482 /*Make the style to be a little bit orange*/
becanromain 0:e82c05b4b6f9 483 style->body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 484 style->body.border.color = LV_COLOR_ORANGE;
becanromain 0:e82c05b4b6f9 485
becanromain 0:e82c05b4b6f9 486 /*If not empty or has border then emphasis the border*/
becanromain 0:e82c05b4b6f9 487 if(style->body.opa != LV_OPA_TRANSP || style->body.border.width != 0) style->body.border.width = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 488
becanromain 0:e82c05b4b6f9 489 style->body.main_color = lv_color_mix(style->body.main_color, LV_COLOR_ORANGE, LV_OPA_70);
becanromain 0:e82c05b4b6f9 490 style->body.grad_color = lv_color_mix(style->body.grad_color, LV_COLOR_ORANGE, LV_OPA_70);
becanromain 0:e82c05b4b6f9 491 style->body.shadow.color = lv_color_mix(style->body.shadow.color, LV_COLOR_ORANGE, LV_OPA_60);
becanromain 0:e82c05b4b6f9 492
becanromain 0:e82c05b4b6f9 493 style->text.color = lv_color_mix(style->text.color, LV_COLOR_ORANGE, LV_OPA_70);
becanromain 0:e82c05b4b6f9 494 #else
becanromain 0:e82c05b4b6f9 495 style->body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 496 style->body.border.color = LV_COLOR_BLACK;
becanromain 0:e82c05b4b6f9 497 style->body.border.width = 2;
becanromain 0:e82c05b4b6f9 498 #endif
becanromain 0:e82c05b4b6f9 499 }
becanromain 0:e82c05b4b6f9 500
becanromain 0:e82c05b4b6f9 501 static void style_mod_edit(lv_group_t * group, lv_style_t * style)
becanromain 0:e82c05b4b6f9 502 {
becanromain 0:e82c05b4b6f9 503 (void)group; /*Unused*/
becanromain 0:e82c05b4b6f9 504 #if LV_COLOR_DEPTH != 1
becanromain 0:e82c05b4b6f9 505 /*Make the style to be a little bit orange*/
becanromain 0:e82c05b4b6f9 506 style->body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 507 style->body.border.color = LV_COLOR_GREEN;
becanromain 0:e82c05b4b6f9 508
becanromain 0:e82c05b4b6f9 509 /*If not empty or has border then emphasis the border*/
becanromain 0:e82c05b4b6f9 510 if(style->body.opa != LV_OPA_TRANSP || style->body.border.width != 0) style->body.border.width = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 511
becanromain 0:e82c05b4b6f9 512 style->body.main_color = lv_color_mix(style->body.main_color, LV_COLOR_GREEN, LV_OPA_70);
becanromain 0:e82c05b4b6f9 513 style->body.grad_color = lv_color_mix(style->body.grad_color, LV_COLOR_GREEN, LV_OPA_70);
becanromain 0:e82c05b4b6f9 514 style->body.shadow.color = lv_color_mix(style->body.shadow.color, LV_COLOR_GREEN, LV_OPA_60);
becanromain 0:e82c05b4b6f9 515
becanromain 0:e82c05b4b6f9 516 style->text.color = lv_color_mix(style->text.color, LV_COLOR_GREEN, LV_OPA_70);
becanromain 0:e82c05b4b6f9 517 #else
becanromain 0:e82c05b4b6f9 518 style->body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 519 style->body.border.color = LV_COLOR_BLACK;
becanromain 0:e82c05b4b6f9 520 style->body.border.width = 3;
becanromain 0:e82c05b4b6f9 521 #endif
becanromain 0:e82c05b4b6f9 522 }
becanromain 0:e82c05b4b6f9 523
becanromain 0:e82c05b4b6f9 524 #endif /*LV_USE_GROUP*/
becanromain 0:e82c05b4b6f9 525
becanromain 0:e82c05b4b6f9 526 /**********************
becanromain 0:e82c05b4b6f9 527 * GLOBAL FUNCTIONS
becanromain 0:e82c05b4b6f9 528 **********************/
becanromain 0:e82c05b4b6f9 529
becanromain 0:e82c05b4b6f9 530 /**
becanromain 0:e82c05b4b6f9 531 * Initialize the default theme
becanromain 0:e82c05b4b6f9 532 * @param hue [0..360] hue value from HSV color space to define the theme's base color
becanromain 0:e82c05b4b6f9 533 * @param font pointer to a font (NULL to use the default)
becanromain 0:e82c05b4b6f9 534 * @return pointer to the initialized theme
becanromain 0:e82c05b4b6f9 535 */
becanromain 0:e82c05b4b6f9 536 lv_theme_t * lv_theme_rb_init(uint16_t hue, lv_font_t * font)
becanromain 0:e82c05b4b6f9 537 {
becanromain 0:e82c05b4b6f9 538 if(font == NULL) font = LV_FONT_DEFAULT;
becanromain 0:e82c05b4b6f9 539 // font = &lv_font_roboto_22; //GABOR : Doesn't work:?
becanromain 0:e82c05b4b6f9 540 // font = &RB_lv_font_roboto_16; //GABOR : Doesn't work:?
becanromain 0:e82c05b4b6f9 541
becanromain 0:e82c05b4b6f9 542
becanromain 0:e82c05b4b6f9 543 _hue = hue;
becanromain 0:e82c05b4b6f9 544 _font = font;
becanromain 0:e82c05b4b6f9 545
becanromain 0:e82c05b4b6f9 546 /*For backward compatibility initialize all theme elements with a default style */
becanromain 0:e82c05b4b6f9 547 uint16_t i;
becanromain 0:e82c05b4b6f9 548 lv_style_t ** style_p = (lv_style_t **)&theme.style;
becanromain 0:e82c05b4b6f9 549 for(i = 0; i < LV_THEME_STYLE_COUNT; i++) {
becanromain 0:e82c05b4b6f9 550 *style_p = &def;
becanromain 0:e82c05b4b6f9 551 style_p++;
becanromain 0:e82c05b4b6f9 552 }
becanromain 0:e82c05b4b6f9 553
becanromain 0:e82c05b4b6f9 554 basic_init();
becanromain 0:e82c05b4b6f9 555 btn_init();
becanromain 0:e82c05b4b6f9 556 label_init();
becanromain 0:e82c05b4b6f9 557 img_init();
becanromain 0:e82c05b4b6f9 558 line_init();
becanromain 0:e82c05b4b6f9 559 led_init();
becanromain 0:e82c05b4b6f9 560 bar_init();
becanromain 0:e82c05b4b6f9 561 slider_init();
becanromain 0:e82c05b4b6f9 562 sw_init();
becanromain 0:e82c05b4b6f9 563 lmeter_init();
becanromain 0:e82c05b4b6f9 564 gauge_init();
becanromain 0:e82c05b4b6f9 565 chart_init();
becanromain 0:e82c05b4b6f9 566 cb_init();
becanromain 0:e82c05b4b6f9 567 btnm_init();
becanromain 0:e82c05b4b6f9 568 kb_init();
becanromain 0:e82c05b4b6f9 569 mbox_init();
becanromain 0:e82c05b4b6f9 570 page_init();
becanromain 0:e82c05b4b6f9 571 ta_init();
becanromain 0:e82c05b4b6f9 572 list_init();
becanromain 0:e82c05b4b6f9 573 ddlist_init();
becanromain 0:e82c05b4b6f9 574 roller_init();
becanromain 0:e82c05b4b6f9 575 tabview_init();
becanromain 0:e82c05b4b6f9 576 table_init();
becanromain 0:e82c05b4b6f9 577 win_init();
becanromain 0:e82c05b4b6f9 578
becanromain 0:e82c05b4b6f9 579 #if LV_USE_GROUP
becanromain 0:e82c05b4b6f9 580 theme.group.style_mod_xcb = style_mod;
becanromain 0:e82c05b4b6f9 581 theme.group.style_mod_edit_xcb = style_mod_edit;
becanromain 0:e82c05b4b6f9 582 #endif
becanromain 0:e82c05b4b6f9 583
becanromain 0:e82c05b4b6f9 584 return &theme;
becanromain 0:e82c05b4b6f9 585 }
becanromain 0:e82c05b4b6f9 586
becanromain 0:e82c05b4b6f9 587 /**
becanromain 0:e82c05b4b6f9 588 * Get a pointer to the theme
becanromain 0:e82c05b4b6f9 589 * @return pointer to the theme
becanromain 0:e82c05b4b6f9 590 */
becanromain 0:e82c05b4b6f9 591 lv_theme_t * lv_theme_get_rb(void)
becanromain 0:e82c05b4b6f9 592 {
becanromain 0:e82c05b4b6f9 593 return &theme;
becanromain 0:e82c05b4b6f9 594 }
becanromain 0:e82c05b4b6f9 595
becanromain 0:e82c05b4b6f9 596 /**********************
becanromain 0:e82c05b4b6f9 597 * STATIC FUNCTIONS
becanromain 0:e82c05b4b6f9 598 **********************/
becanromain 0:e82c05b4b6f9 599