Skip to content
This repository was archived by the owner on Dec 4, 2020. It is now read-only.

Commit 3835ca7

Browse files
authored
Merge pull request #55 from Pablo2048/master
LVGL7.0.2
2 parents 8620db9 + dacbef8 commit 3835ca7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+934
-737
lines changed

library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"type": "git",
1313
"url": "https://github.com/lvgl/lv_arduino"
1414
},
15-
"version": "3.0.0",
15+
"version": "3.0.1",
1616
"license": "MIT",
1717
"frameworks": "arduino",
1818
"build": {

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=lv_arduino
2-
version=3.0.0
2+
version=3.0.1
33
author=Gabor Kiss-Vamosi
44
maintainer=Pavel Brychta <[email protected]>
55
sentence=Full-featured Graphics Library for embedded systems

src/CHANGELOG.md

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,34 @@
11
# Changelog
22

3-
## v7.0.1 (under development)
4-
*Available in the `master` branch*
3+
4+
## v7.0.2 (16.06.2020)
5+
6+
- `lv_textarea` fix wrong cursor position when clicked after the last character
7+
- Change all text related indices from 16-bit to 32-bit integers throughout whole library. #1545
8+
- Fix gestures
9+
- Do not call `set_px_cb` for transparent pixel
10+
- Fix list button focus in material theme
11+
- Fix crash when the a text area is cleared with the backspace of a keyboard
12+
- Add version number to `lv_conf_template.h`
13+
- Add log in true double buffering mode with `set_px_cb`
14+
- `lv_dropdown`: fix missing `LV_EVENT_VALUE_CHANGED` event when used with encoder
15+
- `lv_tileview`: fix if not the {0;0} tile is created first
16+
- `lv_debug`: restructure to allow asserting in from `lv_misc` too
17+
- add assert if `_lv_mem_buf_get()` fails
18+
- `lv_textarea`: fix character delete in password mode
19+
- Update `LV_OPA_MIN` and `LV_OPA_MAX` to widen the opacity processed range
20+
- `lv_btnm` fix sending events for hidden buttons
21+
- `lv_gaguge` make `lv_gauge_set_angle_offset` offset the labels and needles too
22+
- Fix typo in the API `scrllable` -> `scrollable`
23+
- `tabview` by default allow auto expanding the page only to right and bottom (#1573)
24+
- fix crash when drawing gradient to the same color
25+
- chart: fix memory leak
26+
27+
## v7.0.1 (01.06.2020)
528

629
### Bugfixes
730
- Make the Microptyhon working by adding the required variables as GC_ROOT
31+
- Prefix some internal API functions with `_` to reduce the API of LVGL
832
- Fix built-in SimSun CJK font
933
- Fix UTF-8 encoding when `LV_USE_ARABIC_PERSIAN_CHARS` is enabled
1034
- Fix DMA2D usage when 32 bit images directly blended
@@ -14,8 +38,8 @@
1438
- Improve DMA2D blending
1539
- Remove memcpy from `lv_ll` (caused issues with some optimization settings)
1640
- `lv_chart` fix X tick drawing
17-
- fix vertical dashed line drawing
18-
- some additonal minor fixes and formattings
41+
- Fix vertical dashed line drawing
42+
- Some additonal minor fixes and formattings
1943

2044
## v7.0.0 (18.05.2020)
2145

src/README.md

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<h1 align="center"> LVGL - Little and Versatile Graphics Library</h1>
1+
<h1 align="center"> LVGL - Light and Versatile Graphics Library</h1>
22
<p align="center">
33
<a href="https://github.com/lvgl/lvgl/blob/master/LICENCE.txt"><img src="https://img.shields.io/badge/licence-MIT-blue.svg"></a>
44
<a href="https://github.com/lvgl/lvgl/releases/tag/v7.0.0"><img src="https://img.shields.io/badge/version-7.0.0-blue.svg"></a>
@@ -28,6 +28,7 @@ LVGL provides everything you need to create embedded GUI with easy-to-use graphi
2828
- [Add LVGL to your project](#add-lvgl-to-your-project)
2929
- [Learn the basics](#learn-the-basics)
3030
- [Examples](#examples)
31+
- [Release policy](#release-policy)
3132
- [Contributing](#contributing)
3233

3334

@@ -49,7 +50,7 @@ LVGL provides everything you need to create embedded GUI with easy-to-use graphi
4950
* **Documentation** and API references
5051

5152
## 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:
5354
- 16, 32 or 64 bit microcontroller or processor
5455
- &gt; 16 MHz clock speed is recommended
5556
- Flash/ROM: &gt; 64 kB for the very essential components (&gt; 180 kB is recommended)
@@ -89,19 +90,19 @@ Choose a project with your favourite IDE:
8990
The steps below show how to setup LVGL on an embedded system with a display and a touchpad.
9091
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.
9192

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
9394
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`.
9596
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.
9798
6. Call `lv_init()`
9899
7. Create a display buffer for LVGL
99100
```c
100101
static lv_disp_buf_t disp_buf;
101102
static lv_color_t buf[LV_HOR_RES_MAX * 10]; /*Declare a buffer for 10 lines*/
102103
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); /*Initialize the display buffer*/
103104
```
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:
105106
```c
106107
lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
107108
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
@@ -114,7 +115,7 @@ void my_disp_flush(lv_disp_t * disp, const lv_area_t * area, lv_color_t * color_
114115
int32_t x, y;
115116
for(y = area->y1; y <= area->y2; y++) {
116117
for(x = area->x1; x <= area->x2; x++) {
117-
set_pixel(x, y, *color_p); /* Put a pixel to the display.*/
118+
my_set_pixel(x, y, *color_p); /* Put a pixel to the display.*/
118119
color_p++;
119120
}
120121
}
@@ -123,7 +124,7 @@ void my_disp_flush(lv_disp_t * disp, const lv_area_t * area, lv_color_t * color_
123124
}
124125
125126
```
126-
9. Implement and register a function which can **read an input device**. E.g. for a touch pad:
127+
9. Implement and register a function which can read an input device. E.g. for a touch pad:
127128
```c
128129
lv_indev_drv_init(&indev_drv); /*Descriptor of a input device driver*/
129130
indev_drv.type = LV_INDEV_TYPE_POINTER; /*Touch pad is a pointer-like device*/
@@ -132,37 +133,31 @@ lv_indev_drv_register(&indev_drv); /*Finally register the driver*/
132133

133134
bool my_touchpad_read(lv_indev_drv_t * indev_driver, lv_indev_data_t * data)
134135
{
135-
static lv_coord_t last_x = 0;
136-
static lv_coord_t last_y = 0;
137-
138-
/*Save the state and save the pressed coordinate*/
139-
data->state = touchpad_is_pressed() ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
140-
if(data->state == LV_INDEV_STATE_PR) touchpad_get_xy(&last_x, &last_y);
141-
142-
/*Set the coordinates (if released use the last pressed coordinates)*/
143-
data->point.x = last_x;
144-
data->point.y = last_y;
136+
data->state = my_touchpad_is_pressed() ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
137+
if(data->state == LV_INDEV_STATE_PR) touchpad_get_xy(&data->point.x, &data->point.y);
145138

146139
return false; /*Return `false` because we are not buffering and no more data to read*/
147140
}
148141
```
149142
10. Call `lv_task_handler()` periodically every few milliseconds in the main `while(1)` loop, in Timer interrupt or in an Operation system task.
150143
It will redraw the screen if required, handle input devices etc.
151144
145+
For more detailed desription visit the [Porting](https://docs.lvgl.io/v7/en/html/porting/index.html) section of the documentation.
152146
153147
## Learn the basics
154148
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.
156151
157152
### Widgets (Objects)
158153
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.
160155
161156
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.
162157
163158
The *screen* are the "root" parents. To get the current screen call `lv_scr_act()`.
164159
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.
166161
The first parameter is the desired *parent*, the second parameters can be an object to copy (`NULL` if unused).
167162
For example:
168163
```c
@@ -176,31 +171,38 @@ lv_obj_set_y(btn1, 10);
176171
lv_obj_set_size(btn1, 200, 50);
177172
```
178173
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:
180175
```c
181176
lv_slider_set_value(slider1, 70, LV_ANIM_ON);
182177
```
183178

184179
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`).
185180

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+
186188
### 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:
188190
```c
189191
static lv_style_t style1; /*Should be static, global or dynamically allocated*/
190192
lv_style_init(&style1);
191193
lv_style_set_bg_color(&style1, LV_STATE_DEFAULT, LV_COLOR_RED); /*Default background color*/
192194
lv_style_set_bg_color(&style1, LV_STATE_PRESSED, LV_COLOR_BLUE); /*Pressed background color*/
193195
```
194196

195-
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.
196198

197199
To add the style to a button:
198-
```
200+
```c
199201
lv_obj_add_style(btn1, LV_BTN_PART_MAIN, &style1);
200202
```
201203
202-
To remove all styles from an object use:
203-
```c
204+
To remove all styles from a part of an object:
205+
```cc
204206
lv_obj_reset_style_list(obj, LV_OBJ_PART_MAIN);
205207
```
206208

@@ -210,7 +212,7 @@ Learn more in [Style overview](https://docs.lvgl.io/v7/en/html/overview/style) s
210212
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:
211213

212214
```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*/
214216

215217
...
216218

@@ -262,6 +264,26 @@ label.set_text("Button")
262264
lv.scr_load(scr)
263265
```
264266

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+
265287
## Contributing
266288
To ask questions please use the [Forum](https://forum.lvgl.io).
267289
For development-related things (bug reports, feature suggestions) use [GitHub's Issue tracker](https://github.com/lvgl/lvgl/issues).

src/docs/CONTRIBUTING.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
# Contributing to LVGL
22

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:
74

85
- [Overview](#overview)
96
- [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!**
2017
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:
2118
- **Help others** in the [Forum](https://forum.lvgl.io).
2219
- **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.
2421
- **Write a blog post** about your experiences. See how to do it in the [Blog](https://github.com/lvgl/blog) repository
2522
- **Report and/or fix bugs** in [GitHub's issue tracker](https://github.com/lvgl/lvgl/issues)
2623
- **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.

src/library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lvgl",
3-
"version": "v7.0.1",
3+
"version": "v7.0.2",
44
"keywords": "graphics, gui, embedded, littlevgl",
55
"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.",
66
"repository":

src/lv_conf_template.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* @file lv_conf.h
3-
*
3+
* Configuration file for LVGL v7.0.2
44
*/
55

66
/*
@@ -330,7 +330,7 @@ typedef void * lv_indev_drv_user_data_t; /*Type of user data in the i
330330

331331
/* The built-in fonts contains the ASCII range and some Symbols with 4 bit-per-pixel.
332332
* The symbols are available via `LV_SYMBOL_...` defines
333-
* More info about fonts: https://docs.lvgl.com/#Fonts
333+
* More info about fonts: https://docs.lvgl.io/v7/en/html/overview/font.html
334334
* To create a new font go to: https://lvgl.com/ttf-font-to-c-array
335335
*/
336336

@@ -498,7 +498,7 @@ typedef void * lv_obj_user_data_t;
498498
#endif
499499
#endif
500500

501-
/*1: enable `lv_obj_realaign()` based on `lv_obj_align()` parameters*/
501+
/*1: enable `lv_obj_realign()` based on `lv_obj_align()` parameters*/
502502
#define LV_USE_OBJ_REALIGN 1
503503

504504
/* Enable to make the object clickable on a larger area.

src/lvgl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ extern "C" {
7878
/*Current version of LVGL*/
7979
#define LVGL_VERSION_MAJOR 7
8080
#define LVGL_VERSION_MINOR 0
81-
#define LVGL_VERSION_PATCH 1
82-
#define LVGL_VERSION_INFO "dev"
81+
#define LVGL_VERSION_PATCH 2
82+
#define LVGL_VERSION_INFO ""
8383

8484
/**********************
8585
* TYPEDEFS

0 commit comments

Comments
 (0)