aboutsummaryrefslogtreecommitdiff
path: root/src/mgui/button.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mgui/button.c')
-rw-r--r--src/mgui/button.c14
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;
}