| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #include "widget_element_i.h"
- typedef struct {
- uint8_t x;
- uint8_t y;
- uint8_t width;
- uint8_t height;
- uint8_t radius;
- } GuiFrameModel;
- static void gui_frame_draw(Canvas* canvas, WidgetElement* element) {
- furi_assert(canvas);
- furi_assert(element);
- GuiFrameModel* model = element->model;
- canvas_draw_rframe(canvas, model->x, model->y, model->width, model->height, model->radius);
- }
- static void gui_frame_free(WidgetElement* gui_frame) {
- furi_assert(gui_frame);
- free(gui_frame->model);
- free(gui_frame);
- }
- WidgetElement* widget_element_frame_create(
- uint8_t x,
- uint8_t y,
- uint8_t width,
- uint8_t height,
- uint8_t radius) {
- // Allocate and init model
- GuiFrameModel* model = furi_alloc(sizeof(GuiFrameModel));
- model->x = x;
- model->y = y;
- model->width = width;
- model->height = height;
- model->radius = radius;
- // Allocate and init Element
- WidgetElement* gui_frame = furi_alloc(sizeof(WidgetElement));
- gui_frame->parent = NULL;
- gui_frame->input = NULL;
- gui_frame->draw = gui_frame_draw;
- gui_frame->free = gui_frame_free;
- gui_frame->model = model;
- return gui_frame;
- }
|