canvas.h 1008 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <stdint.h>
  3. #include <u8g2.h>
  4. #include <gui/icon.h>
  5. typedef enum {
  6. ColorWhite = 0x00,
  7. ColorBlack = 0x01,
  8. } Color;
  9. typedef enum {
  10. FontPrimary = 0x00,
  11. FontSecondary = 0x01,
  12. } Font;
  13. typedef struct CanvasApi CanvasApi;
  14. struct CanvasApi {
  15. uint8_t (*width)(CanvasApi* canvas);
  16. uint8_t (*height)(CanvasApi* canvas);
  17. void (*clear)(CanvasApi* canvas);
  18. void (*set_color)(CanvasApi* canvas, Color color);
  19. void (*set_font)(CanvasApi* canvas, Font font);
  20. void (*draw_str)(CanvasApi* canvas, uint8_t x, uint8_t y, const char* str);
  21. void (*draw_icon)(CanvasApi* canvas, uint8_t x, uint8_t y, Icon* icon);
  22. void (*draw_dot)(CanvasApi* canvas, uint8_t x, uint8_t y);
  23. void (*draw_box)(CanvasApi* canvas, uint8_t x, uint8_t y, uint8_t width, uint8_t height);
  24. void (*draw_frame)(CanvasApi* canvas, uint8_t x, uint8_t y, uint8_t width, uint8_t height);
  25. void (*draw_line)(CanvasApi* canvas, uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
  26. };