THEME AND FONT
lv_theme_rb.h@0:e82c05b4b6f9, 2020-01-26 (annotated)
- Committer:
- becanromain
- Date:
- Sun Jan 26 16:18:01 2020 +0000
- Revision:
- 0:e82c05b4b6f9
THEME AND FONT
Who changed what in which revision?
User | Revision | Line number | New 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 |