Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xkbcopykeytypes(3) [netbsd man page]

XkbCopyKeyTypes(3)						   XKB FUNCTIONS						XkbCopyKeyTypes(3)

XkbCopyKeyTypes - Copy more than one XkbKeyTypeRec structure SYNOPSIS
Status XkbCopyKeyTypes (XkbKeyTypePtr from, XkbKeyTypePtr into, int num_types); ARGUMENTS
- from pointer to array of XkbKeyTypeRecs to copy - into pointer to array of XkbKeyTypeRecs to change - num_types number of types to copy DESCRIPTION
XkbCopyKeyTypes copies num_types XkbKeyTypeRec structures from the array specified by from into the array specified by into. It is intended for copying between, rather than within, keyboard descriptions, so it doesn't check for overlaps. The same rules that apply to the from and into parameters in XkbCopyKeyType apply to each entry of the from and into arrays of XkbCopyKeyTypes. If any allocation errors occur while copying from to into, XkbCopyKeyTypes returns BadAlloc. Otherwise, XkbCopyKeyTypes copies from to into and returns Success. RETURN VALUES
Success The XkbCopyKeyTypes function returns Success when there are no allocation errors. STRUCTURES
Key types are used to determine the shift level of a key given the current state of the keyboard. The set of all possible key types for the Xkb keyboard description are held in the types field of the client map, whose total size is stored in size_types, and whose total number of valid entries is stored in num_types. Key types are defined using the following structure: typedef struct { /* Key Type */ XkbModsRec mods; /* modifiers used to compute shift level */ unsigned char num_levels; /* total # shift levels, do not modify directly */ unsigned char map_count; /* # entries in map, preserve (if non-NULL) */ XkbKTMapEntryPtr map; /* vector of modifiers for each shift level */ XkbModsPtr preserve; /* mods to preserve for corresponding map entry */ Atom name; /* name of key type */ Atom * level_names; /* array of names of each shift level */ } XkbKeyTypeRec, *XkbKeyTypePtr; DIAGNOSTICS
BadAlloc Unable to allocate storage SEE ALSO
XkbCopyKeyType(3) X Version 11 libX11 1.5.0 XkbCopyKeyTypes(3)

Check Out this Related Man Page

XkbResizeKeyType(3)						   XKB FUNCTIONS					       XkbResizeKeyType(3)

XkbResizeKeyType - Change the number of levels in a key type SYNOPSIS
Status XkbResizeKeyType (XkbDescPtr xkb, int type_ndx, int map_count, Bool want_preserve, int new_num_lvls); ARGUMENTS
- xkb keyboard description containing client map to update - type_ndx index in xkb->map->types of type to change - map_count total # of map entries needed for the type - want_preserve True => list of preserved modifiers is necessary - new_num_lvls new max # of levels for type DESCRIPTION
XkbResizeKeyType changes the type specified by xkb->map->types[type_ndx], and reallocates the symbols and actions bound to all keys that use the type, if necessary. XkbResizeKeyType updates only the local copy of the types in xkb; to update the server's copy for the physical device, use XkbSetMap or XkbChangeMap after calling XkbResizeKeyType. The map_count parameter specifies the total number of map entries needed for the type, and can be zero or greater. If map_count is zero, XkbResizeKeyType frees the existing map and preserve entries for the type if they exist and sets them to NULL. The want_preserve parameter specifies whether a preserve list for the key should be created. If want_preserve is True, the preserve list with map_count entries is allocated or reallocated if it already exists. Otherwise, if want_preserve is False, the preserve field is freed if necessary and set to NULL. The new_num_lvls parameter specifies the new maximum number of shift levels for the type and is used to calculate and resize the symbols and actions bound to all keys that use the type. If type_ndx does not specify a legal type, new_num_lvls is less than 1, or the map_count is less than zero, XkbResizeKeyType returns Bad- Value. If XkbResizeKeyType encounters any problems with allocation, it returns BadAlloc. Otherwise, it returns Success. RETURN VALUES
Success The XkbResizeKeyType function returns Success if type_ndx specifies a legal type, new_num_lvls is greater than zero and map_count is positive. DIAGNOSTICS
BadAlloc Unable to allocate storage BadValue An argument is out of range SEE ALSO
XkbChangeMap(3), XkbSetMap(3) X Version 11 libX11 1.6.0 XkbResizeKeyType(3)
Man Page