canvas.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #pragma once
  2. #include <stddef.h>
  3. #include <gui/canvas.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. /**
  8. * @brief Print formatted string to canvas
  9. *
  10. * @param canvas canvas instance
  11. * @param x x position
  12. * @param y y position
  13. * @param format format string
  14. * @param ... arguments
  15. */
  16. void canvas_printf(Canvas* canvas, uint8_t x, uint8_t y, const char* format, ...)
  17. __attribute__((__format__(__printf__, 4, 5)));
  18. /**
  19. * @brief Get width of formatted string
  20. *
  21. * @param canvas canvas instance
  22. * @param format format string
  23. * @param ... arguments
  24. * @return size_t width of formatted string
  25. */
  26. size_t canvas_printf_width(Canvas* canvas, const char* format, ...)
  27. __attribute__((__format__(__printf__, 2, 3)));
  28. /**
  29. * @brief Print formatted string to canvas with alignment
  30. *
  31. * @param canvas canvas instance
  32. * @param x x position
  33. * @param y y position
  34. * @param h horizontal alignment
  35. * @param v vertical alignment
  36. * @param format format string
  37. * @param ... arguments
  38. */
  39. void canvas_printf_aligned(
  40. Canvas* canvas,
  41. uint8_t x,
  42. uint8_t y,
  43. Align h,
  44. Align v,
  45. const char* format,
  46. ...) __attribute__((__format__(__printf__, 6, 7)));
  47. /**
  48. * @brief Draw aligned string with outline
  49. *
  50. * @param canvas
  51. * @param x
  52. * @param y
  53. * @param h
  54. * @param v
  55. * @param cstr
  56. */
  57. void canvas_draw_str_aligned_outline(
  58. Canvas* canvas,
  59. uint8_t x,
  60. uint8_t y,
  61. Align h,
  62. Align v,
  63. const char* cstr);
  64. #ifdef __cplusplus
  65. }
  66. #endif