mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
Merge branch 'master' of https://github.com/littlevgl/lvgl
This commit is contained in:
commit
011f105038
@ -1,6 +1,6 @@
|
||||
# Changelog
|
||||
|
||||
## v7.9.1 (Planned at 19.01.2020
|
||||
## v7.9.1 (Planned at 19.01.2020)
|
||||
|
||||
### Bugfixes
|
||||
- fix(cpicker) fix division by zero
|
||||
@ -10,7 +10,7 @@
|
||||
- fix(indev) don't leave edit mode if there is only one object in the group
|
||||
|
||||
|
||||
## v7.9.0 (Plann1d at 05.01.2020
|
||||
## v7.9.0
|
||||
|
||||
### New features
|
||||
- feat(chart) add lv_chart_remove_series and lv_chart_hide_series
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lvgl",
|
||||
"version": "7.9.1",
|
||||
"version": "7.10.0",
|
||||
"keywords": "graphics, gui, embedded, tft, lvgl",
|
||||
"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.",
|
||||
"repository": {
|
||||
|
@ -1,5 +1,5 @@
|
||||
name=lvgl
|
||||
version=7.9.1
|
||||
version=7.10.0
|
||||
author=kisvegabor
|
||||
maintainer=kisvegabor,embeddedt,pete-pjb
|
||||
sentence=Full-featured Graphics Library for Embedded Systems
|
||||
|
@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @file lv_conf.h
|
||||
* Configuration file for v7.9.1
|
||||
* Configuration file for v7.10.0-dev
|
||||
*/
|
||||
|
||||
/*
|
||||
|
28
lvgl.h
28
lvgl.h
@ -14,8 +14,8 @@ extern "C" {
|
||||
* CURRENT VERSION OF LVGL
|
||||
***************************/
|
||||
#define LVGL_VERSION_MAJOR 7
|
||||
#define LVGL_VERSION_MINOR 9
|
||||
#define LVGL_VERSION_PATCH 1
|
||||
#define LVGL_VERSION_MINOR 10
|
||||
#define LVGL_VERSION_PATCH 0
|
||||
#define LVGL_VERSION_INFO "dev"
|
||||
|
||||
/*********************
|
||||
@ -120,6 +120,30 @@ extern "C" {
|
||||
* */
|
||||
#define LV_VERSION_CHECK(x,y,z) (x == LVGL_VERSION_MAJOR && (y < LVGL_VERSION_MINOR || (y == LVGL_VERSION_MINOR && z <= LVGL_VERSION_PATCH)))
|
||||
|
||||
/**
|
||||
* Wrapper functions for VERSION macros
|
||||
*/
|
||||
|
||||
static inline int lv_version_major()
|
||||
{
|
||||
return LVGL_VERSION_MAJOR;
|
||||
}
|
||||
|
||||
static inline int lv_version_minor()
|
||||
{
|
||||
return LVGL_VERSION_MINOR;
|
||||
}
|
||||
|
||||
static inline int lv_version_patch()
|
||||
{
|
||||
return LVGL_VERSION_PATCH;
|
||||
}
|
||||
|
||||
static inline const char *lv_version_info()
|
||||
{
|
||||
return LVGL_VERSION_INFO;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -748,6 +748,7 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h" */
|
||||
#endif
|
||||
#endif /*LV_TICK_CUSTOM*/
|
||||
|
||||
|
||||
/*================
|
||||
* Log settings
|
||||
*===============*/
|
||||
@ -795,7 +796,7 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h" */
|
||||
* If an invalid parameter is found an error log message is printed and
|
||||
* the MCU halts at the error. (`LV_USE_LOG` should be enabled)
|
||||
* If you are debugging the MCU you can pause
|
||||
* the debugger to see exactly where the issue is.
|
||||
* the debugger to see exactly where the issue is.
|
||||
*
|
||||
* The behavior of asserts can be overwritten by redefining them here.
|
||||
* E.g. #define LV_ASSERT_MEM(p) <my_assert_code>
|
||||
@ -872,7 +873,7 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h" */
|
||||
* FONT USAGE
|
||||
*===================*/
|
||||
|
||||
/* The built-in fonts contains the ASCII range and some Symbols with 4 bit-per-pixel.
|
||||
/* The built-in fonts contains the ASCII range and some Symbols with 4 bit-per-pixel.
|
||||
* The symbols are available via `LV_SYMBOL_...` defines
|
||||
* More info about fonts: https://docs.lvgl.io/v7/en/html/overview/font.html
|
||||
* To create a new font go to: https://lvgl.com/ttf-font-to-c-array
|
||||
@ -1987,6 +1988,8 @@ e.g. "stm32f769xx.h" or "stm32f429xx.h" */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*If running without lv_conf.h add typdesf with default value*/
|
||||
#if defined(LV_CONF_SKIP)
|
||||
|
||||
|
@ -669,7 +669,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
|
||||
/*On enter long press toggle edit mode.*/
|
||||
if(editable) {
|
||||
/*Don't leave edit mode if there is only one object (nowhere to navigate)*/
|
||||
if (_lv_ll_get_len(&g->obj_ll) > 1 ) {
|
||||
if(_lv_ll_get_len(&g->obj_ll) > 1) {
|
||||
lv_group_set_editing(g, lv_group_get_editing(g) ? false : true); /*Toggle edit mode on long press*/
|
||||
}
|
||||
}
|
||||
|
@ -239,7 +239,7 @@ bool _lv_area_is_in(const lv_area_t * ain_p, const lv_area_t * aholder_p, lv_coo
|
||||
is_in = true;
|
||||
}
|
||||
|
||||
if (!is_in) return false;
|
||||
if(!is_in) return false;
|
||||
if(radius == 0) return true;
|
||||
|
||||
/*Check if the corner points are inside the radius or not*/
|
||||
|
@ -108,7 +108,7 @@ lv_fs_res_t lv_fs_open(lv_fs_file_t * file_p, const char * path, lv_fs_mode_t mo
|
||||
|
||||
const char * real_path = lv_fs_get_real_path(path);
|
||||
|
||||
if (file_p->drv->file_size == 0) { /*Is file_d zero size?*/
|
||||
if(file_p->drv->file_size == 0) { /*Is file_d zero size?*/
|
||||
/*Pass file_d's address to open_cb, so the implementor can allocate memory byself*/
|
||||
return file_p->drv->open_cb(file_p->drv, &file_p->file_d, real_path, mode);
|
||||
}
|
||||
@ -382,7 +382,7 @@ lv_fs_res_t lv_fs_dir_open(lv_fs_dir_t * rddir_p, const char * path)
|
||||
|
||||
const char * real_path = lv_fs_get_real_path(path);
|
||||
|
||||
if (rddir_p->drv->rddir_size == 0) { /*Is dir_d zero size?*/
|
||||
if(rddir_p->drv->rddir_size == 0) { /*Is dir_d zero size?*/
|
||||
/*Pass dir_d's address to dir_open_cb, so the implementor can allocate memory byself*/
|
||||
return rddir_p->drv->dir_open_cb(rddir_p->drv, &rddir_p->dir_d, real_path);
|
||||
}
|
||||
|
@ -37,40 +37,80 @@ static lv_signal_cb_t ancestor_signal;
|
||||
static const char * const default_kb_map_lc[] = {"1#", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", LV_SYMBOL_BACKSPACE, "\n",
|
||||
"ABC", "a", "s", "d", "f", "g", "h", "j", "k", "l", LV_SYMBOL_NEW_LINE, "\n",
|
||||
"_", "-", "z", "x", "c", "v", "b", "n", "m", ".", ",", ":", "\n",
|
||||
LV_SYMBOL_CLOSE, LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, LV_SYMBOL_OK, ""
|
||||
LV_SYMBOL_CLOSE,
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
"أب",
|
||||
#endif
|
||||
LV_SYMBOL_LEFT," ", LV_SYMBOL_RIGHT, LV_SYMBOL_OK, ""
|
||||
};
|
||||
|
||||
static const lv_btnmatrix_ctrl_t default_kb_ctrl_lc_map[] = {
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7,
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2, 2, 6, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 2
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2,
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2,
|
||||
#endif
|
||||
2, 6, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 2
|
||||
};
|
||||
|
||||
static const char * const default_kb_map_uc[] = {"1#", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", LV_SYMBOL_BACKSPACE, "\n",
|
||||
"abc", "A", "S", "D", "F", "G", "H", "J", "K", "L", LV_SYMBOL_NEW_LINE, "\n",
|
||||
"_", "-", "Z", "X", "C", "V", "B", "N", "M", ".", ",", ":", "\n",
|
||||
LV_SYMBOL_CLOSE, LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, LV_SYMBOL_OK, ""
|
||||
LV_SYMBOL_CLOSE,
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
"أب",
|
||||
#endif
|
||||
LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, LV_SYMBOL_OK, ""
|
||||
};
|
||||
|
||||
static const lv_btnmatrix_ctrl_t default_kb_ctrl_uc_map[] = {
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7,
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2, 2, 6, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 2
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2,
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2,
|
||||
#endif
|
||||
2, 6, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 2
|
||||
};
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
static const char * const default_kb_map_ar[] =
|
||||
{
|
||||
"1#", "ض", "ص", "ث", "ق", "ف", "غ", "ع", "ه","خ", "ح","ج", "\n",
|
||||
"ش", "س", "ي", "ب", "ل", "ا", "ت", "ن", "م", "ك", "ط", LV_SYMBOL_BACKSPACE, "\n",
|
||||
"ذ", "ء", "ؤ", "ر", "ى", "ة", "و", "ز", "ظ", "د", "ز", "ظ", "د","\n",
|
||||
LV_SYMBOL_CLOSE,"abc", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT,LV_SYMBOL_NEW_LINE,LV_SYMBOL_OK, ""
|
||||
};
|
||||
|
||||
static const lv_btnmatrix_ctrl_t default_kb_ctrl_ar_map[] = {
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2,LV_KEYBOARD_CTRL_BTN_FLAGS | 2,2, 6, 2, 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 2
|
||||
};
|
||||
#endif
|
||||
|
||||
static const char * const default_kb_map_spec[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", LV_SYMBOL_BACKSPACE, "\n",
|
||||
"abc", "+", "-", "/", "*", "=", "%", "!", "?", "#", "<", ">", "\n",
|
||||
"\\", "@", "$", "(", ")", "{", "}", "[", "]", ";", "\"", "'", "\n",
|
||||
LV_SYMBOL_CLOSE, LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, LV_SYMBOL_OK, ""
|
||||
LV_SYMBOL_CLOSE,
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
"أب",
|
||||
#endif
|
||||
LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, LV_SYMBOL_OK, ""
|
||||
};
|
||||
|
||||
static const lv_btnmatrix_ctrl_t default_kb_ctrl_spec_map[] = {
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2, 2, 6, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 2
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2,
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 2,
|
||||
#endif
|
||||
2, 6, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 2
|
||||
};
|
||||
|
||||
static const char * const default_kb_map_num[] = {"1", "2", "3", LV_SYMBOL_CLOSE, "\n",
|
||||
@ -87,17 +127,23 @@ static const lv_btnmatrix_ctrl_t default_kb_ctrl_num_map[] = {
|
||||
};
|
||||
/* clang-format on */
|
||||
|
||||
static const char * * kb_map[4] = {
|
||||
static const char * * kb_map[] = {
|
||||
(const char * *)default_kb_map_lc,
|
||||
(const char * *)default_kb_map_uc,
|
||||
(const char * *)default_kb_map_spec,
|
||||
(const char * *)default_kb_map_num
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
,(const char * *)default_kb_map_ar
|
||||
#endif
|
||||
};
|
||||
static const lv_btnmatrix_ctrl_t * kb_ctrl[4] = {
|
||||
static const lv_btnmatrix_ctrl_t * kb_ctrl[] = {
|
||||
default_kb_ctrl_lc_map,
|
||||
default_kb_ctrl_uc_map,
|
||||
default_kb_ctrl_spec_map,
|
||||
default_kb_ctrl_num_map
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
,default_kb_ctrl_ar_map
|
||||
#endif
|
||||
};
|
||||
|
||||
/**********************
|
||||
@ -354,6 +400,14 @@ void lv_keyboard_def_event_cb(lv_obj_t * kb, lv_event_t event)
|
||||
lv_btnmatrix_set_ctrl_map(kb, kb_ctrl[LV_KEYBOARD_MODE_TEXT_LOWER]);
|
||||
return;
|
||||
}
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
else if(strcmp(txt, "أب") == 0) {
|
||||
ext->mode = LV_KEYBOARD_MODE_TEXT_ARABIC;
|
||||
lv_btnmatrix_set_map(kb, kb_map[LV_KEYBOARD_MODE_TEXT_ARABIC]);
|
||||
lv_btnmatrix_set_ctrl_map(kb, kb_ctrl[LV_KEYBOARD_MODE_TEXT_ARABIC]);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
else if(strcmp(txt, "ABC") == 0) {
|
||||
ext->mode = LV_KEYBOARD_MODE_TEXT_UPPER;
|
||||
lv_btnmatrix_set_map(kb, kb_map[LV_KEYBOARD_MODE_TEXT_UPPER]);
|
||||
|
@ -43,7 +43,10 @@ enum {
|
||||
LV_KEYBOARD_MODE_TEXT_LOWER,
|
||||
LV_KEYBOARD_MODE_TEXT_UPPER,
|
||||
LV_KEYBOARD_MODE_SPECIAL,
|
||||
LV_KEYBOARD_MODE_NUM,
|
||||
LV_KEYBOARD_MODE_NUM
|
||||
#if LV_USE_ARABIC_PERSIAN_CHARS == 1
|
||||
,LV_KEYBOARD_MODE_TEXT_ARABIC
|
||||
#endif
|
||||
};
|
||||
typedef uint8_t lv_keyboard_mode_t;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user