1 | // x11-rs: Rust bindings for X11 libraries |
2 | // The X11 libraries are available under the MIT license. |
3 | // These bindings are public domain. |
4 | |
5 | use super::xlib::{Atom, Bool, Cursor, Display, Pixmap, Status, Time, Window, XRectangle, GC, XID}; |
6 | use libc::{c_char, c_int, c_short, c_uint, c_ulong, c_ushort}; |
7 | |
8 | // |
9 | // functions |
10 | // |
11 | |
12 | x11_link! { Xlib, x11, ["libXfixes.so.3" , "libXfixes.so" ], 35, |
13 | pub fn XFixesQueryExtension(dpy: *mut Display, event_base: *mut c_int, error_base: *mut c_int) -> Bool, |
14 | pub fn XFixesQueryVersion(dpy: *mut Display, major_version: *mut c_int, minor_version: *const c_int) -> Status, |
15 | pub fn XFixesVersion() -> c_int, |
16 | pub fn XFixesChangeSaveSet(dpy: *mut Display, win: Window, mode: c_int, target: c_int, map: c_int) -> (), |
17 | pub fn XFixesSelectSelectionInput(dpy: *mut Display, win: Window, selection: Atom, event_mask: c_ulong) -> (), |
18 | pub fn XFixesSelectCursorInput(dpy: Display, win: Window, event_mask: c_ulong) -> (), |
19 | pub fn XFixesGetCursorImage(dpy: *mut Display) -> *mut XFixesCursorImage, |
20 | pub fn XFixesCreateRegion(dpy: *mut Display, rectangles: *mut XRectangle, nrectangles: c_int) -> XserverRegion, |
21 | pub fn XFixesCreateRegionFromBitmap(dpy: *mut Display, bitmap: Pixmap) -> XserverRegion, |
22 | pub fn XFixesCreateRegionFromWindow(dpy: *mut Display, win: Window, kind: c_int) -> XserverRegion, |
23 | pub fn XFixesCreateRegionFromGC(dpy: *mut Display, gc: GC) -> XserverRegion, |
24 | pub fn XFixesCreateRegionFromPicture(dpy: *mut Display, picture: XID) -> XserverRegion, |
25 | pub fn XFixesDestroyRegion(dpy: *mut Display, region: XserverRegion) -> (), |
26 | pub fn XFixesSetRegion(dpy: *mut Display, region: XserverRegion, rectangles: *mut XRectangle, nrectangles: c_int) -> (), |
27 | pub fn XFixesCopyRegion(dpy: *mut Display, dst: XserverRegion, src: XserverRegion) -> (), |
28 | pub fn XFixesUnionRegion(dpy: *mut Display, dst: XserverRegion, src1: XserverRegion, src2: XserverRegion) -> (), |
29 | pub fn XFixesIntersectRegion(dpy: *mut Display, dst: XserverRegion, src1: XserverRegion, src2: XserverRegion) -> (), |
30 | pub fn XFixesSubtractRegion(dpy: *mut Display, dst: XserverRegion, src1: XserverRegion, src2: XserverRegion) -> (), |
31 | pub fn XFixesInvertRegion(dpy: *mut Display, dst: XserverRegion, rect: *mut XRectangle, src: XserverRegion) -> (), |
32 | pub fn XFixesTranslateRegion(dpy: *mut Display, region: XserverRegion, dx: c_int, dy: c_int) -> (), |
33 | pub fn XFixesRegionExtents(dpy: *mut Display, dst: XserverRegion, src: XserverRegion) -> (), |
34 | pub fn XFixesFetchRegion(dpy: *mut Display, region: XserverRegion, nrectangles: *mut c_int) -> *mut XRectangle, |
35 | pub fn XFixesFetchRegionAndBounds(dpy: *mut Display, region: XserverRegion, nrectangles: *mut c_int, bounds: *mut XRectangle) -> *mut XRectangle, |
36 | pub fn XFixesSetGCClipRegion(dpy: *mut Display, gc: GC, clip_x_origin: c_int, clip_y_origin: c_int, region: XserverRegion) -> (), |
37 | pub fn XFixesSetWindowShapeRegion(dpy: *mut Display, win: Window, shape_kind: c_int, x_off: c_int, y_off: c_int, region: XserverRegion) -> (), |
38 | pub fn XFixesSetPictureClipRegion(dpy: *mut Display, picture: XID, clip_x_origin: c_int, clip_y_origin: c_int, region: XserverRegion) -> (), |
39 | pub fn XFixesSetCursorName(dpy: *mut Display, cursor: Cursor, name: *const c_char) -> (), |
40 | pub fn XFixesGetCursorName(dpy: *mut Display, cursor: Cursor, atom: *mut Atom) -> *const c_char, |
41 | pub fn XFixesChangeCursor(dpy: *mut Display, source: Cursor, destination: Cursor) -> (), |
42 | pub fn XFixesChangeCursorByName(dpy: *mut Display, source: Cursor, name: *const c_char) -> (), |
43 | pub fn XFixesExpandRegion(dpy: *mut Display, dst: XserverRegion, src: XserverRegion, left: c_uint, right: c_uint, top: c_uint, bottom: c_uint) -> (), |
44 | pub fn XFixesHideCursor(dpy: *mut Display, win: Window) -> (), |
45 | pub fn XFixesShowCursor(dpy: *mut Display, win: Window) -> (), |
46 | pub fn XFixesCreatePointerBarrier(dpy: *mut Display, w: Window, x1: c_int, y1: c_int, x2: c_int, y2: c_int, directions: c_int, num_devices: c_int, devices: *mut c_int) -> PointerBarrier, |
47 | pub fn XFixesDestroyPointerBarrier(dpy: *mut Display, b: PointerBarrier) -> (), |
48 | variadic: |
49 | globals: |
50 | } |
51 | |
52 | // |
53 | // types |
54 | // |
55 | |
56 | pub type PointerBarrier = XID; |
57 | pub type XserverRegion = XID; |
58 | |
59 | // |
60 | // structs |
61 | // |
62 | |
63 | #[derive (Debug, Clone, Copy, PartialEq)] |
64 | #[repr (C)] |
65 | pub struct XFixesSelectionNotifyEvent { |
66 | pub _type: c_int, |
67 | pub serial: c_ulong, |
68 | pub send_event: Bool, |
69 | pub display: *mut Display, |
70 | pub window: Window, |
71 | pub subtype: c_int, |
72 | pub owner: Window, |
73 | pub selection: Atom, |
74 | pub timestamp: Time, |
75 | pub selection_timestamp: Time, |
76 | } |
77 | |
78 | #[derive (Debug, Clone, Copy, PartialEq)] |
79 | #[repr (C)] |
80 | pub struct XFixesCursorNotifyEvent { |
81 | pub _type: c_int, |
82 | pub serial: c_ulong, |
83 | pub send_event: Bool, |
84 | pub display: *mut Display, |
85 | pub window: Window, |
86 | pub subtype: c_int, |
87 | pub cursor_serial: c_ulong, |
88 | pub timestamp: Time, |
89 | pub cursor_name: Atom, |
90 | } |
91 | |
92 | #[derive (Debug, Clone, Copy, PartialEq)] |
93 | #[repr (C)] |
94 | pub struct XFixesCursorImage { |
95 | pub x: c_short, |
96 | pub y: c_short, |
97 | pub width: c_ushort, |
98 | pub height: c_ushort, |
99 | pub xhot: c_ushort, |
100 | pub yhot: c_ushort, |
101 | pub cursor_serial: c_ulong, |
102 | pub pixels: *mut c_ulong, |
103 | pub atom: Atom, |
104 | pub name: *const c_char, |
105 | } |
106 | |