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

Merge pull request #788 from MiSimon/feature_ta_ctrl_keys

Added POS1 and END support to lv_ta
This commit is contained in:
Gabor Kiss-Vamosi 2019-02-03 00:40:34 +01:00 committed by GitHub
commit 2752b51d50
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 5 deletions

View File

@ -36,6 +36,8 @@ extern "C" {
#define LV_GROUP_KEY_ENTER 10 /*0x0A, '\n'*/
#define LV_GROUP_KEY_NEXT 9 /*0x09, '\t'*/
#define LV_GROUP_KEY_PREV 11 /*0x0B, '*/
#define LV_GROUP_KEY_HOME 2 /*0x02, STX*/
#define LV_GROUP_KEY_END 3 /*0x03, ETX*/
#if USE_LV_GROUP != 0
/**********************

View File

@ -351,6 +351,17 @@ void lv_ta_del_char(lv_obj_t * ta)
lv_ta_set_cursor_pos(ta, ext->cursor.pos - 1);
}
/**
* Delete the right character from the current cursor position
* @param ta pointer to a text area object
*/
void lv_ta_del_char_forward(lv_obj_t * ta)
{
uint16_t cp = lv_ta_get_cursor_pos(ta);
lv_ta_set_cursor_pos(ta, cp + 1);
if(cp != lv_ta_get_cursor_pos(ta)) lv_ta_del_char(ta);
}
/*=====================
* Setter functions
*====================*/
@ -1051,11 +1062,9 @@ static lv_res_t lv_ta_signal(lv_obj_t * ta, lv_signal_t sign, void * param)
else if(c == LV_GROUP_KEY_UP) lv_ta_cursor_up(ta);
else if(c == LV_GROUP_KEY_DOWN) lv_ta_cursor_down(ta);
else if(c == LV_GROUP_KEY_BACKSPACE) lv_ta_del_char(ta);
else if(c == LV_GROUP_KEY_DEL) {
uint16_t cp = lv_ta_get_cursor_pos(ta);
lv_ta_set_cursor_pos(ta, cp + 1);
if(cp != lv_ta_get_cursor_pos(ta)) lv_ta_del_char(ta);
}
else if(c == LV_GROUP_KEY_DEL) lv_ta_del_char_forward(ta);
else if(c == LV_GROUP_KEY_HOME) lv_ta_set_cursor_pos(ta, 0);
else if(c == LV_GROUP_KEY_END) lv_ta_set_cursor_pos(ta, LV_TA_CURSOR_LAST);
else {
lv_ta_add_char(ta, c);
}

View File

@ -122,6 +122,12 @@ void lv_ta_add_text(lv_obj_t * ta, const char * txt);
*/
void lv_ta_del_char(lv_obj_t * ta);
/**
* Delete the right character from the current cursor position
* @param ta pointer to a text area object
*/
void lv_ta_del_char_forward(lv_obj_t * ta);
/*=====================
* Setter functions
*====================*/