1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-28 07:03:00 +08:00

chore(lv_label): remove codes for recolor feature (#4766)

This commit is contained in:
Benign X 2023-11-08 23:25:54 +08:00 committed by GitHub
parent fa17aae81c
commit a5f6e2761f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 7 additions and 74 deletions

View File

@ -8,9 +8,7 @@ void lv_example_label_1(void)
{
lv_obj_t * label1 = lv_label_create(lv_screen_active());
lv_label_set_long_mode(label1, LV_LABEL_LONG_WRAP); /*Break the long lines*/
lv_label_set_recolor(label1, true); /*Enable re-coloring by commands in the text*/
lv_label_set_text(label1, "#0000ff Re-color# #ff00ff words# #ff0000 of a# label, align the lines to the center "
"and wrap long text automatically.");
lv_label_set_text(label1, "Recolor is not supported for v9 now.");
lv_obj_set_width(label1, 150); /*Set smaller width to make the lines wrap*/
lv_obj_set_style_text_align(label1, LV_TEXT_ALIGN_CENTER, 0);
lv_obj_align(label1, LV_ALIGN_CENTER, 0, -40);

View File

@ -8,9 +8,7 @@ import display_driver
#
label1 = lv.label(lv.screen_active())
label1.set_long_mode(lv.label.LONG.WRAP) # Break the long lines*/
label1.set_recolor(True) # Enable re-coloring by commands in the text
label1.set_text("#0000ff Re-color# #ff00ff words# #ff0000 of a# label, align the lines to the center "
"and wrap long text automatically.")
label1.set_text("Recolor is not supported for v9 now.")
label1.set_width(150) # Set smaller width to make the lines wrap
label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
label1.align(lv.ALIGN.CENTER, 0, -40)

View File

@ -39,9 +39,8 @@ extern "C" {
enum _lv_text_flag_t {
LV_TEXT_FLAG_NONE = 0x00,
LV_TEXT_FLAG_RECOLOR = 0x01, /**< Enable parsing of recolor command*/
LV_TEXT_FLAG_EXPAND = 0x02, /**< Ignore max-width to avoid automatic word wrapping*/
LV_TEXT_FLAG_FIT = 0x04, /**< Max-width is already equal to the longest line. (Used to skip some calculation)*/
LV_TEXT_FLAG_EXPAND = 0x01, /**< Ignore max-width to avoid automatic word wrapping*/
LV_TEXT_FLAG_FIT = 0x02, /**< Max-width is already equal to the longest line. (Used to skip some calculation)*/
};
#ifdef DOXYGEN

View File

@ -46,7 +46,6 @@ static bool button_is_inactive(lv_buttonmatrix_ctrl_t ctrl_bits);
static bool button_is_click_trig(lv_buttonmatrix_ctrl_t ctrl_bits);
static bool button_is_popover(lv_buttonmatrix_ctrl_t ctrl_bits);
static bool button_is_checkable(lv_buttonmatrix_ctrl_t ctrl_bits);
static bool button_is_recolor(lv_buttonmatrix_ctrl_t ctrl_bits);
static bool button_get_checked(lv_buttonmatrix_ctrl_t ctrl_bits);
static uint32_t get_button_from_point(lv_obj_t * obj, lv_point_t * p);
static void allocate_button_areas_and_controls(const lv_obj_t * obj, const char ** map);
@ -750,10 +749,6 @@ static void draw_main(lv_event_t * e)
draw_rect_dsc_act.base.id1 = btn_i;
bool recolor = button_is_recolor(btnm->ctrl_bits[btn_i]);
if(recolor) draw_label_dsc_act.flag |= LV_TEXT_FLAG_RECOLOR;
else draw_label_dsc_act.flag &= ~LV_TEXT_FLAG_RECOLOR;
/*Remove borders on the edges if `LV_BORDER_SIDE_INTERNAL`*/
if(draw_rect_dsc_act.border_side & LV_BORDER_SIDE_INTERNAL) {
draw_rect_dsc_act.border_side = LV_BORDER_SIDE_FULL;
@ -907,10 +902,6 @@ static bool button_get_checked(lv_buttonmatrix_ctrl_t ctrl_bits)
return ctrl_bits & LV_BUTTONMATRIX_CTRL_CHECKED;
}
static bool button_is_recolor(lv_buttonmatrix_ctrl_t ctrl_bits)
{
return ctrl_bits & LV_BUTTONMATRIX_CTRL_RECOLOR;
}
/**
* Gives the button id of a button under a given point
* @param obj pointer to a button matrix object

View File

@ -40,9 +40,9 @@ enum _lv_buttonmatrix_ctrl_t {
LV_BUTTONMATRIX_CTRL_CHECKED = 0x0100, /**< Button is currently toggled (e.g. checked).*/
LV_BUTTONMATRIX_CTRL_CLICK_TRIG = 0x0200, /**< 1: Send LV_EVENT_VALUE_CHANGE on CLICK, 0: Send LV_EVENT_VALUE_CHANGE on PRESS*/
LV_BUTTONMATRIX_CTRL_POPOVER = 0x0400, /**< Show a popover when pressing this key*/
LV_BUTTONMATRIX_CTRL_RECOLOR = 0x0800, /**< Enable text recoloring with `#color`*/
_LV_BUTTONMATRIX_CTRL_RESERVED_1 = 0x1000, /**< Reserved for later use*/
_LV_BUTTONMATRIX_CTRL_RESERVED_2 = 0x2000, /**< Reserved for later use*/
_LV_BUTTONMATRIX_CTRL_RESERVED_1 = 0x0800, /**< Reserved for later use*/
_LV_BUTTONMATRIX_CTRL_RESERVED_2 = 0x1000, /**< Reserved for later use*/
_LV_BUTTONMATRIX_CTRL_RESERVED_3 = 0x2000, /**< Reserved for later use*/
LV_BUTTONMATRIX_CTRL_CUSTOM_1 = 0x4000, /**< Custom free to use flag*/
LV_BUTTONMATRIX_CTRL_CUSTOM_2 = 0x8000, /**< Custom free to use flag*/
};

View File

@ -205,19 +205,6 @@ void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode)
lv_label_refr_text(obj);
}
void lv_label_set_recolor(lv_obj_t * obj, bool en)
{
LV_ASSERT_OBJ(obj, MY_CLASS);
lv_label_t * label = (lv_label_t *)obj;
if(label->recolor == en) return;
label->recolor = en ? 1 : 0;
/*Refresh the text because the potential color codes in text needs to be hidden or revealed*/
lv_label_refr_text(obj);
}
void lv_label_set_text_selection_start(lv_obj_t * obj, uint32_t index)
{
LV_ASSERT_OBJ(obj, MY_CLASS);
@ -264,14 +251,6 @@ lv_label_long_mode_t lv_label_get_long_mode(const lv_obj_t * obj)
return label->long_mode;
}
bool lv_label_get_recolor(const lv_obj_t * obj)
{
LV_ASSERT_OBJ(obj, MY_CLASS);
lv_label_t * label = (lv_label_t *)obj;
return label->recolor;
}
void lv_label_get_letter_pos(const lv_obj_t * obj, uint32_t char_id, lv_point_t * pos)
{
LV_ASSERT_OBJ(obj, MY_CLASS);
@ -641,7 +620,6 @@ static void lv_label_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
label->text = NULL;
label->static_txt = 0;
label->recolor = 0;
label->dot_end = LV_LABEL_DOT_END_INV;
label->long_mode = LV_LABEL_LONG_WRAP;
label->offset.x = 0;
@ -709,7 +687,6 @@ static void lv_label_event(const lv_obj_class_t * class_p, lv_event_t * e)
int32_t letter_space = lv_obj_get_style_text_letter_space(obj, LV_PART_MAIN);
int32_t line_space = lv_obj_get_style_text_line_space(obj, LV_PART_MAIN);
lv_text_flag_t flag = LV_TEXT_FLAG_NONE;
if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR;
if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND;
int32_t w = lv_obj_get_content_width(obj);
@ -740,7 +717,6 @@ static void draw_main(lv_event_t * e)
lv_obj_get_content_coords(obj, &txt_coords);
lv_text_flag_t flag = LV_TEXT_FLAG_NONE;
if(label->recolor) flag |= LV_TEXT_FLAG_RECOLOR;
if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND;
if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT_FLAG_FIT;
@ -876,7 +852,6 @@ static void lv_label_refr_text(lv_obj_t * obj)
/*Calc. the height and longest line*/
lv_point_t size;
lv_text_flag_t flag = LV_TEXT_FLAG_NONE;
if(label->recolor) flag |= LV_TEXT_FLAG_RECOLOR;
if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND;
if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT_FLAG_FIT;
@ -1270,7 +1245,6 @@ static lv_text_flag_t get_label_flags(lv_label_t * label)
{
lv_text_flag_t flag = LV_TEXT_FLAG_NONE;
if(label->recolor) flag |= LV_TEXT_FLAG_RECOLOR;
if(label->expand) flag |= LV_TEXT_FLAG_EXPAND;
return flag;

View File

@ -83,7 +83,6 @@ typedef struct {
lv_point_t offset; /*Text draw position offset*/
lv_label_long_mode_t long_mode : 3; /*Determine what to do with the long texts*/
uint8_t static_txt : 1; /*Flag to indicate the text is static*/
uint8_t recolor : 1; /*Enable in-line letter re-coloring*/
uint8_t expand : 1; /*Ignore real width (used by the library with LV_LABEL_LONG_SCROLL)*/
uint8_t dot_tmp_alloc : 1; /*1: dot is allocated, 0: dot directly holds up to 4 chars*/
uint8_t invalid_size_cache : 1; /*1: Recalculate size and update cache*/
@ -137,14 +136,6 @@ void lv_label_set_text_static(lv_obj_t * obj, const char * text);
*/
void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode);
/**
* Enable the recoloring by in-line commands
* @param obj pointer to a label object
* @param en true: enable recoloring, false: disable
* @example "This is a #ff0000 red# word"
*/
void lv_label_set_recolor(lv_obj_t * obj, bool en);
/**
* Set where text selection should start
* @param obj pointer to a label object
@ -177,13 +168,6 @@ char * lv_label_get_text(const lv_obj_t * obj);
*/
lv_label_long_mode_t lv_label_get_long_mode(const lv_obj_t * obj);
/**
* Get the recoloring attribute
* @param obj pointer to a label object
* @return true: recoloring is enabled, false: disable
*/
bool lv_label_get_recolor(const lv_obj_t * obj);
/**
* Get the relative x and y coordinates of a letter
* @param obj pointer to a label object

View File

@ -492,7 +492,6 @@ static void draw_main(lv_event_t * e)
area_ok = _lv_area_intersect(&mask_sel, &layer->clip_area, &sel_area);
if(area_ok) {
lv_obj_t * label = get_label(obj);
if(lv_label_get_recolor(label)) label_dsc.flag |= LV_TEXT_FLAG_RECOLOR;
/*Get the size of the "selected text"*/
lv_point_t res_p;
@ -546,7 +545,6 @@ static void draw_label(lv_event_t * e)
lv_draw_label_dsc_t label_draw_dsc;
lv_draw_label_dsc_init(&label_draw_dsc);
lv_obj_init_draw_label_dsc(roller, LV_PART_MAIN, &label_draw_dsc);
if(lv_label_get_recolor(label_obj)) label_draw_dsc.flag |= LV_TEXT_FLAG_RECOLOR;
lv_layer_t * layer = lv_event_get_layer(e);

View File

@ -42,15 +42,6 @@ void test_label_creation(void)
TEST_ASSERT_EQUAL(lv_label_get_long_mode(label), LV_LABEL_LONG_WRAP);
}
void test_label_recolor(void)
{
lv_label_set_recolor(label, true);
TEST_ASSERT(lv_label_get_recolor(label));
lv_label_set_recolor(label, false);
TEST_ASSERT_FALSE(lv_label_get_recolor(label));
}
void test_label_set_text(void)
{
const char * new_text = "Hello world";