view_dispatcher_i.h 795 B

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * @file view_dispatcher_i.h
  3. * GUI: ViewDispatcher API
  4. */
  5. #pragma once
  6. #include <m-dict.h>
  7. #include <gui/view_dispatcher.h>
  8. #include "view_i.h"
  9. #include "gui_i.h"
  10. DICT_DEF2(ViewDict, uint32_t, M_DEFAULT_OPLIST, View*, M_PTR_OPLIST) // NOLINT
  11. struct ViewDispatcher {
  12. bool is_event_loop_owned;
  13. FuriEventLoop* event_loop;
  14. FuriMessageQueue* input_queue;
  15. FuriMessageQueue* event_queue;
  16. Gui* gui;
  17. ViewPort* view_port;
  18. ViewDict_t views;
  19. View* current_view;
  20. View* ongoing_input_view;
  21. uint8_t ongoing_input;
  22. ViewDispatcherCustomEventCallback custom_event_callback;
  23. ViewDispatcherNavigationEventCallback navigation_event_callback;
  24. ViewDispatcherTickEventCallback tick_event_callback;
  25. uint32_t tick_period;
  26. void* event_context;
  27. };