]> Pileus Git - wmpus/blob - sys.h
Add support for _NEW_WM_STRUT
[wmpus] / sys.h
1 typedef struct win_sys win_sys_t;
2 typedef struct win_wm  win_wm_t;
3 typedef struct {
4         int x, y, z;
5         int w, h;
6         win_sys_t *sys;
7         win_wm_t  *wm;
8 } win_t;
9
10 typedef enum {
11         // 'char' = unicode,
12         key_alert       = '\a',    // Bell (alert)
13         key_backspace   = '\b',    // Backspace
14         key_formfeed    = '\f',    // Formfeed
15         key_newline     = '\n',    // New line
16         key_return      = '\r',    // Carriage return
17         key_tab         = '\t',    // Horizontal tab
18         key_vtab        = '\v',    // Vertical tab
19         key_singlequote = '\'',    // Single quotation mark
20         key_doublequote = '\"',    // Double quotation mark
21         key_backslash   = '\\',    // Backslash
22         key_question    = '\?',    // Literal question mark
23         key_none        = 0xF0000, // unused unicode space
24         key_mouse0, key_mouse1, key_mouse2, key_mouse3,
25         key_mouse4, key_mouse5, key_mouse6, key_mouse7,
26         key_left, key_right, key_up,     key_down,
27         key_home, key_end,   key_pageup, key_pagedown,
28         key_f1, key_f2,  key_f3,  key_f4,
29         key_f5, key_f6,  key_f7,  key_f8,
30         key_f9, key_f10, key_f11, key_f12,
31         key_alt, key_ctrl, key_shift, key_win,
32         key_enter, key_leave, key_focus, key_unfocus,
33 } Key_t;
34
35 typedef struct {
36         unsigned char alt   : 1;
37         unsigned char ctrl  : 1;
38         unsigned char shift : 1;
39         unsigned char win   : 1;
40         unsigned char up    : 1;
41         unsigned char spare : 3;
42 } mod_t;
43 #define MOD(...) ((mod_t){__VA_ARGS__})
44 #define mod2int(mod) (*((unsigned short*)&(mod)))
45
46 typedef struct {
47         int  x,  y;
48         int rx, ry;
49 } ptr_t;
50 #define PTR(...) ((ptr_t){__VA_ARGS__})
51
52 void sys_watch(win_t *win, Key_t key, mod_t mod);
53
54 void sys_move(win_t *win, int x, int y, int w, int h);
55
56 void sys_raise(win_t *win);
57
58 void sys_focus(win_t *win);
59
60 void sys_foreach(win_t *win);
61
62 win_t *sys_init(void);
63
64 void sys_run(win_t *root);