XKB FUNCTIONS XkbOutOfRangeGroupNumber(3x11)
NAME
XkbOutOfRangeGroupNumber - Returns the out-of-range group
number, represented as a group index, from the group_info
field of an XkbSymMapRec structureSYNOPSIS
cc [ flag... ] file... -lX11 [ library... ]
unsigned char XkbOutOfRangeGroupNumber (unsigned char
grp_inf);
ARGUMENTS- grp_inf
Xkb description of interestDESCRIPTION
XkbOutOfRangeGroupNumber returns the out-of-range group
number, represented as a group index, from the group_info
field of an XkbSymMapRec structure.The group_info field of an XkbSymMapRec is an encoded value
containing the number of groups of symbols bound to the keyas well as the specification of the treatment of out-of-
range groups. It is legal for a key to have zero groups, in which case it also has zero symbols and all events from thatkey yield NoSymbol. To obtain the number of groups of sym-
bols bound to the key, use XkbKeyNumGroups. To change the number of groups bound to a key, use XkbChangeTypesOfKey. Toobtain a mask that determines the treatment of out-of-range
groups, use XkbKeyGroupInfo and XkbOutOfRangeGroupInfo.The keyboard controls contain a groups_wrap field specifying
the handling of illegal groups on a global basis. That is, when the user performs an action causing the effective groupto go out of the legal range, the groups_wrap field speci-
fies how to normalize the effective keyboard group to a group that is legal for the keyboard as a whole, but there is no guarantee that the normalized group will be within therange of legal groups for any individual key. The per-key
group_info field specifies how a key treats a legal effec-
tive group if the key does not have a type specified for the group of concern. For example, the Enter key usually hasjust one group defined. If the user performs an action caus-
ing the global keyboard group to change to Group2, thegroup_info field for the Enter key describes how to handle
this situation.Out-of-range groups for individual keys are mapped to a
legal group using the same options as are used for the overall keyboard group. The particular type of mapping usedis controlled by the bits set in the group_info flag, as
shown in Table 1. X Version 11 Last change: libX11 1.3.5 1XKB FUNCTIONS XkbOutOfRangeGroupNumber(3x11)
Table 1 group_info Range Normalization
_____________________________________________
Bits set in group_info Normalization method
_____________________________________________
XkbRedirectIntoRange XkbRedirectIntoRange XkbClampIntoRange XkbClampIntoRange none of the above XkbWrapIntoRange STRUCTURES The KeySymMapRec structure is defined as follows:#define XkbNumKbdGroups 4
#define XkbMaxKbdGroup (XkbNumKbdGroups-1)
typedef struct { /* map to keysyms for a single keycode */unsigned char kt_index[XkbNumKbdGroups]; /* key type index for each group */
unsigned char group_info; /* # of groups and out of range group handling */
unsigned char width; /* max # of shift levels for key */
unsigned short offset; /* index to keysym table in syms array */ } XkbSymMapRec, *XkbSymMapPtr; The XkbControlsRec structure is defined as follows:#define XkbMaxLegalKeyCode 255
#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
typedef struct {unsigned char mk_dflt_btn; /* default button for keyboard driven mouse */
unsigned char num_groups; /* number of keyboard groups */
unsigned char groups_wrap; /* how to wrap out-of-bounds groups */
XkbModsRec internal; /* defines server internal modifiers */XkbModsRec ignore_lock; /* modifiers to ignore when checking for grab */
unsigned int enabled_ctrls; /* 1 bit => corresponding boolean control enabled */
unsigned short repeat_delay; /* ms delay until first repeat */
unsigned short repeat_interval; /* ms delay between repeats */
unsigned short slow_keys_delay; /* ms minimum time key must be down to be ok */
unsigned short debounce_delay; /* ms delay before key reactivated */
unsigned short mk_delay; /* ms delay to second mouse motion event */
unsigned short mk_interval; /* ms delay between repeat mouse events */
unsigned short mk_time_to_max; /* # intervals until constant mouse move */
unsigned short mk_max_speed; /* multiplier for maximum mouse speed */
short mk_curve; /* determines mouse move curve type */
unsigned short ax_options; /* 1 bit => Access X option enabled */
unsigned short ax_timeout; /* seconds until Access X disabled */
unsigned short axt_opts_mask; /* 1 bit => options to reset on Access X timeout */
unsigned short axt_opts_values; /* 1 bit => turn option on, 0=> off */
unsigned int axt_ctrls_mask; /* which bits in enabled_ctrls to modify */
unsigned int axt_ctrls_values; /* values for new bits in enabled_ctrls */
unsigned char per_key_repeat[XkbPerKeyBitArraySize]; /* per key auto repeat */
} XkbControlsRec, *XkbControlsPtr; X Version 11 Last change: libX11 1.3.5 2XKB FUNCTIONS XkbOutOfRangeGroupNumber(3x11)
The XkbControlsRec structure is defined as follows:#define XkbMaxLegalKeyCode 255
#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
typedef struct {unsigned char mk_dflt_btn; /* default button for keyboard driven mouse */
unsigned char num_groups; /* number of keyboard groups */
unsigned char groups_wrap; /* how to wrap out-of-bounds groups */
XkbModsRec internal; /* defines server internal modifiers */XkbModsRec ignore_lock; /* modifiers to ignore when checking for grab */
unsigned int enabled_ctrls; /* 1 bit => corresponding boolean control enabled */
unsigned short repeat_delay; /* ms delay until first repeat */
unsigned short repeat_interval; /* ms delay between repeats */
unsigned short slow_keys_delay; /* ms minimum time key must be down to be ok */
unsigned short debounce_delay; /* ms delay before key reactivated */
unsigned short mk_delay; /* ms delay to second mouse motion event */
unsigned short mk_interval; /* ms delay between repeat mouse events */
unsigned short mk_time_to_max; /* # intervals until constant mouse move */
unsigned short mk_max_speed; /* multiplier for maximum mouse speed */
short mk_curve; /* determines mouse move curve type */
unsigned short ax_options; /* 1 bit => Access X option enabled */
unsigned short ax_timeout; /* seconds until Access X disabled */
unsigned short axt_opts_mask; /* 1 bit => options to reset on Access X timeout */
unsigned short axt_opts_values; /* 1 bit => turn option on, 0=> off */
unsigned int axt_ctrls_mask; /* which bits in enabled_ctrls to modify */
unsigned int axt_ctrls_values; /* values for new bits in enabled_ctrls */
unsigned char per_key_repeat[XkbPerKeyBitArraySize]; /* per key auto repeat */
} XkbControlsRec, *XkbControlsPtr;SEE ALSO
XkbChangeTypesOfKey(3x11), XkbKeyGroupInfo(3x11), XkbOutOfRangeGroupInfo(3x11)ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Availability | x11/library/libx11 ||_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | See XInitThreads(3X11) |
|_____________________________|_____________________________|
X Version 11 Last change: libX11 1.3.5 3