summaryrefslogtreecommitdiff
path: root/src/fruits/cmsrv/ui.h
blob: 3615d3bcfdd39378d00c95a2194eb1b9e257ffdf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <al/types.h>
#include <al/array.h>
#include <notcurses/notcurses.h>

#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);