Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorあく <alleteam@gmail.com>2020-12-14 13:50:32 +0300
committerGitHub <noreply@github.com>2020-12-14 13:50:32 +0300
commitd3ff7878645569698d8a0947a3087e552eefe81c (patch)
tree8cdfdbdc2847ee8be10a3ff386402ca8a3e563f9 /applications/gui/canvas.h
parentff7ce6f00fe8d3ebba39c6963539267192acec38 (diff)
GUI: abolish API injection into instances. (#265)
* GUI: abolish API injection into instances. Update usage by 3rd party apps. * GUI: update documentation. Cleanup api usage. Adjust status bar item spacing.
Diffstat (limited to 'applications/gui/canvas.h')
-rw-r--r--applications/gui/canvas.h99
1 files changed, 74 insertions, 25 deletions
diff --git a/applications/gui/canvas.h b/applications/gui/canvas.h
index 07201c06..a232b8ce 100644
--- a/applications/gui/canvas.h
+++ b/applications/gui/canvas.h
@@ -11,28 +11,77 @@ typedef enum {
typedef enum { FontPrimary = 0x00, FontSecondary = 0x01, FontGlyph = 0x02 } Font;
-typedef struct CanvasApi CanvasApi;
-struct CanvasApi {
- uint8_t (*width)(CanvasApi* canvas);
- uint8_t (*height)(CanvasApi* canvas);
-
- void (*clear)(CanvasApi* canvas);
-
- void (*set_color)(CanvasApi* canvas, Color color);
- void (*set_font)(CanvasApi* canvas, Font font);
-
- void (*draw_str)(CanvasApi* canvas, uint8_t x, uint8_t y, const char* str);
- void (*draw_icon)(CanvasApi* canvas, uint8_t x, uint8_t y, Icon* icon);
- void (*draw_xbm)(
- CanvasApi* canvas,
- uint8_t x,
- uint8_t y,
- uint8_t w,
- uint8_t h,
- const uint8_t* bitmap);
- void (*draw_dot)(CanvasApi* canvas, uint8_t x, uint8_t y);
- void (*draw_box)(CanvasApi* canvas, uint8_t x, uint8_t y, uint8_t width, uint8_t height);
- void (*draw_frame)(CanvasApi* canvas, uint8_t x, uint8_t y, uint8_t width, uint8_t height);
- void (*draw_line)(CanvasApi* canvas, uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
- void (*draw_glyph)(CanvasApi* canvas, uint8_t x, uint8_t y, uint16_t ch);
-};
+typedef struct Canvas Canvas;
+
+/*
+ * Canvas width
+ * @return width in pixels.
+ */
+uint8_t canvas_width(Canvas* canvas);
+
+/*
+ * Canvas height
+ * @return height in pixels.
+ */
+uint8_t canvas_height(Canvas* canvas);
+
+/*
+ * Clear canvas, clear rendering buffer
+ */
+void canvas_clear(Canvas* canvas);
+
+/*
+ * Set drawing color
+ */
+void canvas_set_color(Canvas* canvas, Color color);
+
+/*
+ * Set drawing font
+ */
+void canvas_set_font(Canvas* canvas, Font font);
+
+/*
+ * Draw string at position of baseline defined by x, y.
+ */
+void canvas_draw_str(Canvas* canvas, uint8_t x, uint8_t y, const char* str);
+
+/*
+ * Draw icon at position defined by x,y.
+ */
+void canvas_draw_icon(Canvas* canvas, uint8_t x, uint8_t y, Icon* icon);
+
+/*
+ * Draw xbm icon of width, height at position defined by x,y.
+ */
+void canvas_draw_xbm(
+ Canvas* canvas,
+ uint8_t x,
+ uint8_t y,
+ uint8_t w,
+ uint8_t h,
+ const uint8_t* bitmap);
+
+/*
+ * Draw dot at x,y
+ */
+void canvas_draw_dot(Canvas* canvas, uint8_t x, uint8_t y);
+
+/*
+ * Draw box of width, height at x,y
+ */
+void canvas_draw_box(Canvas* canvas, uint8_t x, uint8_t y, uint8_t width, uint8_t height);
+
+/*
+ * Draw frame of width, height at x,y
+ */
+void canvas_draw_frame(Canvas* canvas, uint8_t x, uint8_t y, uint8_t width, uint8_t height);
+
+/*
+ * Draw line from x1,y1 to x2,y2
+ */
+void canvas_draw_line(Canvas* canvas, uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2);
+
+/*
+ * Draw glyph
+ */
+void canvas_draw_glyph(Canvas* canvas, uint8_t x, uint8_t y, uint16_t ch);