Update LVGL to v9.1.0
This commit is contained in:
@@ -1,30 +1,30 @@
|
||||
|
||||
Line wrap, recoloring and scrolling
|
||||
"""""""""""""""""""""""""""""""""""
|
||||
-----------------------------------
|
||||
|
||||
.. lv_example:: widgets/label/lv_example_label_1
|
||||
:language: c
|
||||
|
||||
Text shadow
|
||||
""""""""""""
|
||||
------------
|
||||
|
||||
.. lv_example:: widgets/label/lv_example_label_2
|
||||
:language: c
|
||||
|
||||
Show LTR, RTL and Chinese texts
|
||||
""""""""""""""""""""""""""""""""""""
|
||||
-------------------------------
|
||||
|
||||
.. lv_example:: widgets/label/lv_example_label_3
|
||||
:language: c
|
||||
|
||||
Draw label with gradient color
|
||||
""""""""""""""""""""""""""""""""""""
|
||||
------------------------------
|
||||
|
||||
.. lv_example:: widgets/label/lv_example_label_4
|
||||
:language: c
|
||||
|
||||
Customize circular scrolling animation
|
||||
""""""""""""""""""""""""""""""""""""
|
||||
--------------------------------------
|
||||
|
||||
.. lv_example:: widgets/label/lv_example_label_5
|
||||
:language: c
|
||||
|
||||
@@ -6,16 +6,14 @@
|
||||
*/
|
||||
void lv_example_label_1(void)
|
||||
{
|
||||
lv_obj_t * label1 = lv_label_create(lv_scr_act());
|
||||
lv_obj_t * label1 = lv_label_create(lv_screen_active());
|
||||
lv_label_set_long_mode(label1, LV_LABEL_LONG_WRAP); /*Break the long lines*/
|
||||
lv_label_set_recolor(label1, true); /*Enable re-coloring by commands in the text*/
|
||||
lv_label_set_text(label1, "#0000ff Re-color# #ff00ff words# #ff0000 of a# label, align the lines to the center "
|
||||
"and wrap long text automatically.");
|
||||
lv_label_set_text(label1, "Recolor is not supported for v9 now.");
|
||||
lv_obj_set_width(label1, 150); /*Set smaller width to make the lines wrap*/
|
||||
lv_obj_set_style_text_align(label1, LV_TEXT_ALIGN_CENTER, 0);
|
||||
lv_obj_align(label1, LV_ALIGN_CENTER, 0, -40);
|
||||
|
||||
lv_obj_t * label2 = lv_label_create(lv_scr_act());
|
||||
lv_obj_t * label2 = lv_label_create(lv_screen_active());
|
||||
lv_label_set_long_mode(label2, LV_LABEL_LONG_SCROLL_CIRCULAR); /*Circular scroll*/
|
||||
lv_obj_set_width(label2, 150);
|
||||
lv_label_set_text(label2, "It is a circularly scrolling text. ");
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#
|
||||
# Show line wrap, re-color, line align and text scrolling.
|
||||
#
|
||||
label1 = lv.label(lv.scr_act())
|
||||
label1.set_long_mode(lv.label.LONG.WRAP) # Break the long lines*/
|
||||
label1.set_recolor(True) # Enable re-coloring by commands in the text
|
||||
label1.set_text("#0000ff Re-color# #ff00ff words# #ff0000 of a# label, align the lines to the center"
|
||||
"and wrap long text automatically.")
|
||||
label1.set_width(150) # Set smaller width to make the lines wrap
|
||||
label1.set_style_text_align(lv.ALIGN.CENTER, 0)
|
||||
label1.align(lv.ALIGN.CENTER, 0, -40)
|
||||
|
||||
|
||||
label2 = lv.label(lv.scr_act())
|
||||
label2.set_long_mode(lv.label.LONG.SCROLL_CIRCULAR) # Circular scroll
|
||||
label2.set_width(150)
|
||||
label2.set_text("It is a circularly scrolling text. ")
|
||||
label2.align(lv.ALIGN.CENTER, 0, 40)
|
||||
|
||||
@@ -13,11 +13,11 @@ void lv_example_label_2(void)
|
||||
lv_style_set_text_color(&style_shadow, lv_color_black());
|
||||
|
||||
/*Create a label for the shadow first (it's in the background)*/
|
||||
lv_obj_t * shadow_label = lv_label_create(lv_scr_act());
|
||||
lv_obj_t * shadow_label = lv_label_create(lv_screen_active());
|
||||
lv_obj_add_style(shadow_label, &style_shadow, 0);
|
||||
|
||||
/*Create the main label*/
|
||||
lv_obj_t * main_label = lv_label_create(lv_scr_act());
|
||||
lv_obj_t * main_label = lv_label_create(lv_screen_active());
|
||||
lv_label_set_text(main_label, "A simple method to create\n"
|
||||
"shadows on a text.\n"
|
||||
"It even works with\n\n"
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
#
|
||||
# Create a fake text shadow
|
||||
#
|
||||
|
||||
# Create a style for the shadow
|
||||
style_shadow = lv.style_t()
|
||||
style_shadow.init()
|
||||
style_shadow.set_text_opa(lv.OPA._30)
|
||||
style_shadow.set_text_color(lv.color_black())
|
||||
|
||||
# Create a label for the shadow first (it's in the background)
|
||||
shadow_label = lv.label(lv.scr_act())
|
||||
shadow_label.add_style(style_shadow, 0)
|
||||
|
||||
# Create the main label
|
||||
main_label = lv.label(lv.scr_act())
|
||||
main_label.set_text("A simple method to create\n"
|
||||
"shadows on a text.\n"
|
||||
"It even works with\n\n"
|
||||
"newlines and spaces.")
|
||||
|
||||
# Set the same text for the shadow label
|
||||
shadow_label.set_text(lv.label.get_text(main_label))
|
||||
|
||||
# Position the main label
|
||||
main_label.align(lv.ALIGN.CENTER, 0, 0)
|
||||
|
||||
# Shift the second label down and to the right by 2 pixel
|
||||
shadow_label.align_to(main_label, lv.ALIGN.TOP_LEFT, 2, 2)
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
*/
|
||||
void lv_example_label_3(void)
|
||||
{
|
||||
lv_obj_t * ltr_label = lv_label_create(lv_scr_act());
|
||||
lv_obj_t * ltr_label = lv_label_create(lv_screen_active());
|
||||
lv_label_set_text(ltr_label, "In modern terminology, a microcontroller is similar to a system on a chip (SoC).");
|
||||
lv_obj_set_style_text_font(ltr_label, &lv_font_montserrat_16, 0);
|
||||
lv_obj_set_width(ltr_label, 310);
|
||||
lv_obj_align(ltr_label, LV_ALIGN_TOP_LEFT, 5, 5);
|
||||
|
||||
lv_obj_t * rtl_label = lv_label_create(lv_scr_act());
|
||||
lv_obj_t * rtl_label = lv_label_create(lv_screen_active());
|
||||
lv_label_set_text(rtl_label,
|
||||
"מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).");
|
||||
lv_obj_set_style_base_dir(rtl_label, LV_BASE_DIR_RTL, 0);
|
||||
@@ -20,7 +20,7 @@ void lv_example_label_3(void)
|
||||
lv_obj_set_width(rtl_label, 310);
|
||||
lv_obj_align(rtl_label, LV_ALIGN_LEFT_MID, 5, 0);
|
||||
|
||||
lv_obj_t * cz_label = lv_label_create(lv_scr_act());
|
||||
lv_obj_t * cz_label = lv_label_create(lv_screen_active());
|
||||
lv_label_set_text(cz_label,
|
||||
"嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。");
|
||||
lv_obj_set_style_text_font(cz_label, &lv_font_simsun_16_cjk, 0);
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
import fs_driver
|
||||
#
|
||||
# Show mixed LTR, RTL and Chinese label
|
||||
#
|
||||
|
||||
ltr_label = lv.label(lv.scr_act())
|
||||
ltr_label.set_text("In modern terminology, a microcontroller is similar to a system on a chip (SoC).")
|
||||
# ltr_label.set_style_text_font(ltr_label, &lv_font_montserrat_16, 0);
|
||||
|
||||
fs_drv = lv.fs_drv_t()
|
||||
fs_driver.fs_register(fs_drv, 'S')
|
||||
|
||||
try:
|
||||
ltr_label.set_style_text_font(ltr_label, lv.font_montserrat_16, 0)
|
||||
except:
|
||||
font_montserrat_16 = lv.font_load("S:../../assets/font/montserrat-16.fnt")
|
||||
ltr_label.set_style_text_font(font_montserrat_16, 0)
|
||||
|
||||
ltr_label.set_width(310)
|
||||
ltr_label.align(lv.ALIGN.TOP_LEFT, 5, 5)
|
||||
|
||||
rtl_label = lv.label(lv.scr_act())
|
||||
rtl_label.set_text("מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).")
|
||||
rtl_label.set_style_base_dir(lv.BASE_DIR.RTL, 0)
|
||||
rtl_label.set_style_text_font(lv.font_dejavu_16_persian_hebrew, 0)
|
||||
rtl_label.set_width(310)
|
||||
rtl_label.align(lv.ALIGN.LEFT_MID, 5, 0)
|
||||
|
||||
font_simsun_16_cjk = lv.font_load("S:../../assets/font/lv_font_simsun_16_cjk.fnt")
|
||||
|
||||
cz_label = lv.label(lv.scr_act())
|
||||
cz_label.set_style_text_font(font_simsun_16_cjk, 0)
|
||||
cz_label.set_text("嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。")
|
||||
cz_label.set_width(310)
|
||||
cz_label.align(lv.ALIGN.BOTTOM_LEFT, 5, -5)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "../../lv_examples.h"
|
||||
#if LV_USE_LABEL && LV_USE_CANVAS && LV_BUILD_EXAMPLES && LV_DRAW_COMPLEX
|
||||
//TODO
|
||||
#if LV_USE_LABEL && LV_USE_CANVAS && LV_BUILD_EXAMPLES && LV_DRAW_SW_COMPLEX && 0
|
||||
|
||||
#define MASK_WIDTH 100
|
||||
#define MASK_HEIGHT 45
|
||||
@@ -32,11 +33,11 @@ static void add_mask_event_cb(lv_event_t * e)
|
||||
void lv_example_label_4(void)
|
||||
{
|
||||
/* Create the mask of a text by drawing it to a canvas*/
|
||||
static lv_opa_t mask_map[MASK_WIDTH * MASK_HEIGHT];
|
||||
static lv_color_t mask_map[MASK_WIDTH * MASK_HEIGHT];
|
||||
|
||||
/*Create a "8 bit alpha" canvas and clear it*/
|
||||
lv_obj_t * canvas = lv_canvas_create(lv_scr_act());
|
||||
lv_canvas_set_buffer(canvas, mask_map, MASK_WIDTH, MASK_HEIGHT, LV_IMG_CF_ALPHA_8BIT);
|
||||
lv_obj_t * canvas = lv_canvas_create(lv_screen_active());
|
||||
lv_canvas_set_buffer(canvas, mask_map, MASK_WIDTH, MASK_HEIGHT, LV_COLOR_FORMAT_NATIVE);
|
||||
lv_canvas_fill_bg(canvas, lv_color_black(), LV_OPA_TRANSP);
|
||||
|
||||
/*Draw a label to the canvas. The result "image" will be used as mask*/
|
||||
@@ -44,14 +45,23 @@ void lv_example_label_4(void)
|
||||
lv_draw_label_dsc_init(&label_dsc);
|
||||
label_dsc.color = lv_color_white();
|
||||
label_dsc.align = LV_TEXT_ALIGN_CENTER;
|
||||
lv_canvas_draw_text(canvas, 5, 5, MASK_WIDTH, &label_dsc, "Text with gradient");
|
||||
label_dsc.text = "Text with gradient";
|
||||
lv_canvas_draw_text(canvas, 5, 5, MASK_WIDTH, &label_dsc);
|
||||
|
||||
/*The mask is reads the canvas is not required anymore*/
|
||||
lv_obj_del(canvas);
|
||||
lv_obj_delete(canvas);
|
||||
|
||||
/*Convert the mask to A8*/
|
||||
uint32_t i;
|
||||
uint8_t * mask8 = (uint8_t *) mask_map;
|
||||
lv_color_t * mask_c = mask_map;
|
||||
for(i = 0; i < MASK_WIDTH * MASK_HEIGHT; i++) {
|
||||
mask8[i] = lv_color_brightness(mask_c[i]);
|
||||
}
|
||||
|
||||
/* Create an object from where the text will be masked out.
|
||||
* Now it's a rectangle with a gradient but it could be an image too*/
|
||||
lv_obj_t * grad = lv_obj_create(lv_scr_act());
|
||||
lv_obj_t * grad = lv_obj_create(lv_screen_active());
|
||||
lv_obj_set_size(grad, MASK_WIDTH, MASK_HEIGHT);
|
||||
lv_obj_center(grad);
|
||||
lv_obj_set_style_bg_color(grad, lv_color_hex(0xff0000), 0);
|
||||
|
||||
@@ -19,7 +19,7 @@ void lv_example_label_5(void)
|
||||
lv_style_init(&label_style);
|
||||
lv_style_set_anim(&label_style, &animation_template);
|
||||
|
||||
lv_obj_t * label1 = lv_label_create(lv_scr_act());
|
||||
lv_obj_t * label1 = lv_label_create(lv_screen_active());
|
||||
lv_label_set_long_mode(label1, LV_LABEL_LONG_SCROLL_CIRCULAR); /*Circular scroll*/
|
||||
lv_obj_set_width(label1, 150);
|
||||
lv_label_set_text(label1, "It is a circularly scrolling text. ");
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Show customizing the circular scrolling animation of a label with `LV_LABEL_LONG_SCROLL_CIRCULAR` long mode.
|
||||
#
|
||||
|
||||
label1 = lv.label(lv.scr_act())
|
||||
label1.set_long_mode(lv.label.LONG.SCROLL_CIRCULAR) # Circular scroll
|
||||
label1.set_width(150)
|
||||
label1.set_text("It is a circularly scrolling text. ")
|
||||
label1.align(lv.ALIGN.CENTER, 0, 40)
|
||||
|
||||
Reference in New Issue
Block a user