#pragma once #include <furi.h> #include <gui/view_dispatcher.h> #include <gui/modules/dialog_ex.h> #include <gui/modules/submenu.h> #include <gui/modules/text_input.h> #include <gui/modules/byte_input.h> #include <gui/modules/popup.h> #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); };