X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=sys.h;h=01a1734a0b44992fed14f973a3b7f6759bfd6987;hb=9b4ab92753e6e9ff8cdf96c20c6c0a2c8b5f1d33;hp=a30255994e04d2c3a0004d7d3270129e26a11ea2;hpb=c00388973ecb2af94cc7b74ef762f0b8d10741e6;p=wmpus diff --git a/sys.h b/sys.h index a302559..01a1734 100644 --- a/sys.h +++ b/sys.h @@ -28,28 +28,51 @@ 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 char*)&(mod))) typedef struct { int x, y; int rx, ry; } ptr_t; +#define PTR(...) ((ptr_t){__VA_ARGS__}) + +typedef enum { + st_show, + st_full, + st_shade, + st_icon, + st_hide, +} state_t; 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); + +void sys_show(win_t *win, state_t st); + +list_t *sys_info(win_t *win); + win_t *sys_init(void); void sys_run(win_t *root);