view_i.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * Copyright 2025 Ivan Barsukov
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation, either version 3 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17. /**
  18. * @file view_i.h
  19. * GUI: internal View API
  20. */
  21. #pragma once
  22. #include <gui/view.h>
  23. typedef struct
  24. {
  25. FuriMutex* mutex;
  26. uint8_t data[];
  27. } ViewModelLocking;
  28. struct View
  29. {
  30. ViewDrawCallback draw_callback;
  31. ViewInputCallback input_callback;
  32. ViewCustomCallback custom_callback;
  33. ViewModelType model_type;
  34. ViewNavigationCallback previous_callback;
  35. ViewCallback enter_callback;
  36. ViewCallback exit_callback;
  37. ViewOrientation orientation;
  38. ViewUpdateCallback update_callback;
  39. void* update_callback_context;
  40. void* model;
  41. void* context;
  42. };