/** * Create lists to test their functionalities */ void lv_test_list_1(void) { /* Default object. It will be an empty list*/ list1 = lv_list_create(lv_scr_act(), NULL); lv_obj_set_pos(list1, 10, 10); list2 = lv_list_create(lv_scr_act(), NULL); lv_obj_align(list2, list1, LV_ALIGN_OUT_RIGHT_TOP, 20, 0); lv_list_add(list2, SYMBOL_FILE, "File", NULL); lv_list_add(list2, SYMBOL_DIRECTORY, "Directory", NULL); lv_list_add(list2, &img_flower_icon, "Image icon", NULL); lv_obj_set_width(list2, 100); list3 = lv_list_create(lv_scr_act(), list2); lv_obj_align(list3, list2, LV_ALIGN_OUT_RIGHT_TOP, 20, 0); lv_list_add(list3, NULL, "No icon", NULL); lv_list_add(list3, SYMBOL_CLOSE, "", NULL); lv_list_add(list3, SYMBOL_UP, "Up", NULL); lv_list_add(list3, SYMBOL_DOWN, "Down", NULL); static lv_style_t sb; static lv_style_t bg; lv_style_copy(&sb, &lv_style_pretty_color); lv_style_copy(&bg, &lv_style_pretty_color); sb.body.padding.hor = -10; sb.body.padding.inner = 10; bg.body.padding.hor = 20; list4 = lv_list_create(lv_scr_act(), list3); lv_list_set_style(list4, LV_LIST_STYLE_BG, &bg); lv_list_set_style(list4, LV_LIST_STYLE_SB, &sb); lv_obj_align(list4, list3, LV_ALIGN_OUT_RIGHT_TOP, 20, 0); lv_obj_set_width(list4, 200); /*Add list up/down buttons*/ lv_obj_t *btn_up = lv_btn_create(lv_scr_act(), NULL); lv_obj_align(btn_up, list1, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10); lv_btn_set_action(btn_up, LV_BTN_ACTION_CLICK, list_move); lv_obj_set_free_num(btn_up, 0); lv_obj_t *label = lv_label_create(btn_up, NULL); lv_label_set_text(label, SYMBOL_UP); lv_obj_t *btn_down = lv_btn_create(lv_scr_act(), btn_up); lv_obj_align(btn_down, btn_up, LV_ALIGN_OUT_RIGHT_MID, 10, 0); lv_obj_set_free_num(btn_down, 1); label = lv_label_create(btn_down, NULL); lv_label_set_text(label, SYMBOL_DOWN); }
/** * Create objects to configure the applications * @param app pointer to an application which settings should be created * @param conf_win pointer to a window where the objects can be created * (the window has the proper layout) */ static void my_conf_open(lv_app_inst_t * app, lv_obj_t * conf_win) { my_app_data_t * app_data = app->app_data; /*Create check boxes*/ lv_obj_t * cb; /*Send file name check box*/ cb = lv_cb_create(conf_win, NULL); lv_cb_set_text(cb, "Send file name"); lv_obj_set_free_num(cb, SEND_SETTINGS_FN); lv_obj_set_free_p(cb, app); lv_btn_set_rel_action(cb, win_send_settings_element_rel_action); if(app_data->send_fn != 0) lv_btn_set_state(cb, LV_BTN_STATE_TREL); else lv_btn_set_state(cb, LV_BTN_STATE_REL); /*Send size check box*/ cb = lv_cb_create(conf_win, cb); lv_cb_set_text(cb, "Send size"); lv_obj_set_free_num(cb, SEND_SETTINGS_SIZE); if(app_data->send_size != 0) lv_btn_set_state(cb, LV_BTN_STATE_TREL); else lv_btn_set_state(cb, LV_BTN_STATE_REL); /*Send CRC check box*/ cb = lv_cb_create(conf_win, cb); lv_cb_set_text(cb, "Send CRC"); lv_obj_set_free_num(cb, SEND_SETTINGS_CRC); if(app_data->send_crc != 0) lv_btn_set_state(cb, LV_BTN_STATE_TREL); else lv_btn_set_state(cb, LV_BTN_STATE_REL); /*Create a text area to type chunk size*/ lv_obj_t * val_set_h; val_set_h = lv_cont_create(conf_win, NULL); lv_obj_set_style(val_set_h, lv_style_get(LV_STYLE_PLAIN_COLOR, NULL)); lv_obj_set_click(val_set_h, false); lv_cont_set_fit(val_set_h, true, true); lv_cont_set_layout(val_set_h, LV_CONT_LAYOUT_ROW_M); lv_obj_t * label; label = lv_label_create(val_set_h, NULL); lv_label_set_text(label, "Chunk size"); lv_obj_t * ta; char buf[32]; ta = lv_ta_create(val_set_h, NULL); lv_cont_set_fit(ta, false, true); lv_obj_set_free_num(ta, SEND_SETTINGS_CHUNK_SIZE); lv_obj_set_free_p(ta, app); lv_page_set_rel_action(ta, win_send_settings_element_rel_action); sprintf(buf, "%d", app_data->chunk_size); lv_ta_set_text(ta, buf); /*Create a text area to type the chunk delay*/ val_set_h = lv_cont_create(conf_win, val_set_h); label = lv_label_create(val_set_h, NULL); lv_label_set_text(label, "Inter-chunk delay"); ta = lv_ta_create(val_set_h, ta); lv_obj_set_free_num(ta, SEND_SETTINGS_CHUNK_DELAY); sprintf(buf, "%d", app_data->chunk_delay); lv_ta_set_text(ta, buf); }