1#![allow(non_upper_case_globals)]
2
3use std::os::raw::{
4 c_int,
5 c_uint,
6 c_short,
7 c_long,
8 c_ulong,
9 c_void,
10 c_char,
11 c_uchar,
12};
13
14
15pub type Display = _XDisplay;
16
17pub type XID = c_ulong;
18pub type Window = XID;
19pub type Drawable = XID;
20pub type Colormap = XID;
21pub type KeySym = XID;
22pub type Pixmap = XID;
23pub type Cursor = XID;
24
25pub type Time = c_ulong;
26pub type XIM = *mut _XIM;
27pub type Atom = c_ulong;
28pub type XEvent = _XEvent;
29pub type XIC = *mut _XIC;
30pub type XExtData = _XExtData;
31pub type XPointer = *mut c_char;
32pub type VisualID = c_ulong;
33pub type XrmDatabase = *mut _XrmHashBucketRec;
34pub type XKeyPressedEvent = XKeyEvent;
35pub type XComposeStatus = _XComposeStatus;
36pub type GC = *mut _XGC;
37
38pub const None: u32 = 0;
39pub const True: u32 = 1;
40pub const False: u32 = 0;
41
42pub const VisualIDMask: u32 = 1;
43
44pub const CurrentTime: u32 = 0;
45pub const SelectionNotify: u32 = 31;
46pub const AnyPropertyType: u32 = 0;
47pub const SelectionRequest: u32 = 30;
48pub const PropModeReplace: u32 = 0;
49pub const DestroyNotify: u32 = 17;
50pub const ConfigureNotify: u32 = 22;
51pub const EnterNotify: u32 = 7;
52pub const LeaveNotify: u32 = 8;
53pub const MotionNotify: u32 = 6;
54pub const AllocNone: u32 = 0;
55pub const InputOutput: u32 = 1;
56pub const ClientMessage: u32 = 33;
57pub const KeyPress: u32 = 2;
58pub const KeyRelease: u32 = 3;
59pub const ButtonPress: u32 = 4;
60pub const ButtonRelease: u32 = 5;
61pub const Expose: u32 = 12;
62
63pub const CWBorderPixel: u32 = 8;
64pub const CWColormap: u32 = 8192;
65pub const CWEventMask: u32 = 2048;
66
67pub const SubstructureNotifyMask: u32 = 524288;
68pub const SubstructureRedirectMask: u32 = 1048576;
69pub const NoEventMask: u32 = 0;
70
71pub const ExposureMask: u32 = 32768;
72pub const StructureNotifyMask: u32 = 131072;
73pub const ButtonMotionMask: u32 = 8192;
74pub const PointerMotionMask: u32 = 64;
75pub const ButtonPressMask: u32 = 4;
76pub const ButtonReleaseMask: u32 = 8;
77pub const KeyPressMask: u32 = 1;
78pub const KeyReleaseMask: u32 = 2;
79pub const VisibilityChangeMask: u32 = 65536;
80pub const FocusChangeMask: u32 = 2097152;
81pub const EnterWindowMask: u32 = 16;
82pub const LeaveWindowMask: u32 = 32;
83pub const XBufferOverflow: i32 = -1;
84
85pub const QueuedAlready: i32 = 0;
86pub const QueuedAfterReading: i32 = 1;
87pub const QueuedAfterFlush: i32 = 2;
88
89pub const VisibilityNotify: u32 = 15;
91pub const VisibilityUnobscured: i32 = 0;
93pub const VisibilityPartiallyObscured: i32 = 1;
94pub const VisibilityFullyObscured: i32 = 2;
95
96pub const XIMPreeditNothing: u32 = 8;
97pub const XIMStatusNothing: u32 = 1024;
98
99pub const XNInputStyle: &'static [u8; 11usize] = b"inputStyle\0";
100pub const XNClientWindow: &'static [u8; 13usize] = b"clientWindow\0";
101pub const XNFocusWindow: &'static [u8; 12usize] = b"focusWindow\0";
102
103pub const Mod1Mask: u32 = 8;
104pub const ShiftMask: u32 = 1;
105pub const ControlMask: u32 = 4;
106pub const Mod4Mask: u32 = 64;
107
108pub const XK_A: u32 = 65;
109pub const XK_B: u32 = 66;
110pub const XK_C: u32 = 67;
111pub const XK_D: u32 = 68;
112pub const XK_E: u32 = 69;
113pub const XK_F: u32 = 70;
114pub const XK_G: u32 = 71;
115pub const XK_H: u32 = 72;
116pub const XK_I: u32 = 73;
117pub const XK_J: u32 = 74;
118pub const XK_K: u32 = 75;
119pub const XK_L: u32 = 76;
120pub const XK_M: u32 = 77;
121pub const XK_N: u32 = 78;
122pub const XK_O: u32 = 79;
123pub const XK_P: u32 = 80;
124pub const XK_Q: u32 = 81;
125pub const XK_R: u32 = 82;
126pub const XK_S: u32 = 83;
127pub const XK_T: u32 = 84;
128pub const XK_U: u32 = 85;
129pub const XK_V: u32 = 86;
130pub const XK_W: u32 = 87;
131pub const XK_X: u32 = 88;
132pub const XK_Y: u32 = 89;
133pub const XK_Z: u32 = 90;
134pub const XK_a: u32 = 97;
135pub const XK_b: u32 = 98;
136pub const XK_c: u32 = 99;
137pub const XK_d: u32 = 100;
138pub const XK_e: u32 = 101;
139pub const XK_f: u32 = 102;
140pub const XK_g: u32 = 103;
141pub const XK_h: u32 = 104;
142pub const XK_i: u32 = 105;
143pub const XK_j: u32 = 106;
144pub const XK_k: u32 = 107;
145pub const XK_l: u32 = 108;
146pub const XK_m: u32 = 109;
147pub const XK_n: u32 = 110;
148pub const XK_o: u32 = 111;
149pub const XK_p: u32 = 112;
150pub const XK_q: u32 = 113;
151pub const XK_r: u32 = 114;
152pub const XK_s: u32 = 115;
153pub const XK_t: u32 = 116;
154pub const XK_u: u32 = 117;
155pub const XK_v: u32 = 118;
156pub const XK_w: u32 = 119;
157pub const XK_x: u32 = 120;
158pub const XK_y: u32 = 121;
159pub const XK_z: u32 = 122;
160pub const XK_0: u32 = 48;
161pub const XK_1: u32 = 49;
162pub const XK_2: u32 = 50;
163pub const XK_3: u32 = 51;
164pub const XK_4: u32 = 52;
165pub const XK_5: u32 = 53;
166pub const XK_6: u32 = 54;
167pub const XK_7: u32 = 55;
168pub const XK_8: u32 = 56;
169pub const XK_9: u32 = 57;
170
171pub const XK_Meta_L: u32 = 65511;
172pub const XK_Meta_R: u32 = 65512;
173pub const XK_Alt_L: u32 = 65513;
174pub const XK_Alt_R: u32 = 65514;
175pub const XK_Shift_L: u32 = 65505;
176pub const XK_Shift_R: u32 = 65506;
177pub const XK_Control_L: u32 = 65507;
178pub const XK_Control_R: u32 = 65508;
179
180pub const XK_equal: u32 = 61;
181pub const XK_minus: u32 = 45;
182pub const XK_bracketleft: u32 = 91;
183pub const XK_bracketright: u32 = 93;
184pub const XK_Return: u32 = 65293;
185pub const XK_grave: u32 = 96;
186pub const XK_semicolon: u32 = 59;
187pub const XK_backslash: u32 = 92;
188pub const XK_comma: u32 = 44;
189pub const XK_slash: u32 = 47;
190pub const XK_period: u32 = 46;
191pub const XK_Tab: u32 = 65289;
192pub const XK_ISO_Left_Tab: u32 = 65056;
193pub const XK_space: u32 = 32;
194pub const XK_BackSpace: u32 = 65288;
195pub const XK_Escape: u32 = 65307;
196pub const XK_Caps_Lock: u32 = 65509;
197
198pub const XK_KP_Subtract: u32 = 65453;
199pub const XK_KP_Decimal: u32 = 65454;
200pub const XK_KP_Divide: u32 = 65455;
201pub const XK_KP_Multiply: u32 = 65450;
202pub const XK_KP_Add: u32 = 65451;
203pub const XK_Num_Lock: u32 = 65407;
204pub const XK_KP_Enter: u32 = 65421;
205
206pub const XK_KP_0: u32 = 65456;
207pub const XK_KP_1: u32 = 65457;
208pub const XK_KP_2: u32 = 65458;
209pub const XK_KP_3: u32 = 65459;
210pub const XK_KP_4: u32 = 65460;
211pub const XK_KP_5: u32 = 65461;
212pub const XK_KP_6: u32 = 65462;
213pub const XK_KP_7: u32 = 65463;
214pub const XK_KP_8: u32 = 65464;
215pub const XK_KP_9: u32 = 65465;
216
217pub const XK_F1: u32 = 65470;
218pub const XK_F2: u32 = 65471;
219pub const XK_F3: u32 = 65472;
220pub const XK_F4: u32 = 65473;
221pub const XK_F5: u32 = 65474;
222pub const XK_F6: u32 = 65475;
223pub const XK_F7: u32 = 65476;
224pub const XK_F8: u32 = 65477;
225pub const XK_F9: u32 = 65478;
226pub const XK_F10: u32 = 65479;
227pub const XK_F11: u32 = 65480;
228pub const XK_F12: u32 = 65481;
229
230pub const XK_Print: u32 = 65377;
231pub const XK_Home: u32 = 65360;
232pub const XK_Page_Up: u32 = 65365;
233pub const XK_Delete: u32 = 65535;
234pub const XK_End: u32 = 65367;
235pub const XK_Page_Down: u32 = 65366;
236pub const XK_Left: u32 = 65361;
237pub const XK_Right: u32 = 65363;
238pub const XK_Down: u32 = 65364;
239pub const XK_Up: u32 = 65362;
240
241
242#[link(name = "Xcursor")]
243extern "C" {
244 pub fn XcursorLibraryLoadCursor(
245 dpy: *mut Display,
246 file: *const c_char,
247 ) -> Cursor;
248}
249
250#[link(name = "X11")]
251extern "C" {
252 pub fn XOpenDisplay(arg1: *const c_char) -> *mut Display;
253
254 pub fn XConnectionNumber(arg1: *mut Display) -> c_int;
255
256 pub fn XOpenIM(
257 arg1: *mut Display,
258 arg2: *mut _XrmHashBucketRec,
259 arg3: *mut c_char,
260 arg4: *mut c_char,
261 ) -> XIM;
262
263 pub fn XInternAtom(
264 arg1: *mut Display,
265 arg2: *const c_char,
266 arg3: c_int,
267 ) -> Atom;
268
269 pub fn XrmInitialize();
270
271 pub fn XCloseIM(arg1: XIM) -> c_int;
272
273 pub fn XCloseDisplay(arg1: *mut Display) -> c_int;
274
275 pub fn XPending(arg1: *mut Display) -> c_int;
276
277 pub fn XNextEvent(arg1: *mut Display, arg2: *mut XEvent) -> c_int;
278
279 pub fn XPeekEvent(arg1: *mut Display, arg2: *mut XEvent) -> c_int;
280
281 pub fn XEventsQueued(arg1: *mut Display, arg2: c_int) -> c_int;
282
283 pub fn XGetWindowProperty(
284 arg1: *mut Display,
285 arg2: Window,
286 arg3: Atom,
287 arg4: c_long,
288 arg5: c_long,
289 arg6: c_int,
290 arg7: Atom,
291 arg8: *mut Atom,
292 arg9: *mut c_int,
293 arg10: *mut c_ulong,
294 arg11: *mut c_ulong,
295 arg12: *mut *mut c_uchar,
296 ) -> c_int;
297
298 pub fn XFree(arg1: *mut c_void) -> c_int;
299
300 pub fn XChangeProperty(
301 display: *mut Display,
302 window: Window,
303 property: Atom,
304 type_: Atom,
305 format: c_int,
306 mode: c_int,
307 data: *const c_uchar,
308 num_elements: c_int,
309 ) -> c_int;
310
311 pub fn XSendEvent(
312 arg1: *mut Display,
313 arg2: Window,
314 arg3: c_int,
315 arg4: c_long,
316 arg5: *mut XEvent,
317 ) -> c_int;
318
319 pub fn XDefaultScreen(arg1: *mut Display) -> c_int;
320
321 pub fn XRootWindow(arg1: *mut Display, arg2: c_int) -> Window;
322
323 pub fn XGetVisualInfo(
324 arg1: *mut Display,
325 arg2: c_long,
326 arg3: *mut XVisualInfo,
327 arg4: *mut c_int,
328 ) -> *mut XVisualInfo;
329
330 pub fn XCreateColormap(
331 arg1: *mut Display,
332 arg2: Window,
333 arg3: *mut Visual,
334 arg4: c_int,
335 ) -> Colormap;
336
337 pub fn XCreateWindow(
338 arg1: *mut Display,
339 arg2: Window,
340 arg3: c_int,
341 arg4: c_int,
342 arg5: c_uint,
343 arg6: c_uint,
344 arg7: c_uint,
345 arg8: c_int,
346 arg9: c_uint,
347 arg10: *mut Visual,
348 arg11: c_ulong,
349 arg12: *mut XSetWindowAttributes,
350 ) -> Window;
351
352 pub fn XSetWMProtocols(
353 arg1: *mut Display,
354 arg2: Window,
355 arg3: *mut Atom,
356 arg4: c_int,
357 ) -> c_int;
358
359 pub fn XMapWindow(arg1: *mut Display, arg2: Window) -> c_int;
360
361 pub fn XMoveWindow(
362 display: *mut Display,
363 window: Window,
364 x: c_int,
365 y: c_int,
366 );
367
368 pub fn XFlush(arg1: *mut Display) -> c_int;
369
370 pub fn XStoreName(
371 arg1: *mut Display,
372 arg2: Window,
373 arg3: *const c_char,
374 ) -> c_int;
375
376 pub fn XCreateIC(arg1: XIM, ...) -> XIC;
377
378 pub fn XDestroyWindow(arg1: *mut Display, arg2: Window) -> c_int;
379
380 pub fn XIconifyWindow(
381 arg1: *mut Display,
382 arg2: Window,
383 arg3: c_int,
384 ) -> c_int;
385
386 pub fn XGetWindowAttributes(
387 arg1: *mut Display,
388 arg2: Window,
389 arg3: *mut XWindowAttributes,
390 ) -> c_int;
391
392 pub fn XResourceManagerString(arg1: *mut Display) -> *mut c_char;
393
394 pub fn XrmGetStringDatabase(arg1: *const c_char) -> XrmDatabase;
395
396 pub fn XrmGetResource(
397 arg1: XrmDatabase,
398 arg2: *const c_char,
399 arg3: *const c_char,
400 arg4: *mut *mut c_char,
401 arg5: *mut XrmValue,
402 ) -> c_int;
403
404 pub fn XConvertSelection(
405 arg1: *mut Display,
406 arg2: Atom,
407 arg3: Atom,
408 arg4: Atom,
409 arg5: Window,
410 arg6: Time,
411 ) -> c_int;
412
413 pub fn XSetInputFocus(
414 arg1: *mut Display,
415 arg2: Window,
416 arg3: c_int,
417 arg4: Time,
418 ) -> c_int;
419
420 pub fn XUngrabPointer(arg1: *mut Display, arg2: Time) -> c_int;
421
422 pub fn XSetSelectionOwner(
423 arg1: *mut Display,
424 arg2: Atom,
425 arg3: Window,
426 arg4: Time,
427 ) -> c_int;
428
429 pub fn Xutf8LookupString(
430 arg1: XIC,
431 arg2: *mut XKeyPressedEvent,
432 arg3: *mut c_char,
433 arg4: c_int,
434 arg5: *mut KeySym,
435 arg6: *mut c_int,
436 ) -> c_int;
437
438 pub fn XDefineCursor(arg1: *mut Display, arg2: Window, arg3: Cursor) -> c_int;
439 pub fn XFreeCursor(arg1: *mut Display, arg2: Cursor) -> c_int;
440 pub fn XLookupString(
441 arg1: *mut XKeyEvent,
442 arg2: *mut c_char,
443 arg3: c_int,
444 arg4: *mut KeySym,
445 arg5: *mut XComposeStatus,
446 ) -> c_int;
447}
448
449#[repr(C)]
450#[derive(Debug, Copy, Clone)]
451pub struct _XrmHashBucketRec {
452 _unused: [u8; 0],
453}
454
455#[repr(C)]
456#[derive(Debug, Copy, Clone)]
457pub struct _XDisplay {
458 _unused: [u8; 0],
459}
460
461#[repr(C)]
462#[derive(Debug, Copy, Clone)]
463pub struct _XIM {
464 _unused: [u8; 0],
465}
466
467#[repr(C)]
468#[derive(Debug, Copy, Clone)]
469pub struct _XIC {
470 _unused: [u8; 0],
471}
472
473#[repr(C)]
474#[derive(Debug, Copy, Clone)]
475pub struct _XComposeStatus {
476 pub compose_ptr: XPointer,
477 pub chars_matched: c_int,
478}
479
480#[repr(C)]
481#[derive(Debug, Copy, Clone)]
482pub struct _XExtData {
483 pub number: c_int,
484 pub next: *mut _XExtData,
485 pub free_private: ::std::option::Option<
486 unsafe extern "C" fn(extension: *mut _XExtData) -> c_int,
487 >,
488 pub private_data: XPointer,
489}
490
491#[repr(C)]
492#[derive(Debug, Copy, Clone)]
493pub struct XrmValue {
494 pub size: c_uint,
495 pub addr: XPointer,
496}
497
498#[repr(C)]
499#[derive(Debug, Copy, Clone)]
500pub struct _XGC {
501 _unused: [u8; 0],
502}
503
504#[repr(C)]
505#[derive(Debug, Copy, Clone)]
506pub struct Depth {
507 pub depth: c_int,
508 pub nvisuals: c_int,
509 pub visuals: *mut Visual,
510}
511
512#[repr(C)]
513#[derive(Debug, Copy, Clone)]
514pub struct Screen {
515 pub ext_data: *mut XExtData,
516 pub display: *mut _XDisplay,
517 pub root: Window,
518 pub width: c_int,
519 pub height: c_int,
520 pub mwidth: c_int,
521 pub mheight: c_int,
522 pub ndepths: c_int,
523 pub depths: *mut Depth,
524 pub root_depth: c_int,
525 pub root_visual: *mut Visual,
526 pub default_gc: GC,
527 pub cmap: Colormap,
528 pub white_pixel: c_ulong,
529 pub black_pixel: c_ulong,
530 pub max_maps: c_int,
531 pub min_maps: c_int,
532 pub backing_store: c_int,
533 pub save_unders: c_int,
534 pub root_input_mask: c_long,
535}
536
537#[repr(C)]
538#[derive(Debug, Copy, Clone)]
539pub struct XWindowAttributes {
540 pub x: c_int,
541 pub y: c_int,
542 pub width: c_int,
543 pub height: c_int,
544 pub border_width: c_int,
545 pub depth: c_int,
546 pub visual: *mut Visual,
547 pub root: Window,
548 pub class: c_int,
549 pub bit_gravity: c_int,
550 pub win_gravity: c_int,
551 pub backing_store: c_int,
552 pub backing_planes: c_ulong,
553 pub backing_pixel: c_ulong,
554 pub save_under: c_int,
555 pub colormap: Colormap,
556 pub map_installed: c_int,
557 pub map_state: c_int,
558 pub all_event_masks: c_long,
559 pub your_event_mask: c_long,
560 pub do_not_propagate_mask: c_long,
561 pub override_redirect: c_int,
562 pub screen: *mut Screen,
563}
564
565#[repr(C)]
566#[derive(Debug, Copy, Clone)]
567pub struct Visual {
568 pub ext_data: *mut XExtData,
569 pub visualid: VisualID,
570 pub class: c_int,
571 pub red_mask: c_ulong,
572 pub green_mask: c_ulong,
573 pub blue_mask: c_ulong,
574 pub bits_per_rgb: c_int,
575 pub map_entries: c_int,
576}
577
578#[repr(C)]
579#[derive(Debug, Copy, Clone)]
580pub struct XSetWindowAttributes {
581 pub background_pixmap: Pixmap,
582 pub background_pixel: c_ulong,
583 pub border_pixmap: Pixmap,
584 pub border_pixel: c_ulong,
585 pub bit_gravity: c_int,
586 pub win_gravity: c_int,
587 pub backing_store: c_int,
588 pub backing_planes: c_ulong,
589 pub backing_pixel: c_ulong,
590 pub save_under: c_int,
591 pub event_mask: c_long,
592 pub do_not_propagate_mask: c_long,
593 pub override_redirect: c_int,
594 pub colormap: Colormap,
595 pub cursor: Cursor,
596}
597
598#[repr(C)]
599#[derive(Debug, Copy, Clone)]
600pub struct XVisualInfo {
601 pub visual: *mut Visual,
602 pub visualid: VisualID,
603 pub screen: c_int,
604 pub depth: c_int,
605 pub class: c_int,
606 pub red_mask: c_ulong,
607 pub green_mask: c_ulong,
608 pub blue_mask: c_ulong,
609 pub colormap_size: c_int,
610 pub bits_per_rgb: c_int,
611}
612
613#[repr(C)]
614#[derive(Debug, Copy, Clone)]
615pub struct XSelectionEvent {
616 pub type_: c_int,
617 pub serial: c_ulong,
618 pub send_event: c_int,
619 pub display: *mut Display,
620 pub requestor: Window,
621 pub selection: Atom,
622 pub target: Atom,
623 pub property: Atom,
624 pub time: Time,
625}
626
627#[repr(C)]
628#[derive(Debug, Copy, Clone)]
629pub struct XNoExposeEvent {
630 pub type_: c_int,
631 pub serial: c_ulong,
632 pub send_event: c_int,
633 pub display: *mut Display,
634 pub drawable: Drawable,
635 pub major_code: c_int,
636 pub minor_code: c_int,
637}
638
639#[repr(C)]
640#[derive(Debug, Copy, Clone)]
641pub struct XCrossingEvent {
642 pub type_: c_int,
643 pub serial: c_ulong,
644 pub send_event: c_int,
645 pub display: *mut Display,
646 pub window: Window,
647 pub root: Window,
648 pub subwindow: Window,
649 pub time: Time,
650 pub x: c_int,
651 pub y: c_int,
652 pub x_root: c_int,
653 pub y_root: c_int,
654 pub mode: c_int,
655 pub detail: c_int,
656 pub same_screen: c_int,
657 pub focus: c_int,
658 pub state: c_uint,
659}
660
661#[repr(C)]
662#[derive(Debug, Copy, Clone)]
663pub struct XMotionEvent {
664 pub type_: c_int,
665 pub serial: c_ulong,
666 pub send_event: c_int,
667 pub display: *mut Display,
668 pub window: Window,
669 pub root: Window,
670 pub subwindow: Window,
671 pub time: Time,
672 pub x: c_int,
673 pub y: c_int,
674 pub x_root: c_int,
675 pub y_root: c_int,
676 pub state: c_uint,
677 pub is_hint: c_char,
678 pub same_screen: c_int,
679}
680
681#[repr(C)]
682#[derive(Debug, Copy, Clone)]
683pub struct XButtonEvent {
684 pub type_: c_int,
685 pub serial: c_ulong,
686 pub send_event: c_int,
687 pub display: *mut Display,
688 pub window: Window,
689 pub root: Window,
690 pub subwindow: Window,
691 pub time: Time,
692 pub x: c_int,
693 pub y: c_int,
694 pub x_root: c_int,
695 pub y_root: c_int,
696 pub state: c_uint,
697 pub button: c_uint,
698 pub same_screen: c_int,
699}
700
701#[repr(C)]
702#[derive(Debug, Copy, Clone)]
703pub struct XKeyEvent {
704 pub type_: c_int,
705 pub serial: c_ulong,
706 pub send_event: c_int,
707 pub display: *mut Display,
708 pub window: Window,
709 pub root: Window,
710 pub subwindow: Window,
711 pub time: Time,
712 pub x: c_int,
713 pub y: c_int,
714 pub x_root: c_int,
715 pub y_root: c_int,
716 pub state: c_uint,
717 pub keycode: c_uint,
718 pub same_screen: c_int,
719}
720
721#[repr(C)]
722#[derive(Debug, Copy, Clone)]
723pub struct XAnyEvent {
724 pub type_: c_int,
725 pub serial: c_ulong,
726 pub send_event: c_int,
727 pub display: *mut Display,
728 pub window: Window,
729}
730
731#[repr(C)]
732#[derive(Debug, Copy, Clone)]
733pub struct XFocusChangeEvent {
734 pub type_: c_int,
735 pub serial: c_ulong,
736 pub send_event: c_int,
737 pub display: *mut Display,
738 pub window: Window,
739 pub mode: c_int,
740 pub detail: c_int,
741}
742
743#[repr(C)]
744#[derive(Debug, Copy, Clone)]
745pub struct XExposeEvent {
746 pub type_: c_int,
747 pub serial: c_ulong,
748 pub send_event: c_int,
749 pub display: *mut Display,
750 pub window: Window,
751 pub x: c_int,
752 pub y: c_int,
753 pub width: c_int,
754 pub height: c_int,
755 pub count: c_int,
756}
757
758#[repr(C)]
759#[derive(Debug, Copy, Clone)]
760pub struct XGraphicsExposeEvent {
761 pub type_: c_int,
762 pub serial: c_ulong,
763 pub send_event: c_int,
764 pub display: *mut Display,
765 pub drawable: Drawable,
766 pub x: c_int,
767 pub y: c_int,
768 pub width: c_int,
769 pub height: c_int,
770 pub count: c_int,
771 pub major_code: c_int,
772 pub minor_code: c_int,
773}
774
775#[repr(C)]
776#[derive(Debug, Copy, Clone)]
777pub struct XVisibilityEvent {
778 pub type_: c_int,
779 pub serial: c_ulong,
780 pub send_event: c_int,
781 pub display: *mut Display,
782 pub window: Window,
783 pub state: c_int,
784}
785
786#[repr(C)]
787#[derive(Debug, Copy, Clone)]
788pub struct XCreateWindowEvent {
789 pub type_: c_int,
790 pub serial: c_ulong,
791 pub send_event: c_int,
792 pub display: *mut Display,
793 pub parent: Window,
794 pub window: Window,
795 pub x: c_int,
796 pub y: c_int,
797 pub width: c_int,
798 pub height: c_int,
799 pub border_width: c_int,
800 pub override_redirect: c_int,
801}
802
803#[repr(C)]
804#[derive(Debug, Copy, Clone)]
805pub struct XDestroyWindowEvent {
806 pub type_: c_int,
807 pub serial: c_ulong,
808 pub send_event: c_int,
809 pub display: *mut Display,
810 pub event: Window,
811 pub window: Window,
812}
813
814#[repr(C)]
815#[derive(Debug, Copy, Clone)]
816pub struct XUnmapEvent {
817 pub type_: c_int,
818 pub serial: c_ulong,
819 pub send_event: c_int,
820 pub display: *mut Display,
821 pub event: Window,
822 pub window: Window,
823 pub from_configure: c_int,
824}
825
826#[repr(C)]
827#[derive(Debug, Copy, Clone)]
828pub struct XMapEvent {
829 pub type_: c_int,
830 pub serial: c_ulong,
831 pub send_event: c_int,
832 pub display: *mut Display,
833 pub event: Window,
834 pub window: Window,
835 pub override_redirect: c_int,
836}
837
838#[repr(C)]
839#[derive(Debug, Copy, Clone)]
840pub struct XMapRequestEvent {
841 pub type_: c_int,
842 pub serial: c_ulong,
843 pub send_event: c_int,
844 pub display: *mut Display,
845 pub parent: Window,
846 pub window: Window,
847}
848
849#[repr(C)]
850#[derive(Debug, Copy, Clone)]
851pub struct XReparentEvent {
852 pub type_: c_int,
853 pub serial: c_ulong,
854 pub send_event: c_int,
855 pub display: *mut Display,
856 pub event: Window,
857 pub window: Window,
858 pub parent: Window,
859 pub x: c_int,
860 pub y: c_int,
861 pub override_redirect: c_int,
862}
863
864#[repr(C)]
865#[derive(Debug, Copy, Clone)]
866pub struct XConfigureEvent {
867 pub type_: c_int,
868 pub serial: c_ulong,
869 pub send_event: c_int,
870 pub display: *mut Display,
871 pub event: Window,
872 pub window: Window,
873 pub x: c_int,
874 pub y: c_int,
875 pub width: c_int,
876 pub height: c_int,
877 pub border_width: c_int,
878 pub above: Window,
879 pub override_redirect: c_int,
880}
881
882#[repr(C)]
883#[derive(Debug, Copy, Clone)]
884pub struct XGravityEvent {
885 pub type_: c_int,
886 pub serial: c_ulong,
887 pub send_event: c_int,
888 pub display: *mut Display,
889 pub event: Window,
890 pub window: Window,
891 pub x: c_int,
892 pub y: c_int,
893}
894
895#[repr(C)]
896#[derive(Debug, Copy, Clone)]
897pub struct XResizeRequestEvent {
898 pub type_: c_int,
899 pub serial: c_ulong,
900 pub send_event: c_int,
901 pub display: *mut Display,
902 pub window: Window,
903 pub width: c_int,
904 pub height: c_int,
905}
906
907#[repr(C)]
908#[derive(Debug, Copy, Clone)]
909pub struct XConfigureRequestEvent {
910 pub type_: c_int,
911 pub serial: c_ulong,
912 pub send_event: c_int,
913 pub display: *mut Display,
914 pub parent: Window,
915 pub window: Window,
916 pub x: c_int,
917 pub y: c_int,
918 pub width: c_int,
919 pub height: c_int,
920 pub border_width: c_int,
921 pub above: Window,
922 pub detail: c_int,
923 pub value_mask: c_ulong,
924}
925
926#[repr(C)]
927#[derive(Debug, Copy, Clone)]
928pub struct XCirculateEvent {
929 pub type_: c_int,
930 pub serial: c_ulong,
931 pub send_event: c_int,
932 pub display: *mut Display,
933 pub event: Window,
934 pub window: Window,
935 pub place: c_int,
936}
937
938#[repr(C)]
939#[derive(Debug, Copy, Clone)]
940pub struct XCirculateRequestEvent {
941 pub type_: c_int,
942 pub serial: c_ulong,
943 pub send_event: c_int,
944 pub display: *mut Display,
945 pub parent: Window,
946 pub window: Window,
947 pub place: c_int,
948}
949
950#[repr(C)]
951#[derive(Debug, Copy, Clone)]
952pub struct XPropertyEvent {
953 pub type_: c_int,
954 pub serial: c_ulong,
955 pub send_event: c_int,
956 pub display: *mut Display,
957 pub window: Window,
958 pub atom: Atom,
959 pub time: Time,
960 pub state: c_int,
961}
962
963#[repr(C)]
964#[derive(Debug, Copy, Clone)]
965pub struct XSelectionClearEvent {
966 pub type_: c_int,
967 pub serial: c_ulong,
968 pub send_event: c_int,
969 pub display: *mut Display,
970 pub window: Window,
971 pub selection: Atom,
972 pub time: Time,
973}
974
975#[repr(C)]
976#[derive(Debug, Copy, Clone)]
977pub struct XSelectionRequestEvent {
978 pub type_: c_int,
979 pub serial: c_ulong,
980 pub send_event: c_int,
981 pub display: *mut Display,
982 pub owner: Window,
983 pub requestor: Window,
984 pub selection: Atom,
985 pub target: Atom,
986 pub property: Atom,
987 pub time: Time,
988}
989
990#[repr(C)]
991#[derive(Debug, Copy, Clone)]
992pub struct XColormapEvent {
993 pub type_: c_int,
994 pub serial: c_ulong,
995 pub send_event: c_int,
996 pub display: *mut Display,
997 pub window: Window,
998 pub colormap: Colormap,
999 pub new: c_int,
1000 pub state: c_int,
1001}
1002
1003#[repr(C)]
1004#[derive(Copy, Clone)]
1005pub struct XClientMessageEvent {
1006 pub type_: c_int,
1007 pub serial: c_ulong,
1008 pub send_event: c_int,
1009 pub display: *mut Display,
1010 pub window: Window,
1011 pub message_type: Atom,
1012 pub format: c_int,
1013 pub data: XClientMessageEvent__bindgen_ty_1,
1014}
1015
1016#[repr(C)]
1017#[derive(Copy, Clone)]
1018pub union XClientMessageEvent__bindgen_ty_1 {
1019 pub b: [c_char; 20usize],
1020 pub s: [c_short; 10usize],
1021 pub l: [c_long; 5usize],
1022 _bindgen_union_align: [u64; 5usize],
1023}
1024
1025#[repr(C)]
1026#[derive(Debug, Copy, Clone)]
1027pub struct XMappingEvent {
1028 pub type_: c_int,
1029 pub serial: c_ulong,
1030 pub send_event: c_int,
1031 pub display: *mut Display,
1032 pub window: Window,
1033 pub request: c_int,
1034 pub first_keycode: c_int,
1035 pub count: c_int,
1036}
1037
1038#[repr(C)]
1039#[derive(Debug, Copy, Clone)]
1040pub struct XErrorEvent {
1041 pub type_: c_int,
1042 pub display: *mut Display,
1043 pub resourceid: XID,
1044 pub serial: c_ulong,
1045 pub error_code: c_uchar,
1046 pub request_code: c_uchar,
1047 pub minor_code: c_uchar,
1048}
1049
1050#[repr(C)]
1051#[derive(Debug, Copy, Clone)]
1052pub struct XKeymapEvent {
1053 pub type_: c_int,
1054 pub serial: c_ulong,
1055 pub send_event: c_int,
1056 pub display: *mut Display,
1057 pub window: Window,
1058 pub key_vector: [c_char; 32usize],
1059}
1060
1061#[repr(C)]
1062#[derive(Debug, Copy, Clone)]
1063pub struct XGenericEvent {
1064 pub type_: c_int,
1065 pub serial: c_ulong,
1066 pub send_event: c_int,
1067 pub display: *mut Display,
1068 pub extension: c_int,
1069 pub evtype: c_int,
1070}
1071
1072#[repr(C)]
1073#[derive(Debug, Copy, Clone)]
1074pub struct XGenericEventCookie {
1075 pub type_: c_int,
1076 pub serial: c_ulong,
1077 pub send_event: c_int,
1078 pub display: *mut Display,
1079 pub extension: c_int,
1080 pub evtype: c_int,
1081 pub cookie: c_uint,
1082 pub data: *mut c_void,
1083}
1084
1085#[repr(C)]
1086#[derive(Copy, Clone)]
1087pub union _XEvent {
1088 pub type_: c_int,
1089 pub xany: XAnyEvent,
1090 pub xkey: XKeyEvent,
1091 pub xbutton: XButtonEvent,
1092 pub xmotion: XMotionEvent,
1093 pub xcrossing: XCrossingEvent,
1094 pub xfocus: XFocusChangeEvent,
1095 pub xexpose: XExposeEvent,
1096 pub xgraphicsexpose: XGraphicsExposeEvent,
1097 pub xnoexpose: XNoExposeEvent,
1098 pub xvisibility: XVisibilityEvent,
1099 pub xcreatewindow: XCreateWindowEvent,
1100 pub xdestroywindow: XDestroyWindowEvent,
1101 pub xunmap: XUnmapEvent,
1102 pub xmap: XMapEvent,
1103 pub xmaprequest: XMapRequestEvent,
1104 pub xreparent: XReparentEvent,
1105 pub xconfigure: XConfigureEvent,
1106 pub xgravity: XGravityEvent,
1107 pub xresizerequest: XResizeRequestEvent,
1108 pub xconfigurerequest: XConfigureRequestEvent,
1109 pub xcirculate: XCirculateEvent,
1110 pub xcirculaterequest: XCirculateRequestEvent,
1111 pub xproperty: XPropertyEvent,
1112 pub xselectionclear: XSelectionClearEvent,
1113 pub xselectionrequest: XSelectionRequestEvent,
1114 pub xselection: XSelectionEvent,
1115 pub xcolormap: XColormapEvent,
1116 pub xclient: XClientMessageEvent,
1117 pub xmapping: XMappingEvent,
1118 pub xerror: XErrorEvent,
1119 pub xkeymap: XKeymapEvent,
1120 pub xgeneric: XGenericEvent,
1121 pub xcookie: XGenericEventCookie,
1122 pub pad: [c_long; 24usize],
1123 _bindgen_union_align: [u64; 24usize],
1124}
1125