adding a bunch of code (vesa, keyb, mouse, etc) to the menu
[cdmenu] / menu / src / app.h
1 #ifndef APP_H_
2 #define APP_H_
3
4 #include "sizeint.h"
5 #include "logger.h"
6 #include "rtk.h"
7
8 enum {
9         KEY_BACKSP = 8,
10         KEY_ESC = 27,
11         KEY_DEL = 127,
12
13         KEY_NUM_0 = 256, KEY_NUM_1, KEY_NUM_2, KEY_NUM_3, KEY_NUM_4,
14         KEY_NUM_5, KEY_NUM_6, KEY_NUM_7, KEY_NUM_8, KEY_NUM_9,
15         KEY_NUM_DOT, KEY_NUM_DIV, KEY_NUM_MUL, KEY_NUM_MINUS, KEY_NUM_PLUS, KEY_NUM_ENTER, KEY_NUM_EQUALS,
16         KEY_UP, KEY_DOWN, KEY_RIGHT, KEY_LEFT,
17         KEY_INS, KEY_HOME, KEY_END, KEY_PGUP, KEY_PGDN,
18         KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6,
19         KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_F11, KEY_F12,
20         KEY_F13, KEY_F14, KEY_F15,
21         KEY_NUMLK, KEY_CAPSLK, KEY_SCRLK,
22         KEY_RSHIFT, KEY_LSHIFT, KEY_RCTRL, KEY_LCTRL, KEY_RALT, KEY_LALT,
23         KEY_RMETA, KEY_LMETA, KEY_LSUPER, KEY_RSUPER, KEY_MODE, KEY_COMPOSE,
24         KEY_HELP, KEY_PRINT, KEY_SYSRQ, KEY_BREAK
25 };
26
27 #ifndef KEY_ANY
28 #define KEY_ANY         (-1)
29 #define KEY_ALT         (-2)
30 #define KEY_CTRL        (-3)
31 #define KEY_SHIFT       (-4)
32 #endif
33
34 enum {
35         KEY_MOD_SHIFT   = 1,
36         KEY_MOD_CTRL    = 4,
37         KEY_MOD_ALT     = 8
38 };
39
40
41 struct app_screen {
42         const char *name;
43
44         int (*init)(void);
45         void (*destroy)(void);
46         int (*start)(void);
47         void (*stop)(void);
48         void (*display)(void);
49         void (*reshape)(int, int);
50         void (*keyboard)(int, int);
51         void (*mouse)(int, int, int, int);
52         void (*motion)(int, int);
53 };
54
55 extern int mouse_x, mouse_y, mouse_state[3];
56 extern unsigned int modkeys;
57 extern int scr_width, scr_height;
58 extern int fullscr;
59
60 extern long time_msec;
61 extern struct app_screen *cur_scr;
62 extern struct app_screen menuscr;
63
64 extern unsigned char *framebuf;
65
66
67 int app_init(void);
68 void app_shutdown(void);
69
70 void app_display(void);
71 void app_reshape(int x, int y);
72 void app_keyboard(int key, int press);
73 void app_mouse(int bn, int st, int x, int y);
74 void app_motion(int x, int y);
75
76 void app_chscr(struct app_screen *scr);
77
78 void gui_fill(rtk_rect *rect, int color);
79 void gui_drawtext(int x, int y, const char *str);
80 void gui_textrect(const char *str, rtk_rect *rect);
81
82 /* defined in main.c */
83 void app_invalidate(int x, int y, int w, int h);
84 void app_swap_buffers(void);
85 void app_quit(void);
86 void app_resize(int x, int y);
87 void app_fullscreen(int fs);
88
89 #endif  /* APP_H_ */