lv_draw_label.h
Defines
-
LV_DRAW_LABEL_NO_TXT_SEL
Typedefs
-
typedef struct _lv_draw_label_hint_t lv_draw_label_hint_t
Store some info to speed up drawing of very large texts It takes a lot of time to get the first visible character because all the previous characters needs to be checked to calculate the positions. This structure stores an earlier (e.g. at -1000 px) coordinate and the index of that line. Therefore the calculations can start from here.
-
typedef void (*lv_draw_glyph_cb_t)(lv_draw_unit_t *draw_unit, 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_characters
to draw the characters one by one- Param draw_unit:
pointer to a draw unit
- Param dsc:
pointer to
lv_draw_glyph_dsc_t
to 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_label_dsc_init(lv_draw_label_dsc_t *dsc)
Initialize a label draw descriptor
- 参数:
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.
- 参数:
task -- draw task
- 返回:
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.
- 参数:
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)
Crate a draw task to render a text
- 参数:
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)
Crate a draw task to render a single character
- 参数:
layer -- pointer to a layer
dsc -- pointer to draw descriptor
point -- position of the label
unicode_letter -- the letter to draw
-
void lv_draw_label_iterate_characters(lv_draw_unit_t *draw_unit, 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
- 参数:
draw_unit -- pointer to a draw unit
dsc -- pointer to draw descriptor
coords -- coordinates of the label
cb -- a callback to call to draw each glyphs one by one
-
struct _lv_draw_label_hint_t
- #include <lv_draw_label.h>
Store some info to speed up drawing of very large texts It takes a lot of time to get the first visible character because all the previous characters needs to be checked to calculate the positions. This structure stores an earlier (e.g. at -1000 px) coordinate and the index of that line. Therefore the calculations can start from here.
Public Members
-
int32_t line_start
Index of the line at
y
coordinate
-
int32_t y
Give the
y
coordinate of the first letter atline start
index. Relative to the label's coordinates
-
int32_t coord_y
The 'y1' coordinate of the label when the hint was saved. Used to invalidate the hint if the label has moved too much.
-
int32_t line_start
-
struct lv_draw_label_dsc_t
Public Members
-
lv_draw_dsc_base_t base
-
const char *text
-
uint32_t sel_start
-
uint32_t sel_end
-
lv_color_t color
-
lv_color_t sel_color
-
lv_color_t sel_bg_color
-
int32_t line_space
-
int32_t letter_space
-
int32_t ofs_x
-
int32_t ofs_y
-
lv_base_dir_t bidi_dir
-
lv_text_align_t align
-
lv_text_flag_t flag
-
lv_text_decor_t decor
-
lv_blend_mode_t blend_mode
-
uint8_t text_local
< 1: malloc buffer and copy
text
there. 0:text
is const and it's pointer will be valid during rendering.
-
lv_draw_label_hint_t *hint
-
lv_draw_dsc_base_t base
-
struct lv_draw_glyph_dsc_t
Public Members
-
void *glyph_data
-
lv_font_glyph_format_t format
-
const lv_font_glyph_dsc_t *g
-
lv_color_t color
-
lv_draw_buf_t *_draw_buf
-
void *glyph_data