#pragma once #include #include #include #include #include #include #include #include "ibutton-event.h" class iButtonAppViewManager { public: enum class Type : uint8_t { iButtonAppViewTextInput, iButtonAppViewByteInput, iButtonAppViewSubmenu, iButtonAppViewDialogEx, iButtonAppViewPopup, }; osMessageQueueId_t event_queue; iButtonAppViewManager(); ~iButtonAppViewManager(); void switch_to(Type type); Submenu* get_submenu(); Popup* get_popup(); DialogEx* get_dialog_ex(); TextInput* get_text_input(); ByteInput* get_byte_input(); void receive_event(iButtonEvent* event); void send_event(iButtonEvent* event); private: ViewDispatcher* view_dispatcher; DialogEx* dialog_ex; Submenu* submenu; TextInput* text_input; ByteInput* byte_input; Popup* popup; Gui* gui; uint32_t previous_view_callback(void* context); };