summaryrefslogtreecommitdiff
path: root/stacks/terminal/max25_ui.h
diff options
context:
space:
mode:
authorinfo@mode42.com <info@mode42.com>2026-08-07 18:25:13 +0000
committerinfo@mode42.com <info@mode42.com>2026-08-07 18:25:13 +0000
commit04d965d67a7264a1c7c211494aebda1953df7603 (patch)
tree0ebd700a6e219f84a26a656f4bee8778bc75da7b /stacks/terminal/max25_ui.h
Initial push
Diffstat (limited to 'stacks/terminal/max25_ui.h')
-rw-r--r--stacks/terminal/max25_ui.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/stacks/terminal/max25_ui.h b/stacks/terminal/max25_ui.h
new file mode 100644
index 0000000..9c1928d
--- /dev/null
+++ b/stacks/terminal/max25_ui.h
@@ -0,0 +1,45 @@
+#ifndef MAX25_UI_H
+#define MAX25_UI_H
+
+#include "max25_proto.h"
+
+#define MAX25_TERM_SGR "\033[37;40m"
+#define MAX25_TERM_CLEAR "\033[2J\033[H"
+#define MAX25_UI_RX_LINES 12
+#define MAX25_UI_INPUT_MAX 256
+
+typedef struct max25_ui max25_ui_t;
+
+typedef enum {
+ MAX25_MENU_NONE = 0,
+ MAX25_MENU_CALLERID,
+ MAX25_MENU_CALLID,
+ MAX25_MENU_STATUS,
+ MAX25_MENU_SEND,
+ MAX25_MENU_MONITOR,
+ MAX25_MENU_CONNECT,
+ MAX25_MENU_DEVICE,
+ MAX25_MENU_DEVICES,
+ MAX25_MENU_QUIT
+} max25_menu_action_t;
+
+int max25_ui_init(max25_ui_t **ui);
+void max25_ui_shutdown(max25_ui_t *ui);
+
+void max25_ui_apply_palette(void);
+void max25_ui_clear_screen(void);
+
+int max25_ui_has_ncurses(const max25_ui_t *ui);
+
+void max25_ui_reset_rx(max25_ui_t *ui);
+void max25_ui_append_rx(max25_ui_t *ui, const char *text);
+void max25_ui_draw_screen(max25_ui_t *ui, const max25_status_t *status,
+ const char *input_line);
+void max25_ui_show_menu(max25_ui_t *ui, const max25_status_t *status);
+void max25_ui_hide_menu(max25_ui_t *ui);
+int max25_ui_menu_visible(const max25_ui_t *ui);
+
+max25_menu_action_t max25_ui_menu_pick(max25_ui_t *ui, int ch);
+int max25_ui_prompt(max25_ui_t *ui, const char *label, char *buf, size_t buf_sz);
+
+#endif /* MAX25_UI_H */
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com