diff options
Diffstat (limited to 'src/ui_elements/UI.h')
| -rw-r--r-- | src/ui_elements/UI.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/ui_elements/UI.h b/src/ui_elements/UI.h index 5868efe..4c94bf7 100644 --- a/src/ui_elements/UI.h +++ b/src/ui_elements/UI.h @@ -1,9 +1,41 @@ #include <raylib.h> +#include <stddef.h> #ifndef UI_ELEMENTS_H #define UI_ELEMENTS_H void DrawRecBordered(Rectangle rec, Color bg, Color border_color, int border_width); void DrawTextInRec(Rectangle rec, char *text, Font *font, int height, Color color, float padding, int *scroll); +float MeasureChar(Font *font, int height, char symbol); + +// ========== TEXT EDITOR ========== + +static const size_t DEFAULT_TEXT_NODE_SIZE = 256; + +typedef struct { + void *PrevNode; + void *NextNode; + char *text; + size_t cap; +} TextNode; + +typedef struct { + TextNode *StartNode; + /// For the quick access + TextNode *CurrentNode; + size_t NodeLenth; + + Vector2 CursorPosition; +} TextArea; + +TextArea *CreateTextArea(); +void FreeTextArea(TextArea *ta); +void DrawTextArea(TextArea *ta, Rectangle rec, Font *font, int height, int spacing); +void InsertChar(TextArea *ta, char new_char); +void DeleteChar(TextArea *ta); + +void HandleKeyboard(TextArea *ta); +void MoveCursorRight(TextArea *ta); +void MoveCursorLeft(TextArea *ta); #endif // UI_ELEMENTS_H |
