/** * Called when a send settings element is released * @param element pointer to a chekbox or text area * @param dispi pointer to the caller display input * @return LV_ACTION_RES_OK because the list is NOT deleted in the function */ static lv_action_res_t win_send_settings_element_rel_action(lv_obj_t * element, lv_dispi_t * dispi) { send_settings_id_t id = lv_obj_get_free_num(element); lv_app_inst_t * app = lv_obj_get_free_p(element); my_app_data_t * app_data = app->app_data; if(id == SEND_SETTINGS_FN) { app_data->send_fn = lv_btn_get_state(element) == LV_BTN_STATE_REL ? 0 : 1; } else if(id == SEND_SETTINGS_SIZE) { app_data->send_size = lv_btn_get_state(element) == LV_BTN_STATE_REL ? 0 : 1; } else if(id == SEND_SETTINGS_CRC) { app_data->send_crc = lv_btn_get_state(element) == LV_BTN_STATE_REL ? 0 : 1; /*TODO CRC sending is not supported yet*/ if(app_data->send_crc != 0) { lv_app_notice_add("CRC sending is\nnot supported yet"); } } else if(id == SEND_SETTINGS_CHUNK_SIZE) { lv_app_kb_open(element, LV_APP_KB_MODE_NUM | LV_APP_KB_MODE_WIN_RESIZE, send_settings_kb_close_action, send_settings_kb_ok_action); } else if(id == SEND_SETTINGS_CHUNK_DELAY) { lv_app_kb_open(element, LV_APP_KB_MODE_NUM | LV_APP_KB_MODE_WIN_RESIZE, send_settings_kb_close_action, send_settings_kb_ok_action); } return LV_ACTION_RES_OK; }
static lv_res_t list_move(lv_obj_t *btn) { if(lv_obj_get_free_num(btn) == 0) { lv_list_up(list1); lv_list_up(list2); lv_list_up(list3); lv_list_up(list4); } else { lv_list_down(list1); lv_list_down(list2); lv_list_down(list3); lv_list_down(list4); } return LV_RES_OK; }
/** * Called when a send setting is typed and 'Close' pressed on the App. keyboard. * The function reverts the original value in the text area. * @param ta pointer to a text area */ static void send_settings_kb_close_action(lv_obj_t * ta) { send_settings_id_t id = lv_obj_get_free_num(ta); lv_app_inst_t * app = lv_obj_get_free_p(ta); my_app_data_t * app_data = app->app_data; char buf[32]; buf[0] = '\0'; if(id == SEND_SETTINGS_CHUNK_DELAY) { sprintf(buf, "%d", app_data->chunk_size); } else if(id == SEND_SETTINGS_CHUNK_SIZE) { sprintf(buf, "%d", app_data->chunk_size); } lv_ta_set_text(ta, buf); }
/** * Called when a send setting is typed and 'Ok' pressed on the App. keyboard. * The function saves teh new value. * @param ta pointer to a text area */ static void send_settings_kb_ok_action(lv_obj_t * ta) { send_settings_id_t id = lv_obj_get_free_num(ta); lv_app_inst_t * app = lv_obj_get_free_p(ta); my_app_data_t * app_data = app->app_data; int num; sscanf(lv_ta_get_txt(ta), "%d", &num); if(id == SEND_SETTINGS_CHUNK_DELAY) { if(num > LV_APP_FILES_CHUNK_MAX_TIME) num = LV_APP_FILES_CHUNK_MAX_TIME; if(num < LV_APP_FILES_CHUNK_MIN_TIME) num = LV_APP_FILES_CHUNK_MIN_TIME; app_data->chunk_delay = (uint16_t) num; } else if(id == SEND_SETTINGS_CHUNK_SIZE) { if(num > LV_APP_FILES_CHUNK_MAX_SIZE) num = LV_APP_FILES_CHUNK_MAX_SIZE; if(num < LV_APP_FILES_CHUNK_MIN_SIZE) num = LV_APP_FILES_CHUNK_MIN_SIZE; app_data->chunk_size= (uint16_t) num; } }