docs(restructure): restructure TOC and contents for ease of use (#7847)
@@ -66,7 +66,7 @@ jobs:
|
||||
- name: Build docs
|
||||
run: docs/build.py html
|
||||
- name: Remove .doctrees
|
||||
run: rm -rf docs/output/html/.doctrees
|
||||
run: rm -rf docs/build/html/.doctrees
|
||||
- name: Retrieve version
|
||||
run: |
|
||||
echo "::set-output name=VERSION_NAME::$(scripts/find_version.sh)"
|
||||
@@ -77,7 +77,7 @@ jobs:
|
||||
token: ${{ secrets.LVGL_BOT_TOKEN }}
|
||||
repository-name: lvgl/docs
|
||||
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 }}
|
||||
git-config-name: lvgl-bot
|
||||
git-config-email: lvgl-bot@users.noreply.github.com
|
||||
@@ -89,7 +89,7 @@ jobs:
|
||||
token: ${{ secrets.LVGL_BOT_TOKEN }}
|
||||
repository-name: lvgl/docs
|
||||
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
|
||||
git-config-name: lvgl-bot
|
||||
git-config-email: lvgl-bot@users.noreply.github.com
|
||||
|
||||
@@ -1,11 +1,2 @@
|
||||
output/
|
||||
tmp/
|
||||
xml/
|
||||
API/
|
||||
api_doc
|
||||
doxygen_html
|
||||
env
|
||||
examples.md
|
||||
examples.rst
|
||||
LVGL.pdf
|
||||
_static/built_lv_examples
|
||||
build/
|
||||
intermediate/
|
||||
|
||||
@@ -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 |