1 #include "../../lv_examples.h"
2 #if LV_USE_TEXTAREA && LV_USE_KEYBOARD && LV_BUILD_EXAMPLES
3 
4 static void ta_event_cb(lv_event_t * e);
5 
6 static lv_obj_t * kb;
7 
8 /**
9  * Automatically format text like a clock. E.g. "12:34"
10  * Add the ':' automatically.
11  */
lv_example_textarea_3(void)12 void lv_example_textarea_3(void)
13 {
14     /*Create the text area*/
15     lv_obj_t * ta = lv_textarea_create(lv_scr_act());
16     lv_obj_add_event_cb(ta, ta_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
17     lv_textarea_set_accepted_chars(ta, "0123456789:");
18     lv_textarea_set_max_length(ta, 5);
19     lv_textarea_set_one_line(ta, true);
20     lv_textarea_set_text(ta, "");
21 
22     /*Create a keyboard*/
23     kb = lv_keyboard_create(lv_scr_act());
24     lv_obj_set_size(kb,  LV_HOR_RES, LV_VER_RES / 2);
25     lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER);
26     lv_keyboard_set_textarea(kb, ta);
27 }
28 
ta_event_cb(lv_event_t * e)29 static void ta_event_cb(lv_event_t * e)
30 {
31     lv_obj_t * ta = lv_event_get_target(e);
32     const char * txt = lv_textarea_get_text(ta);
33     if(txt[0] >= '0' && txt[0] <= '9' &&
34        txt[1] >= '0' && txt[1] <= '9' &&
35        txt[2] != ':') {
36         lv_textarea_set_cursor_pos(ta, 2);
37         lv_textarea_add_char(ta, ':');
38     }
39 }
40 
41 #endif
42