X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=sys.h;h=d70c893dab6c2beefe471baefc8f436cbea7cd42;hb=ea32266d9012ebe9a473e914a3faca6a00c1ea76;hp=74938c7bfe11a0ed9621c705b516452dd61a365f;hpb=d7d862c402564b4fe29f17e1a55cdbb2967aa6fd;p=wmpus diff --git a/sys.h b/sys.h index 74938c7..d70c893 100644 --- a/sys.h +++ b/sys.h @@ -29,29 +29,38 @@ typedef enum { key_f5, key_f6, key_f7, key_f8, key_f9, key_f10, key_f11, key_f12, key_alt, key_ctrl, key_shift, key_win, + key_enter, key_leave, key_focus, key_unfocus, } Key_t; typedef struct { - unsigned char up : 1; unsigned char alt : 1; unsigned char ctrl : 1; unsigned char shift : 1; unsigned char win : 1; + unsigned char up : 1; + unsigned char spare : 3; } mod_t; #define MOD(...) ((mod_t){__VA_ARGS__}) -#define mod2int(mod) (*((unsigned*)&(mod))) +#define mod2int(mod) (*((unsigned short*)&(mod))) typedef struct { int x, y; int rx, ry; } ptr_t; +#define PTR(...) ((ptr_t){__VA_ARGS__}) void sys_watch(win_t *win, Key_t key, mod_t mod); +void sys_unwatch(win_t *win, Key_t key, mod_t mod); + void sys_move(win_t *win, int x, int y, int w, int h); void sys_raise(win_t *win); +void sys_focus(win_t *win); + +void sys_foreach(win_t *win); + win_t *sys_init(void); void sys_run(win_t *root);