improve keyboard
This commit is contained in:
@@ -31,6 +31,6 @@
|
|||||||
/*
|
/*
|
||||||
* firmeware version string
|
* firmeware version string
|
||||||
*/
|
*/
|
||||||
#define __FIRMWARE__ "2020072707"
|
#define __FIRMWARE__ "2020072708"
|
||||||
|
|
||||||
#endif // _CONFIG_H
|
#endif // _CONFIG_H
|
||||||
|
|||||||
@@ -23,30 +23,54 @@
|
|||||||
|
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
|
|
||||||
|
static lv_obj_t *kb_screen = NULL;
|
||||||
|
static lv_obj_t *kb_textarea = NULL;
|
||||||
static lv_obj_t *kb = NULL;
|
static lv_obj_t *kb = NULL;
|
||||||
|
static lv_obj_t *kb_user_textarea = NULL;
|
||||||
|
static lv_style_t kb_style;
|
||||||
|
|
||||||
static void kb_event_cb(lv_obj_t * ta, lv_event_t event);
|
static void kb_event_cb(lv_obj_t * ta, lv_event_t event);
|
||||||
|
|
||||||
void keyboard_setup( void ) {
|
void keyboard_setup( void ) {
|
||||||
if ( kb != NULL )
|
if ( kb != NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
lv_style_init( &kb_style );
|
||||||
|
lv_style_set_radius(&kb_style, LV_OBJ_PART_MAIN, 0);
|
||||||
|
lv_style_set_bg_color(&kb_style, LV_OBJ_PART_MAIN, LV_COLOR_GRAY);
|
||||||
|
lv_style_set_bg_opa(&kb_style, LV_OBJ_PART_MAIN, LV_OPA_100);
|
||||||
|
lv_style_set_border_width(&kb_style, LV_OBJ_PART_MAIN, 0);
|
||||||
|
lv_style_set_text_color(&kb_style, LV_OBJ_PART_MAIN, LV_COLOR_WHITE);
|
||||||
|
lv_style_set_image_recolor(&kb_style, LV_OBJ_PART_MAIN, LV_COLOR_WHITE);
|
||||||
|
|
||||||
|
kb_screen = lv_cont_create( lv_scr_act(), NULL );
|
||||||
|
lv_obj_add_style( kb_screen, LV_OBJ_PART_MAIN, &kb_style );
|
||||||
|
lv_obj_set_size( kb_screen, LV_HOR_RES_MAX , LV_VER_RES_MAX - 20 );
|
||||||
|
lv_obj_align( kb_screen, lv_scr_act(), LV_ALIGN_CENTER, 0, 20);
|
||||||
|
|
||||||
|
kb_textarea = lv_textarea_create( kb_screen, NULL );
|
||||||
|
lv_obj_set_size( kb_textarea, LV_HOR_RES_MAX - 10, 60 );
|
||||||
|
lv_textarea_set_one_line( kb_textarea, true);
|
||||||
|
lv_obj_align( kb_textarea, kb_screen, LV_ALIGN_IN_TOP_MID, 0, 5 );
|
||||||
|
|
||||||
kb = lv_keyboard_create( lv_scr_act() , NULL);
|
kb = lv_keyboard_create( lv_scr_act() , NULL);
|
||||||
// lv_obj_set_size(kb, LV_HOR_RES, LV_VER_RES / 2 );
|
lv_obj_set_size (kb, LV_HOR_RES, ( LV_VER_RES / 4 ) * 3 - 20);
|
||||||
lv_obj_set_size(kb, LV_HOR_RES, LV_VER_RES / 3);
|
|
||||||
lv_obj_align( kb, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, 0 );
|
lv_obj_align( kb, lv_scr_act(), LV_ALIGN_IN_BOTTOM_MID, 0, 0 );
|
||||||
lv_keyboard_set_cursor_manage( kb, true);
|
lv_keyboard_set_cursor_manage( kb, true);
|
||||||
lv_obj_set_event_cb( kb, kb_event_cb );
|
lv_obj_set_event_cb( kb, kb_event_cb );
|
||||||
lv_obj_set_hidden( kb, true );
|
|
||||||
|
|
||||||
|
keyboard_hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kb_event_cb( lv_obj_t * ta, lv_event_t event ) {
|
static void kb_event_cb( lv_obj_t * ta, lv_event_t event ) {
|
||||||
lv_keyboard_def_event_cb( ta, event );
|
lv_keyboard_def_event_cb( ta, event );
|
||||||
|
Serial.printf("Keyboard event: %d\r\n", event );
|
||||||
if ( event == LV_EVENT_CANCEL ) {
|
if ( event == LV_EVENT_CANCEL ) {
|
||||||
lv_obj_set_hidden( kb, true );
|
keyboard_hide();
|
||||||
}
|
}
|
||||||
if ( event == LV_EVENT_APPLY ) {
|
if ( event == LV_EVENT_APPLY ) {
|
||||||
lv_obj_set_hidden( kb, true );
|
lv_textarea_set_text( kb_user_textarea, lv_textarea_get_text( kb_textarea ) );
|
||||||
|
keyboard_hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,17 +78,23 @@ void keyboard_set_textarea( lv_obj_t *textarea ){
|
|||||||
if ( kb == NULL )
|
if ( kb == NULL )
|
||||||
return;
|
return;
|
||||||
keyboard_show();
|
keyboard_show();
|
||||||
lv_keyboard_set_textarea( kb, textarea );
|
kb_user_textarea = textarea;
|
||||||
|
lv_textarea_set_text( kb_textarea, lv_textarea_get_text( textarea ) );
|
||||||
|
lv_keyboard_set_textarea( kb, kb_textarea );
|
||||||
}
|
}
|
||||||
|
|
||||||
void keyboard_hide( void ) {
|
void keyboard_hide( void ) {
|
||||||
if ( kb == NULL )
|
if ( kb == NULL )
|
||||||
return;
|
return;
|
||||||
|
lv_obj_set_hidden( kb_screen, true );
|
||||||
|
lv_obj_set_hidden( kb_textarea, true );
|
||||||
lv_obj_set_hidden( kb, true );
|
lv_obj_set_hidden( kb, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
void keyboard_show( void ) {
|
void keyboard_show( void ) {
|
||||||
if ( kb == NULL )
|
if ( kb == NULL )
|
||||||
return;
|
return;
|
||||||
|
lv_obj_set_hidden( kb_screen, false );
|
||||||
|
lv_obj_set_hidden( kb_textarea, false );
|
||||||
lv_obj_set_hidden( kb, false );
|
lv_obj_set_hidden( kb, false );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,9 +148,6 @@ static void weather_apikey_event_cb( lv_obj_t * obj, lv_event_t event ) {
|
|||||||
if( event == LV_EVENT_CLICKED ) {
|
if( event == LV_EVENT_CLICKED ) {
|
||||||
keyboard_set_textarea( obj );
|
keyboard_set_textarea( obj );
|
||||||
}
|
}
|
||||||
else if ( event == LV_EVENT_DEFOCUSED ) {
|
|
||||||
keyboard_hide();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void weather_autosync_onoff_event_handler( lv_obj_t * obj, lv_event_t event ) {
|
static void weather_autosync_onoff_event_handler( lv_obj_t * obj, lv_event_t event ) {
|
||||||
|
|||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
2020072707
|
2020072708
|
||||||
|
|||||||
Reference in New Issue
Block a user