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)
* fixes for rp2 port (only format strings: int/int32_t mismatch, %d -> %ld)
* use portable PRId32 printf format, #include <inttypes.h> via lv_printf.h
* define LV_PRId32 macro (for int)
* figure out good way to build inside Micropython (plus indentation)
* re-add examples (lost on the way)
* hopefully fix PRI32d
* Revert off CMakeLists.txt changes so that this is about printf only
Create one GitHub workflow job for each build option build
or test execution. This allows each of the five builds to
be executed in parallel as well as making it easier to
navigate to the test output as it now resides in its own
job.
This change **does** change the command-line arguments to
the test execution script. This is required to allow the
build options name to be passed in.
New `tests/main.py` command-line help:
```
usage: main.py [-h] [--build-options BUILD_OPTIONS] [--clean]
[--report]
[{build,test} [{build,test} ...]]
Build and/or run LVGL tests.
positional arguments:
{build,test} build: compile build tests, test:
compile/run executable tests.
optional arguments:
-h, --help show this help message and exit
--build-options BUILD_OPTIONS
the build option name to build or run.
When omitted all build configurations
are used.
--clean clean existing build artifacts before
operation.
--report generate code coverage report for
tests.
This program builds and optionally runs the LVGL test programs.
There are two types of LVGL tests: "build", and "test". The
build-only tests, as their name suggests, only verify that the
program successfully compiles and links (with various build
options). There are also a set of tests that execute to verify
correct LVGL library behavior.
```
* refactor(img) the function name spelling error
* fix(imgbtn) imgbtn display incorrect when the coordinate is negative
* imgbtn is ok now
* fix the potential bug that maybe it can not run into the "for" loop correctly
Simplifies `tests/main.py` as it no longer needs to invoke
tests individually or keep track of and report their pass/fail
status.
Also enables the ability to run tests in parallel, support timeouts,
and re-run flaky tests.
https://cmake.org/cmake/help/latest/manual/ctest.1.html
Simplified workflow and documentation, by moving the
development package prerequisites into a new build script
`scripts/install-prerequisites.sh`.
Also, moved prerequisite installation into its own CI step and
removed explicit working directory change as it is no longer
needed (`main.py` does it).
* Convert tests/Makefile to a cmake project file.
This change switches the building of LVGL tests to use cmake
which is more portable than make. Additionally, whenever
cmake can be used, instead of the Python script (`main.py`),
the former is preferred.
The interface to `main.py` is unchanged, and tests are built
and executated the same as before.
This closes https://github.com/lvgl/lvgl/issues/2474.
* Installing `gcovr` in GitHub workflow.
* Documented steps to install libpng-dev.
* Added missing stdout flush when running tests.
* Grammar tweak in README.
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
line 32 of lv_example_scroll_6.c, if LV_USE_LARGE_COORD not configured,
x_sqr will overflow when r is greater than 256.
Signed-off-by: liushuai25 <liushuai25@xiaomi.com>
Co-authored-by: liushuai25 <liushuai25@xiaomi.com>
* Refactor unit test scripts.
Does the following:
1. Remove as many dependencies on the operating system shell as possible.
For example, use of shutil.rmtree(...) instead of os.system('rm -r ...').
This brings this script a bit closer to being able to run on Windows.
2. Switch from os.system() to subprocess.check_call().
* This is a bit more secure as check_call() directly invokes the subprocess
without evaluation the arguments on a command-line.
* Removes the need to evaluate the return code as check_call() does this.
* Can directly set environment variables (e.g. env=cmd_env) instead of
including with subprocess invocation (e.g. BIN=test.bin).
3. Minor cleanup to main.py sys.argv parsing.
4. PEP8 formatting.
* Ignore FileNotFoundError for rmtree('report').
* Back to os.system for gcovr.
* Removed unused shutil import.