Blame


1 257fb626 2006-06-25 devnull #include <u.h>
2 257fb626 2006-06-25 devnull #include <libc.h>
3 257fb626 2006-06-25 devnull #include <draw.h>
4 257fb626 2006-06-25 devnull #include <mouse.h>
5 257fb626 2006-06-25 devnull #include <cursor.h>
6 257fb626 2006-06-25 devnull #include <drawfcall.h>
7 257fb626 2006-06-25 devnull
8 257fb626 2006-06-25 devnull static int
9 257fb626 2006-06-25 devnull _stringsize(char *s)
10 257fb626 2006-06-25 devnull {
11 150f8802 2006-06-25 devnull if(s == nil)
12 150f8802 2006-06-25 devnull s = "";
13 257fb626 2006-06-25 devnull return 4+strlen(s);
14 257fb626 2006-06-25 devnull }
15 257fb626 2006-06-25 devnull
16 257fb626 2006-06-25 devnull static int
17 257fb626 2006-06-25 devnull PUTSTRING(uchar *p, char *s)
18 257fb626 2006-06-25 devnull {
19 257fb626 2006-06-25 devnull int n;
20 fa325e9b 2020-01-10 cross
21 257fb626 2006-06-25 devnull if(s == nil)
22 257fb626 2006-06-25 devnull s = "";
23 257fb626 2006-06-25 devnull n = strlen(s);
24 257fb626 2006-06-25 devnull PUT(p, n);
25 257fb626 2006-06-25 devnull memmove(p+4, s, n);
26 257fb626 2006-06-25 devnull return n+4;
27 257fb626 2006-06-25 devnull }
28 257fb626 2006-06-25 devnull
29 257fb626 2006-06-25 devnull static int
30 257fb626 2006-06-25 devnull GETSTRING(uchar *p, char **s)
31 257fb626 2006-06-25 devnull {
32 257fb626 2006-06-25 devnull int n;
33 fa325e9b 2020-01-10 cross
34 257fb626 2006-06-25 devnull GET(p, n);
35 257fb626 2006-06-25 devnull memmove(p, p+4, n);
36 257fb626 2006-06-25 devnull *s = (char*)p;
37 257fb626 2006-06-25 devnull p[n] = 0;
38 257fb626 2006-06-25 devnull return n+4;
39 257fb626 2006-06-25 devnull }
40 fa325e9b 2020-01-10 cross
41 257fb626 2006-06-25 devnull uint
42 257fb626 2006-06-25 devnull sizeW2M(Wsysmsg *m)
43 257fb626 2006-06-25 devnull {
44 257fb626 2006-06-25 devnull switch(m->type){
45 257fb626 2006-06-25 devnull default:
46 257fb626 2006-06-25 devnull return 0;
47 257fb626 2006-06-25 devnull case Trdmouse:
48 257fb626 2006-06-25 devnull case Rbouncemouse:
49 257fb626 2006-06-25 devnull case Rmoveto:
50 257fb626 2006-06-25 devnull case Rcursor:
51 7bb69ba8 2019-04-05 rsc case Rcursor2:
52 257fb626 2006-06-25 devnull case Trdkbd:
53 257fb626 2006-06-25 devnull case Rlabel:
54 dbf57689 2020-01-13 rsc case Rctxt:
55 257fb626 2006-06-25 devnull case Rinit:
56 257fb626 2006-06-25 devnull case Trdsnarf:
57 257fb626 2006-06-25 devnull case Rwrsnarf:
58 257fb626 2006-06-25 devnull case Ttop:
59 257fb626 2006-06-25 devnull case Rtop:
60 257fb626 2006-06-25 devnull case Rresize:
61 257fb626 2006-06-25 devnull return 4+1+1;
62 257fb626 2006-06-25 devnull case Rrdmouse:
63 257fb626 2006-06-25 devnull return 4+1+1+4+4+4+4+1;
64 257fb626 2006-06-25 devnull case Tbouncemouse:
65 257fb626 2006-06-25 devnull return 4+1+1+4+4+4;
66 257fb626 2006-06-25 devnull case Tmoveto:
67 257fb626 2006-06-25 devnull return 4+1+1+4+4;
68 257fb626 2006-06-25 devnull case Tcursor:
69 7bb69ba8 2019-04-05 rsc return 4+1+1+4+4+2*16+2*16+1;
70 7bb69ba8 2019-04-05 rsc case Tcursor2:
71 8581c2b5 2018-11-16 rsc return 4+1+1+4+4+2*16+2*16+4+4+4*32+4*32+1;
72 257fb626 2006-06-25 devnull case Rerror:
73 257fb626 2006-06-25 devnull return 4+1+1+_stringsize(m->error);
74 257fb626 2006-06-25 devnull case Rrdkbd:
75 257fb626 2006-06-25 devnull return 4+1+1+2;
76 257fb626 2006-06-25 devnull case Tlabel:
77 257fb626 2006-06-25 devnull return 4+1+1+_stringsize(m->label);
78 dbf57689 2020-01-13 rsc case Tctxt:
79 dbf57689 2020-01-13 rsc return 4+1+1
80 dbf57689 2020-01-13 rsc +_stringsize(m->id);
81 257fb626 2006-06-25 devnull case Tinit:
82 257fb626 2006-06-25 devnull return 4+1+1
83 257fb626 2006-06-25 devnull +_stringsize(m->winsize)
84 257fb626 2006-06-25 devnull +_stringsize(m->label);
85 257fb626 2006-06-25 devnull case Rrdsnarf:
86 257fb626 2006-06-25 devnull case Twrsnarf:
87 257fb626 2006-06-25 devnull return 4+1+1+_stringsize(m->snarf);
88 257fb626 2006-06-25 devnull case Rrddraw:
89 257fb626 2006-06-25 devnull case Twrdraw:
90 257fb626 2006-06-25 devnull return 4+1+1+4+m->count;
91 257fb626 2006-06-25 devnull case Trddraw:
92 257fb626 2006-06-25 devnull case Rwrdraw:
93 257fb626 2006-06-25 devnull return 4+1+1+4;
94 257fb626 2006-06-25 devnull case Tresize:
95 257fb626 2006-06-25 devnull return 4+1+1+4*4;
96 257fb626 2006-06-25 devnull }
97 257fb626 2006-06-25 devnull }
98 257fb626 2006-06-25 devnull
99 257fb626 2006-06-25 devnull uint
100 257fb626 2006-06-25 devnull convW2M(Wsysmsg *m, uchar *p, uint n)
101 257fb626 2006-06-25 devnull {
102 257fb626 2006-06-25 devnull int nn;
103 fa325e9b 2020-01-10 cross
104 257fb626 2006-06-25 devnull nn = sizeW2M(m);
105 257fb626 2006-06-25 devnull if(n < nn || nn == 0 || n < 6)
106 257fb626 2006-06-25 devnull return 0;
107 257fb626 2006-06-25 devnull PUT(p, nn);
108 257fb626 2006-06-25 devnull p[4] = m->tag;
109 257fb626 2006-06-25 devnull p[5] = m->type;
110 257fb626 2006-06-25 devnull
111 257fb626 2006-06-25 devnull switch(m->type){
112 257fb626 2006-06-25 devnull default:
113 257fb626 2006-06-25 devnull return 0;
114 257fb626 2006-06-25 devnull case Trdmouse:
115 257fb626 2006-06-25 devnull case Rbouncemouse:
116 257fb626 2006-06-25 devnull case Rmoveto:
117 257fb626 2006-06-25 devnull case Rcursor:
118 7bb69ba8 2019-04-05 rsc case Rcursor2:
119 257fb626 2006-06-25 devnull case Trdkbd:
120 257fb626 2006-06-25 devnull case Rlabel:
121 dbf57689 2020-01-13 rsc case Rctxt:
122 257fb626 2006-06-25 devnull case Rinit:
123 257fb626 2006-06-25 devnull case Trdsnarf:
124 257fb626 2006-06-25 devnull case Rwrsnarf:
125 257fb626 2006-06-25 devnull case Ttop:
126 257fb626 2006-06-25 devnull case Rtop:
127 257fb626 2006-06-25 devnull case Rresize:
128 257fb626 2006-06-25 devnull break;
129 257fb626 2006-06-25 devnull case Rerror:
130 257fb626 2006-06-25 devnull PUTSTRING(p+6, m->error);
131 257fb626 2006-06-25 devnull break;
132 257fb626 2006-06-25 devnull case Rrdmouse:
133 257fb626 2006-06-25 devnull PUT(p+6, m->mouse.xy.x);
134 257fb626 2006-06-25 devnull PUT(p+10, m->mouse.xy.y);
135 257fb626 2006-06-25 devnull PUT(p+14, m->mouse.buttons);
136 257fb626 2006-06-25 devnull PUT(p+18, m->mouse.msec);
137 257fb626 2006-06-25 devnull p[19] = m->resized;
138 257fb626 2006-06-25 devnull break;
139 257fb626 2006-06-25 devnull case Tbouncemouse:
140 257fb626 2006-06-25 devnull PUT(p+6, m->mouse.xy.x);
141 257fb626 2006-06-25 devnull PUT(p+10, m->mouse.xy.y);
142 257fb626 2006-06-25 devnull PUT(p+14, m->mouse.buttons);
143 257fb626 2006-06-25 devnull break;
144 257fb626 2006-06-25 devnull case Tmoveto:
145 257fb626 2006-06-25 devnull PUT(p+6, m->mouse.xy.x);
146 257fb626 2006-06-25 devnull PUT(p+10, m->mouse.xy.y);
147 257fb626 2006-06-25 devnull break;
148 257fb626 2006-06-25 devnull case Tcursor:
149 257fb626 2006-06-25 devnull PUT(p+6, m->cursor.offset.x);
150 257fb626 2006-06-25 devnull PUT(p+10, m->cursor.offset.y);
151 257fb626 2006-06-25 devnull memmove(p+14, m->cursor.clr, sizeof m->cursor.clr);
152 257fb626 2006-06-25 devnull memmove(p+46, m->cursor.set, sizeof m->cursor.set);
153 7bb69ba8 2019-04-05 rsc p[78] = m->arrowcursor;
154 7bb69ba8 2019-04-05 rsc break;
155 7bb69ba8 2019-04-05 rsc case Tcursor2:
156 7bb69ba8 2019-04-05 rsc PUT(p+6, m->cursor.offset.x);
157 7bb69ba8 2019-04-05 rsc PUT(p+10, m->cursor.offset.y);
158 7bb69ba8 2019-04-05 rsc memmove(p+14, m->cursor.clr, sizeof m->cursor.clr);
159 7bb69ba8 2019-04-05 rsc memmove(p+46, m->cursor.set, sizeof m->cursor.set);
160 8581c2b5 2018-11-16 rsc PUT(p+78, m->cursor2.offset.x);
161 8581c2b5 2018-11-16 rsc PUT(p+82, m->cursor2.offset.y);
162 8581c2b5 2018-11-16 rsc memmove(p+86, m->cursor2.clr, sizeof m->cursor2.clr);
163 8581c2b5 2018-11-16 rsc memmove(p+214, m->cursor2.set, sizeof m->cursor2.set);
164 8581c2b5 2018-11-16 rsc p[342] = m->arrowcursor;
165 257fb626 2006-06-25 devnull break;
166 257fb626 2006-06-25 devnull case Rrdkbd:
167 257fb626 2006-06-25 devnull PUT2(p+6, m->rune);
168 257fb626 2006-06-25 devnull break;
169 257fb626 2006-06-25 devnull case Tlabel:
170 257fb626 2006-06-25 devnull PUTSTRING(p+6, m->label);
171 dbf57689 2020-01-13 rsc break;
172 dbf57689 2020-01-13 rsc case Tctxt:
173 dbf57689 2020-01-13 rsc PUTSTRING(p+6, m->id);
174 257fb626 2006-06-25 devnull break;
175 257fb626 2006-06-25 devnull case Tinit:
176 257fb626 2006-06-25 devnull p += 6;
177 257fb626 2006-06-25 devnull p += PUTSTRING(p, m->winsize);
178 257fb626 2006-06-25 devnull p += PUTSTRING(p, m->label);
179 257fb626 2006-06-25 devnull break;
180 257fb626 2006-06-25 devnull case Rrdsnarf:
181 257fb626 2006-06-25 devnull case Twrsnarf:
182 257fb626 2006-06-25 devnull PUTSTRING(p+6, m->snarf);
183 257fb626 2006-06-25 devnull break;
184 257fb626 2006-06-25 devnull case Rrddraw:
185 257fb626 2006-06-25 devnull case Twrdraw:
186 257fb626 2006-06-25 devnull PUT(p+6, m->count);
187 257fb626 2006-06-25 devnull memmove(p+10, m->data, m->count);
188 257fb626 2006-06-25 devnull break;
189 257fb626 2006-06-25 devnull case Trddraw:
190 257fb626 2006-06-25 devnull case Rwrdraw:
191 257fb626 2006-06-25 devnull PUT(p+6, m->count);
192 257fb626 2006-06-25 devnull break;
193 257fb626 2006-06-25 devnull case Tresize:
194 257fb626 2006-06-25 devnull PUT(p+6, m->rect.min.x);
195 257fb626 2006-06-25 devnull PUT(p+10, m->rect.min.y);
196 257fb626 2006-06-25 devnull PUT(p+14, m->rect.max.x);
197 257fb626 2006-06-25 devnull PUT(p+18, m->rect.max.y);
198 257fb626 2006-06-25 devnull break;
199 fa325e9b 2020-01-10 cross }
200 257fb626 2006-06-25 devnull return nn;
201 257fb626 2006-06-25 devnull }
202 257fb626 2006-06-25 devnull
203 257fb626 2006-06-25 devnull uint
204 257fb626 2006-06-25 devnull convM2W(uchar *p, uint n, Wsysmsg *m)
205 257fb626 2006-06-25 devnull {
206 257fb626 2006-06-25 devnull int nn;
207 fa325e9b 2020-01-10 cross
208 257fb626 2006-06-25 devnull if(n < 6)
209 257fb626 2006-06-25 devnull return 0;
210 257fb626 2006-06-25 devnull GET(p, nn);
211 257fb626 2006-06-25 devnull if(nn > n)
212 257fb626 2006-06-25 devnull return 0;
213 257fb626 2006-06-25 devnull m->tag = p[4];
214 257fb626 2006-06-25 devnull m->type = p[5];
215 257fb626 2006-06-25 devnull switch(m->type){
216 257fb626 2006-06-25 devnull default:
217 257fb626 2006-06-25 devnull return 0;
218 257fb626 2006-06-25 devnull case Trdmouse:
219 257fb626 2006-06-25 devnull case Rbouncemouse:
220 257fb626 2006-06-25 devnull case Rmoveto:
221 257fb626 2006-06-25 devnull case Rcursor:
222 7bb69ba8 2019-04-05 rsc case Rcursor2:
223 257fb626 2006-06-25 devnull case Trdkbd:
224 257fb626 2006-06-25 devnull case Rlabel:
225 dbf57689 2020-01-13 rsc case Rctxt:
226 257fb626 2006-06-25 devnull case Rinit:
227 257fb626 2006-06-25 devnull case Trdsnarf:
228 257fb626 2006-06-25 devnull case Rwrsnarf:
229 257fb626 2006-06-25 devnull case Ttop:
230 257fb626 2006-06-25 devnull case Rtop:
231 257fb626 2006-06-25 devnull case Rresize:
232 257fb626 2006-06-25 devnull break;
233 257fb626 2006-06-25 devnull case Rerror:
234 257fb626 2006-06-25 devnull GETSTRING(p+6, &m->error);
235 257fb626 2006-06-25 devnull break;
236 257fb626 2006-06-25 devnull case Rrdmouse:
237 257fb626 2006-06-25 devnull GET(p+6, m->mouse.xy.x);
238 257fb626 2006-06-25 devnull GET(p+10, m->mouse.xy.y);
239 257fb626 2006-06-25 devnull GET(p+14, m->mouse.buttons);
240 257fb626 2006-06-25 devnull GET(p+18, m->mouse.msec);
241 257fb626 2006-06-25 devnull m->resized = p[19];
242 257fb626 2006-06-25 devnull break;
243 257fb626 2006-06-25 devnull case Tbouncemouse:
244 257fb626 2006-06-25 devnull GET(p+6, m->mouse.xy.x);
245 257fb626 2006-06-25 devnull GET(p+10, m->mouse.xy.y);
246 257fb626 2006-06-25 devnull GET(p+14, m->mouse.buttons);
247 257fb626 2006-06-25 devnull break;
248 257fb626 2006-06-25 devnull case Tmoveto:
249 257fb626 2006-06-25 devnull GET(p+6, m->mouse.xy.x);
250 257fb626 2006-06-25 devnull GET(p+10, m->mouse.xy.y);
251 257fb626 2006-06-25 devnull break;
252 257fb626 2006-06-25 devnull case Tcursor:
253 257fb626 2006-06-25 devnull GET(p+6, m->cursor.offset.x);
254 257fb626 2006-06-25 devnull GET(p+10, m->cursor.offset.y);
255 257fb626 2006-06-25 devnull memmove(m->cursor.clr, p+14, sizeof m->cursor.clr);
256 257fb626 2006-06-25 devnull memmove(m->cursor.set, p+46, sizeof m->cursor.set);
257 7bb69ba8 2019-04-05 rsc m->arrowcursor = p[78];
258 7bb69ba8 2019-04-05 rsc break;
259 7bb69ba8 2019-04-05 rsc case Tcursor2:
260 7bb69ba8 2019-04-05 rsc GET(p+6, m->cursor.offset.x);
261 7bb69ba8 2019-04-05 rsc GET(p+10, m->cursor.offset.y);
262 7bb69ba8 2019-04-05 rsc memmove(m->cursor.clr, p+14, sizeof m->cursor.clr);
263 7bb69ba8 2019-04-05 rsc memmove(m->cursor.set, p+46, sizeof m->cursor.set);
264 8581c2b5 2018-11-16 rsc GET(p+78, m->cursor2.offset.x);
265 8581c2b5 2018-11-16 rsc GET(p+82, m->cursor2.offset.y);
266 8581c2b5 2018-11-16 rsc memmove(m->cursor2.clr, p+86, sizeof m->cursor2.clr);
267 8581c2b5 2018-11-16 rsc memmove(m->cursor2.set, p+214, sizeof m->cursor2.set);
268 8581c2b5 2018-11-16 rsc m->arrowcursor = p[342];
269 257fb626 2006-06-25 devnull break;
270 257fb626 2006-06-25 devnull case Rrdkbd:
271 257fb626 2006-06-25 devnull GET2(p+6, m->rune);
272 257fb626 2006-06-25 devnull break;
273 257fb626 2006-06-25 devnull case Tlabel:
274 257fb626 2006-06-25 devnull GETSTRING(p+6, &m->label);
275 257fb626 2006-06-25 devnull break;
276 dbf57689 2020-01-13 rsc case Tctxt:
277 dbf57689 2020-01-13 rsc GETSTRING(p+6, &m->id);
278 dbf57689 2020-01-13 rsc break;
279 257fb626 2006-06-25 devnull case Tinit:
280 257fb626 2006-06-25 devnull p += 6;
281 257fb626 2006-06-25 devnull p += GETSTRING(p, &m->winsize);
282 257fb626 2006-06-25 devnull p += GETSTRING(p, &m->label);
283 257fb626 2006-06-25 devnull break;
284 257fb626 2006-06-25 devnull case Rrdsnarf:
285 257fb626 2006-06-25 devnull case Twrsnarf:
286 257fb626 2006-06-25 devnull GETSTRING(p+6, &m->snarf);
287 257fb626 2006-06-25 devnull break;
288 257fb626 2006-06-25 devnull case Rrddraw:
289 257fb626 2006-06-25 devnull case Twrdraw:
290 257fb626 2006-06-25 devnull GET(p+6, m->count);
291 257fb626 2006-06-25 devnull m->data = p+10;
292 257fb626 2006-06-25 devnull break;
293 257fb626 2006-06-25 devnull case Trddraw:
294 257fb626 2006-06-25 devnull case Rwrdraw:
295 257fb626 2006-06-25 devnull GET(p+6, m->count);
296 257fb626 2006-06-25 devnull break;
297 257fb626 2006-06-25 devnull case Tresize:
298 257fb626 2006-06-25 devnull GET(p+6, m->rect.min.x);
299 257fb626 2006-06-25 devnull GET(p+10, m->rect.min.y);
300 257fb626 2006-06-25 devnull GET(p+14, m->rect.max.x);
301 257fb626 2006-06-25 devnull GET(p+18, m->rect.max.y);
302 257fb626 2006-06-25 devnull break;
303 fa325e9b 2020-01-10 cross }
304 257fb626 2006-06-25 devnull return nn;
305 257fb626 2006-06-25 devnull }
306 257fb626 2006-06-25 devnull
307 257fb626 2006-06-25 devnull int
308 257fb626 2006-06-25 devnull readwsysmsg(int fd, uchar *buf, uint nbuf)
309 257fb626 2006-06-25 devnull {
310 257fb626 2006-06-25 devnull int n;
311 257fb626 2006-06-25 devnull
312 257fb626 2006-06-25 devnull if(nbuf < 6)
313 257fb626 2006-06-25 devnull return -1;
314 257fb626 2006-06-25 devnull if(readn(fd, buf, 4) != 4)
315 257fb626 2006-06-25 devnull return -1;
316 257fb626 2006-06-25 devnull GET(buf, n);
317 257fb626 2006-06-25 devnull if(n > nbuf)
318 257fb626 2006-06-25 devnull return -1;
319 257fb626 2006-06-25 devnull if(readn(fd, buf+4, n-4) != n-4)
320 257fb626 2006-06-25 devnull return -1;
321 257fb626 2006-06-25 devnull return n;
322 257fb626 2006-06-25 devnull }
323 257fb626 2006-06-25 devnull
324 257fb626 2006-06-25 devnull int
325 257fb626 2006-06-25 devnull drawfcallfmt(Fmt *fmt)
326 257fb626 2006-06-25 devnull {
327 257fb626 2006-06-25 devnull Wsysmsg *m;
328 fa325e9b 2020-01-10 cross
329 257fb626 2006-06-25 devnull m = va_arg(fmt->args, Wsysmsg*);
330 257fb626 2006-06-25 devnull fmtprint(fmt, "tag=%d ", m->tag);
331 257fb626 2006-06-25 devnull switch(m->type){
332 257fb626 2006-06-25 devnull default:
333 257fb626 2006-06-25 devnull return fmtprint(fmt, "unknown msg %d", m->type);
334 257fb626 2006-06-25 devnull case Rerror:
335 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rerror error='%s'", m->error);
336 257fb626 2006-06-25 devnull case Trdmouse:
337 257fb626 2006-06-25 devnull return fmtprint(fmt, "Trdmouse");
338 257fb626 2006-06-25 devnull case Rrdmouse:
339 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rrdmouse x=%d y=%d buttons=%d msec=%d resized=%d",
340 fa325e9b 2020-01-10 cross m->mouse.xy.x, m->mouse.xy.y,
341 257fb626 2006-06-25 devnull m->mouse.buttons, m->mouse.msec, m->resized);
342 257fb626 2006-06-25 devnull case Tbouncemouse:
343 257fb626 2006-06-25 devnull return fmtprint(fmt, "Tbouncemouse x=%d y=%d buttons=%d",
344 257fb626 2006-06-25 devnull m->mouse.xy.x, m->mouse.xy.y, m->mouse.buttons);
345 257fb626 2006-06-25 devnull case Rbouncemouse:
346 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rbouncemouse");
347 257fb626 2006-06-25 devnull case Tmoveto:
348 257fb626 2006-06-25 devnull return fmtprint(fmt, "Tmoveto x=%d y=%d", m->mouse.xy.x, m->mouse.xy.y);
349 257fb626 2006-06-25 devnull case Rmoveto:
350 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rmoveto");
351 257fb626 2006-06-25 devnull case Tcursor:
352 257fb626 2006-06-25 devnull return fmtprint(fmt, "Tcursor arrow=%d", m->arrowcursor);
353 7bb69ba8 2019-04-05 rsc case Tcursor2:
354 7bb69ba8 2019-04-05 rsc return fmtprint(fmt, "Tcursor2 arrow=%d", m->arrowcursor);
355 257fb626 2006-06-25 devnull case Rcursor:
356 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rcursor");
357 7bb69ba8 2019-04-05 rsc case Rcursor2:
358 7bb69ba8 2019-04-05 rsc return fmtprint(fmt, "Rcursor2");
359 257fb626 2006-06-25 devnull case Trdkbd:
360 257fb626 2006-06-25 devnull return fmtprint(fmt, "Trdkbd");
361 257fb626 2006-06-25 devnull case Rrdkbd:
362 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rrdkbd rune=%C", m->rune);
363 257fb626 2006-06-25 devnull case Tlabel:
364 257fb626 2006-06-25 devnull return fmtprint(fmt, "Tlabel label='%s'", m->label);
365 257fb626 2006-06-25 devnull case Rlabel:
366 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rlabel");
367 dbf57689 2020-01-13 rsc case Tctxt:
368 dbf57689 2020-01-13 rsc return fmtprint(fmt, "Tctxt id='%s'", m->id);
369 dbf57689 2020-01-13 rsc case Rctxt:
370 dbf57689 2020-01-13 rsc return fmtprint(fmt, "Rctxt");
371 257fb626 2006-06-25 devnull case Tinit:
372 257fb626 2006-06-25 devnull return fmtprint(fmt, "Tinit label='%s' winsize='%s'", m->label, m->winsize);
373 257fb626 2006-06-25 devnull case Rinit:
374 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rinit");
375 257fb626 2006-06-25 devnull case Trdsnarf:
376 257fb626 2006-06-25 devnull return fmtprint(fmt, "Trdsnarf");
377 257fb626 2006-06-25 devnull case Rrdsnarf:
378 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rrdsnarf snarf='%s'", m->snarf);
379 257fb626 2006-06-25 devnull case Twrsnarf:
380 257fb626 2006-06-25 devnull return fmtprint(fmt, "Twrsnarf snarf='%s'", m->snarf);
381 257fb626 2006-06-25 devnull case Rwrsnarf:
382 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rwrsnarf");
383 257fb626 2006-06-25 devnull case Trddraw:
384 257fb626 2006-06-25 devnull return fmtprint(fmt, "Trddraw %d", m->count);
385 257fb626 2006-06-25 devnull case Rrddraw:
386 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rrddraw %d %.*H", m->count, m->count, m->data);
387 257fb626 2006-06-25 devnull case Twrdraw:
388 257fb626 2006-06-25 devnull return fmtprint(fmt, "Twrdraw %d %.*H", m->count, m->count, m->data);
389 257fb626 2006-06-25 devnull case Rwrdraw:
390 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rwrdraw %d", m->count);
391 257fb626 2006-06-25 devnull case Ttop:
392 257fb626 2006-06-25 devnull return fmtprint(fmt, "Ttop");
393 257fb626 2006-06-25 devnull case Rtop:
394 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rtop");
395 257fb626 2006-06-25 devnull case Tresize:
396 257fb626 2006-06-25 devnull return fmtprint(fmt, "Tresize %R", m->rect);
397 257fb626 2006-06-25 devnull case Rresize:
398 257fb626 2006-06-25 devnull return fmtprint(fmt, "Rresize");
399 257fb626 2006-06-25 devnull }
400 257fb626 2006-06-25 devnull }