From cfc2390b8bb5fed217c18757866d4a9179b82c92 Mon Sep 17 00:00:00 2001 From: Brian Hrebec Date: Sun, 27 Aug 2023 11:58:51 -0500 Subject: [PATCH] Added scrolling to adjustmenu --- NuEVI/src/adjustmenu.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/NuEVI/src/adjustmenu.cpp b/NuEVI/src/adjustmenu.cpp index 12fa1a8..ed95fc2 100644 --- a/NuEVI/src/adjustmenu.cpp +++ b/NuEVI/src/adjustmenu.cpp @@ -70,7 +70,19 @@ class AdjustMenuScreen : public MenuScreen { } private: void draw(bool redrawIndicators, bool redraw) { - for (size_t i = 0; i < N; i++) { + size_t scrollPos = 0; + if (_entries.size() >= ADJUST_NUM_ROWS) { + if ((_selectedEntry - scrollPos) > (ADJUST_NUM_ROWS-2) ) { + scrollPos = _selectedEntry - (ADJUST_NUM_ROWS-2); + } else if( (_selectedEntry - scrollPos) < 1) { + scrollPos = _selectedEntry - 1; + } + + scrollPos = constrain(scrollPos, 0, _entries.size() - ADJUST_NUM_ROWS); + } + + int end = constrain(scrollPos + ADJUST_NUM_ROWS, 0, N); + for (size_t i = scrollPos; i < end; i++) { if (redraw) { drawAdjustRow(_entries[i], _rowDrawings[i], i == _selectedEntry); } else if (redrawIndicators && i == _selectedEntry) {