ui.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #pragma once
  2. #include <furi.h>
  3. #include <gui/canvas.h>
  4. #define SCREEN_WIDTH 128
  5. #define SCREEN_HEIGHT 64
  6. typedef enum {
  7. Black,
  8. White,
  9. Inverse,
  10. Filled //Currently only for Icon clip drawing
  11. } DrawMode;
  12. // size is the screen size
  13. typedef struct {
  14. uint8_t* data;
  15. unsigned long iconId;
  16. } TileMap;
  17. bool test_pixel(uint8_t* data, uint8_t x, uint8_t y, uint8_t w);
  18. uint8_t* image_data(Canvas* const canvas, const Icon* icon);
  19. uint32_t pixel_index(uint8_t x, uint8_t y);
  20. void draw_icon_clip(
  21. Canvas* const canvas,
  22. const Icon* icon,
  23. int16_t x,
  24. int16_t y,
  25. uint8_t left,
  26. uint8_t top,
  27. uint8_t w,
  28. uint8_t h,
  29. DrawMode drawMode);
  30. void draw_icon_clip_flipped(
  31. Canvas* const canvas,
  32. const Icon* icon,
  33. int16_t x,
  34. int16_t y,
  35. uint8_t left,
  36. uint8_t top,
  37. uint8_t w,
  38. uint8_t h,
  39. DrawMode drawMode);
  40. void draw_rounded_box(
  41. Canvas* const canvas,
  42. int16_t x,
  43. int16_t y,
  44. uint8_t w,
  45. uint8_t h,
  46. DrawMode drawMode);
  47. void draw_rounded_box_frame(
  48. Canvas* const canvas,
  49. int16_t x,
  50. int16_t y,
  51. uint8_t w,
  52. uint8_t h,
  53. DrawMode drawMode);
  54. void draw_rectangle(
  55. Canvas* const canvas,
  56. int16_t x,
  57. int16_t y,
  58. uint8_t w,
  59. uint8_t h,
  60. DrawMode drawMode);
  61. void invert_rectangle(Canvas* const canvas, int16_t x, int16_t y, uint8_t w, uint8_t h);
  62. void invert_shape(Canvas* const canvas, uint8_t* data, int16_t x, int16_t y, uint8_t w, uint8_t h);
  63. void draw_pixels(
  64. Canvas* const canvas,
  65. uint8_t* data,
  66. int16_t x,
  67. int16_t y,
  68. uint8_t w,
  69. uint8_t h,
  70. DrawMode drawMode);
  71. bool read_pixel(Canvas* const canvas, int16_t x, int16_t y);
  72. void set_pixel(Canvas* const canvas, int16_t x, int16_t y, DrawMode draw_mode);
  73. void draw_line(
  74. Canvas* const canvas,
  75. int16_t x1,
  76. int16_t y1,
  77. int16_t x2,
  78. int16_t y2,
  79. DrawMode draw_mode);
  80. bool in_screen(int16_t x, int16_t y);
  81. void ui_cleanup();
  82. uint8_t* get_buffer(Canvas* const canvas);
  83. uint8_t* make_buffer();
  84. void clone_buffer(uint8_t* canvas, uint8_t* data);