Blame


1 871e83a0 2005-07-13 devnull /*
2 871e83a0 2005-07-13 devnull * Original code posted to comp.sources.x
3 871e83a0 2005-07-13 devnull * Modifications by Russ Cox <rsc@swtch.com>.
4 871e83a0 2005-07-13 devnull */
5 871e83a0 2005-07-13 devnull
6 871e83a0 2005-07-13 devnull /*
7 871e83a0 2005-07-13 devnull Path: uunet!wyse!mikew
8 871e83a0 2005-07-13 devnull From: mikew@wyse.wyse.com (Mike Wexler)
9 871e83a0 2005-07-13 devnull Newsgroups: comp.sources.x
10 871e83a0 2005-07-13 devnull Subject: v02i056: subroutine to print events in human readable form, Part01/01
11 871e83a0 2005-07-13 devnull Message-ID: <1935@wyse.wyse.com>
12 871e83a0 2005-07-13 devnull Date: 22 Dec 88 19:28:25 GMT
13 871e83a0 2005-07-13 devnull Organization: Wyse Technology, San Jose
14 871e83a0 2005-07-13 devnull Lines: 1093
15 871e83a0 2005-07-13 devnull Approved: mikew@wyse.com
16 871e83a0 2005-07-13 devnull
17 871e83a0 2005-07-13 devnull Submitted-by: richsun!darkstar!ken
18 871e83a0 2005-07-13 devnull Posting-number: Volume 2, Issue 56
19 871e83a0 2005-07-13 devnull Archive-name: showevent/part01
20 871e83a0 2005-07-13 devnull
21 871e83a0 2005-07-13 devnull
22 871e83a0 2005-07-13 devnull There are times during debugging when it would be real useful to be able to
23 fa325e9b 2020-01-10 cross print the fields of an event in a human readable form. Too many times I found
24 fa325e9b 2020-01-10 cross myself scrounging around in section 8 of the Xlib manual looking for the valid
25 fa325e9b 2020-01-10 cross fields for the events I wanted to see, then adding printf's to display the
26 871e83a0 2005-07-13 devnull numeric values of the fields, and then scanning through X.h trying to decode
27 871e83a0 2005-07-13 devnull the cryptic detail and state fields. After playing with xev, I decided to
28 871e83a0 2005-07-13 devnull write a couple of standard functions that I could keep in a library and call
29 871e83a0 2005-07-13 devnull on whenever I needed a little debugging verbosity. The first function,
30 871e83a0 2005-07-13 devnull GetType(), is useful for returning the string representation of the type of
31 871e83a0 2005-07-13 devnull an event. The second function, ShowEvent(), is used to display all the fields
32 871e83a0 2005-07-13 devnull of an event in a readable format. The functions are not complicated, in fact,
33 871e83a0 2005-07-13 devnull they are mind-numbingly boring - but that's just the point nobody wants to
34 871e83a0 2005-07-13 devnull spend the time writing functions like this, they just want to have them when
35 871e83a0 2005-07-13 devnull they need them.
36 871e83a0 2005-07-13 devnull
37 871e83a0 2005-07-13 devnull A simple, sample program is included which does little else but to demonstrate
38 fa325e9b 2020-01-10 cross the use of these two functions. These functions have saved me many an hour
39 871e83a0 2005-07-13 devnull during debugging and I hope you find some benefit to these. If you have any
40 fa325e9b 2020-01-10 cross comments, suggestions, improvements, or if you find any blithering errors you
41 871e83a0 2005-07-13 devnull can get it touch with me at the following location:
42 871e83a0 2005-07-13 devnull
43 871e83a0 2005-07-13 devnull ken@richsun.UUCP
44 871e83a0 2005-07-13 devnull */
45 871e83a0 2005-07-13 devnull
46 871e83a0 2005-07-13 devnull #include <stdio.h>
47 871e83a0 2005-07-13 devnull #include <X11/Intrinsic.h>
48 871e83a0 2005-07-13 devnull #include <X11/Xproto.h>
49 871e83a0 2005-07-13 devnull #include "printevent.h"
50 871e83a0 2005-07-13 devnull
51 871e83a0 2005-07-13 devnull static char* sep = " ";
52 871e83a0 2005-07-13 devnull
53 871e83a0 2005-07-13 devnull /******************************************************************************/
54 871e83a0 2005-07-13 devnull /**** Miscellaneous routines to convert values to their string equivalents ****/
55 871e83a0 2005-07-13 devnull /******************************************************************************/
56 871e83a0 2005-07-13 devnull
57 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a boolean parameter */
58 871e83a0 2005-07-13 devnull static char*
59 871e83a0 2005-07-13 devnull TorF(int bool)
60 871e83a0 2005-07-13 devnull {
61 871e83a0 2005-07-13 devnull switch (bool) {
62 871e83a0 2005-07-13 devnull case True:
63 871e83a0 2005-07-13 devnull return ("True");
64 871e83a0 2005-07-13 devnull
65 871e83a0 2005-07-13 devnull case False:
66 871e83a0 2005-07-13 devnull return ("False");
67 871e83a0 2005-07-13 devnull
68 871e83a0 2005-07-13 devnull default:
69 871e83a0 2005-07-13 devnull return ("?");
70 871e83a0 2005-07-13 devnull }
71 871e83a0 2005-07-13 devnull }
72 871e83a0 2005-07-13 devnull
73 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a property notify state */
74 871e83a0 2005-07-13 devnull static char*
75 871e83a0 2005-07-13 devnull PropertyState(int state)
76 871e83a0 2005-07-13 devnull {
77 871e83a0 2005-07-13 devnull switch (state) {
78 871e83a0 2005-07-13 devnull case PropertyNewValue:
79 871e83a0 2005-07-13 devnull return ("PropertyNewValue");
80 871e83a0 2005-07-13 devnull
81 871e83a0 2005-07-13 devnull case PropertyDelete:
82 871e83a0 2005-07-13 devnull return ("PropertyDelete");
83 871e83a0 2005-07-13 devnull
84 871e83a0 2005-07-13 devnull default:
85 871e83a0 2005-07-13 devnull return ("?");
86 871e83a0 2005-07-13 devnull }
87 871e83a0 2005-07-13 devnull }
88 871e83a0 2005-07-13 devnull
89 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a visibility notify state */
90 871e83a0 2005-07-13 devnull static char*
91 871e83a0 2005-07-13 devnull VisibilityState(int state)
92 871e83a0 2005-07-13 devnull {
93 871e83a0 2005-07-13 devnull switch (state) {
94 871e83a0 2005-07-13 devnull case VisibilityUnobscured:
95 871e83a0 2005-07-13 devnull return ("VisibilityUnobscured");
96 871e83a0 2005-07-13 devnull
97 871e83a0 2005-07-13 devnull case VisibilityPartiallyObscured:
98 871e83a0 2005-07-13 devnull return ("VisibilityPartiallyObscured");
99 871e83a0 2005-07-13 devnull
100 871e83a0 2005-07-13 devnull case VisibilityFullyObscured:
101 871e83a0 2005-07-13 devnull return ("VisibilityFullyObscured");
102 871e83a0 2005-07-13 devnull
103 871e83a0 2005-07-13 devnull default:
104 871e83a0 2005-07-13 devnull return ("?");
105 871e83a0 2005-07-13 devnull }
106 871e83a0 2005-07-13 devnull }
107 871e83a0 2005-07-13 devnull
108 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a timestamp */
109 871e83a0 2005-07-13 devnull static char*
110 871e83a0 2005-07-13 devnull ServerTime(Time time)
111 871e83a0 2005-07-13 devnull {
112 871e83a0 2005-07-13 devnull unsigned long msec;
113 871e83a0 2005-07-13 devnull unsigned long sec;
114 871e83a0 2005-07-13 devnull unsigned long min;
115 871e83a0 2005-07-13 devnull unsigned long hr;
116 871e83a0 2005-07-13 devnull unsigned long day;
117 871e83a0 2005-07-13 devnull static char buffer[32];
118 871e83a0 2005-07-13 devnull
119 871e83a0 2005-07-13 devnull msec = time % 1000;
120 871e83a0 2005-07-13 devnull time /= 1000;
121 871e83a0 2005-07-13 devnull sec = time % 60;
122 871e83a0 2005-07-13 devnull time /= 60;
123 871e83a0 2005-07-13 devnull min = time % 60;
124 871e83a0 2005-07-13 devnull time /= 60;
125 871e83a0 2005-07-13 devnull hr = time % 24;
126 871e83a0 2005-07-13 devnull time /= 24;
127 871e83a0 2005-07-13 devnull day = time;
128 871e83a0 2005-07-13 devnull
129 871e83a0 2005-07-13 devnull if(0)
130 871e83a0 2005-07-13 devnull sprintf(buffer, "%lu day%s %02lu:%02lu:%02lu.%03lu",
131 871e83a0 2005-07-13 devnull day, day == 1 ? "" : "(s)", hr, min, sec, msec);
132 fa325e9b 2020-01-10 cross
133 871e83a0 2005-07-13 devnull sprintf(buffer, "%lud%luh%lum%lu.%03lds", day, hr, min, sec, msec);
134 871e83a0 2005-07-13 devnull return (buffer);
135 871e83a0 2005-07-13 devnull }
136 871e83a0 2005-07-13 devnull
137 871e83a0 2005-07-13 devnull /* Simple structure to ease the interpretation of masks */
138 871e83a0 2005-07-13 devnull typedef struct MaskType MaskType;
139 871e83a0 2005-07-13 devnull struct MaskType
140 871e83a0 2005-07-13 devnull {
141 871e83a0 2005-07-13 devnull unsigned int value;
142 871e83a0 2005-07-13 devnull char *string;
143 871e83a0 2005-07-13 devnull };
144 871e83a0 2005-07-13 devnull
145 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a mask of buttons and/or modifier keys */
146 871e83a0 2005-07-13 devnull static char*
147 871e83a0 2005-07-13 devnull ButtonAndOrModifierState(unsigned int state)
148 871e83a0 2005-07-13 devnull {
149 871e83a0 2005-07-13 devnull static char buffer[256];
150 871e83a0 2005-07-13 devnull static MaskType masks[] = {
151 871e83a0 2005-07-13 devnull {Button1Mask, "Button1Mask"},
152 871e83a0 2005-07-13 devnull {Button2Mask, "Button2Mask"},
153 871e83a0 2005-07-13 devnull {Button3Mask, "Button3Mask"},
154 871e83a0 2005-07-13 devnull {Button4Mask, "Button4Mask"},
155 871e83a0 2005-07-13 devnull {Button5Mask, "Button5Mask"},
156 871e83a0 2005-07-13 devnull {ShiftMask, "ShiftMask"},
157 871e83a0 2005-07-13 devnull {LockMask, "LockMask"},
158 871e83a0 2005-07-13 devnull {ControlMask, "ControlMask"},
159 871e83a0 2005-07-13 devnull {Mod1Mask, "Mod1Mask"},
160 871e83a0 2005-07-13 devnull {Mod2Mask, "Mod2Mask"},
161 871e83a0 2005-07-13 devnull {Mod3Mask, "Mod3Mask"},
162 871e83a0 2005-07-13 devnull {Mod4Mask, "Mod4Mask"},
163 871e83a0 2005-07-13 devnull {Mod5Mask, "Mod5Mask"},
164 871e83a0 2005-07-13 devnull };
165 871e83a0 2005-07-13 devnull int num_masks = sizeof(masks) / sizeof(MaskType);
166 871e83a0 2005-07-13 devnull int i;
167 871e83a0 2005-07-13 devnull Boolean first = True;
168 871e83a0 2005-07-13 devnull
169 871e83a0 2005-07-13 devnull buffer[0] = 0;
170 871e83a0 2005-07-13 devnull
171 871e83a0 2005-07-13 devnull for (i = 0; i < num_masks; i++)
172 871e83a0 2005-07-13 devnull if (state & masks[i].value)
173 871e83a0 2005-07-13 devnull if (first) {
174 871e83a0 2005-07-13 devnull first = False;
175 871e83a0 2005-07-13 devnull strcpy(buffer, masks[i].string);
176 871e83a0 2005-07-13 devnull } else {
177 871e83a0 2005-07-13 devnull strcat(buffer, " | ");
178 871e83a0 2005-07-13 devnull strcat(buffer, masks[i].string);
179 871e83a0 2005-07-13 devnull }
180 871e83a0 2005-07-13 devnull return (buffer);
181 871e83a0 2005-07-13 devnull }
182 871e83a0 2005-07-13 devnull
183 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a mask of configure window values */
184 871e83a0 2005-07-13 devnull static char*
185 871e83a0 2005-07-13 devnull ConfigureValueMask(unsigned int valuemask)
186 871e83a0 2005-07-13 devnull {
187 871e83a0 2005-07-13 devnull static char buffer[256];
188 871e83a0 2005-07-13 devnull static MaskType masks[] = {
189 871e83a0 2005-07-13 devnull {CWX, "CWX"},
190 871e83a0 2005-07-13 devnull {CWY, "CWY"},
191 871e83a0 2005-07-13 devnull {CWWidth, "CWWidth"},
192 871e83a0 2005-07-13 devnull {CWHeight, "CWHeight"},
193 871e83a0 2005-07-13 devnull {CWBorderWidth, "CWBorderWidth"},
194 871e83a0 2005-07-13 devnull {CWSibling, "CWSibling"},
195 871e83a0 2005-07-13 devnull {CWStackMode, "CWStackMode"},
196 871e83a0 2005-07-13 devnull };
197 871e83a0 2005-07-13 devnull int num_masks = sizeof(masks) / sizeof(MaskType);
198 871e83a0 2005-07-13 devnull int i;
199 871e83a0 2005-07-13 devnull Boolean first = True;
200 871e83a0 2005-07-13 devnull
201 871e83a0 2005-07-13 devnull buffer[0] = 0;
202 871e83a0 2005-07-13 devnull
203 871e83a0 2005-07-13 devnull for (i = 0; i < num_masks; i++)
204 871e83a0 2005-07-13 devnull if (valuemask & masks[i].value)
205 871e83a0 2005-07-13 devnull if (first) {
206 871e83a0 2005-07-13 devnull first = False;
207 871e83a0 2005-07-13 devnull strcpy(buffer, masks[i].string);
208 871e83a0 2005-07-13 devnull } else {
209 871e83a0 2005-07-13 devnull strcat(buffer, " | ");
210 871e83a0 2005-07-13 devnull strcat(buffer, masks[i].string);
211 871e83a0 2005-07-13 devnull }
212 871e83a0 2005-07-13 devnull
213 871e83a0 2005-07-13 devnull return (buffer);
214 871e83a0 2005-07-13 devnull }
215 871e83a0 2005-07-13 devnull
216 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a motion hint */
217 871e83a0 2005-07-13 devnull static char*
218 871e83a0 2005-07-13 devnull IsHint(char is_hint)
219 871e83a0 2005-07-13 devnull {
220 871e83a0 2005-07-13 devnull switch (is_hint) {
221 871e83a0 2005-07-13 devnull case NotifyNormal:
222 871e83a0 2005-07-13 devnull return ("NotifyNormal");
223 871e83a0 2005-07-13 devnull
224 871e83a0 2005-07-13 devnull case NotifyHint:
225 871e83a0 2005-07-13 devnull return ("NotifyHint");
226 871e83a0 2005-07-13 devnull
227 871e83a0 2005-07-13 devnull default:
228 871e83a0 2005-07-13 devnull return ("?");
229 871e83a0 2005-07-13 devnull }
230 871e83a0 2005-07-13 devnull }
231 871e83a0 2005-07-13 devnull
232 871e83a0 2005-07-13 devnull /* Returns the string equivalent of an id or the value "None" */
233 871e83a0 2005-07-13 devnull static char*
234 871e83a0 2005-07-13 devnull MaybeNone(int value)
235 871e83a0 2005-07-13 devnull {
236 871e83a0 2005-07-13 devnull static char buffer[16];
237 871e83a0 2005-07-13 devnull
238 871e83a0 2005-07-13 devnull if (value == None)
239 871e83a0 2005-07-13 devnull return ("None");
240 871e83a0 2005-07-13 devnull else {
241 871e83a0 2005-07-13 devnull sprintf(buffer, "0x%x", value);
242 871e83a0 2005-07-13 devnull return (buffer);
243 871e83a0 2005-07-13 devnull }
244 871e83a0 2005-07-13 devnull }
245 871e83a0 2005-07-13 devnull
246 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a colormap state */
247 871e83a0 2005-07-13 devnull static char*
248 871e83a0 2005-07-13 devnull ColormapState(int state)
249 871e83a0 2005-07-13 devnull {
250 871e83a0 2005-07-13 devnull switch (state) {
251 871e83a0 2005-07-13 devnull case ColormapInstalled:
252 871e83a0 2005-07-13 devnull return ("ColormapInstalled");
253 871e83a0 2005-07-13 devnull
254 871e83a0 2005-07-13 devnull case ColormapUninstalled:
255 871e83a0 2005-07-13 devnull return ("ColormapUninstalled");
256 871e83a0 2005-07-13 devnull
257 871e83a0 2005-07-13 devnull default:
258 871e83a0 2005-07-13 devnull return ("?");
259 871e83a0 2005-07-13 devnull }
260 871e83a0 2005-07-13 devnull }
261 871e83a0 2005-07-13 devnull
262 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a crossing detail */
263 871e83a0 2005-07-13 devnull static char*
264 871e83a0 2005-07-13 devnull CrossingDetail(int detail)
265 871e83a0 2005-07-13 devnull {
266 871e83a0 2005-07-13 devnull switch (detail) {
267 871e83a0 2005-07-13 devnull case NotifyAncestor:
268 871e83a0 2005-07-13 devnull return ("NotifyAncestor");
269 871e83a0 2005-07-13 devnull
270 871e83a0 2005-07-13 devnull case NotifyInferior:
271 871e83a0 2005-07-13 devnull return ("NotifyInferior");
272 871e83a0 2005-07-13 devnull
273 871e83a0 2005-07-13 devnull case NotifyVirtual:
274 871e83a0 2005-07-13 devnull return ("NotifyVirtual");
275 871e83a0 2005-07-13 devnull
276 871e83a0 2005-07-13 devnull case NotifyNonlinear:
277 871e83a0 2005-07-13 devnull return ("NotifyNonlinear");
278 871e83a0 2005-07-13 devnull
279 871e83a0 2005-07-13 devnull case NotifyNonlinearVirtual:
280 871e83a0 2005-07-13 devnull return ("NotifyNonlinearVirtual");
281 871e83a0 2005-07-13 devnull
282 871e83a0 2005-07-13 devnull default:
283 871e83a0 2005-07-13 devnull return ("?");
284 871e83a0 2005-07-13 devnull }
285 871e83a0 2005-07-13 devnull }
286 871e83a0 2005-07-13 devnull
287 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a focus change detail */
288 871e83a0 2005-07-13 devnull static char*
289 871e83a0 2005-07-13 devnull FocusChangeDetail(int detail)
290 871e83a0 2005-07-13 devnull {
291 871e83a0 2005-07-13 devnull switch (detail) {
292 871e83a0 2005-07-13 devnull case NotifyAncestor:
293 871e83a0 2005-07-13 devnull return ("NotifyAncestor");
294 871e83a0 2005-07-13 devnull
295 871e83a0 2005-07-13 devnull case NotifyInferior:
296 871e83a0 2005-07-13 devnull return ("NotifyInferior");
297 871e83a0 2005-07-13 devnull
298 871e83a0 2005-07-13 devnull case NotifyVirtual:
299 871e83a0 2005-07-13 devnull return ("NotifyVirtual");
300 871e83a0 2005-07-13 devnull
301 871e83a0 2005-07-13 devnull case NotifyNonlinear:
302 871e83a0 2005-07-13 devnull return ("NotifyNonlinear");
303 871e83a0 2005-07-13 devnull
304 871e83a0 2005-07-13 devnull case NotifyNonlinearVirtual:
305 871e83a0 2005-07-13 devnull return ("NotifyNonlinearVirtual");
306 871e83a0 2005-07-13 devnull
307 871e83a0 2005-07-13 devnull case NotifyPointer:
308 871e83a0 2005-07-13 devnull return ("NotifyPointer");
309 871e83a0 2005-07-13 devnull
310 871e83a0 2005-07-13 devnull case NotifyPointerRoot:
311 871e83a0 2005-07-13 devnull return ("NotifyPointerRoot");
312 871e83a0 2005-07-13 devnull
313 871e83a0 2005-07-13 devnull case NotifyDetailNone:
314 871e83a0 2005-07-13 devnull return ("NotifyDetailNone");
315 871e83a0 2005-07-13 devnull
316 871e83a0 2005-07-13 devnull default:
317 871e83a0 2005-07-13 devnull return ("?");
318 871e83a0 2005-07-13 devnull }
319 871e83a0 2005-07-13 devnull }
320 871e83a0 2005-07-13 devnull
321 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a configure detail */
322 871e83a0 2005-07-13 devnull static char*
323 871e83a0 2005-07-13 devnull ConfigureDetail(int detail)
324 871e83a0 2005-07-13 devnull {
325 871e83a0 2005-07-13 devnull switch (detail) {
326 871e83a0 2005-07-13 devnull case Above:
327 871e83a0 2005-07-13 devnull return ("Above");
328 871e83a0 2005-07-13 devnull
329 871e83a0 2005-07-13 devnull case Below:
330 871e83a0 2005-07-13 devnull return ("Below");
331 871e83a0 2005-07-13 devnull
332 871e83a0 2005-07-13 devnull case TopIf:
333 871e83a0 2005-07-13 devnull return ("TopIf");
334 871e83a0 2005-07-13 devnull
335 871e83a0 2005-07-13 devnull case BottomIf:
336 871e83a0 2005-07-13 devnull return ("BottomIf");
337 871e83a0 2005-07-13 devnull
338 871e83a0 2005-07-13 devnull case Opposite:
339 871e83a0 2005-07-13 devnull return ("Opposite");
340 871e83a0 2005-07-13 devnull
341 871e83a0 2005-07-13 devnull default:
342 871e83a0 2005-07-13 devnull return ("?");
343 871e83a0 2005-07-13 devnull }
344 871e83a0 2005-07-13 devnull }
345 871e83a0 2005-07-13 devnull
346 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a grab mode */
347 871e83a0 2005-07-13 devnull static char*
348 871e83a0 2005-07-13 devnull GrabMode(int mode)
349 871e83a0 2005-07-13 devnull {
350 871e83a0 2005-07-13 devnull switch (mode) {
351 871e83a0 2005-07-13 devnull case NotifyNormal:
352 871e83a0 2005-07-13 devnull return ("NotifyNormal");
353 871e83a0 2005-07-13 devnull
354 871e83a0 2005-07-13 devnull case NotifyGrab:
355 871e83a0 2005-07-13 devnull return ("NotifyGrab");
356 871e83a0 2005-07-13 devnull
357 871e83a0 2005-07-13 devnull case NotifyUngrab:
358 871e83a0 2005-07-13 devnull return ("NotifyUngrab");
359 871e83a0 2005-07-13 devnull
360 871e83a0 2005-07-13 devnull case NotifyWhileGrabbed:
361 871e83a0 2005-07-13 devnull return ("NotifyWhileGrabbed");
362 871e83a0 2005-07-13 devnull
363 871e83a0 2005-07-13 devnull default:
364 871e83a0 2005-07-13 devnull return ("?");
365 871e83a0 2005-07-13 devnull }
366 871e83a0 2005-07-13 devnull }
367 871e83a0 2005-07-13 devnull
368 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a mapping request */
369 871e83a0 2005-07-13 devnull static char*
370 871e83a0 2005-07-13 devnull MappingRequest(int request)
371 871e83a0 2005-07-13 devnull {
372 871e83a0 2005-07-13 devnull switch (request) {
373 871e83a0 2005-07-13 devnull case MappingModifier:
374 871e83a0 2005-07-13 devnull return ("MappingModifier");
375 871e83a0 2005-07-13 devnull
376 871e83a0 2005-07-13 devnull case MappingKeyboard:
377 871e83a0 2005-07-13 devnull return ("MappingKeyboard");
378 871e83a0 2005-07-13 devnull
379 871e83a0 2005-07-13 devnull case MappingPointer:
380 871e83a0 2005-07-13 devnull return ("MappingPointer");
381 871e83a0 2005-07-13 devnull
382 871e83a0 2005-07-13 devnull default:
383 871e83a0 2005-07-13 devnull return ("?");
384 871e83a0 2005-07-13 devnull }
385 871e83a0 2005-07-13 devnull }
386 871e83a0 2005-07-13 devnull
387 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a stacking order place */
388 871e83a0 2005-07-13 devnull static char*
389 871e83a0 2005-07-13 devnull Place(int place)
390 871e83a0 2005-07-13 devnull {
391 871e83a0 2005-07-13 devnull switch (place) {
392 871e83a0 2005-07-13 devnull case PlaceOnTop:
393 871e83a0 2005-07-13 devnull return ("PlaceOnTop");
394 871e83a0 2005-07-13 devnull
395 871e83a0 2005-07-13 devnull case PlaceOnBottom:
396 871e83a0 2005-07-13 devnull return ("PlaceOnBottom");
397 871e83a0 2005-07-13 devnull
398 871e83a0 2005-07-13 devnull default:
399 871e83a0 2005-07-13 devnull return ("?");
400 871e83a0 2005-07-13 devnull }
401 871e83a0 2005-07-13 devnull }
402 871e83a0 2005-07-13 devnull
403 871e83a0 2005-07-13 devnull /* Returns the string equivalent of a major code */
404 871e83a0 2005-07-13 devnull static char*
405 871e83a0 2005-07-13 devnull MajorCode(int code)
406 871e83a0 2005-07-13 devnull {
407 871e83a0 2005-07-13 devnull static char buffer[32];
408 871e83a0 2005-07-13 devnull
409 871e83a0 2005-07-13 devnull switch (code) {
410 871e83a0 2005-07-13 devnull case X_CopyArea:
411 871e83a0 2005-07-13 devnull return ("X_CopyArea");
412 871e83a0 2005-07-13 devnull
413 871e83a0 2005-07-13 devnull case X_CopyPlane:
414 871e83a0 2005-07-13 devnull return ("X_CopyPlane");
415 871e83a0 2005-07-13 devnull
416 871e83a0 2005-07-13 devnull default:
417 871e83a0 2005-07-13 devnull sprintf(buffer, "0x%x", code);
418 871e83a0 2005-07-13 devnull return (buffer);
419 871e83a0 2005-07-13 devnull }
420 871e83a0 2005-07-13 devnull }
421 871e83a0 2005-07-13 devnull
422 871e83a0 2005-07-13 devnull /* Returns the string equivalent the keycode contained in the key event */
423 871e83a0 2005-07-13 devnull static char*
424 871e83a0 2005-07-13 devnull Keycode(XKeyEvent *ev)
425 871e83a0 2005-07-13 devnull {
426 871e83a0 2005-07-13 devnull static char buffer[256];
427 871e83a0 2005-07-13 devnull KeySym keysym_str;
428 871e83a0 2005-07-13 devnull char *keysym_name;
429 871e83a0 2005-07-13 devnull char string[256];
430 871e83a0 2005-07-13 devnull
431 871e83a0 2005-07-13 devnull XLookupString(ev, string, 64, &keysym_str, NULL);
432 871e83a0 2005-07-13 devnull
433 871e83a0 2005-07-13 devnull if (keysym_str == NoSymbol)
434 871e83a0 2005-07-13 devnull keysym_name = "NoSymbol";
435 871e83a0 2005-07-13 devnull else if (!(keysym_name = XKeysymToString(keysym_str)))
436 871e83a0 2005-07-13 devnull keysym_name = "(no name)";
437 871e83a0 2005-07-13 devnull sprintf(buffer, "%u (keysym 0x%x \"%s\")",
438 871e83a0 2005-07-13 devnull (int)ev->keycode, (int)keysym_str, keysym_name);
439 871e83a0 2005-07-13 devnull return (buffer);
440 871e83a0 2005-07-13 devnull }
441 871e83a0 2005-07-13 devnull
442 871e83a0 2005-07-13 devnull /* Returns the string equivalent of an atom or "None"*/
443 871e83a0 2005-07-13 devnull static char*
444 871e83a0 2005-07-13 devnull AtomName(Display *dpy, Atom atom)
445 871e83a0 2005-07-13 devnull {
446 871e83a0 2005-07-13 devnull static char buffer[256];
447 871e83a0 2005-07-13 devnull char *atom_name;
448 871e83a0 2005-07-13 devnull
449 871e83a0 2005-07-13 devnull if (atom == None)
450 871e83a0 2005-07-13 devnull return ("None");
451 871e83a0 2005-07-13 devnull
452 871e83a0 2005-07-13 devnull atom_name = XGetAtomName(dpy, atom);
453 871e83a0 2005-07-13 devnull strncpy(buffer, atom_name, 256);
454 871e83a0 2005-07-13 devnull XFree(atom_name);
455 871e83a0 2005-07-13 devnull return (buffer);
456 871e83a0 2005-07-13 devnull }
457 871e83a0 2005-07-13 devnull
458 871e83a0 2005-07-13 devnull /******************************************************************************/
459 871e83a0 2005-07-13 devnull /**** Routines to print out readable values for the field of various events ***/
460 871e83a0 2005-07-13 devnull /******************************************************************************/
461 871e83a0 2005-07-13 devnull
462 871e83a0 2005-07-13 devnull static void
463 871e83a0 2005-07-13 devnull VerbMotion(XMotionEvent *ev)
464 871e83a0 2005-07-13 devnull {
465 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
466 871e83a0 2005-07-13 devnull printf("root=0x%x%s", (int)ev->root, sep);
467 871e83a0 2005-07-13 devnull printf("subwindow=0x%x%s", (int)ev->subwindow, sep);
468 871e83a0 2005-07-13 devnull printf("time=%s%s", ServerTime(ev->time), sep);
469 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
470 871e83a0 2005-07-13 devnull printf("x_root=%d y_root=%d%s", ev->x_root, ev->y_root, sep);
471 871e83a0 2005-07-13 devnull printf("state=%s%s", ButtonAndOrModifierState(ev->state), sep);
472 871e83a0 2005-07-13 devnull printf("is_hint=%s%s", IsHint(ev->is_hint), sep);
473 871e83a0 2005-07-13 devnull printf("same_screen=%s\n", TorF(ev->same_screen));
474 871e83a0 2005-07-13 devnull }
475 871e83a0 2005-07-13 devnull
476 871e83a0 2005-07-13 devnull static void
477 871e83a0 2005-07-13 devnull VerbButton(XButtonEvent *ev)
478 871e83a0 2005-07-13 devnull {
479 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
480 871e83a0 2005-07-13 devnull printf("root=0x%x%s", (int)ev->root, sep);
481 871e83a0 2005-07-13 devnull printf("subwindow=0x%x%s", (int)ev->subwindow, sep);
482 871e83a0 2005-07-13 devnull printf("time=%s%s", ServerTime(ev->time), sep);
483 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
484 871e83a0 2005-07-13 devnull printf("x_root=%d y_root=%d%s", ev->x_root, ev->y_root, sep);
485 871e83a0 2005-07-13 devnull printf("state=%s%s", ButtonAndOrModifierState(ev->state), sep);
486 871e83a0 2005-07-13 devnull printf("button=%s%s", ButtonAndOrModifierState(ev->button), sep);
487 871e83a0 2005-07-13 devnull printf("same_screen=%s\n", TorF(ev->same_screen));
488 871e83a0 2005-07-13 devnull }
489 871e83a0 2005-07-13 devnull
490 871e83a0 2005-07-13 devnull static void
491 871e83a0 2005-07-13 devnull VerbColormap(XColormapEvent *ev)
492 871e83a0 2005-07-13 devnull {
493 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
494 871e83a0 2005-07-13 devnull printf("colormap=%s%s", MaybeNone(ev->colormap), sep);
495 871e83a0 2005-07-13 devnull printf("new=%s%s", TorF(ev->new), sep);
496 871e83a0 2005-07-13 devnull printf("state=%s\n", ColormapState(ev->state));
497 871e83a0 2005-07-13 devnull }
498 871e83a0 2005-07-13 devnull
499 871e83a0 2005-07-13 devnull static void
500 871e83a0 2005-07-13 devnull VerbCrossing(XCrossingEvent *ev)
501 871e83a0 2005-07-13 devnull {
502 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
503 871e83a0 2005-07-13 devnull printf("root=0x%x%s", (int)ev->root, sep);
504 871e83a0 2005-07-13 devnull printf("subwindow=0x%x%s", (int)ev->subwindow, sep);
505 871e83a0 2005-07-13 devnull printf("time=%s%s", ServerTime(ev->time), sep);
506 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
507 871e83a0 2005-07-13 devnull printf("x_root=%d y_root=%d%s", ev->x_root, ev->y_root, sep);
508 871e83a0 2005-07-13 devnull printf("mode=%s%s", GrabMode(ev->mode), sep);
509 871e83a0 2005-07-13 devnull printf("detail=%s%s", CrossingDetail(ev->detail), sep);
510 871e83a0 2005-07-13 devnull printf("same_screen=%s%s", TorF(ev->same_screen), sep);
511 871e83a0 2005-07-13 devnull printf("focus=%s%s", TorF(ev->focus), sep);
512 871e83a0 2005-07-13 devnull printf("state=%s\n", ButtonAndOrModifierState(ev->state));
513 871e83a0 2005-07-13 devnull }
514 871e83a0 2005-07-13 devnull
515 871e83a0 2005-07-13 devnull static void
516 871e83a0 2005-07-13 devnull VerbExpose(XExposeEvent *ev)
517 871e83a0 2005-07-13 devnull {
518 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
519 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
520 871e83a0 2005-07-13 devnull printf("width=%d height=%d%s", ev->width, ev->height, sep);
521 871e83a0 2005-07-13 devnull printf("count=%d\n", ev->count);
522 871e83a0 2005-07-13 devnull }
523 871e83a0 2005-07-13 devnull
524 871e83a0 2005-07-13 devnull static void
525 871e83a0 2005-07-13 devnull VerbGraphicsExpose(XGraphicsExposeEvent *ev)
526 871e83a0 2005-07-13 devnull {
527 871e83a0 2005-07-13 devnull printf("drawable=0x%x%s", (int)ev->drawable, sep);
528 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
529 871e83a0 2005-07-13 devnull printf("width=%d height=%d%s", ev->width, ev->height, sep);
530 871e83a0 2005-07-13 devnull printf("major_code=%s%s", MajorCode(ev->major_code), sep);
531 871e83a0 2005-07-13 devnull printf("minor_code=%d\n", ev->minor_code);
532 871e83a0 2005-07-13 devnull }
533 871e83a0 2005-07-13 devnull
534 871e83a0 2005-07-13 devnull static void
535 871e83a0 2005-07-13 devnull VerbNoExpose(XNoExposeEvent *ev)
536 871e83a0 2005-07-13 devnull {
537 871e83a0 2005-07-13 devnull printf("drawable=0x%x%s", (int)ev->drawable, sep);
538 871e83a0 2005-07-13 devnull printf("major_code=%s%s", MajorCode(ev->major_code), sep);
539 871e83a0 2005-07-13 devnull printf("minor_code=%d\n", ev->minor_code);
540 871e83a0 2005-07-13 devnull }
541 871e83a0 2005-07-13 devnull
542 871e83a0 2005-07-13 devnull static void
543 871e83a0 2005-07-13 devnull VerbFocus(XFocusChangeEvent *ev)
544 871e83a0 2005-07-13 devnull {
545 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
546 871e83a0 2005-07-13 devnull printf("mode=%s%s", GrabMode(ev->mode), sep);
547 871e83a0 2005-07-13 devnull printf("detail=%s\n", FocusChangeDetail(ev->detail));
548 871e83a0 2005-07-13 devnull }
549 871e83a0 2005-07-13 devnull
550 871e83a0 2005-07-13 devnull static void
551 871e83a0 2005-07-13 devnull VerbKeymap(XKeymapEvent *ev)
552 871e83a0 2005-07-13 devnull {
553 871e83a0 2005-07-13 devnull int i;
554 871e83a0 2005-07-13 devnull
555 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
556 871e83a0 2005-07-13 devnull printf("key_vector=");
557 871e83a0 2005-07-13 devnull for (i = 0; i < 32; i++)
558 871e83a0 2005-07-13 devnull printf("%02x", ev->key_vector[i]);
559 871e83a0 2005-07-13 devnull printf("\n");
560 871e83a0 2005-07-13 devnull }
561 871e83a0 2005-07-13 devnull
562 871e83a0 2005-07-13 devnull static void
563 871e83a0 2005-07-13 devnull VerbKey(XKeyEvent *ev)
564 871e83a0 2005-07-13 devnull {
565 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
566 871e83a0 2005-07-13 devnull printf("root=0x%x%s", (int)ev->root, sep);
567 871e83a0 2005-07-13 devnull if(ev->subwindow)
568 871e83a0 2005-07-13 devnull printf("subwindow=0x%x%s", (int)ev->subwindow, sep);
569 871e83a0 2005-07-13 devnull printf("time=%s%s", ServerTime(ev->time), sep);
570 871e83a0 2005-07-13 devnull printf("[%d,%d]%s", ev->x, ev->y, sep);
571 871e83a0 2005-07-13 devnull printf("root=[%d,%d]%s", ev->x_root, ev->y_root, sep);
572 871e83a0 2005-07-13 devnull if(ev->state)
573 871e83a0 2005-07-13 devnull printf("state=%s%s", ButtonAndOrModifierState(ev->state), sep);
574 871e83a0 2005-07-13 devnull printf("keycode=%s%s", Keycode(ev), sep);
575 871e83a0 2005-07-13 devnull if(!ev->same_screen)
576 871e83a0 2005-07-13 devnull printf("!same_screen", TorF(ev->same_screen));
577 871e83a0 2005-07-13 devnull printf("\n");
578 871e83a0 2005-07-13 devnull return;
579 871e83a0 2005-07-13 devnull
580 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
581 871e83a0 2005-07-13 devnull printf("root=0x%x%s", (int)ev->root, sep);
582 871e83a0 2005-07-13 devnull printf("subwindow=0x%x%s", (int)ev->subwindow, sep);
583 871e83a0 2005-07-13 devnull printf("time=%s%s", ServerTime(ev->time), sep);
584 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
585 871e83a0 2005-07-13 devnull printf("x_root=%d y_root=%d%s", ev->x_root, ev->y_root, sep);
586 871e83a0 2005-07-13 devnull printf("state=%s%s", ButtonAndOrModifierState(ev->state), sep);
587 871e83a0 2005-07-13 devnull printf("keycode=%s%s", Keycode(ev), sep);
588 871e83a0 2005-07-13 devnull printf("same_screen=%s\n", TorF(ev->same_screen));
589 871e83a0 2005-07-13 devnull }
590 871e83a0 2005-07-13 devnull
591 871e83a0 2005-07-13 devnull static void
592 871e83a0 2005-07-13 devnull VerbProperty(XPropertyEvent *ev)
593 871e83a0 2005-07-13 devnull {
594 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
595 871e83a0 2005-07-13 devnull printf("atom=%s%s", AtomName(ev->display, ev->atom), sep);
596 871e83a0 2005-07-13 devnull printf("time=%s%s", ServerTime(ev->time), sep);
597 871e83a0 2005-07-13 devnull printf("state=%s\n", PropertyState(ev->state));
598 871e83a0 2005-07-13 devnull }
599 871e83a0 2005-07-13 devnull
600 871e83a0 2005-07-13 devnull static void
601 871e83a0 2005-07-13 devnull VerbResizeRequest(XResizeRequestEvent *ev)
602 871e83a0 2005-07-13 devnull {
603 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
604 871e83a0 2005-07-13 devnull printf("width=%d height=%d\n", ev->width, ev->height);
605 871e83a0 2005-07-13 devnull }
606 871e83a0 2005-07-13 devnull
607 871e83a0 2005-07-13 devnull static void
608 871e83a0 2005-07-13 devnull VerbCirculate(XCirculateEvent *ev)
609 871e83a0 2005-07-13 devnull {
610 871e83a0 2005-07-13 devnull printf("event=0x%x%s", (int)ev->event, sep);
611 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
612 871e83a0 2005-07-13 devnull printf("place=%s\n", Place(ev->place));
613 871e83a0 2005-07-13 devnull }
614 871e83a0 2005-07-13 devnull
615 871e83a0 2005-07-13 devnull static void
616 871e83a0 2005-07-13 devnull VerbConfigure(XConfigureEvent *ev)
617 871e83a0 2005-07-13 devnull {
618 871e83a0 2005-07-13 devnull printf("event=0x%x%s", (int)ev->event, sep);
619 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
620 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
621 871e83a0 2005-07-13 devnull printf("width=%d height=%d%s", ev->width, ev->height, sep);
622 871e83a0 2005-07-13 devnull printf("border_width=%d%s", ev->border_width, sep);
623 871e83a0 2005-07-13 devnull printf("above=%s%s", MaybeNone(ev->above), sep);
624 871e83a0 2005-07-13 devnull printf("override_redirect=%s\n", TorF(ev->override_redirect));
625 871e83a0 2005-07-13 devnull }
626 871e83a0 2005-07-13 devnull
627 871e83a0 2005-07-13 devnull static void
628 871e83a0 2005-07-13 devnull VerbCreateWindow(XCreateWindowEvent *ev)
629 871e83a0 2005-07-13 devnull {
630 871e83a0 2005-07-13 devnull printf("parent=0x%x%s", (int)ev->parent, sep);
631 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
632 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
633 871e83a0 2005-07-13 devnull printf("width=%d height=%d%s", ev->width, ev->height, sep);
634 871e83a0 2005-07-13 devnull printf("border_width=%d%s", ev->border_width, sep);
635 871e83a0 2005-07-13 devnull printf("override_redirect=%s\n", TorF(ev->override_redirect));
636 871e83a0 2005-07-13 devnull }
637 871e83a0 2005-07-13 devnull
638 871e83a0 2005-07-13 devnull static void
639 871e83a0 2005-07-13 devnull VerbDestroyWindow(XDestroyWindowEvent *ev)
640 871e83a0 2005-07-13 devnull {
641 871e83a0 2005-07-13 devnull printf("event=0x%x%s", (int)ev->event, sep);
642 871e83a0 2005-07-13 devnull printf("window=0x%x\n", (int)ev->window);
643 871e83a0 2005-07-13 devnull }
644 871e83a0 2005-07-13 devnull
645 871e83a0 2005-07-13 devnull static void
646 871e83a0 2005-07-13 devnull VerbGravity(XGravityEvent *ev)
647 871e83a0 2005-07-13 devnull {
648 871e83a0 2005-07-13 devnull printf("event=0x%x%s", (int)ev->event, sep);
649 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
650 871e83a0 2005-07-13 devnull printf("x=%d y=%d\n", ev->x, ev->y);
651 871e83a0 2005-07-13 devnull }
652 871e83a0 2005-07-13 devnull
653 871e83a0 2005-07-13 devnull static void
654 871e83a0 2005-07-13 devnull VerbMap(XMapEvent *ev)
655 871e83a0 2005-07-13 devnull {
656 871e83a0 2005-07-13 devnull printf("event=0x%x%s", (int)ev->event, sep);
657 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
658 871e83a0 2005-07-13 devnull printf("override_redirect=%s\n", TorF(ev->override_redirect));
659 871e83a0 2005-07-13 devnull }
660 871e83a0 2005-07-13 devnull
661 871e83a0 2005-07-13 devnull static void
662 871e83a0 2005-07-13 devnull VerbReparent(XReparentEvent *ev)
663 871e83a0 2005-07-13 devnull {
664 871e83a0 2005-07-13 devnull printf("event=0x%x%s", (int)ev->event, sep);
665 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
666 871e83a0 2005-07-13 devnull printf("parent=0x%x%s", (int)ev->parent, sep);
667 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
668 871e83a0 2005-07-13 devnull printf("override_redirect=%s\n", TorF(ev->override_redirect));
669 871e83a0 2005-07-13 devnull }
670 871e83a0 2005-07-13 devnull
671 871e83a0 2005-07-13 devnull static void
672 871e83a0 2005-07-13 devnull VerbUnmap(XUnmapEvent *ev)
673 871e83a0 2005-07-13 devnull {
674 871e83a0 2005-07-13 devnull printf("event=0x%x%s", (int)ev->event, sep);
675 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
676 871e83a0 2005-07-13 devnull printf("from_configure=%s\n", TorF(ev->from_configure));
677 871e83a0 2005-07-13 devnull }
678 871e83a0 2005-07-13 devnull
679 871e83a0 2005-07-13 devnull static void
680 871e83a0 2005-07-13 devnull VerbCirculateRequest(XCirculateRequestEvent *ev)
681 871e83a0 2005-07-13 devnull {
682 871e83a0 2005-07-13 devnull printf("parent=0x%x%s", (int)ev->parent, sep);
683 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
684 871e83a0 2005-07-13 devnull printf("place=%s\n", Place(ev->place));
685 871e83a0 2005-07-13 devnull }
686 871e83a0 2005-07-13 devnull
687 871e83a0 2005-07-13 devnull static void
688 871e83a0 2005-07-13 devnull VerbConfigureRequest(XConfigureRequestEvent *ev)
689 871e83a0 2005-07-13 devnull {
690 871e83a0 2005-07-13 devnull printf("parent=0x%x%s", (int)ev->parent, sep);
691 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
692 871e83a0 2005-07-13 devnull printf("x=%d y=%d%s", ev->x, ev->y, sep);
693 871e83a0 2005-07-13 devnull printf("width=%d height=%d%s", ev->width, ev->height, sep);
694 871e83a0 2005-07-13 devnull printf("border_width=%d%s", ev->border_width, sep);
695 871e83a0 2005-07-13 devnull printf("above=%s%s", MaybeNone(ev->above), sep);
696 871e83a0 2005-07-13 devnull printf("detail=%s%s", ConfigureDetail(ev->detail), sep);
697 871e83a0 2005-07-13 devnull printf("value_mask=%s\n", ConfigureValueMask(ev->value_mask));
698 871e83a0 2005-07-13 devnull }
699 871e83a0 2005-07-13 devnull
700 871e83a0 2005-07-13 devnull static void
701 871e83a0 2005-07-13 devnull VerbMapRequest(XMapRequestEvent *ev)
702 871e83a0 2005-07-13 devnull {
703 871e83a0 2005-07-13 devnull printf("parent=0x%x%s", (int)ev->parent, sep);
704 871e83a0 2005-07-13 devnull printf("window=0x%x\n", (int)ev->window);
705 871e83a0 2005-07-13 devnull }
706 871e83a0 2005-07-13 devnull
707 871e83a0 2005-07-13 devnull static void
708 871e83a0 2005-07-13 devnull VerbClient(XClientMessageEvent *ev)
709 871e83a0 2005-07-13 devnull {
710 871e83a0 2005-07-13 devnull int i;
711 871e83a0 2005-07-13 devnull
712 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
713 871e83a0 2005-07-13 devnull printf("message_type=%s%s", AtomName(ev->display, ev->message_type), sep);
714 871e83a0 2005-07-13 devnull printf("format=%d\n", ev->format);
715 871e83a0 2005-07-13 devnull printf("data (shown as longs)=");
716 871e83a0 2005-07-13 devnull for (i = 0; i < 5; i++)
717 871e83a0 2005-07-13 devnull printf(" 0x%08lx", ev->data.l[i]);
718 871e83a0 2005-07-13 devnull printf("\n");
719 871e83a0 2005-07-13 devnull }
720 871e83a0 2005-07-13 devnull
721 871e83a0 2005-07-13 devnull static void
722 871e83a0 2005-07-13 devnull VerbMapping(XMappingEvent *ev)
723 871e83a0 2005-07-13 devnull {
724 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
725 871e83a0 2005-07-13 devnull printf("request=%s%s", MappingRequest(ev->request), sep);
726 871e83a0 2005-07-13 devnull printf("first_keycode=0x%x%s", ev->first_keycode, sep);
727 871e83a0 2005-07-13 devnull printf("count=0x%x\n", ev->count);
728 871e83a0 2005-07-13 devnull }
729 871e83a0 2005-07-13 devnull
730 871e83a0 2005-07-13 devnull static void
731 871e83a0 2005-07-13 devnull VerbSelectionClear(XSelectionClearEvent *ev)
732 871e83a0 2005-07-13 devnull {
733 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
734 871e83a0 2005-07-13 devnull printf("selection=%s%s", AtomName(ev->display, ev->selection), sep);
735 871e83a0 2005-07-13 devnull printf("time=%s\n", ServerTime(ev->time));
736 871e83a0 2005-07-13 devnull }
737 871e83a0 2005-07-13 devnull
738 871e83a0 2005-07-13 devnull static void
739 871e83a0 2005-07-13 devnull VerbSelection(XSelectionEvent *ev)
740 871e83a0 2005-07-13 devnull {
741 871e83a0 2005-07-13 devnull printf("requestor=0x%x%s", (int)ev->requestor, sep);
742 871e83a0 2005-07-13 devnull printf("selection=%s%s", AtomName(ev->display, ev->selection), sep);
743 871e83a0 2005-07-13 devnull printf("target=%s%s", AtomName(ev->display, ev->target), sep);
744 871e83a0 2005-07-13 devnull printf("property=%s%s", AtomName(ev->display, ev->property), sep);
745 871e83a0 2005-07-13 devnull printf("time=%s\n", ServerTime(ev->time));
746 871e83a0 2005-07-13 devnull }
747 871e83a0 2005-07-13 devnull
748 871e83a0 2005-07-13 devnull static void
749 871e83a0 2005-07-13 devnull VerbSelectionRequest(XSelectionRequestEvent *ev)
750 871e83a0 2005-07-13 devnull {
751 871e83a0 2005-07-13 devnull printf("owner=0x%x%s", (int)ev->owner, sep);
752 871e83a0 2005-07-13 devnull printf("requestor=0x%x%s", (int)ev->requestor, sep);
753 871e83a0 2005-07-13 devnull printf("selection=%s%s", AtomName(ev->display, ev->selection), sep);
754 871e83a0 2005-07-13 devnull printf("target=%s%s", AtomName(ev->display, ev->target), sep);
755 871e83a0 2005-07-13 devnull printf("property=%s%s", AtomName(ev->display, ev->property), sep);
756 871e83a0 2005-07-13 devnull printf("time=%s\n", ServerTime(ev->time));
757 871e83a0 2005-07-13 devnull }
758 871e83a0 2005-07-13 devnull
759 871e83a0 2005-07-13 devnull static void
760 871e83a0 2005-07-13 devnull VerbVisibility(XVisibilityEvent *ev)
761 871e83a0 2005-07-13 devnull {
762 871e83a0 2005-07-13 devnull printf("window=0x%x%s", (int)ev->window, sep);
763 871e83a0 2005-07-13 devnull printf("state=%s\n", VisibilityState(ev->state));
764 871e83a0 2005-07-13 devnull }
765 871e83a0 2005-07-13 devnull
766 871e83a0 2005-07-13 devnull /******************************************************************************/
767 871e83a0 2005-07-13 devnull /************ Return the string representation for type of an event ***********/
768 871e83a0 2005-07-13 devnull /******************************************************************************/
769 871e83a0 2005-07-13 devnull
770 871e83a0 2005-07-13 devnull char *eventtype(XEvent *ev)
771 871e83a0 2005-07-13 devnull {
772 871e83a0 2005-07-13 devnull static char buffer[20];
773 fa325e9b 2020-01-10 cross
774 871e83a0 2005-07-13 devnull switch (ev->type) {
775 871e83a0 2005-07-13 devnull case KeyPress:
776 871e83a0 2005-07-13 devnull return ("KeyPress");
777 871e83a0 2005-07-13 devnull case KeyRelease:
778 871e83a0 2005-07-13 devnull return ("KeyRelease");
779 871e83a0 2005-07-13 devnull case ButtonPress:
780 871e83a0 2005-07-13 devnull return ("ButtonPress");
781 871e83a0 2005-07-13 devnull case ButtonRelease:
782 871e83a0 2005-07-13 devnull return ("ButtonRelease");
783 871e83a0 2005-07-13 devnull case MotionNotify:
784 871e83a0 2005-07-13 devnull return ("MotionNotify");
785 871e83a0 2005-07-13 devnull case EnterNotify:
786 871e83a0 2005-07-13 devnull return ("EnterNotify");
787 871e83a0 2005-07-13 devnull case LeaveNotify:
788 871e83a0 2005-07-13 devnull return ("LeaveNotify");
789 871e83a0 2005-07-13 devnull case FocusIn:
790 871e83a0 2005-07-13 devnull return ("FocusIn");
791 871e83a0 2005-07-13 devnull case FocusOut:
792 871e83a0 2005-07-13 devnull return ("FocusOut");
793 871e83a0 2005-07-13 devnull case KeymapNotify:
794 871e83a0 2005-07-13 devnull return ("KeymapNotify");
795 871e83a0 2005-07-13 devnull case Expose:
796 871e83a0 2005-07-13 devnull return ("Expose");
797 871e83a0 2005-07-13 devnull case GraphicsExpose:
798 871e83a0 2005-07-13 devnull return ("GraphicsExpose");
799 871e83a0 2005-07-13 devnull case NoExpose:
800 871e83a0 2005-07-13 devnull return ("NoExpose");
801 871e83a0 2005-07-13 devnull case VisibilityNotify:
802 871e83a0 2005-07-13 devnull return ("VisibilityNotify");
803 871e83a0 2005-07-13 devnull case CreateNotify:
804 871e83a0 2005-07-13 devnull return ("CreateNotify");
805 871e83a0 2005-07-13 devnull case DestroyNotify:
806 871e83a0 2005-07-13 devnull return ("DestroyNotify");
807 871e83a0 2005-07-13 devnull case UnmapNotify:
808 871e83a0 2005-07-13 devnull return ("UnmapNotify");
809 871e83a0 2005-07-13 devnull case MapNotify:
810 871e83a0 2005-07-13 devnull return ("MapNotify");
811 871e83a0 2005-07-13 devnull case MapRequest:
812 871e83a0 2005-07-13 devnull return ("MapRequest");
813 871e83a0 2005-07-13 devnull case ReparentNotify:
814 871e83a0 2005-07-13 devnull return ("ReparentNotify");
815 871e83a0 2005-07-13 devnull case ConfigureNotify:
816 871e83a0 2005-07-13 devnull return ("ConfigureNotify");
817 871e83a0 2005-07-13 devnull case ConfigureRequest:
818 871e83a0 2005-07-13 devnull return ("ConfigureRequest");
819 871e83a0 2005-07-13 devnull case GravityNotify:
820 871e83a0 2005-07-13 devnull return ("GravityNotify");
821 871e83a0 2005-07-13 devnull case ResizeRequest:
822 871e83a0 2005-07-13 devnull return ("ResizeRequest");
823 871e83a0 2005-07-13 devnull case CirculateNotify:
824 871e83a0 2005-07-13 devnull return ("CirculateNotify");
825 871e83a0 2005-07-13 devnull case CirculateRequest:
826 871e83a0 2005-07-13 devnull return ("CirculateRequest");
827 871e83a0 2005-07-13 devnull case PropertyNotify:
828 871e83a0 2005-07-13 devnull return ("PropertyNotify");
829 871e83a0 2005-07-13 devnull case SelectionClear:
830 871e83a0 2005-07-13 devnull return ("SelectionClear");
831 871e83a0 2005-07-13 devnull case SelectionRequest:
832 871e83a0 2005-07-13 devnull return ("SelectionRequest");
833 871e83a0 2005-07-13 devnull case SelectionNotify:
834 871e83a0 2005-07-13 devnull return ("SelectionNotify");
835 871e83a0 2005-07-13 devnull case ColormapNotify:
836 871e83a0 2005-07-13 devnull return ("ColormapNotify");
837 871e83a0 2005-07-13 devnull case ClientMessage:
838 871e83a0 2005-07-13 devnull return ("ClientMessage");
839 871e83a0 2005-07-13 devnull case MappingNotify:
840 871e83a0 2005-07-13 devnull return ("MappingNotify");
841 871e83a0 2005-07-13 devnull }
842 871e83a0 2005-07-13 devnull sprintf(buffer, "%d", ev->type);
843 871e83a0 2005-07-13 devnull return buffer;
844 871e83a0 2005-07-13 devnull }
845 871e83a0 2005-07-13 devnull
846 871e83a0 2005-07-13 devnull /******************************************************************************/
847 871e83a0 2005-07-13 devnull /**************** Print the values of all fields for any event ****************/
848 871e83a0 2005-07-13 devnull /******************************************************************************/
849 871e83a0 2005-07-13 devnull
850 871e83a0 2005-07-13 devnull void printevent(XEvent *e)
851 871e83a0 2005-07-13 devnull {
852 871e83a0 2005-07-13 devnull XAnyEvent *ev = (void*)e;
853 871e83a0 2005-07-13 devnull
854 871e83a0 2005-07-13 devnull printf("%3ld %-20s ", ev->serial, eventtype(e));
855 871e83a0 2005-07-13 devnull if(ev->send_event)
856 871e83a0 2005-07-13 devnull printf("(sendevent) ");
857 871e83a0 2005-07-13 devnull if(0){
858 871e83a0 2005-07-13 devnull printf("type=%s%s", eventtype(e), sep);
859 871e83a0 2005-07-13 devnull printf("serial=%lu%s", ev->serial, sep);
860 871e83a0 2005-07-13 devnull printf("send_event=%s%s", TorF(ev->send_event), sep);
861 871e83a0 2005-07-13 devnull printf("display=0x%p%s", ev->display, sep);
862 871e83a0 2005-07-13 devnull }
863 871e83a0 2005-07-13 devnull
864 871e83a0 2005-07-13 devnull switch (ev->type) {
865 871e83a0 2005-07-13 devnull case MotionNotify:
866 871e83a0 2005-07-13 devnull VerbMotion((void*)ev);
867 871e83a0 2005-07-13 devnull break;
868 871e83a0 2005-07-13 devnull
869 871e83a0 2005-07-13 devnull case ButtonPress:
870 871e83a0 2005-07-13 devnull case ButtonRelease:
871 871e83a0 2005-07-13 devnull VerbButton((void*)ev);
872 871e83a0 2005-07-13 devnull break;
873 871e83a0 2005-07-13 devnull
874 871e83a0 2005-07-13 devnull case ColormapNotify:
875 871e83a0 2005-07-13 devnull VerbColormap((void*)ev);
876 871e83a0 2005-07-13 devnull break;
877 871e83a0 2005-07-13 devnull
878 871e83a0 2005-07-13 devnull case EnterNotify:
879 871e83a0 2005-07-13 devnull case LeaveNotify:
880 871e83a0 2005-07-13 devnull VerbCrossing((void*)ev);
881 871e83a0 2005-07-13 devnull break;
882 871e83a0 2005-07-13 devnull
883 871e83a0 2005-07-13 devnull case Expose:
884 871e83a0 2005-07-13 devnull VerbExpose((void*)ev);
885 871e83a0 2005-07-13 devnull break;
886 871e83a0 2005-07-13 devnull
887 871e83a0 2005-07-13 devnull case GraphicsExpose:
888 871e83a0 2005-07-13 devnull VerbGraphicsExpose((void*)ev);
889 871e83a0 2005-07-13 devnull break;
890 871e83a0 2005-07-13 devnull
891 871e83a0 2005-07-13 devnull case NoExpose:
892 871e83a0 2005-07-13 devnull VerbNoExpose((void*)ev);
893 871e83a0 2005-07-13 devnull break;
894 871e83a0 2005-07-13 devnull
895 871e83a0 2005-07-13 devnull case FocusIn:
896 871e83a0 2005-07-13 devnull case FocusOut:
897 871e83a0 2005-07-13 devnull VerbFocus((void*)ev);
898 871e83a0 2005-07-13 devnull break;
899 871e83a0 2005-07-13 devnull
900 871e83a0 2005-07-13 devnull case KeymapNotify:
901 871e83a0 2005-07-13 devnull VerbKeymap((void*)ev);
902 871e83a0 2005-07-13 devnull break;
903 871e83a0 2005-07-13 devnull
904 871e83a0 2005-07-13 devnull case KeyPress:
905 871e83a0 2005-07-13 devnull case KeyRelease:
906 871e83a0 2005-07-13 devnull VerbKey((void*)ev);
907 871e83a0 2005-07-13 devnull break;
908 871e83a0 2005-07-13 devnull
909 871e83a0 2005-07-13 devnull case PropertyNotify:
910 871e83a0 2005-07-13 devnull VerbProperty((void*)ev);
911 871e83a0 2005-07-13 devnull break;
912 871e83a0 2005-07-13 devnull
913 871e83a0 2005-07-13 devnull case ResizeRequest:
914 871e83a0 2005-07-13 devnull VerbResizeRequest((void*)ev);
915 871e83a0 2005-07-13 devnull break;
916 871e83a0 2005-07-13 devnull
917 871e83a0 2005-07-13 devnull case CirculateNotify:
918 871e83a0 2005-07-13 devnull VerbCirculate((void*)ev);
919 871e83a0 2005-07-13 devnull break;
920 871e83a0 2005-07-13 devnull
921 871e83a0 2005-07-13 devnull case ConfigureNotify:
922 871e83a0 2005-07-13 devnull VerbConfigure((void*)ev);
923 871e83a0 2005-07-13 devnull break;
924 871e83a0 2005-07-13 devnull
925 871e83a0 2005-07-13 devnull case CreateNotify:
926 871e83a0 2005-07-13 devnull VerbCreateWindow((void*)ev);
927 871e83a0 2005-07-13 devnull break;
928 871e83a0 2005-07-13 devnull
929 871e83a0 2005-07-13 devnull case DestroyNotify:
930 871e83a0 2005-07-13 devnull VerbDestroyWindow((void*)ev);
931 871e83a0 2005-07-13 devnull break;
932 871e83a0 2005-07-13 devnull
933 871e83a0 2005-07-13 devnull case GravityNotify:
934 871e83a0 2005-07-13 devnull VerbGravity((void*)ev);
935 871e83a0 2005-07-13 devnull break;
936 871e83a0 2005-07-13 devnull
937 871e83a0 2005-07-13 devnull case MapNotify:
938 871e83a0 2005-07-13 devnull VerbMap((void*)ev);
939 871e83a0 2005-07-13 devnull break;
940 871e83a0 2005-07-13 devnull
941 871e83a0 2005-07-13 devnull case ReparentNotify:
942 871e83a0 2005-07-13 devnull VerbReparent((void*)ev);
943 871e83a0 2005-07-13 devnull break;
944 871e83a0 2005-07-13 devnull
945 871e83a0 2005-07-13 devnull case UnmapNotify:
946 871e83a0 2005-07-13 devnull VerbUnmap((void*)ev);
947 871e83a0 2005-07-13 devnull break;
948 871e83a0 2005-07-13 devnull
949 871e83a0 2005-07-13 devnull case CirculateRequest:
950 871e83a0 2005-07-13 devnull VerbCirculateRequest((void*)ev);
951 871e83a0 2005-07-13 devnull break;
952 871e83a0 2005-07-13 devnull
953 871e83a0 2005-07-13 devnull case ConfigureRequest:
954 871e83a0 2005-07-13 devnull VerbConfigureRequest((void*)ev);
955 871e83a0 2005-07-13 devnull break;
956 871e83a0 2005-07-13 devnull
957 871e83a0 2005-07-13 devnull case MapRequest:
958 871e83a0 2005-07-13 devnull VerbMapRequest((void*)ev);
959 871e83a0 2005-07-13 devnull break;
960 871e83a0 2005-07-13 devnull
961 871e83a0 2005-07-13 devnull case ClientMessage:
962 871e83a0 2005-07-13 devnull VerbClient((void*)ev);
963 871e83a0 2005-07-13 devnull break;
964 871e83a0 2005-07-13 devnull
965 871e83a0 2005-07-13 devnull case MappingNotify:
966 871e83a0 2005-07-13 devnull VerbMapping((void*)ev);
967 871e83a0 2005-07-13 devnull break;
968 871e83a0 2005-07-13 devnull
969 871e83a0 2005-07-13 devnull case SelectionClear:
970 871e83a0 2005-07-13 devnull VerbSelectionClear((void*)ev);
971 871e83a0 2005-07-13 devnull break;
972 871e83a0 2005-07-13 devnull
973 871e83a0 2005-07-13 devnull case SelectionNotify:
974 871e83a0 2005-07-13 devnull VerbSelection((void*)ev);
975 871e83a0 2005-07-13 devnull break;
976 871e83a0 2005-07-13 devnull
977 871e83a0 2005-07-13 devnull case SelectionRequest:
978 871e83a0 2005-07-13 devnull VerbSelectionRequest((void*)ev);
979 871e83a0 2005-07-13 devnull break;
980 871e83a0 2005-07-13 devnull
981 871e83a0 2005-07-13 devnull case VisibilityNotify:
982 871e83a0 2005-07-13 devnull VerbVisibility((void*)ev);
983 871e83a0 2005-07-13 devnull break;
984 871e83a0 2005-07-13 devnull }
985 871e83a0 2005-07-13 devnull }