view_i.h 925 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include "view.h"
  3. #include "view_dispatcher_i.h"
  4. #include <flipper_v2.h>
  5. typedef struct {
  6. void* data;
  7. osMutexId_t mutex;
  8. } ViewModelLocking;
  9. struct View {
  10. ViewDispatcher* dispatcher;
  11. ViewDrawCallback draw_callback;
  12. ViewInputCallback input_callback;
  13. ViewModelType model_type;
  14. ViewNavigationCallback previous_callback;
  15. ViewNavigationCallback next_callback;
  16. void* model;
  17. void* context;
  18. };
  19. /* Set View dispatcher */
  20. void view_set_dispatcher(View* view, ViewDispatcher* view_dispatcher);
  21. /* Unlock model */
  22. void view_unlock_model(View* view);
  23. /* Draw Callback for View dispatcher */
  24. void view_draw(View* view, Canvas* canvas);
  25. /* Input Callback for View dispatcher */
  26. bool view_input(View* view, InputEvent* event);
  27. /* Previous Callback for View dispatcher */
  28. uint32_t view_previous(View* view);
  29. /* Next Callback for View dispatcher */
  30. uint32_t view_next(View* view);