You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 4, 2020. It is now read-only.
@@ -28,6 +28,7 @@ LVGL provides everything you need to create embedded GUI with easy-to-use graphi
28
28
-[Add LVGL to your project](#add-lvgl-to-your-project)
29
29
-[Learn the basics](#learn-the-basics)
30
30
-[Examples](#examples)
31
+
-[Release policy](#release-policy)
31
32
-[Contributing](#contributing)
32
33
33
34
@@ -49,7 +50,7 @@ LVGL provides everything you need to create embedded GUI with easy-to-use graphi
49
50
***Documentation** and API references
50
51
51
52
## Supported devices
52
-
Basically, every modern controller (which is able to drive a display( is suitable to run LVGL. The minimal requirements are:
53
+
Basically, every modern controller (which is able to drive a display) is suitable to run LVGL. The minimal requirements are:
53
54
- 16, 32 or 64 bit microcontroller or processor
54
55
-> 16 MHz clock speed is recommended
55
56
- Flash/ROM: > 64 kB for the very essential components (> 180 kB is recommended)
@@ -89,19 +90,19 @@ Choose a project with your favourite IDE:
89
90
The steps below show how to setup LVGL on an embedded system with a display and a touchpad.
90
91
You can use the [Simulators](https://docs.lvgl.io/v7/en/html/get-started/pc-simulator) to get ready to use projects which can be run on your PC.
91
92
92
-
1.[Download](https://lvgl.com/developers) or [Clone](https://github.com/lvgl/lvgl) the library
93
+
1.[Download](https://github.com/lvgl/lvgl/archive/master.zip) or [Clone](https://github.com/lvgl/lvgl) the library
93
94
2. Copy the `lvgl` folder into your project
94
-
3. Copy `lvgl/lv_conf_template.h` as `lv_conf.h` next to the `lvgl` folder and set at least `LV_HOR_RES_MAX`, `LV_VER_RES_MAX` and `LV_COLOR_DEPTH`. Don't forget to **change the `#if 0` statement near the top of the file to `#if 1`**, otherwise you will get compilation errors.
95
+
3. Copy `lvgl/lv_conf_template.h` as `lv_conf.h` next to the `lvgl` folder, change the `#if 0` statement near the top of the file to `#if 1` and set at least `LV_HOR_RES_MAX`, `LV_VER_RES_MAX` and `LV_COLOR_DEPTH`.
95
96
4. Include `lvgl/lvgl.h` where you need to use LVGL related functions.
96
-
5. Call `lv_tick_inc(x)` every `x` milliseconds **in a Timer or Task** (`x` should be between 1 and 10). It is required for the internal timing of LVGL.
97
+
5. Call `lv_tick_inc(x)` every `x` milliseconds (should be 1..10) in a Timer or Task. It is required for the internal timing of LVGL.
97
98
6. Call `lv_init()`
98
99
7. Create a display buffer for LVGL
99
100
```c
100
101
staticlv_disp_buf_t disp_buf;
101
102
staticlv_color_t buf[LV_HOR_RES_MAX * 10]; /*Declare a buffer for 10 lines*/
102
103
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); /*Initialize the display buffer*/
103
104
```
104
-
8. Implement and register a function which can **copy a pixel array** to an area of your display:
105
+
8. Implement and register a function which can copy a pixel array to an area of your display:
105
106
```c
106
107
lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
return false; /*Return `false` because we are not buffering and no more data to read*/
147
140
}
148
141
```
149
142
10. Call `lv_task_handler()` periodically every few milliseconds in the main `while(1)` loop, in Timer interrupt or in an Operation system task.
150
143
It will redraw the screen if required, handle input devices etc.
151
144
145
+
For more detailed desription visit the [Porting](https://docs.lvgl.io/v7/en/html/porting/index.html) section of the documentation.
152
146
153
147
## Learn the basics
154
148
155
-
In this section you can ready the very basics. For a more detailed guide check the [Quick overview](https://docs.lvgl.io/v7/en/html/get-started/quick-overview.html#learn-the-basics) in the documentation.
149
+
In this section you can read the very basics of LVGL.
150
+
For a more detailed guide check the [Quick overview](https://docs.lvgl.io/v7/en/html/get-started/quick-overview.html#learn-the-basics) in the documentation.
156
151
157
152
### Widgets (Objects)
158
153
159
-
The graphical elements like Buttons, Labels, Sliders, Charts etc are called objects in LittelvGL. Go to [Object types](https://docs.lvgl.io/v7/en/html/widgets/index) to see the full list of available types.
154
+
The graphical elements like Buttons, Labels, Sliders, Charts etc are called objects or widgets in LVGL. Go to [Widgets](https://docs.lvgl.io/v7/en/html/widgets/index) to see the full list of available types.
160
155
161
156
Every object has a parent object. The child object moves with the parent and if you delete the parent the children will be deleted too. Children can be visible only on their parent.
162
157
163
158
The *screen* are the "root" parents. To get the current screen call `lv_scr_act()`.
164
159
165
-
You can create a new object with `lv_<type>_create(parent, obj_to_copy)`. It will return an `lv_obj_t *` variable which should be used as a reference to the object to set its parameters.
160
+
You can create a new object with `lv_<type>_create(parent, obj_to_copy)`. It will return an `lv_obj_t *` variable which should be used as a reference to the object to set its parameters later.
166
161
The first parameter is the desired *parent*, the second parameters can be an object to copy (`NULL` if unused).
167
162
For example:
168
163
```c
@@ -176,31 +171,38 @@ lv_obj_set_y(btn1, 10);
176
171
lv_obj_set_size(btn1, 200, 50);
177
172
```
178
173
179
-
The objects has type specific parameters too which can be set by `lv_<type>_set_<paramters_name>(obj, <value>)` functions. For example:
174
+
The objects have type specific parameters too which can be set by `lv_<type>_set_<paramters_name>(obj, <value>)` functions. For example:
180
175
```c
181
176
lv_slider_set_value(slider1, 70, LV_ANIM_ON);
182
177
```
183
178
184
179
To see the full API visit the documentation of the object types or the related header file (e.g. `lvgl/src/lv_objx/lv_slider.h`).
185
180
181
+
182
+
To create a new screen pass `NULL` as the fisrt paramater of a *create* function:
183
+
```c
184
+
lv_obj_t * scr2 = lv_obj_create(NULL, NULL); /*Create a screen*/
185
+
lv_scr_load(scr2); /*Load the new screen*/
186
+
```
187
+
186
188
### Styles
187
-
Widgets are created with a default appearance but it can be changed by adding new styles to the object. A new style can be created like this:
189
+
Widgets are created with a default appearance but it can be changed by adding new styles to them. A new style can be created like this:
188
190
```c
189
191
static lv_style_t style1; /*Should be static, global or dynamically allocated*/
The wigedt have *parts* which can be referenced via `LV_<TYPE>_PART_<PART_NAME>`. E.g. `LV_BRN_PART_MAIN` or `LV_SLIDER_PART_KNOB`. See the documentation of the widgets to see the exisitng parts.
197
+
The wigedt have *parts* which can be referenced via `LV_<TYPE>_PART_<PART_NAME>`. E.g. `LV_BTN_PART_MAIN` or `LV_SLIDER_PART_KNOB`. See the documentation of the widgets to see the exisitng parts.
@@ -210,7 +212,7 @@ Learn more in [Style overview](https://docs.lvgl.io/v7/en/html/overview/style) s
210
212
Events are used to inform the user if something has happened with an object. You can assign a callback to an object which will be called if the object is clicked, released, dragged, being deleted etc. It should look like this:
211
213
212
214
```c
213
-
lv_obj_set_event_cb(btn, btn_event_cb); /*Assign a callback to the button*/
215
+
lv_obj_set_event_cb(btn, btn_event_cb); /*Assign a callback to the button*/
214
216
215
217
...
216
218
@@ -262,6 +264,26 @@ label.set_text("Button")
262
264
lv.scr_load(scr)
263
265
```
264
266
267
+
## Release policy
268
+
LVGL follows the rules of [Semantic versioning](https://semver.org/):
269
+
- Major versions for incompatible API changes. E.g. v5.0.0, v6.0.0
270
+
- Minor version for new but backward-compatible functionalities. E.g. v6.1.0, v6.2.0
271
+
- Patch version for backward-compatible bug fixes. E.g. v6.1.1, v6.1.2
272
+
273
+
Branches:
274
+
-`master` most recent version, patches are merged directly here.
275
+
-`dev` merge new features here until they are merged into `master`.
276
+
-`release/vX` there is a branch for every major version to allow adding specific, not forward compatible fixes.
277
+
278
+
LVGL has a monthly periodic release cycle.
279
+
-**1st Tuesday of the month**
280
+
- Make a major, minor, or patch release from `master` depending on the new features.
281
+
- After that merge only patches into `master` and add new features into the `dev`.
282
+
-**3rd Tuesday of the month**
283
+
- Make a patch release from `master`.
284
+
- After that merge the new features from the `dev` to `master` branch.
285
+
- In the rest of the month merge only patches into `master` and new features into `dev` branch.
286
+
265
287
## Contributing
266
288
To ask questions please use the [Forum](https://forum.lvgl.io).
267
289
For development-related things (bug reports, feature suggestions) use [GitHub's Issue tracker](https://github.com/lvgl/lvgl/issues).
Copy file name to clipboardExpand all lines: src/docs/CONTRIBUTING.md
+2-5Lines changed: 2 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,6 @@
1
1
# Contributing to LVGL
2
2
3
-
**Do you have some free time to spend with programming?
4
-
Are you working on an embedded GUI project with LVGL?
5
-
See how can you help to improve the graphics library and help others!**
6
-
3
+
Thank you for considering contributing to LVGL. If you have some spare time to spend with programming you will certainly find a way to helpimproving LVGL. Do not afraid to take the first step! Everybody is welcome independently from gender, age, color, location, or skill level. So don't be shy, pick a point from the list below that you are interested in, and let's go! :rocket:
7
4
8
5
-[Overview](#overview)
9
6
-[How to send a pull request?](#how-to-send-a-pull-request)
@@ -20,7 +17,7 @@ See how can you help to improve the graphics library and help others!**
20
17
There are many ways to join the community. If you have some time to work with us you will surely find something that fits you! You can:
21
18
-**Help others** in the [Forum](https://forum.lvgl.io).
22
19
-**Inspire people** by speaking about your project in [My project](https://forum.lvgl.io/c/my-projects) category in the Forum.
23
-
-**Improve and/or translate the documentation.** Go to the [Documentation](https://github.com/lvgl/docs) repository to learn more
20
+
-**Improve and/or translate the documentation.** Go to the [Documentation](https://github.com/lvgl/docs) repository to learn more.
24
21
-**Write a blog post** about your experiences. See how to do it in the [Blog](https://github.com/lvgl/blog) repository
25
22
-**Report and/or fix bugs** in [GitHub's issue tracker](https://github.com/lvgl/lvgl/issues)
26
23
-**Help the development**. Check the [Open issues](https://github.com/lvgl/lvgl/issues) especially the ones with [Help wanted](https://github.com/lvgl/lvgl/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) label and tell your ideas about a topic or implement a feature.
Copy file name to clipboardExpand all lines: src/library.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "lvgl",
3
-
"version": "v7.0.1",
3
+
"version": "v7.0.2",
4
4
"keywords": "graphics, gui, embedded, littlevgl",
5
5
"description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.",
0 commit comments