static void list_init(void) { #if USE_LV_LIST != 0 static lv_style_t list_bg, rel, pr, tgl_rel, tgl_pr, ina; lv_style_copy(&list_bg, theme.panel); list_bg.body.padding.hor = 0; list_bg.body.padding.ver = 0; list_bg.body.padding.inner = 0; lv_style_copy(&rel, &lv_style_transp); rel.body.padding.hor = LV_DPI / 8; rel.body.padding.ver = LV_DPI / 6; rel.body.radius = 10; rel.body.border.color = LV_COLOR_HEX3(0xbbb); rel.body.border.width = 1; rel.body.border.part = LV_BORDER_BOTTOM; lv_style_copy(&pr, &rel); pr.glass = 0; pr.body.main_color = LV_COLOR_HEX3(0xddd); pr.body.grad_color = pr.body.main_color; pr.body.border.width = 0; pr.body.empty = 0; pr.body.radius = DEF_RADIUS; pr.text.font = _font; lv_style_copy(&tgl_rel, &pr); tgl_rel.body.main_color = lv_color_hsv_to_rgb(_hue, 90, 70); tgl_rel.body.grad_color = tgl_rel.body.main_color; tgl_rel.text.color = lv_color_hsv_to_rgb(_hue, 5, 95); lv_style_copy(&tgl_pr, &tgl_rel); tgl_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 90, 60); tgl_pr.body.grad_color = tgl_pr.body.main_color; tgl_pr.body.border.width = 0; lv_style_copy(&ina, &pr); ina.body.main_color = LV_COLOR_HEX3(0xccc); ina.body.grad_color = ina.body.main_color; theme.list.sb = &sb; theme.list.bg = &list_bg; theme.list.scrl = &lv_style_transp_tight; theme.list.btn.rel = &rel; theme.list.btn.pr = ≺ theme.list.btn.tgl_rel = &tgl_rel; theme.list.btn.tgl_pr = &tgl_pr; theme.list.btn.ina = &ina; #endif }
static void gauge_init(void) { #if USE_LV_GAUGE != 0 static lv_style_t gauge; lv_style_copy(&gauge, &lmeter); gauge.line.color = lmeter.body.grad_color; gauge.line.width = 2; gauge.body.main_color = LV_COLOR_HEX3(0x888); gauge.body.grad_color = lmeter.body.main_color; gauge.text.color = LV_COLOR_HEX3(0x888); theme.gauge = &gauge; #endif }
static void btnm_init(void) { #if USE_LV_BTNM static lv_style_t bg, rel, pr, tgl_rel, tgl_pr, ina; lv_style_copy(&bg,theme.panel); bg.body.padding.hor = 0; bg.body.padding.ver = 0; bg.body.padding.inner = 0; bg.text.color = LV_COLOR_HEX3(0x555); lv_style_copy(&rel,theme.panel); rel.body.border.part = LV_BORDER_RIGHT| LV_BORDER_BOTTOM; rel.body.border.width = 1; rel.body.border.color = LV_COLOR_HEX3(0xbbb); rel.body.empty = 1; rel.body.shadow.width = 0; lv_style_copy(&pr, &rel); pr.glass = 0; pr.body.main_color = LV_COLOR_HEX3(0xddd); pr.body.grad_color = pr.body.main_color; pr.body.border.width = 0; pr.body.empty = 0; lv_style_copy(&tgl_rel, &pr); tgl_rel.body.main_color = lv_color_hsv_to_rgb(_hue, 90, 70); tgl_rel.body.grad_color = tgl_rel.body.main_color; tgl_rel.text.color = lv_color_hsv_to_rgb(_hue, 5, 95); lv_style_copy(&tgl_pr, &tgl_rel); tgl_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 95, 65); tgl_pr.body.grad_color = tgl_pr.body.main_color; tgl_pr.body.border.width = 0; lv_style_copy(&ina, &pr); ina.body.main_color = LV_COLOR_HEX3(0xccc); ina.body.grad_color = ina.body.main_color; theme.btnm.bg = &bg; theme.btnm.btn.rel = &rel; theme.btnm.btn.pr = ≺ theme.btnm.btn.tgl_rel = &tgl_rel; theme.btnm.btn.tgl_pr = &tgl_pr; theme.btnm.btn.ina = &def; #endif }
static void cb_init(void) { #if USE_LV_CB != 0 static lv_style_t rel, pr, tgl_rel, tgl_pr, ina; lv_style_copy(&rel,theme.panel); rel.body.shadow.type = LV_SHADOW_BOTTOM; rel.body.shadow.width = 2; lv_style_copy(&pr, &rel); pr.body.main_color = LV_COLOR_HEX3(0xccc); pr.body.grad_color = pr.body.main_color; pr.body.shadow.width = 0; lv_style_copy(&tgl_rel, &rel); tgl_rel.body.main_color = lv_color_hsv_to_rgb(_hue, 75, 85); tgl_rel.body.grad_color = tgl_rel.body.main_color; tgl_rel.body.shadow.type = LV_SHADOW_FULL; tgl_rel.body.shadow.width = 0; lv_style_copy(&tgl_pr, &tgl_rel); tgl_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 75, 65); tgl_pr.body.grad_color = tgl_pr.body.main_color; tgl_pr.body.shadow.width = 0; lv_style_copy(&ina, theme.btn.ina); theme.cb.bg = &lv_style_transp; theme.cb.box.rel = &rel; theme.cb.box.pr = ≺ theme.cb.box.tgl_rel = &tgl_rel; theme.cb.box.tgl_pr = &tgl_pr; theme.cb.box.ina = &ina; #endif }
static void sw_init(void) { #if USE_LV_SW != 0 static lv_style_t sw_bg, sw_indic, sw_knob_off, sw_knob_on; lv_style_copy(&sw_bg, theme.slider.bg); sw_bg.body.radius = LV_RADIUS_CIRCLE; lv_style_copy(&sw_indic, theme.slider.bg); sw_indic.body.radius = LV_RADIUS_CIRCLE; lv_style_copy(&sw_knob_on, theme.slider.knob); sw_knob_on.body.shadow.width = 4; sw_knob_on.body.shadow.type = LV_SHADOW_BOTTOM; sw_knob_on.body.shadow.color = DEF_SHADOW_COLOR; lv_style_copy(&sw_knob_off, &sw_knob_on); sw_knob_off.body.main_color = LV_COLOR_HEX(0xfafafa); sw_knob_off.body.grad_color = sw_knob_off.body.main_color; sw_knob_off.body.border.width = 1; sw_knob_off.body.border.color = LV_COLOR_HEX3(0x999); sw_knob_off.body.border.opa = LV_OPA_COVER; theme.sw.bg = &sw_bg; theme.sw.indic = &sw_indic; theme.sw.knob_off = &sw_knob_off; theme.sw.knob_on = &sw_knob_on; #endif }
static void write_create(lv_obj_t *parent) { lv_page_set_style(parent, LV_PAGE_STYLE_BG, &lv_style_transp_fit); lv_page_set_style(parent, LV_PAGE_STYLE_SCRL, &lv_style_transp_fit); lv_page_set_sb_mode(parent, LV_SB_MODE_OFF); static lv_style_t style_ta; lv_style_copy(&style_ta, &lv_style_pretty); style_ta.body.opa = LV_OPA_30; style_ta.body.radius = 0; style_ta.text.color = LV_COLOR_HEX3(0x222); ta = lv_ta_create(parent, NULL); lv_obj_set_size(ta, lv_page_get_scrl_width(parent), lv_obj_get_height(parent) / 2); lv_ta_set_style(ta, LV_TA_STYLE_BG, &style_ta); lv_ta_set_text(ta, ""); lv_page_set_rel_action(ta, keyboard_open_close); lv_style_copy(&style_kb, &lv_style_plain); style_kb.body.opa = LV_OPA_70; style_kb.body.main_color = LV_COLOR_HEX3(0x333); style_kb.body.grad_color = LV_COLOR_HEX3(0x333); style_kb.body.padding.hor = 0; style_kb.body.padding.ver = 0; style_kb.body.padding.inner = 0; lv_style_copy(&style_kb_rel, &lv_style_plain); style_kb_rel.body.empty = 1; style_kb_rel.body.radius = 0; style_kb_rel.body.border.width = 1; style_kb_rel.body.border.color = LV_COLOR_SILVER; style_kb_rel.body.border.opa = LV_OPA_50; style_kb_rel.body.main_color = LV_COLOR_HEX3(0x333); /*Recommended if LV_VDB_SIZE == 0 and bpp > 1 fonts are used*/ style_kb_rel.body.grad_color = LV_COLOR_HEX3(0x333); style_kb_rel.text.color = LV_COLOR_WHITE; lv_style_copy(&style_kb_pr, &lv_style_plain); style_kb_pr.body.radius = 0; style_kb_pr.body.opa = LV_OPA_50; style_kb_pr.body.main_color = LV_COLOR_WHITE; style_kb_pr.body.grad_color = LV_COLOR_WHITE; style_kb_pr.body.border.width = 1; style_kb_pr.body.border.color = LV_COLOR_SILVER; keyboard_open_close(ta); }
static void gauge_init(void) { #if USE_LV_GAUGE != 0 static lv_style_t gauge; lv_style_copy(&gauge, &def); gauge.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 60); gauge.body.grad_color = gauge.body.main_color; gauge.body.padding.hor = LV_DPI / 16; /*Scale line length*/ gauge.body.padding.inner = LV_DPI / 8; gauge.body.border.color = LV_COLOR_HEX3(0x999); gauge.text.color = LV_COLOR_HEX3(0x333); gauge.line.width = 3; gauge.line.color = lv_color_hsv_to_rgb(_hue, 95, 70); theme.gauge = &gauge; #endif }
static void label_init(void) { #if USE_LV_LABEL != 0 lv_style_copy(&label_prim, &lv_style_plain); lv_style_copy(&label_sec, &lv_style_plain); lv_style_copy(&label_hint, &lv_style_plain); label_prim.text.color = LV_COLOR_HEX3(0x111); label_sec.text.color = LV_COLOR_HEX3(0x888); label_hint.text.color = LV_COLOR_HEX3(0xaaa); theme.label.prim = &label_prim; theme.label.sec = &label_sec; theme.label.hint = &label_hint; #endif }
static void ta_init(void) { #if USE_LV_TA static lv_style_t oneline; lv_style_copy(&oneline, &def); oneline.body.empty = 1; oneline.body.radius = 0; oneline.body.border.part = LV_BORDER_BOTTOM; oneline.body.border.width = 3; oneline.body.border.color = LV_COLOR_HEX3(0x333); oneline.body.border.opa = LV_OPA_COVER; oneline.text.color = LV_COLOR_HEX3(0x333); theme.ta.area = theme.panel; theme.ta.oneline = &oneline; theme.ta.cursor = NULL; /*Let library to calculate the cursor's style*/ theme.ta.sb = &sb; #endif }
static void lmeter_init(void) { #if USE_LV_LMETER != 0 lv_style_copy(&lmeter, &lv_style_pretty_color); lmeter.line.color = LV_COLOR_HEX3(0xddd); lmeter.line.width = 2; lmeter.body.main_color = lv_color_mix(lmeter.body.main_color, LV_COLOR_WHITE, LV_OPA_50); lmeter.body.grad_color = lv_color_mix(lmeter.body.grad_color, LV_COLOR_BLACK, LV_OPA_50); theme.lmeter = &lmeter; #endif }
static void lmeter_init(void) { #if USE_LV_LMETER != 0 static lv_style_t lmeter; lv_style_copy(&lmeter, &def); lmeter.body.main_color = lv_color_hsv_to_rgb(_hue, 75, 90); lmeter.body.grad_color = lmeter.body.main_color; lmeter.body.padding.hor = LV_DPI / 10; /*Scale line length*/ lmeter.line.color = LV_COLOR_HEX3(0x999); lmeter.line.width = 3; theme.lmeter = &lmeter; #endif }
static void win_init(void) { #if USE_LV_WIN != 0 static lv_style_t header, pr; lv_style_copy(&header, &def); header.body.main_color = LV_COLOR_HEX3(0xccc); header.body.grad_color = header.body.main_color; header.body.radius = DEF_RADIUS; header.body.border.width = 1; header.body.border.color = LV_COLOR_HEX3(0xbbb); header.body.border.part = LV_BORDER_BOTTOM; header.body.border.opa = LV_OPA_COVER; header.body.padding.inner = 0; header.body.padding.hor = 0; header.body.padding.ver = 0; header.text.color = LV_COLOR_HEX3(0x333); lv_style_copy(&pr, &def); pr.body.main_color = LV_COLOR_HEX3(0xbbb); pr.body.grad_color = pr.body.main_color; pr.body.border.width = 0; pr.body.empty = 0; pr.body.radius = 0; pr.text.color = LV_COLOR_HEX3(0x111); theme.win.bg = theme.panel; theme.win.sb = &sb; theme.win.header = &header; theme.win.content.bg = &lv_style_transp; theme.win.content.scrl = &lv_style_transp; theme.win.btn.rel = &lv_style_transp; theme.win.btn.pr = ≺ #endif }
static void basic_init(void) { lv_style_copy(&def, &lv_style_plain); /*Initialize the default style*/ def.text.font = _font; def.body.radius = DEF_RADIUS; static lv_style_t bg, panel; lv_style_copy(&bg, &def); bg.body.main_color = LV_COLOR_HEX(0xf0f0f0); bg.body.grad_color = bg.body.main_color; bg.body.radius = 0; lv_style_copy(&panel, &def); panel.body.radius = DEF_RADIUS; panel.body.main_color = LV_COLOR_WHITE; panel.body.grad_color = LV_COLOR_WHITE; panel.body.border.width = 1; panel.body.border.color = LV_COLOR_HEX3(0xbbb); panel.body.border.opa = LV_OPA_COVER; panel.body.shadow.color = DEF_SHADOW_COLOR; panel.body.shadow.type = LV_SHADOW_BOTTOM; panel.body.shadow.width = 4; panel.body.padding.hor = LV_DPI / 8; panel.body.padding.ver = LV_DPI / 8; panel.body.padding.inner = LV_DPI / 12; panel.text.color = LV_COLOR_HEX3(0x333); lv_style_copy(&sb, &def); sb.body.main_color = LV_COLOR_BLACK; sb.body.grad_color = LV_COLOR_BLACK; sb.body.opa = LV_OPA_40; theme.bg = &bg; theme.panel = &panel; }
static void list_create(lv_obj_t *parent) { lv_page_set_style(parent, LV_PAGE_STYLE_BG, &lv_style_transp_fit); lv_page_set_style(parent, LV_PAGE_STYLE_SCRL, &lv_style_transp_fit); lv_page_set_scrl_fit(parent, false, false); lv_page_set_scrl_height(parent, lv_obj_get_height(parent)); lv_page_set_sb_mode(parent, LV_SB_MODE_OFF); /*Create styles for the buttons*/ static lv_style_t style_btn_rel; static lv_style_t style_btn_pr; lv_style_copy(&style_btn_rel, &lv_style_btn_rel); style_btn_rel.body.main_color = LV_COLOR_HEX3(0x333); style_btn_rel.body.grad_color = LV_COLOR_BLACK; style_btn_rel.body.border.color = LV_COLOR_SILVER; style_btn_rel.body.border.width = 1; style_btn_rel.body.border.opa = LV_OPA_50; style_btn_rel.body.radius = 0; lv_style_copy(&style_btn_pr, &style_btn_rel); style_btn_pr.body.main_color = LV_COLOR_MAKE(0x55, 0x96, 0xd8); style_btn_pr.body.grad_color = LV_COLOR_MAKE(0x37, 0x62, 0x90); style_btn_pr.text.color = LV_COLOR_MAKE(0xbb, 0xd5, 0xf1); lv_obj_t *list = lv_list_create(parent, NULL); lv_obj_set_height(list, 2 * lv_obj_get_height(parent) / 3); lv_list_set_style(list, LV_LIST_STYLE_BG, &lv_style_transp_tight); lv_list_set_style(list, LV_LIST_STYLE_SCRL, &lv_style_transp_tight); lv_list_set_style(list, LV_LIST_STYLE_BTN_REL, &style_btn_rel); lv_list_set_style(list, LV_LIST_STYLE_BTN_PR, &style_btn_pr); lv_obj_align(list, NULL, LV_ALIGN_IN_TOP_MID, 0, LV_DPI / 4); lv_list_add(list, SYMBOL_FILE, "New", list_btn_action); lv_list_add(list, SYMBOL_DIRECTORY, "Open", list_btn_action); lv_list_add(list, SYMBOL_TRASH, "Delete", list_btn_action); lv_list_add(list, SYMBOL_EDIT, "Edit", list_btn_action); lv_list_add(list, SYMBOL_SAVE, "Save", list_btn_action); lv_list_add(list, SYMBOL_WIFI, "WiFi", list_btn_action); lv_list_add(list, SYMBOL_GPS, "GPS", list_btn_action); lv_obj_t *mbox= lv_mbox_create(parent, NULL); lv_mbox_set_text(mbox, "Click a button to copy its text to the Text area "); lv_obj_set_width(mbox, LV_HOR_RES - LV_DPI); static const char * mbox_btns[] = {"Got it", ""}; lv_mbox_add_btns(mbox, mbox_btns, NULL); /*The default action is close*/ lv_obj_align(mbox, parent, LV_ALIGN_IN_TOP_MID, 0, LV_DPI / 2); }
static void btn_init(void) { #if USE_LV_BTN != 0 static lv_style_t rel, pr, tgl_rel, tgl_pr, ina; lv_style_copy(&rel, &def); rel.body.main_color = lv_color_hsv_to_rgb(_hue, 90, 70); rel.body.grad_color = rel.body.main_color; rel.body.radius = DEF_RADIUS; rel.body.padding.hor = LV_DPI / 6; rel.body.padding.ver = LV_DPI / 8; rel.body.padding.inner = LV_DPI / 10; rel.body.shadow.color = DEF_SHADOW_COLOR; rel.body.shadow.type = LV_SHADOW_BOTTOM; rel.body.shadow.width = 6; rel.text.color = lv_color_hsv_to_rgb(_hue, 5, 95); lv_style_copy(&pr, &rel); pr.body.main_color = lv_color_hsv_to_rgb(_hue, 90, 60); pr.body.grad_color = pr.body.main_color; pr.body.shadow.width = 4; lv_style_copy(&tgl_rel, &rel); tgl_rel.body.main_color = lv_color_hsv_to_rgb(_hue, 95, 50); tgl_rel.body.grad_color = tgl_rel.body.main_color; tgl_rel.body.shadow.width = 4; lv_style_copy(&tgl_pr, &tgl_rel); tgl_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 95, 40); tgl_pr.body.grad_color = tgl_pr.body.main_color; tgl_pr.body.shadow.width = 2; lv_style_copy(&ina, &rel); ina.body.main_color = LV_COLOR_HEX3(0xccc); ina.body.grad_color = ina.body.main_color; ina.body.shadow.width = 0; ina.text.color = lv_color_hsv_to_rgb(_hue, 95, 5); theme.btn.rel = &rel; theme.btn.pr = ≺ theme.btn.tgl_rel = &tgl_rel; theme.btn.tgl_pr = &tgl_pr; theme.btn.ina = &ina; #endif }
static void basic_init(void) { lv_style_copy(&def, &lv_style_pretty); /*Initialize the default style*/ lv_style_copy(&sb, &lv_style_pretty_color); sb.body.grad_color = sb.body.main_color; sb.body.padding.hor = sb.body.padding.hor / 2; /*Make closer to the edges*/ sb.body.padding.ver = sb.body.padding.ver / 2; lv_style_copy(&plain_bordered, &lv_style_plain); plain_bordered.body.border.width = 2; plain_bordered.body.border.color = LV_COLOR_HEX3(0xbbb); theme.bg = &lv_style_plain; theme.panel = &lv_style_pretty; }
static void tabview_init(void) { #if USE_LV_TABVIEW != 0 static lv_style_t indic, btn_bg, rel, pr, tgl_rel, tgl_pr; lv_style_copy(&indic, &def); indic.body.main_color = lv_color_hsv_to_rgb(_hue, 90, 70); indic.body.grad_color = indic.body.main_color; indic.body.radius = 0; indic.body.border.width = 0; indic.body.padding.inner = LV_DPI / 20; lv_style_copy(&btn_bg, &def); btn_bg.body.main_color = LV_COLOR_HEX3(0xccc); btn_bg.body.grad_color = btn_bg.body.main_color; btn_bg.body.radius = 0; btn_bg.body.border.width = 1; btn_bg.body.border.color = LV_COLOR_HEX3(0x888); btn_bg.body.border.part = LV_BORDER_BOTTOM; btn_bg.body.border.opa = LV_OPA_COVER; btn_bg.body.shadow.width = 6; btn_bg.body.shadow.color = DEF_SHADOW_COLOR; btn_bg.body.shadow.type = LV_SHADOW_BOTTOM; btn_bg.body.padding.inner = 0; btn_bg.body.padding.hor = 0; btn_bg.body.padding.ver = 0; btn_bg.text.color = LV_COLOR_HEX3(0x333); lv_style_copy(&rel, &lv_style_transp); rel.body.padding.ver = LV_DPI / 8; rel.text.font = _font; lv_style_copy(&pr, &def); pr.body.main_color = LV_COLOR_HEX3(0xbbb); pr.body.grad_color = pr.body.main_color; pr.body.border.width = 0; pr.body.empty = 0; pr.body.radius = 0; pr.body.border.width = 1; pr.body.border.color = LV_COLOR_HEX3(0x888); pr.body.border.part = LV_BORDER_BOTTOM; pr.body.border.opa = LV_OPA_COVER; pr.text.color = LV_COLOR_HEX3(0x111); lv_style_copy(&tgl_rel, &lv_style_transp); tgl_rel.glass = 0; tgl_rel.text.font = _font; tgl_rel.text.color = lv_color_hsv_to_rgb(_hue, 90, 70); lv_style_copy(&tgl_pr, &def); tgl_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 15, 85); tgl_pr.body.grad_color = tgl_pr.body.main_color; tgl_pr.body.border.width = 0; tgl_pr.body.empty = 0; tgl_pr.body.radius = 0; tgl_pr.text.color = lv_color_hsv_to_rgb(_hue, 90, 60); theme.tabview.bg = theme.bg; theme.tabview.indic = &indic; theme.tabview.btn.bg = &btn_bg; theme.tabview.btn.rel = &rel; theme.tabview.btn.pr = ≺ theme.tabview.btn.tgl_rel = &tgl_rel; theme.tabview.btn.tgl_pr = &tgl_pr; #endif }