1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-28 07:03:00 +08:00

feat(keyboard): add user-defined modes (#2651)

As discussed in https://forum.lvgl.io/t/localized-keyboard-layouts/6734,
this adds further `..._USER_N` keyboard modes that can be used to
implemented more keyboard layouts for locales that need more than 4
layers.
This commit is contained in:
Johannes Marbach 2021-10-11 14:46:07 +02:00 committed by GitHub
parent 3b6a05e253
commit 7658f98e86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 3 deletions

View File

@ -40,6 +40,7 @@
- feat(btnmatrix/keyboard): add option to show popovers on button press
- fix(types) LV_FORMAT_ATTRIBUTE now works with gnu version greater than 4.4
- feat(event) add add LV_EVENT_CHILD_CREATED/DELETED
- feat(keyboard): add user-defined modes
## v8.0.2 (16.07.2021)
- fix(theme) improve button focus of keyboard

View File

@ -22,7 +22,8 @@ The Keyboards have the following modes:
- `LV_KEYBOARD_MODE_TEXT_LOWER` Display lower case letters
- `LV_KEYBOARD_MODE_TEXT_UPPER` Display upper case letters
- `LV_KEYBOARD_MODE_TEXT_SPECIAL` Display special characters
- `LV_KEYBOARD_MODE_NUMBER` Display numbers, +/- sign, and decimal dot.
- `LV_KEYBOARD_MODE_NUMBER` Display numbers, +/- sign, and decimal dot
- `LV_KEYBOARD_MODE_USER_1` through `LV_KEYBOARD_MODE_USER_4` User-defined modes.
The `TEXT` modes' layout contains buttons to change mode.

View File

@ -98,18 +98,26 @@ static const lv_btnmatrix_ctrl_t default_kb_ctrl_num_map[] = {
1, 1, 1, 1, 1
};
static const char * * kb_map[5] = {
static const char * * kb_map[9] = {
(const char * *)default_kb_map_lc,
(const char * *)default_kb_map_uc,
(const char * *)default_kb_map_spec,
(const char * *)default_kb_map_num,
(const char * *)default_kb_map_lc,
(const char * *)default_kb_map_lc,
(const char * *)default_kb_map_lc,
(const char * *)default_kb_map_lc,
(const char * *)NULL,
};
static const lv_btnmatrix_ctrl_t * kb_ctrl[5] = {
static const lv_btnmatrix_ctrl_t * kb_ctrl[9] = {
default_kb_ctrl_lc_map,
default_kb_ctrl_uc_map,
default_kb_ctrl_spec_map,
default_kb_ctrl_num_map,
default_kb_ctrl_lc_map,
default_kb_ctrl_lc_map,
default_kb_ctrl_lc_map,
default_kb_ctrl_lc_map,
NULL,
};

View File

@ -41,6 +41,10 @@ enum {
LV_KEYBOARD_MODE_TEXT_UPPER,
LV_KEYBOARD_MODE_SPECIAL,
LV_KEYBOARD_MODE_NUMBER,
LV_KEYBOARD_MODE_USER_1,
LV_KEYBOARD_MODE_USER_2,
LV_KEYBOARD_MODE_USER_3,
LV_KEYBOARD_MODE_USER_4,
};
typedef uint8_t lv_keyboard_mode_t;