# Accessibility::KeyDefinition Struct Reference

`import "Accessibility_Registry.idl";`

## Data Fields

long | keycode
long | keysym
string | keystring
long | unused

## Detailed Description

A structure which defines the identity of a key for which notifications are to be requested. The data in the members of a KeyDefinition are used to determine which keyboard events 'match' the notification request filed by a client.

Note:
  Ordinarily a KeyDefinition specifies one and only one of the criteria below; the result of using a KeyDefinition with multiple members defined as nonzero is undefined.

Parameters:

  keycode

  if nonzero, the numeric, system-dependent value corresponding to a physical key on the keyboard. Keycode values have no semantic meaning to the end-user, and may depend on the user's hardware and operating environment. They therefore are rarely useful "as-is" to AT clients, unless the client has used operating system services to identify the hardward keycode associated with a particular key symbol. Notifications for key events requested by keycode are less dependent on modifier state than `keysym` based notifications, but some hardware (notably many laptops) may generate more than one keycode for the same physical key, depending on the state of physical shift/modifier keys.

  | keysym | if nonzero, the numeric value corresponding to the X Keysym of the key for which notification is requested. Note that the presence of active modifiers will affect whether notification for key events requested via "keysym" specification takes place, since the keysym depends on the modifier state for most keys.
  | keystring | if non-NULL, the string value of the inserted characters if the corresponding key event has KeyEvent:is_text set to `True`, or the string representing the 'name' of the key. On X11 systems, the string 'name' of non-printing keysyms corresponds to the values in "keysymdef.h" as provided by Xlib, with the leading "XK_" stripped off.

## Field Documentation

long Accessibility::KeyDefinition::keycode

long Accessibility::KeyDefinition::keysym

string Accessibility::KeyDefinition::keystring

long Accessibility::KeyDefinition::unused

The documentation for this struct was generated from the following file:

- /home/liyuan/src/at-spi/idl/Accessibility_Registry.idl