X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=sys.h;h=d70c893dab6c2beefe471baefc8f436cbea7cd42;hb=ea32266d9012ebe9a473e914a3faca6a00c1ea76;hp=a30255994e04d2c3a0004d7d3270129e26a11ea2;hpb=c00388973ecb2af94cc7b74ef762f0b8d10741e6;p=wmpus diff --git a/sys.h b/sys.h index a302559..d70c893 100644 --- a/sys.h +++ b/sys.h @@ -28,28 +28,39 @@ typedef enum { key_f1, key_f2, key_f3, key_f4, 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 { - int up : 1; - int alt : 1; - int ctrl : 1; - int shift : 1; - int win : 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 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);