view_i.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #pragma once
  2. #include "view.h"
  3. #include <furi.h>
  4. typedef struct {
  5. void* data;
  6. osMutexId_t mutex;
  7. } ViewModelLocking;
  8. struct View {
  9. ViewDrawCallback draw_callback;
  10. ViewInputCallback input_callback;
  11. ViewModelType model_type;
  12. ViewNavigationCallback previous_callback;
  13. ViewNavigationCallback next_callback;
  14. ViewCallback enter_callback;
  15. ViewCallback exit_callback;
  16. ViewUpdateCallback update_callback;
  17. void* update_callback_context;
  18. void* model;
  19. void* context;
  20. };
  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);
  31. /* Enter Callback for View dispatcher */
  32. void view_enter(View* view);
  33. /* Exit Callback for View dispatcher */
  34. void view_exit(View* view);