Begin scaffolding keyboard nav

This commit is contained in:
Luke Street
2026-04-29 15:19:15 -06:00
parent 3cb7fbd030
commit d92515f0d4
15 changed files with 409 additions and 90 deletions
+25
View File
@@ -97,4 +97,29 @@ std::string escape(std::string_view str) noexcept {
return result;
}
NavCommand map_nav_event(const Rml::Event& event) noexcept {
const auto key = static_cast<Rml::Input::KeyIdentifier>(
event.GetParameter<int>("key_identifier", Rml::Input::KI_UNKNOWN));
switch (key) {
case Rml::Input::KeyIdentifier::KI_UP:
return NavCommand::Up;
case Rml::Input::KeyIdentifier::KI_DOWN:
return NavCommand::Down;
case Rml::Input::KeyIdentifier::KI_LEFT:
return NavCommand::Left;
case Rml::Input::KeyIdentifier::KI_RIGHT:
return NavCommand::Right;
case Rml::Input::KeyIdentifier::KI_ESCAPE:
return NavCommand::Cancel;
case Rml::Input::KeyIdentifier::KI_RETURN:
return NavCommand::Confirm;
case Rml::Input::KeyIdentifier::KI_NEXT:
return NavCommand::Next;
case Rml::Input::KeyIdentifier::KI_PRIOR:
return NavCommand::Previous;
default:
return NavCommand::None;
}
}
} // namespace dusk::ui