view_i.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. ViewCustomCallback custom_callback;
  12. ViewModelType model_type;
  13. ViewNavigationCallback previous_callback;
  14. ViewCallback enter_callback;
  15. ViewCallback exit_callback;
  16. ViewOrientation orientation;
  17. ViewUpdateCallback update_callback;
  18. void* update_callback_context;
  19. void* model;
  20. void* context;
  21. };
  22. /* Unlock model */
  23. void view_unlock_model(View* view);
  24. /* Draw Callback for View dispatcher */
  25. void view_draw(View* view, Canvas* canvas);
  26. /* Input Callback for View dispatcher */
  27. bool view_input(View* view, InputEvent* event);
  28. /* Custom Callback for View dispatcher */
  29. bool view_custom(View* view, uint32_t event);
  30. /* Previous Callback for View dispatcher */
  31. uint32_t view_previous(View* view);
  32. /* Enter Callback for View dispatcher */
  33. void view_enter(View* view);
  34. /* Exit Callback for View dispatcher */
  35. void view_exit(View* view);