start to implement the new theme
This commit is contained in:
@@ -1066,7 +1066,7 @@ lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t *point)
|
||||
|
||||
/*If then the children was not ok, and this obj is clickable
|
||||
* and it or its parent is not hidden then save this object*/
|
||||
if(found_p == NULL && lv_obj_get_click(obj) != false) {
|
||||
if(found_p == NULL && lv_obj_get_click(obj) != false && (lv_obj_get_state(obj, LV_OBJ_PART_MAIN) & LV_OBJ_STATE_DISABLED) == 0) {
|
||||
lv_obj_t * hidden_i = obj;
|
||||
while(hidden_i != NULL) {
|
||||
if(lv_obj_get_hidden(hidden_i) == true) break;
|
||||
|
||||
@@ -1225,11 +1225,12 @@ void lv_obj_add_style(lv_obj_t * obj, uint8_t part, lv_style_t * style)
|
||||
}
|
||||
|
||||
|
||||
void lv_obj_add_theme(void * obj, uint8_t part, lv_theme_style_t name)
|
||||
void lv_obj_add_theme(void * obj, uint8_t part, uint16_t name)
|
||||
{
|
||||
lv_obj_add_style(obj, part, lv_theme_get_style(name));
|
||||
}
|
||||
|
||||
|
||||
void lv_obj_reset_style(lv_obj_t * obj, uint8_t part)
|
||||
{
|
||||
lv_style_list_t * style_dsc = lv_obj_get_style(obj, part);
|
||||
@@ -1460,23 +1461,40 @@ void lv_obj_set_state(lv_obj_t * obj, lv_obj_state_t state)
|
||||
|
||||
lv_obj_state_t new_state = obj->state | state;
|
||||
if(obj->state != new_state) {
|
||||
lv_obj_state_t prev_state = obj->state;
|
||||
/* Disabled/Enabled state change should be applied immediately without transition */
|
||||
if((obj->state & LV_OBJ_STATE_DISABLED) != (new_state & LV_OBJ_STATE_DISABLED)) {
|
||||
lv_anim_del(obj, obj_state_anim_cb);
|
||||
obj->state = new_state;
|
||||
obj->prev_state = new_state;
|
||||
obj->state_anim = 0;
|
||||
}
|
||||
/*Start transition if set*/
|
||||
else {
|
||||
lv_style_int_t t = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_TRANSITION_TIME);
|
||||
if(t == 0) {
|
||||
lv_anim_del(obj, obj_state_anim_cb);
|
||||
obj->state = new_state;
|
||||
obj->prev_state = new_state;
|
||||
obj->state_anim = 0;
|
||||
}
|
||||
/*Set the new state for prev state too to get the TRANSITION_TIME for the new state*/
|
||||
else {
|
||||
lv_obj_state_t prev_state = obj->state;
|
||||
obj->prev_state = new_state;
|
||||
obj->state = new_state;
|
||||
obj->state_anim = 0;
|
||||
|
||||
/*Set the new state for prev state too to get the TRANSITION_TIME for the new state*/
|
||||
obj->prev_state = new_state;
|
||||
obj->state = new_state;
|
||||
obj->state_anim = 0;
|
||||
/*Get the TRANSITION_TIME and set the real previous state*/
|
||||
obj->prev_state = prev_state;
|
||||
|
||||
/*Get the TRANSITION_TIME and set the real previous state*/
|
||||
lv_style_int_t t = lv_obj_get_style_int(obj, LV_OBJ_PART_MAIN, LV_STYLE_TRANSITION_TIME);
|
||||
obj->prev_state = prev_state;
|
||||
|
||||
lv_anim_t a;
|
||||
lv_anim_init(&a);
|
||||
lv_anim_set_exec_cb(&a, obj, obj_state_anim_cb);
|
||||
lv_anim_set_values(&a, 0, 255);
|
||||
lv_anim_set_time(&a, t, 0);
|
||||
lv_anim_create(&a);
|
||||
lv_anim_t a;
|
||||
lv_anim_init(&a);
|
||||
lv_anim_set_exec_cb(&a, obj, obj_state_anim_cb);
|
||||
lv_anim_set_values(&a, 0, 255);
|
||||
lv_anim_set_time(&a, t, 0);
|
||||
lv_anim_create(&a);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@ extern "C" {
|
||||
#include "../lv_misc/lv_bidi.h"
|
||||
#include "../lv_hal/lv_hal.h"
|
||||
#include "../lv_draw/lv_draw_rect.h"
|
||||
#include "../lv_themes/lv_theme.h"
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
@@ -505,7 +504,7 @@ void lv_obj_set_style_ptr(lv_obj_t * obj, uint8_t type, lv_style_property_t prop
|
||||
|
||||
void lv_obj_add_style(lv_obj_t * obj, uint8_t type, lv_style_t * style);
|
||||
|
||||
void lv_obj_add_theme(void * obj, uint8_t part, lv_theme_style_t name);
|
||||
void lv_obj_add_theme(void * obj, uint8_t part, uint16_t name);
|
||||
|
||||
void lv_obj_reset_style(lv_obj_t * obj, uint8_t type);
|
||||
|
||||
|
||||
@@ -77,18 +77,18 @@ lv_obj_t * lv_bar_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
LV_LOG_TRACE("lv_bar create started");
|
||||
|
||||
/*Create the ancestor basic object*/
|
||||
lv_obj_t * new_bar = lv_obj_create(par, copy);
|
||||
LV_ASSERT_MEM(new_bar);
|
||||
if(new_bar == NULL) return NULL;
|
||||
lv_obj_t * bar = lv_obj_create(par, copy);
|
||||
LV_ASSERT_MEM(bar);
|
||||
if(bar == NULL) return NULL;
|
||||
|
||||
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_bar);
|
||||
if(ancestor_design_f == NULL) ancestor_design_f = lv_obj_get_design_cb(new_bar);
|
||||
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(bar);
|
||||
if(ancestor_design_f == NULL) ancestor_design_f = lv_obj_get_design_cb(bar);
|
||||
|
||||
/*Allocate the object type specific extended data*/
|
||||
lv_bar_ext_t * ext = lv_obj_allocate_ext_attr(new_bar, sizeof(lv_bar_ext_t));
|
||||
lv_bar_ext_t * ext = lv_obj_allocate_ext_attr(bar, sizeof(lv_bar_ext_t));
|
||||
LV_ASSERT_MEM(ext);
|
||||
if(ext == NULL) {
|
||||
lv_obj_del(new_bar);
|
||||
lv_obj_del(bar);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -98,25 +98,24 @@ lv_obj_t * lv_bar_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
ext->cur_value = 0;
|
||||
#if LV_USE_ANIMATION
|
||||
ext->anim_time = 200;
|
||||
lv_bar_init_anim(new_bar, &ext->cur_value_anim);
|
||||
lv_bar_init_anim(new_bar, &ext->start_value_anim);
|
||||
lv_bar_init_anim(bar, &ext->cur_value_anim);
|
||||
lv_bar_init_anim(bar, &ext->start_value_anim);
|
||||
#endif
|
||||
ext->type = LV_BAR_TYPE_NORMAL;
|
||||
lv_style_list_init(&ext->style_indic);
|
||||
|
||||
lv_obj_set_signal_cb(new_bar, lv_bar_signal);
|
||||
lv_obj_set_design_cb(new_bar, lv_bar_design);
|
||||
lv_obj_set_signal_cb(bar, lv_bar_signal);
|
||||
lv_obj_set_design_cb(bar, lv_bar_design);
|
||||
|
||||
|
||||
/*Init the new bar object*/
|
||||
if(copy == NULL) {
|
||||
lv_obj_set_click(new_bar, false);
|
||||
lv_obj_set_size(new_bar, LV_DPI * 2, LV_DPI / 4);
|
||||
lv_bar_set_value(new_bar, ext->cur_value, false);
|
||||
lv_style_list_init(&ext->style_indic);
|
||||
|
||||
_ot(new_bar, LV_BAR_PART_BG, BAR);
|
||||
_ot(new_bar, LV_BAR_PART_INDIC, BAR_INDIC);
|
||||
lv_obj_set_click(bar, false);
|
||||
lv_obj_set_size(bar, LV_DPI * 2, LV_DPI / 10);
|
||||
lv_bar_set_value(bar, ext->cur_value, false);
|
||||
|
||||
lv_theme_apply(bar, LV_THEME_BAR);
|
||||
} else {
|
||||
lv_bar_ext_t * ext_copy = lv_obj_get_ext_attr(copy);
|
||||
ext->min_value = ext_copy->min_value;
|
||||
@@ -125,15 +124,18 @@ lv_obj_t * lv_bar_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
ext->cur_value = ext_copy->cur_value;
|
||||
ext->style_indic = ext_copy->style_indic;
|
||||
ext->type = ext_copy->type;
|
||||
/*Refresh the style with new signal function*/
|
||||
lv_obj_refresh_style(new_bar);
|
||||
|
||||
lv_bar_set_value(new_bar, ext->cur_value, false);
|
||||
lv_style_list_copy(&ext->style_indic, &ext_copy->style_indic);
|
||||
|
||||
/*Refresh the style with new signal function*/
|
||||
lv_obj_refresh_style(bar);
|
||||
|
||||
lv_bar_set_value(bar, ext->cur_value, LV_ANIM_OFF);
|
||||
}
|
||||
|
||||
LV_LOG_INFO("bar created");
|
||||
|
||||
return new_bar;
|
||||
return bar;
|
||||
}
|
||||
|
||||
/*=====================
|
||||
@@ -491,7 +493,7 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area)
|
||||
/*Draw the indicator*/
|
||||
|
||||
/*Do not draw a zero length indicator*/
|
||||
if(!sym && indic_length_calc(&ext->indic_area) == 0) return;
|
||||
if(!sym && indic_length_calc(&ext->indic_area) <= 1) return;
|
||||
|
||||
uint16_t bg_radius = lv_obj_get_style_int(bar, LV_BAR_PART_BG, LV_STYLE_RADIUS);
|
||||
lv_coord_t short_side = LV_MATH_MIN(objw, objh);
|
||||
@@ -508,11 +510,15 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area)
|
||||
(!hor && lv_area_get_height(&ext->indic_area) > bg_radius * 2)) {
|
||||
lv_opa_t bg_opa = draw_indic_dsc.bg_opa;
|
||||
lv_opa_t border_opa = draw_indic_dsc.border_opa;
|
||||
void * pattern_src = draw_indic_dsc.pattern_src;
|
||||
draw_indic_dsc.bg_opa = LV_OPA_TRANSP;
|
||||
draw_indic_dsc.border_opa = LV_OPA_TRANSP;
|
||||
draw_indic_dsc.pattern_src = NULL;
|
||||
lv_draw_rect(&ext->indic_area, clip_area, &draw_indic_dsc);
|
||||
draw_indic_dsc.bg_opa = bg_opa;
|
||||
draw_indic_dsc.border_opa = border_opa;
|
||||
draw_indic_dsc.pattern_src = pattern_src;
|
||||
|
||||
}
|
||||
|
||||
lv_draw_mask_radius_param_t mask_bg_param;
|
||||
@@ -532,6 +538,13 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area)
|
||||
mask_indic_max_area.y1 += bg_top;
|
||||
mask_indic_max_area.x2 -= bg_right;
|
||||
mask_indic_max_area.y2 -= bg_bottom;
|
||||
if(hor && lv_area_get_height(&mask_indic_max_area) < LV_BAR_SIZE_MIN) {
|
||||
mask_indic_max_area.y1 = bar->coords.y1 + (objh / 2) - (LV_BAR_SIZE_MIN / 2);
|
||||
mask_indic_max_area.y2 = mask_indic_max_area.y1 + LV_BAR_SIZE_MIN;
|
||||
} else if(!hor && lv_area_get_width(&mask_indic_max_area) < LV_BAR_SIZE_MIN) {
|
||||
mask_indic_max_area.x1 = bar->coords.x1 + (objw / 2) - (LV_BAR_SIZE_MIN / 2);
|
||||
mask_indic_max_area.x2 = mask_indic_max_area.x1 + LV_BAR_SIZE_MIN;
|
||||
}
|
||||
|
||||
/*Create a mask to the current indicator area to see only this part from the whole gradient.*/
|
||||
lv_draw_mask_radius_param_t mask_indic_param;
|
||||
@@ -545,6 +558,7 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area)
|
||||
/*Draw the border*/
|
||||
draw_indic_dsc.bg_opa = LV_OPA_TRANSP;
|
||||
draw_indic_dsc.shadow_opa = LV_OPA_TRANSP;
|
||||
draw_indic_dsc.pattern_src = NULL;
|
||||
lv_draw_rect(&ext->indic_area, clip_area, &draw_indic_dsc);
|
||||
|
||||
lv_draw_mask_remove_id(mask_indic_id);
|
||||
|
||||
@@ -83,6 +83,7 @@ typedef struct
|
||||
enum {
|
||||
LV_BAR_PART_BG, /** Bar background style. */
|
||||
LV_BAR_PART_INDIC, /** Bar fill area style. */
|
||||
_LV_BAR_PART_VIRTUAL_LAST
|
||||
};
|
||||
typedef uint8_t lv_bar_part_t;
|
||||
|
||||
|
||||
@@ -60,55 +60,49 @@ lv_obj_t * lv_btn_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
{
|
||||
LV_LOG_TRACE("button create started");
|
||||
|
||||
lv_obj_t * new_btn;
|
||||
lv_obj_t * btn;
|
||||
|
||||
new_btn = lv_cont_create(par, copy);
|
||||
LV_ASSERT_MEM(new_btn);
|
||||
if(new_btn == NULL) return NULL;
|
||||
btn = lv_cont_create(par, copy);
|
||||
LV_ASSERT_MEM(btn);
|
||||
if(btn == NULL) return NULL;
|
||||
|
||||
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_btn);
|
||||
if(ancestor_design == NULL) ancestor_design = lv_obj_get_design_cb(new_btn);
|
||||
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(btn);
|
||||
if(ancestor_design == NULL) ancestor_design = lv_obj_get_design_cb(btn);
|
||||
|
||||
/*Allocate the extended data*/
|
||||
lv_btn_ext_t * ext = lv_obj_allocate_ext_attr(new_btn, sizeof(lv_btn_ext_t));
|
||||
lv_btn_ext_t * ext = lv_obj_allocate_ext_attr(btn, sizeof(lv_btn_ext_t));
|
||||
LV_ASSERT_MEM(ext);
|
||||
if(ext == NULL) {
|
||||
lv_obj_del(new_btn);
|
||||
lv_obj_del(btn);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ext->toggle = 0;
|
||||
|
||||
lv_obj_set_signal_cb(new_btn, lv_btn_signal);
|
||||
lv_obj_set_design_cb(new_btn, lv_btn_design);
|
||||
lv_obj_set_signal_cb(btn, lv_btn_signal);
|
||||
lv_obj_set_design_cb(btn, lv_btn_design);
|
||||
|
||||
/*If no copy do the basic initialization*/
|
||||
if(copy == NULL) {
|
||||
/*Set layout if the button is not a screen*/
|
||||
if(par != NULL) {
|
||||
lv_btn_set_layout(new_btn, LV_LAYOUT_CENTER);
|
||||
}
|
||||
if(par) lv_btn_set_layout(btn, LV_LAYOUT_CENTER);
|
||||
|
||||
lv_obj_set_click(new_btn, true); /*Be sure the button is clickable*/
|
||||
lv_obj_set_click(btn, true); /*Be sure the button is clickable*/
|
||||
|
||||
/*Set the default styles*/
|
||||
lv_obj_reset_style(new_btn, LV_BTN_PART_MAIN);
|
||||
lv_obj_add_style(new_btn, LV_BTN_PART_MAIN, _t(BTN));
|
||||
lv_theme_apply(btn, LV_THEME_BTN);
|
||||
}
|
||||
/*Copy 'copy'*/
|
||||
else {
|
||||
lv_btn_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
|
||||
ext->toggle = copy_ext->toggle;
|
||||
|
||||
// memcpy((void*) ext->styles, copy_ext->styles, sizeof(ext->styles));
|
||||
|
||||
/*Refresh the style with new signal function*/
|
||||
lv_obj_refresh_style(new_btn);
|
||||
lv_obj_refresh_style(btn);
|
||||
}
|
||||
|
||||
LV_LOG_INFO("button created");
|
||||
|
||||
return new_btn;
|
||||
return btn;
|
||||
}
|
||||
|
||||
/*=====================
|
||||
@@ -153,7 +147,13 @@ void lv_btn_set_state(lv_obj_t * btn, lv_btn_state_t state)
|
||||
case LV_BTN_STATE_TGL_PR:
|
||||
lv_obj_set_state(btn, LV_OBJ_STATE_PRESSED | LV_OBJ_STATE_CHECKED);
|
||||
break;
|
||||
case LV_BTN_STATE_INA:
|
||||
lv_obj_set_state(btn, LV_OBJ_STATE_DISABLED);
|
||||
break;
|
||||
}
|
||||
|
||||
// /*Make the state change happen immediately, without transition*/
|
||||
// btn->prev_state = btn->state;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -77,9 +77,8 @@ lv_obj_t * lv_slider_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
}
|
||||
|
||||
/*Initialize the allocated 'ext' */
|
||||
lv_style_list_init(&ext->style_knob);
|
||||
ext->value_to_set = NULL;
|
||||
ext->dragging = false;
|
||||
ext->dragging = 0;
|
||||
|
||||
/*The signal and design functions are not copied so set them here*/
|
||||
lv_obj_set_signal_cb(new_slider, lv_slider_signal);
|
||||
@@ -90,7 +89,8 @@ lv_obj_t * lv_slider_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
lv_obj_set_click(new_slider, true);
|
||||
lv_obj_set_protect(new_slider, LV_PROTECT_PRESS_LOST);
|
||||
|
||||
_ot(new_slider, LV_SLIDER_PART_KNOB, SLIDER_KNOB);
|
||||
lv_style_list_init(&ext->style_knob);
|
||||
lv_theme_apply(new_slider, LV_THEME_SLIDER);
|
||||
}
|
||||
/*Copy an existing slider*/
|
||||
else {
|
||||
@@ -344,6 +344,7 @@ static lv_res_t lv_slider_signal(lv_obj_t * slider, lv_signal_t sign, void * par
|
||||
/* The smaller size is the knob diameter*/
|
||||
lv_coord_t knob_size = LV_MATH_MIN(lv_obj_get_width(slider), lv_obj_get_height(slider)) >> 1;
|
||||
knob_size += LV_MATH_MAX(LV_MATH_MAX(knob_left, knob_right), LV_MATH_MAX(knob_bottom,knob_top));
|
||||
knob_size += 2; /*For rounding error*/
|
||||
|
||||
lv_style_int_t knob_sh_width = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_WIDTH);
|
||||
lv_style_int_t knob_sh_spread = lv_obj_get_style_int(slider, LV_SLIDER_PART_KNOB, LV_STYLE_SHADOW_SPREAD);
|
||||
@@ -447,8 +448,6 @@ static void lv_slider_position_knob(lv_obj_t * slider, lv_area_t * knob_area, lv
|
||||
|
||||
static void lv_slider_draw_knob(lv_obj_t * slider, const lv_area_t * knob_area, const lv_area_t * clip_area)
|
||||
{
|
||||
lv_slider_ext_t * ext = lv_obj_get_ext_attr(slider);
|
||||
|
||||
lv_draw_rect_dsc_t knob_rect_dsc;
|
||||
lv_draw_rect_dsc_init(&knob_rect_dsc);
|
||||
lv_obj_init_draw_rect_dsc(slider, LV_SLIDER_PART_KNOB, &knob_rect_dsc);
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
* STATIC PROTOTYPES
|
||||
**********************/
|
||||
static lv_res_t lv_sw_signal(lv_obj_t * sw, lv_signal_t sign, void * param);
|
||||
static lv_design_res_t lv_sw_design(lv_obj_t * sw, const lv_area_t * clip_area, lv_design_mode_t mode);
|
||||
static lv_style_list_t * lv_sw_get_style(lv_obj_t * sw, uint8_t part);
|
||||
static lv_style_list_t * lv_sw_get_style(lv_obj_t * sw, uint8_t part);
|
||||
|
||||
@@ -41,6 +42,7 @@ static lv_style_list_t * lv_sw_get_style(lv_obj_t * sw, uint8_t part);
|
||||
* STATIC VARIABLES
|
||||
**********************/
|
||||
static lv_signal_cb_t ancestor_signal;
|
||||
static lv_design_cb_t ancestor_design;
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
@@ -61,12 +63,13 @@ lv_obj_t * lv_sw_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
LV_LOG_TRACE("switch create started");
|
||||
|
||||
/*Create the ancestor of switch*/
|
||||
lv_obj_t * new_sw = lv_slider_create(par, copy);
|
||||
lv_obj_t * new_sw = lv_bar_create(par, copy);
|
||||
LV_ASSERT_MEM(new_sw);
|
||||
|
||||
if(new_sw == NULL) return NULL;
|
||||
|
||||
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_sw);
|
||||
if(ancestor_design == NULL) ancestor_design = lv_obj_get_design_cb(new_sw);
|
||||
|
||||
/*Allocate the switch type specific extended data*/
|
||||
lv_sw_ext_t * ext = lv_obj_allocate_ext_attr(new_sw, sizeof(lv_sw_ext_t));
|
||||
@@ -78,16 +81,18 @@ lv_obj_t * lv_sw_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
|
||||
/*The signal and design functions are not copied so set them here*/
|
||||
lv_obj_set_signal_cb(new_sw, lv_sw_signal);
|
||||
lv_obj_set_design_cb(new_sw, lv_sw_design);
|
||||
|
||||
/*Init the new switch switch*/
|
||||
if(copy == NULL) {
|
||||
lv_obj_set_click(new_sw, true);
|
||||
lv_obj_set_protect(new_sw, LV_PROTECT_PRESS_LOST);
|
||||
lv_obj_set_size(new_sw, 2 * LV_DPI / 3, LV_DPI / 3);
|
||||
lv_slider_set_range(new_sw, 0, 1);
|
||||
lv_bar_set_range(new_sw, 0, 1);
|
||||
|
||||
_ot(new_sw, LV_SW_PART_KNOB, SW_KNOB);
|
||||
lv_style_list_init(&ext->style_knob);
|
||||
|
||||
lv_theme_apply(new_sw, LV_THEME_SW);
|
||||
}
|
||||
/*Copy an existing switch*/
|
||||
else {
|
||||
@@ -121,7 +126,7 @@ void lv_sw_on(lv_obj_t * sw, lv_anim_enable_t anim)
|
||||
#endif
|
||||
lv_sw_ext_t * ext = lv_obj_get_ext_attr(sw);
|
||||
ext->state = 1;
|
||||
lv_slider_set_value(sw, 1, anim);
|
||||
lv_bar_set_value(sw, 1, anim);
|
||||
lv_obj_set_state(sw, LV_OBJ_STATE_CHECKED);
|
||||
}
|
||||
|
||||
@@ -174,6 +179,75 @@ bool lv_sw_toggle(lv_obj_t * sw, lv_anim_enable_t anim)
|
||||
* STATIC FUNCTIONS
|
||||
**********************/
|
||||
|
||||
/**
|
||||
* Handle the drawing related tasks of the sliders
|
||||
* @param slider pointer to an object
|
||||
* @param clip_area the object will be drawn only in this area
|
||||
* @param mode LV_DESIGN_COVER_CHK: only check if the object fully covers the 'mask_p' area
|
||||
* (return 'true' if yes)
|
||||
* LV_DESIGN_DRAW: draw the object (always return 'true')
|
||||
* LV_DESIGN_DRAW_POST: drawing after every children are drawn
|
||||
* @param return an element of `lv_design_res_t`
|
||||
*/
|
||||
static lv_design_res_t lv_sw_design(lv_obj_t * sw, const lv_area_t * clip_area, lv_design_mode_t mode)
|
||||
{
|
||||
/*Return false if the object is not covers the mask_p area*/
|
||||
if(mode == LV_DESIGN_COVER_CHK) {
|
||||
return LV_DESIGN_RES_NOT_COVER;
|
||||
}
|
||||
/*Draw the object*/
|
||||
else if(mode == LV_DESIGN_DRAW_MAIN) {
|
||||
|
||||
/*The ancestor design function will draw the background and the indicator.
|
||||
* It also sets ext->bar.indic_area*/
|
||||
ancestor_design(sw, clip_area, mode);
|
||||
|
||||
lv_sw_ext_t * ext = lv_obj_get_ext_attr(sw);
|
||||
|
||||
lv_coord_t objw = lv_obj_get_width(sw);
|
||||
lv_coord_t objh = lv_obj_get_height(sw);
|
||||
lv_coord_t knob_size = objh;
|
||||
lv_area_t knob_area;
|
||||
|
||||
lv_style_int_t bg_left = lv_obj_get_style_int(sw, LV_SW_PART_BG, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t bg_right = lv_obj_get_style_int(sw, LV_SW_PART_BG, LV_STYLE_PAD_RIGHT);
|
||||
|
||||
lv_coord_t max_indic_w = objw - bg_left - bg_right;
|
||||
lv_coord_t act_indic_w = lv_area_get_width(&ext->bar.indic_area);
|
||||
|
||||
|
||||
knob_area.x1 = ext->bar.indic_area.x2 - ((act_indic_w * knob_size) / max_indic_w);
|
||||
knob_area.x2 = knob_area.x1 + knob_size;
|
||||
knob_area.y1 = sw->coords.y1;
|
||||
knob_area.y2 = sw->coords.y2;
|
||||
|
||||
lv_style_int_t knob_left = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t knob_right = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_PAD_RIGHT);
|
||||
lv_style_int_t knob_top = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_PAD_TOP);
|
||||
lv_style_int_t knob_bottom = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_PAD_BOTTOM);
|
||||
|
||||
/*Apply the paddings on the knob area*/
|
||||
knob_area.x1 -= knob_left;
|
||||
knob_area.x2 += knob_right;
|
||||
knob_area.y1 -= knob_top;
|
||||
knob_area.y2 += knob_bottom;
|
||||
|
||||
lv_draw_rect_dsc_t knob_rect_dsc;
|
||||
lv_draw_rect_dsc_init(&knob_rect_dsc);
|
||||
lv_obj_init_draw_rect_dsc(sw, LV_SW_PART_KNOB, &knob_rect_dsc);
|
||||
|
||||
lv_draw_rect(&knob_area, clip_area, &knob_rect_dsc);
|
||||
|
||||
}
|
||||
/*Post draw when the children are drawn*/
|
||||
else if(mode == LV_DESIGN_DRAW_POST) {
|
||||
return ancestor_design(sw, clip_area, mode);
|
||||
}
|
||||
|
||||
return LV_DESIGN_RES_OK;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Signal function of the switch
|
||||
* @param sw pointer to a switch object
|
||||
@@ -198,15 +272,9 @@ static lv_res_t lv_sw_signal(lv_obj_t * sw, lv_signal_t sign, void * param)
|
||||
return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
|
||||
}
|
||||
|
||||
lv_sw_ext_t * ext = lv_obj_get_ext_attr(sw);
|
||||
|
||||
/* Include the ancient signal function */
|
||||
if(sign != LV_SIGNAL_PRESSED &&
|
||||
sign != LV_SIGNAL_PRESSING &&
|
||||
sign != LV_SIGNAL_RELEASED) {
|
||||
res = ancestor_signal(sw, sign, param);
|
||||
if(res != LV_RES_OK) return res;
|
||||
}
|
||||
res = ancestor_signal(sw, sign, param);
|
||||
if(res != LV_RES_OK) return res;
|
||||
|
||||
if(sign == LV_SIGNAL_CLEANUP) {
|
||||
/*Nothing to cleanup. (No dynamically allocated memory in 'ext')*/
|
||||
@@ -224,6 +292,44 @@ static lv_res_t lv_sw_signal(lv_obj_t * sw, lv_signal_t sign, void * param)
|
||||
|
||||
res = lv_event_send(sw, LV_EVENT_VALUE_CHANGED, NULL);
|
||||
if(res != LV_RES_OK) return res;
|
||||
}else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
|
||||
lv_style_int_t knob_left = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t knob_right = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_PAD_RIGHT);
|
||||
lv_style_int_t knob_top = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_PAD_TOP);
|
||||
lv_style_int_t knob_bottom = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_PAD_BOTTOM);
|
||||
|
||||
/* The smaller size is the knob diameter*/
|
||||
lv_coord_t knob_size;
|
||||
knob_size = LV_MATH_MAX(LV_MATH_MAX(knob_left, knob_right), LV_MATH_MAX(knob_bottom,knob_top));
|
||||
knob_size += 2; /*For rounding error*/
|
||||
|
||||
lv_style_int_t knob_sh_width = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_SHADOW_WIDTH);
|
||||
lv_style_int_t knob_sh_spread = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_SHADOW_SPREAD);
|
||||
lv_style_int_t knob_sh_ox = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_SHADOW_OFFSET_X);
|
||||
lv_style_int_t knob_sh_oy = lv_obj_get_style_int(sw, LV_SW_PART_KNOB, LV_STYLE_SHADOW_OFFSET_Y);
|
||||
|
||||
knob_size += knob_sh_width + knob_sh_spread;
|
||||
knob_size += LV_MATH_MAX(LV_MATH_ABS(knob_sh_ox), LV_MATH_ABS(knob_sh_oy));
|
||||
|
||||
lv_style_int_t bg_sh_width = lv_obj_get_style_int(sw, LV_SW_PART_BG, LV_STYLE_SHADOW_WIDTH);
|
||||
lv_style_int_t bg_sh_spread = lv_obj_get_style_int(sw, LV_SW_PART_BG, LV_STYLE_SHADOW_SPREAD);
|
||||
lv_style_int_t bg_sh_ox = lv_obj_get_style_int(sw, LV_SW_PART_BG, LV_STYLE_SHADOW_OFFSET_X);
|
||||
lv_style_int_t bg_sh_oy = lv_obj_get_style_int(sw, LV_SW_PART_BG, LV_STYLE_SHADOW_OFFSET_Y);
|
||||
|
||||
lv_coord_t bg_size = bg_sh_width + bg_sh_spread;
|
||||
bg_size += LV_MATH_MAX(LV_MATH_ABS(bg_sh_ox), LV_MATH_ABS(bg_sh_oy));
|
||||
|
||||
lv_style_int_t indic_sh_width = lv_obj_get_style_int(sw, LV_SW_PART_INDIC, LV_STYLE_SHADOW_WIDTH);
|
||||
lv_style_int_t indic_sh_spread = lv_obj_get_style_int(sw, LV_SW_PART_INDIC, LV_STYLE_SHADOW_SPREAD);
|
||||
lv_style_int_t indic_sh_ox = lv_obj_get_style_int(sw, LV_SW_PART_INDIC, LV_STYLE_SHADOW_OFFSET_X);
|
||||
lv_style_int_t indic_sh_oy = lv_obj_get_style_int(sw, LV_SW_PART_INDIC, LV_STYLE_SHADOW_OFFSET_Y);
|
||||
|
||||
lv_coord_t indic_size = indic_sh_width + indic_sh_spread;
|
||||
indic_size += LV_MATH_MAX(LV_MATH_ABS(indic_sh_ox), LV_MATH_ABS(indic_sh_oy));
|
||||
|
||||
sw->ext_draw_pad = LV_MATH_MAX(sw->ext_draw_pad, knob_size);
|
||||
sw->ext_draw_pad = LV_MATH_MAX(sw->ext_draw_pad, indic_size);
|
||||
sw->ext_draw_pad = LV_MATH_MAX(sw->ext_draw_pad, bg_size);
|
||||
}
|
||||
else if(sign == LV_SIGNAL_GET_EDITABLE) {
|
||||
bool * editable = (bool *)param;
|
||||
@@ -245,10 +351,10 @@ static lv_style_list_t * lv_sw_get_style(lv_obj_t * sw, uint8_t part)
|
||||
style_dsc_p = &sw->style_list;
|
||||
break;
|
||||
case LV_SW_PART_INDIC:
|
||||
style_dsc_p = &ext->slider.bar.style_indic;
|
||||
style_dsc_p = &ext->bar.style_indic;
|
||||
break;
|
||||
case LV_SW_PART_KNOB:
|
||||
style_dsc_p = &ext->slider.style_knob;
|
||||
style_dsc_p = &ext->style_knob;
|
||||
break;
|
||||
default:
|
||||
style_dsc_p = NULL;
|
||||
|
||||
@@ -23,7 +23,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#include "../lv_core/lv_obj.h"
|
||||
#include "lv_slider.h"
|
||||
#include "lv_bar.h"
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
@@ -35,8 +35,9 @@ extern "C" {
|
||||
/*Data of switch*/
|
||||
typedef struct
|
||||
{
|
||||
lv_slider_ext_t slider; /*Ext. of ancestor*/
|
||||
lv_bar_ext_t bar; /*Ext. of ancestor*/
|
||||
/*New data for this type */
|
||||
lv_style_list_t style_knob; /*Style of the knob*/
|
||||
uint8_t state :1; /*The current state*/
|
||||
} lv_sw_ext_t;
|
||||
|
||||
@@ -44,9 +45,10 @@ typedef struct
|
||||
* Switch parts.
|
||||
*/
|
||||
enum {
|
||||
LV_SW_PART_BG, /**< Switch background. */
|
||||
LV_SW_PART_INDIC, /**< Switch fill area. */
|
||||
LV_SW_PART_KNOB, /**< Switch knob (when off). */
|
||||
LV_SW_PART_BG = LV_BAR_PART_BG, /**< Switch background. */
|
||||
LV_SW_PART_INDIC = LV_BAR_PART_INDIC, /**< Switch fill area. */
|
||||
LV_SW_PART_KNOB = _LV_BAR_PART_VIRTUAL_LAST, /**< Switch knob. */
|
||||
_LV_SW_PART_VIRTUAL_LAST
|
||||
};
|
||||
|
||||
typedef uint8_t lv_sw_part_t;
|
||||
|
||||
@@ -74,16 +74,16 @@ lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
LV_LOG_TRACE("tab view create started");
|
||||
|
||||
/*Create the ancestor of tab*/
|
||||
lv_obj_t * new_tabview = lv_obj_create(par, copy);
|
||||
LV_ASSERT_MEM(new_tabview);
|
||||
if(new_tabview == NULL) return NULL;
|
||||
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_tabview);
|
||||
lv_obj_t * tabview = lv_obj_create(par, copy);
|
||||
LV_ASSERT_MEM(tabview);
|
||||
if(tabview == NULL) return NULL;
|
||||
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(tabview);
|
||||
|
||||
/*Allocate the tab type specific extended data*/
|
||||
lv_tabview_ext_t * ext = lv_obj_allocate_ext_attr(new_tabview, sizeof(lv_tabview_ext_t));
|
||||
lv_tabview_ext_t * ext = lv_obj_allocate_ext_attr(tabview, sizeof(lv_tabview_ext_t));
|
||||
LV_ASSERT_MEM(ext);
|
||||
if(ext == NULL) {
|
||||
lv_obj_del(new_tabview);
|
||||
lv_obj_del(tabview);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
#endif
|
||||
|
||||
/*The signal and design functions are not copied so set them here*/
|
||||
lv_obj_set_signal_cb(new_tabview, lv_tabview_signal);
|
||||
lv_obj_set_signal_cb(tabview, lv_tabview_signal);
|
||||
|
||||
/*Init the new tab tab*/
|
||||
if(copy == NULL) {
|
||||
@@ -113,11 +113,11 @@ lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
/* Set a size which fits into the parent.
|
||||
* Don't use `par` directly because if the tabview is created on a page it is moved to the
|
||||
* scrollable so the parent has changed */
|
||||
lv_obj_set_size(new_tabview, lv_obj_get_width_fit(lv_obj_get_parent(new_tabview)),
|
||||
lv_obj_get_height_fit(lv_obj_get_parent(new_tabview)));
|
||||
lv_obj_set_size(tabview, lv_obj_get_width_fit(lv_obj_get_parent(tabview)),
|
||||
lv_obj_get_height_fit(lv_obj_get_parent(tabview)));
|
||||
|
||||
ext->content = lv_page_create(new_tabview, NULL);
|
||||
ext->btns = lv_btnm_create(new_tabview, NULL);
|
||||
ext->content = lv_page_create(tabview, NULL);
|
||||
ext->btns = lv_btnm_create(tabview, NULL);
|
||||
ext->indic = lv_obj_create(ext->btns, NULL);
|
||||
|
||||
if(ancestor_scrl_signal == NULL) ancestor_scrl_signal = lv_obj_get_signal_cb(lv_page_get_scrl(ext->content));
|
||||
@@ -134,16 +134,8 @@ lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
lv_obj_set_drag_dir(lv_page_get_scrl(ext->content), LV_DRAG_DIR_ONE);
|
||||
|
||||
lv_style_list_reset(lv_obj_get_style(ext->content, LV_PAGE_PART_BG));
|
||||
lv_style_list_reset(lv_obj_get_style(ext->content, LV_PAGE_PART_SCRL));
|
||||
lv_style_list_reset(lv_obj_get_style(new_tabview, LV_TABVIEW_PART_INDIC));
|
||||
lv_style_list_reset(lv_obj_get_style(new_tabview, LV_TABVIEW_PART_BTNS));
|
||||
lv_style_list_reset(lv_obj_get_style(new_tabview, LV_TABVIEW_PART_BTNS_BG));
|
||||
|
||||
lv_obj_reset_style(ext->content, LV_PAGE_PART_BG);
|
||||
_ot(new_tabview, LV_TABVIEW_PART_BG_SCRL, TABVIEW_BG_SCRL);
|
||||
_ot(new_tabview, LV_TABVIEW_PART_BTNS, TABVIEW_BTNS);
|
||||
_ot(new_tabview, LV_TABVIEW_PART_BTNS_BG, TABVIEW_BTNS_BG);
|
||||
_ot(new_tabview, LV_TABVIEW_PART_INDIC, TABVIEW_INDIC);
|
||||
lv_theme_apply(tabview, LV_THEME_TABVIEW);
|
||||
|
||||
}
|
||||
/*Copy an existing tab view*/
|
||||
@@ -151,9 +143,9 @@ lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
lv_tabview_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
|
||||
ext->point_last.x = 0;
|
||||
ext->point_last.y = 0;
|
||||
ext->btns = lv_btnm_create(new_tabview, copy_ext->btns);
|
||||
ext->btns = lv_btnm_create(tabview, copy_ext->btns);
|
||||
ext->indic = lv_obj_create(ext->btns, copy_ext->indic);
|
||||
ext->content = lv_page_create(new_tabview, copy_ext->content);
|
||||
ext->content = lv_page_create(tabview, copy_ext->content);
|
||||
#if LV_USE_ANIMATION
|
||||
ext->anim_time = copy_ext->anim_time;
|
||||
#endif
|
||||
@@ -179,11 +171,11 @@ lv_obj_t * lv_tabview_create(lv_obj_t * par, const lv_obj_t * copy)
|
||||
// lv_obj_refresh_style(new_tabview);
|
||||
}
|
||||
|
||||
tabview_realign(new_tabview);
|
||||
tabview_realign(tabview);
|
||||
|
||||
LV_LOG_INFO("tab view created");
|
||||
|
||||
return new_tabview;
|
||||
return tabview;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -219,11 +211,8 @@ lv_obj_t * lv_tabview_add_tab(lv_obj_t * tabview, const char * name)
|
||||
lv_obj_t * h = lv_page_create(ext->content, NULL);
|
||||
lv_obj_set_size(h, lv_obj_get_width(tabview), lv_obj_get_height(ext->content));
|
||||
lv_page_set_sb_mode(h, LV_SB_MODE_AUTO);
|
||||
lv_style_list_reset(lv_obj_get_style(h, LV_PAGE_PART_BG));
|
||||
lv_style_list_reset(lv_obj_get_style(h, LV_PAGE_PART_SCRL));
|
||||
_ot(h, LV_PAGE_PART_BG, TABVIEW_TAB_BG);
|
||||
_ot(h, LV_PAGE_PART_SCRL, TABVIEW_TAB_SCRL);
|
||||
lv_page_set_scroll_propagation(h, true);
|
||||
lv_theme_apply(h, LV_THEME_TABVIEW_PAGE);
|
||||
|
||||
if(page_signal == NULL) page_signal = lv_obj_get_signal_cb(h);
|
||||
|
||||
@@ -376,9 +365,9 @@ void lv_tabview_set_tab_act(lv_obj_t * tabview, uint16_t id, lv_anim_enable_t an
|
||||
lv_coord_t indic_size;
|
||||
lv_coord_t indic_pos = 0; /*silence uninitialized variable warning*/;
|
||||
|
||||
lv_style_int_t btns_bg_inner = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_INNER);
|
||||
lv_style_int_t btns_bg_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t btns_bg_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_TOP);
|
||||
lv_style_int_t btns_bg_inner = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB_BG, LV_STYLE_PAD_INNER);
|
||||
lv_style_int_t btns_bg_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB_BG, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t btns_bg_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB_BG, LV_STYLE_PAD_TOP);
|
||||
|
||||
switch(ext->btns_pos) {
|
||||
default: /*default case is prevented in lv_tabview_set_btns_pos(), but here for safety*/
|
||||
@@ -749,10 +738,10 @@ static lv_style_list_t * lv_tabview_get_style(lv_obj_t * tabview, uint8_t part)
|
||||
case LV_TABVIEW_PART_BG_SCRL:
|
||||
style_dsc_p = lv_obj_get_style(ext->content, LV_PAGE_PART_SCRL);
|
||||
break;
|
||||
case LV_TABVIEW_PART_BTNS_BG:
|
||||
case LV_TABVIEW_PART_TAB_BG:
|
||||
style_dsc_p = lv_obj_get_style(ext->btns, LV_BTNM_PART_BG);
|
||||
break;
|
||||
case LV_TABVIEW_PART_BTNS:
|
||||
case LV_TABVIEW_PART_TAB:
|
||||
style_dsc_p = lv_obj_get_style(ext->btns, LV_BTNM_PART_BTN);
|
||||
break;
|
||||
case LV_TABVIEW_PART_INDIC:
|
||||
@@ -863,17 +852,17 @@ static void refr_btns_size(lv_obj_t * tabview)
|
||||
{
|
||||
lv_tabview_ext_t * ext = lv_obj_get_ext_attr(tabview);
|
||||
|
||||
lv_style_int_t btn_bg_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t btn_bg_right = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_RIGHT);
|
||||
lv_style_int_t btn_bg_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_TOP);
|
||||
lv_style_int_t btn_bg_bottom = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS_BG, LV_STYLE_PAD_BOTTOM);
|
||||
lv_style_int_t btn_bg_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB_BG, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t btn_bg_right = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB_BG, LV_STYLE_PAD_RIGHT);
|
||||
lv_style_int_t btn_bg_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB_BG, LV_STYLE_PAD_TOP);
|
||||
lv_style_int_t btn_bg_bottom = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB_BG, LV_STYLE_PAD_BOTTOM);
|
||||
|
||||
lv_style_int_t btn_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t btn_right = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_RIGHT);
|
||||
lv_style_int_t btn_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_TOP);
|
||||
lv_style_int_t btn_bottom = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_PAD_BOTTOM);
|
||||
lv_style_int_t btn_left = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB, LV_STYLE_PAD_LEFT);
|
||||
lv_style_int_t btn_right = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB, LV_STYLE_PAD_RIGHT);
|
||||
lv_style_int_t btn_top = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB, LV_STYLE_PAD_TOP);
|
||||
lv_style_int_t btn_bottom = lv_obj_get_style_int(tabview, LV_TABVIEW_PART_TAB, LV_STYLE_PAD_BOTTOM);
|
||||
|
||||
const lv_font_t * font = lv_obj_get_style_ptr(tabview, LV_TABVIEW_PART_BTNS, LV_STYLE_FONT);
|
||||
const lv_font_t * font = lv_obj_get_style_ptr(tabview, LV_TABVIEW_PART_TAB, LV_STYLE_FONT);
|
||||
|
||||
/*Set the tabs height/width*/
|
||||
lv_coord_t btns_w;
|
||||
|
||||
@@ -71,8 +71,8 @@ enum {
|
||||
_LV_TABVIEW_PART_VIRTUAL_LAST = _LV_OBJ_PART_VIRTUAL_LAST,
|
||||
|
||||
LV_TABVIEW_PART_BG_SCRL = _LV_OBJ_PART_REAL_LAST,
|
||||
LV_TABVIEW_PART_BTNS,
|
||||
LV_TABVIEW_PART_BTNS_BG,
|
||||
LV_TABVIEW_PART_TAB,
|
||||
LV_TABVIEW_PART_TAB_BG,
|
||||
LV_TABVIEW_PART_INDIC,
|
||||
_LV_TABVIEW_PART_REAL_LAST,
|
||||
};
|
||||
|
||||
@@ -58,6 +58,11 @@ lv_style_t * lv_theme_get_style(lv_theme_style_t name)
|
||||
return act_theme->get_style_cb(name);
|
||||
}
|
||||
|
||||
void lv_theme_apply(lv_obj_t * obj, lv_theme_style_t name)
|
||||
{
|
||||
act_theme->apply_cb(obj, name);
|
||||
}
|
||||
|
||||
|
||||
/**********************
|
||||
* STATIC FUNCTIONS
|
||||
|
||||
@@ -17,6 +17,8 @@ extern "C" {
|
||||
|
||||
#include "../lv_core/lv_style.h"
|
||||
|
||||
#include "../../lvgl.h"
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
@@ -32,6 +34,7 @@ extern "C" {
|
||||
* backgrounds and panels.
|
||||
*/
|
||||
typedef enum {
|
||||
LV_THEME_NONE = 0,
|
||||
LV_THEME_SCR,
|
||||
LV_THEME_SCR_TRANSP,
|
||||
|
||||
@@ -57,15 +60,10 @@ typedef enum {
|
||||
LV_THEME_BTNM_BTN,
|
||||
|
||||
LV_THEME_BAR,
|
||||
LV_THEME_BAR_INDIC,
|
||||
|
||||
LV_THEME_SLIDER,
|
||||
LV_THEME_SLIDER_INDIC,
|
||||
LV_THEME_SLIDER_KNOB,
|
||||
|
||||
LV_THEME_SW,
|
||||
LV_THEME_SW_INDIC,
|
||||
LV_THEME_SW_KNOB,
|
||||
|
||||
LV_THEME_CB,
|
||||
LV_THEME_CB_BULLET,
|
||||
@@ -79,14 +77,8 @@ typedef enum {
|
||||
LV_THEME_ROLLER_SCRL,
|
||||
LV_THEME_ROLLER_SEL,
|
||||
|
||||
LV_THEME_TABVIEW_BG,
|
||||
LV_THEME_TABVIEW_BG_SCRL,
|
||||
LV_THEME_TABVIEW_BTNS,
|
||||
LV_THEME_TABVIEW_BTNS_BG,
|
||||
LV_THEME_TABVIEW_INDIC,
|
||||
LV_THEME_TABVIEW_TAB_BG,
|
||||
LV_THEME_TABVIEW_TAB_SCRL,
|
||||
LV_THEME_TABVIEW_TAB_SCRLBAR,
|
||||
LV_THEME_TABVIEW,
|
||||
LV_THEME_TABVIEW_PAGE,
|
||||
|
||||
LV_THEME_LMETER,
|
||||
|
||||
@@ -133,6 +125,8 @@ typedef enum {
|
||||
|
||||
typedef struct {
|
||||
lv_style_t * (*get_style_cb)(lv_theme_style_t);
|
||||
void (*apply_cb)(lv_obj_t *,lv_theme_style_t);
|
||||
lv_style_t * (*get_style_part_cb)(lv_theme_style_t name, uint8_t part);
|
||||
}lv_theme_t;
|
||||
|
||||
/**********************
|
||||
@@ -154,6 +148,10 @@ lv_theme_t * lv_theme_get_act(void);
|
||||
|
||||
lv_style_t * lv_theme_get_style(lv_theme_style_t name);
|
||||
|
||||
void lv_theme_apply(lv_obj_t * obj, lv_theme_style_t name);
|
||||
|
||||
lv_style_t * lv_theme_get_style_part(lv_theme_style_t name, uint8_t part);
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
#define COLOR_BG lv_color_hex(0x22252a)
|
||||
#define COLOR_PANEL lv_color_hex(0x282b30)
|
||||
#define COLOR_PRIMARY lv_color_hex(0x007aff)
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
@@ -22,6 +25,7 @@
|
||||
/**********************
|
||||
* STATIC PROTOTYPES
|
||||
**********************/
|
||||
void lv_theme_alien_apply(lv_obj_t * obj, lv_theme_style_t name);
|
||||
|
||||
/**********************
|
||||
* STATIC VARIABLES
|
||||
@@ -36,11 +40,16 @@ static lv_style_t btn;
|
||||
static lv_style_t sb;
|
||||
|
||||
#if LV_USE_BAR
|
||||
static lv_style_t bar_bg;
|
||||
static lv_style_t bar_indic;
|
||||
#endif
|
||||
|
||||
#if LV_USE_SLIDER
|
||||
static lv_style_t knob;
|
||||
static lv_style_t slider_knob;
|
||||
#endif
|
||||
|
||||
#if LV_USE_SW
|
||||
static lv_style_t sw_knob;
|
||||
#endif
|
||||
|
||||
#if LV_USE_LMETER
|
||||
@@ -69,6 +78,11 @@ static lv_style_t arc_bg;
|
||||
static lv_style_t calendar_date_nums;
|
||||
#endif
|
||||
|
||||
|
||||
#if LV_USE_TABVIEW
|
||||
static lv_style_t tabview_btns, tabview_btns_bg, tabview_indic;
|
||||
#endif
|
||||
|
||||
#if LV_USE_TABLE
|
||||
static lv_style_t table_cell;
|
||||
#endif
|
||||
@@ -88,17 +102,16 @@ static void basic_init(void)
|
||||
{
|
||||
lv_style_init(&scr);
|
||||
lv_style_set_opa(&scr, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&scr, LV_STYLE_BG_COLOR, lv_color_hex(0x22252a));
|
||||
lv_style_set_color(&scr, LV_STYLE_BG_COLOR, COLOR_BG);
|
||||
lv_style_set_color(&scr, LV_STYLE_TEXT_COLOR , lv_color_hex(0xb8b8b9));
|
||||
|
||||
lv_style_init(&panel);
|
||||
lv_style_set_int(&panel, LV_STYLE_RADIUS, LV_DPI / 25);
|
||||
lv_style_set_opa(&panel, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&panel, LV_STYLE_BG_COLOR, lv_color_hex(0x282b30));
|
||||
lv_style_set_color(&panel, LV_STYLE_BG_COLOR, COLOR_PANEL);
|
||||
lv_style_set_color(&panel, LV_STYLE_BORDER_COLOR, lv_color_hex(0x3a3d42));
|
||||
lv_style_set_int(&panel, LV_STYLE_BORDER_WIDTH, LV_DPI / 50 > 0 ? LV_DPI / 50 : 1);
|
||||
lv_style_set_int(&panel, LV_STYLE_BORDER_SIDE , LV_BORDER_SIDE_TOP);
|
||||
|
||||
lv_style_set_int(&panel, LV_STYLE_PAD_LEFT, LV_DPI / 5);
|
||||
lv_style_set_int(&panel, LV_STYLE_PAD_RIGHT, LV_DPI / 5);
|
||||
lv_style_set_int(&panel, LV_STYLE_PAD_TOP, LV_DPI / 5);
|
||||
@@ -111,17 +124,19 @@ static void basic_init(void)
|
||||
lv_style_init(&btn);
|
||||
lv_style_set_int(&btn, LV_STYLE_RADIUS, LV_RADIUS_CIRCLE);
|
||||
lv_style_set_opa(&btn, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&btn, LV_STYLE_BG_COLOR, lv_color_hex(0x007aff));
|
||||
lv_style_set_color(&btn, LV_STYLE_BG_COLOR, COLOR_PRIMARY);
|
||||
lv_style_set_color(&btn, LV_STYLE_BG_COLOR | LV_STYLE_STATE_PRESSED, lv_color_hex(0x005ec4));
|
||||
lv_style_set_color(&btn, LV_STYLE_BG_COLOR | LV_STYLE_STATE_DISABLED, lv_color_hex(0x2f3237));
|
||||
lv_style_set_color(&btn, LV_STYLE_TEXT_COLOR, lv_color_hex(0xffffff));
|
||||
lv_style_set_color(&btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_PRESSED, lv_color_hex(0xdddddd));
|
||||
lv_style_set_color(&btn, LV_STYLE_TEXT_COLOR| LV_STYLE_STATE_DISABLED, lv_color_hex(0x686b70));
|
||||
lv_style_set_color(&btn, LV_STYLE_IMAGE_RECOLOR, LV_COLOR_WHITE);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_LEFT, LV_DPI / 20);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_RIGHT, LV_DPI / 20);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_TOP, LV_DPI / 20);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_BOTTOM, LV_DPI / 20);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_INNER, LV_DPI / 16);
|
||||
lv_style_set_int(&btn, LV_STYLE_TRANSITION_TIME, 100);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_LEFT, LV_DPI / 5);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_RIGHT, LV_DPI / 5);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_TOP, LV_DPI / 10);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_BOTTOM, LV_DPI / 10);
|
||||
lv_style_set_int(&btn, LV_STYLE_PAD_INNER, LV_DPI / 10);
|
||||
lv_style_set_int(&btn, LV_STYLE_TRANSITION_TIME, 1000);
|
||||
}
|
||||
|
||||
static void cont_init(void)
|
||||
@@ -217,13 +232,17 @@ static void label_init(void)
|
||||
static void bar_init(void)
|
||||
{
|
||||
#if LV_USE_BAR
|
||||
lv_style_init(&bar_bg);
|
||||
lv_style_set_int(&bar_bg, LV_STYLE_RADIUS, LV_RADIUS_CIRCLE);
|
||||
lv_style_set_opa(&bar_bg, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&bar_bg, LV_STYLE_BG_COLOR, COLOR_PANEL);
|
||||
|
||||
lv_style_init(&bar_indic);
|
||||
lv_style_set_opa(&bar_indic, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&bar_indic, LV_STYLE_BG_COLOR, LV_COLOR_MAROON);
|
||||
lv_style_set_int(&bar_indic, LV_STYLE_PAD_TOP, LV_DPI/20);
|
||||
lv_style_set_int(&bar_indic, LV_STYLE_PAD_BOTTOM, LV_DPI/20);
|
||||
lv_style_set_int(&bar_indic, LV_STYLE_PAD_LEFT, LV_DPI/20);
|
||||
lv_style_set_int(&bar_indic, LV_STYLE_PAD_RIGHT, LV_DPI/20);
|
||||
lv_style_set_int(&bar_indic, LV_STYLE_RADIUS, LV_RADIUS_CIRCLE);
|
||||
lv_style_set_color(&bar_indic, LV_STYLE_BG_COLOR, COLOR_PRIMARY);
|
||||
lv_style_set_color(&bar_indic, LV_STYLE_BG_COLOR | LV_STYLE_STATE_DISABLED, lv_color_hex(0x4f5257));
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -251,22 +270,28 @@ static void led_init(void)
|
||||
static void slider_init(void)
|
||||
{
|
||||
#if LV_USE_SLIDER != 0
|
||||
lv_style_init(&knob);
|
||||
lv_style_set_opa(&knob, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&knob, LV_STYLE_BG_COLOR, LV_COLOR_RED);
|
||||
lv_style_set_color(&knob, LV_STYLE_BG_COLOR | LV_STYLE_STATE_CHECKED, LV_COLOR_LIME);
|
||||
lv_style_set_int(&knob, LV_STYLE_PAD_TOP, LV_DPI/20);
|
||||
lv_style_set_int(&knob, LV_STYLE_PAD_BOTTOM, LV_DPI/20);
|
||||
lv_style_set_int(&knob, LV_STYLE_PAD_LEFT, LV_DPI/20);
|
||||
lv_style_set_int(&knob, LV_STYLE_PAD_RIGHT, LV_DPI/20);
|
||||
|
||||
lv_style_init(&slider_knob);
|
||||
lv_style_set_opa(&slider_knob, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&slider_knob, LV_STYLE_BG_COLOR, LV_COLOR_WHITE);
|
||||
lv_style_set_int(&slider_knob, LV_STYLE_RADIUS, LV_RADIUS_CIRCLE);
|
||||
lv_style_set_int(&slider_knob, LV_STYLE_PAD_TOP, LV_DPI/20);
|
||||
lv_style_set_int(&slider_knob, LV_STYLE_PAD_BOTTOM, LV_DPI/20);
|
||||
lv_style_set_int(&slider_knob, LV_STYLE_PAD_LEFT, LV_DPI/20);
|
||||
lv_style_set_int(&slider_knob, LV_STYLE_PAD_RIGHT, LV_DPI/20);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void sw_init(void)
|
||||
{
|
||||
#if LV_USE_SW != 0
|
||||
|
||||
lv_style_init(&sw_knob);
|
||||
lv_style_set_opa(&sw_knob, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&sw_knob, LV_STYLE_BG_COLOR, LV_COLOR_WHITE);
|
||||
lv_style_set_int(&sw_knob, LV_STYLE_RADIUS, LV_RADIUS_CIRCLE);
|
||||
lv_style_set_int(&sw_knob, LV_STYLE_PAD_TOP, - LV_DPI/20);
|
||||
lv_style_set_int(&sw_knob, LV_STYLE_PAD_BOTTOM, - LV_DPI/20);
|
||||
lv_style_set_int(&sw_knob, LV_STYLE_PAD_LEFT, - LV_DPI/20);
|
||||
lv_style_set_int(&sw_knob, LV_STYLE_PAD_RIGHT, - LV_DPI/20);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -468,6 +493,27 @@ static void roller_init(void)
|
||||
static void tabview_init(void)
|
||||
{
|
||||
#if LV_USE_TABVIEW != 0
|
||||
lv_style_init(&tabview_btns_bg);
|
||||
lv_style_set_color(&tabview_btns_bg, LV_STYLE_BORDER_COLOR, lv_color_hex(0x3a3d42));
|
||||
lv_style_set_int(&tabview_btns_bg, LV_STYLE_BORDER_WIDTH, LV_DPI / 30 > 0 ? LV_DPI / 30 : 1);
|
||||
lv_style_set_int(&tabview_btns_bg, LV_STYLE_BORDER_SIDE , LV_BORDER_SIDE_BOTTOM);
|
||||
lv_style_set_color(&tabview_btns_bg, LV_STYLE_TEXT_COLOR, lv_color_hex(0x979a9f));
|
||||
lv_style_set_ptr(&tabview_btns_bg, LV_STYLE_FONT, &lv_font_roboto_16);
|
||||
lv_style_set_color(&tabview_btns_bg, LV_STYLE_IMAGE_RECOLOR, lv_color_hex(0x979a9f));
|
||||
|
||||
|
||||
lv_style_init(&tabview_btns);
|
||||
lv_style_set_opa(&tabview_btns, LV_STYLE_BG_OPA | LV_STYLE_STATE_PRESSED, LV_OPA_COVER);
|
||||
lv_style_set_color(&tabview_btns, LV_STYLE_BG_COLOR | LV_STYLE_STATE_PRESSED, lv_color_hex(0x666666));
|
||||
lv_style_set_color(&tabview_btns, LV_STYLE_TEXT_COLOR | LV_STYLE_STATE_CHECKED, COLOR_PRIMARY);
|
||||
lv_style_set_int(&tabview_btns, LV_STYLE_PAD_TOP, LV_DPI / 5);
|
||||
lv_style_set_int(&tabview_btns, LV_STYLE_PAD_BOTTOM, LV_DPI / 5);
|
||||
|
||||
lv_style_init(&tabview_indic);
|
||||
lv_style_set_opa(&tabview_indic, LV_STYLE_BG_OPA, LV_OPA_COVER);
|
||||
lv_style_set_color(&tabview_indic, LV_STYLE_BG_COLOR, COLOR_PRIMARY);
|
||||
lv_style_set_int(&tabview_indic, LV_STYLE_SIZE, LV_DPI / 20 > 0 ? LV_DPI / 20 : 1);
|
||||
lv_style_set_int(&tabview_indic, LV_STYLE_RADIUS, LV_RADIUS_CIRCLE);
|
||||
|
||||
#endif
|
||||
}
|
||||
@@ -572,6 +618,7 @@ lv_theme_t * lv_theme_alien_init(uint16_t hue, lv_font_t * font)
|
||||
|
||||
|
||||
theme.get_style_cb = lv_theme_alien_get_style;
|
||||
theme.apply_cb = lv_theme_alien_apply;
|
||||
return &theme;
|
||||
}
|
||||
|
||||
@@ -584,6 +631,101 @@ lv_theme_t * lv_theme_alien_get(void)
|
||||
return &theme;
|
||||
}
|
||||
|
||||
|
||||
void lv_theme_alien_apply(lv_obj_t * obj, lv_theme_style_t name)
|
||||
{
|
||||
lv_style_list_t * list;
|
||||
|
||||
switch(name) {
|
||||
case LV_THEME_BTN:
|
||||
list = lv_obj_get_style(obj, LV_BTN_PART_MAIN);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &btn);
|
||||
break;
|
||||
|
||||
case LV_THEME_BAR:
|
||||
list = lv_obj_get_style(obj, LV_BAR_PART_BG);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &bar_bg);
|
||||
|
||||
list = lv_obj_get_style(obj, LV_BAR_PART_INDIC);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &bar_indic);
|
||||
break;
|
||||
|
||||
case LV_THEME_SW:
|
||||
list = lv_obj_get_style(obj, LV_SW_PART_BG);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &bar_bg);
|
||||
|
||||
list = lv_obj_get_style(obj, LV_SW_PART_INDIC);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &bar_indic);
|
||||
|
||||
list = lv_obj_get_style(obj, LV_SW_PART_KNOB);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &sw_knob);
|
||||
break;
|
||||
|
||||
case LV_THEME_SLIDER:
|
||||
list = lv_obj_get_style(obj, LV_SLIDER_PART_BG);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &bar_bg);
|
||||
|
||||
list = lv_obj_get_style(obj, LV_SLIDER_PART_INDIC);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &bar_indic);
|
||||
|
||||
list = lv_obj_get_style(obj, LV_SLIDER_PART_KNOB);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &slider_knob);
|
||||
break;
|
||||
|
||||
#if LV_USE_TABVIEW
|
||||
case LV_THEME_TABVIEW:
|
||||
list = lv_obj_get_style(obj, LV_TABVIEW_PART_BG);
|
||||
lv_style_list_reset(list);
|
||||
list = lv_obj_get_style(obj, LV_TABVIEW_PART_BG_SCRL);
|
||||
lv_style_list_reset(list);
|
||||
list = lv_obj_get_style(obj, LV_TABVIEW_PART_TAB_BG);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &tabview_btns_bg);
|
||||
|
||||
|
||||
list = lv_obj_get_style(obj, LV_TABVIEW_PART_INDIC);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &tabview_indic);
|
||||
|
||||
list = lv_obj_get_style(obj, LV_TABVIEW_PART_TAB);
|
||||
lv_style_list_reset(list);
|
||||
lv_style_list_add_style(list, &tabview_btns);
|
||||
break;
|
||||
|
||||
case LV_THEME_TABVIEW_PAGE:
|
||||
list = lv_obj_get_style(obj, LV_PAGE_PART_BG);
|
||||
lv_style_list_reset(list);
|
||||
list = lv_obj_get_style(obj, LV_PAGE_PART_SCRL);
|
||||
lv_style_list_reset(list);
|
||||
break;
|
||||
|
||||
// case LV_THEME_TABVIEW_BG:
|
||||
// case LV_THEME_TABVIEW_BTNS_BG:
|
||||
// case LV_THEME_TABVIEW_TAB_SCRL:
|
||||
// case LV_THEME_TABVIEW_BG_SCRL:
|
||||
// return NULL;
|
||||
// case LV_THEME_TABVIEW_TAB_BG:
|
||||
// return &scr;
|
||||
// case LV_THEME_TABVIEW_BTNS:
|
||||
// return &btn;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
lv_obj_refresh_style(obj);
|
||||
|
||||
|
||||
}
|
||||
|
||||
lv_style_t * lv_theme_alien_get_style(lv_theme_style_t name)
|
||||
{
|
||||
switch(name) {
|
||||
@@ -593,26 +735,11 @@ lv_style_t * lv_theme_alien_get_style(lv_theme_style_t name)
|
||||
return &transp;
|
||||
case LV_THEME_PANEL:
|
||||
return &panel;
|
||||
case LV_THEME_BTN:
|
||||
return &btn;
|
||||
case LV_THEME_BTNM:
|
||||
return &panel;
|
||||
case LV_THEME_BTNM_BTN:
|
||||
return &btn;
|
||||
#if LV_USE_LMETER
|
||||
case LV_THEME_BAR:
|
||||
return &panel;
|
||||
case LV_THEME_BAR_INDIC:
|
||||
return &bar_indic;
|
||||
#endif
|
||||
#if LV_USE_SLIDER
|
||||
case LV_THEME_SLIDER:
|
||||
return &panel;
|
||||
case LV_THEME_SLIDER_INDIC:
|
||||
return &bar_indic;
|
||||
case LV_THEME_SLIDER_KNOB:
|
||||
return &knob;
|
||||
#endif
|
||||
|
||||
#if LV_USE_CB
|
||||
case LV_THEME_CB:
|
||||
return &panel;
|
||||
@@ -625,19 +752,6 @@ lv_style_t * lv_theme_alien_get_style(lv_theme_style_t name)
|
||||
case LV_THEME_DDLIST_SEL:
|
||||
return &btn;
|
||||
#endif
|
||||
#if LV_USE_TABVIEW
|
||||
case LV_THEME_TABVIEW_BG:
|
||||
case LV_THEME_TABVIEW_BTNS_BG:
|
||||
case LV_THEME_TABVIEW_TAB_SCRL:
|
||||
case LV_THEME_TABVIEW_BG_SCRL:
|
||||
return NULL;
|
||||
case LV_THEME_TABVIEW_INDIC:
|
||||
return &panel;
|
||||
case LV_THEME_TABVIEW_TAB_BG:
|
||||
return &scr;
|
||||
case LV_THEME_TABVIEW_BTNS:
|
||||
return &btn;
|
||||
#endif
|
||||
#if LV_USE_LMETER
|
||||
case LV_THEME_LMETER:
|
||||
return &lmeter;
|
||||
|
||||
@@ -37,6 +37,7 @@ extern "C" {
|
||||
lv_theme_t * lv_theme_alien_init(uint16_t hue, lv_font_t * font);
|
||||
|
||||
lv_theme_t * lv_theme_alien_get(void);
|
||||
lv_style_t * lv_theme_alien_get_style_part(lv_theme_style_t name, uint8_t part);
|
||||
|
||||
lv_style_t * lv_theme_alien_get_style(lv_theme_style_t name);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user