summaryrefslogtreecommitdiff
path: root/src/ui/include/ui_fsm.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-08-25 10:13:37 +1000
committerjacqueline <me@jacqueline.id.au>2023-08-25 10:13:37 +1000
commit3b3bc64d19715c418f407d5231795ca5a2c2fa71 (patch)
tree87fb1bf2b9ec366abc712f2096a0908d0ae2cc4b /src/ui/include/ui_fsm.hpp
parent079b2b53d434869df419da1373aba239990c34d9 (diff)
downloadtangara-fw-3b3bc64d19715c418f407d5231795ca5a2c2fa71.tar.gz
Add modal dialog support
Diffstat (limited to 'src/ui/include/ui_fsm.hpp')
-rw-r--r--src/ui/include/ui_fsm.hpp11
1 files changed, 11 insertions, 0 deletions
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<UiState> {
/* 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<UiState> {
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<UiState> {
protected:
void PushScreen(std::shared_ptr<Screen>);
void PopScreen();
+ void UpdateTopBar();
static drivers::IGpios* sIGpios;
static audio::TrackQueue* sQueue;
@@ -68,6 +78,7 @@ class UiState : public tinyfsm::Fsm<UiState> {
static std::stack<std::shared_ptr<Screen>> sScreens;
static std::shared_ptr<Screen> sCurrentScreen;
+ static std::shared_ptr<Modal> sCurrentModal;
};
namespace states {