mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-21 06:53:01 +08:00
72 lines
2.1 KiB
C
72 lines
2.1 KiB
C
/**
|
|
* @file lv_draw_label.h
|
|
*
|
|
*/
|
|
|
|
#ifndef LV_DRAW_LABEL_H
|
|
#define LV_DRAW_LABEL_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*********************
|
|
* INCLUDES
|
|
*********************/
|
|
#include "lv_draw.h"
|
|
|
|
/*********************
|
|
* DEFINES
|
|
*********************/
|
|
|
|
/**********************
|
|
* TYPEDEFS
|
|
**********************/
|
|
|
|
/** 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 struct {
|
|
/** Index of the line at `y` coordinate*/
|
|
int32_t line_start;
|
|
|
|
/** Give the `y` coordinate of the first letter at `line start` index. Relative to the label's coordinates*/
|
|
int32_t 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 coord_y;
|
|
}lv_draw_label_hint_t;
|
|
|
|
/**********************
|
|
* GLOBAL PROTOTYPES
|
|
**********************/
|
|
|
|
/**
|
|
* Write a text
|
|
* @param coords coordinates of the label
|
|
* @param mask the label will be drawn only in this area
|
|
* @param style pointer to a style
|
|
* @param opa_scale scale down all opacities by the factor
|
|
* @param txt 0 terminated text to write
|
|
* @param flag settings for the text from 'txt_flag_t' enum
|
|
* @param offset text offset in x and y direction (NULL if unused)
|
|
* @param sel_start start index of selected area (`LV_LABEL_TXT_SEL_OFF` if none)
|
|
* @param sel_end end index of selected area (`LV_LABEL_TXT_SEL_OFF` if none)
|
|
*/
|
|
void lv_draw_label(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style, lv_opa_t opa_scale,
|
|
const char * txt, lv_txt_flag_t flag, lv_point_t * offset, uint16_t sel_start, uint16_t sel_end,
|
|
lv_draw_label_hint_t * hint);
|
|
|
|
/**********************
|
|
* MACROS
|
|
**********************/
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /*LV_DRAW_LABEL_H*/
|