accessor_view_manager.h 792 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include <furi.h>
  3. #include <gui/view_dispatcher.h>
  4. #include <gui/modules/submenu.h>
  5. #include <gui/modules/popup.h>
  6. #include "accessor_event.h"
  7. class AccessorAppViewManager {
  8. public:
  9. enum class ViewType : uint8_t {
  10. Submenu,
  11. Popup,
  12. Tune,
  13. };
  14. FuriMessageQueue* event_queue;
  15. AccessorAppViewManager();
  16. ~AccessorAppViewManager();
  17. void switch_to(ViewType type);
  18. void receive_event(AccessorEvent* event);
  19. void send_event(AccessorEvent* event);
  20. Submenu* get_submenu();
  21. Popup* get_popup();
  22. private:
  23. ViewDispatcher* view_dispatcher;
  24. Gui* gui;
  25. uint32_t previous_view_callback(void* context);
  26. void add_view(ViewType view_type, View* view);
  27. // view elements
  28. Submenu* submenu;
  29. Popup* popup;
  30. };