#include #include #include #include "../../server/server.h" enum { CMSRV_UI_LISTS = 0, CMSRV_UI_RESOURCES, CMSRV_UI_NODES }; struct cmsrv_ui { struct notcurses *nc; u32 term_cols; u32 term_rows; bool pending_layout; u8 pane; struct { struct ncplane *n; array(char *) messages; struct nn_mutex lock; } log; struct { struct ncplane *n; } lists; struct { } resources; struct { struct ncplane *n; } nodes; struct camu_server *server; }; bool cmsrv_ui_init(struct cmsrv_ui *ui, struct camu_server *server); s32 cmsrv_ui_get_input_fd(struct cmsrv_ui *ui); bool cmsrv_ui_read_input(struct cmsrv_ui *ui, struct ncinput *input); void cmsrv_ui_set_pane(struct cmsrv_ui *ui, u8 pane); void cmsrv_ui_push_message(struct cmsrv_ui *ui, char *message); void cmsrv_ui_render(struct cmsrv_ui *ui); void cmsrv_ui_close(struct cmsrv_ui *ui);