docs(restructure): restructure TOC and contents for ease of use (#7847)
@@ -66,7 +66,7 @@ jobs:
|
|||||||
- name: Build docs
|
- name: Build docs
|
||||||
run: docs/build.py html
|
run: docs/build.py html
|
||||||
- name: Remove .doctrees
|
- name: Remove .doctrees
|
||||||
run: rm -rf docs/output/html/.doctrees
|
run: rm -rf docs/build/html/.doctrees
|
||||||
- name: Retrieve version
|
- name: Retrieve version
|
||||||
run: |
|
run: |
|
||||||
echo "::set-output name=VERSION_NAME::$(scripts/find_version.sh)"
|
echo "::set-output name=VERSION_NAME::$(scripts/find_version.sh)"
|
||||||
@@ -77,7 +77,7 @@ jobs:
|
|||||||
token: ${{ secrets.LVGL_BOT_TOKEN }}
|
token: ${{ secrets.LVGL_BOT_TOKEN }}
|
||||||
repository-name: lvgl/docs
|
repository-name: lvgl/docs
|
||||||
branch: gh-pages # The branch the action should deploy to.
|
branch: gh-pages # The branch the action should deploy to.
|
||||||
folder: docs/output/html # The folder the action should deploy.
|
folder: docs/build/html # The folder the action should deploy.
|
||||||
target-folder: ${{ steps.version.outputs.VERSION_NAME }}
|
target-folder: ${{ steps.version.outputs.VERSION_NAME }}
|
||||||
git-config-name: lvgl-bot
|
git-config-name: lvgl-bot
|
||||||
git-config-email: lvgl-bot@users.noreply.github.com
|
git-config-email: lvgl-bot@users.noreply.github.com
|
||||||
@@ -89,7 +89,7 @@ jobs:
|
|||||||
token: ${{ secrets.LVGL_BOT_TOKEN }}
|
token: ${{ secrets.LVGL_BOT_TOKEN }}
|
||||||
repository-name: lvgl/docs
|
repository-name: lvgl/docs
|
||||||
branch: gh-pages # The branch the action should deploy to.
|
branch: gh-pages # The branch the action should deploy to.
|
||||||
folder: docs/output/html # The folder the action should deploy.
|
folder: docs/build/html # The folder the action should deploy.
|
||||||
target-folder: master
|
target-folder: master
|
||||||
git-config-name: lvgl-bot
|
git-config-name: lvgl-bot
|
||||||
git-config-email: lvgl-bot@users.noreply.github.com
|
git-config-email: lvgl-bot@users.noreply.github.com
|
||||||
|
|||||||
@@ -1,11 +1,2 @@
|
|||||||
output/
|
build/
|
||||||
tmp/
|
intermediate/
|
||||||
xml/
|
|
||||||
API/
|
|
||||||
api_doc
|
|
||||||
doxygen_html
|
|
||||||
env
|
|
||||||
examples.md
|
|
||||||
examples.rst
|
|
||||||
LVGL.pdf
|
|
||||||
_static/built_lv_examples
|
|
||||||
|
|||||||
@@ -1,235 +0,0 @@
|
|||||||
.. _contributing:
|
|
||||||
|
|
||||||
============
|
|
||||||
Contributing
|
|
||||||
============
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
************
|
|
||||||
|
|
||||||
Join LVGL's community and leave your footprint in the library!
|
|
||||||
|
|
||||||
There are a lot of ways to contribute to LVGL even if you are new to the
|
|
||||||
library or even new to programming.
|
|
||||||
|
|
||||||
It might be scary to make the first step but you have nothing to be
|
|
||||||
afraid of. A friendly and helpful community is waiting for you. Get to
|
|
||||||
know like-minded people and make something great together.
|
|
||||||
|
|
||||||
So let's find which contribution option fits you the best and helps you
|
|
||||||
join the development of LVGL!
|
|
||||||
|
|
||||||
Ways to Contribute
|
|
||||||
******************
|
|
||||||
|
|
||||||
- **Spread the Word**: Share your LVGL experience with friends or on social media to boost its visibility.
|
|
||||||
- **Star LVGL** Give us a star on `GitHub <https://github.com/lvgl/lvgl>`__! It helps a lot to make LVGL more appealing for newcomers.
|
|
||||||
- **Report a Bug**: Open a `GitHub Issue <https://github.com/lvgl/lvgl/issues>`__ if something is not working.
|
|
||||||
- **Join Our** `Forum <https://forum.lvgl.io/>`__ : Meet fellow developers and discuss questions.
|
|
||||||
- **Tell Us Your Ideas**: If you feel something is missing from LVGL, we would love to hear about it in a `GitHub Issue <https://github.com/lvgl/lvgl/issues>`__
|
|
||||||
- **Develop Features**: Help to design or develop a feature. See below.
|
|
||||||
|
|
||||||
Mid- and large-scale issues are discussed in `Feature Planning <https://github.com/lvgl/lvgl/issues/new?assignees=&labels=&projects=&template=feat-planning.yml>`__ issues.
|
|
||||||
|
|
||||||
An issue can be developed when all the questions in the issue template are answered and there are no objection from any core member.
|
|
||||||
|
|
||||||
We are using GitHub labels to show the state and attributes of the issues and Pull requests.
|
|
||||||
If you are looking for contribution opportunities you can `Filter for these labels <https://github.com/lvgl/lvgl/labels>`__ :
|
|
||||||
|
|
||||||
- ``Simple``: Good choice to get started with an LVGL contribution
|
|
||||||
- ``PR needed``: We investigated the issue but it still needs to be implemented
|
|
||||||
- ``Review needed``: A Pull request is opened and it needs review/testing
|
|
||||||
|
|
||||||
|
|
||||||
.. _contributing_pull_requests:
|
|
||||||
|
|
||||||
Pull Requests
|
|
||||||
*************
|
|
||||||
|
|
||||||
Merging new code into LVGL, documentation, blog, examples, and other
|
|
||||||
repositories happens via *Pull requests* (PR for short). A PR is a
|
|
||||||
notification like "Hey, I made some updates to your project. Here are
|
|
||||||
the changes, you can add them if you want." To do this you need a copy
|
|
||||||
(called fork) of the original project under your account, make some
|
|
||||||
changes there, and notify the original repository about your updates.
|
|
||||||
You can see what it looks like on GitHub for LVGL here:
|
|
||||||
https://github.com/lvgl/lvgl/pulls.
|
|
||||||
|
|
||||||
To add your changes you can edit files online on GitHub and send a new
|
|
||||||
Pull request from there (recommended for small changes) or add the
|
|
||||||
updates in your favorite editor/IDE and use ``git`` to publish the changes
|
|
||||||
(recommended for more complex updates).
|
|
||||||
|
|
||||||
From GitHub
|
|
||||||
-----------
|
|
||||||
|
|
||||||
1. Navigate to the file you want to edit.
|
|
||||||
2. Click the Edit button in the top right-hand corner.
|
|
||||||
3. Add your changes to the file.
|
|
||||||
4. Add a commit message at the bottom of the page.
|
|
||||||
5. Click the *Propose changes* button.
|
|
||||||
|
|
||||||
From Command Line
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The instructions describe the main ``lvgl`` repository but it works the
|
|
||||||
same way for the other repositories.
|
|
||||||
|
|
||||||
1. Fork the `lvgl repository <https://github.com/lvgl/lvgl>`__. To do this click the
|
|
||||||
"Fork" button in the top right corner. It will "copy" the ``lvgl``
|
|
||||||
repository to your GitHub account (``https://github.com/<YOUR_NAME>?tab=repositories``)
|
|
||||||
2. Clone your forked repository.
|
|
||||||
3. Add your changes. You can create a *feature branch* from THE ``master`` branch for the updates: ``git checkout -b <new-feature-branch-name>``
|
|
||||||
4. Commit and push your changes to the forked ``lvgl`` repository.
|
|
||||||
5. Create a PR on GitHub from the page of your ``lvgl`` repository (``https://github.com/<YOUR_NAME>/lvgl``) by
|
|
||||||
clicking the *"New pull request"* button. Don't forget to select the branch where you added your changes.
|
|
||||||
6. Set the base branch where you want to merge your update. In the ``lvgl`` repo both fixes
|
|
||||||
and new features are directed to the ``master`` branch.
|
|
||||||
7. Describe what is in the update. Example code is welcome if applicable.
|
|
||||||
8. If you need to make more changes, just update your forked ``lvgl`` repo with new commits.
|
|
||||||
They will automatically appear in the PR.
|
|
||||||
|
|
||||||
.. _contributing_commit_message_format:
|
|
||||||
|
|
||||||
Commit Message Format
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
The commit messages format is inspired by `Angular Commit
|
|
||||||
Format <https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit>`__.
|
|
||||||
|
|
||||||
The following structure should be used:
|
|
||||||
|
|
||||||
.. code-block::
|
|
||||||
|
|
||||||
<type>(<scope>): <subject>
|
|
||||||
<BLANK LINE>
|
|
||||||
<body>
|
|
||||||
<BLANK LINE>
|
|
||||||
<footer>
|
|
||||||
|
|
||||||
Possible ``<type>``\ s:
|
|
||||||
|
|
||||||
- ``fix`` bugfix in LVGL source code
|
|
||||||
- ``feat`` new feature
|
|
||||||
- ``arch`` architectural changes
|
|
||||||
- ``perf`` changes that affect performance
|
|
||||||
- ``example`` anything related to examples (including fixes and new examples)
|
|
||||||
- ``docs`` anything related to documentation (including fixes, formatting, and new pages)
|
|
||||||
- ``test`` anything related to tests (new and updated tests or CI actions)
|
|
||||||
- ``chore`` any minor formatting or style changes that would make the changelog noisy
|
|
||||||
|
|
||||||
``<scope>`` is the name of the module, file, or subsystem affected by the
|
|
||||||
commit. It's usually one word and can be chosen freely. For example
|
|
||||||
``img``, ``layout``, ``txt``, ``anim``. The scope can be omitted.
|
|
||||||
|
|
||||||
``<subject>`` contains a short description of the change:
|
|
||||||
|
|
||||||
- use the imperative, present tense: "change" not "changed" nor "changes",
|
|
||||||
- don't capitalize the first letter,
|
|
||||||
- no period (``.``) at the end,
|
|
||||||
- max 90 characters.
|
|
||||||
|
|
||||||
``<body>`` optional and can be used to describe details of the
|
|
||||||
change.
|
|
||||||
|
|
||||||
``<footer>`` shall contain
|
|
||||||
|
|
||||||
- the words "BREAKING CHANGE" if the changes break the API
|
|
||||||
- reference to the GitHub issue or Pull Request if applicable.
|
|
||||||
(See `Linking a pull rquest to an issue <https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests#linking-a-pull-request-to-an-issue>`__
|
|
||||||
for details.)
|
|
||||||
|
|
||||||
Some examples:
|
|
||||||
|
|
||||||
.. code-block:: text
|
|
||||||
|
|
||||||
fix(image): update size when a new source is set
|
|
||||||
|
|
||||||
.. code-block:: text
|
|
||||||
|
|
||||||
fix(bar): fix memory leak
|
|
||||||
|
|
||||||
The animations weren't deleted in the destructor.
|
|
||||||
|
|
||||||
Fixes: #1234
|
|
||||||
|
|
||||||
.. code-block:: text
|
|
||||||
|
|
||||||
feat: add span widget
|
|
||||||
|
|
||||||
The span widget allows mixing different font sizes, colors and styles.
|
|
||||||
It's similar to HTML <span>
|
|
||||||
|
|
||||||
.. code-block:: text
|
|
||||||
|
|
||||||
docs(porting): fix typo
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. _contributing_dco:
|
|
||||||
|
|
||||||
Developer Certification of Origin (DCO)
|
|
||||||
***************************************
|
|
||||||
|
|
||||||
Overview
|
|
||||||
--------
|
|
||||||
|
|
||||||
To ensure all licensing criteria are met for every repository of the
|
|
||||||
LVGL project, we apply a process called DCO (Developer's Certificate of
|
|
||||||
Origin).
|
|
||||||
|
|
||||||
The text of DCO can be read here: https://developercertificate.org/.
|
|
||||||
|
|
||||||
By contributing to any repositories of the LVGL project you agree that
|
|
||||||
your contribution complies with the DCO.
|
|
||||||
|
|
||||||
If your contribution fulfills the requirements of the DCO, no further
|
|
||||||
action is needed. If you are unsure feel free to ask us in a comment,
|
|
||||||
e.g. in your submitted :ref:`Pull Request <contributing_pull_requests>`.
|
|
||||||
|
|
||||||
Accepted licenses and copyright notices
|
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
To make the DCO easier to digest, here are some practical guides about
|
|
||||||
specific cases:
|
|
||||||
|
|
||||||
Your own work
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The simplest case is when the contribution is solely your own work. In
|
|
||||||
this case you can just send a Pull Request without worrying about any
|
|
||||||
licensing issues.
|
|
||||||
|
|
||||||
Use code from online source
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
If the code you would like to add is based on an article, post or
|
|
||||||
comment on a website (e.g. StackOverflow) the license and/or rules of
|
|
||||||
that site should be followed.
|
|
||||||
|
|
||||||
For example in case of StackOverflow, a notice like this can be used:
|
|
||||||
|
|
||||||
.. code-block::
|
|
||||||
|
|
||||||
/* The original version of this code-snippet was published on StackOverflow.
|
|
||||||
* Post: http://stackoverflow.com/questions/12345
|
|
||||||
* Author: http://stackoverflow.com/users/12345/username
|
|
||||||
* The following parts of the snippet were changed:
|
|
||||||
* - Check this or that
|
|
||||||
* - Optimize performance here and there
|
|
||||||
*/
|
|
||||||
... code snippet here ...
|
|
||||||
|
|
||||||
Use MIT licensed code
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
As LVGL is MIT licensed, other MIT licensed code can be integrated
|
|
||||||
without issues. The MIT license requires a copyright notice be added to
|
|
||||||
the derived work. Any derivative work based on MIT licensed code must
|
|
||||||
copy the original work's license file or text.
|
|
||||||
|
|
||||||
Use GPL licensed code
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The GPL license is not compatible with the MIT license. Therefore, LVGL
|
|
||||||
cannot accept GPL licensed code.
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# Minimal makefile for Sphinx documentation
|
||||||
|
#
|
||||||
|
|
||||||
|
# You can set these variables from the command line, and also
|
||||||
|
# from the environment for the first two.
|
||||||
|
SPHINXOPTS ?=
|
||||||
|
SPHINXBUILD ?= sphinx-build
|
||||||
|
BUILDDIR = build
|
||||||
|
SOURCEDIR = intermediatex
|
||||||
|
|
||||||
|
# SOURCEDIR can be overridden by LVGL_DOC_BUILD_INTERMEDIATE_DIR
|
||||||
|
LEN := $(shell printf '%s' '$(LVGL_DOC_BUILD_INTERMEDIATE_DIR)' | wc -c)
|
||||||
|
|
||||||
|
ifeq ($(shell test $(LEN) -gt 0; echo $$?),0)
|
||||||
|
SOURCEDIR = $(LVGL_DOC_BUILD_INTERMEDIATE_DIR)
|
||||||
|
else
|
||||||
|
SOURCEDIR = intermediate
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Put it first so that "make" without argument is like "make help".
|
||||||
|
help:
|
||||||
|
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||||
|
|
||||||
|
.PHONY: help Makefile
|
||||||
|
|
||||||
|
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||||
|
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||||
|
# It can be supplied from an environment variable 'O' or on make command line.
|
||||||
|
%: Makefile
|
||||||
|
$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
|
|
||||||
.. |check| replace:: ☑️
|
|
||||||
|
|
||||||
.. |uncheck| replace:: 🔲
|
|
||||||
|
|
||||||
.. _roadmap:
|
|
||||||
|
|
||||||
Roadmap
|
|
||||||
=======
|
|
||||||
|
|
||||||
v9
|
|
||||||
--
|
|
||||||
|
|
||||||
Schedule
|
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
- December 4: Feature stop, start updating the docs and testing
|
|
||||||
- December 18: Release candidate version and call to test
|
|
||||||
- January 15: Release v9.0
|
|
||||||
|
|
||||||
Naming and API
|
|
||||||
~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
- |check| `lv_style_set_size()` should have separate width and height parameters
|
|
||||||
- |check| Reconsider image color formats.
|
|
||||||
- |check| More consistent names:`remove/clear/delete/del`, `offset/ofs`, `add/create/register`, `id/idx/index`, `middle/mid/center`, `img/image`, `txt/text`, `opa/opacity/alpha`, `scr/screen`, `disp, display`, `finished/complete/completed/ready`, `buf/buffer`, `..._cb`, `angle/rotation`, `zoom/scale`, `has`, `is`, `enable`
|
|
||||||
- |check| Update canvas API `LINK <https://github.com/lvgl/lvgl/issues/3393>`__
|
|
||||||
- |check| `LV_STYLE_PROP_INHERIT` -> `LV_STYLE_PROP_FLAG_INHERITABLE`
|
|
||||||
`LINK <https://github.com/lvgl/lvgl/pull/3390#discussion_r885915769>`__
|
|
||||||
- |check| Replace `disp_drv->direct_mode/full_refresh` with enum.
|
|
||||||
- |check| Consider flat directory structure. E.g. `extra/widgets` to `widgets`
|
|
||||||
- |check| Use `uint32_t` and `int32_t` in APIs where possible. Consider hardcoding `int32_t` as `int32_t`.
|
|
||||||
- |check| To define a new stdlib API use defines `LV_USE_CUSTOM_...` and
|
|
||||||
let the user implement `lv_...` functions somewhere (instead of defining the name of the custom functions)
|
|
||||||
(see `here <https://github.com/lvgl/lvgl/issues/3481#issuecomment-1206434501>`__)
|
|
||||||
- |check| Gradient with alpha
|
|
||||||
|
|
||||||
Architecture
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
- |check| Consider merging `lv_disp_drv_t`, `lv_disp_t`, `lv_disp_draw_buf_t`, `lv_draw_ctx_t` `struct`'s from the new driver API (or only some of them)
|
|
||||||
- |check| New driver architecture #2720
|
|
||||||
- |check| `draw_ctx->buffer_convert`?
|
|
||||||
(see `here <https://github.com/lvgl/lvgl/issues/3379#issuecomment-1147954592>`__)
|
|
||||||
Also remove 16 SWAPPED color format?
|
|
||||||
(see `here <https://github.com/lvgl/lvgl/issues/3379#issuecomment-1140886258>`__)
|
|
||||||
- |check| Reconsider masks. There should be a generic high level mask API which is independent of the drawing engine.
|
|
||||||
`#4059 <https://github.com/lvgl/lvgl/issues/4059>`__
|
|
||||||
- |check| `get_glyph_bitmap` should return an a8 bitmap that can be blended immediately.
|
|
||||||
(see `here <https://github.com/lvgl/lvgl/pull/3390#pullrequestreview-990710921>`__)
|
|
||||||
- |check| Make LVGL render independent areas in parallel.
|
|
||||||
`#4016 <https://github.com/lvgl/lvgl/issues/4016>`__
|
|
||||||
- |check| Drop `lv_mem_buf_get` as tlsf should be fast enough for normal allocations as well.
|
|
||||||
Fragmentation is also lower if processes can completely clean up after themselves.
|
|
||||||
- |check| More color formats: 24 bit, ARGB1555, ARGB4444 etc
|
|
||||||
(see `here <https://forum.lvgl.io/t/keypad-input-device-why-lv-event-long-pressed-only-on-enter/10263>`__)
|
|
||||||
- |check| Unified caching #3116 #3415
|
|
||||||
- |check| Variable binding. I.e create properties which can be bound to Widgets and those Widgets are notified on value change. Maybe based on `lv_msg`?
|
|
||||||
- |uncheck| Add GPU abstraction for display rotation
|
|
||||||
- |check| Replace the `read_line_cb` of the image decoders with `get_area_cb`
|
|
||||||
- |check| Limit the image caching size in bytes instead of image count
|
|
||||||
- |check| lv_draw_buf for unified stride, buffer and cache invalidation management. `4241 <https://github.com/lvgl/lvgl/pull/4241>`__
|
|
||||||
- |check| Add vector graphics support via ThorVG
|
|
||||||
- |check| SVG support: integrate an SVG render library `4388 <https://github.com/lvgl/lvgl/issues/4388>`__
|
|
||||||
- |check| Introduce optional ``float`` support. `4648 <https://github.com/lvgl/lvgl/issues/4648>`__
|
|
||||||
- |check| Introduce support layer for 3D GPUs (OpenGL, SDL, Vulkan, etc). `4622 <https://github.com/lvgl/lvgl/issues/4622>`__
|
|
||||||
|
|
||||||
Styles
|
|
||||||
~~~~~~
|
|
||||||
|
|
||||||
- |check| non-uniform scale of images: scale width and height differently
|
|
||||||
- |check| Scroll anim settings should come from styles to allow customization
|
|
||||||
|
|
||||||
Widgets
|
|
||||||
~~~~~~~
|
|
||||||
|
|
||||||
- |check| Universal scale widget/support
|
|
||||||
- |check| `lv_img`: Reconsider image sizing models
|
|
||||||
(when the image size is not content): center, top-left, zoom, tile, other?
|
|
||||||
- |check| `lv_tabview` Replace button matrix with real buttons for more flexibility
|
|
||||||
(see `here <https://forum.lvgl.io/t/linear-meter-bar-with-ticks/10986>`__ and #4043)
|
|
||||||
- |check| Disabled widgets should absorb indev actions without sending events. `#3860 <https://github.com/lvgl/lvgl/issues/3860>`__
|
|
||||||
|
|
||||||
Animations
|
|
||||||
~~~~~~~~~~
|
|
||||||
|
|
||||||
- |check| `lv_anim_time_to_speed` should work differently to remove
|
|
||||||
`style_anim_speed`. E.g. on large values of anim time store the
|
|
||||||
speed. Besides all widgets should use the `style_anim` property.
|
|
||||||
`anim` should clamp the time if it's calculated from speed, e.g
|
|
||||||
`lv_clamp(200, t, 2000)`. (maybe `a->min_time/max_time`).
|
|
||||||
- |uncheck| Use dedicated `lv_anim_custom_exec_cb_t`.
|
|
||||||
See `here <https://forum.lvgl.io/t/custom-exec-cb-prevents-lv-anim-del-obj-null/10266>`__.
|
|
||||||
|
|
||||||
Planned in general
|
|
||||||
------------------
|
|
||||||
|
|
||||||
CI
|
|
||||||
~~
|
|
||||||
|
|
||||||
- |uncheck| Platform independent benchmarking #3443
|
|
||||||
- |uncheck| Run static analyzer
|
|
||||||
- |uncheck| Release script
|
|
||||||
- |uncheck| Unit test for all widgets #2337
|
|
||||||
- |uncheck| CI test for flash/RAM usage #3127
|
|
||||||
|
|
||||||
|
|
||||||
Architecture
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
- |uncheck| Add more feature to key presses (long press, release, etc).
|
|
||||||
- |uncheck| `lv_image_set_src()` use “type-aware” parameter and rework image decoders.
|
|
||||||
(see `here <https://github.com/lvgl/lvgl/tree/arch/img-decode-rework>`__)
|
|
||||||
- |uncheck| `C++ binding <https://github.com/lvgl/lv_binding_cpp>`__
|
|
||||||
- |uncheck| Markup language #2428
|
|
||||||
|
|
||||||
|
|
||||||
Styles
|
|
||||||
~~~~~~
|
|
||||||
|
|
||||||
- |uncheck| Hover
|
|
||||||
- |uncheck| Global states in selectors. E.g. `LV_STATE_PRESSED | SMALL_SCREEN` like media quarry in CSS
|
|
||||||
|
|
||||||
|
|
||||||
Drawing and rendering
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
- |uncheck| SW: Line drawing with image rotation
|
|
||||||
- |uncheck| SW: Arc drawing from small squares (16x16?) to detect transparent or solid parts
|
|
||||||
- |uncheck| SW: Rounded rectangle drawing from small squares (16x16?) to detect transparent or solid parts
|
|
||||||
- |uncheck| Different radius on each corner #2800
|
|
||||||
- |uncheck| Gradient to border/outline/shadow
|
|
||||||
- |uncheck| Multiple shadow/border
|
|
||||||
- |uncheck| Perspective
|
|
||||||
- |uncheck| Text shadow
|
|
||||||
- |uncheck| Inner shadow
|
|
||||||
- |uncheck| ARGB image stroke/grow on the alpha map
|
|
||||||
- |uncheck| Real time blur
|
|
||||||
|
|
||||||
|
|
||||||
Widgets
|
|
||||||
~~~~~~~
|
|
||||||
|
|
||||||
- |uncheck| `lv_bar`, `lv_arc`: handle max < min for fill direction swapping #4039
|
|
||||||
- |uncheck| `lv_bar`, `lv_slider`, `lv_arc`: make possible to move the knob only inside the background (see `here <https://forum.lvgl.io/t/slider-knob-out-of-the-track/11956>`__)
|
|
||||||
- |uncheck| Improve `lv_label_align_t` #1656
|
|
||||||
- |uncheck| `lv_label` reconsider label long modes. (support min/max-width/height as well) #3420
|
|
||||||
- |uncheck| `lv_roller` make it more flexible #4009
|
|
||||||
|
|
||||||
Others
|
|
||||||
~~~~~~
|
|
||||||
- |uncheck| `em`, `ch`, `vw/vh` units
|
|
||||||
- |uncheck| `aspect-ratio` as size
|
|
||||||
- |uncheck| More grid features. E.g. repeat(auto-fill, minmax( px, 1fr))
|
|
||||||
- |uncheck| Named grid cells to allow updating layouts without touching the children (like CSS `grid-template-areas`)
|
|
||||||
- |uncheck| Scene support. See `this comment <https://github.com/lvgl/lvgl/issues/2790#issuecomment-965100911>`__
|
|
||||||
- |uncheck| Circle layout. #2871
|
|
||||||
- |uncheck| Consider `stagger animations <https://greensock.com/docs/v3/Staggers>`__.
|
|
||||||
- |uncheck| Add custom indev type. See `here <https://github.com/lvgl/lvgl/issues/3298#issuecomment-1616706654>`__.
|
|
||||||
- |uncheck| Automatically recalculate the layout if a coordinate is obtained using `lv_obj_get_width/height/x/y/etc`
|
|
||||||
|
|
||||||
Ideas
|
|
||||||
-----
|
|
||||||
- Reconsider how themes should work.
|
|
||||||
- Better way to reset global variables in `lv_deinit()` #3385
|
|
||||||
- `lv_array`: replace linked lists with array where possible (arrays are faster and uses less memory)
|
|
||||||
- Reconsider how to handle UTF-8 characters (allow different encoding as well) and Bidi. Maybe create an abstraction for textshaping.
|
|
||||||
- Consider direct binary font format support
|
|
||||||
- Improve groups. `Discussion <https://forum.lvgl.io/t/lv-group-tabindex/2927/3>`__.
|
|
||||||
Reconsider focusing logic. Allow having no widget selected (on web it's possible). Keep editing state in `lv_obj_t`
|
|
||||||
(see `here <https://github.com/lvgl/lvgl/issues/3646>`__). Support slider
|
|
||||||
left knob focusing (see `here <https://github.com/lvgl/lvgl/issues/3246>`__)
|
|
||||||
- Speed up font decompression
|
|
||||||
- Support larger images: add support for large image #1892
|
|
||||||
- Functional programming support, pure view?
|
|
||||||
(see `here <https://www.freecodecamp.org/news/the-revolution-of-pure-views-aed339db7da4/>`__)
|
|
||||||
- Style components. (see `this comment <https://github.com/lvgl/lvgl/issues/2790#issuecomment-965100911>`__
|
|
||||||
- Support dot_begin and dot_middle long modes for labels
|
|
||||||
- Allow matrix input for image transformation?
|
|
||||||
- Radial/skew/conic gradient
|
|
||||||
- Somehow let children inherit the parent's state
|
|
||||||
- Text on path
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
|
Before Width: | Height: | Size: 519 KiB After Width: | Height: | Size: 519 KiB |
|
Before Width: | Height: | Size: 312 KiB After Width: | Height: | Size: 312 KiB |
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 189 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
@@ -1,18 +0,0 @@
|
|||||||
.. _base_widget_overview:
|
|
||||||
|
|
||||||
===========
|
|
||||||
Base Widget
|
|
||||||
===========
|
|
||||||
|
|
||||||
The following details apply to all types of Widgets.
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 3
|
|
||||||
|
|
||||||
obj
|
|
||||||
coord
|
|
||||||
layer
|
|
||||||
styles/index
|
|
||||||
event
|
|
||||||
layouts/index
|
|
||||||
scroll
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
.. raw:: html
|
|
||||||
|
|
||||||
<p style="text-align: right;">
|
|
||||||
<a class="reference external" href="https://lvgl.100ask.net/master/index.html">
|
|
||||||
[中⽂] Chinese Translation
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
.. _lvgl_landing_page:
|
|
||||||
|
|
||||||
===========================================
|
|
||||||
LVGL: Light and Versatile Graphics Library
|
|
||||||
===========================================
|
|
||||||
|
|
||||||
Create beautiful UIs for any MCU, MPU and display type.
|
|
||||||
*******************************************************
|
|
||||||
|
|
||||||
.. raw:: html
|
|
||||||
|
|
||||||
<div style="margin-bottom:30px; margin-top:14px">
|
|
||||||
<img src="_static/img/gh-header.webp" alt="LVGL Documentation" style="width:100%">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
.. raw:: html
|
|
||||||
|
|
||||||
<div style="margin-bottom:48px">
|
|
||||||
<a href="intro/introduction.html"><img class="home-img" src="_static/img/home_1.png" alt="Get familiar with LVGL."></a>
|
|
||||||
<a href="intro/basics.html"><img class="home-img" src="_static/img/home_2.png" alt="Learn how LVGL works."></a>
|
|
||||||
<a href="intro/basics.html#going-deeper"><img class="home-img" src="_static/img/home_3.png" alt="Get your feet wet with LVGL."></a>
|
|
||||||
<a href="intro/add-lvgl-to-your-project/index.html"><img class="home-img" src="_static/img/home_4.png" alt="Learn how to add LVGL to your project for any platform, framework and display type."></a>
|
|
||||||
<a href="details/widgets/index.html"><img class="home-img" src="_static/img/home_5.png" alt="Learn to use LVGL Widgets with examples."></a>
|
|
||||||
<a href="CONTRIBUTING.html"><img class="home-img" src="_static/img/home_6.png" alt="Be part of LVGL's development."></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
intro/introduction
|
|
||||||
intro/basics
|
|
||||||
intro/add-lvgl-to-your-project/index
|
|
||||||
|
|
||||||
|
|
||||||
Details
|
|
||||||
-------
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
details/base-widget/index
|
|
||||||
details/widgets/index
|
|
||||||
details/main-components/index
|
|
||||||
details/other-components/index
|
|
||||||
examples
|
|
||||||
details/debugging/index
|
|
||||||
details/integration/index
|
|
||||||
details/libs/index
|
|
||||||
API/index
|
|
||||||
|
|
||||||
|
|
||||||
Appendix
|
|
||||||
--------
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
CONTRIBUTING
|
|
||||||
CODING_STYLE
|
|
||||||
CHANGELOG
|
|
||||||
ROADMAP
|
|
||||||
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:hidden:
|
|
||||||
|
|
||||||
intro/index
|
|
||||||
details/index
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
@ECHO OFF
|
||||||
|
|
||||||
|
pushd %~dp0
|
||||||
|
|
||||||
|
REM Command file for Sphinx documentation
|
||||||
|
|
||||||
|
setlocal ENABLEDELAYEDEXPANSION
|
||||||
|
|
||||||
|
if "%SPHINXBUILD%" == "" (
|
||||||
|
set SPHINXBUILD=sphinx-build
|
||||||
|
)
|
||||||
|
if "%LVGL_DOC_BUILD_INTERMEDIATE_DIR%" == "" (
|
||||||
|
set SOURCEDIR=intermediate
|
||||||
|
) else (
|
||||||
|
set SOURCEDIR=%LVGL_DOC_BUILD_INTERMEDIATE_DIR%
|
||||||
|
)
|
||||||
|
if "%SPHINXOPTS%" == "" (
|
||||||
|
rem python get_lvgl_version.py >_version_temp.txt
|
||||||
|
rem set /p VER=<_version_temp.txt
|
||||||
|
rem del _version_temp.txt
|
||||||
|
for /F %%v in ('python lvgl_version.py') do set VER=%%v
|
||||||
|
echo VERSION [!VER!]
|
||||||
|
set SPHINXOPTS=-D version="!VER!" -j 4
|
||||||
|
set VER=
|
||||||
|
)
|
||||||
|
set BUILDDIR=build
|
||||||
|
|
||||||
|
echo SOURCEDIR [%SOURCEDIR%]
|
||||||
|
echo BUILDDIR [%BUILDDIR%]
|
||||||
|
echo SPHINXOPTS [%SPHINXOPTS%]
|
||||||
|
|
||||||
|
%SPHINXBUILD% >NUL 2>NUL
|
||||||
|
if errorlevel 9009 (
|
||||||
|
echo.
|
||||||
|
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||||
|
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||||
|
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||||
|
echo.may add the Sphinx directory to PATH.
|
||||||
|
echo.
|
||||||
|
echo.If you don't have Sphinx installed, grab it from
|
||||||
|
echo.https://www.sphinx-doc.org/
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if "%1" == "" goto help
|
||||||
|
|
||||||
|
echo %SPHINXBUILD% -M %1 "%SOURCEDIR%" "%BUILDDIR%" %SPHINXOPTS% %2 %3 %4 %5 %6 %7 %8 %9
|
||||||
|
%SPHINXBUILD% -M %1 "%SOURCEDIR%" "%BUILDDIR%" %SPHINXOPTS% %2 %3 %4 %5 %6 %7 %8 %9
|
||||||
|
goto end
|
||||||
|
|
||||||
|
:help
|
||||||
|
%SPHINXBUILD% -M help "%SOURCEDIR%" "%BUILDDIR%" %SPHINXOPTS% %2 %3 %4 %5 %6 %7 %8 %9
|
||||||
|
|
||||||
|
:end
|
||||||
|
rem Clean up.
|
||||||
|
popd
|
||||||
|
set BUILDDIR=
|
||||||
|
set SOURCEDIR=
|
||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 973 B After Width: | Height: | Size: 973 B |
|
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 993 B |
|
Before Width: | Height: | Size: 990 B After Width: | Height: | Size: 990 B |
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |