Added on_enter() method to toggle

component
This commit is contained in:
vedantparanjape 2020-08-04 22:24:30 +05:30 committed by Arthur Sonzogni
parent a4d72c4d50
commit 33a970530b
2 changed files with 11 additions and 3 deletions

View File

@ -27,7 +27,8 @@ class Toggle : public Component {
// Callback. // Callback.
std::function<void()> on_change = []() {}; std::function<void()> on_change = []() {};
std::function<void()> on_enter = []() {};
// Component implementation. // Component implementation.
Element Render() override; Element Render() override;
bool OnEvent(Event) override; bool OnEvent(Event) override;

View File

@ -40,10 +40,17 @@ bool Toggle::OnEvent(Event event) {
selected = std::max(0, std::min(int(entries.size()) - 1, selected)); selected = std::max(0, std::min(int(entries.size()) - 1, selected));
if (old_selected != selected) if (old_selected != selected) {
on_change(); on_change();
return true;
}
return old_selected != selected; if (event == Event::Return) {
on_enter();
return true;
}
return false;
} }
} // namespace ftxui } // namespace ftxui