[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "X11/extensions/XInput2.h")] namespace XI { public enum EventType { [CCode (cname = "XI_KeyPress")] KeyPress, [CCode (cname = "XI_KeyRelease")] KeyRelease, } [CCode (cname = "XIAllMasterDevices")] public const int AllMasterDevices; [CCode (cname = "XI_LASTEVENT")] public const int LASTEVENT; [Compact] [CCode (cname = "XIEventMask", destroy_function = "")] public struct EventMask { public int deviceid; [CCode (array_length_cname = "mask_len")] public uchar[] mask; } [CCode (cname = "XISetMask")] public void set_mask(void *mask, EventType type); [Compact] [CCode (cname = "XIGrabModifiers", destroy_function = "")] public struct GrabModifiers { public int modifiers; public int status; } [CCode (cname = "XIGrabKeycode")] public int grab_keycode (X.Display display, int deviceid, int keycode, X.Window grab_window, int grab_mode, int paired_device_mode, bool owner_events, XI.EventMask mask, [CCode (array_length_pos = 8.9)] XI.GrabModifiers[] modifiers); [CCode (cname = "XIUngrabKeycode")] public int ungrab_keycode (X.Display display, int deviceid, int keycode, X.Window grab_window, [CCode (array_length_pos = 4.9)] XI.GrabModifiers[] modifiers); }