lv_draw_label.h¶
Defines
-
LV_DRAW_LABEL_NO_TXT_SEL¶
Typedefs
-
typedef void (*lv_draw_glyph_cb_t)(lv_draw_task_t *t, lv_draw_glyph_dsc_t *dsc, lv_draw_fill_dsc_t *fill_dsc, const lv_area_t *fill_area)¶
Passed as a parameter to
lv_draw_label_iterate_charactersto draw the characters one by one- Param t:
pointer to a draw task
- Param dsc:
pointer to
lv_draw_glyph_dsc_tto describe the character to draw if NULL don't draw character- Param fill_dsc:
pointer to a fill descriptor to draw a background for the character or underline or strike through if NULL do not fill anything
- Param fill_area:
the area to fill if NULL do not fill anything
Functions
-
void lv_draw_letter_dsc_init(lv_draw_letter_dsc_t *dsc)¶
-
void lv_draw_label_dsc_init(lv_draw_label_dsc_t *dsc)¶
Initialize a label draw descriptor
- Parameters:
dsc – pointer to a draw descriptor
-
lv_draw_label_dsc_t *lv_draw_task_get_label_dsc(lv_draw_task_t *task)¶
Try to get a label draw descriptor from a draw task.
- Parameters:
task – draw task
- Returns:
the task's draw descriptor or NULL if the task is not of type LV_DRAW_TASK_TYPE_LABEL
-
void lv_draw_glyph_dsc_init(lv_draw_glyph_dsc_t *dsc)¶
Initialize a glyph draw descriptor. Used internally.
- Parameters:
dsc – pointer to a draw descriptor
-
void lv_draw_label(lv_layer_t *layer, const lv_draw_label_dsc_t *dsc, const lv_area_t *coords)¶
Create a draw task to render a text
- Parameters:
layer – pointer to a layer
dsc – pointer to draw descriptor
coords – coordinates of the character
-
void lv_draw_character(lv_layer_t *layer, lv_draw_label_dsc_t *dsc, const lv_point_t *point, uint32_t unicode_letter)¶
Create a draw task to render a single character
- Parameters:
layer – pointer to a layer
dsc – pointer to draw descriptor
point – position of the label
unicode_letter – the letter to draw
-
void lv_draw_letter(lv_layer_t *layer, lv_draw_letter_dsc_t *dsc, const lv_point_t *point)¶
Draw a single letter
- Parameters:
layer – pointer to a layer
dsc – pointer to draw descriptor
point – position of the label
-
void lv_draw_label_iterate_characters(lv_draw_task_t *t, const lv_draw_label_dsc_t *dsc, const lv_area_t *coords, lv_draw_glyph_cb_t cb)¶
Should be used during rendering the characters to get the position and other parameters of the characters
- Parameters:
t – pointer to a draw task
dsc – pointer to draw descriptor
coords – coordinates of the label
cb – a callback to call to draw each glyphs one by one
-
void lv_draw_unit_draw_letter(lv_draw_task_t *t, lv_draw_glyph_dsc_t *dsc, const lv_point_t *pos, const lv_font_t *font, uint32_t letter, lv_draw_glyph_cb_t cb)¶
Draw a single letter using the provided draw unit, glyph descriptor, position, font, and callback.
This function is responsible for rendering a single character from a text string, applying the necessary styling described by the glyph descriptor (
dsc). It handles the retrieval of the glyph's description, checks its visibility within the clipping area, and invokes the callback (cb) to render the glyph at the specified position (pos) using the given font (font).- Parameters:
t – Pointer to the drawing task.
dsc – Pointer to the descriptor containing styling for the glyph to be drawn.
pos – Pointer to the point coordinates where the letter should be drawn.
font – Pointer to the font containing the glyph.
letter – The Unicode code point of the letter to be drawn.
cb – Callback function to execute the actual rendering of the glyph.
-
struct lv_draw_label_dsc_t¶
Public Members
-
lv_draw_dsc_base_t base¶
-
const char *text¶
The text to draw
-
lv_point_t text_size¶
The size of the text
-
const lv_font_t *font¶
The font to use. Fallback fonts are also handled.
-
lv_color_t color¶
Color of the text
-
int32_t line_space¶
Extra space between the lines
-
int32_t letter_space¶
Extra space between the characters
-
int32_t ofs_x¶
Offset the text with this value horizontally
-
int32_t ofs_y¶
Offset the text with this value vertically
-
int32_t rotation¶
Rotation of the letters in 0.1 degree unit
-
uint32_t sel_start¶
The first characters index for selection (not byte index).
LV_DRAW_LABEL_NO_TXT_SELfor no selection
-
uint32_t sel_end¶
The last characters's index for selection (not byte index).
LV_DRAW_LABEL_NO_TXT_SELfor no selection
-
lv_color_t sel_color¶
Color of the selected characters
-
lv_color_t sel_bg_color¶
Background color of the selected characters
-
uint32_t text_length¶
The number of characters to render. 0: means render until reaching the
\0termination.
-
lv_text_align_t align¶
The alignment of the text
LV_TEXT_ALIGN_LEFT/RIGHT/CENTER
-
lv_base_dir_t bidi_dir¶
The base direction. Used when type setting Right-to-left (e.g. Arabic) texts
-
lv_opa_t opa¶
Opacity of the text in 0...255 range. LV_OPA_TRANSP, LV_OPA_10, LV_OPA_20, .. LV_OPA_COVER can be used as well
-
lv_opa_t outline_stroke_opa¶
Letter outline stroke opacity
-
lv_text_decor_t decor¶
Text decoration, e.g. underline
-
lv_text_flag_t flag¶
Some flags to control type setting
-
uint8_t text_local¶
1: malloc a buffer and copy
textthere. 0:textwill be valid during rendering.
-
uint8_t text_static¶
Indicate that the text is constant and its pointer can be safely saved e.g. in a cache.
-
uint8_t has_bided¶
1: already executed lv_bidi_process_paragraph. 0: has not been executed lv_bidi_process_paragraph.
-
lv_draw_label_hint_t *hint¶
Pointer to an externally stored struct where some data can be cached to speed up rendering
-
lv_color_t outline_stroke_color¶
-
int32_t outline_stroke_width¶
-
lv_draw_dsc_base_t base¶
-
struct lv_draw_letter_dsc_t¶
Public Members
-
lv_draw_dsc_base_t base¶
-
uint32_t unicode¶
-
const lv_font_t *font¶
-
lv_color_t color¶
-
int32_t rotation¶
-
int32_t scale_x¶
-
int32_t scale_y¶
-
int32_t skew_x¶
-
int32_t skew_y¶
-
lv_point_t pivot¶
-
lv_opa_t opa¶
-
lv_text_decor_t decor¶
-
lv_blend_mode_t blend_mode¶
-
lv_opa_t outline_stroke_opa¶
-
int32_t outline_stroke_width¶
-
lv_color_t outline_stroke_color¶
-
lv_draw_dsc_base_t base¶