Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
14
sdk/lib/lvgl/examples/widgets/keyboard/index.rst
Normal file
14
sdk/lib/lvgl/examples/widgets/keyboard/index.rst
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
Keyboard with text area
|
||||
"""""""""""""""""""""""
|
||||
|
||||
.. lv_example:: widgets/keyboard/lv_example_keyboard_1
|
||||
:language: c
|
||||
|
||||
|
||||
Keyboard with custom map
|
||||
""""""""""""""""""""""""
|
||||
|
||||
.. lv_example:: widgets/keyboard/lv_example_keyboard_2
|
||||
:language: c
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
#include "../../lv_examples.h"
|
||||
#if LV_USE_KEYBOARD && LV_BUILD_EXAMPLES
|
||||
|
||||
static void ta_event_cb(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t code = lv_event_get_code(e);
|
||||
lv_obj_t * ta = lv_event_get_target(e);
|
||||
lv_obj_t * kb = lv_event_get_user_data(e);
|
||||
if(code == LV_EVENT_FOCUSED) {
|
||||
lv_keyboard_set_textarea(kb, ta);
|
||||
lv_obj_clear_flag(kb, LV_OBJ_FLAG_HIDDEN);
|
||||
}
|
||||
|
||||
if(code == LV_EVENT_DEFOCUSED) {
|
||||
lv_keyboard_set_textarea(kb, NULL);
|
||||
lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_example_keyboard_1(void)
|
||||
{
|
||||
/*Create a keyboard to use it with an of the text areas*/
|
||||
lv_obj_t * kb = lv_keyboard_create(lv_scr_act());
|
||||
|
||||
/*Create a text area. The keyboard will write here*/
|
||||
lv_obj_t * ta;
|
||||
ta = lv_textarea_create(lv_scr_act());
|
||||
lv_obj_align(ta, LV_ALIGN_TOP_LEFT, 10, 10);
|
||||
lv_obj_add_event_cb(ta, ta_event_cb, LV_EVENT_ALL, kb);
|
||||
lv_textarea_set_placeholder_text(ta, "Hello");
|
||||
lv_obj_set_size(ta, 140, 80);
|
||||
|
||||
ta = lv_textarea_create(lv_scr_act());
|
||||
lv_obj_align(ta, LV_ALIGN_TOP_RIGHT, -10, 10);
|
||||
lv_obj_add_event_cb(ta, ta_event_cb, LV_EVENT_ALL, kb);
|
||||
lv_obj_set_size(ta, 140, 80);
|
||||
|
||||
lv_keyboard_set_textarea(kb, ta);
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,28 @@
|
||||
def ta_event_cb(e,kb):
|
||||
code = e.get_code()
|
||||
ta = e.get_target()
|
||||
if code == lv.EVENT.FOCUSED:
|
||||
kb.set_textarea(ta)
|
||||
kb.clear_flag(lv.obj.FLAG.HIDDEN)
|
||||
|
||||
if code == lv.EVENT.DEFOCUSED:
|
||||
kb.set_textarea(None)
|
||||
kb.add_flag(lv.obj.FLAG.HIDDEN)
|
||||
|
||||
# Create a keyboard to use it with one of the text areas
|
||||
kb = lv.keyboard(lv.scr_act())
|
||||
|
||||
# Create a text area. The keyboard will write here
|
||||
ta = lv.textarea(lv.scr_act())
|
||||
ta.set_width(200)
|
||||
ta.align(lv.ALIGN.TOP_LEFT, 10, 10)
|
||||
ta.add_event_cb(lambda e: ta_event_cb(e,kb), lv.EVENT.ALL, None)
|
||||
ta.set_placeholder_text("Hello")
|
||||
|
||||
ta = lv.textarea(lv.scr_act())
|
||||
ta.set_width(200)
|
||||
ta.align(lv.ALIGN.TOP_RIGHT, -10, 10)
|
||||
ta.add_event_cb(lambda e: ta_event_cb(e,kb), lv.EVENT.ALL, None)
|
||||
|
||||
kb.set_textarea(ta)
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
#include "../../lv_examples.h"
|
||||
#if LV_USE_KEYBOARD && LV_BUILD_EXAMPLES
|
||||
|
||||
void lv_example_keyboard_2(void)
|
||||
{
|
||||
/*Create an AZERTY keyboard map*/
|
||||
static const char * kb_map[] = {"A", "Z", "E", "R", "T", "Y", "U", "I", "O", "P", LV_SYMBOL_BACKSPACE, "\n",
|
||||
"Q", "S", "D", "F", "G", "J", "K", "L", "M", LV_SYMBOL_NEW_LINE, "\n",
|
||||
"W", "X", "C", "V", "B", "N", ",", ".", ":", "!", "?", "\n",
|
||||
LV_SYMBOL_CLOSE, " ", " ", " ", LV_SYMBOL_OK, NULL
|
||||
};
|
||||
|
||||
/*Set the relative width of the buttons and other controls*/
|
||||
static const lv_btnmatrix_ctrl_t kb_ctrl[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 6,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
2, LV_BTNMATRIX_CTRL_HIDDEN | 2, 6, LV_BTNMATRIX_CTRL_HIDDEN | 2, 2
|
||||
};
|
||||
|
||||
/*Create a keyboard and add the new map as USER_1 mode*/
|
||||
lv_obj_t * kb = lv_keyboard_create(lv_scr_act());
|
||||
|
||||
lv_keyboard_set_map(kb, LV_KEYBOARD_MODE_USER_1, kb_map, kb_ctrl);
|
||||
lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_USER_1);
|
||||
|
||||
/*Create a text area. The keyboard will write here*/
|
||||
lv_obj_t * ta;
|
||||
ta = lv_textarea_create(lv_scr_act());
|
||||
lv_obj_align(ta, LV_ALIGN_TOP_MID, 0, 10);
|
||||
lv_obj_set_size(ta, lv_pct(90), 80);
|
||||
lv_obj_add_state(ta, LV_STATE_FOCUSED);
|
||||
|
||||
lv_keyboard_set_textarea(kb, ta);
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,26 @@
|
||||
# Create an AZERTY keyboard map
|
||||
kb_map = ["A", "Z", "E", "R", "T", "Y", "U", "I", "O", "P", lv.SYMBOL.BACKSPACE, "\n",
|
||||
"Q", "S", "D", "F", "G", "J", "K", "L", "M", lv.SYMBOL.NEW_LINE, "\n",
|
||||
"W", "X", "C", "V", "B", "N", ",", ".", ":", "!", "?", "\n",
|
||||
lv.SYMBOL.CLOSE, " ", " ", " ", lv.SYMBOL.OK, None]
|
||||
|
||||
# Set the relative width of the buttons and other controls
|
||||
kb_ctrl = [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 6,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
2, lv.btnmatrix.CTRL.HIDDEN | 2, 6, lv.btnmatrix.CTRL.HIDDEN | 2, 2]
|
||||
|
||||
# Create a keyboard and add the new map as USER_1 mode
|
||||
kb = lv.keyboard(lv.scr_act())
|
||||
|
||||
kb.set_map(lv.keyboard.MODE.USER_1, kb_map, kb_ctrl)
|
||||
kb.set_mode(lv.keyboard.MODE.USER_1)
|
||||
|
||||
# Create a text area. The keyboard will write here
|
||||
ta = lv.textarea(lv.scr_act())
|
||||
ta.align(lv.ALIGN.TOP_MID, 0, 10)
|
||||
ta.set_size(lv.pct(90), 80)
|
||||
ta.add_state(lv.STATE.FOCUSED)
|
||||
|
||||
kb.set_textarea(ta)
|
||||
|
||||
Reference in New Issue
Block a user