| 520 | } |
| 521 | |
| 522 | void View::init(const AppContext& appContext, lv_obj_t* parent) { |
| 523 | lv_obj_set_flex_flow(parent, LV_FLEX_FLOW_COLUMN); |
| 524 | lv_obj_set_style_pad_row(parent, 0, LV_STATE_DEFAULT); |
| 525 | |
| 526 | auto* toolbar = lvgl::toolbar_create(parent, appContext); |
| 527 | navigate_up_button = lvgl::toolbar_add_image_button_action(toolbar, LV_SYMBOL_UP, &onNavigateUpPressedCallback, this); |
| 528 | new_file_button = lvgl::toolbar_add_image_button_action(toolbar, LV_SYMBOL_FILE, &onNewFilePressedCallback, this); |
| 529 | new_folder_button = lvgl::toolbar_add_image_button_action(toolbar, LV_SYMBOL_DIRECTORY, &onNewFolderPressedCallback, this); |
| 530 | paste_button = lvgl::toolbar_add_image_button_action(toolbar, LV_SYMBOL_PASTE, &onPastePressedCallback, this); |
| 531 | lv_obj_add_flag(lv_obj_get_parent(paste_button), LV_OBJ_FLAG_HIDDEN); |
| 532 | |
| 533 | auto* wrapper = lv_obj_create(parent); |
| 534 | lv_obj_set_width(wrapper, LV_PCT(100)); |
| 535 | lv_obj_set_style_border_width(wrapper, 0, 0); |
| 536 | lv_obj_set_style_pad_all(wrapper, 0, 0); |
| 537 | lv_obj_set_flex_grow(wrapper, 1); |
| 538 | lv_obj_set_flex_flow(wrapper, LV_FLEX_FLOW_ROW); |
| 539 | |
| 540 | dir_entry_list = lv_list_create(wrapper); |
| 541 | lv_obj_set_height(dir_entry_list, LV_PCT(100)); |
| 542 | lv_obj_set_flex_grow(dir_entry_list, 1); |
| 543 | |
| 544 | lv_obj_add_event_cb(dir_entry_list, dirEntryListScrollBeginCallback, LV_EVENT_SCROLL_BEGIN, this); |
| 545 | |
| 546 | action_list = lv_list_create(wrapper); |
| 547 | lv_obj_set_height(action_list, LV_PCT(100)); |
| 548 | lv_obj_set_flex_grow(action_list, 1); |
| 549 | lv_obj_add_flag(action_list, LV_OBJ_FLAG_HIDDEN); |
| 550 | |
| 551 | update(); |
| 552 | } |
| 553 | |
| 554 | void View::onDirEntryListScrollBegin() { |
| 555 | auto scoped_lockable = lvgl::getSyncLock()->asScopedLock(); |
no test coverage detected