diff options
Diffstat (limited to 'src/mgui/widget.c')
-rw-r--r-- | src/mgui/widget.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/mgui/widget.c b/src/mgui/widget.c index 8a49715..b9865ca 100644 --- a/src/mgui/widget.c +++ b/src/mgui/widget.c @@ -5,6 +5,7 @@ #include "../../include/mgui/label.h" #include "../../include/mgui/richtext.h" #include "../../include/mgui/image.h" +#include "../../include/alloc.h" /* TODO: Use margin */ @@ -13,6 +14,29 @@ void mgui_widget_init(mgui_widget *self, mgui_widget_type type) { mgui_widget_set_margin(self, 0, 0, 0, 0); } +void mgui_widget_destroy(mgui_widget *widget) { + switch(widget->type) { + case MGUI_WIDGET_LIST: + mgui_list_destroy(mgui_widget_to_list(widget)); + break; + case MGUI_WIDGET_SCROLLVIEW: + mgui_scrollview_destroy(mgui_widget_to_scrollview(widget)); + break; + case MGUI_WIDGET_BUTTON: + mgui_button_destroy(mgui_widget_to_button(widget)); + break; + case MGUI_WIDGET_LABEL: + mgui_label_destroy(mgui_widget_to_label(widget)); + break; + case MGUI_WIDGET_RICHTEXT: + mgui_richtext_destroy(mgui_widget_to_richtext(widget)); + break; + case MGUI_WIDGET_IMAGE: + mgui_image_destroy(mgui_widget_to_image(widget)); + break; + } +} + void mgui_widget_set_margin(mgui_widget *self, int left, int top, int right, int bottom) { self->margin.left = left; self->margin.top = top; |