summaryrefslogtreecommitdiff
path: root/code/fe310/eos/eve/screen/screen.h
blob: d6bc5e855b3cd00c1b0e3d2b0cc0ceae0ec00e79 (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
#include <stdint.h>

struct EVEWindow;

typedef struct EVEScreen {
    uint16_t w;
    uint16_t h;
    struct EVEWindow *win_head;
    struct EVEWindow *win_tail;
    EVEKbd *kbd;
    struct EVEWindow *kbd_win;
} EVEScreen;

int eve_screen_init(EVEScreen *screen, uint16_t w, uint16_t h);
void eve_screen_set_kbd(EVEScreen *screen, EVEKbd *kbd) ;
EVEKbd *eve_screen_get_kbd(EVEScreen *screen);
void eve_screen_show_kbd(EVEScreen *screen);
void eve_screen_hide_kbd(EVEScreen *screen);

int eve_screen_win_insert(EVEScreen *screen, struct EVEWindow *window, int idx);
int eve_screen_win_remove(EVEScreen *screen, struct EVEWindow *window);
void eve_screen_win_append(EVEScreen *screen, struct EVEWindow *window);

void eve_screen_handle_touch(EVEScreen *screen, uint8_t tag0, int touch_idx);