#ifndef UI_H #define UI_H #include "str.h" #include "dynarr.h" typedef enum { UI_REDRAW, UI_KEY_DOWN, UI_KEY_UP, UI_QUIT } UiEventType; typedef enum { UIK_ESCAPE, UIK_BACKSPACE, UIK_UP, UIK_DOWN, UIK_LEFT, UIK_RIGHT, UIK_RETURN, UIK_HOME, UIK_END, UIK_PGUP, UIK_PGDN, UIK_UNKNOWN } UiKey; typedef enum { UIM_ALT, UIM_SHIFT, UIM_CTRL, } UiModMask; typedef struct { UiKey key; UiModMask mod; char str[16]; int strn; } UiKeyEvent; typedef struct { UiEventType type; union { UiKeyEvent key; }; } UiEvent; typedef DYNARR(Str) UiOpts; void ui_init(int argc, char **argv, UiOpts o); void ui_fini(void); void ui_draw(Str input, int inpi, int seli, UiOpts o); int ui_wait_event(UiEvent *e); #endif