From 35abefbacbe2cd7ecfc93fb4886536fffd07a0fc Mon Sep 17 00:00:00 2001 From: LiquidFenrir Date: Fri, 20 Jan 2017 18:52:48 +0100 Subject: [PATCH] add ability to navigate faster for people with a lot of entries --- source/draw.c | 10 +++++++++- source/main.c | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/source/draw.c b/source/draw.c index 95e80e3..8f8934e 100644 --- a/source/draw.c +++ b/source/draw.c @@ -18,7 +18,15 @@ void drawInstructions() void drawMenu(config * parsed_config, u8 * state, u8 selected_entry) { - if (selected_entry >= (MAX_ENTRIES_PER_SCREEN + scroll)) { + if (selected_entry == 0) { + scroll = 0; + } + else if(selected_entry == parsed_config->entries_number-1) { + scroll = parsed_config->entries_number - MAX_ENTRIES_PER_SCREEN; + if (scroll >= parsed_config->entries_number) + scroll = 0; + } + else if (selected_entry >= (MAX_ENTRIES_PER_SCREEN + scroll)) { scroll++; } else if ((selected_entry - scroll) < 0) { diff --git a/source/main.c b/source/main.c index 1ddc064..384e267 100644 --- a/source/main.c +++ b/source/main.c @@ -104,6 +104,12 @@ int main() if (selected_entry >= parsed_config.entries_number) selected_entry = 0; } + else if (hidKeysDown() & KEY_RIGHT) { //go to bottom of the menu + selected_entry = parsed_config.entries_number-1; + } + else if (hidKeysDown() & KEY_LEFT) { //go to top of the menu + selected_entry = 0; + } else if (hidKeysDown() & KEY_L) { //mark all entries for (u8 i = 0; i < parsed_config.entries_number; i++) { state[i] |= STATE_MARKED;