mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
123 lines
1.8 KiB
C
123 lines
1.8 KiB
C
/* 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*);
|