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 scr;
becanromain 0:e82c05b4b6f9 30
becanromain 0:e82c05b4b6f9 31 /*Static style definitions*/
becanromain 0:e82c05b4b6f9 32 static lv_style_t sb;
becanromain 0:e82c05b4b6f9 33 static lv_style_t plain_bordered;
becanromain 0:e82c05b4b6f9 34 static lv_style_t label_prim;
becanromain 0:e82c05b4b6f9 35 static lv_style_t label_sec;
becanromain 0:e82c05b4b6f9 36 static lv_style_t label_hint;
becanromain 0:e82c05b4b6f9 37
becanromain 0:e82c05b4b6f9 38 /*Saved input parameters*/
becanromain 0:e82c05b4b6f9 39 static uint16_t _hue;
becanromain 0:e82c05b4b6f9 40 static lv_font_t * _font;
becanromain 0:e82c05b4b6f9 41
becanromain 0:e82c05b4b6f9 42 /**********************
becanromain 0:e82c05b4b6f9 43 * MACROS
becanromain 0:e82c05b4b6f9 44 **********************/
becanromain 0:e82c05b4b6f9 45
becanromain 0:e82c05b4b6f9 46 /**********************
becanromain 0:e82c05b4b6f9 47 * STATIC FUNCTIONS
becanromain 0:e82c05b4b6f9 48 **********************/
becanromain 0:e82c05b4b6f9 49
becanromain 0:e82c05b4b6f9 50 static void basic_init(void)
becanromain 0:e82c05b4b6f9 51 {
becanromain 0:e82c05b4b6f9 52 lv_style_copy(&def, &lv_style_pretty); /*Initialize the default style*/
becanromain 0:e82c05b4b6f9 53
becanromain 0:e82c05b4b6f9 54 lv_style_copy(&scr, &def);
becanromain 0:e82c05b4b6f9 55 scr.body.padding.bottom = 0;
becanromain 0:e82c05b4b6f9 56 scr.body.padding.top = 0;
becanromain 0:e82c05b4b6f9 57 scr.body.padding.left = 0;
becanromain 0:e82c05b4b6f9 58 scr.body.padding.right = 0;
becanromain 0:e82c05b4b6f9 59
becanromain 0:e82c05b4b6f9 60 lv_style_copy(&sb, &lv_style_pretty_color);
becanromain 0:e82c05b4b6f9 61 sb.body.grad_color = sb.body.main_color;
becanromain 0:e82c05b4b6f9 62 sb.body.padding.right = sb.body.padding.right / 2; /*Make closer to the edges*/
becanromain 0:e82c05b4b6f9 63 sb.body.padding.bottom = sb.body.padding.bottom / 2;
becanromain 0:e82c05b4b6f9 64
becanromain 0:e82c05b4b6f9 65 lv_style_copy(&plain_bordered, &lv_style_plain);
becanromain 0:e82c05b4b6f9 66 plain_bordered.body.border.width = 2;
becanromain 0:e82c05b4b6f9 67 plain_bordered.body.border.color = lv_color_hex3(0xbbb);
becanromain 0:e82c05b4b6f9 68
becanromain 0:e82c05b4b6f9 69 theme.style.bg = &lv_style_plain;
becanromain 0:e82c05b4b6f9 70 theme.style.scr = &scr;
becanromain 0:e82c05b4b6f9 71 theme.style.panel = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 72 }
becanromain 0:e82c05b4b6f9 73
becanromain 0:e82c05b4b6f9 74 static void btn_init(void)
becanromain 0:e82c05b4b6f9 75 {
becanromain 0:e82c05b4b6f9 76 #if LV_USE_BTN != 0
becanromain 0:e82c05b4b6f9 77 theme.style.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 78 theme.style.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 79 theme.style.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 80 theme.style.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 81 theme.style.btn.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 82 #endif
becanromain 0:e82c05b4b6f9 83 }
becanromain 0:e82c05b4b6f9 84
becanromain 0:e82c05b4b6f9 85 static void label_init(void)
becanromain 0:e82c05b4b6f9 86 {
becanromain 0:e82c05b4b6f9 87 #if LV_USE_LABEL != 0
becanromain 0:e82c05b4b6f9 88
becanromain 0:e82c05b4b6f9 89 lv_style_copy(&label_prim, &lv_style_plain);
becanromain 0:e82c05b4b6f9 90 lv_style_copy(&label_sec, &lv_style_plain);
becanromain 0:e82c05b4b6f9 91 lv_style_copy(&label_hint, &lv_style_plain);
becanromain 0:e82c05b4b6f9 92
becanromain 0:e82c05b4b6f9 93 label_prim.text.color = lv_color_hex3(0x111);
becanromain 0:e82c05b4b6f9 94 label_sec.text.color = lv_color_hex3(0x888);
becanromain 0:e82c05b4b6f9 95 label_hint.text.color = lv_color_hex3(0xaaa);
becanromain 0:e82c05b4b6f9 96
becanromain 0:e82c05b4b6f9 97 theme.style.label.prim = &label_prim;
becanromain 0:e82c05b4b6f9 98 theme.style.label.sec = &label_sec;
becanromain 0:e82c05b4b6f9 99 theme.style.label.hint = &label_hint;
becanromain 0:e82c05b4b6f9 100 #endif
becanromain 0:e82c05b4b6f9 101 }
becanromain 0:e82c05b4b6f9 102
becanromain 0:e82c05b4b6f9 103 static void img_init(void)
becanromain 0:e82c05b4b6f9 104 {
becanromain 0:e82c05b4b6f9 105 #if LV_USE_IMG != 0
becanromain 0:e82c05b4b6f9 106
becanromain 0:e82c05b4b6f9 107 theme.style.img.light = &def;
becanromain 0:e82c05b4b6f9 108 theme.style.img.dark = &def;
becanromain 0:e82c05b4b6f9 109 #endif
becanromain 0:e82c05b4b6f9 110 }
becanromain 0:e82c05b4b6f9 111
becanromain 0:e82c05b4b6f9 112 static void line_init(void)
becanromain 0:e82c05b4b6f9 113 {
becanromain 0:e82c05b4b6f9 114 #if LV_USE_LINE != 0
becanromain 0:e82c05b4b6f9 115
becanromain 0:e82c05b4b6f9 116 theme.style.line.decor = &def;
becanromain 0:e82c05b4b6f9 117 #endif
becanromain 0:e82c05b4b6f9 118 }
becanromain 0:e82c05b4b6f9 119
becanromain 0:e82c05b4b6f9 120 static void led_init(void)
becanromain 0:e82c05b4b6f9 121 {
becanromain 0:e82c05b4b6f9 122 #if LV_USE_LED != 0
becanromain 0:e82c05b4b6f9 123 static lv_style_t led;
becanromain 0:e82c05b4b6f9 124
becanromain 0:e82c05b4b6f9 125 lv_style_copy(&led, &lv_style_pretty_color);
becanromain 0:e82c05b4b6f9 126 led.body.shadow.width = LV_DPI / 10;
becanromain 0:e82c05b4b6f9 127 led.body.radius = LV_RADIUS_CIRCLE;
becanromain 0:e82c05b4b6f9 128 led.body.border.width = LV_DPI / 30;
becanromain 0:e82c05b4b6f9 129 led.body.border.opa = LV_OPA_30;
becanromain 0:e82c05b4b6f9 130 led.body.shadow.color = led.body.main_color;
becanromain 0:e82c05b4b6f9 131
becanromain 0:e82c05b4b6f9 132 theme.style.led = &led;
becanromain 0:e82c05b4b6f9 133 #endif
becanromain 0:e82c05b4b6f9 134 }
becanromain 0:e82c05b4b6f9 135
becanromain 0:e82c05b4b6f9 136 static void bar_init(void)
becanromain 0:e82c05b4b6f9 137 {
becanromain 0:e82c05b4b6f9 138 #if LV_USE_BAR
becanromain 0:e82c05b4b6f9 139
becanromain 0:e82c05b4b6f9 140 theme.style.bar.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 141 theme.style.bar.indic = &lv_style_pretty_color;
becanromain 0:e82c05b4b6f9 142 #endif
becanromain 0:e82c05b4b6f9 143 }
becanromain 0:e82c05b4b6f9 144
becanromain 0:e82c05b4b6f9 145 static void slider_init(void)
becanromain 0:e82c05b4b6f9 146 {
becanromain 0:e82c05b4b6f9 147 #if LV_USE_SLIDER != 0
becanromain 0:e82c05b4b6f9 148 static lv_style_t slider_bg;
becanromain 0:e82c05b4b6f9 149 lv_style_copy(&slider_bg, &lv_style_pretty);
becanromain 0:e82c05b4b6f9 150 slider_bg.body.padding.left = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 151 slider_bg.body.padding.right = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 152 slider_bg.body.padding.top = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 153 slider_bg.body.padding.bottom = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 154
becanromain 0:e82c05b4b6f9 155 theme.style.slider.bg = &slider_bg;
becanromain 0:e82c05b4b6f9 156 theme.style.slider.indic = &lv_style_pretty_color;
becanromain 0:e82c05b4b6f9 157 theme.style.slider.knob = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 158 #endif
becanromain 0:e82c05b4b6f9 159 }
becanromain 0:e82c05b4b6f9 160
becanromain 0:e82c05b4b6f9 161 static void sw_init(void)
becanromain 0:e82c05b4b6f9 162 {
becanromain 0:e82c05b4b6f9 163 #if LV_USE_SW != 0
becanromain 0:e82c05b4b6f9 164 static lv_style_t sw_bg;
becanromain 0:e82c05b4b6f9 165 lv_style_copy(&sw_bg, &lv_style_pretty);
becanromain 0:e82c05b4b6f9 166 sw_bg.body.padding.left = 3;
becanromain 0:e82c05b4b6f9 167 sw_bg.body.padding.right = 3;
becanromain 0:e82c05b4b6f9 168 sw_bg.body.padding.top = 3;
becanromain 0:e82c05b4b6f9 169 sw_bg.body.padding.bottom = 3;
becanromain 0:e82c05b4b6f9 170
becanromain 0:e82c05b4b6f9 171 theme.style.sw.bg = &sw_bg;
becanromain 0:e82c05b4b6f9 172 theme.style.sw.indic = &lv_style_pretty_color;
becanromain 0:e82c05b4b6f9 173 theme.style.sw.knob_off = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 174 theme.style.sw.knob_on = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 175 #endif
becanromain 0:e82c05b4b6f9 176 }
becanromain 0:e82c05b4b6f9 177
becanromain 0:e82c05b4b6f9 178 static void lmeter_init(void)
becanromain 0:e82c05b4b6f9 179 {
becanromain 0:e82c05b4b6f9 180 #if LV_USE_LMETER != 0
becanromain 0:e82c05b4b6f9 181 static lv_style_t lmeter;
becanromain 0:e82c05b4b6f9 182 lv_style_copy(&lmeter, &lv_style_pretty_color);
becanromain 0:e82c05b4b6f9 183 lmeter.line.color = lv_color_hex3(0xddd);
becanromain 0:e82c05b4b6f9 184 lmeter.line.width = 2;
becanromain 0:e82c05b4b6f9 185 lmeter.body.main_color = lv_color_mix(lmeter.body.main_color, LV_COLOR_WHITE, LV_OPA_50);
becanromain 0:e82c05b4b6f9 186 lmeter.body.grad_color = lv_color_mix(lmeter.body.grad_color, LV_COLOR_BLACK, LV_OPA_50);
becanromain 0:e82c05b4b6f9 187
becanromain 0:e82c05b4b6f9 188 theme.style.lmeter = &lmeter;
becanromain 0:e82c05b4b6f9 189 #endif
becanromain 0:e82c05b4b6f9 190 }
becanromain 0:e82c05b4b6f9 191
becanromain 0:e82c05b4b6f9 192 static void gauge_init(void)
becanromain 0:e82c05b4b6f9 193 {
becanromain 0:e82c05b4b6f9 194 #if LV_USE_GAUGE != 0
becanromain 0:e82c05b4b6f9 195 static lv_style_t gauge;
becanromain 0:e82c05b4b6f9 196 lv_style_copy(&gauge, theme.style.lmeter);
becanromain 0:e82c05b4b6f9 197 gauge.line.color = theme.style.lmeter->body.grad_color;
becanromain 0:e82c05b4b6f9 198 gauge.line.width = 2;
becanromain 0:e82c05b4b6f9 199 gauge.body.main_color = lv_color_hex3(0x888);
becanromain 0:e82c05b4b6f9 200 gauge.body.grad_color = theme.style.lmeter->body.main_color;
becanromain 0:e82c05b4b6f9 201 gauge.text.color = lv_color_hex3(0x888);
becanromain 0:e82c05b4b6f9 202
becanromain 0:e82c05b4b6f9 203 theme.style.gauge = &gauge;
becanromain 0:e82c05b4b6f9 204 #endif
becanromain 0:e82c05b4b6f9 205 }
becanromain 0:e82c05b4b6f9 206
becanromain 0:e82c05b4b6f9 207 static void chart_init(void)
becanromain 0:e82c05b4b6f9 208 {
becanromain 0:e82c05b4b6f9 209 #if LV_USE_CHART
becanromain 0:e82c05b4b6f9 210
becanromain 0:e82c05b4b6f9 211 theme.style.chart = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 212 #endif
becanromain 0:e82c05b4b6f9 213 }
becanromain 0:e82c05b4b6f9 214
becanromain 0:e82c05b4b6f9 215 static void cb_init(void)
becanromain 0:e82c05b4b6f9 216 {
becanromain 0:e82c05b4b6f9 217 #if LV_USE_CB != 0
becanromain 0:e82c05b4b6f9 218
becanromain 0:e82c05b4b6f9 219 theme.style.cb.bg = &lv_style_transp;
becanromain 0:e82c05b4b6f9 220 theme.style.cb.box.rel = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 221 theme.style.cb.box.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 222 theme.style.cb.box.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 223 theme.style.cb.box.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 224 theme.style.cb.box.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 225 #endif
becanromain 0:e82c05b4b6f9 226 }
becanromain 0:e82c05b4b6f9 227
becanromain 0:e82c05b4b6f9 228 static void btnm_init(void)
becanromain 0:e82c05b4b6f9 229 {
becanromain 0:e82c05b4b6f9 230 #if LV_USE_BTNM
becanromain 0:e82c05b4b6f9 231
becanromain 0:e82c05b4b6f9 232 theme.style.btnm.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 233 theme.style.btnm.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 234 theme.style.btnm.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 235 theme.style.btnm.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 236 theme.style.btnm.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 237 theme.style.btnm.btn.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 238 #endif
becanromain 0:e82c05b4b6f9 239 }
becanromain 0:e82c05b4b6f9 240
becanromain 0:e82c05b4b6f9 241 static void kb_init(void)
becanromain 0:e82c05b4b6f9 242 {
becanromain 0:e82c05b4b6f9 243 #if LV_USE_KB
becanromain 0:e82c05b4b6f9 244
becanromain 0:e82c05b4b6f9 245 theme.style.kb.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 246 theme.style.kb.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 247 theme.style.kb.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 248 theme.style.kb.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 249 theme.style.kb.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 250 theme.style.kb.btn.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 251 #endif
becanromain 0:e82c05b4b6f9 252 }
becanromain 0:e82c05b4b6f9 253
becanromain 0:e82c05b4b6f9 254 static void mbox_init(void)
becanromain 0:e82c05b4b6f9 255 {
becanromain 0:e82c05b4b6f9 256 #if LV_USE_MBOX
becanromain 0:e82c05b4b6f9 257
becanromain 0:e82c05b4b6f9 258 theme.style.mbox.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 259 theme.style.mbox.btn.bg = &lv_style_transp;
becanromain 0:e82c05b4b6f9 260 theme.style.mbox.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 261 theme.style.mbox.btn.pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 262 #endif
becanromain 0:e82c05b4b6f9 263 }
becanromain 0:e82c05b4b6f9 264
becanromain 0:e82c05b4b6f9 265 static void page_init(void)
becanromain 0:e82c05b4b6f9 266 {
becanromain 0:e82c05b4b6f9 267 #if LV_USE_PAGE
becanromain 0:e82c05b4b6f9 268
becanromain 0:e82c05b4b6f9 269 theme.style.page.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 270 theme.style.page.scrl = &lv_style_transp_tight;
becanromain 0:e82c05b4b6f9 271 theme.style.page.sb = &sb;
becanromain 0:e82c05b4b6f9 272 #endif
becanromain 0:e82c05b4b6f9 273 }
becanromain 0:e82c05b4b6f9 274
becanromain 0:e82c05b4b6f9 275 static void ta_init(void)
becanromain 0:e82c05b4b6f9 276 {
becanromain 0:e82c05b4b6f9 277 #if LV_USE_TA
becanromain 0:e82c05b4b6f9 278
becanromain 0:e82c05b4b6f9 279 theme.style.ta.area = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 280 theme.style.ta.oneline = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 281 theme.style.ta.cursor = NULL;
becanromain 0:e82c05b4b6f9 282 theme.style.ta.sb = &sb;
becanromain 0:e82c05b4b6f9 283 #endif
becanromain 0:e82c05b4b6f9 284 }
becanromain 0:e82c05b4b6f9 285
becanromain 0:e82c05b4b6f9 286 static void list_init(void)
becanromain 0:e82c05b4b6f9 287 {
becanromain 0:e82c05b4b6f9 288 #if LV_USE_LIST != 0
becanromain 0:e82c05b4b6f9 289
becanromain 0:e82c05b4b6f9 290 theme.style.list.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 291 theme.style.list.scrl = &lv_style_transp_fit;
becanromain 0:e82c05b4b6f9 292 theme.style.list.sb = &sb;
becanromain 0:e82c05b4b6f9 293 theme.style.list.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 294 theme.style.list.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 295 theme.style.list.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 296 theme.style.list.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 297 theme.style.list.btn.ina = &lv_style_btn_ina;
becanromain 0:e82c05b4b6f9 298 #endif
becanromain 0:e82c05b4b6f9 299 }
becanromain 0:e82c05b4b6f9 300
becanromain 0:e82c05b4b6f9 301 static void ddlist_init(void)
becanromain 0:e82c05b4b6f9 302 {
becanromain 0:e82c05b4b6f9 303 #if LV_USE_DDLIST != 0
becanromain 0:e82c05b4b6f9 304
becanromain 0:e82c05b4b6f9 305 theme.style.ddlist.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 306 theme.style.ddlist.sel = &lv_style_plain_color;
becanromain 0:e82c05b4b6f9 307 theme.style.ddlist.sb = &sb;
becanromain 0:e82c05b4b6f9 308 #endif
becanromain 0:e82c05b4b6f9 309 }
becanromain 0:e82c05b4b6f9 310
becanromain 0:e82c05b4b6f9 311 static void roller_init(void)
becanromain 0:e82c05b4b6f9 312 {
becanromain 0:e82c05b4b6f9 313 #if LV_USE_ROLLER != 0
becanromain 0:e82c05b4b6f9 314
becanromain 0:e82c05b4b6f9 315 theme.style.roller.bg = &lv_style_pretty;
becanromain 0:e82c05b4b6f9 316 theme.style.roller.sel = &lv_style_plain_color;
becanromain 0:e82c05b4b6f9 317 #endif
becanromain 0:e82c05b4b6f9 318 }
becanromain 0:e82c05b4b6f9 319
becanromain 0:e82c05b4b6f9 320 static void tabview_init(void)
becanromain 0:e82c05b4b6f9 321 {
becanromain 0:e82c05b4b6f9 322 #if LV_USE_TABVIEW != 0
becanromain 0:e82c05b4b6f9 323
becanromain 0:e82c05b4b6f9 324 theme.style.tabview.bg = &plain_bordered;
becanromain 0:e82c05b4b6f9 325 theme.style.tabview.indic = &lv_style_plain_color;
becanromain 0:e82c05b4b6f9 326 theme.style.tabview.btn.bg = &lv_style_transp;
becanromain 0:e82c05b4b6f9 327 theme.style.tabview.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 328 theme.style.tabview.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 329 theme.style.tabview.btn.tgl_rel = &lv_style_btn_tgl_rel;
becanromain 0:e82c05b4b6f9 330 theme.style.tabview.btn.tgl_pr = &lv_style_btn_tgl_pr;
becanromain 0:e82c05b4b6f9 331 #endif
becanromain 0:e82c05b4b6f9 332 }
becanromain 0:e82c05b4b6f9 333
becanromain 0:e82c05b4b6f9 334 static void table_init(void)
becanromain 0:e82c05b4b6f9 335 {
becanromain 0:e82c05b4b6f9 336 #if LV_USE_TABLE != 0
becanromain 0:e82c05b4b6f9 337 theme.style.table.bg = &lv_style_transp_tight;
becanromain 0:e82c05b4b6f9 338 theme.style.table.cell = &lv_style_plain;
becanromain 0:e82c05b4b6f9 339 #endif
becanromain 0:e82c05b4b6f9 340 }
becanromain 0:e82c05b4b6f9 341
becanromain 0:e82c05b4b6f9 342 static void win_init(void)
becanromain 0:e82c05b4b6f9 343 {
becanromain 0:e82c05b4b6f9 344 #if LV_USE_WIN != 0
becanromain 0:e82c05b4b6f9 345
becanromain 0:e82c05b4b6f9 346 theme.style.win.bg = &plain_bordered;
becanromain 0:e82c05b4b6f9 347 theme.style.win.sb = &sb;
becanromain 0:e82c05b4b6f9 348 theme.style.win.header = &lv_style_plain_color;
becanromain 0:e82c05b4b6f9 349 theme.style.win.content = &lv_style_transp;
becanromain 0:e82c05b4b6f9 350 theme.style.win.btn.rel = &lv_style_btn_rel;
becanromain 0:e82c05b4b6f9 351 theme.style.win.btn.pr = &lv_style_btn_pr;
becanromain 0:e82c05b4b6f9 352 #endif
becanromain 0:e82c05b4b6f9 353 }
becanromain 0:e82c05b4b6f9 354
becanromain 0:e82c05b4b6f9 355 #if LV_USE_GROUP
becanromain 0:e82c05b4b6f9 356
becanromain 0:e82c05b4b6f9 357 static void style_mod(lv_group_t * group, lv_style_t * style)
becanromain 0:e82c05b4b6f9 358 {
becanromain 0:e82c05b4b6f9 359 (void)group; /*Unused*/
becanromain 0:e82c05b4b6f9 360 #if LV_COLOR_DEPTH != 1
becanromain 0:e82c05b4b6f9 361 /*Make the style to be a little bit orange*/
becanromain 0:e82c05b4b6f9 362 style->body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 363 style->body.border.color = LV_COLOR_ORANGE;
becanromain 0:e82c05b4b6f9 364
becanromain 0:e82c05b4b6f9 365 /*If not empty or has border then emphasis the border*/
becanromain 0:e82c05b4b6f9 366 if(style->body.opa != LV_OPA_TRANSP || style->body.border.width != 0) style->body.border.width = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 367
becanromain 0:e82c05b4b6f9 368 style->body.main_color = lv_color_mix(style->body.main_color, LV_COLOR_ORANGE, LV_OPA_70);
becanromain 0:e82c05b4b6f9 369 style->body.grad_color = lv_color_mix(style->body.grad_color, LV_COLOR_ORANGE, LV_OPA_70);
becanromain 0:e82c05b4b6f9 370 style->body.shadow.color = lv_color_mix(style->body.shadow.color, LV_COLOR_ORANGE, LV_OPA_60);
becanromain 0:e82c05b4b6f9 371
becanromain 0:e82c05b4b6f9 372 style->text.color = lv_color_mix(style->text.color, LV_COLOR_ORANGE, LV_OPA_70);
becanromain 0:e82c05b4b6f9 373 #else
becanromain 0:e82c05b4b6f9 374 style->body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 375 style->body.border.color = LV_COLOR_BLACK;
becanromain 0:e82c05b4b6f9 376 style->body.border.width = 2;
becanromain 0:e82c05b4b6f9 377 #endif
becanromain 0:e82c05b4b6f9 378 }
becanromain 0:e82c05b4b6f9 379
becanromain 0:e82c05b4b6f9 380 static void style_mod_edit(lv_group_t * group, lv_style_t * style)
becanromain 0:e82c05b4b6f9 381 {
becanromain 0:e82c05b4b6f9 382 (void)group; /*Unused*/
becanromain 0:e82c05b4b6f9 383 #if LV_COLOR_DEPTH != 1
becanromain 0:e82c05b4b6f9 384 /*Make the style to be a little bit orange*/
becanromain 0:e82c05b4b6f9 385 style->body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 386 style->body.border.color = LV_COLOR_GREEN;
becanromain 0:e82c05b4b6f9 387
becanromain 0:e82c05b4b6f9 388 /*If not empty or has border then emphasis the border*/
becanromain 0:e82c05b4b6f9 389 if(style->body.opa != LV_OPA_TRANSP || style->body.border.width != 0) style->body.border.width = LV_DPI / 20;
becanromain 0:e82c05b4b6f9 390
becanromain 0:e82c05b4b6f9 391 style->body.main_color = lv_color_mix(style->body.main_color, LV_COLOR_GREEN, LV_OPA_70);
becanromain 0:e82c05b4b6f9 392 style->body.grad_color = lv_color_mix(style->body.grad_color, LV_COLOR_GREEN, LV_OPA_70);
becanromain 0:e82c05b4b6f9 393 style->body.shadow.color = lv_color_mix(style->body.shadow.color, LV_COLOR_GREEN, LV_OPA_60);
becanromain 0:e82c05b4b6f9 394
becanromain 0:e82c05b4b6f9 395 style->text.color = lv_color_mix(style->text.color, LV_COLOR_GREEN, LV_OPA_70);
becanromain 0:e82c05b4b6f9 396 #else
becanromain 0:e82c05b4b6f9 397 style->body.border.opa = LV_OPA_COVER;
becanromain 0:e82c05b4b6f9 398 style->body.border.color = LV_COLOR_BLACK;
becanromain 0:e82c05b4b6f9 399 style->body.border.width = 3;
becanromain 0:e82c05b4b6f9 400 #endif
becanromain 0:e82c05b4b6f9 401 }
becanromain 0:e82c05b4b6f9 402
becanromain 0:e82c05b4b6f9 403 #endif /*LV_USE_GROUP*/
becanromain 0:e82c05b4b6f9 404
becanromain 0:e82c05b4b6f9 405 /**********************
becanromain 0:e82c05b4b6f9 406 * GLOBAL FUNCTIONS
becanromain 0:e82c05b4b6f9 407 **********************/
becanromain 0:e82c05b4b6f9 408
becanromain 0:e82c05b4b6f9 409 /**
becanromain 0:e82c05b4b6f9 410 * Initialize the default theme
becanromain 0:e82c05b4b6f9 411 * @param hue [0..360] hue value from HSV color space to define the theme's base color
becanromain 0:e82c05b4b6f9 412 * @param font pointer to a font (NULL to use the default)
becanromain 0:e82c05b4b6f9 413 * @return pointer to the initialized theme
becanromain 0:e82c05b4b6f9 414 */
becanromain 0:e82c05b4b6f9 415 lv_theme_t * lv_theme_rb_init(uint16_t hue, lv_font_t * font)
becanromain 0:e82c05b4b6f9 416 {
becanromain 0:e82c05b4b6f9 417 if(font == NULL) font = LV_FONT_DEFAULT;
becanromain 0:e82c05b4b6f9 418
becanromain 0:e82c05b4b6f9 419 _hue = hue;
becanromain 0:e82c05b4b6f9 420 _font = font;
becanromain 0:e82c05b4b6f9 421
becanromain 0:e82c05b4b6f9 422 /*For backward compatibility initialize all theme elements with a default style */
becanromain 0:e82c05b4b6f9 423 uint16_t i;
becanromain 0:e82c05b4b6f9 424 lv_style_t ** style_p = (lv_style_t **)&theme.style;
becanromain 0:e82c05b4b6f9 425 for(i = 0; i < LV_THEME_STYLE_COUNT; i++) {
becanromain 0:e82c05b4b6f9 426 *style_p = &def;
becanromain 0:e82c05b4b6f9 427 style_p++;
becanromain 0:e82c05b4b6f9 428 }
becanromain 0:e82c05b4b6f9 429
becanromain 0:e82c05b4b6f9 430 basic_init();
becanromain 0:e82c05b4b6f9 431 btn_init();
becanromain 0:e82c05b4b6f9 432 label_init();
becanromain 0:e82c05b4b6f9 433 img_init();
becanromain 0:e82c05b4b6f9 434 line_init();
becanromain 0:e82c05b4b6f9 435 led_init();
becanromain 0:e82c05b4b6f9 436 bar_init();
becanromain 0:e82c05b4b6f9 437 slider_init();
becanromain 0:e82c05b4b6f9 438 sw_init();
becanromain 0:e82c05b4b6f9 439 lmeter_init();
becanromain 0:e82c05b4b6f9 440 gauge_init();
becanromain 0:e82c05b4b6f9 441 chart_init();
becanromain 0:e82c05b4b6f9 442 cb_init();
becanromain 0:e82c05b4b6f9 443 btnm_init();
becanromain 0:e82c05b4b6f9 444 kb_init();
becanromain 0:e82c05b4b6f9 445 mbox_init();
becanromain 0:e82c05b4b6f9 446 page_init();
becanromain 0:e82c05b4b6f9 447 ta_init();
becanromain 0:e82c05b4b6f9 448 list_init();
becanromain 0:e82c05b4b6f9 449 ddlist_init();
becanromain 0:e82c05b4b6f9 450 roller_init();
becanromain 0:e82c05b4b6f9 451 tabview_init();
becanromain 0:e82c05b4b6f9 452 table_init();
becanromain 0:e82c05b4b6f9 453 win_init();
becanromain 0:e82c05b4b6f9 454
becanromain 0:e82c05b4b6f9 455 #if LV_USE_GROUP
becanromain 0:e82c05b4b6f9 456 theme.group.style_mod_xcb = style_mod;
becanromain 0:e82c05b4b6f9 457 theme.group.style_mod_edit_xcb = style_mod_edit;
becanromain 0:e82c05b4b6f9 458 #endif
becanromain 0:e82c05b4b6f9 459
becanromain 0:e82c05b4b6f9 460 return &theme;
becanromain 0:e82c05b4b6f9 461 }
becanromain 0:e82c05b4b6f9 462
becanromain 0:e82c05b4b6f9 463 /**
becanromain 0:e82c05b4b6f9 464 * Get a pointer to the theme
becanromain 0:e82c05b4b6f9 465 * @return pointer to the theme
becanromain 0:e82c05b4b6f9 466 */
becanromain 0:e82c05b4b6f9 467 lv_theme_t * lv_theme_get_rb(void)
becanromain 0:e82c05b4b6f9 468 {
becanromain 0:e82c05b4b6f9 469 return &theme;
becanromain 0:e82c05b4b6f9 470 }
becanromain 0:e82c05b4b6f9 471
becanromain 0:e82c05b4b6f9 472 /**********************
becanromain 0:e82c05b4b6f9 473 * STATIC FUNCTIONS
becanromain 0:e82c05b4b6f9 474 **********************/
becanromain 0:e82c05b4b6f9 475