XkbFreeDeviceInfo(3) XKB FUNCTIONS XkbFreeDeviceInfo(3) NAME XkbFreeDeviceInfo - Free an XkbDeviceInfoRec structure SYNOPSIS void XkbFreeDeviceInfo (XkbDeviceInfoPtr device_info, unsigned int which, Bool free_all); ARGUMENTS - device_info pointer to XkbDeviceInfoRec in which to free items - which mask of components of device_info to free - free_all True => free everything, including device_info DESCRIPTION If free_all is True, the XkbFreeDeviceInfo frees all components of de- vice_info and the XkbDeviceInfoRec structure pointed to by device_info itself. If free_all is False, the value of which determines which sub- components are freed. which is an inclusive OR of one or more of the values from Table 1. If which contains XkbXI_ButtonActionsMask, all button actions associated with device_info are freed, de- vice_info->btn_acts is set to NULL, and device_info->num_btns is set to zero. If which contains all bits in XkbXI_IndicatorsMask, all XkbDe- viceLedInfoRec structures associated with device_info are freed, de- vice_info->leds is set to NULL, and device_info->sz_leds and de- vice_info->num_leds are set to zero. If which contains XkbXI_Indica- torMapsMask, all indicator maps associated with device_info are cleared, but the number of LEDs and the leds structures themselves is preserved. If which contains XkbXI_IndicatorNamesMask, all indicator names associated with device_info are cleared, but the number of LEDs and the leds structures themselves is preserved. If which contains Xk- bXI_IndicatorStateMask, the indicator state associated with the de- vice_info leds are set to zeros but the number of LEDs and the leds structures themselves is preserved. Table 1 XkbDeviceInfoRec Mask Bits ____________________________________________________________________________________ Name XkbDeviceInfoRec Value Capability If Set Fields Effected ____________________________________________________________________________________ XkbXI_KeyboardsMask (1L <<0) Clients can use all Xkb requests and events with KeyClass devices supported by the input device extension. XkbXI_ButtonActionsMask num_btns (1L <<1) Clients can assign key btn_acts actions to buttons non-KeyClass input extension devices. XkbXI_IndicatorNamesMask leds->names (1L <<2) Clients can assign names to indicators on non-KeyClass input extension devices. XkbXI_IndicatorMapsMask leds->maps (1L <<3) Clients can assign indicator maps to indicators on non-KeyClass input extension devices. XkbXI_IndicatorStateMask leds->state (1L <<4) Clients can request the status of indicators on non-KeyClass input extension devices. XkbXI_IndicatorsMask sz_leds (0x1c) XkbXI_IndicatorNamesMask | num_leds XkbXI_IndicatorMapsMask | leds->* XkbXI_IndicatorStateMask XkbXI_UnsupportedFeaturesMask unsupported (1L <<15) XkbXI_AllDeviceFeaturesMask Those selected (0x1e) XkbXI_IndicatorsMask | by Value Column XkbSI_ButtonActionsMask masks XkbXI_AllFeaturesMask Those selected (0x1f) XkbSI_AllDeviceFeaturesMask | by Value Column XkbSI_KeyboardsMask masks XkbXI_AllDetailsMask Those selected (0x801f) XkbXI_AllFeaturesMask | by Value column XkbXI_UnsupportedFeaturesMask masks STRUCTURES Information about X Input Extension devices is transferred between a client program and the Xkb extension in an XkbDeviceInfoRec 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; X Version 11 libX11 1.7.5 XkbFreeDeviceInfo(3)
Generated by dwww version 1.14 on Sat Jan 18 08:07:13 CET 2025.