diff --git a/Kconfig b/Kconfig index 6d783b3773..eac5eb9d48 100644 --- a/Kconfig +++ b/Kconfig @@ -955,7 +955,7 @@ menu "LVGL configuration" depends on LV_USE_DEMO_MUSIC default n config LV_DEMO_MUSIC_LANDSCAPE - bool "Enable Landspace" + bool "Enable Landscape" depends on LV_USE_DEMO_MUSIC default n config LV_DEMO_MUSIC_ROUND diff --git a/README.md b/README.md index c75884d002..e8a452ee16 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ LVGL provides everything you need to create an embedded GUI with easy-to-use gra * Powerful layouts inspired by CSS: [Flexbox](https://docs.lvgl.io/master/layouts/flex.html) and [Grid](https://docs.lvgl.io/master/layouts/grid.html) * OS, External memory and GPU are supported but not required. (built in support for STM32 DMA2D, and NXP PXP and VGLite) * Smooth rendering even with a [single frame buffer](https://docs.lvgl.io/master/porting/display.html) -* Written in C and compatibile with C++ +* Written in C and compatible with C++ * Micropython Binding exposes [LVGL API in Micropython](https://blog.lvgl.io/2019-02-20/micropython-bindings) * [Simulator](https://docs.lvgl.io/master/get-started/pc-simulator.html) to develop on PC without embedded hardware * 100+ simple [Examples](https://github.com/lvgl/lvgl/tree/master/examples) @@ -105,7 +105,7 @@ Just to mention some platforms: - Nordic NRF52 Bluetooth modules - Quectel modems -LVGL is also avaiable as: +LVGL is also available as: - [Arduino library](https://docs.lvgl.io/master/get-started/arduino.html) - [PlatformIO package](https://platformio.org/lib/show/12440/lvgl) - [Zephyr library](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_LVGL.html) diff --git a/demos/README.md b/demos/README.md index aaaa760134..2198ad69a3 100644 --- a/demos/README.md +++ b/demos/README.md @@ -41,8 +41,8 @@ See in [lv_demo_benchmark](https://github.com/lvgl/lv_examples/tree/master/src/l ### Stress A stress test for LVGL. It contains a lot of object creation, deletion, animations, style usage, and so on. It can be used if there is any memory corruption during heavy usage or any memory leaks. See in [lv_demo_stress](https://github.com/lvgl/lv_examples/tree/master/src/lv_demo_stress) folder. -Stress tes tfor LVGL +Stress test for LVGL ## Contributing -For contribution and coding style guidelines, please refer to the file docs/CONTRIBUTNG.md in the main LVGL repo: +For contribution and coding style guidelines, please refer to the file docs/CONTRIBUTING.md in the main LVGL repo:   https://github.com/lvgl/lvgl diff --git a/demos/benchmark/README.md b/demos/benchmark/README.md index db700efaf0..f7fccf9d66 100644 --- a/demos/benchmark/README.md +++ b/demos/benchmark/README.md @@ -3,10 +3,10 @@ ## Overview The benchmark demo tests the performance in various cases. -For example rectangle, border, shadow, text, image blending, image transformation, bleding modes, etc. +For example rectangle, border, shadow, text, image blending, image transformation, blending modes, etc. All tests are repeated with 50% opacity. -The size an position of the objects during testing are set with a pseudo random number to make the benchmark repeatable. +The size and position of the objects during testing are set with a pseudo random number to make the benchmark repeatable. On to top of the screen the title of the current test step, and the result of the previous step is displayed. diff --git a/demos/benchmark/lv_demo_benchmark.c b/demos/benchmark/lv_demo_benchmark.c index 6359196f8f..a277ec4ee6 100644 --- a/demos/benchmark/lv_demo_benchmark.c +++ b/demos/benchmark/lv_demo_benchmark.c @@ -734,7 +734,7 @@ static void scene_next_task_cb(lv_timer_t * timer) uint32_t fps_normal_unweighted = fps_normal_sum / weight_normal_sum; uint32_t fps_opa_unweighted = fps_opa_sum / weight_opa_sum; - uint32_t opa_speed_pct = (fps_opa_unweighted * 100) / fps_normal_unweighted; + uint32_t opa_speed_pct = (fps_opa_unweighted * 100) / fps_normal_unweighted; lv_obj_clean(lv_scr_act()); scene_bg = NULL; diff --git a/demos/music/README.md b/demos/music/README.md index 446c4f14db..1fa3cd3d3b 100644 --- a/demos/music/README.md +++ b/demos/music/README.md @@ -17,8 +17,8 @@ The music player demo shows what kind of modern, smartphone-like user interfaces - Zoom the album cover proportionality to the current bass value - Display the 4 bands on the left side of a circle by default at 0°, 45°, 90°, 135° - Add extra bars next to the "main bars" with a cosine shape. Add more bars for the lower bands. - - If the there is a large enough bass add a random offset to the position of the bars. E.g. start from 63° istead of 0°. (bars greater than 180° start again from 0°) - - If there no bass add 1 to the offset of the bars (it creates a "walking" effect) + - If there is a large enough bass, add a random offset to the position of the bars. E.g. start from 63° instead of 0°. (bars greater than 180° start again from 0°) + - If there is no bass, add 1 to the offset of the bars (it creates a "walking" effect) - Mirror the bars to the right side of the circle ## Using spectrum.py diff --git a/demos/music/lv_demo_music_main.c b/demos/music/lv_demo_music_main.c index b447d2871d..2867886595 100644 --- a/demos/music/lv_demo_music_main.c +++ b/demos/music/lv_demo_music_main.c @@ -226,7 +226,7 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent) start_anim = true; - lv_timer_t * timer = lv_timer_create(stop_start_anim, INTRO_TIME + 6000, NULL); + lv_timer_t * timer = lv_timer_create(stop_start_anim, INTRO_TIME + 6000, NULL); lv_timer_set_repeat_count(timer, 1); lv_anim_init(&a); @@ -799,7 +799,7 @@ static void spectrum_draw_event_cb(lv_event_t * e) for(i = 0; i < BAR_CNT; i++) { uint32_t deg_space = 1; uint32_t deg = i * DEG_STEP + 90; - uint32_t j = (i + bar_rot + rnd_array[bar_ofs %10]) % BAR_CNT; + uint32_t j = (i + bar_rot + rnd_array[bar_ofs %10]) % BAR_CNT; uint32_t k = (i + bar_rot + rnd_array[(bar_ofs + 1) % 10]) % BAR_CNT; uint32_t v = (r[k] * animv + r[j] * (amax - animv)) / amax; diff --git a/demos/stress/lv_demo_stress.c b/demos/stress/lv_demo_stress.c index 7aec1eaebd..43357fa906 100644 --- a/demos/stress/lv_demo_stress.c +++ b/demos/stress/lv_demo_stress.c @@ -281,7 +281,7 @@ static void obj_test_task_cb(lv_timer_t * tmr) break; case 18: - obj = lv_list_create(main_page); + obj = lv_list_create(main_page); { lv_obj_t * b; b = lv_list_add_btn(obj, LV_SYMBOL_OK, "1. Some very long text to scroll"); diff --git a/demos/widgets/lv_demo_widgets.c b/demos/widgets/lv_demo_widgets.c index 01a033b17f..fe1e31d709 100644 --- a/demos/widgets/lv_demo_widgets.c +++ b/demos/widgets/lv_demo_widgets.c @@ -101,36 +101,36 @@ void lv_demo_widgets(void) if(disp_size == DISP_LARGE) { tab_h = 70; #if LV_FONT_MONTSERRAT_24 - font_large = &lv_font_montserrat_24; + font_large = &lv_font_montserrat_24; #else LV_LOG_WARN("LV_FONT_MONTSERRAT_24 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead."); #endif #if LV_FONT_MONTSERRAT_16 - font_normal = &lv_font_montserrat_16; + font_normal = &lv_font_montserrat_16; #else LV_LOG_WARN("LV_FONT_MONTSERRAT_16 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead."); #endif } else if(disp_size == DISP_MEDIUM) { tab_h = 45; #if LV_FONT_MONTSERRAT_20 - font_large = &lv_font_montserrat_20; + font_large = &lv_font_montserrat_20; #else LV_LOG_WARN("LV_FONT_MONTSERRAT_20 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead."); #endif #if LV_FONT_MONTSERRAT_14 - font_normal = &lv_font_montserrat_14; + font_normal = &lv_font_montserrat_14; #else LV_LOG_WARN("LV_FONT_MONTSERRAT_14 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead."); #endif } else { /* disp_size == DISP_SMALL */ tab_h = 45; #if LV_FONT_MONTSERRAT_18 - font_large = &lv_font_montserrat_18; + font_large = &lv_font_montserrat_18; #else LV_LOG_WARN("LV_FONT_MONTSERRAT_18 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead."); #endif #if LV_FONT_MONTSERRAT_12 - font_normal = &lv_font_montserrat_12; + font_normal = &lv_font_montserrat_12; #else LV_LOG_WARN("LV_FONT_MONTSERRAT_12 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead."); #endif @@ -1058,7 +1058,7 @@ static void color_event_cb(lv_event_t * e) } else if(code == LV_EVENT_CLICKED) { lv_palette_t * palette_primary = lv_event_get_user_data(e); - lv_palette_t palette_secondary = (*palette_primary) + 3; /*Use an other palette as secondary*/ + lv_palette_t palette_secondary = (*palette_primary) + 3; /*Use another palette as secondary*/ if(palette_secondary >= _LV_PALETTE_LAST) palette_secondary = 0; lv_theme_default_init(NULL, lv_palette_main(*palette_primary), lv_palette_main(palette_secondary), LV_THEME_DEFAULT_DARK, font_normal); diff --git a/demos/widgets/lv_demo_widgets.py b/demos/widgets/lv_demo_widgets.py index 6881249997..149c780807 100755 --- a/demos/widgets/lv_demo_widgets.py +++ b/demos/widgets/lv_demo_widgets.py @@ -91,7 +91,7 @@ def gauge_anim(a,gauge,val): def bar_anim(task,bar): val = bar.get_value() # print("bar value: ",val) - max_value = bar.get_max_value() + max_value = bar.get_max_value() val += 1 if val > max_value: val=0 @@ -148,7 +148,7 @@ def controls_create(parent): h.set_style_local_value_str(lv.cont.PART.MAIN, lv.STATE.DEFAULT, "Basics") disp_size = display.get_size_category() - if disp_size <= lv.DISP_SIZE.SMALL: + if disp_size <= lv.DISP_SIZE.SMALL: grid_w= lv.page.get_width_grid(lv.page.__cast__(parent),1,1) # print("grid_w: ",grid_w) else: @@ -338,7 +338,7 @@ def visuals_create(parent): if grid_w_meter < meter_h: meter_size = grid_w_meter else: - meter_size = meter_h + meter_size = meter_h lmeter = lv.linemeter(parent, None) lmeter.set_drag_parent(True) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index c6537af96a..23003a51da 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -231,7 +231,7 @@ Some of the most important features are - fix(docs) consider an example to be visible over a wider area [`145a0fa`](https://github.com/lvgl/lvgl/commit/145a0fad0857dad7f2066e7d22436827e0d3fd7d) - fix(codecov) disable uploading coverage for pull requests [`27d88de`](https://github.com/lvgl/lvgl/commit/27d88de899e91cd5bb9fc69fe9d71cb180cfb44b) - fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default [`f172eb3`](https://github.com/lvgl/lvgl/commit/f172eb3fd78481d6076ead395abfd765646ad21e) -- fix(template) udpate lv_objx_template to v8 [`38bb8af`](https://github.com/lvgl/lvgl/commit/38bb8afc16720e8d8fe6e72be6fae4f9da593bbc) +- fix(template) updpate lv_objx_template to v8 [`38bb8af`](https://github.com/lvgl/lvgl/commit/38bb8afc16720e8d8fe6e72be6fae4f9da593bbc) - fix(align) avoid circular references with LV_SIZE_CONTENT [`038b781`](https://github.com/lvgl/lvgl/commit/038b78122e72db67cec886d09eb2d21aaa019df7) - fix(draw) with additive blending with 32 bit color depth [`786db2a`](https://github.com/lvgl/lvgl/commit/786db2afe6458e24681b8a40fa798429956d3420) - fix(arc) fix arc invalidation again [`5ced080`](https://github.com/lvgl/lvgl/commit/5ced08001c384bf7c840750c0e254b5f0115a070) @@ -272,17 +272,17 @@ Some of the most important features are - fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT [`d61617c`](https://github.com/lvgl/lvgl/commit/d61617cd67f792908a1554a44c663c73a41bb357) - fix(build) fix micropython build error [`54338f6`](https://github.com/lvgl/lvgl/commit/54338f6e57518a59615bdd191fcf5af1365eabea) - fix(draw) fix border width of simple (radius=0, no masking) borders [`20f1867`](https://github.com/lvgl/lvgl/commit/20f186759664f31f07d6613ea8d77df256cd4597) -- fix(calendar) fix caluclation today and highlighted day [`8f0b5ab`](https://github.com/lvgl/lvgl/commit/8f0b5ab0230007fa72127b78db500b9ceb84bf35) +- fix(calendar) fix calculation today and highlighted day [`8f0b5ab`](https://github.com/lvgl/lvgl/commit/8f0b5ab0230007fa72127b78db500b9ceb84bf35) - fix(style) initialize colors to black instead of zero [`524f8dd`](https://github.com/lvgl/lvgl/commit/524f8dd50b4407c78fa6cd947c42e73eab401da1) - fix(sjpg) remove unnecessary typedefs [`c2d93f7`](https://github.com/lvgl/lvgl/commit/c2d93f78b98ba347001bd29d58b6654492bb8d70) - fix(label) fix clipped italic letters [`2efa6dc`](https://github.com/lvgl/lvgl/commit/2efa6dce78604cdf422ff233a99f7dd5f06b821c) -- fix(draw) shadow darwing with large shadow width [`f810265`](https://github.com/lvgl/lvgl/commit/f810265c0d91135b71ae110d33d43841ec0e44f8) -- fix(fropdown) add missing invalifations [`33b5d4a`](https://github.com/lvgl/lvgl/commit/33b5d4a4fe6f28962ee7988f74d5ae842dc49b04) +- fix(draw) shadow drawing with large shadow width [`f810265`](https://github.com/lvgl/lvgl/commit/f810265c0d91135b71ae110d33d43841ec0e44f8) +- fix(dropdown) add missing invalidations [`33b5d4a`](https://github.com/lvgl/lvgl/commit/33b5d4a4fe6f28962ee7988f74d5ae842dc49b04) - fix(dropdown) adjust the handling of keys sent to the dropdown [`e41c507`](https://github.com/lvgl/lvgl/commit/e41c50780495c7d6ac6a2b0edf12fc98c9d85a6b) - fix(disp) be sure the pending scr load animation is finished in lv_scr_load_anim [`eb6ae52`](https://github.com/lvgl/lvgl/commit/eb6ae526432453e4b9dbc7a760cd65d164050548) - fix(color) fox color premult precision with 16 bit color depth [`f334226`](https://github.com/lvgl/lvgl/commit/f3342269f272c474265700527f52d3ba92111531) - fix(obj_pos) save x,y even if the object is on a layout [`a9b660c`](https://github.com/lvgl/lvgl/commit/a9b660c278658224f05fbe43d0199c48711db9fd) -- fix(scrollbar) hide the scrollbar if the scrollble flag is removed [`d9c6ad0`](https://github.com/lvgl/lvgl/commit/d9c6ad0425e761d605124e4555adc72854fec4a6) +- fix(scrollbar) hide the scrollbar if the scrollable flag is removed [`d9c6ad0`](https://github.com/lvgl/lvgl/commit/d9c6ad0425e761d605124e4555adc72854fec4a6) - fix(dropdown) fix list position with RTL base direction [`79edb37`](https://github.com/lvgl/lvgl/commit/79edb37b0ab5015111bade6074fda81ae101b91b) - fix(obj) fix lv_obj_align_to with RTL base direction [`531afcc`](https://github.com/lvgl/lvgl/commit/531afcc6cec7f67df06e369a185aef6fdc85af7b) - fix(chart) fix sending LV_EVENT_DRAW_PART_BEGIN/END for the cursor [`34b8cd9`](https://github.com/lvgl/lvgl/commit/34b8cd9c12604bc1029efa39bd66322b8b771dbe) @@ -296,11 +296,11 @@ Some of the most important features are - fix(font) handle the last pixel of the glyphs in font loader correctly [`fa98989`](https://github.com/lvgl/lvgl/commit/fa9898941f8efa1966cb6f326d1eebdd31211d04) - fix(table) fix an off-by-one issue in self size calculation [`ea2545a`](https://github.com/lvgl/lvgl/commit/ea2545ae5dade0845889174737d072137bbb6591) - fix shadowed variable [`e209260`](https://github.com/lvgl/lvgl/commit/e20926056b28bb64f38abc764a4fca045757e800) -- fix shadowed wariable [`df60018`](https://github.com/lvgl/lvgl/commit/df600183f211bde0ff34add973a7a401a1da9af1) +- fix shadowed variable [`df60018`](https://github.com/lvgl/lvgl/commit/df600183f211bde0ff34add973a7a401a1da9af1) - fix(chart) be sure the chart doesn't remain scrolled out on zoom out [`ad5b1bd`](https://github.com/lvgl/lvgl/commit/ad5b1bdc00a4a44e775a280f8b686353ef4f2a38) - fix(docs) commit to meta repo as lvgl-bot instead of actual commit author [`f0e8549`](https://github.com/lvgl/lvgl/commit/f0e8549fe14d4e95aedcc98a63acce5a4ad1145b) - fix(table) invalidate the table on cell value change [`cb3692e`](https://github.com/lvgl/lvgl/commit/cb3692e3029ae452eab04dce21715b7863a9f2a1) -- fix(group) allow refocusing obejcts [`1520208`](https://github.com/lvgl/lvgl/commit/1520208b14c38713719f507273024624a0f54f1a) +- fix(group) allow refocusing objects [`1520208`](https://github.com/lvgl/lvgl/commit/1520208b14c38713719f507273024624a0f54f1a) - fix(tabview) fix with left and right tabs [`17c5744`](https://github.com/lvgl/lvgl/commit/17c57449eeae8a693ad5601cf4169cf44d57d5c9) - fix(msgbox) create modals on top layer instead of act screen [`5cf6303`](https://github.com/lvgl/lvgl/commit/5cf6303e741ec22e2e87f69af4109855eb637e63) - fix(theme) show disabled state on buttons of btnmatrix, msgbox and kayboard [`0be582b`](https://github.com/lvgl/lvgl/commit/0be582b391e60774d6158411b835b679b010a99b) @@ -312,20 +312,20 @@ Some of the most important features are - fix(chart) draw line chart indicator (bullet) [`fba37a3`](https://github.com/lvgl/lvgl/commit/fba37a30abd1b4d7af78a288fb61dccacc99da08) - fix(anim) return the first anim if exec_cb is NULL in lv_anim_get() [`fb7ea10`](https://github.com/lvgl/lvgl/commit/fb7ea1040153bd0f2d5c282f9fb31add32c55ce9) - fix(label) fix lv_label_get_letter_on with BIDI enabled [`192419e`](https://github.com/lvgl/lvgl/commit/192419e7bb300bd64b51d684827719fe1c22cfdb) -- fix(checkbox) add missing invalifations [`bb39e9d`](https://github.com/lvgl/lvgl/commit/bb39e9d6f95235445e3ea1bc52b0d5a1b7a2e24a) -- fix(draw) fix gradent calculation of the rectangle is clipped [`13e3470`](https://github.com/lvgl/lvgl/commit/13e347055bd54c37e7fcb645120ea9ab3134ebec) +- fix(checkbox) add missing invalidations [`bb39e9d`](https://github.com/lvgl/lvgl/commit/bb39e9d6f95235445e3ea1bc52b0d5a1b7a2e24a) +- fix(draw) fix gradient calculation of the rectangle is clipped [`13e3470`](https://github.com/lvgl/lvgl/commit/13e347055bd54c37e7fcb645120ea9ab3134ebec) - fix(chart) fix typo in 655f42b8 [`6118d63`](https://github.com/lvgl/lvgl/commit/6118d63c2f23e2a157c84a010dcfa0d1fa851382) -- fix(eaxmple) fix lv_example_chart_2 [`89081c2`](https://github.com/lvgl/lvgl/commit/89081c2d6ee418b326538e1f39345d43864993c8) +- fix(example) fix lv_example_chart_2 [`89081c2`](https://github.com/lvgl/lvgl/commit/89081c2d6ee418b326538e1f39345d43864993c8) - fix(calendar) fix the position calculation today [`ad05e19`](https://github.com/lvgl/lvgl/commit/ad05e196fb3937ebcba211495013700c0022f777) -- fix(tick) minor optmization on lv_tick_inc call test [`b4305df`](https://github.com/lvgl/lvgl/commit/b4305df5745684a785be071149de8dd342817db4) +- fix(tick) minor optimization on lv_tick_inc call test [`b4305df`](https://github.com/lvgl/lvgl/commit/b4305df5745684a785be071149de8dd342817db4) - fix(docs) use let instead of const for variable which gets changed [`3cf5751`](https://github.com/lvgl/lvgl/commit/3cf5751461d6a85974da4e5c66593736ae140a1a) - fix(theme) fix the switch style in the default theme [`0c0dc8e`](https://github.com/lvgl/lvgl/commit/0c0dc8ea30289254732cbba7ada7fd4f092caf22) - fix(tlsf) undef printf before define-ing it [`cc935b8`](https://github.com/lvgl/lvgl/commit/cc935b87f69e6107d12d9ba4a2c83103f7dd4356) - fix(msgbox) prevent the buttons being wider than the msbgox [`73e036b`](https://github.com/lvgl/lvgl/commit/73e036bba748e8677f219f573cba5f82c4158a17) - fix(chart) don't draw series lines with < 1 points [`655f42b`](https://github.com/lvgl/lvgl/commit/655f42b852669f27ab8bfde84bf70cf0b7ea027d) - fix(tests) remove src/test_runners when cleaning [`6726b0f`](https://github.com/lvgl/lvgl/commit/6726b0f5df3f4689368782b601bb01f76498123b) -- fix(label) remove dupliacted lv_obj_refresh_self_size [`a070ecf`](https://github.com/lvgl/lvgl/commit/a070ecfe8c1cf7c07c035ba6c35c3ffaef56d6e1) -- fix(colowheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default [`48d1c29`](https://github.com/lvgl/lvgl/commit/48d1c292a3c19380d5669baf911954cc1b083d43) +- fix(label) remove duplicated lv_obj_refresh_self_size [`a070ecf`](https://github.com/lvgl/lvgl/commit/a070ecfe8c1cf7c07c035ba6c35c3ffaef56d6e1) +- fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default [`48d1c29`](https://github.com/lvgl/lvgl/commit/48d1c292a3c19380d5669baf911954cc1b083d43) - fix(obj) do not set the child's position in lv_obj_set_parent [`d89a5fb`](https://github.com/lvgl/lvgl/commit/d89a5fbbd2af33cf759c120e6a14b334099c4c98) - feat: add LV_USE_MEM_PERF/MONITOR_POS [`acd0f4f`](https://github.com/lvgl/lvgl/commit/acd0f4fbc71ffbfeb382b7af1fa52caf3cdcda6c) @@ -334,14 +334,14 @@ Some of the most important features are - feat(canvas) add lv_canvas_set_px_opa [`b3b3ffc`](https://github.com/lvgl/lvgl/commit/b3b3ffc2b3b322f7401d15c4ba2ef0cdb00e2990) - fix(textarea) allow using cursor with not full bg_opa [`c9d3965`](https://github.com/lvgl/lvgl/commit/c9d396571d0726aab5d011f37df648d337e5bc12) - fix(txt) _lv_txt_get_next_line return 0 on empty texts [`82f3fbc`](https://github.com/lvgl/lvgl/commit/82f3fbcad7b710a89b876c32f3583090c99e847c) -- fix(btnmatrix) always udpate row_cnt [`86012ae`](https://github.com/lvgl/lvgl/commit/86012aefc7197209357290c780029aa39b3738dc) +- fix(btnmatrix) always update row_cnt [`86012ae`](https://github.com/lvgl/lvgl/commit/86012aefc7197209357290c780029aa39b3738dc) - fix(scroll) minor fixes on obj scroll handling [`a4128a8`](https://github.com/lvgl/lvgl/commit/a4128a83562e0daacd949333ba7cbfec650f8050) - fix(table) consider border width for cell positions [`f2987b6`](https://github.com/lvgl/lvgl/commit/f2987b6591046f1384b0089187fd81da10834021) - fix(log) be sure LV_LOG_... is not empty if logs are disabled [`47734c4`](https://github.com/lvgl/lvgl/commit/47734c4abedf6b6005069d15a8c4c2fcff73f85e) - fix(arc) fix LV_ARC_MODE_REVERSE [`df3b969`](https://github.com/lvgl/lvgl/commit/df3b96900b1266ed4856438d9121e39905d510bb) - fix(obj) in lv_obj_move_to_index() do not send LV_EVENT_CHILD_CHANGED on all changed child [`32e8276`](https://github.com/lvgl/lvgl/commit/32e8276db7403d8dc9c9b9f0c77d331049e8c07d) - feat(event) add lv_obj_remove_event_cb_with_user_data [`4eddeb3`](https://github.com/lvgl/lvgl/commit/4eddeb35abee1f9cd2d1fd210f11cc096cb609c7) -- fix(draw) fix shdow drawing with readius=0 [`4250e3c`](https://github.com/lvgl/lvgl/commit/4250e3c62737697cd8bc78d991a3d66216efa437) +- fix(draw) fix shadow drawing with radius=0 [`4250e3c`](https://github.com/lvgl/lvgl/commit/4250e3c62737697cd8bc78d991a3d66216efa437) - fix(msgbox) directly store the pointer of all children [`eb5eaa3`](https://github.com/lvgl/lvgl/commit/eb5eaa39406473cd90a7f78d710ce950cbf47548) - fix(draw) use the filtered colors in lv_obj_init_draw_xxx_dsc() functions [`78725f2`](https://github.com/lvgl/lvgl/commit/78725f23da24fe22543ab3388c87bf3cfbd0e51a) - fix(arc) fix full arc invalidation [`98b9ce5`](https://github.com/lvgl/lvgl/commit/98b9ce599751c9de0421acd419430cc6ccd7cad9) @@ -354,7 +354,7 @@ Some of the most important features are - fix(arc) fix other invalidation issues [`b0a7337`](https://github.com/lvgl/lvgl/commit/b0a733766daee1edfabaec8df4a5fedd0180ccaf) - feat(obj) add lv_obj_get_x/y_aligned [`98bc1fe`](https://github.com/lvgl/lvgl/commit/98bc1fe09e12a64333e91b4c25327c283a700af5) - fix(calendar) fix incorrect highlight of today [`adbac52`](https://github.com/lvgl/lvgl/commit/adbac5220b2d75f08de110b3f426066e24f46998) -- fix(arc, merter) fix invaidation in special cases [`0f14f49`](https://github.com/lvgl/lvgl/commit/0f14f49465ca701c98f76ac95bda4a537c0fadfa) +- fix(arc, meter) fix invalidation in special cases [`0f14f49`](https://github.com/lvgl/lvgl/commit/0f14f49465ca701c98f76ac95bda4a537c0fadfa) - fix(canvas) invalidate the image on delete [`a1b362c`](https://github.com/lvgl/lvgl/commit/a1b362c98622ecbc063cfb17fb091fdab4522e8a) - fix(msgbox) return the correct pointer from lv_msgbox_get_text [`50ea6fb`](https://github.com/lvgl/lvgl/commit/50ea6fb3fefb3a6edc958154c575dcdcacbfdb3a) - fix(bidi) fix the handling of LV_BASE_DIR_AUTO in several widgets [`7672847`](https://github.com/lvgl/lvgl/commit/7672847ce325e909981582b4153993025da7fe50) @@ -464,12 +464,12 @@ Some of the most important features are - docs include paths in libs [`f5f9562`](https://github.com/lvgl/lvgl/commit/f5f956233657f95b45a45d872e5d6e68c05eecd4) - docs libs fixes [`8e7bba6`](https://github.com/lvgl/lvgl/commit/8e7bba6acec66a4f6b80496de9fd21a8e3c4c6ee) - docs(obj) add comment lv_obj_get_x/y/width/height about postponed layout recalculation [`533066e`](https://github.com/lvgl/lvgl/commit/533066e6accbe2cbe1b60556eb61ebb2a07185a2) -- docs fix eaxmple list [`ed77ed1`](https://github.com/lvgl/lvgl/commit/ed77ed1dae088ef29194cf3c6bb552e1ee67d78b) +- docs fix example list [`ed77ed1`](https://github.com/lvgl/lvgl/commit/ed77ed1dae088ef29194cf3c6bb552e1ee67d78b) - docs describe the options to include or skip lv_conf.h [`174ef66`](https://github.com/lvgl/lvgl/commit/174ef6692e0b05338890a1cf524d9dcbf5c25f6c) - docs(overview) spelling fixes [`d2efb8c`](https://github.com/lvgl/lvgl/commit/d2efb8c6e5ceedbb9d9c1a1c89ef709e6570e360) - docs(table) describe keypad/encoder navigation [`749d1b3`](https://github.com/lvgl/lvgl/commit/749d1b3ec31ec2ef27f594ed0a4af93edb2c10f0) - docs update CHANGELOG [`0f8bc18`](https://github.com/lvgl/lvgl/commit/0f8bc18f6aacb6a74e0bda59068d3d178fa66434) -- docs(image) mention the frame_id paramter of lv_img_decoder_open [`2433732`](https://github.com/lvgl/lvgl/commit/2433732570a817f566308e025d89227a8c650f5f) +- docs(image) mention the frame_id parameter of lv_img_decoder_open [`2433732`](https://github.com/lvgl/lvgl/commit/2433732570a817f566308e025d89227a8c650f5f) - docs(arduino) update how to use the examples [`06962a5`](https://github.com/lvgl/lvgl/commit/06962a564fd668eced22b2e9bc19e7732abf94ec) - docs(rlottie): fix typo in commands [`ed9169c`](https://github.com/lvgl/lvgl/commit/ed9169c56dc1f34b1f021457b78c9f3eccba13cf) - docs(indev, layer) update lv_obj_set_click() to lv_obj_add_flag() [`bcd99e8`](https://github.com/lvgl/lvgl/commit/bcd99e8e438cc1b63762f8933d26bbb38fd42a2d) @@ -508,7 +508,7 @@ Some of the most important features are - test add build test again, add dropdown test, integrate gcov and gvocr [`e35b1d0`](https://github.com/lvgl/lvgl/commit/e35b1d04bdc7d531d72ebce7d1f031be2631e776) - test(dropdown) add tess for keypad and encoder [`4143b80`](https://github.com/lvgl/lvgl/commit/4143b804c8f4b4324141ad0f529bac4e9acf1442) - test add keypad and encoder emulators [`e536bb6`](https://github.com/lvgl/lvgl/commit/e536bb6325728db21ef5c729a99f2161a8125625) -- tests add mosue emulator [`2ba810b`](https://github.com/lvgl/lvgl/commit/2ba810b8de19afc3e9ac18e5bd8ab16af10a4433) +- tests add mouse emulator [`2ba810b`](https://github.com/lvgl/lvgl/commit/2ba810b8de19afc3e9ac18e5bd8ab16af10a4433) - tests add README [`b765643`](https://github.com/lvgl/lvgl/commit/b765643e4902de359e88fdf6d314e9afdb2daa9a) - test add move tests to test_cases and test_runners directories [`e9e010a`](https://github.com/lvgl/lvgl/commit/e9e010a8468ee307c350e071251f22459173e601) - test fix CI build error [`c38cae2`](https://github.com/lvgl/lvgl/commit/c38cae22fbf6cef7564fbebe2145a7def20d52e1) @@ -517,7 +517,7 @@ Some of the most important features are - test update CI for the new tests [`a3898b9`](https://github.com/lvgl/lvgl/commit/a3898b931e81860acf197bc88fd3dd6f8885eb2c) - test cleant up report folder [`b9b4ba5`](https://github.com/lvgl/lvgl/commit/b9b4ba5b2608f5709678463f62b3d3f937780235) - test fix build error [`61cda59`](https://github.com/lvgl/lvgl/commit/61cda59cbe8569326ef9d366c520b89be292f5ea) -- test(font_loader) migrate the exisiting font loader test [`d6dbbaa`](https://github.com/lvgl/lvgl/commit/d6dbbaaa34304b4c889415439ab562056e0840a5) +- test(font_loader) migrate the existing font loader test [`d6dbbaa`](https://github.com/lvgl/lvgl/commit/d6dbbaaa34304b4c889415439ab562056e0840a5) - test add move tests to test_cases and test_runners directories [`d2e735e`](https://github.com/lvgl/lvgl/commit/d2e735ef36bd99c16ccaa281dcaa5f418e2dec98) - test add 3rd party libs to all tests and also fix them [`7a95fa9`](https://github.com/lvgl/lvgl/commit/7a95fa9e2de9639a3c2f1990ff63b467be54a7aa) - test(arc): add test case for adv_hittest [`e83df6f`](https://github.com/lvgl/lvgl/commit/e83df6f14de1a9eb1d137b123fac96c25a1b7715) @@ -577,7 +577,7 @@ Some of the most important features are - refactor(examples) drop usys import from header.py [`ad1f91a`](https://github.com/lvgl/lvgl/commit/ad1f91ab32c38cab7f0d1448ce3c4e67b47f4526) - Update ROADMAP.md [`a38fcf2`](https://github.com/lvgl/lvgl/commit/a38fcf2c7aa5fd156d3f2b6965ec4f81d7ff5503) - Revert "feat(conf) add better check for Kconfig default" [`a5793c7`](https://github.com/lvgl/lvgl/commit/a5793c70a9a60340a5f1c5d33ba1d118af0a76e2) -- remove temorary test file [`a958c29`](https://github.com/lvgl/lvgl/commit/a958c29af7df66f84520036766929232e0c437c4) +- remove temporary test file [`a958c29`](https://github.com/lvgl/lvgl/commit/a958c29af7df66f84520036766929232e0c437c4) - start to implement release/patch [`1626a0c`](https://github.com/lvgl/lvgl/commit/1626a0c029504f26e568677debcb7ab0f6053f83) - chore(indev) minor formatting [`79ab3d2`](https://github.com/lvgl/lvgl/commit/79ab3d29b01e5f0bff1c754fdc36230584aeaaae) - add basic patch release script [`1c3ecf1`](https://github.com/lvgl/lvgl/commit/1c3ecf1cc14f5501a345472278cc485a24b8ab9c) @@ -592,7 +592,7 @@ Some of the most important features are - Update CHANGELOG.md [`48fd73d`](https://github.com/lvgl/lvgl/commit/48fd73d20da4f19556660a9fca7faf042c965f56) - Fix compile errors [`6c956cc`](https://github.com/lvgl/lvgl/commit/6c956cc0f402b96512ed07f8a93003a0319fc49c) - Update textarea.md [`6d8799f`](https://github.com/lvgl/lvgl/commit/6d8799fbbfb1477ad2e0887644fb4cd900817199) -- chore(assert) add warnign about higher memory usage if LV_USE_ASSERT_STYLE is enabled [`33e4330`](https://github.com/lvgl/lvgl/commit/33e433008e23b48540e83bc5399fd0ccb9e90630) +- chore(assert) add warning about higher memory usage if LV_USE_ASSERT_STYLE is enabled [`33e4330`](https://github.com/lvgl/lvgl/commit/33e433008e23b48540e83bc5399fd0ccb9e90630) - Update page.html [`9573bab`](https://github.com/lvgl/lvgl/commit/9573bab5cbe2da643f5146e62c176bdd0113d954) - chore(docs) force docs rebuild [`4a0f413`](https://github.com/lvgl/lvgl/commit/4a0f4139eb98e73b37abf62f66e2cf1c5d4e58db) - Fix typo error in color.md [`572880c`](https://github.com/lvgl/lvgl/commit/572880ccd3374ccbe81cf09a0620bf95659ca883) @@ -625,7 +625,7 @@ Some of the most important features are - 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 warnigs introduced by 3fb8baf5 +- 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 @@ -634,7 +634,7 @@ Some of the most important features are - 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 sroll to cursor +- fix(textarea) style update in oneline mode + improve scroll to cursor - fix(tlsf) do not use - fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set - fix(refr) reduce the nesting level in lv_refr_area diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 3976f462ac..0d1a35e42c 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -17,11 +17,11 @@ See [#2790](https://github.com/lvgl/lvgl/issues/2790) - Text node. See [#1701](https://github.com/lvgl/lvgl/issues/1701#issuecomment-699479408) - CPP binding. See [Forum](https://forum.lvgl.io/t/is-it-possible-to-officially-support-optional-cpp-api/2736) - Optimize font decompression -- Need static analyze (via coverity.io or somehing else) +- Need static analyze (via coverity.io or something else) - Support dot_begin and dot_middle long modes for labels - Add new label alignment modes. [#1656](https://github.com/lvgl/lvgl/issues/1656) - Support larger images: [#1892](https://github.com/lvgl/lvgl/issues/1892) - Curved text on path -- Varaible binding impromevments like Redux? +- Variable binding improvements like Redux? - Functional programming support, pure view? See [here](https://www.freecodecamp.org/news/the-revolution-of-pure-views-aed339db7da4/) - Circle layout. See [#2871](https://github.com/lvgl/lvgl/issues/2871) diff --git a/docs/build.py b/docs/build.py index 25edc9f57c..0bd8ae854a 100755 --- a/docs/build.py +++ b/docs/build.py @@ -32,7 +32,7 @@ ex.exec() urlpath = re.sub('release/', '', br) -# Be sure the github links point to the right branch +# Be sure the GitHub links point to the right branch f = open("header.rst", "w") f.write(".. |github_link_base| replace:: https://github.com/lvgl/lvgl/blob/" + gitcommit + "/docs") f.close() diff --git a/docs/get-started/cmake.md b/docs/get-started/cmake.md index 3030e4a28f..a79404dade 100644 --- a/docs/get-started/cmake.md +++ b/docs/get-started/cmake.md @@ -60,7 +60,7 @@ Besides `LV_CONF_PATH` there are two additional CMake options to specify include | "lv_conf.h" | "../../lv_conf.h" | | "lv_drv_conf.h" | "../../lv_drv_conf.h" | -I do not recommend to disable those options unless your folder layout makes it absolutely necessary. +I do not recommend disabling those options unless your folder layout makes it absolutely necessary. ## Building LVGL examples with CMake LVGL [examples](https://docs.lvgl.io/master/examples.html) have their own CMake target. If you want to build the examples simply add them to your dependencies. diff --git a/docs/get-started/micropython.md b/docs/get-started/micropython.md index ab4aab1ec7..d00d7cd232 100644 --- a/docs/get-started/micropython.md +++ b/docs/get-started/micropython.md @@ -22,7 +22,7 @@ Using Micropython, you can write Python3 code and run it even on a bare metal ar ## Why Micropython + LVGL? -Currently, Micropython [does not have a good high-level GUI library](https://forum.micropython.org/viewtopic.php?f=18&t=5543) by default. LVGL is an [Object Oriented Component Based](https://blog.lvgl.io/2018-12-13/extend-lvgl-objects) high-level GUI library, which seems to be a natural candidate to map into a higher level language, such as Python. LVGL is implemented in C and its APIs are in C. +Currently, Micropython [does not have a good high-level GUI library](https://forum.micropython.org/viewtopic.php?f=18&t=5543) by default. LVGL is an [Object-Oriented Component Based](https://blog.lvgl.io/2018-12-13/extend-lvgl-objects) high-level GUI library, which seems to be a natural candidate to map into a higher level language, such as Python. LVGL is implemented in C and its APIs are in C. ### Here are some advantages of using LVGL in Micropython: @@ -36,7 +36,7 @@ In Micropython it's just **`Change code` > `Run`** ! You can even run commands i - Shortening the cycle of changing and fine-tuning the GUI. - Modelling the GUI in a more abstract way by defining reusable composite objects, taking advantage of Python's language features such as Inheritance, Closures, List Comprehension, Generators, Exception Handling, Arbitrary Precision Integers and others. - Make LVGL accessible to a larger audience. No need to know C to create a nice GUI on an embedded system. -This goes well with [CircuitPython vision](https://learn.adafruit.com/welcome-to-circuitpython/what-is-circuitpython). CircuitPython was designed with education in mind, to make it easier for new or unexperienced users to get started with embedded development. +This goes well with [CircuitPython vision](https://learn.adafruit.com/welcome-to-circuitpython/what-is-circuitpython). CircuitPython was designed with education in mind, to make it easier for new or inexperienced users to get started with embedded development. - Creating tools to work with LVGL at a higher level (e.g. drag-and-drop designer). --- diff --git a/docs/get-started/nuttx.md b/docs/get-started/nuttx.md index 39bf02bc60..02d26e956f 100644 --- a/docs/get-started/nuttx.md +++ b/docs/get-started/nuttx.md @@ -24,7 +24,7 @@ The best way to think about NuttX is to think of it as a small Unix/Linux for mi ## Why NuttX + LVGL? Although NuttX has its own graphic library called [NX](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=139629474), LVGL is a good alternative because users could find more eye-candy demos and they can reuse code from previous projects. -LVGL is an [Object Oriented Component Based](https://blog.lvgl.io/2018-12-13/extend-lvgl-objects) high-level GUI library, that could fit very well for a RTOS with advanced features like NuttX. +LVGL is an [Object-Oriented Component Based](https://blog.lvgl.io/2018-12-13/extend-lvgl-objects) high-level GUI library, that could fit very well for a RTOS with advanced features like NuttX. LVGL is implemented in C and its APIs are in C. ### Here are some advantages of using LVGL in NuttX diff --git a/docs/get-started/pc-simulator.md b/docs/get-started/pc-simulator.md index b6100a109f..261c0be32a 100644 --- a/docs/get-started/pc-simulator.md +++ b/docs/get-started/pc-simulator.md @@ -63,7 +63,7 @@ Go to [https://www.libsdl.org/download-2.0.php](https://www.libsdl.org/download- 2. Decompress the file and go to _x86_64-w64-mingw32_ directory (for 64 bit MinGW) or to _i686-w64-mingw32_ (for 32 bit MinGW) 3. Copy _..._mingw32/include/SDL2_ folder to _C:/MinGW/.../x86_64-w64-mingw32/include_ 4. Copy _..._mingw32/lib/_ content to _C:/MinGW/.../x86_64-w64-mingw32/lib_ -5. Copy _..._mingw32/bin/SDL2.dll_ to _{eclipse_worksapce}/pc_simulator/Debug/_. Do it later when Eclipse is installed. +5. Copy _..._mingw32/bin/SDL2.dll_ to _{eclipse_workspace}/pc_simulator/Debug/_. Do it later when Eclipse is installed. Note: If you are using **Microsoft Visual Studio** instead of Eclipse then you don't have to install MinGW. diff --git a/docs/intro/index.md b/docs/intro/index.md index fe43229dd0..87b842b2e4 100644 --- a/docs/intro/index.md +++ b/docs/intro/index.md @@ -54,12 +54,12 @@ Basically, every modern controller which is able to drive a display is suitable The LVGL project (including all repositories) is licensed under [MIT license](https://github.com/lvgl/lvgl/blob/master/LICENCE.txt). This means you can use it even in commercial projects. -It's not mandatory but we highly appreciate it if you write a few words about your project in the [My projects](https://forum.lvgl.io/c/my-projects/10) category of the forum or a private message to [lvgl.io](https://lvgl.io/#contact). +It's not mandatory, but we highly appreciate it if you write a few words about your project in the [My projects](https://forum.lvgl.io/c/my-projects/10) category of the forum or a private message to [lvgl.io](https://lvgl.io/#contact). Although you can get LVGL for free there is a massive amount of work behind it. It's created by a group of volunteers who made it available for you in their free time. To make the LVGL project sustainable, please consider [contributing](/CONTRIBUTING) to the project. -You can choose from [many different ways of contributing](/CONTRIBUTING) such as simply writing a tweet about you are using LVGL, fixing bugs, translating the documentation, or even becoming a maintainer. +You can choose from [many different ways of contributing](/CONTRIBUTING) such as simply writing a tweet about you using LVGL, fixing bugs, translating the documentation, or even becoming a maintainer. ## Repository layout All repositories of the LVGL project are hosted on GitHub: https://github.com/lvgl @@ -202,9 +202,9 @@ It swaps the upper and lower bytes of the pixels. - Increase the size of the display buffer - Use two display buffers and flush the buffer with DMA (or similar peripheral) in the background - Increase the clock speed of the SPI or parallel port if you use them to drive the display -- If your display has a SPI port consider changing to a model with a parallel interface because it has much higher throughput +- If your display has an SPI port consider changing to a model with a parallel interface because it has much higher throughput - Keep the display buffer in internal RAM (not in external SRAM) because LVGL uses it a lot and it should have a fast access time -  + ### How to reduce flash/ROM usage? You can disable all the unused features (such as animations, file system, GPU etc.) and object types in *lv_conf.h*. @@ -214,7 +214,7 @@ If you are using GCC you can add `-fdata-sections -ffunction-sections` compiler - Lower the size of the *Display buffer* - Reduce `LV_MEM_SIZE` in *lv_conf.h*. This memory is used when you create objects like buttons, labels, etc. - To work with lower `LV_MEM_SIZE` you can create objects only when required and delete them when they are not needed anymore -  + ### How to work with an operating system? To work with an operating system where tasks can interrupt each other (preemptively) you should protect LVGL related function calls with a mutex. diff --git a/docs/libs/bmp.md b/docs/libs/bmp.md index e404291867..4c12e8b1df 100644 --- a/docs/libs/bmp.md +++ b/docs/libs/bmp.md @@ -7,7 +7,7 @@ This extension allows the use of BMP images in LVGL. This implementation uses [bmp-decoder](https://github.com/caj-johnson/bmp-decoder) library. -The pixel are read on demand (not the whole image is loaded) so using BMP images requires very little RAM. +The pixels are read on demand (not the whole image is loaded) so using BMP images requires very little RAM. If enabled in `lv_conf.h` by `LV_USE_BMP` LVGL will register a new image decoder automatically so BMP files can be directly used as image sources. For example: ``` diff --git a/docs/libs/freetype.md b/docs/libs/freetype.md index b394eb70a3..6824b2b536 100644 --- a/docs/libs/freetype.md +++ b/docs/libs/freetype.md @@ -16,19 +16,18 @@ Interface to [FreeType](https://www.freetype.org/) to generate font bitmaps run - Add library: `freetype` (for GCC: `-L/usr/local/lib -lfreetype`) ## Usage - Enable `LV_USE_FREETYPE` in `lv_conf.h`. -To cache the glyphs from the opened fonts set `LV_FREETYPE_CACHE_SIZE >= 0` and then use the following macros for detailed configuration: -1. `LV_FREETYPE_CACHE_SIZE`:maximum memory(bytes) used to cache font bitmap, outline, character maps, etc. 0 means use the system default value, less than 0 means disable cache.Note: that this value does not account for managed FT_Face and FT_Size objects. -1. `LV_FREETYPE_CACHE_FT_FACES`:maximum number of opened FT_Face objects managed by this cache instance.0 means use the system default value.Only useful when LV_FREETYPE_CACHE_SIZE >= 0. -1. `LV_FREETYPE_CACHE_FT_SIZES`:maximum number of opened FT_Size objects managed by this cache instance. 0 means use the system default value.Only useful when LV_FREETYPE_CACHE_SIZE >= 0. +To cache the glyphs from the opened fonts, set `LV_FREETYPE_CACHE_SIZE >= 0` and then use the following macros for detailed configuration: +1. `LV_FREETYPE_CACHE_SIZE`:maximum memory(bytes) used to cache font bitmap, outline, character maps, etc. 0 means use the system default value, less than 0 means disable cache. Note: that this value does not account for managed FT_Face and FT_Size objects. +1. `LV_FREETYPE_CACHE_FT_FACES`:maximum number of opened FT_Face objects managed by this cache instance.0 means use the system default value. Only useful when LV_FREETYPE_CACHE_SIZE >= 0. +1. `LV_FREETYPE_CACHE_FT_SIZES`:maximum number of opened FT_Size objects managed by this cache instance. 0 means use the system default value. Only useful when LV_FREETYPE_CACHE_SIZE >= 0. -When you are sure that all the used fonts size will not be greater than 256, you can enable `LV_FREETYPE_SBIT_CACHE`, which is much more memory efficient for small bitmaps. +When you are sure that all the used font sizes will not be greater than 256, you can enable `LV_FREETYPE_SBIT_CACHE`, which is much more memory efficient for small bitmaps. -You can use `lv_ft_font_init()` to create FreeType fonts. It returns `true` to indicate success, at the same time, the `font` member of `lv_ft_info_t` will be filled with a pointer to an lvgl font, and you can use it like any lvgl font. +You can use `lv_ft_font_init()` to create FreeType fonts. It returns `true` to indicate success, at the same time, the `font` member of `lv_ft_info_t` will be filled with a pointer to an LVGL font, and you can use it like any LVGL font. -Font style supports bold and italic, you can use the following macro to set: +Font style supports bold and italic, you can use the following macros to set: 1. `FT_FONT_STYLE_NORMAL`:default style. 1. `FT_FONT_STYLE_ITALIC`:Italic style 1. `FT_FONT_STYLE_BOLD`:bold style @@ -40,9 +39,7 @@ You can simply pass the path to the font as usual on your operating system or pl ## Example ```eval_rst - .. include:: ../../examples/libs/freetype/index.rst - ``` @@ -52,10 +49,7 @@ You can simply pass the path to the font as usual on your operating system or pl ## API - ```eval_rst - .. doxygenfile:: lv_freetype.h :project: lvgl - ``` \ No newline at end of file diff --git a/docs/libs/fsdrv.md b/docs/libs/fsdrv.md index 48043d692a..06ecf6c13d 100644 --- a/docs/libs/fsdrv.md +++ b/docs/libs/fsdrv.md @@ -5,15 +5,15 @@ # File System Interfaces -LVGL has a [File system](https://docs.lvgl.io/master/overview/file-system.html) module to provides an abstraction layer for various file system drivers. +LVGL has a [File system](https://docs.lvgl.io/master/overview/file-system.html) module to provide an abstraction layer for various file system drivers. -LVG has build in support for +LVG has built in support for: - [FATFS](http://elm-chan.org/fsw/ff/00index_e.html) - STDIO (Linux and Windows using C standard function .e.g fopen, fread) - POSIX (Linux and Windows using POSIX function .e.g open, read) - WIN32 (Windows using Win32 API function .e.g CreateFileA, ReadFile) -You still need to provide the drivers and libraries, this extensions provide only the bridge between FATFS, STDIO, POSIX, WIN32 and LVGL. +You still need to provide the drivers and libraries, this extension provides only the bridge between FATFS, STDIO, POSIX, WIN32 and LVGL. ## Usage diff --git a/docs/libs/gif.md b/docs/libs/gif.md index bb3f6e73c4..ca1ac2e0fb 100644 --- a/docs/libs/gif.md +++ b/docs/libs/gif.md @@ -4,11 +4,11 @@ ``` # GIF decoder -Allow to use of GIF images in LVGL. Based on https://github.com/lecram/gifdec +Allow using GIF images in LVGL. Based on https://github.com/lecram/gifdec When enabled in `lv_conf.h` with `LV_USE_GIF` `lv_gif_create(parent)` can be used to create a gif widget. -`lv_gif_set_src(obj, src)` works very similarly to `lv_img_set_src`. As source It also accepts images as variables (`lv_img_dsc_t`) or files. +`lv_gif_set_src(obj, src)` works very similarly to `lv_img_set_src`. As source, it also accepts images as variables (`lv_img_dsc_t`) or files. ## Convert GIF files to C array @@ -16,7 +16,6 @@ To convert a GIF file to byte values array use [LVGL's online converter](https:/ ## Use GIF images from file - For example: ```c lv_gif_set_src(obj, "S:path/to/example.gif"); @@ -33,16 +32,12 @@ To decode and display a GIF animation the following amount of RAM is required: ## Example ```eval_rst - .. include:: ../../examples/libs/gif/index.rst - ``` ## API ```eval_rst - .. doxygenfile:: lv_gif.h :project: lvgl - ``` \ No newline at end of file diff --git a/docs/libs/qrcode.md b/docs/libs/qrcode.md index 5ab2326a1a..72e4c53720 100644 --- a/docs/libs/qrcode.md +++ b/docs/libs/qrcode.md @@ -24,7 +24,7 @@ lv_qrcode_update(qr, data, strlen(data)); ``` ## Notes -- QR codes with less data are smaller but they scaled by an integer numbers number to best fit to the given size +- QR codes with less data are smaller, but they scaled by an integer number to best fit to the given size. ## Example diff --git a/docs/libs/rlottie.md b/docs/libs/rlottie.md index b7c1834926..b4464c05c2 100644 --- a/docs/libs/rlottie.md +++ b/docs/libs/rlottie.md @@ -12,7 +12,7 @@ LVGL provides the interface to [Samsung/rlottie](https://github.com/Samsung/rlot ## Build Rlottie To build Samsung's Rlottie C++14-compatible compiler and optionally CMake 3.14 or higher is required. -To build on desktop you can follow the instrutions from Rlottie's [README](https://github.com/Samsung/rlottie/blob/master/README.md). In the most basic case it looks like this: +To build on desktop you can follow the instructions from Rlottie's [README](https://github.com/Samsung/rlottie/blob/master/README.md). In the most basic case it looks like this: ``` mkdir rlottie_workdir cd rlottie_workdir diff --git a/docs/libs/sjpg.md b/docs/libs/sjpg.md index 40d351dd19..95f97c0a7f 100644 --- a/docs/libs/sjpg.md +++ b/docs/libs/sjpg.md @@ -14,7 +14,7 @@ Allow the use of JPG images in LVGL. Besides that it also allows the use of a cu - SJPG is 'split-jpeg' which is a bundle of small jpeg fragments with an sjpg header. - SJPG size will be almost comparable to the jpg file or might be a slightly larger. - File read from file and c-array are implemented. - - SJPEG frame fragment cache enables fast fetching of lines if availble in cache. + - SJPEG frame fragment cache enables fast fetching of lines if available in cache. - By default the sjpg image cache will be image width * 2 * 16 bytes (can be modified) - Currently only 16 bit image format is supported (TODO) - Only the required partion of the JPG and SJPG images are decoded, therefore they can't be zoomed or rotated. diff --git a/docs/overview/image.md b/docs/overview/image.md index a930361dbd..3e18773825 100644 --- a/docs/overview/image.md +++ b/docs/overview/image.md @@ -299,7 +299,7 @@ The number of cache entries can be defined with `LV_IMG_CACHE_DEF_SIZE` in *lv_c The size of the cache can be changed at run-time with `lv_img_cache_set_size(entry_num)`. ### Value of images -When you use more images than cache entries, LVGL can't cache all of the images. Instead, the library will close one of the cached images to free space. +When you use more images than cache entries, LVGL can't cache all the images. Instead, the library will close one of the cached images to free space. To decide which image to close, LVGL uses a measurement it previously made of how long it took to open the image. Cache entries that hold slower-to-open images are considered more valuable and are kept in the cache as long as possible. diff --git a/docs/overview/indev.md b/docs/overview/indev.md index d66655fef8..e10c0f2168 100644 --- a/docs/overview/indev.md +++ b/docs/overview/indev.md @@ -25,7 +25,7 @@ Pointer input devices (like a mouse) can have a cursor. lv_indev_t * mouse_indev = lv_indev_drv_register(&indev_drv); LV_IMG_DECLARE(mouse_cursor_icon); /*Declare the image source.*/ -lv_obj_t * cursor_obj = lv_img_create(lv_scr_act()); /*Create an image object for the cursor */ +lv_obj_t * cursor_obj = lv_img_create(lv_scr_act()); /*Create an image object for the cursor */ lv_img_set_src(cursor_obj, &mouse_cursor_icon); /*Set the image source*/ lv_indev_set_cursor(mouse_indev, cursor_obj); /*Connect the image object to the driver*/ ``` @@ -34,7 +34,7 @@ Note that the cursor object should have `lv_obj_clear_flag(cursor_obj, LV_OBJ_FL For images, *clicking* is disabled by default. ### Gestures -Pointer input devives can detect basic gestures. By default, most of the widgets send the gestures to its parent, so finally the gestures can be detected on the screen object in a form of an `LV_EVENT_GESTURE` event. For example: +Pointer input devices can detect basic gestures. By default, most of the widgets send the gestures to its parent, so finally the gestures can be detected on the screen object in a form of an `LV_EVENT_GESTURE` event. For example: ```c void my_event(lv_event_t * e) @@ -62,7 +62,7 @@ void my_event(lv_event_t * e) lv_obj_add_event_cb(screen1, my_event, LV_EVENT_GESTURE, NULL); ``` -To prevent passing the gesture event to the parent from an obejct use `lv_obj_clear_flag(obj, LV_OBJ_FLAG_GESTURE_BUBBLE)`. +To prevent passing the gesture event to the parent from an object use `lv_obj_clear_flag(obj, LV_OBJ_FLAG_GESTURE_BUBBLE)`. Note that, gestures are not triggered if an object is being scrolled. diff --git a/docs/overview/object.md b/docs/overview/object.md index 0eca957e07..7761859fca 100644 --- a/docs/overview/object.md +++ b/docs/overview/object.md @@ -83,7 +83,7 @@ lv_obj_set_pos(parent, 50, 50); /*Move the parent. The child will move with it.* ### Visibility only on the parent -If a child is partially or fully outside of its parent then the parts outside will not be visible. +If a child is partially or fully outside its parent then the parts outside will not be visible. ![](/misc/par_child3.png "A graphical object is visible on its parent") diff --git a/docs/overview/scroll.md b/docs/overview/scroll.md index a6d2c6769e..8fc05a1ab4 100644 --- a/docs/overview/scroll.md +++ b/docs/overview/scroll.md @@ -5,7 +5,7 @@ # Scroll ## Overview -In LVGL scrolling works very intuitively: if an object is outside of its parent content area (the size without padding), the parent becomes scrollable and scrollbar(s) will appear. That's it. +In LVGL scrolling works very intuitively: if an object is outside its parent content area (the size without padding), the parent becomes scrollable and scrollbar(s) will appear. That's it. Any object can be scrollable including `lv_obj_t`, `lv_img`, `lv_btn`, `lv_meter`, etc @@ -17,7 +17,7 @@ The object can either be scrolled horizontally or vertically in one stroke; diag Scrollbars are displayed according to a configured `mode`. The following `mode`s exist: - `LV_SCROLLBAR_MODE_OFF` Never show the scrollbars - `LV_SCROLLBAR_MODE_ON` Always show the scrollbars -- `LV_SCROLLBAR_MODE_ACTIVE` Show scroll bars while a object is being scrolled +- `LV_SCROLLBAR_MODE_ACTIVE` Show scroll bars while an object is being scrolled - `LV_SCROLLBAR_MODE_AUTO` Show scroll bars when the content is large enough to be scrolled `lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_...)` sets the scrollbar mode on an object. diff --git a/docs/overview/style-props.md b/docs/overview/style-props.md index c999a741c2..8fe60984f5 100644 --- a/docs/overview/style-props.md +++ b/docs/overview/style-props.md @@ -139,7 +139,7 @@ Zoom image-like objects. Multiplied with the zoom set on the object. The value 2 ## Padding -Properties to describe spacing betwwen the parent's sides and the children and among the children. Very similar to the padding properties in HTML. +Properties to describe spacing between the parent's sides and the children and among the children. Very similar to the padding properties in HTML. ### pad_top Sets the padding on the top. It makes the content area smaller in this direction. @@ -307,7 +307,7 @@ Set the intensity of background image recoloring. Value 0, `LV_OPA_0` or `LV_OPA ### bg_img_tiled -If enbaled the background image will be tiled. The possible values are `true` or `false`. +If enabled the background image will be tiled. The possible values are `true` or `false`. ### border_opa -Set the opcitiy of the border. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 256, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency. +Set the opacity of the border. Value 0, `LV_OPA_0` or `LV_OPA_TRANSP` means fully transparent, 256, `LV_OPA_100` or `LV_OPA_COVER` means fully covering, other values or LV_OPA_10, LV_OPA_20, etc means semi transparency. ### border_side -Set ony which side(s) the border should be drawn. The possible values are `LV_BORDER_SIDE_NONE/TOP/BOTTOM/LEFT/RIGHT/INTERNAL`. OR-ed calues an be used as well, e.g. `LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_LEFT`. +Set ony which side(s) the border should be drawn. The possible values are `LV_BORDER_SIDE_NONE/TOP/BOTTOM/LEFT/RIGHT/INTERNAL`. OR-ed values can be used as well, e.g. `LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_LEFT`. ### border_post -Sets whether the the border should be drawn before or after the children ar drawn. `true`: after children, `false`: before children +Sets whether the border should be drawn before or after the children are drawn. `true`: after children, `false`: before children ## Outline -Properties to describe the outline. It's like a border but drawn outside of the rectangles. +Properties to describe the outline. It's like a border but drawn outside the rectangles. ### outline_width Set the width of the outline in pixels. @@ -433,7 +433,7 @@ Set an offset on the shadow in pixels in Y direction. ### shadow_spread -Make the shadow calcuation to use a larger or smaller rectangle as base. The value can be in pixel to make the area larger/smaller +Make the shadow calculation to use a larger or smaller rectangle as base. The value can be in pixel to make the area larger/smaller ## Miscellaneous -Mixed proprites for various purposes. +Mixed properties for various purposes. ### radius Set the radius on every corner. The value is interpreted in pixel (>= 0) or `LV_RADIUS_CIRCLE` for max. radius @@ -709,7 +709,7 @@ The intensity of mixing of color filter. ### anim_time -The animation time in milliseconds. It's meaning is widget specific. E.g. blink time of the cursor on the text area or scroll time of a roller. See the widgets' documentation to learn more. +The animation time in milliseconds. Its meaning is widget specific. E.g. blink time of the cursor on the text area or scroll time of a roller. See the widgets' documentation to learn more. ### anim_speed -The animation speed in pixel/sec. It's meaning is widget specific. E.g. scroll speed of label. See the widgets' documentation to learn more. +The animation speed in pixel/sec. Its meaning is widget specific. E.g. scroll speed of label. See the widgets' documentation to learn more. ### blend_mode -Describes how to blend the colors to the background. The possibel values are `LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE/MULTIPLY` +Describes how to blend the colors to the background. The possible values are `LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE/MULTIPLY` ### base_dir -Set the base direction of the obejct. The possible values are `LV_BIDI_DIR_LTR/RTL/AUTO`. +Set the base direction of the object. The possible values are `LV_BIDI_DIR_LTR/RTL/AUTO`.