ui.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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(Canvas *const canvas, const Icon *icon, int16_t x, int16_t y, uint8_t left, uint8_t top, uint8_t w,
  21. uint8_t h, DrawMode drawMode);
  22. void draw_icon_clip_flipped(Canvas *const canvas, const Icon *icon, int16_t x, int16_t y, uint8_t left, uint8_t top, uint8_t w,
  23. uint8_t h, DrawMode drawMode);
  24. void draw_rounded_box(Canvas *const canvas, int16_t x, int16_t y, uint8_t w, uint8_t h, DrawMode drawMode);
  25. void draw_rounded_box_frame(Canvas *const canvas, int16_t x, int16_t y, uint8_t w, uint8_t h, DrawMode drawMode);
  26. void draw_rectangle(Canvas *const canvas, int16_t x, int16_t y, uint8_t w, uint8_t h, DrawMode drawMode);
  27. void invert_rectangle(Canvas *const canvas, int16_t x, int16_t y, uint8_t w, uint8_t h);
  28. void invert_shape(Canvas *const canvas, uint8_t *data, int16_t x, int16_t y, uint8_t w, uint8_t h);
  29. void draw_pixels(Canvas *const canvas, uint8_t *data, int16_t x, int16_t y, uint8_t w, uint8_t h, DrawMode drawMode);
  30. bool read_pixel(Canvas *const canvas, int16_t x, int16_t y);
  31. void set_pixel(Canvas *const canvas, int16_t x, int16_t y, DrawMode draw_mode);
  32. void draw_line(Canvas *const canvas, int16_t x1, int16_t y1, int16_t x2, int16_t y2, DrawMode draw_mode);
  33. bool in_screen(int16_t x, int16_t y);
  34. void ui_cleanup();
  35. uint8_t* get_buffer(Canvas *const canvas);
  36. uint8_t* make_buffer();
  37. void clone_buffer(uint8_t* canvas, uint8_t* data);