From 58a26ca05aacb4736e9e7e652badd43a8085d1f1 Mon Sep 17 00:00:00 2001 From: physick Date: Sun, 12 Jul 2026 11:13:08 +0500 Subject: rudimentary code execution --- src/ui_elements/TextEditor.c | 27 +++++++++++++++++++++++++++ src/ui_elements/UI.h | 1 + 2 files changed, 28 insertions(+) (limited to 'src/ui_elements') diff --git a/src/ui_elements/TextEditor.c b/src/ui_elements/TextEditor.c index 620abea..1097f1c 100644 --- a/src/ui_elements/TextEditor.c +++ b/src/ui_elements/TextEditor.c @@ -507,3 +507,30 @@ void DrawTextArea(TextArea *ta, Rectangle rec) { } EndScissorMode(); } + +char *GetText(TextArea *ta) { + size_t size = 0; + TextNode *node = ta->StartNode; + while (node != NULL) { + size += node->len + 1; + node = node->NextNode; + } + + char *outp = malloc(size + 1); + if (outp == NULL) { + TraceLog(LOG_ERROR, "Failed to create a text from a text area"); + return NULL; + } + + size_t idx = 0; + node = ta->StartNode; + while (node != NULL) { + memcpy(outp + idx, node->text, node->len); + idx += node->len + 1; + outp[idx - 1] = '\n'; + node = node->NextNode; + } + outp[size] = 0x0; + + return outp; +} diff --git a/src/ui_elements/UI.h b/src/ui_elements/UI.h index 9f126c3..f461cf5 100644 --- a/src/ui_elements/UI.h +++ b/src/ui_elements/UI.h @@ -58,6 +58,7 @@ void InsertChar(TextArea *ta, char new_char); void DeleteChar(TextArea *ta); void HandleKeyboard(TextArea *ta); +char *GetText(TextArea *ta); void FreeTextArea(TextArea *ta); #endif // UI_ELEMENTS_H -- cgit v1.3