diff --git a/src/FileBrowser.cpp b/src/FileBrowser.cpp index 219d1b3..14e59e2 100644 --- a/src/FileBrowser.cpp +++ b/src/FileBrowser.cpp @@ -350,6 +350,7 @@ bool FileBrowser::BrowsableList::CheckBrowseNavigation() { dirty |= views[index].CheckBrowseNavigation(index != 0); } + // check for keys a-z if (inputMappings->BrowseLetter()) { @@ -389,7 +390,18 @@ bool FileBrowser::BrowsableList::CheckBrowseNavigation() dirty |= 1; } } - + else if (inputMappings->BrowseHome()) + { + currentIndex = 0; + SetCurrent(); + dirty |= 1; + } + else if (inputMappings->BrowseEnd()) + { + currentIndex = numberOfEntriesMinus1; + SetCurrent(); + dirty |= 1; + } return dirty; } diff --git a/src/InputMappings.cpp b/src/InputMappings.cpp index 1e23883..36750f7 100644 --- a/src/InputMappings.cpp +++ b/src/InputMappings.cpp @@ -152,7 +152,6 @@ bool InputMappings::CheckKeyboardBrowseMode() keyboardFlags = 0; - // TODO: add KEY_HOME and KEY_END if (keyboard->KeyHeld(KEY_ESC)) SetKeyboardFlag(ESC_FLAG); else if (keyboard->KeyHeld(KEY_ENTER)) @@ -181,10 +180,10 @@ bool InputMappings::CheckKeyboardBrowseMode() else SetKeyboardFlag(PAGEDOWN_FLAG); } - //else if (keyboard->KeyHeld(KEY_HOME)) - // SetKeyboardFlag(PAGEUP_LCD_FLAG); - //else if (keyboard->KeyHeld(KEY_END)) - // SetKeyboardFlag(PAGEDOWN_LCD_FLAG); + else if (keyboard->KeyHeld(KEY_HOME)) + SetKeyboardFlag(HOME_FLAG); + else if (keyboard->KeyHeld(KEY_END)) + SetKeyboardFlag(END_FLAG); else if (keyboard->KeyHeld(KEY_N) && keyboard->KeyEitherAlt() ) SetKeyboardFlag(NEWD64_FLAG); else if (keyboard->KeyHeld(KEY_A) && keyboard->KeyEitherAlt() ) diff --git a/src/InputMappings.h b/src/InputMappings.h index 9bf610b..186d400 100644 --- a/src/InputMappings.h +++ b/src/InputMappings.h @@ -42,6 +42,8 @@ #define FAKERESET_FLAG (1 << 16) #define WRITEPROTECT_FLAG (1 << 17) #define LETTER_FLAG (1 << 18) +#define HOME_FLAG (1 << 19) +#define END_FLAG (1 << 20) // dont exceed 32!! const unsigned NumberKeys[33] = @@ -208,6 +210,16 @@ public: return KeyboardFlag(LETTER_FLAG); } + inline bool BrowseHome() + { + return KeyboardFlag(HOME_FLAG); + } + + inline bool BrowseEnd() + { + return KeyboardFlag(END_FLAG); + } + inline unsigned getKeyboardNumber() { return keyboardNumber; } inline char getKeyboardLetter() { return (char) keyboardLetter; }