| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #include "widget_element_i.h"
- typedef struct {
- uint8_t x;
- uint8_t y;
- const Icon* icon;
- } GuiIconModel;
- static void gui_icon_draw(Canvas* canvas, WidgetElement* element) {
- furi_assert(canvas);
- furi_assert(element);
- GuiIconModel* model = element->model;
- if(model->icon) {
- canvas_draw_icon(canvas, model->x, model->y, model->icon);
- }
- }
- static void gui_icon_free(WidgetElement* gui_icon) {
- furi_assert(gui_icon);
- free(gui_icon->model);
- free(gui_icon);
- }
- WidgetElement* widget_element_icon_create(uint8_t x, uint8_t y, const Icon* icon) {
- furi_assert(icon);
- // Allocate and init model
- GuiIconModel* model = furi_alloc(sizeof(GuiIconModel));
- model->x = x;
- model->y = y;
- model->icon = icon;
- // Allocate and init Element
- WidgetElement* gui_icon = furi_alloc(sizeof(WidgetElement));
- gui_icon->parent = NULL;
- gui_icon->input = NULL;
- gui_icon->draw = gui_icon_draw;
- gui_icon->free = gui_icon_free;
- gui_icon->model = model;
- return gui_icon;
- }
|