2020-04-30 17:27:22 +08:00
# Changelog
2020-08-04 23:33:39 +08:00
## v7.4.0 (planned on 01.09.2020)
2020-07-21 19:42:02 +08:00
*Available in the `dev` branch*
2020-08-04 23:33:39 +08:00
## v7.3.1 (planned on 18.08.2020)
2020-08-05 00:43:34 +08:00
### Bugfix
- Fix drawing value string twice
2020-06-18 18:35:38 +08:00
2020-08-04 23:33:39 +08:00
## v7.3.0 (04.08.2020)
2020-07-08 15:29:36 +08:00
### New features
- Add `lv_task_get_next`
2020-07-14 21:25:56 +08:00
- Add `lv_event_send_refresh` , `lv_event_send_refresh_recursive` to easily send `LV_EVENT_REFRESH` to object
2020-07-14 01:59:53 +08:00
- Add `lv_tabview_set_tab_name()` function - used to change a tab's name
2020-07-27 03:13:39 +08:00
- Add `LV_THEME_MATERIAL_FLAG_NO_TRANSITION` and `LV_THEME_MATERIAL_FLAG_NO_FOCUS` flags
2020-08-04 15:19:25 +08:00
- Reduce code size by adding: `LV_USE_FONT_COMPRESSED` , `LV_FONT_USE_SUBPX` , `LV_USE_OUTLINE` , `LV_USE_PATTERN` , `LV_USE_VALUE_STR` and applying some optimization
- Add `LV_MEMCPY_MEMSET_STD` to use standard `memcpy` and `memset`
2020-07-27 23:58:10 +08:00
2020-07-08 15:29:36 +08:00
2020-07-21 22:39:04 +08:00
### Bugfixes
2020-07-22 22:18:49 +08:00
- Do not print warning for missing glyph if its height OR width is zero.
2020-07-23 00:23:56 +08:00
- Prevent duplicated sending of `LV_EVENT_INSERT` from text area
2020-07-23 21:24:28 +08:00
- Tidy outer edges of cpicker widget.
2020-07-24 22:16:18 +08:00
- Remove duplicated lines from `lv_tabview_add_tab`
2020-07-27 23:46:06 +08:00
- btnmatrix: hadle combined states of buttons (e.g. chacked + disabled)
- textarea: fix typo in lv_textarea_set_sscrollbar_mode
2020-07-30 17:11:07 +08:00
- gauge: fix image needle drawing
2020-08-02 18:04:48 +08:00
- fix using freed memory in _lv_style_list_remove_style
2020-07-27 21:57:22 +08:00
2020-07-21 22:39:04 +08:00
2020-07-21 19:42:02 +08:00
## v7.2.0 (21.07.2020)
2020-07-07 16:05:29 +08:00
2020-06-18 18:35:38 +08:00
### New features
2020-07-22 22:25:42 +08:00
- Add screen transitions with `lv_scr_load_anim()`
- Add display background color, wallpaper and opacity. Shown when the screen is transparent. Can be used with `lv_disp_set_bg_opa/color/image()` .
2020-06-18 18:35:38 +08:00
- Add `LV_CALENDAR_WEEK_STARTS_MONDAY`
2020-06-18 21:38:07 +08:00
- Add `lv_chart_set_x_start_point()` function - Set the index of the x-axis start point in the data array
- Add `lv_chart_set_ext_array()` function - Set an external array of data points to use for the chart
- Add `lv_chart_set_point_id()` function - Set an individual point value in the chart series directly based on index
- Add `lv_chart_get_x_start_point()` function - Get the current index of the x-axis start point in the data array
2020-06-26 20:05:34 +08:00
- Add `lv_chart_get_point_id()` function - Get an individual point value in the chart series directly based on index
2020-06-18 21:38:07 +08:00
- Add `ext_buf_assigned` bit field to `lv_chart_series_t` structure - it's true if external buffer is assigned to series
2020-06-27 02:31:20 +08:00
- Add `lv_chart_set_series_axis()` to assign series to primary or secondary axis
- Add `lv_chart_set_y_range()` to allow setting range of secondary y axis (based on `lv_chart_set_range` but extended with an axis parameter)
2020-06-19 19:17:45 +08:00
- Allow setting different font for the selected text in `lv_roller`
2020-06-26 20:05:34 +08:00
- Add `theme->apply_cb` to replace `theme->apply_xcb` to make it compatible with the MicroPython binding
2020-06-27 02:59:57 +08:00
- Add `lv_theme_set_base()` to allow easy extension of built-in (or any) themes
2020-06-27 02:52:21 +08:00
- Add `lv_obj_align_x()` and `lv_obj_align_y()` functions
2020-06-27 02:59:57 +08:00
- Add `lv_obj_align_origo_x()` and `lv_obj_align_origo_y()` functions
2020-06-18 18:35:38 +08:00
2020-07-07 23:30:43 +08:00
### Bugfixes
- `tileview` fix navigation when not screen sized
2020-07-08 15:31:49 +08:00
- Use 14px font by default to for better compatibility with smaller displays
2020-07-10 20:57:03 +08:00
- `linemeter` fix conversation of current value to "level"
2020-07-16 19:08:18 +08:00
- Fix drawing on right border
- Set the cursor image non clickable by default
2020-07-17 20:08:42 +08:00
- Improve mono theme when used with keyboard or encoder
2020-07-07 23:30:43 +08:00
2020-07-07 16:05:29 +08:00
## v7.1.0 (07.07.2020)
2020-06-08 20:16:25 +08:00
### New features
2020-06-08 20:13:33 +08:00
- Add `focus_parent` attribute to `lv_obj`
2020-06-08 20:15:14 +08:00
- Allow using buttons in encoder input device
2020-06-08 20:16:25 +08:00
- Add lv_btnmatrix_set/get_align capability
2020-06-09 19:41:24 +08:00
- DMA2D: Remove dependency on ST CubeMX HAL
2020-06-10 16:14:12 +08:00
- Added `max_used` propriety to `lv_mem_monitor_t` struct
2020-06-23 17:11:45 +08:00
- In `lv_init` test if the the strings are UTF-8 encoded.
2020-06-25 12:19:42 +08:00
- Add `user_data` to themes
2020-06-27 12:57:28 +08:00
- Add LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
2020-07-01 21:18:48 +08:00
- Add inline function lv_checkbox_get_state(const lv_obj_t * cb) to extend the checkbox functionality.
- Add inline function lv_checkbox_set_state(const lv_obj_t * cb, lv_btn_state_t state ) to extend the checkbox functionality.
2020-06-08 20:16:25 +08:00
### Bugfixes
2020-06-24 16:02:45 +08:00
- `lv_img` fix invalidation area when angle or zoom changes
2020-06-24 16:04:30 +08:00
- Update the style handling to support Big endian MCUs
2020-06-24 21:01:42 +08:00
- Change some methods to support big endian hardware.
2020-07-01 21:18:48 +08:00
- remove use of c++ keyword 'new' in parameter of function lv_theme_set_base().
2020-06-24 21:01:42 +08:00
- Add LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
2020-07-01 21:08:45 +08:00
- Fix inserting chars in text area in big endian hardware.
2020-06-02 02:39:59 +08:00
2020-06-16 19:38:37 +08:00
## v7.0.2 (16.06.2020)
2020-05-19 16:59:21 +08:00
2020-06-24 16:02:45 +08:00
### Bugfixes
2020-06-05 16:54:13 +08:00
- `lv_textarea` fix wrong cursor position when clicked after the last character
2020-06-02 04:44:46 +08:00
- Change all text related indices from 16-bit to 32-bit integers throughout whole library. #1545
2020-06-02 20:06:39 +08:00
- Fix gestures
2020-06-03 21:33:18 +08:00
- Do not call `set_px_cb` for transparent pixel
2020-06-04 17:58:32 +08:00
- Fix list button focus in material theme
- Fix crash when the a text area is cleared with the backspace of a keyboard
2020-06-05 16:54:13 +08:00
- Add version number to `lv_conf_template.h`
2020-06-05 16:43:26 +08:00
- Add log in true double buffering mode with `set_px_cb`
2020-06-05 16:54:13 +08:00
- `lv_dropdown` : fix missing `LV_EVENT_VALUE_CHANGED` event when used with encoder
2020-06-05 18:31:02 +08:00
- `lv_tileview` : fix if not the {0;0} tile is created first
2020-06-08 19:10:43 +08:00
- `lv_debug` : restructure to allow asserting in from `lv_misc` too
- add assert if `_lv_mem_buf_get()` fails
2020-06-08 19:23:41 +08:00
- `lv_textarea` : fix character delete in password mode
2020-06-14 18:40:49 +08:00
- Update `LV_OPA_MIN` and `LV_OPA_MAX` to widen the opacity processed range
2020-06-15 03:07:42 +08:00
- `lv_btnm` fix sending events for hidden buttons
2020-06-16 16:28:10 +08:00
- `lv_gaguge` make `lv_gauge_set_angle_offset` offset the labels and needles too
2020-06-16 18:03:32 +08:00
- Fix typo in the API `scrllable` -> `scrollable`
2020-06-16 18:47:09 +08:00
- `tabview` by default allow auto expanding the page only to right and bottom (#1573)
- fix crash when drawing gradient to the same color
2020-06-16 19:03:54 +08:00
- chart: fix memory leak
2020-07-03 20:48:54 +08:00
- `img` : improve hit test for transformed images
2020-06-02 02:39:59 +08:00
## v7.0.1 (01.06.2020)
2020-06-01 04:54:40 +08:00
### Bugfixes
- Make the Microptyhon working by adding the required variables as GC_ROOT
2020-06-02 02:39:03 +08:00
- Prefix some internal API functions with `_` to reduce the API of LVGL
2020-06-01 04:54:40 +08:00
- Fix built-in SimSun CJK font
- Fix UTF-8 encoding when `LV_USE_ARABIC_PERSIAN_CHARS` is enabled
- Fix DMA2D usage when 32 bit images directly blended
- Fix lv_roller in infinite mode when used with encoder
- Add `lv_theme_get_color_secondary()`
- Add `LV_COLOR_MIX_ROUND_OFS` to adjust color mixing to make it compatible with the GPU
- Improve DMA2D blending
- Remove memcpy from `lv_ll` (caused issues with some optimization settings)
- `lv_chart` fix X tick drawing
2020-06-02 02:39:59 +08:00
- Fix vertical dashed line drawing
- Some additonal minor fixes and formattings
2020-06-01 04:54:40 +08:00
2020-05-18 23:36:36 +08:00
## v7.0.0 (18.05.2020)
2020-04-30 17:27:22 +08:00
### Documentation
The docs for v7 is available at https://docs.littlevgl.com/v7/en/html/index.html
### Legal changes
The name of the project is changed to LVGL and the new website is on https://lvgl.io
LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services.
### New drawing system
Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects.
A possible use-case of this system is to remove the overflowing content from the rounded edges.
It also allows drawing perfectly anti-aliased circles, lines, and arcs.
Internally, the drawings happen by defining masks (such as rounded rectangle, line, angle).
When something is drawn the currently active masks can make some pixels transparent.
For example, rectangle borders are drawn by using 2 rectangle masks: one mask removes the inner part and another the outer part.
The API in this regard remained the same but some new functions were added:
- `lv_img_set_zoom` : set image object's zoom factor
- `lv_img_set_angle` : set image object's angle without using canvas
- `lv_img_set_pivot` : set the pivot point of rotation
2020-04-30 20:42:34 +08:00
The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
2020-04-30 17:27:22 +08:00
### New style system
2020-04-30 20:42:34 +08:00
The old style system is replaced with a new more flexible and lightweighted one.
2020-04-30 17:27:22 +08:00
It uses an approach similar to CSS: support cascading styles, inheriting properties and local style properties per object.
2020-04-30 20:42:34 +08:00
As part of these updates, a lot of objects were reworked and the APIs have been changed.
2020-04-30 17:27:22 +08:00
- more shadows options: *offset* and *spread*
- gradient stop position to shift the gradient area and horizontal gradient
- `LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE` blending modes
2020-04-30 20:47:31 +08:00
- *clip corner*: crop the content on the rounded corners
- *text underline* and *strikethrough*
2020-04-30 17:27:22 +08:00
- dashed vertical and horizontal lines (*dash gap*, *dash_width* )
- *outline*: a border-like part drawn out of the background. Can have spacing to the background.
- *pattern*: display and image in the middle of the background or repeat it
2020-04-30 20:42:34 +08:00
- *value* display a text which is stored in the style. It can be used e.g. as a lighweighted text on buttons too.
2020-04-30 17:27:22 +08:00
- *margin*: similar to *padding* but used to keep space outside of the object
Read the [Style ](https://docs.littlevgl.com/v7/en/html/overview/style.html ) section of the documentation to learn how the new styles system works.
### GPU integration
To better utilize GPUs, from this version GPU usage can be integrated into LVGL. In `lv_conf.h` any supported GPUs can be enabled with a single configuration option.
Right now, only ST's DMA2D (Chrom-ART) is integrated. More will in the upcoming releases.
### Renames
The following object types are renamed:
- sw -> switch
- ta -> textarea
- cb -> checkbox
- lmeter -> linemeter
- mbox -> msgbox
- ddlist -> dropdown
- btnm -> btnmatrix
- kb -> keyboard
- preload -> spinner
- lv_objx folder -> lv_widgets
- LV_FIT_FILL -> LV_FIT_PARENT
- LV_FIT_FLOOD -> LV_FLOOD_MAX
- LV_LAYOUT_COL_L/M/R -> LV_LAYOUT_COLUMN_LEFT/MID/RIGHT
- LV_LAYOUT_ROW_T/M/B -> LV_LAYOUT_ROW_TOP/MID/BOTTOM
### Reworked and improved object
2020-04-30 20:46:33 +08:00
- `dropdown` : Completely reworked. Now creates a separate list when opened and can be dropped to down/up/left/right.
- `label` : `body_draw` is removed, instead, if its style has a visible background/border/shadow etc it will be drawn. Padding really makes the object larger (not just virtually as before)
- `arc` : can draw bacground too.
- `btn` : doesn't store styles for each state because it's done naturally in the new style system.
- `calendar` : highlight the pressed datum. The used styles are changed: use `LV_CALENDAR_PART_DATE` normal for normal dates, checked for highlighted, focused for today, pressed for the being pressed. (checked+pressed, focused+pressed also work)
- `chart` : only has `LINE` and `COLUMN` types because with new styles all the others can be described. LV_CHART_PART_SERIES sets the style of the series. bg_opa > 0 draws an area in LINE mode. `LV_CHART_PART_SERIES_BG` also added to set a different style for the series area. Padding in `LV_CHART_PART_BG` makes the series area smaller, and it ensures space for axis labels/numbers.
- `linemeter` , `gauge` : can have background if the related style properties are set. Padding makes the scale/lines smaller. scale_border_width and scale_end_border_width allow to draw an arc on the outer part of the scale lines.
- `gauge` : `lv_gauge_set_needle_img` allows use image as needle
- `canvas` : allow drawing to true color alpha and alpha only canvas, add `lv_canvas_blur_hor/ver` and rename `lv_canvas_rotate` to `lv_canvas_transform`
- `textarea` : If available in the font use bullet (`U+2022`) character in text area password
2020-04-30 17:27:22 +08:00
### New object types
- `lv_objmask` : masks can be added to it. The children will be masked accordingly.
### Others
2020-04-30 20:42:34 +08:00
- Change the built-in fonts to [Montserrat ](https://fonts.google.com/specimen/Montserrat ) and add built-in fonts from 12 px to 48 px for every 2nd size.
2020-04-30 17:27:22 +08:00
- Add example CJK and Arabic/Persian/Hebrew built-in font
2020-04-30 20:42:34 +08:00
- Add ° and "bullet" to the built-in fonts
2020-04-30 17:27:22 +08:00
- Add Arabic/Persian script support: change the character according to its position in the text.
- Add `playback_time` to animations.
- Add `repeat_count` to animations instead of the current "repeat forever".
- Replace `LV_LAYOUT_PRETTY` with `LV_LAYOUT_PRETTY_TOP/MID/BOTTOM`
### Demos
2020-04-30 20:42:34 +08:00
- [lv_examples ](https://github.com/littlevgl/lv_examples ) was reworked and new examples and demos were added
2020-04-30 17:27:22 +08:00
### New release policy
- Maintain this Changelog for every release
- Save old major version in new branches. E.g. `release/v6`
2020-04-30 20:42:34 +08:00
- Merge new features and fixes directly into `master` and release a patch or minor releases every 2 weeks.
2020-04-30 17:27:22 +08:00
### Migrating from v6 to v7
- First and foremost, create a new `lv_conf.h` based on `lv_conf_templ.h` .
2020-04-30 20:42:34 +08:00
- To try the new version it suggested using a simulator project and see the examples.
2020-04-30 17:27:22 +08:00
- If you have a running project, the most difficult part of the migration is updating to the new style system. Unfortunately, there is no better way than manually updating to the new format.
2020-04-30 18:24:39 +08:00
- The other parts are mainly minor renames and refactoring as described above.