diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 3742e9bfc..6637b0601 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -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 diff --git a/docs/widgets/extra/keyboard.md b/docs/widgets/extra/keyboard.md index a891c308d..6b5925808 100644 --- a/docs/widgets/extra/keyboard.md +++ b/docs/widgets/extra/keyboard.md @@ -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. diff --git a/src/extra/widgets/keyboard/lv_keyboard.c b/src/extra/widgets/keyboard/lv_keyboard.c index 283fe17d7..09cb0c875 100644 --- a/src/extra/widgets/keyboard/lv_keyboard.c +++ b/src/extra/widgets/keyboard/lv_keyboard.c @@ -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, }; diff --git a/src/extra/widgets/keyboard/lv_keyboard.h b/src/extra/widgets/keyboard/lv_keyboard.h index 9c517567a..4b867c282 100644 --- a/src/extra/widgets/keyboard/lv_keyboard.h +++ b/src/extra/widgets/keyboard/lv_keyboard.h @@ -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;