view_port_i.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /**
  2. * @file view_port_i.h
  3. * GUI: internal ViewPort API
  4. */
  5. #pragma once
  6. #include "gui_i.h"
  7. #include "view_port.h"
  8. struct ViewPort {
  9. Gui* gui;
  10. bool is_enabled;
  11. ViewPortOrientation orientation;
  12. uint8_t width;
  13. uint8_t height;
  14. ViewPortDrawCallback draw_callback;
  15. void* draw_callback_context;
  16. ViewPortInputCallback input_callback;
  17. void* input_callback_context;
  18. };
  19. /** Set GUI reference.
  20. *
  21. * To be used by GUI, called upon view_port tree insert
  22. *
  23. * @param view_port ViewPort instance
  24. * @param gui gui instance pointer
  25. */
  26. void view_port_gui_set(ViewPort* view_port, Gui* gui);
  27. /** Process draw call. Calls draw callback.
  28. *
  29. * To be used by GUI, called on tree redraw.
  30. *
  31. * @param view_port ViewPort instance
  32. * @param canvas canvas to draw at
  33. */
  34. void view_port_draw(ViewPort* view_port, Canvas* canvas);
  35. /** Process input. Calls input callback.
  36. *
  37. * To be used by GUI, called on input dispatch.
  38. *
  39. * @param view_port ViewPort instance
  40. * @param event pointer to input event
  41. */
  42. void view_port_input(ViewPort* view_port, InputEvent* event);