Changelog¶
v8.1.0 10 November 2021¶
Overview¶
v8.1 is minor release so besides many fixes it contains a lot of new features too.
Some of the most important features are
Built in support for SDL based GPU drawing
Much faster circle drawing in the software renderer
Several 3rd party libraries are merged directly into LVGL.
Breaking Changes¶
:warning: feat(calendar): add the header directly into the calendar widget
2e08f80
New Features¶
feat(display) add direct_mode drawing mode
2460
feat(conf): make LV_MEM_BUF_MAX_NUM configurable
2747
feat(disp): add non-fullscreen display utilities
2724
feat(rlottie) add LVGL-Rlottie interface as 3rd party lib
2700
feat(rtthread): prepare for porting the device-driver of rt-thread
2719
feat(fsdrv) add driver based on Win32 API
2701
feat(span) indent supports percent for fix and break mode
2693
feat(rt-thread): implement rt-thread sconscirpt
2674
feat(lv_spinbox) support both right-to-left and left-to-right digit steps when clicking encoder button
2644
feat add support for rt-thread RTOS
2660
feat(disp): Enable rendering to display subsection
2583
feat(keyboard): add user-defined modes
2651
feat(event) add LV_EVENT_CHILD_CREATED/DELETED
2618
feat(btnmatrix/keyboard): add option to show popovers on button press
2537
feat(msgbox) add a content area for custom content
2561
feat(tests): Include debug information to test builds
2568
feat(drawing) hardware accelerated rendering by SDL2
2484
feat(msgbox): omit title label unless needed
2539
feat(msgbox): add function to get selected button index
2538
feat(make) add lvgl interface target for micropython
2529
feat(obj) add lv_obj_move_to_index(obj, index), renamed lv_obj_get_child_id(obj) to lv_obj_get_index(obj)
2514
feat(obj) add lv_obj_swap() function
2461
feat(mem) LV_MEM_POOL_ALLOC
2458
feat(switch) add smooth animation when changing state
2442
feat(anim) add interface for handling lv_anim user data.
2415
feat(obj) add lv_is_initialized
2402
feat(obj) Backport keypad and encoder scrolling from v7
lv_page
to v8lv_obj
2390
feat(snapshot) add API to take snapshot for object
2353
feat(anim) add anim timeline
2309
feat(span) Add missing spangroup functions
2379
feat(img) add img_size property
2284
feat(calendar) improve MicroPython example
2366
feat(spinbox ) add function to set cursor to specific position
2314
feat(timer) check if lv_tick_inc is called
aa6641a
feat(event, widgets) improve the paramter of LV_EVENT_DRAW_PART_BEGIN/END
88c4859
feat(docs) improvements to examples
4b8c73a
feat(obj) send LV_EVENT_DRAW_PART_BEGIN/END for MAIN and SCROLLBAR parts
b203167
feat(led) send LV_EVENT_DRAW_PART_BEGIN/END
fcd4aa3
feat(chart) send LV_EVENT_DRAW_PART_BEGIN/END before/after the division line drawing section.
e0ae2aa
feat(tests) upload coverage to codecov
4fff99d
feat(conf) add better check for Kconfig default
f8fe536
feat(draw) add LV_BLEND_MODE_MULTIPLY
cc78ef4
feat(test) add assert for screenshot compare
2f7a005
feat(event) pass the scroll aniamtion to LV_EVENT_SCROLL_BEGIN
ca54ecf
feat(obj) place the scrollbar to the left with RTL base dir.
906448e
feat(log) allow overwriting LV_LOG_... macros
17b8a76
feat(arc) add support to LV_OBJ_FLAG_ADV_HITTEST
dfa4f5c
feat(event) add LV_SCREEN_(UN)LOAD_START
7bae9e3
feat(obj) add lv_obj_del_delayed()
c6a2e15
feat(docs) add view on GitHub link
a716ac6
feat(event) add LV_EVENT_SCREEN_LOADED/UNLOADED events
ee5369e
feat(textarea) remove the need of lv_textarea_set_align
56ebb1a
feat(rt-thread): support LVGL projects with GCC/Keil(AC5)/Keil(AC6)/IAR
32d33fe
feat(docs) lazy load individual examples as well
918d948
feat: add LV_USE_MEM_PERF/MONITOR_POS
acd0f4f
feat(canvas) add lv_canvas_set_px_opa
b3b3ffc
feat(event) add lv_obj_remove_event_cb_with_user_data
4eddeb3
feat(obj) add lv_obj_get_x/y_aligned
98bc1fe
Performance¶
perf(draw) reimplement circle drawing algorithms
2374
perf(anim_timeline) add lv_anim_timeline_stop()
2411
perf(obj) remove lv_obj_get_child_cnt from cycle limit checks
ebb9ce9
perf(draw) reimplement rectangle drawing algorithms
5b3d3dc
perf(draw) ignore masks if they don't affect the current draw area
a842791
perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers
d0172f1
perf(draw) speed up additive blending
3abe517
Fixes¶
fix(bidi): add weak characters to the previous strong character's run
2777
fix(draw_img): radius mask doesn't work in specific condition
2786
fix(border_post): ignore bg_img_opa draw when draw border_post
2788
fix(refresh) switch to portable format specifiers
2781
fix(stm32) Mark unused variable in stm32 DMA2D driver
2782
fix(conf): Make LV_COLOR_MIX_ROUND_OFS configurable
2766
fix(misc): correct the comment and code style
2769
fix(draw_map) use existing variables instead function calls
2776
fix(draw_img): fix typos in API comments
2773
fix(draw_img):radius Mask doesn't work in Specific condition
2775
fix(proto) Remove redundant prototype declarations
2771
fix(conf) better support bool option from Kconfign
2555
fix(draw_border):draw error if radius == 0 and parent clip_corner == true
2764
fix(msgbox) add declaration for lv_msgbox_content_class
2761
fix(core) add L suffix to enums to ensure 16-bit compatibility
2760
fix(anim): add lv_anim_get_playtime
2745
fix(area) minor fixes
2749
fix(mem): ALIGN_MASK should equal 0x3 on 32bit platform
2748
fix(template) prototype error
2755
fix(anim): remove time_orig from lv_anim_t
2744
fix(draw_rect):bottom border lost if enable clip_corner
2742
fix(anim) and improvement
2738
fix(draw border):border draw error if border width > radius
2739
fix(fsdrv): remove the seek call in fs_open
2736
fix(fsdrv): skip the path format if LV_FS_xxx_PATH not defined
2726
fix: mark unused variable with LV_UNUSED(xxx) instead of (void)xxx
2734
fix(fsdrv): fix typo error in commit 752fba34f677ad73aee
2732
fix(fsdrv): return error in case of the read/write failure
2729
fix(refr) silence compiler warning due to integer type mismatch
2722
fix(fs): fix the off-by-one error in the path function
2725
fix(timer): remove the code duplication in lv_timer_exec
2708
fix(async): remove the wrong comment from lv_async_call
2707
fix(kconfig): change CONFIG_LV_THEME_DEFAULT_FONT to CONFIG_LV_FONT_DEFAULT
2703
fix add MP support for LVGL 3rd party libraries
2666
fix(png) memory leak for sjpg and use lv_mem_... in lv_png
2704
fix(gif) unified whence and remove off_t
2690
fix(rt-thread): include the rt-thread configuration header file
2692
fix(rt-thread): fix the ci error
2691
fix(fsdrv) minor fs issue
2682
fix(hal) fix typos and wording in docs for lv_hal_indev.h
2685
fix(hal tick): add precompile !LV_TICK_CUSTOM for global variables and lv_tick_inc()
2675
fix(anim_timeline) avoid calling lv_anim_del(NULL, NULL)
2628
fix(kconfig) sync Kconfig with the latest lv_conf_template.h
2662
fix(log) reduce the stack usage in log function
2649
fix(conf) make a better style alignment in lv_conf_internal.h
2652
fix(span) eliminate warning in lv_get_snippet_cnt()
2659
fix(config): remove the nonexistent Kconfig
2654
fix(Kconfig): add LV_MEM_ADDR config
2653
fix(log): replace printf with fwrite to save the stack size
2655
fix typos
2634
fix LV_FORMAT_ATTRIBUTE fix for gnu > 4.4
2631
fix(meter) make lv_meter_indicator_type_t of type uint8_t
2632
fix(span):crash if span->txt = ""
2616
fix(disp) set default theme also for non-default displays
2596
fix(label):LONG_DOT mode crash if text Utf-8 encode > 1
2591
fix( example) in lv_example_scroll_3.py float_btn should only be created once
2602
fix lv_deinit when LV_USE_GPU_SDL is enabled
2598
fix add missing LV_ASSERT_OBJ checks
2575
fix(lv_conf_internal_gen.py) formatting fixes on the generated file
2542
fix(span) opa bug
2584
fix(snapshot) snapshot is affected by parent's style because of wrong coords
2579
fix(label):make draw area contain ext_draw_size
2587
fix(btnmatrix): make ORed values work correctly with lv_btnmatrix_has_btn_ctrl
2571
fix compiling of examples when cmake is used
2572
fix(lv_textarea) fix crash while delete non-ascii character in pwd mode
2549
fix(lv_log.h): remove the duplicated semicolon from LV_LOG_xxx
2544
fix(zoom) multiplication overflow on 16-bit platforms
2536
fix(printf) use __has_include for more accurate limits information
2532
fix(font) add assert in lv_font.c if the font is NULL
2533
fix(lv_types.h): remove c/c++ compiler version check
2525
fix(lv_utils.c): remove the unneeded header inclusion
2526
fix(Kconfig) fix the comment in LV_THEME_DEFAULT_DARK
2524
fix(sprintf) add format string for rp2 port
2512
fix(span) fix some bugs (overflow,decor,align)
2518
fix(color) Bad cast in lv_color_mix() caused UB with 16bpp or less
2509
fix(imgbtn) displayed incorrect when the coordinate is negative
2501
fix(event) be sure to move all elements in copy “lv_obj_remove_event_cb”
2492
fix(draw) use correct pointer in lv_draw_mask assertion
2483
feat(mem) LV_MEM_POOL_ALLOC
2458
fix(cmake) require 'main' for Micropython
2444
fix(docs) add static keyword to driver declaration
2452
fix(build) remove main component dependency
2420
fix circle drawing algorithms
2413
fix(docs) wrong spelling of words in pictures
2409
fix(chart) fixed point-following cursor during vertical scroll in charts
2400
fix(chart) fixed cursor positioning with large Y rescaling without LV_USE_LARGE_COORD
2399
fix(grid.h) typos
2395
fix(anim_timeline) heap use after free
2394
fix(snapshot) add missing import on MicroPython example
2389
fix(disp) Fix assert failure in lv_disp_remove
2382
fix(span) modify the underline position
2376
fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER
2372
fix(spinner) should not be clickable
2373
fix(workflow) silence SDL warning for MicroPython
2367
fix (span) fill LV_EVENT_GET_SELF_SIZE
2360
fix(workflow) change MicroPython workflow to use master
2358
fix(disp) fix memory leak in lv_disp_remove
2355
fix(lv_obj.h)typos
2350
fix(obj) delete useless type conversion
2343
fix(lv_obj_scroll.h) typos
2345
fix(txt) enhance the function of break_chars
2327
fix(vglite): update for v8
e3e3eea
fix(widgets) use lv_obj_class for all the widgets
3fb8baf
fix(refr) reduce the nesting level in lv_refr_area
2df1282
fix(pxp): update for v8
8a2a4a1
fix(obj) move clean ups from lv_obj_del to lv_obj_destructor
b063937
fix (draw) fix arc bg image drawing with full arcs
c3b6c6d
fix(pxp): update RTOS macro for SDK 2.10
00c3eb1
fix(textarea) style update in oneline mode + improve sroll to cursor
60d9a5e
feat(led) send LV_EVENT_DRAW_PART_BEGIN/END
fcd4aa3
fix warnigs introduced by 3fb8baf5
e302403
fix(roller) fix partial redraw of the selected area
6bc40f8
fix(flex) fix layout update and invalidation issues
5bd82b0
fix(indev) focus on objects on release instead of press
76a8293
fix tests
449952e
fix(dropdown) forget the selected option on encoder longpress
e66b935
fix(obj) improve how the focusing indev is determined
a04f2de
fix(workflow) speed up MicroPython workflow
38ad5d5
fix(test) do not including anything in test files when not running tests
9043860
fix tests
36b9db3
fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes
b158932
fix(btnmatrix) fix button invalidation on focus change
77cedfa
fix(tlsf) do not use <assert.h>
c9745b9
fix(template) include lvgl.h in lv_port_*_template.c files
0ae15bd
fix(docs) add margin for example description
b5f632e
fix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE
04c515a
fix(color) remove extraneous cast for 8-bit color
157534c
fix(workflow) use same Unix port variant for MicroPython submodules
ac68b10
fix(README) improve grammar
de81889
fix(printf) skip defining attribute if pycparser is used
ee9bbea
fix(README) spelling correction
41869f2
fix(color) overflow with 16 bit color depth
fe6d8d7
fix(docs) consider an example to be visible over a wider area
145a0fa
fix(codecov) disable uploading coverage for pull requests
27d88de
fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
f172eb3
fix(template) updpate lv_objx_template to v8
38bb8af
fix(align) avoid circular references with LV_SIZE_CONTENT
038b781
fix(draw) with additive blending with 32 bit color depth
786db2a
fix(arc) fix arc invalidation again
5ced080
fix(align) fix lv_obj_align_to
93b38e9
fix(scroll) keep the scroll position on object deleted
52edbb4
fix(dropdown) handle LV_KEY_ENTER
8a50edd
fix various minor warnings
924bc75
fix(textarea) various cursor darwing fixes
273a0eb
fix(label) consider base dir lv_label_get_letter_pos in special cases
6df5122
fix(imgbtn) add lv_imgbtn_set_state
26e15fa
fix(printf) add (int) casts to log messages to avoid warnings on %d
d9d3f27
fix(test) silence make
7610d38
fix(test) silence make
37fd9d8
fix(calendar) update the MP example
0bab4a7
fix(scroll) fix scroll_area_into_view with objects larger than the parent
5240fdd
fix(msgbox) handle NULL btn map paramter
769c4a3
fix (scroll) do not send unnecessary scroll end events
3ce5226
fix(obj_pos) consider all alignements in contnt size calculation but only if x and y = 0
5b27ebb
fix(img decoder) add error handling if the dsc->data = NULL
d0c1c67
fix(txt): skip basic arabic vowel characters when processing conjunction
5b54800
fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE
e697807
fix(lv_printf.h): to eliminate the errors in Keil and IAR
f6d7dc7
fix(draw) fix horizontal gradient drawing
4c034e5
fix(dropdown) use LV_EVENT_READY/CANCEL on list open/close
4dd1d56
fix(table) clip overflowing content
8c15933
fix(test) add #if guard to exclude test related files from the build
c12a22e
fix(test) add #if guard to exclude test related files from the build
fc364a4
fix(freetype) fix underline calculation
76c8ee6
fix(style) refresh ext. draw pad for padding and bg img
37a5d0c
fix(draw) underflow in subpixel font drawing
6d5ac70
fix(scrollbar) hide the scrollbar if the scrollble flag is removed
188a946
fix(color): minor fixes(#2767)
a4978d0
fix(group) skip object if an of the parents is hidden
5799c10
fix(obj) fix size invalidation issue on padding change
33ba722
fix(label) do not bidi process text in lv_label_ins_text
e95efc1
fix(refr) set disp_drv->draw_buf->flushing_last correctly with sw rotation
c514bdd
fix(draw) fix drawing small arcs
8081599
fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT
d61617c
fix(build) fix micropython build error
54338f6
fix(draw) fix border width of simple (radius=0, no masking) borders
20f1867
fix(calendar) fix calculation today and highlighted day
8f0b5ab
fix(style) initialize colors to black instead of zero
524f8dd
fix(sjpg) remove unnecessary typedefs
c2d93f7
fix(label) fix clipped italic letters
2efa6dc
fix(draw) shadow drawing with large shadow width
f810265
fix(dropdown) add missing invalidations
33b5d4a
fix(dropdown) adjust the handling of keys sent to the dropdown
e41c507
fix(disp) be sure the pending scr load animation is finished in lv_scr_load_anim
eb6ae52
fix(color) fox color premult precision with 16 bit color depth
f334226
fix(obj_pos) save x,y even if the object is on a layout
a9b660c
fix(scrollbar) hide the scrollbar if the scrollable flag is removed
d9c6ad0
fix(dropdown) fix list position with RTL base direction
79edb37
fix(obj) fix lv_obj_align_to with RTL base direction
531afcc
fix(chart) fix sending LV_EVENT_DRAW_PART_BEGIN/END for the cursor
34b8cd9
fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino
1a62f7a
fix(checkbox) consider the bg border when positioning the indicator
a39dac9
fix(dropdown) send LV_EVENT_VALUE_CHANGED to allow styling of the list
dae7039
fix(group) fix infinite loop
bdce0bc
fix(keyboard) use LVGL heap functions instead of POSIX
b20a706
fix(blend) fix green channel with additive blending
78158f0
fix(btnmatrix) do not show pressed, focused or focus key states on disabled buttons
3df2a74
fix(font) handle the last pixel of the glyphs in font loader correctly
fa98989
fix(table) fix an off-by-one issue in self size calculation
ea2545a
fix shadowed variable
e209260
fix shadowed variable
df60018
fix(chart) be sure the chart doesn't remain scrolled out on zoom out
ad5b1bd
fix(docs) commit to meta repo as lvgl-bot instead of actual commit author
f0e8549
fix(table) invalidate the table on cell value change
cb3692e
fix(group) allow refocusing objects
1520208
fix(tabview) fix with left and right tabs
17c5744
fix(msgbox) create modals on top layer instead of act screen
5cf6303
fix(theme) show disabled state on buttons of btnmatrix, msgbox and kayboard
0be582b
fix(label) update lv_label_get_letter_pos to work with LV_BASE_DIR_AUTO too
580e05a
fix(label) fix in lv_label_get_letter_pos with when pos==line_start
58f3f56
fix(gif) replace printf statement with LVGL logging
56f62b8
fix(docs) add fsdrv back
64527a5
fix(table) remove unnecessary invalidation on pressing
6f90f9c
fix(chart) draw line chart indicator (bullet)
fba37a3
fix(anim) return the first anim if exec_cb is NULL in lv_anim_get()
fb7ea10
fix(label) fix lv_label_get_letter_on with BIDI enabled
192419e
fix(checkbox) add missing invalidations
bb39e9d
fix(draw) fix gradient calculation of the rectangle is clipped
13e3470
fix(chart) fix typo in 655f42b8
6118d63
fix(example) fix lv_example_chart_2
89081c2
fix(calendar) fix the position calculation today
ad05e19
fix(tick) minor optimization on lv_tick_inc call test
b4305df
fix(docs) use let instead of const for variable which gets changed
3cf5751
fix(theme) fix the switch style in the default theme
0c0dc8e
fix(tlsf) undef printf before define-ing it
cc935b8
fix(msgbox) prevent the buttons being wider than the msbgox
73e036b
fix(chart) don't draw series lines with < 1 points
655f42b
fix(tests) remove src/test_runners when cleaning
6726b0f
fix(label) remove duplicated lv_obj_refresh_self_size
a070ecf
fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
48d1c29
fix(obj) do not set the child's position in lv_obj_set_parent
d89a5fb
feat: add LV_USE_MEM_PERF/MONITOR_POS
acd0f4f
fix(scroll) in scroll to view functions respect disabled LV_OBJ_FLAG_SCROLLABLE
9318e02
fix(flex) remove unused variable
747b6a2
feat(canvas) add lv_canvas_set_px_opa
b3b3ffc
fix(textarea) allow using cursor with not full bg_opa
c9d3965
fix(txt) _lv_txt_get_next_line return 0 on empty texts
82f3fbc
fix(btnmatrix) always update row_cnt
86012ae
fix(scroll) minor fixes on obj scroll handling
a4128a8
fix(table) consider border width for cell positions
f2987b6
fix(log) be sure LV_LOG_... is not empty if logs are disabled
47734c4
fix(arc) fix LV_ARC_MODE_REVERSE
df3b969
fix(obj) in lv_obj_move_to_index() do not send LV_EVENT_CHILD_CHANGED on all changed child
32e8276
feat(event) add lv_obj_remove_event_cb_with_user_data
4eddeb3
fix(draw) fix shadow drawing with radius=0
4250e3c
fix(msgbox) directly store the pointer of all children
eb5eaa3
fix(draw) use the filtered colors in lv_obj_init_draw_xxx_dsc() functions
78725f2
fix(arc) fix full arc invalidation
98b9ce5
chore(led) expose LV_LED_BRIGHT_MIN/MAX in led.h
3f18b23
fix(group) keep the focused object in lv_group_swap_obj
a997147
fix(obj) swap objects in the group too in lv_obj_swap()
52c7558
fix(theme) use opacity on button's shadow in the default theme
c5342e9
fix(win) enable clip_corner and border_post by default
493ace3
fix(draw) fix rectangle drawing with clip_corner enabled
01237da
fix(arc) fix other invalidation issues
b0a7337
feat(obj) add lv_obj_get_x/y_aligned
98bc1fe
fix(calendar) fix incorrect highlight of today
adbac52
fix(arc, meter) fix invalidation in special cases
0f14f49
fix(canvas) invalidate the image on delete
a1b362c
fix(msgbox) return the correct pointer from lv_msgbox_get_text
50ea6fb
fix(bidi) fix the handling of LV_BASE_DIR_AUTO in several widgets
7672847
fix(build) remove main component dependency (#2420)
f2c2393
fix(meter) fix inner mask usage
c28c146
fix(log) fix warning for empty log macros
4dba8df
fix(theme) improve button focus of keyboard
2504b7e
fix(tabview) send LV_EVENT_VALUE_CHANGED only once
933d282
fix(obj style) fix children reposition if the parent's padding changes.
57cf661
fix(template) update indev template for v8
d8a3d3d
fix(obj) detecting which indev sent LV_EVENT_FOCUS
f03d4b8
fix(roller) adjust the size of the selected area correctly
01d1c87
fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set
7e49f48
fix(flex) fix NULL pointer dereference
97ba12f
fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice
713b39e
fix(coords) fix using large coordinates
428db94
fix(chart) fix crash if no series are added
c728b5c
fix(meter) fix needle image invalidation
54d8e81
fix(mem) add lv_ prefix to tlsf functions and types
0d52b59
fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility
81f3068
Examples¶
example(chart) add area chart example
2507
example(anim) add demo to use cubic-bezier
2393
feat(example) add lv_example_chart_9.py
2604
feat(example) add lv_example_chart_8.py
2611
feat(example) chart example to add gap between the old and new data
2565
feat(example) add lv example list 2
2545
feat(examples) add MicroPython version of lv_example_anim_3 and allow loading roller font dynamically
2412
feat(examples) added MP version of second tabview example
2347
fix(example):format codes
2731
fix(example) minor fixes in lv_example_chart_2.py
2601
feat(example) add text with gradient example
462fbcb
fix(example_roller_3) mask free param bug
2553
fix(examples) don't compile assets unless needed
2523
fix(example) scroll example sqort types
2498
fix(examples) join usage
2425
fix(examples) add missing lv.PART.INDICATOR
2423
fix(examples) use lv.grid_fr for MicroPython
2419
fix(examples) remove symlinks
2406
fix(examples) import 'u'-prefixed versions of modules
2365
fix(examples) remove cast in MP scripts
2354
fix(examples) fix MicroPython examples and run the examples with CI
2339
fix(examples) align with renamed Micropython APIs
2338
fix(examples) adjust canvas example for MicroPython API change
52d1c2e
fix(example) revert test code
77e2c1f
feat(example) add checkbox example for radio buttons
d089b36
feat(example) add text with gradient example
462fbcb
fix(examples) exclude example animimg images if animimg is disabled
4d7d306
fix(example) adjust the object sizes in lv_example_anim_timeline_1()
71a10e4
fix(example) revert text code from lv_example_checkbox_2
28e9593
Docs¶
docs: fix typo
2765
docs(colorwheel) fix old API names
2643
docs(display) fix typo
2624
docs add static for lv_indev_drv_t
2605
docs(animimg) add to extra widgets index and fix example
2610
docs(animimg) Add missing animation image page
2609
docs(group) remove reference to lv_cont which is gone in v8
2580
docs(style) use correct API name for local styles
2550
docs(all) Proofread, fix typos and add clarifications in confusing areas
2528
docs(flex) update flex.md
2517
docs more spelling fixes
2499
docs fix typo: arae -> area
2488
docs(readme) fix typo: hosing → hosting.
2477
docs update company name and year
2476
docs fix typos
2472
docs(overview) fix typo
2465
docs(bar) fix typos in widget examples
2463
docs(overview) fix typo
2454
docs(chart) typos
2427
docs(layout) add internal padding paragraph to grid and flex layout p…
2392
docs(porting) fix indev example to remove v7 bool return
2381
docs(README) fix broken references
2329
docs(grid) typo fix
2310
docs(color) language fixes
2302
docs(lv_obj_style) update add_style and remove_style function headers
2287
docs(contributing) add commit message format section
3668e54
docs minor typo fixes
84c0086
docs(arduino) update some outdated information
9a77102
docs(keyboard) add note regarding event handler
255f729
docs minor CSS fix
acbb680
docs minor CSS improvements
7f367d6
docs(keyboard) change
LV_KEYBOARD_MODE_NUM
toLV_KEYBOARD_MODE_NUMBER
6e83d37
docs(textarea) clarify the use of text selection bg_color
65673c0
docs list all examples on one page
25acaf4
docs(examples) add MicroPython examples
6f37c4f
docs(filesystem) update to v8
7971ade
docs(style) complete the description of style the properties
55e8846
docs example list fixes
cd600d1
docs(style) complete the description of style the properties
ff087da
docs(README) update links, examples, and add services menu
3471bd1
docs(color) update colors' docs
9056b5e
docs update lv_fs.h, layer and align.png to v8
31ab062
docs(color) minor fix
ac8f453
docs update changelog
c386110
docs(extra) add extra/README.md
8cd504d
docs add lazy load to the iframes of the examples
c49e830
docs(os) add example and clarify some poinits
d996453
docs(rlottie) fix build error
ce0b564
docs include paths in libs
f5f9562
docs libs fixes
8e7bba6
docs(obj) add comment lv_obj_get_x/y/width/height about postponed layout recalculation
533066e
docs fix example list
ed77ed1
docs describe the options to include or skip lv_conf.h
174ef66
docs(overview) spelling fixes
d2efb8c
docs(table) describe keypad/encoder navigation
749d1b3
docs update CHANGELOG
0f8bc18
docs(image) mention the frame_id parameter of lv_img_decoder_open
2433732
docs(arduino) update how to use the examples
06962a5
docs(rlottie): fix typo in commands
ed9169c
docs(indev, layer) update lv_obj_set_click() to lv_obj_add_flag()
bcd99e8
docs update version support table
e6e98ab
docs fix example list
c6f99ad
docs(examples) add <hr/> to better separate examples
a1b59e3
docs(checkbox) update the comment lv_checkbox_set_text_static
3e0ddd0
docs(grid) fix missing article
da0c97a
docs(display) fix grammar in one spot
5dbea7d
docs(style) fix typo in style property descriptions
4e3b860
docs(flex) fix typo in flex grow section
e5fafc4
docs(indev) clarify purpose of
continue_reading
flag706f81e
docs(license) update company name and year
7c1eb00
docs fix typo
8ab8064
docs add libs to the main index
1a8fed5
docs add btn_example.png
8731ef1
docs(btnmatrix) fix typo with set_all/clear_all parameters
51a82a1
CI and tests¶
ci(micropython) fix git fetch
2757
test(txt) initial unit tests and general code cleanup/fixes
2623
test add setUp and tearDown to test template
2648
test(arc) add initial unit tests
2617
ci(micropython) add ESP32 and STM32 tests
2629
test(checkbox) add initial tests
2551
test(ci) build and run tests in parallel.
2515
ci(tests) run tests using ctest
2503
ci(tests) add dependency on GNU parallel
2510
ci(tests) use common script to install development prereqs
2504
test convert Makefile to CMake
2495
test Refactor unit test scripts.
2473
test(font_loader) migrate the exisiting font loader test
bc5b3be
test add build test again, add dropdown test, integrate gcov and gvocr
e35b1d0
test(dropdown) add tess for keypad and encoder
4143b80
test add keypad and encoder emulators
e536bb6
tests add mouse emulator
2ba810b
tests add README
b765643
test add move tests to test_cases and test_runners directories
e9e010a
test fix CI build error
c38cae2
ci add config for 8bpp
3eacc59
test move more source files to src folder
3672f87
test update CI for the new tests
a3898b9
test cleant up report folder
b9b4ba5
test fix build error
61cda59
test(font_loader) migrate the existing font loader test
d6dbbaa
test add move tests to test_cases and test_runners directories
d2e735e
test add 3rd party libs to all tests and also fix them
7a95fa9
test(arc): add test case for adv_hittest
e83df6f
ci create check for lv_conf_internal.h
5d8285e
test fix warning and docs build error
d908f31
ci(micropython) add rp2 port
1ab5c96
test(dropdown) remove dummy test case
9fb98da
ci(codecov) hide statuses on commits for now
0b7be77
ci(docs) run apt-get update before installation
f215174
test fix LV_USE_LOG_LEVEL -> LV_LOG_LEVEL typo
80f0b09
ci(micropython) add GCC problem matcher
ab316a0
test convert Makefile to CMake (#2495)
9c846ee
Others¶
chore: replace (void)xxx with LV_UNUSED(xxx)
2779
animation improvement
2743
Improve LV_FORMAT_ATTRIBUTE usage
2673
Fix typo in commands to build rlottie
2723
del(.gitmodules): delete .gitmodules
2718
lv_obj_draw_part_dsc_t.text_length added
2694
expose LV_COLOR_DEPTH and LV_COLOR_16_SWAP in micropython
2679
sync lvgl/lv_fs_if
2676
build: always enable CMake install rule in default configuration
2636
build: fix lib name in CMakeLists
2641
build: remove use of 'project' keyword in CMakeLists
2640
build add install rule to CMakeList.txt
2621
Fixed row size calculation
2633
arch add small 3rd party libs to lvgl
2569
Kconfig: Add missing options
2597
Espressif IDF component manager
2521
chore(btnmatrix) removed unnecessary semicolon
2520
Update README.md
2516
Corrected a function name in obj.md
2511
Simple spelling fixes
2496
added lv_obj_move_up() and lv_obj_move_down()
2467
Fix buf name error for "lv_port_disp_template.c" and optimize the arduino example
2475
Fix two examples in the docs with new v8 api
2486
kconfig: minor fix for default dark theme option
2426
doc(table) update doc on cell merging
2397
added example lv_example_anim_timeline_1.py
2387
refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt
2332
Update win.md
2352
Nxp pxp vglite v8 dev
2313
More Snapable --> Snappable replacements
2304
Spelling and other language fixes to documentation
2293
Update quick-overview.md
2295
adding micropython examples
2286
format run code-formtter.sh
d67dd94
Update ROADMAP.md
2b1ae3c
Create .codecov.yml
e53aa82
refactor(examples) drop JS-specific code from header.py
ef41450
make test run on mseter and release/v8.*
227402a
Update release.yml
0838f12
refactor(examples) drop usys import from header.py
ad1f91a
Update ROADMAP.md
a38fcf2
Revert "feat(conf) add better check for Kconfig default"
a5793c7
remove temporary test file
a958c29
start to implement release/patch
1626a0c
chore(indev) minor formatting
79ab3d2
add basic patch release script
1c3ecf1
chore(example) minor improvements on lv_example_list_2
bb6d6b7
tool: add changelog_gen.sh to automatically generate changelog
6d95521
update version numbers to v8.1.0-dev
8691611
chore(test) improve prints
ea8bed3
chore(test) improve prints
0c4bca0
chore: update lv_conf_internal.h
41c2dd1
chore(format) lv_conf_template.h minor formatting
3c86d77
chore(docs) always deploy master to docs/master as well
6d05692
Update CHANGELOG.md
48fd73d
Fix compile errors
6c956cc
Update textarea.md
6d8799f
chore(assert) add warning about higher memory usage if LV_USE_ASSERT_STYLE is enabled
33e4330
Update page.html
9573bab
chore(docs) force docs rebuild
4a0f413
Fix typo error in color.md
572880c
Update arc.md
2a9b9e6
Update index.rst
9ce2c77
chore(docs) minor formatting on example's GitHub link
75209e8
chore(lv_conf_template) fix spelling mistake
9d134a9
Update CHANGELOG.md
8472360
chore(stale) disable on forks
93c1303
Revert "fix(tests) remove src/test_runners when cleaning"
ae15a1b
style fix usage of clang-format directives
2122583
Revert "fix(indev) focus on objects on release instead of press"
f61b2ca
v8.0.2 (16.07.2021)¶
fix(theme) improve button focus of keyboard
fix(tabview) send LV_EVENT_VALUE_CHANGED only once
fix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE
fix(color) remove extraneous cast for 8-bit color
fix(obj style) fix children reposition if the parent's padding changes.
fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER (#2372)
fix(spinner) should not be clickable (#2373)
fix(obj) improve how the focusing indev is determined
fix(template) update indev template for v8
fix(printf) skip defining attribute if pycparser is used
refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt (#2332)
fix(template) include lvgl.h in lv_port_*_template.c files
fix(obj) detecting which indev sent LV_EVENT_FOCUS
fix (span) fill LV_EVENT_GET_SELF_SIZE (#2360)
fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
fix (draw) fix arc bg image drawing with full arcs
fix(disp) fix memory leak in lv_disp_remove (#2355)
fix warnings introduced by 3fb8baf5
fix(widgets) use lv_obj_class for all the widgets
fix(obj) move clean ups from lv_obj_del to lv_obj_destructor
fix(roller) fix partial redraw of the selected area
fix(roller) adjust the size of the selected area correctly
fix(obj) delete useless type conversion (#2343)
fix(lv_obj_scroll.h) typos (#2345)
fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes
fix(btnmatrix) fix button invalidation on focus change
fix(textarea) style update in oneline mode + improve scroll to cursor
fix(tlsf) do not use <assert.h>
fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set
fix(refr) reduce the nesting level in lv_refr_area
fix(txt) enhance the function of break_chars (#2327)
fix(pxp): update RTOS macro for SDK 2.10
fix(vglite): update for v8
fix(pxp): update for v8
fix(flex) fix layout update and invalidation issues
fix(flex) fix NULL pointer dereference
fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice
fix(color) overflow with 16-bit color depth
fix(coords) fix using large coordinates
fix(chart) fix crash if no series are added
fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT
fix(align) fix lv_obj_align_to G
fix(table) invalidate the table on cell value change
fix(label) remove duplicated lv_obj_refresh_self_size
fix(draw) underflow in subpixel font drawing
fix (scroll) do not send unnecessary scroll end events
v8.0.1 (14.06.2021)¶
docs(filesystem) update to v8 7971ade4
fix(msgbox) create modals on top layer instead of act screen 5cf6303e
fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default 48d1c292
docs(grid) typo fix (#2310) 69d109d2
fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino 1a62f7a6
fix(meter) fix needle image invalidation 54d8e817
fix(mem) add lv_ prefix to tlsf functions and types 0d52b59c
fix(calendar) fix the position calculation today ad05e196
fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE e697807c
docs(color) language fixes (#2302) 07ecc9f1
fix(tick) minor optimization on lv_tick_inc call test b4305df5
Spelling and other language fixes to documentation (#2293) d0aaacaf
fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard 0be582b3
fix(scroll) keep the scroll position on object deleted 52edbb46
fix(msgbox) handle NULL btn map parameter 769c4a30
fix(group) allow refocusing objects 1520208b
docs(overview) spelling fixes d2efb8c6
Merge branch 'master' of https://github.com/lvgl/lvgl 45960838
feat(timer) check if lv_tick_inc is called aa6641a6
feat(docs) add view on GitHub link a716ac6e
fix(theme) fix the switch style in the default theme 0c0dc8ea
docs fix typo 8ab80645
Merge branch 'master' of https://github.com/lvgl/lvgl e796448f
feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN ca54ecfe
fix(tabview) fix with left and right tabs 17c57449
chore(docs) force docs rebuild 4a0f4139
chore(docs) always deploy master to docs/master as well 6d05692d
fix(template) update lv_objx_template to v8 38bb8afc
docs(extra) add extra/README.md 8cd504d5
Update CHANGELOG.md 48fd73d2
Update quick-overview.md (#2295) 5616471c
fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility 81f3068d
adding micropython examples (#2286) c60ed68e
docs(color) minor fix ac8f4534
fix(example) revert test code 77e2c1ff
fix(draw) with additive blending with 32-bit color depth 786db2af
docs(color) update colors' docs 9056b5ee
Merge branch 'master' of https://github.com/lvgl/lvgl a711a1dd
perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers d0172f14
docs(lv_obj_style) update add_style and remove_style function headers (#2287) 60f7bcbf
fix memory leak of spangroup (#2285) 33e0926a
fix make lv_img_cache.h public because cache invalidation is public 38ebcd81
Merge branch 'master' of https://github.com/lvgl/lvgl 2b292495
fix(btnmatrix) fix focus event handling 3b58ef14
Merge pull request #2280 from lvgl/dependabot/pip/docs/urllib3-1.26.5 a2f45b26
fix(label) calculating the clip area 57e211cc
chore(deps): bump urllib3 from 1.26.4 to 1.26.5 in /docs b2f77dfc
fix(docs) add docs about the default group 29bfe604
v8.0.0 (01.06.2021)¶
v8.0 brings many new features like simplified and more powerful scrolling, new layouts inspired by CSS Flexbox and Grid, simplified and improved widgets, more powerful events, hookable drawing, and more.
v8 is a major change and therefore it's not backward compatible with v7.
Directory structure¶
The
lv_
prefix is removed from the folder namesThe
docs
is moved to thelvgl
repositoryThe
examples
are moved to thelvgl
repositoryCreate an
src/extra
folder for complex widgets:It makes the core LVGL leaner
In
extra
we can have a lot and specific widgetsGood place for contributions
Widget changes¶
lv_cont
removed, layout features are moved tolv_obj
lv_page
removed, scroll features are moved tolv_obj
lv_objmask
the same can be achieved by eventslv_meter
added as the union oflv_linemeter
andlv_gauge
lv_span
new widget mimicking HTML<span>
lv_animing
new widget for simple slideshow animations+ many minor changes and improvements
New scrolling¶
Support "elastic" scrolling when scrolled in
Support scroll chaining among any objects types (not only
lv_pages
s)Remove
lv_drag
. Similar effect can be achieved by setting the position inLV_EVENT_PRESSING
Add snapping
Add snap stop to scroll max 1 snap point
New layouts¶
CSS Grid-like layout support
CSS Flexbox-like layout support
Styles¶
Optimize and simplify styles
State is saved in the object instead of the style property
Object size and position can be set in styles too
Events¶
Allow adding multiple events to an object
A
user_data
can be attached to the added events
Driver changes¶
lv_disp_drv_t
,lv_indev_drv_t
,lv_fs_drv_t
needs to bestatic
...disp_buf...
is renamed todraw_buf
. See an initialization example here.No partial update if two screen sized buffers are set
disp_drv->full_refresh = 1
makes always the whole display redraw.hor_res
andver_res
need to be set indisp_drv
indev_read_cb
returnsvoid
. To indicate that there is more that to read setdata->continue_reading = 1
in theread_cb
Other changes¶
Remove the copy parameter from create functions
Simplified File system interface API
Use a more generic inheritance
The built-in themes are reworked
lv_obj_align
now saved the alignment and realigns the object automatically but can't be used to align to other than the parentlv_obj_align_to
can align to an object but doesn't save the alignmentlv_pct(x)
can be used to set the size and position in percentageThere are many other changes in widgets that are not detailed here. Please refer to the documentation of the widgets.
New release policy¶
We will follow Release branches with GitLab flow
Minor releases are expected in every 3-4 month
master
will always contain the latest changes
Migrating from v7 to v8¶
First and foremost, create a new
lv_conf.h
based onlv_conf_template.h
.To try the new version it's recommended to use a simulator project and see the examples.
When migrating your project to v8
Update the drivers are described above
Update the styles
Update the events
Use the new layouts instead of
lv_cont
featuresUse
lv_obj
instead oflv_page
See the changes in Colors
The other parts are mainly minor renames and refactoring. See the functions' documentation for descriptions.
v7.11.0 (16.03.2021)¶
New features¶
Add better screen orientation management with software rotation support
Decide text animation's direction based on base_dir (when using LV_USE_BIDI)
Bugfixes¶
fix(gauge) fix needle invalidation
fix(bar) correct symmetric handling for vertical sliders
v7.10.1 (16.02.2021)¶
Bugfixes¶
fix(draw) overlap outline with background to prevent aliasing artifacts
fix(indev) clear the indev's
act_obj
inlv_indev_reset
fix(text) fix out of bounds read in
_lv_txt_get_width
fix(list) scroll list when button is focused using LV_KEY_NEXT/PREV
fix(text) improve Arabic contextual analysis by adding hyphen processing and proper handling of lam-alef sequence
fix(delete) delete animation after the children are deleted
fix(gauge) consider paddings for needle images
v7.10.0 (02.02.2021)¶
New features¶
feat(indev) allow input events to be passed to disabled objects
feat(spinbox) add inline get_step function for MicroPython support
Bugfixes¶
fix(btnmatrix) fix lv_btnmatrix_get_active_btn_text() when used in a group
v7.9.1 (19.01.2021)¶
Bugfixes¶
fix(cpicker) fix division by zero
fix(dropdown) fix selecting options after the last one
fix(msgbox) use the animation time provided
fix(gpu_nxp_pxp) fix incorrect define name
fix(indev) don't leave edit mode if there is only one object in the group
fix(draw_rect) fix draw pattern stack-use-after-scope error
v7.9.0 (05.01.2021)¶
New features¶
feat(chart) add lv_chart_remove_series and lv_chart_hide_series
feat(img_cache) allow disabling image caching
calendar: make get_day_of_week() public
Added support for Zephyr integration
Bugfixes¶
fix(draw_rect) free buffer used for arabic processing
fix(win) arabic process the title of the window
fix(dropdown) arabic process the option in lv_dropdown_add_option
fix(textarea) buffer overflow in password mode with UTF-8 characters
fix(textarea) cursor position after hiding character in password mode
fix(linemeter) draw critical lines with correct color
fix(lv_conf_internal) be sure Kconfig defines are always uppercase
fix(kconfig) handle disable sprintf float correctly.
fix(layout) stop layout after recursion threshold is reached
fix(gauge) fix redraw with image needle
v7.8.1 (15.12.2020)¶
Bugfixes¶
fix(lv_scr_load_anim) fix when multiple screens are loaded at the same time with delay
fix(page) fix LV_SCROLLBAR_MODE_DRAG
v7.8.0 (01.12.2020)¶
New features¶
make DMA2D non blocking
add unscii-16 built-in font
add KConfig
add lv_refr_get_fps_avg()
Bugfixes¶
fix(btnmatrix) handle arabic texts in button matrices
fix(indev) disabled object shouldn't absorb clicks but let the parent to be clicked
fix(arabic) support processing again already processed texts with _lv_txt_ap_proc
fix(textarea) support Arabic letter connections
fix(dropdown) support Arabic letter connections
fix(value_str) support Arabic letter connections in value string property
fix(indev) in LV_INDEV_TYPE_BUTTON recognize 1 cycle long presses too
fix(arc) make arc work with encoder
fix(slider) adjusting the left knob too with encoder
fix reference to LV_DRAW_BUF_MAX_NUM in lv_mem.c
fix(polygon draw) join adjacent points if they are on the same coordinate
fix(linemeter) fix invalidation when setting new value
fix(table) add missing invalidation when changing cell type
refactor(roller) rename LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE
v7.7.2 (17.11.2020)¶
Bugfixes¶
fix(draw_triangle): fix polygon/triangle drawing when the order of points is counter-clockwise
fix(btnmatrix): fix setting the same map with modified pointers
fix(arc) fix and improve arc dragging
label: Repair calculate back
dot
character logical error which cause infinite loop.fix(theme_material): remove the bottom border from tabview header
fix(imgbtn) guess the closest available state with valid src
fix(spinbox) update cursor position in lv_spinbox_set_step
v7.7.1 (03.11.2020)¶
Bugfixes¶
Respect btnmatrix's
one_check
inlv_btnmatrix_set_btn_ctrl
Gauge: make the needle images to use the styles from
LV_GAUGE_PART_PART
Group: fix in
lv_group_remove_obj
to handle deleting hidden objects correctly
v7.7.0 (20.10.2020)¶
New features¶
Add PXP GPU support (for NXP MCUs)
Add VG-Lite GPU support (for NXP MCUs)
Allow max. 16 cell types for table
Add
lv_table_set_text_fmt()
Use margin on calendar header to set distances and padding to the size of the header
Add
text_sel_bg
style property
Bugfixes¶
Theme update to support text selection background
Fix imgbtn state change
Support RTL in table (draw columns right to left)
Support RTL in pretty layout (draw columns right to left)
Skip objects in groups if they are in disabled state
Fix dropdown selection with RTL basedirection
Fix rectangle border drawing with large width
Fix
lv_win_clean()
v7.6.1 (06.10.2020)¶
Bugfixes¶
Fix BIDI support in dropdown list
Fix copying base dir in
lv_obj_create
Handle sub pixel rendering in font loader
Fix transitions with style caching
Fix click focus
Fix imgbtn image switching with empty style
Material theme: do not set the text font to allow easy global font change
v7.6.0 (22.09.2020)¶
New features¶
Check whether any style property has changed on a state change to decide if any redraw is required
Bugfixes¶
Fix selection of options with non-ASCII letters in dropdown list
Fix font loader to support LV_FONT_FMT_TXT_LARGE
v7.5.0 (15.09.2020)¶
New features¶
Add
clean_dcache_cb
andlv_disp_clean_dcache
to enable users to use their own cache management functionAdd
gpu_wait_cb
to wait until the GPU is working. It allows to run CPU a wait only when the rendered data is needed.Add 10px and 8ox built in fonts
Bugfixes¶
Fix unexpected DEFOCUS on lv_page when clicking to bg after the scrollable
Fix
lv_obj_del
andlv_obj_clean
if the children list changed during deletion.Adjust button matrix button width to include padding when spanning multiple units.
Add rounding to btnmatrix line height calculation
Add
decmopr_buf
to GC rootsFix division by zero in draw_pattern (lv_draw_rect.c) if the image or letter is not found
Fix drawing images with 1 px height or width
v7.4.0 (01.09.2020)¶
The main new features of v7.4 are run-time font loading, style caching and arc knob with value setting by click.
New features¶
Add
lv_font_load()
function - Loads alv_font_t
object from a binary font fileAdd
lv_font_free()
function - Frees the memory allocated by thelv_font_load()
functionAdd style caching to reduce access time of properties with default value
arc: add set value by click feature
arc: add
LV_ARC_PART_KNOB
similarly to slidersend gestures event if the object was dragged. User can check dragging with
lv_indev_is_dragging(lv_indev_act())
in the event function.
Bugfixes¶
Fix color bleeding on border drawing
Fix using 'LV_SCROLLBAR_UNHIDE' after 'LV_SCROLLBAR_ON'
Fix cropping of last column/row if an image is zoomed
Fix zooming and rotating mosaic images
Fix deleting tabview with LEFT/RIGHT tab position
Fix btnmatrix to not send event when CLICK_TRIG = true and the cursor slid from a pressed button
Fix roller width if selected text is larger than the normal
v7.3.1 (18.08.2020)¶
Bugfixes¶
Fix drawing value string twice
Rename
lv_chart_clear_serie
tolv_chart_clear_series
andlv_obj_align_origo
tolv_obj_align_mid
Add linemeter's mirror feature again
Fix text decor (underline strikethrough) with older versions of font converter
Fix setting local style property multiple times
Add missing background drawing and radius handling to image button
Allow adding extra label to list buttons
Fix crash if
lv_table_set_col_cnt
is called beforelv_table_set_row_cnt
for the first timeFix overflow in large image transformations
Limit extra button click area of button matrix's buttons. With large paddings it was counter-intuitive. (Gaps are mapped to button when clicked).
Fix
lv_btnmatrix_set_one_check
not forcing exactly one button to be checkedFix color picker invalidation in rectangle mode
Init disabled days to gray color in calendar
v7.3.0 (04.08.2020)¶
New features¶
Add
lv_task_get_next
Add
lv_event_send_refresh
,lv_event_send_refresh_recursive
to easily sendLV_EVENT_REFRESH
to objectAdd
lv_tabview_set_tab_name()
function - used to change a tab's nameAdd
LV_THEME_MATERIAL_FLAG_NO_TRANSITION
andLV_THEME_MATERIAL_FLAG_NO_FOCUS
flagsReduce code size by adding:
LV_USE_FONT_COMPRESSED
andLV_FONT_USE_SUBPX
and applying some optimizationAdd
LV_MEMCPY_MEMSET_STD
to use standardmemcpy
andmemset
Bugfixes¶
Do not print warning for missing glyph if its height OR width is zero.
Prevent duplicated sending of
LV_EVENT_INSERT
from text areaTidy outer edges of cpicker widget.
Remove duplicated lines from
lv_tabview_add_tab
btnmatrix: handle combined states of buttons (e.g. checked + disabled)
textarea: fix typo in lv_textarea_set_scrollbar_mode
gauge: fix image needle drawing
fix using freed memory in _lv_style_list_remove_style
v7.2.0 (21.07.2020)¶
New features¶
Add screen transitions with
lv_scr_load_anim()
Add display background color, wallpaper and opacity. Shown when the screen is transparent. Can be used with
lv_disp_set_bg_opa/color/image()
.Add
LV_CALENDAR_WEEK_STARTS_MONDAY
Add
lv_chart_set_x_start_point()
function - Set the index of the x-axis start point in the data arrayAdd
lv_chart_set_ext_array()
function - Set an external array of data points to use for the chartAdd
lv_chart_set_point_id()
function - Set an individual point value in the chart series directly based on indexAdd
lv_chart_get_x_start_point()
function - Get the current index of the x-axis start point in the data arrayAdd
lv_chart_get_point_id()
function - Get an individual point value in the chart series directly based on indexAdd
ext_buf_assigned
bit field tolv_chart_series_t
structure - it's true if external buffer is assigned to seriesAdd
lv_chart_set_series_axis()
to assign series to primary or secondary axisAdd
lv_chart_set_y_range()
to allow setting range of secondary y-axis (based onlv_chart_set_range
but extended with an axis parameter)Allow setting different font for the selected text in
lv_roller
Add
theme->apply_cb
to replacetheme->apply_xcb
to make it compatible with the MicroPython bindingAdd
lv_theme_set_base()
to allow easy extension of built-in (or any) themesAdd
lv_obj_align_x()
andlv_obj_align_y()
functionsAdd
lv_obj_align_origo_x()
andlv_obj_align_origo_y()
functions
Bugfixes¶
tileview
fix navigation when not screen sizedUse 14px font by default to for better compatibility with smaller displays
linemeter
fix conversation of current value to "level"Fix drawing on right border
Set the cursor image non-clickable by default
Improve mono theme when used with keyboard or encoder
v7.1.0 (07.07.2020)¶
New features¶
Add
focus_parent
attribute tolv_obj
Allow using buttons in encoder input device
Add lv_btnmatrix_set/get_align capability
DMA2D: Remove dependency on ST CubeMX HAL
Added
max_used
propriety tolv_mem_monitor_t
structIn
lv_init
test if the strings are UTF-8 encoded.Add
user_data
to themesAdd LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
Add inline function lv_checkbox_get_state(const lv_obj_t * cb) to extend the checkbox functionality.
Add inline function lv_checkbox_set_state(const lv_obj_t * cb, lv_btn_state_t state ) to extend the checkbox functionality.
Bugfixes¶
lv_img
fix invalidation area when angle or zoom changesUpdate the style handling to support Big endian MCUs
Change some methods to support big endian hardware.
remove use of c++ keyword 'new' in parameter of function lv_theme_set_base().
Add LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
Fix inserting chars in text area in big endian hardware.
v7.0.2 (16.06.2020)¶
Bugfixes¶
lv_textarea
fix wrong cursor position when clicked after the last characterChange all text related indices from 16-bit to 32-bit integers throughout whole library. #1545
Fix gestures
Do not call
set_px_cb
for transparent pixelFix list button focus in material theme
Fix crash when a text area is cleared with the backspace of a keyboard
Add version number to
lv_conf_template.h
Add log in true double buffering mode with
set_px_cb
lv_dropdown
: fix missingLV_EVENT_VALUE_CHANGED
event when used with encoderlv_tileview
: fix if not the {0;0} tile is created firstlv_debug
: restructure to allow asserting in fromlv_misc
tooadd assert if
_lv_mem_buf_get()
failslv_textarea
: fix character delete in password modeUpdate
LV_OPA_MIN
andLV_OPA_MAX
to widen the opacity processed rangelv_btnm
fix sending events for hidden buttonslv_gaguge
makelv_gauge_set_angle_offset
offset the labels and needles tooFix typo in the API
scrllable
->scrollable
tabview
by default allow auto expanding the page only to right and bottom (#1573)fix crash when drawing gradient to the same color
chart: fix memory leak
img
: improve hit test for transformed images
v7.0.1 (01.06.2020)¶
Bugfixes¶
Make Micropython working by adding the required variables as GC_ROOT
Prefix some internal API functions with
_
to reduce the API of LVGLFix built-in SimSun CJK font
Fix UTF-8 encoding when
LV_USE_ARABIC_PERSIAN_CHARS
is enabledFix DMA2D usage when 32 bit images directly blended
Fix lv_roller in infinite mode when used with encoder
Add
lv_theme_get_color_secondary()
Add
LV_COLOR_MIX_ROUND_OFS
to adjust color mixing to make it compatible with the GPUImprove DMA2D blending
Remove memcpy from
lv_ll
(caused issues with some optimization settings)lv_chart
fix X tick drawingFix vertical dashed line drawing
Some additional minor fixes and formattings
v7.0.0 (18.05.2020)¶
Documentation¶
The docs for v7 is available at https://docs.littlevgl.com/v7/en/html/index.html
Legal changes¶
The name of the project is changed to LVGL and the new website is on https://lvgl.io
LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services.
New drawing system¶
Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects. A possible use-case of this system is to remove the overflowing content from the rounded edges. It also allows drawing perfectly anti-aliased circles, lines, and arcs. Internally, the drawings happen by defining masks (such as rounded rectangle, line, angle). When something is drawn the currently active masks can make some pixels transparent. For example, rectangle borders are drawn by using 2 rectangle masks: one mask removes the inner part and another the outer part.
The API in this regard remained the same but some new functions were added:
lv_img_set_zoom
: set image object's zoom factorlv_img_set_angle
: set image object's angle without using canvaslv_img_set_pivot
: set the pivot point of rotation
The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
New style system¶
The old style system is replaced with a new more flexible and lightweighted one. It uses an approach similar to CSS: support cascading styles, inheriting properties and local style properties per object. As part of these updates, a lot of objects were reworked and the APIs have been changed.
more shadows options: offset and spread
gradient stop position to shift the gradient area and horizontal gradient
LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE
blending modesclip corner: crop the content on the rounded corners
text underline and strikethrough
dashed vertical and horizontal lines (dash gap, dash_width)
outline: a border-like part drawn out of the background. Can have spacing to the background.
pattern: display and image in the middle of the background or repeat it
value display a text which is stored in the style. It can be used e.g. as a light-weighted text on buttons too.
margin: similar to padding but used to keep space outside the object
Read the Style section of the documentation to learn how the new styles system works.
GPU integration¶
To better utilize GPUs, from this version GPU usage can be integrated into LVGL. In lv_conf.h
any supported GPUs can be enabled with a single configuration option.
Right now, only ST's DMA2D (Chrom-ART) is integrated. More will in the upcoming releases.
Renames¶
The following object types are renamed:
sw -> switch
ta -> textarea
cb -> checkbox
lmeter -> linemeter
mbox -> msgbox
ddlist -> dropdown
btnm -> btnmatrix
kb -> keyboard
preload -> spinner
lv_objx folder -> lv_widgets
LV_FIT_FILL -> LV_FIT_PARENT
LV_FIT_FLOOD -> LV_FLOOD_MAX
LV_LAYOUT_COL_L/M/R -> LV_LAYOUT_COLUMN_LEFT/MID/RIGHT
LV_LAYOUT_ROW_T/M/B -> LV_LAYOUT_ROW_TOP/MID/BOTTOM
Reworked and improved object¶
dropdown
: Completely reworked. Now creates a separate list when opened and can be dropped to down/up/left/right.label
:body_draw
is removed, instead, if its style has a visible background/border/shadow etc it will be drawn. Padding really makes the object larger (not just virtually as before)arc
: can draw background too.btn
: doesn't store styles for each state because it's done naturally in the new style system.calendar
: highlight the pressed datum. The used styles are changed: useLV_CALENDAR_PART_DATE
normal for normal dates, checked for highlighted, focused for today, pressed for the being pressed. (checked+pressed, focused+pressed also work)chart
: only hasLINE
andCOLUMN
types because with new styles all the others can be described. LV_CHART_PART_SERIES sets the style of the series. bg_opa > 0 draws an area in LINE mode.LV_CHART_PART_SERIES_BG
also added to set a different style for the series area. Padding inLV_CHART_PART_BG
makes the series area smaller, and it ensures space for axis labels/numbers.linemeter
,gauge
: can have background if the related style properties are set. Padding makes the scale/lines smaller. scale_border_width and scale_end_border_width allow to draw an arc on the outer part of the scale lines.gauge
:lv_gauge_set_needle_img
allows use image as needlecanvas
: allow drawing to true color alpha and alpha only canvas, addlv_canvas_blur_hor/ver
and renamelv_canvas_rotate
tolv_canvas_transform
textarea
: If available in the font use bullet (U+2022
) character in text area password
New object types¶
lv_objmask
: masks can be added to it. The children will be masked accordingly.
Others¶
Change the built-in fonts to Montserrat and add built-in fonts from 12 px to 48 px for every 2nd size.
Add example CJK and Arabic/Persian/Hebrew built-in font
Add ° and "bullet" to the built-in fonts
Add Arabic/Persian script support: change the character according to its position in the text.
Add
playback_time
to animations.Add
repeat_count
to animations instead of the current "repeat forever".Replace
LV_LAYOUT_PRETTY
withLV_LAYOUT_PRETTY_TOP/MID/BOTTOM
Demos¶
lv_examples was reworked and new examples and demos were added
New release policy¶
Maintain this Changelog for every release
Save old major version in new branches. E.g.
release/v6
Merge new features and fixes directly into
master
and release a patch or minor releases every 2 weeks.
Migrating from v6 to v7¶
First and foremost, create a new
lv_conf.h
based onlv_conf_template.h
.To try the new version it suggested using a simulator project and see the examples.
If you have a running project, the most difficult part of the migration is updating to the new style system. Unfortunately, there is no better way than manually updating to the new format.
The other parts are mainly minor renames and refactoring as described above.