#include "gui/common/NamedField.hpp" #include DebugViewView::DebugViewView() {} void DebugViewView::setupScreen() { DebugViewViewBase::setupScreen(); size_t numItems = DataFieldType_COUNT / 2; if (DataFieldType_COUNT % 2 == 1) { numItems++; } list.setNumberOfItems(numItems); } void DebugViewView::tearDownScreen() { DebugViewViewBase::tearDownScreen(); } void DebugViewView::listUpdateItem(DebugViewLine &line, int16_t itemIndex) { size_t idx = itemIndex * 2; line.setFieldType(0, static_cast(idx)); idx++; if (idx < DataFieldType_COUNT) { line.setFieldType(1, static_cast(idx)); line.setFieldVisible(1, true); } else { line.setFieldVisible(1, false); } line.setLightBG(itemIndex % 2 == 1); } void DebugViewView::updateFieldValues() { for (DebugViewLine &el : listListItems.element) { el.updateFieldValues(); } } void DebugViewView::scrollUp() { if (scrollIndex == 0) { updateScrollIndex(list.getNumberOfItems() - 1); } else { updateScrollIndex(scrollIndex - 1); } } void DebugViewView::scrollDown() { updateScrollIndex((scrollIndex + 1) % list.getNumberOfItems()); } void DebugViewView::updateScrollIndex(size_t index) { scrollIndex = index; if (scrollIndex == 0) { // Just animating to 0 looks very broken when scrolling forwards. Animating // to numItems looks good in both directions. list.animateToItem(list.getNumberOfItems(), 2); } else { list.animateToItem(scrollIndex, 2); } }