#include #include #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