view_i.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. /* IconAnimation tie callback */
  23. void view_icon_animation_callback(IconAnimation* instance, void* context);
  24. /* Unlock model */
  25. void view_unlock_model(View* view);
  26. /* Draw Callback for View dispatcher */
  27. void view_draw(View* view, Canvas* canvas);
  28. /* Input Callback for View dispatcher */
  29. bool view_input(View* view, InputEvent* event);
  30. /* Custom Callback for View dispatcher */
  31. bool view_custom(View* view, uint32_t event);
  32. /* Previous Callback for View dispatcher */
  33. uint32_t view_previous(View* view);
  34. /* Enter Callback for View dispatcher */
  35. void view_enter(View* view);
  36. /* Exit Callback for View dispatcher */
  37. void view_exit(View* view);