From 3b3bc64d19715c418f407d5231795ca5a2c2fa71 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 25 Aug 2023 10:13:37 +1000 Subject: Add modal dialog support --- src/ui/include/ui_fsm.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/ui/include/ui_fsm.hpp') diff --git a/src/ui/include/ui_fsm.hpp b/src/ui/include/ui_fsm.hpp index 1551932a..4985129a 100644 --- a/src/ui/include/ui_fsm.hpp +++ b/src/ui/include/ui_fsm.hpp @@ -15,6 +15,7 @@ #include "tinyfsm.hpp" #include "display.hpp" +#include "modal.hpp" #include "screen.hpp" #include "storage.hpp" #include "system_events.hpp" @@ -40,6 +41,8 @@ class UiState : public tinyfsm::Fsm { /* Fallback event handler. Does nothing. */ void react(const tinyfsm::Event& ev) {} + void react(const system_fsm::BatteryPercentChanged&); + virtual void react(const audio::PlaybackStarted&) {} virtual void react(const audio::PlaybackUpdate&) {} virtual void react(const audio::QueueUpdate&) {} @@ -49,6 +52,12 @@ class UiState : public tinyfsm::Fsm { virtual void react(const internal::RecordSelected&) {} virtual void react(const internal::IndexSelected&) {} virtual void react(const internal::BackPressed&) {} + virtual void react(const internal::ModalCancelPressed&) { + sCurrentModal.reset(); + } + virtual void react(const internal::ModalConfirmPressed&) { + sCurrentModal.reset(); + } virtual void react(const system_fsm::DisplayReady&) {} virtual void react(const system_fsm::BootComplete&) {} @@ -57,6 +66,7 @@ class UiState : public tinyfsm::Fsm { protected: void PushScreen(std::shared_ptr); void PopScreen(); + void UpdateTopBar(); static drivers::IGpios* sIGpios; static audio::TrackQueue* sQueue; @@ -68,6 +78,7 @@ class UiState : public tinyfsm::Fsm { static std::stack> sScreens; static std::shared_ptr sCurrentScreen; + static std::shared_ptr sCurrentModal; }; namespace states { -- cgit v1.2.3