Index of Section 3 Manual Pages
| Interix / SUA | XkbAllocDeviceLedInfo.3 | Interix / SUA |
XkbAllocDeviceLedInfo(3) XKB FUNCTIONS XkbAllocDeviceLedInfo(3)
NAME
XkbAllocDeviceLedInfo - Obtain an XkbDeviceLedInfoRec
structure
SYNOPSIS
Status XkbAllocDeviceLedInfo ( device_info, num_needed )
XkbDeviceInfoPtr device_info;
int num_needed;
ARGUMENTS
- device_info
structure in which to allocate LED space
- num_needed
number of indicators to allocate space for
DESCRIPTION
XkbAllocDeviceLedInfo allocates space for an XkbDeviceLed-
InfoRec and places it in device_info. If num_needed is
nonzero, num_needed XkbIndicatorMapRec structures are also
allocated and linked into the XkbDeviceLedInfoRec struc-
ture. If you request XkbIndicatorMapRec structures be
allocated using this request, you must initialize them
explicitly. All other fields are initialized to zero.
To initialize an XkbDeviceLedInfoRec structure, use XkbAd-
dDeviceLedInfo.
STRUCTURES
Information about X Input Extension devices is transferred
between a client program and the Xkb extension in an Xkb-
DeviceInfoRec structure:
typedef struct {
char * name; /* name for device */
Atom type; /* name for class of devices */
unsigned short device_spec; /* device of interest */
Bool has_own_state; /* True=>this device has its own state */
unsigned short supported; /* bits indicating supported capabilities */
unsigned short unsupported; /* bits indicating unsupported capabilities */
unsigned short num_btns; /* number of entries in btn_acts */
XkbAction * btn_acts; /* button actions */
unsigned short sz_leds; /* total number of entries in LEDs vector */
unsigned short num_leds; /* number of valid entries in LEDs vector */
unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
typedef struct {
unsigned short led_class; /* class for this LED device*/
unsigned short led_id; /* ID for this LED device */
unsigned int phys_indicators; /* bits for which LEDs physically present */
unsigned int maps_present; /* bits for which LEDs have maps in maps */
unsigned int names_present; /* bits for which LEDs are in names */
unsigned int state; /* 1 bit => corresponding LED is on */
Atom names[XkbNumIndicators]; /* names for LEDs */
XkbIndicatorMapRec maps; /* indicator maps for each LED */
} XkbDeviceLedInfoRec, *XkbDeviceLedInfoPtr;
Each indicator has its own set of attributes that specify
whether clients can explicitly set its state and whether
it tracks the keyboard state. The attributes of each indi-
cator are held in the maps array, which is an array of
XkbIndicatorRec structures:
typedef struct {
unsigned char flags; /* how the indicator can be changed */
unsigned char which_groups; /* match criteria for groups */
unsigned char groups; /* which keyboard groups the indicator watches */
unsigned char which_mods; /* match criteria for modifiers */
XkbModsRec mods; /* which modifiers the indicator watches */
unsigned int ctrls; /* which controls the indicator watches */
} XkbIndicatorMapRec, *XkbIndicatorMapPtr;
This indicator map specifies for each indicator:
o The conditions under which the keyboard modifier
state affects the indicator
o The conditions under which the keyboard group state
affects the indicator
o The conditions under which the state of the boolean
controls affects the indicator
o The effect (if any) of attempts to explicitly change
the state of the indicator using the functions Xkb-
SetControls or XChangeKeyboardControl
SEE ALSO
XkbAddDeviceLedInfo(3), XkbSetControls(3)
X Version 11 libX11 1.1.5 XkbAllocDeviceLedInfo(3)