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

struct EVEWindow;

typedef struct EVERect {
    int16_t x;
    int16_t y;
    uint16_t w;
    uint16_t h;
} EVERect;

typedef struct EVEScreen {
    uint16_t w;
    uint16_t h;
    struct EVEWindow *win_head;
    struct EVEWindow *win_tail;
    EVEKbd *kbd;
    char kbd_active;
} 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);