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

#define EVE_PAGE_KBDCH_CLOSE    0x1a

struct EVEWidget;
struct EVEPage;

typedef void (*eve_page_destructor_t) (struct EVEPage *);

typedef struct EVEPage {
    EVEView v;
    int win_x;
    int win_y;
    eve_page_destructor_t destructor;
    EVEViewStack *stack;
    struct EVEWidget *widget_f;
} EVEPage;

void eve_page_init(EVEPage *page, EVEWindow *window, EVEViewStack *stack, eve_view_draw_t draw, eve_view_touch_t touch, eve_view_uievt_t uievt, eve_page_destructor_t destructor);
void eve_page_open(EVEPage *parent, eve_view_constructor_t constructor);
void eve_page_close(EVEPage *page);

int16_t eve_page_x(EVEPage *page, int16_t x);
int16_t eve_page_y(EVEPage *page, int16_t y);
int16_t eve_page_scr_x(EVEPage *page, int16_t x);
int16_t eve_page_scr_y(EVEPage *page, int16_t y);

void eve_page_set_focus(EVEPage *page, struct EVEWidget *widget, EVERect *focus);
struct EVEWidget *eve_page_get_focus(EVEPage *page);
int eve_page_rect_visible(EVEPage *page, EVERect *g);

void eve_page_uievt_push(EVEPage *page, uint16_t evt, void *param);