* Try to fix ASAN behavior
* improve alignments
* fix buffer overflow and various other fixes
* minor fixes
* formatting
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
* test(bar) Add test for docummented default attributes
* test(bar) Update test for docummented default attributes
* test(bar): Indicator width tracks value
* test(bar) Calculate bar indicator width based on its style
Take padding, max value and bar value into consideraion
* test(bar) Indicator area gets smaller when increasing padding in LV_PART_MAIN style
* test(bar) Start value changes only when in range mode
* docs(bar): Add missing MODE to symbols
* test(bar) Start value should be smaller than current value
* test(bar): Test current value truncation to max and min value
* bar: Check bar mode in lv_bar_set_start_value
bar start_value can be changed only when bar is in LV_BAR_MODE_RANGE mode.
Return early when it's not.
* test(bar): Fix width calculation test
* bar: Initialize indic_area in constructor
* test(bar): Refactor indicator coordinate update test
* test(bar): Indicator negative value in symmetrical mode
* test(bar): Fix base direction
* test(bar): Indicator coord test for RTL base dir
* add first implememtation
* Update src/extra/others/gridnav/lv_gridnav.c
Co-authored-by: embeddedt <42941056+embeddedt@users.noreply.github.com>
* minor fix
* add example and minor fixes
* add more examples
* add more examples
* code formatting
* add LV_GRIDNAC_CTRL_SCROLL_FIRST
* code formatting
* add example for list
* add docs
* Misc: improvements to gridnav docs (#2994)
Co-authored-by: embeddedt <42941056+embeddedt@users.noreply.github.com>
Co-authored-by: Ken Carpenter <62639971+FoundationKen@users.noreply.github.com>
* kconfig: Fix invalid dependancy in fsdrv
LV_USE_FS_* symbols are integers, instead of usual booleans.
We must treat them as such.
* ci: Get LVGL version from git tag
* docu: Update Espressif readme
* ci run apt update before installing
* Add dithering to gradients
* Add support for 8x8 matrix for ordered dithering
* Fix CI errors
* Try error diffusion on vertical gradient too
* Vertical error diffusion dithering
* Add support for runtime based dithering mode selection (from none, ordered, error diffusion).
* Reduce the binary size of the code by sharing the dithering table when appropriate.
* Fix CI
* Fix CI
* Review corrections
* Fix union mapping
* Revert bg_color changes
* Fix for keeping bg_color in the API.
* Fix after review
* Add support for setting multiple stops per gradient in the style API
* Let's make an example
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
* feat(obj scroll):subdivide LV_OBJ_FLAG_SCROLL_CHAIN into ...CHAIN_HOR and ...CHAIN_VER
* feat(roller):open the horizontal scroll chain
* chore(docs):improve the description of scroll chain
* Add support for ARGB32 to RGBA5658 format conversion required by LVGL
* Add animation control for rlottie animation
* Add support for composable play control and event sending upon reaching end of animation.
* Add protection against multiple event posting upon animation ending
* Actually pause the timer is the animation is paused. Resume on playing again.
* Improve documentation for the additional features
* Stop the timer if not looping and we've reached the end of the animation in the provided direction
* Fix various defects and improve documentation
* Add support for swapped RGB565 format too
* Let pause actually pause without messing the current frame index in the animation.
* Set invalid destination frame upon construction so it's possible to pause from frame 0.
* Set impossible destination frame index
So it's updated on first pause
* fix(misc): avoid ;; after LV_ASSERT_STYLE/LV_ASSERT_OBJ
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* fix(style_api_gen.py): remove the unused docs_prop_cnt variable
and remove the trailing space
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* fix(style_api_gen.py): ensure the generated code follow the coding style
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* fix(style_api_gen.py): ensure props has the same order of lv_style_prop_t
and correct the style flags
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* fix(CMake) split CMakeLists.txt, add options, includes and dependencies
* fix(CMake) do not use 'project' keyword with ESP_PLATFORM
* fix(CMake) prefix includes with CMAKE_CURRENT_LIST_DIR
* Don't depend on CMAKE_CURRENT_SOURCE_DIR
* fix(CMake) rename baremetal.cmake to custom.cmake
* fix(CMake) add CMake documentation
* adding font type check
* using theme specified font
supports freetype drawing
* adding font type check
* using theme specified font
supports freetype drawing
* freetype fallback font support
* improved fallback font
* updated fallback font modifier
* docs(events) LV_EVENT_APPLY was removed (#2791)
* reverted to default font logic
* removed unused function
* improved font fallback
* font fallback for default lv_draw_letter as well
* added back masked drawing support
* fallback support for freetype uncached
* updated description
* fixed constructor initialization for ISO C
* reverted unneeded changes
* using loop instead of recursion to resolve glyph info
* simplified glyph dec resolving
* removed unused enum value
* improved lv_font_fmt_ft_dsc_t field naming
* supports pointer as freetype font source
* Updated docs for font fallback
Co-authored-by: Vincent Hamp <higaski@users.noreply.github.com>
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
Some platforms define uint32_t as "unsigned long" rather than "unsigned int".
The %d format specifier is mismatched and the C99 format macros are the only
portable way to handle these types.
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
In v8.0 the header was a detached object which made it difficult to move the header and the calendar
together. Besides there were no way to notifi the header of the calendar's shown date has changed.
BREAKING CHANGE: API of cleander headers, the appearence of the calendars
related to #2573"
* fix(fs): replace all tab to space and other minor style fix
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* fix(extra/fs): rename lv_fs_libs.h to lv_fsdrv.h
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* fix(extra/fs/stdio): fix the wrong directory path in fs_dir_open
and remove the duplicated or platform specific code
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* fix(extra/fs/posix): implement in fs_dir_read
and fix the wrong directory path in fs_dir_open
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* fix(extra/fs/posix): return file handle directly to avoid malloc
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
* Update lv_spinbox.c
* Added support for moving the Spinbox digit position from right-to-left when clicking the button on an encoder. The default behaviour is when clicking the encoder button, the digit is moved from left-to-right (MSB to LSB).
* Added a check to see if the spinbox digit-count is just one. In that case it is pointless to check the buttonclick
* See also the spinbox.h file
* Update lv_spinbox.c
* Forgot the implementation of the setter function
* forgot a ;
* Update lv_spinbox.h
Adding Spinbox support for moving the digitposition both from left-to-right and right-to-left when editing a spinbox and clicking the encoder button. The current behaviour is clicking the encoder button only moves the digitposition from right to left (from MSB to LSB)
* Update lv_spinbox.c
Added brief / comment to new function
* Update lv_spinbox.h
More clear Brief / Comment
* Update lv_spinbox.c
nested function replaced by lv_pow fiunction
* Update lv_spinbox.h
removed spaces
* Update lv_spinbox.h
Replaced type used for direction of digit step when clicking an encoder with existing LVGL lv_dir_t
* Update lv_spinbox.c
Replaced type used for direction of digit step when clicking an encoder with existing LVGL lv_dir_t
* Update spinbox.md
Added comment for the new function 'lv_spinbox_set_digit_step_direction'
* Update src/extra/widgets/spinbox/lv_spinbox.h
Co-authored-by: embeddedt <42941056+embeddedt@users.noreply.github.com>
* Update src/extra/widgets/spinbox/lv_spinbox.h
Co-authored-by: embeddedt <42941056+embeddedt@users.noreply.github.com>
* Update lv_spinbox.c
bug: old definition LV_SPINBOX_DIGIT_DIR_TO_RIGHT changed to LV_DIR_RIGHT
* Update lv_spinbox.h
Extra linefeed removed
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
Co-authored-by: embeddedt <42941056+embeddedt@users.noreply.github.com>
This change introduces new fields on `lv_disp_drv_t` that allow to
specify the size of the full display and the offset of the display
subsection that is being rendered to. The values are used to transform
the drawing area before calling `flush_cb` so that only the desired part
of the full display is being rendered to.
Relates to: lvgl/lv_drivers#166
* feat(theme) add getter function for default theme
* fix(disp) set default theme also for non-default displays
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
* docs(animimg) Add missing animation image page
Skeleton page for the new `animimg` object.
It needs more review and updating, but this can serve as a start.
* docs(examples) Add index.rst for animation image
Add index.rst for animation image to include the example in the documentation of the widget.
* Update animimg.md
* fix(snapshot) image is affected by parent's style because of wrong coordinates
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
* fix(snapshot): take ext_draw_size into account and set disp res to obj size.
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
Change-Id: Iae0d37fa1b2cdf20220087ced51857a36e83bb6d
This commit replaces the current `actual & expected` check in
`lv_btnmatrix_has_btn_ctrl` with `(actual & expected) == expected`. This
is required to make the function work with ORed control flags because
otherwise a parity in *any* bit will result in a return value of `true`
even if not all expected bits are set.
It was used to position the text in one line text areas where the label is shorter then the text area itself.
However, setting min_width=100% in case of one line text area ensures that the label is at least as wide as
the text area. This way the normal text_align style property can be used too.
Fixes https://forum.lvgl.io/t/spinbox-text-centering-not-working-as-intended-expected/6762/4
* feat add stacked area chart example
The example shows how to use a line chart and masking to create a stacked area chart.
* feat stacked area chart example
Updated index.rst to contain the stacked area chart example
* feat stacked area chart example
Coding style changes
* Update changelog
* feat(example) stacked area chart
Added axis ticks
* feat(example) stacked area chart
Responses to PR comments
- Changed to fixed point maths
- Renamed variables and filenames
* feat(example) stacked area chart
Made shift amount a variable.
* feat(example) stacked area chart
Fixed typo in changelog
Co-authored-by: Tom Hepworth <Tom_Hepworth@mentor.com>
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
Prior to this commit, when the title string was empty and the close
button disabled, an extra empty line showed at the top of the message
box. This commit prevents adding the title label unless it has content
or is needed as a spacer for the close button.
As a positive side effect, this also prevents the default "text" from
displaying when NULL is passed as the title.
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
This adds a new function lv_msgbox_get_active_btn that works analogously
to lv_msgbox_get_active_btn_text but returns the button index instead of
its text.
The index is more convenient for comparison in localized applications as
it doesn't depend on the current language.
* - renamed lv_obj_get_id(obj) to lv_obj_get_index(obj).
- added lv_obj_move_to_index(obj, index).
* automatic review comment fixed
* removed unused variable
* review issue
* restored deprecated function in header, otherwise Build Micropython with LVGL submodule / build (pull_request) failes
* moved deprecated lv_obj_get_child_id() back to lv_obj_tree.h, otherwise Micropython will not build
* inline function did not work
* made deprecated function 'static inline'
* and now also inline
* move static inline function to lv_api_map.h again
* removed lv_obj_move_up/down
* changed log to warning for deprecated function
* redefined lv_obj_move_foreground(obj) and lv_obj_move_background(obj) as inline functions now calling lv_obj_move_to_index(obj, index).
- lv_obj_swap(obj1, obj2) added. (#2461)
* - small with unneeded lv_obj_invalidate() fix in lv_obj_move_foreground() and lv_obj_move_background()
- added lv_obj_move_up() and lv_obj_move_down()
- used new functions in sample 2
- used lv_obj_swap() to shuffle (turn around) list
* solved build error
* added top and bottom buttons in sample
* docs(overview) fix draw_buf fieldname
Change display driver buffer field to the new v8 field name: draw_buf.
* docs(overview) fix lv_img_create parameters
lv_img_create only has 1 parameter in v8.
* docs(get-started) fix draw_buf fieldname
Display driver `buffer` field changed to the new v8 field name: `draw_buf`.