diff options
Diffstat (limited to 'src/mgui/button.c')
-rw-r--r-- | src/mgui/button.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mgui/button.c b/src/mgui/button.c index 4abe8a0..02070c3 100644 --- a/src/mgui/button.c +++ b/src/mgui/button.c @@ -4,19 +4,29 @@ #include "../../include/alloc.h" #include <mgl/mgl.h> #include <mgl/window/event.h> +#include <string.h> #include <assert.h> -mgui_button* mgui_button_create() { +mgui_button* mgui_button_create(const char *str, size_t size, unsigned char character_size) { mgui_button *button = mgui_alloc(sizeof(mgui_button)); mgui_widget_init(&button->widget, MGUI_WIDGET_BUTTON); button->background.position = (mgl_vec2f){ 0.0f, 0.0f }; button->background.size = (mgl_vec2f){ 0.0f, 0.0f }; button->background.color = (mgl_color){ 45, 45, 45, 255 }; - mgl_text_init(&button->text, mgui_get_font(MGUI_FONT_LATIN, 32), "Label", 5); + button->str = mgui_alloc(size); + button->str_size = size; + memcpy(button->str, str, size); + mgl_text_init(&button->text, mgui_get_font(MGUI_FONT_LATIN, character_size), button->str, button->str_size); button->background.size = mgl_text_get_bounds(&button->text); return button; } +void mgui_button_destroy(mgui_button *button) { + mgl_text_deinit(&button->text); + mgui_free(button->str); + mgui_free(button); +} + mgui_widget* mgui_button_to_widget(mgui_button *list) { return &list->widget; } |