summaryrefslogtreecommitdiff
path: root/src/ui/tui.h
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2024-12-24 01:23:24 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2024-12-24 01:23:24 +0330
commit55d29d0df8681efe01e88e0475c8512c44ec4bc4 (patch)
tree2b07ab80b17c8bb6b20837e104aa863854f7ccff /src/ui/tui.h
parent217e7d18dbaa260a15f5612d9670105b04cd455f (diff)
fixed some bugs
Diffstat (limited to 'src/ui/tui.h')
-rw-r--r--src/ui/tui.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ui/tui.h b/src/ui/tui.h
index 8678804..605376f 100644
--- a/src/ui/tui.h
+++ b/src/ui/tui.h
@@ -52,6 +52,8 @@ typedef struct TUI {
uint64_t last_frame; // in nanoseconds
} TUI;
+constexpr int64_t NANO_TO_SECOND = 1000000000;
+
typedef enum WIDGET_TYPE {
WIDGET_TYPE_TEXT,
WIDGET_TYPE_BUTTON,
@@ -60,6 +62,7 @@ typedef enum WIDGET_TYPE {
WIDGET_TYPE_BOX,
WIDGET_TYPE_CENTER,
WIDGET_TYPE_PADDING,
+ WIDGET_TYPE_TEXT_INPUT,
} WIDGET_TYPE;
typedef struct WIDGET {
@@ -107,6 +110,14 @@ typedef struct PADDING_METADATA {
int padding_right;
} PADDING_METADATA;
+typedef void (*ON_TEXT_INPUT)(char c);
+
+typedef struct TEXT_INPUT_METADATA {
+ char *text;
+ COLOR color;
+ ON_TEXT_INPUT on_text_input;
+} TEXT_INPUT_METADATA;
+
typedef WIDGET *(*WIDGET_BUILDER)(TUI *tui);
extern TUI *tui_init();
@@ -173,6 +184,12 @@ extern WIDGET *tui_make_center(WIDGET *restrict child);
extern CENTER_METADATA *_tui_make_center_metadata(WIDGET *restrict child);
extern void _tui_delete_center(WIDGET *restrict center);
+extern WIDGET *tui_make_text_input(char *restrict text, COLOR color,
+ ON_TEXT_INPUT on_text_input);
+extern TEXT_INPUT_METADATA *_tui_make_text_input_metadata(
+ char *restrict text, COLOR color, ON_TEXT_INPUT on_text_input);
+extern void _tui_delete_input_text(WIDGET *restrict text_input);
+
extern WIDGET *tui_make_padding(WIDGET *restrict child, int padding_top,
int padding_bottom, int padding_left,
int padding_right);