1using X; 2 3[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "X11/XKBlib.h")] 4namespace Xkb { 5 6 [CCode (cname = "XkbGetKeyboard")] 7 public Desc get_keyboard (X.Display dpy, uint which, uint device_spec); 8 9 [CCode (cname = "XkbGetControls")] 10 public X.Status get_controls (X.Display dpy, uint which, Desc xkb); 11 12 [CCode (cname = "XkbSetControls")] 13 public void set_controls (X.Display dpy, uint which, Desc xkb); 14 15 [CCode (cname = "XkbGetMap")] 16 public Desc get_map (X.Display dpy, uint which, uint device_spec); 17 18 [CCode (cname = "XkbSetMap")] 19 public void set_map (X.Display dpy, uint which, Desc xkb); 20 21 [CCode (cname = "XkbChangeMap")] 22 public bool change_map (X.Display dpy, Desc xkb, MapChanges changes); 23 24 [CCode (cname = "XkbFreeKeyboard")] 25 public void free_keyboard (Desc xkb, uint which, bool free_all); 26 27 [CCode (cname = "XkbGetState")] 28 public void get_state (X.Display dpy, uint device_spec, out State state); 29 30 [CCode (cname = "XkbSelectEvents")] 31 public void select_events (X.Display dpy, uint device_spec, ulong bits_to_change, 32 ulong values_for_bits); 33 34 [CCode (cname = "XkbLatchModifiers")] 35 public void latch_modifiers (X.Display dpy, uint device_spec, uint affect, 36 uint values); 37 38 [CCode (cname = "XkbLockModifiers")] 39 public void lock_modifiers (X.Display dpy, uint device_spec, uint affect, 40 uint values); 41 42 43 [Compact] 44 [CCode (cname = "XkbAnyEvent", free_function = "")] 45 public struct AnyEvent { 46 int xkb_type; 47 } 48 49 [Compact] 50 [CCode (cname = "XkbStateNotifyEvent", free_function = "")] 51 public struct StateNotifyEvent { 52 uint changed; 53 int locked_group; 54 uint mods; 55 } 56 57 [Compact] 58 [CCode (cname = "XkbEvent", free_function = "")] 59 public struct Event { 60 int type; 61 AnyEvent any; 62 StateNotifyEvent state; 63 } 64 65 [Compact] 66 [CCode (cname = "XkbStateRec", free_function = "")] 67 public struct State { 68 uchar group; 69 uchar locked_group; 70 ushort base_group; 71 ushort latched_group; 72 uchar mods; 73 uchar base_mods; 74 uchar latched_mods; 75 uchar locked_mods; 76 uchar compat_state; 77 uchar grab_mods; 78 uchar compat_grab_mods; 79 uchar lookup_mods; 80 uchar compat_lookup_mods; 81 ushort ptr_buttons; 82 } 83 84 [Compact] 85 [CCode (cname = "XkbDescRec", free_function = "")] 86 public class Desc { 87 public X.Display dpy; 88 public ushort flags; 89 public ushort device_spec; 90 public uchar min_key_code; 91 public uchar max_key_code; 92 public Controls ctrls; 93 public ServerMap server; 94 public ClientMap map; 95 public Indicator indicators; 96 public Names names; 97 public CompatMap compat; 98 public Geometry geom; 99 } 100 101 [Compact] 102 [CCode (cname = "XkbControlsRec", free_function = "")] 103 public class Controls { 104 public uint enabled_ctrls; 105 } 106 107 [Compact] 108 [CCode (cname = "XkbServerMapRec", free_function = "")] 109 public class ServerMap { 110 } 111 112 [Compact] 113 [CCode (cname = "XkbKeyTypeRec", free_function = "")] 114 public struct KeyType { 115 } 116 117 [CCode (cname = "XkbSymMapRec", free_function = "")] 118 public struct SymMap { 119 uchar kt_index[4]; 120 uchar group_info; 121 uchar width; 122 ushort offset; 123 } 124 125 [CCode (cname = "XkbMapChangesRec", free_function = "")] 126 public struct MapChanges { 127 ushort changed; 128 char min_key_code; 129 char max_key_code; 130 uchar first_type; 131 uchar num_types; 132 char first_key_sym; 133 uchar num_key_syms; 134 char first_key_act; 135 uchar num_key_acts; 136 char first_key_behavior; 137 uchar num_key_behaviors; 138 char first_key_explicit; 139 uchar num_key_explicit; 140 char first_modmap_key; 141 uchar num_modmap_keys; 142 char first_vmodmap_key; 143 uchar num_vmodmap_keys; 144 uchar pad; 145 ushort vmods; 146 } 147 148 [Compact] 149 [CCode (cname = "XkbClientMapRec", free_function = "")] 150 public class ClientMap { 151 public uchar size_types; 152 public uchar num_types; 153 public KeyType[] types; 154 155 public ushort size_syms; 156 public ushort num_syms; 157 [CCode (array_length = false, array_null_terminated = true)] 158 public ulong[] syms; 159 [CCode (array_length = false, array_null_terminated = true)] 160 public SymMap[] key_sym_map; 161 162 [CCode (array_length = false, array_null_terminated = true)] 163 public uchar[] modmap; 164 } 165 166 [Compact] 167 [CCode (cname = "XkbIndicatorRec", free_function = "")] 168 public class Indicator { 169 } 170 171 [Compact] 172 [CCode (cname = "XkbNamesRec", free_function = "")] 173 public class Names { 174 } 175 176 [Compact] 177 [CCode (cname = "XkbCompatMapRec", free_function = "")] 178 public class CompatMap { 179 } 180 181 [Compact] 182 [CCode (cname = "XkbGeometryRec", free_function = "")] 183 public class Geometry { 184 } 185 186 [CCode (cname = "XkbUseCoreKbd")] 187 public int UseCoreKbd; 188 [CCode (cname = "XkbUseCorePtr")] 189 public int UseCorePtr; 190 [CCode (cname = "XkbDfltXIClass")] 191 public int DfltXIClass; 192 [CCode (cname = "XkbDfltXIId")] 193 public int DfltXIId; 194 [CCode (cname = "XkbAllXIClasses")] 195 public int AllXIClasses; 196 [CCode (cname = "XkbAllXIIds")] 197 public int AllXIIds; 198 [CCode (cname = "XkbXINone")] 199 public int XINone; 200 201 [CCode (cname = "XkbGBN_TypesMask")] 202 public int GBN_TypesMask; 203 [CCode (cname = "XkbGBN_CompatMapMask")] 204 public int GBN_CompatMapMask; 205 [CCode (cname = "XkbGBN_ClientSymbolsMask")] 206 public int GBN_ClientSymbolsMask; 207 [CCode (cname = "XkbGBN_ServerSymbolsMask")] 208 public int GBN_ServerSymbolsMask; 209 [CCode (cname = "XkbGBN_SymbolsMask")] 210 public int GBN_SymbolsMask; 211 [CCode (cname = "XkbGBN_IndicatorMapMask")] 212 public int GBN_IndicatorMapMask; 213 [CCode (cname = "XkbGBN_KeyNamesMask")] 214 public int GBN_KeyNamesMask; 215 [CCode (cname = "XkbGBN_GeometryMask")] 216 public int GBN_GeometryMask; 217 [CCode (cname = "XkbGBN_OtherNamesMask")] 218 public int GBN_OtherNamesMask; 219 [CCode (cname = "XkbGBN_AllComponentsMask")] 220 public int GBN_AllComponentsMask; 221 222 [CCode (cname = "XkbOneLevelIndex")] 223 public int OneLevelIndex; 224 225 [CCode (cname = "XkbNewKeyboardNotifyMask")] 226 public int NewKeyboardNotifyMask; 227 [CCode (cname = "XkbMapNotifyMask")] 228 public int MapNotifyMask; 229 [CCode (cname = "XkbStateNotifyMask")] 230 public int StateNotifyMask; 231 [CCode (cname = "XkbControlsNotifyMask")] 232 public int ControlsNotifyMask; 233 [CCode (cname = "XkbIndicatorStateNotifyMask")] 234 public int IndicatorStateNotifyMask; 235 [CCode (cname = "XkbIndicatorMapNotifyMask")] 236 public int IndicatorMapNotifyMask; 237 [CCode (cname = "XkbNamesNotifyMask")] 238 public int NamesNotifyMask; 239 [CCode (cname = "XkbCompatMapNotifyMask")] 240 public int CompatMapNotifyMask; 241 [CCode (cname = "XkbBellNotifyMask")] 242 public int BellNotifyMask; 243 [CCode (cname = "XkbActionMessageMask")] 244 public int ActionMessageMask; 245 [CCode (cname = "XkbAccessXNotifyMask")] 246 public int AccessXNotifyMask; 247 [CCode (cname = "XkbExtensionDeviceNotifyMask")] 248 public int ExtensionDeviceNotifyMask; 249 [CCode (cname = "XkbAllEventsMask")] 250 public int AllEventsMask; 251 [CCode (cname = "XkbAllControlsMask")] 252 public int AllControlsMask; 253 254 [CCode (cname = "XkbStateNotify")] 255 public int StateNotify; 256 257 [CCode (cname = "XkbGroupStateMask")] 258 public int GroupStateMask; 259 260 [CCode (cname = "XkbModifierStateMask")] 261 public int ModifierStateMask; 262 263 [CCode (cname = "XkbAllMapComponentsMask")] 264 public int AllMapComponentsMask; 265 266 [CCode (cname = "XkbKeySymsMask")] 267 public int KeySymsMask; 268 269 [CCode (cname = "XkbKeyTypesMask")] 270 public int KeyTypesMask; 271 272 [CCode (cname = "XkbSlowKeysMask")] 273 public int SlowKeysMask; 274 275 [CCode (cname = "XkbControlsEnabledMask")] 276 public int ControlsEnabledMask; 277} 278