10.1_demo/lvgl/examples/widgets/label/lv_example_label_6.c

36 lines
1.1 KiB
C
Executable File

#include "../../lv_examples.h"
#if LV_USE_LABEL && LV_BUILD_EXAMPLES && LV_FONT_MONTSERRAT_20
static bool fix_w_get_glyph_dsc(const lv_font_t * font, lv_font_glyph_dsc_t * dsc, uint32_t letter,
uint32_t letter_next)
{
bool ret = lv_font_get_glyph_dsc_fmt_txt(font, dsc, letter, letter_next);
if(!ret) return false;
/* Set a fixed width */
dsc->adv_w = 20;
dsc->ofs_x = (dsc->adv_w - dsc->box_w) / 2;
return true;
}
void lv_example_label_6(void)
{
/* Clone the original font and override its behavior */
static lv_font_t mono_font;
mono_font = lv_font_montserrat_20;
mono_font.get_glyph_dsc = fix_w_get_glyph_dsc;
/* Create a label with normal font */
lv_obj_t * label1 = lv_label_create(lv_screen_active());
lv_obj_set_style_text_font(label1, &lv_font_montserrat_20, 0);
lv_label_set_text(label1, "0123.Wabc");
/* Create a label with fixed-width glyph descriptor override */
lv_obj_t * label2 = lv_label_create(lv_screen_active());
lv_obj_set_y(label2, 30);
lv_obj_set_style_text_font(label2, &mono_font, 0);
lv_label_set_text(label2, "0123.Wabc");
}
#endif