view_i.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * @file view_i.h
  3. * GUI: internal View API
  4. */
  5. #pragma once
  6. #include "view.h"
  7. #include <furi.h>
  8. typedef struct {
  9. void* data;
  10. osMutexId_t mutex;
  11. } ViewModelLocking;
  12. struct View {
  13. ViewDrawCallback draw_callback;
  14. ViewInputCallback input_callback;
  15. ViewCustomCallback custom_callback;
  16. ViewModelType model_type;
  17. ViewNavigationCallback previous_callback;
  18. ViewCallback enter_callback;
  19. ViewCallback exit_callback;
  20. ViewOrientation orientation;
  21. ViewUpdateCallback update_callback;
  22. void* update_callback_context;
  23. void* model;
  24. void* context;
  25. };
  26. /** IconAnimation tie callback */
  27. void view_icon_animation_callback(IconAnimation* instance, void* context);
  28. /** Unlock model */
  29. void view_unlock_model(View* view);
  30. /** Draw Callback for View dispatcher */
  31. void view_draw(View* view, Canvas* canvas);
  32. /** Input Callback for View dispatcher */
  33. bool view_input(View* view, InputEvent* event);
  34. /** Custom Callback for View dispatcher */
  35. bool view_custom(View* view, uint32_t event);
  36. /** Previous Callback for View dispatcher */
  37. uint32_t view_previous(View* view);
  38. /** Enter Callback for View dispatcher */
  39. void view_enter(View* view);
  40. /** Exit Callback for View dispatcher */
  41. void view_exit(View* view);