lv_bidi_private.h
Functions
-
void lv_bidi_process(const char *str_in, char *str_out, lv_base_dir_t base_dir)
Convert a text to get the characters in the correct visual order according to Unicode Bidirectional Algorithm
- Parameters:
str_in – the text to process
str_out – store the result here. Has the be
strlen(str_in)
lengthbase_dir –
LV_BASE_DIR_LTR
orLV_BASE_DIR_RTL
-
lv_base_dir_t lv_bidi_detect_base_dir(const char *txt)
Auto-detect the direction of a text based on the first strong character
- Parameters:
txt – the text to process
- Returns:
LV_BASE_DIR_LTR
orLV_BASE_DIR_RTL
-
uint16_t lv_bidi_get_logical_pos(const char *str_in, char **bidi_txt, uint32_t len, lv_base_dir_t base_dir, uint32_t visual_pos, bool *is_rtl)
Get the logical position of a character in a line
- Parameters:
str_in – the input string. Can be only one line.
bidi_txt – internally the text is bidi processed which buffer can be get here. If not required anymore has to freed with
lv_free()
Can beNULL
is unusedlen – length of the line in character count
base_dir – base direction of the text:
LV_BASE_DIR_LTR
orLV_BASE_DIR_RTL
visual_pos – the visual character position which logical position should be get
is_rtl – tell the char at
visual_pos
is RTL or LTR context
- Returns:
the logical character position
-
uint16_t lv_bidi_get_visual_pos(const char *str_in, char **bidi_txt, uint16_t len, lv_base_dir_t base_dir, uint32_t logical_pos, bool *is_rtl)
Get the visual position of a character in a line
- Parameters:
str_in – the input string. Can be only one line.
bidi_txt – internally the text is bidi processed which buffer can be get here. If not required anymore has to freed with
lv_free()
Can beNULL
is unusedlen – length of the line in character count
base_dir – base direction of the text:
LV_BASE_DIR_LTR
orLV_BASE_DIR_RTL
logical_pos – the logical character position which visual position should be get
is_rtl – tell the char at
logical_pos
is RTL or LTR context
- Returns:
the visual character position
-
void lv_bidi_process_paragraph(const char *str_in, char *str_out, uint32_t len, lv_base_dir_t base_dir, uint16_t *pos_conv_out, uint16_t pos_conv_len)
Bidi process a paragraph of text
- Parameters:
str_in – the string to process
str_out – store the result here
len – length of the text
base_dir – base dir of the text
pos_conv_out – an
uint16_t
array to store the related logical position of the character. Can beNULL
is unusedpos_conv_len – length of
pos_conv_out
in element count