aboutsummaryrefslogtreecommitdiff
path: root/src/gui/inc/gui.h
blob: 6678b1bcd4c943af46a60b81baa2306f35eecde3 (plain) (blame)
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
#ifndef GUI_H
#define GUI_H

#include <camera.h>
#include <gfx.h>
#include <peripheral.h>

#ifdef __cplusplus
extern "C"
{
#endif

struct gui_common
{
    int (*update)(struct gui_common *, const union peripheral *,
        const struct camera *);
    int (*render)(const struct gui_common *);
    void (*get_dim)(const struct gui_common *, short *w, short *h);
    short x, y;
    bool hcentered, vcentered;
    struct gui_common *parent, *child, *sibling;
};

void gui_add_child(struct gui_common *parent, struct gui_common *child);
void gui_add_sibling(struct gui_common *g, struct gui_common *sibling);
int gui_update(struct gui_common *g, const union peripheral *p,
    const struct camera *c);
int gui_render(const struct gui_common *g);

#ifdef __cplusplus
}
#endif

#endif /* GUI_H */