ibutton_view_manager.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include <furi.h>
  3. #include <gui/view_dispatcher.h>
  4. #include <gui/modules/dialog_ex.h>
  5. #include <gui/modules/submenu.h>
  6. #include <gui/modules/text_input.h>
  7. #include <gui/modules/byte_input.h>
  8. #include <gui/modules/popup.h>
  9. #include <gui/modules/widget.h>
  10. #include "ibutton_event.h"
  11. class iButtonAppViewManager {
  12. public:
  13. enum class Type : uint8_t {
  14. iButtonAppViewTextInput,
  15. iButtonAppViewByteInput,
  16. iButtonAppViewSubmenu,
  17. iButtonAppViewDialogEx,
  18. iButtonAppViewPopup,
  19. iButtonAppViewWidget,
  20. };
  21. osMessageQueueId_t event_queue;
  22. iButtonAppViewManager();
  23. ~iButtonAppViewManager();
  24. void switch_to(Type type);
  25. Submenu* get_submenu();
  26. Popup* get_popup();
  27. DialogEx* get_dialog_ex();
  28. TextInput* get_text_input();
  29. ByteInput* get_byte_input();
  30. Widget* get_widget();
  31. void receive_event(iButtonEvent* event);
  32. void send_event(iButtonEvent* event);
  33. private:
  34. ViewDispatcher* view_dispatcher;
  35. DialogEx* dialog_ex;
  36. Submenu* submenu;
  37. TextInput* text_input;
  38. ByteInput* byte_input;
  39. Popup* popup;
  40. Widget* widget;
  41. Gui* gui;
  42. uint32_t previous_view_callback(void* context);
  43. };