XkbResizeKeyType (3)
Leading comments
Copyright 1999 Oracle and/or its affiliates. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following condition...
NAME
XkbResizeKeyType - Change the number of levels in a key typeSYNOPSIS
-
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 BadValue. 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