BigW Consortium Gitlab

Commit da581072 by Gabor Kiss-Vamosi

minor fixes

parent f242eba9
...@@ -441,6 +441,37 @@ static bool lv_ddlist_design(lv_obj_t * ddlist, const lv_area_t * mask, lv_desig ...@@ -441,6 +441,37 @@ static bool lv_ddlist_design(lv_obj_t * ddlist, const lv_area_t * mask, lv_desig
/*Post draw when the children are drawn*/ /*Post draw when the children are drawn*/
else if(mode == LV_DESIGN_DRAW_POST) { else if(mode == LV_DESIGN_DRAW_POST) {
ancestor_design(ddlist, mask, mode); ancestor_design(ddlist, mask, mode);
/*Redraw the text on the selected area with a different color*/
lv_ddlist_ext_t * ext = lv_obj_get_ext_attr(ddlist);
/*Redraw only in opened state*/
if(ext->opened == 0) return true;
lv_style_t *style = lv_ddlist_get_style(ddlist, LV_DDLIST_STYLE_BG);
const lv_font_t * font = style->text.font;
lv_coord_t font_h = lv_font_get_height_scale(font);
lv_area_t area_sel;
area_sel.y1 = ext->label->coords.y1;
area_sel.y1 += ext->sel_opt_id * (font_h + style->text.line_space);
area_sel.y1 -= style->text.line_space / 2;
area_sel.y2 = area_sel.y1 + font_h + style->text.line_space;
area_sel.x1 = ddlist->coords.x1;
area_sel.x2 = ddlist->coords.x2;
lv_area_t mask_sel;
bool area_ok;
area_ok = lv_area_union(&mask_sel, mask, &area_sel);
if(area_ok) {
lv_style_t *sel_style = lv_ddlist_get_style(ddlist, LV_DDLIST_STYLE_SEL);
lv_style_t new_style;
lv_style_copy(&new_style, style);
new_style.text.color = sel_style->text.color;
new_style.text.opa = sel_style->text.opa;
lv_draw_label(&ext->label->coords, &mask_sel, &new_style,
lv_label_get_text(ext->label), LV_TXT_FLAG_NONE, NULL);
}
} }
return true; return true;
......
...@@ -371,7 +371,7 @@ static void lv_gauge_draw_needle(lv_obj_t * gauge, const lv_area_t * mask) ...@@ -371,7 +371,7 @@ static void lv_gauge_draw_needle(lv_obj_t * gauge, const lv_area_t * mask)
{ {
lv_style_t style_needle; lv_style_t style_needle;
lv_gauge_ext_t * ext = lv_obj_get_ext_attr(gauge); lv_gauge_ext_t * ext = lv_obj_get_ext_attr(gauge);
lv_style_t * style = lv_obj_get_style(gauge); lv_style_t * style = lv_gauge_get_style(gauge);
lv_coord_t r = lv_obj_get_width(gauge) / 2 - style->body.padding.hor; lv_coord_t r = lv_obj_get_width(gauge) / 2 - style->body.padding.hor;
lv_coord_t x_ofs = lv_obj_get_width(gauge) / 2 + gauge->coords.x1; lv_coord_t x_ofs = lv_obj_get_width(gauge) / 2 + gauge->coords.x1;
...@@ -384,7 +384,7 @@ static void lv_gauge_draw_needle(lv_obj_t * gauge, const lv_area_t * mask) ...@@ -384,7 +384,7 @@ static void lv_gauge_draw_needle(lv_obj_t * gauge, const lv_area_t * mask)
lv_point_t p_end; lv_point_t p_end;
uint8_t i; uint8_t i;
memcpy(&style_needle, style, sizeof(lv_style_t)); lv_style_copy(&style_needle, style);
p_mid.x = x_ofs; p_mid.x = x_ofs;
p_mid.y = y_ofs; p_mid.y = y_ofs;
......
...@@ -74,9 +74,7 @@ lv_obj_t * lv_roller_create(lv_obj_t * par, lv_obj_t * copy) ...@@ -74,9 +74,7 @@ lv_obj_t * lv_roller_create(lv_obj_t * par, lv_obj_t * copy)
lv_page_set_rel_action(new_roller, NULL); /*Roller don't uses it (like ddlist)*/ lv_page_set_rel_action(new_roller, NULL); /*Roller don't uses it (like ddlist)*/
lv_page_set_scrl_fit(new_roller, true, false); /*Height is specified directly*/ lv_page_set_scrl_fit(new_roller, true, false); /*Height is specified directly*/
lv_ddlist_open(new_roller, false); lv_ddlist_open(new_roller, false);
lv_style_t * style_label = lv_obj_get_style(ext->ddlist.label); lv_roller_set_row_count(new_roller, 3);
lv_ddlist_set_fix_height(new_roller, lv_font_get_height_scale(style_label->text.font) * 3 + style_label->text.line_space * 4);
lv_label_set_align(ext->ddlist.label, LV_LABEL_ALIGN_CENTER); lv_label_set_align(ext->ddlist.label, LV_LABEL_ALIGN_CENTER);
lv_obj_set_signal_func(scrl, lv_roller_scrl_signal); lv_obj_set_signal_func(scrl, lv_roller_scrl_signal);
...@@ -120,6 +118,18 @@ void lv_roller_set_selected(lv_obj_t *roller, uint16_t sel_opt, bool anim_en) ...@@ -120,6 +118,18 @@ void lv_roller_set_selected(lv_obj_t *roller, uint16_t sel_opt, bool anim_en)
} }
/** /**
* Set the height to show the given number of rows (options)
* @param roller pointer to a roller object
* @param row_cnt number of desired visible rows
*/
void lv_roller_set_row_count(lv_obj_t *roller, uint8_t row_cnt)
{
lv_roller_ext_t *ext = lv_obj_get_ext_attr(roller);
lv_style_t * style_label = lv_obj_get_style(ext->ddlist.label);
lv_ddlist_set_fix_height(roller, lv_font_get_height_scale(style_label->text.font) * row_cnt + style_label->text.line_space * (row_cnt + 1));
}
/**
* Set a style of a roller * Set a style of a roller
* @param roller pointer to a roller object * @param roller pointer to a roller object
* @param type which style should be set * @param type which style should be set
...@@ -212,6 +222,7 @@ static bool lv_roller_design(lv_obj_t * roller, const lv_area_t * mask, lv_desig ...@@ -212,6 +222,7 @@ static bool lv_roller_design(lv_obj_t * roller, const lv_area_t * mask, lv_desig
lv_roller_ext_t * ext = lv_obj_get_ext_attr(roller); lv_roller_ext_t * ext = lv_obj_get_ext_attr(roller);
const lv_font_t * font = style->text.font; const lv_font_t * font = style->text.font;
lv_coord_t font_h = lv_font_get_height_scale(font); lv_coord_t font_h = lv_font_get_height_scale(font);
/*Redraw the text on the selected area with a different color*/ /*Redraw the text on the selected area with a different color*/
lv_area_t rect_area; lv_area_t rect_area;
rect_area.y1 = roller->coords.y1 + lv_obj_get_height(roller) / 2 - font_h / 2 - style->text.line_space / 2; rect_area.y1 = roller->coords.y1 + lv_obj_get_height(roller) / 2 - font_h / 2 - style->text.line_space / 2;
......
...@@ -71,6 +71,12 @@ static inline void lv_roller_set_options(lv_obj_t * roller, const char * options ...@@ -71,6 +71,12 @@ static inline void lv_roller_set_options(lv_obj_t * roller, const char * options
*/ */
void lv_roller_set_selected(lv_obj_t *roller, uint16_t sel_opt, bool anim_en); void lv_roller_set_selected(lv_obj_t *roller, uint16_t sel_opt, bool anim_en);
/**
* Set the height to show the given number of rows (options)
* @param roller pointer to a roller object
* @param row_cnt number of desired visible rows
*/
void lv_roller_set_row_count(lv_obj_t *roller, uint8_t row_cnt);
/** /**
* Enable or disable the horizontal fit to the content * Enable or disable the horizontal fit to the content
......
...@@ -564,7 +564,9 @@ static void ddlist_init(void) ...@@ -564,7 +564,9 @@ static void ddlist_init(void)
{ {
#if USE_LV_DDLIST != 0 #if USE_LV_DDLIST != 0
lv_style_copy(&ddlist_bg, &panel); lv_style_copy(&ddlist_bg, &panel);
ddlist_bg.text.line_space = LV_DPI / 10; ddlist_bg.text.line_space = LV_DPI / 8;
ddlist_bg.body.padding.hor = LV_DPI / 6;
ddlist_bg.body.padding.ver = LV_DPI / 6;
lv_style_copy(&ddlist_sel, &panel); lv_style_copy(&ddlist_sel, &panel);
ddlist_sel.body.main_color = lv_color_hsv_to_rgb(_hue, 45, 70); ddlist_sel.body.main_color = lv_color_hsv_to_rgb(_hue, 45, 70);
......
...@@ -170,10 +170,12 @@ static void bar_init(void) ...@@ -170,10 +170,12 @@ static void bar_init(void)
lv_style_copy(&bar_bg, &light_frame); lv_style_copy(&bar_bg, &light_frame);
bar_bg.body.padding.hor = LV_DPI / 15; bar_bg.body.padding.hor = LV_DPI / 15;
bar_bg.body.padding.ver = LV_DPI / 15; bar_bg.body.padding.ver = LV_DPI / 15;
bar_bg.body.radius = LV_RADIUS_CIRCLE;
lv_style_copy(&bar_indic, &dark_frame); lv_style_copy(&bar_indic, &dark_frame);
bar_indic.body.padding.hor = LV_DPI / 30; bar_indic.body.padding.hor = LV_DPI / 30;
bar_indic.body.padding.ver = LV_DPI / 30; bar_indic.body.padding.ver = LV_DPI / 30;
bar_indic.body.radius = LV_RADIUS_CIRCLE;
theme.bar.bg = &bar_bg; theme.bar.bg = &bar_bg;
theme.bar.indic = &bar_indic; theme.bar.indic = &bar_indic;
...@@ -341,7 +343,7 @@ static void ddlist_init(void) ...@@ -341,7 +343,7 @@ static void ddlist_init(void)
theme.ddlist.bg = &light_frame; theme.ddlist.bg = &light_frame;
theme.ddlist.sel = &light_plain; theme.ddlist.sel = &dark_plain;
theme.ddlist.sb = &dark_frame; theme.ddlist.sb = &dark_frame;
#endif #endif
} }
......
...@@ -52,12 +52,13 @@ static lv_font_t * _font; ...@@ -52,12 +52,13 @@ static lv_font_t * _font;
static void basic_init(void) static void basic_init(void)
{ {
lv_style_copy(&def, &lv_style_pretty); /*Initialize the default style*/ lv_style_copy(&def, &lv_style_pretty); /*Initialize the default style*/
def.text.font = _font;
lv_style_copy(&bg, &lv_style_plain); lv_style_copy(&bg, &lv_style_plain);
bg.body.main_color = lv_color_hsv_to_rgb(_hue, 11, 30); bg.body.main_color = lv_color_hsv_to_rgb(_hue, 11, 30);
bg.body.grad_color = lv_color_hsv_to_rgb(_hue, 11, 30); bg.body.grad_color = lv_color_hsv_to_rgb(_hue, 11, 30);
bg.text.color = lv_color_hsv_to_rgb(_hue, 5, 95); bg.text.color = lv_color_hsv_to_rgb(_hue, 5, 95);
bg.text.font = _font;
lv_style_copy(&sb, &def); lv_style_copy(&sb, &def);
sb.body.main_color = lv_color_hsv_to_rgb(_hue, 30, 60); sb.body.main_color = lv_color_hsv_to_rgb(_hue, 30, 60);
...@@ -69,7 +70,6 @@ static void basic_init(void) ...@@ -69,7 +70,6 @@ static void basic_init(void)
sb.body.radius = LV_DPI / 30; sb.body.radius = LV_DPI / 30;
sb.body.opa = LV_OPA_COVER; sb.body.opa = LV_OPA_COVER;
lv_style_copy(&panel, &bg); lv_style_copy(&panel, &bg);
panel.body.main_color = lv_color_hsv_to_rgb(_hue, 11, 18); panel.body.main_color = lv_color_hsv_to_rgb(_hue, 11, 18);
panel.body.grad_color = lv_color_hsv_to_rgb(_hue, 11, 18); panel.body.grad_color = lv_color_hsv_to_rgb(_hue, 11, 18);
...@@ -97,7 +97,7 @@ static void btn_init(void) ...@@ -97,7 +97,7 @@ static void btn_init(void)
{ {
#if USE_LV_BTN != 0 #if USE_LV_BTN != 0
lv_style_copy(&btn_rel, &lv_style_pretty); lv_style_copy(&btn_rel, &def);
btn_rel.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 40); btn_rel.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 40);
btn_rel.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 20); btn_rel.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 20);
btn_rel.body.border.color = LV_COLOR_HEX3(0x111); btn_rel.body.border.color = LV_COLOR_HEX3(0x111);
...@@ -183,7 +183,7 @@ static void led_init(void) ...@@ -183,7 +183,7 @@ static void led_init(void)
{ {
#if USE_LV_LED != 0 #if USE_LV_LED != 0
static lv_style_t led; static lv_style_t led;
lv_style_copy(&led, &lv_style_pretty_color); lv_style_copy(&led, &def);
led.body.shadow.width = LV_DPI / 10; led.body.shadow.width = LV_DPI / 10;
led.body.radius = LV_RADIUS_CIRCLE; led.body.radius = LV_RADIUS_CIRCLE;
led.body.border.width= LV_DPI / 30; led.body.border.width= LV_DPI / 30;
...@@ -205,7 +205,7 @@ static void bar_init(void) ...@@ -205,7 +205,7 @@ static void bar_init(void)
bar_bg.body.padding.hor = LV_DPI / 16; bar_bg.body.padding.hor = LV_DPI / 16;
bar_bg.body.radius = LV_RADIUS_CIRCLE; bar_bg.body.radius = LV_RADIUS_CIRCLE;
lv_style_copy(&bar_indic, &lv_style_pretty); lv_style_copy(&bar_indic, &def);
bar_indic.body.main_color = lv_color_hsv_to_rgb(_hue, 80, 70); bar_indic.body.main_color = lv_color_hsv_to_rgb(_hue, 80, 70);
bar_indic.body.grad_color = lv_color_hsv_to_rgb(_hue, 80, 70); bar_indic.body.grad_color = lv_color_hsv_to_rgb(_hue, 80, 70);
bar_indic.body.border.color = lv_color_hsv_to_rgb(_hue, 20, 15); bar_indic.body.border.color = lv_color_hsv_to_rgb(_hue, 20, 15);
...@@ -551,9 +551,10 @@ static void win_init(void) ...@@ -551,9 +551,10 @@ static void win_init(void)
win_header.body.padding.ver = 0; win_header.body.padding.ver = 0;
static lv_style_t win_btn_pr; static lv_style_t win_btn_pr;
lv_style_copy(&win_btn_pr, &lv_style_plain); lv_style_copy(&win_btn_pr, &def);
win_btn_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 10); win_btn_pr.body.main_color = lv_color_hsv_to_rgb(_hue, 10, 10);
win_btn_pr.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 10); win_btn_pr.body.grad_color = lv_color_hsv_to_rgb(_hue, 10, 10);
win_btn_pr.text.color = LV_COLOR_HEX3(0xaaa);
theme.win.bg = &win_bg; theme.win.bg = &win_bg;
theme.win.sb = &sb; theme.win.sb = &sb;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment