| /* Copyright (c) 2006 Russ Cox */ |
| |
| /* |
| |
| tag[1] Rerror error[s] |
| |
| tag[1] Trdmouse |
| tag[1] Rrdmouse x[4] y[4] button[4] msec[4] resized[1] |
| |
| tag[1] Tmoveto x[4] y[4] |
| tag[1] Rmoveto |
| |
| tag[1] Tcursor cursor[] |
| tag[1] Rcursor |
| |
| tag[1] Tbouncemouse x[4] y[4] button[4] |
| tag[1] Rbouncemouse |
| |
| tag[1] Trdkbd |
| tag[1] Rrdkbd rune[2] |
| |
| tag[1] Tlabel label[s] |
| tag[1] Rlabel |
| |
| tag[1] Tinit winsize[s] label[s] font[s] |
| tag[1] Rinit |
| |
| tag[1] Trdsnarf |
| tag[1] Rrdsnarf snarf[s] |
| |
| tag[1] Twrsnarf snarf[s] |
| tag[1] Rwrsnarf |
| |
| tag[1] Trddraw count[4] |
| tag[1] Rrddraw count[4] data[count] |
| |
| tag[1] Twrdraw count[4] data[count] |
| tag[1] Rwrdraw count[4] |
| |
| tag[1] Ttop |
| tag[1] Rtop |
| |
| tag[1] Tresize rect[4*4] |
| tag[1] Rresize |
| */ |
| |
| |
| #define PUT(p, x) \ |
| (p)[0] = ((x) >> 24)&0xFF, \ |
| (p)[1] = ((x) >> 16)&0xFF, \ |
| (p)[2] = ((x) >> 8)&0xFF, \ |
| (p)[3] = (x)&0xFF |
| |
| #define GET(p, x) \ |
| ((x) = (u32int)(((p)[0] << 24) | ((p)[1] << 16) | ((p)[2] << 8) | ((p)[3]))) |
| |
| #define PUT2(p, x) \ |
| (p)[0] = ((x) >> 8)&0xFF, \ |
| (p)[1] = (x)&0xFF |
| |
| #define GET2(p, x) \ |
| ((x) = (((p)[0] << 8) | ((p)[1]))) |
| |
| enum { |
| Rerror = 1, |
| Trdmouse = 2, |
| Rrdmouse, |
| Tmoveto = 4, |
| Rmoveto, |
| Tcursor = 6, |
| Rcursor, |
| Tbouncemouse = 8, |
| Rbouncemouse, |
| Trdkbd = 10, |
| Rrdkbd, |
| Tlabel = 12, |
| Rlabel, |
| Tinit = 14, |
| Rinit, |
| Trdsnarf = 16, |
| Rrdsnarf, |
| Twrsnarf = 18, |
| Rwrsnarf, |
| Trddraw = 20, |
| Rrddraw, |
| Twrdraw = 22, |
| Rwrdraw, |
| Ttop = 24, |
| Rtop, |
| Tresize = 26, |
| Rresize, |
| Tmax, |
| }; |
| |
| enum { |
| MAXWMSG = 4*1024*1024 |
| }; |
| |
| typedef struct Wsysmsg Wsysmsg; |
| struct Wsysmsg |
| { |
| uchar type; |
| uchar tag; |
| Mouse mouse; |
| int resized; |
| Cursor cursor; |
| int arrowcursor; |
| Rune rune; |
| char *winsize; |
| char *label; |
| char *snarf; |
| char *error; |
| uchar *data; |
| uint count; |
| Rectangle rect; |
| }; |
| |
| uint convW2M(Wsysmsg*, uchar*, uint); |
| uint convM2W(uchar*, uint, Wsysmsg*); |
| uint sizeW2M(Wsysmsg*); |
| int readwsysmsg(int, uchar*, uint); |
| |
| int drawfcallfmt(Fmt*); |