gtk3: Call XIGrabKeycode directly from Vala
[platform/upstream/ibus.git] / bindings / vala / xi.vapi
1 [CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "X11/extensions/XInput2.h")]
2 namespace XI {
3     public enum EventType {
4         [CCode (cname = "XI_KeyPress")]
5         KeyPress,
6         [CCode (cname = "XI_KeyRelease")]
7         KeyRelease,
8     }
9
10     [CCode (cname = "XIAllMasterDevices")]
11     public const int AllMasterDevices;
12
13     [CCode (cname = "XI_LASTEVENT")]
14     public const int LASTEVENT;
15
16     [Compact]
17     [CCode (cname = "XIEventMask", destroy_function = "")]
18     public struct EventMask {
19         public int deviceid;
20         [CCode (array_length_cname = "mask_len")]
21         public uchar[] mask;
22     }
23
24     [CCode (cname = "XISetMask")]
25     public void set_mask(void *mask, EventType type);
26
27     [Compact]
28     [CCode (cname = "XIGrabModifiers", destroy_function = "")]
29     public struct GrabModifiers {
30         public int modifiers;
31         public int status;
32     }
33
34     [CCode (cname = "XIGrabKeycode")]
35     public int grab_keycode (X.Display display,
36                              int deviceid,
37                              int keycode,
38                              X.Window grab_window,
39                              int grab_mode,
40                              int paired_device_mode,
41                              bool owner_events,
42                              XI.EventMask mask,
43                              [CCode (array_length_pos = 8.9)]
44                              XI.GrabModifiers[] modifiers);
45
46     [CCode (cname = "XIUngrabKeycode")]
47     public int ungrab_keycode (X.Display display,
48                                int deviceid,
49                                int keycode,
50                                X.Window grab_window,
51                                [CCode (array_length_pos = 4.9)]
52                                XI.GrabModifiers[] modifiers);
53 }