diff --git a/NeuralAmpModeler/NeuralAmpModeler.cpp b/NeuralAmpModeler/NeuralAmpModeler.cpp index 4a08266ac..a3cae33af 100644 --- a/NeuralAmpModeler/NeuralAmpModeler.cpp +++ b/NeuralAmpModeler/NeuralAmpModeler.cpp @@ -309,6 +309,26 @@ NeuralAmpModeler::NeuralAmpModeler(const InstanceInfo& info) pControl->SetMouseOverWhenDisabled(true); }); + pGraphics->SetKeyHandlerFunc([pGraphics](const IKeyPress& key, bool isUp) { + if (isUp) + return false; + auto* pBrowser = pGraphics->GetControlWithTag(kCtrlTagModelFileBrowser); + if (pBrowser == nullptr) + return false; + auto* pModelBrowser = static_cast(pBrowser); + if (key.utf8[0] == ',') + { + pModelBrowser->SelectPreviousFile(); + return true; + } + if (key.utf8[0] == '.') + { + pModelBrowser->SelectNextFile(); + return true; + } + return false; + }); + // pGraphics->GetControlWithTag(kCtrlTagOutNorm)->SetMouseEventsWhenDisabled(false); // pGraphics->GetControlWithTag(kCtrlTagCalibrateInput)->SetMouseEventsWhenDisabled(false); }; diff --git a/NeuralAmpModeler/NeuralAmpModelerControls.h b/NeuralAmpModeler/NeuralAmpModelerControls.h index cd6e5b07b..99e0c9db9 100644 --- a/NeuralAmpModeler/NeuralAmpModelerControls.h +++ b/NeuralAmpModeler/NeuralAmpModelerControls.h @@ -302,31 +302,36 @@ class NAMFileBrowserControl : public IDirBrowseControlBase } } - void OnAttached() override + void SelectPreviousFile() { - auto prevFileFunc = [&](IControl* pCaller) { - const auto nItems = NItems(); - if (nItems == 0) - return; - mSelectedItemIndex--; + const auto nItems = NItems(); + if (nItems == 0) + return; + mSelectedItemIndex--; - if (mSelectedItemIndex < 0) - mSelectedItemIndex = nItems - 1; + if (mSelectedItemIndex < 0) + mSelectedItemIndex = nItems - 1; - LoadFileAtCurrentIndex(); - }; + LoadFileAtCurrentIndex(); + } - auto nextFileFunc = [&](IControl* pCaller) { - const auto nItems = NItems(); - if (nItems == 0) - return; - mSelectedItemIndex++; + void SelectNextFile() + { + const auto nItems = NItems(); + if (nItems == 0) + return; + mSelectedItemIndex++; - if (mSelectedItemIndex >= nItems) - mSelectedItemIndex = 0; + if (mSelectedItemIndex >= nItems) + mSelectedItemIndex = 0; - LoadFileAtCurrentIndex(); - }; + LoadFileAtCurrentIndex(); + } + + void OnAttached() override + { + auto prevFileFunc = [&](IControl* pCaller) { SelectPreviousFile(); }; + auto nextFileFunc = [&](IControl* pCaller) { SelectNextFile(); }; auto loadFileFunc = [&](IControl* pCaller) { WDL_String fileName;