/** * @file view_dispatcher_i.h * GUI: ViewDispatcher API */ #pragma once #include #include #include "view_i.h" #include "gui_i.h" DICT_DEF2(ViewDict, uint32_t, M_DEFAULT_OPLIST, View*, M_PTR_OPLIST) // NOLINT struct ViewDispatcher { bool is_event_loop_owned; FuriEventLoop* event_loop; FuriMessageQueue* input_queue; FuriMessageQueue* event_queue; Gui* gui; ViewPort* view_port; ViewDict_t views; View* current_view; View* ongoing_input_view; uint8_t ongoing_input; ViewDispatcherCustomEventCallback custom_event_callback; ViewDispatcherNavigationEventCallback navigation_event_callback; ViewDispatcherTickEventCallback tick_event_callback; uint32_t tick_period; void* event_context; };